Vous êtes sur la page 1sur 3831

Parlez-nous de l’expérience de téléchargement de PDF.

SQL Server Integration Services


Article • 21/08/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

SQL Server Integration Services est une plateforme qui permet de générer des solutions
de transformation et d’intégration de données au niveau de l’entreprise. Utilisez les
services d’intégration pour résoudre des problèmes métier complexes. Par exemple :

Copier ou télécharger des fichiers


Charger des entrepôts de données
Nettoyer et explorer les données
Gérer des objets et données SQL Server.

Fonctionnalités
Integration Services peut extraire et transformer des données provenant d’une grande
variété de sources, par exemple des fichiers de données XML, des fichiers plats et des
sources de données relationnelles, puis charger les données dans une ou plusieurs
destinations.

Integration Services inclut :

Un ensemble riche de tâches et de transformations intégrées.


Des outils graphiques pour créer des packages.
Une base de données de catalogues SSIS pour stocker, exécuter et gérer des
packages.

Vous pouvez utiliser les outils Integration Services graphiques pour créer des solutions
sans écrire une seule ligne de code. Vous avez également la possibilité de programmer
le modèle objet Integration Services complet afin de créer des packages par programme
et de coder des tâches personnalisées et d’autres objets de package.

Prise en main
Vous pouvez commencer par installer SQL Server Integration Services, qui fait partie de
l’installation de SQL Server.

Pour obtenir des instructions et des conseils d’installation, consultez Installer Integration
Services.
Obtenir de l’aide
Obtenir de l’aide sur le forum SSIS
Obtenir de l’aide sur Stack Overflow
Suivre le blog de l’équipe SSIS
Signaler des problèmes et demander des fonctionnalités
Obtenir les documents sur votre PC
Documentation technique de SQL
Server
Documentation technique pour vous aider à commencer, à administrer, développer et
utiliser SQL Server et des produits associés.

SQL sur Azure

e VUE D’ENSEMBLE

Azure SQL

Azure SQL Database

Azure SQL Managed Instance

Connecter à Azure SQL

SQL Server sur machines virtuelles Azure Windows

SQL Server sur machines virtuelles Azure Linux

Azure Synapse Analytics

Azure Database Migration Service

Migration

e VUE D’ENSEMBLE

Contenu de migration

Guide de migration des données

Certification de compatibilité de la base de données

Assistant Migration de données (DMA)

Assistant Migration SQL Server (SSMA)

SQL Server

h NOUVEAUTÉS
SQL Server 2022

SQL Server 2019

Azure Data Studio

SQL Server sur Linux

SQL Server avec Azure Arc

f DÉMARRAGE RAPIDE

Qu'est-ce que SQL Server ?

Se connecter au moteur de base de données

Connexion et requête avec Azure Data Studio

Connexion et requête avec SSMS

a TÉLÉCHARGER

SQL Server

SQL Server Management Studio

Azure Data Studio

i RÉFÉRENCE

Transact-SQL (T-SQL)

Documentation SQL Server 2014

Ressources SQL éducatives

Base de données Samples

Composants internes et guides d’architecture

Versions précédentes 2005-2012

Continuité de l’activité

e VUE D’ENSEMBLE

Sauvegarde et restauration

Groupes de disponibilité Always On

Instance de cluster de basculement Always On


Mise en miroir de bases de données

Copie des journaux de transaction

Réplication

Sécurité

e VUE D’ENSEMBLE

Évaluation des vulnérabilités SQL

Gestion de l’accès

Always Encrypted

Audit

Enclaves

Masquage dynamique des données

Transparent Data Encryption (TDE)

Sécurité au niveau des lignes

Création de bases de données

e VUE D’ENSEMBLE

Classement

Bases de données

Graph

Index

Les vues

Fonctions définies par l’utilisateur

Tables

Procédures stockées

Gérer et surveiller
e VUE D’ENSEMBLE

Gestion des journaux de transactions

Plans de maintenance

SQL Server Agent

Suivre les modifications

Compression des données

Événements étendus

Paramétrer

e VUE D’ENSEMBLE

Centre de performances

Traitement de requêtes intelligent

Réglage automatique

Assistant Paramétrage de base de données

OLTP en mémoire

p CONCEPT

Estimation de la cardinalité

Statistiques

Index

Interroger des données

e VUE D’ENSEMBLE

Transact-SQL (T-SQL)

SQL PowerShell

Création de scripts

Jointures
Recherche en texte intégral

Synonymes

Big Data et Machine Learning

e VUE D’ENSEMBLE

Système de la plateforme d'analyse

SQL Server Machine Learning (R et Python)

Virtualisation de données avec Polybase

Business Intelligence

e VUE D’ENSEMBLE

SQL Server Reporting Services (SSRS)

SQL Server Analysis Services (SSAS)

SQL Server Integration Services (SSIS)

Azure Data Factory


Nouveautés d’Integration Services dans
SQL Server 2016
Article • 03/04/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette rubrique décrit les fonctionnalités qui ont été ajoutées ou mises à jour dans SQL
Server 2016Integration Services. Elle mentionne également les fonctionnalités ajoutées
ou mises à jour dans le Pack de fonctionnalités Azure pour Integration Services (SSIS)
durant le calendrier SQL Server 2016.

Nouveautés de SSIS dans Azure Data Factory


Avec la préversion publique d’Azure Data Factory version 2 de septembre 2017, vous
pouvez désormais effectuer les opérations suivantes :

Déployer des packages dans la base de données du catalogue SSIS (SSISDB) sur
Azure SQL Database.
Exécuter des packages déployés sur Azure sur le runtime d’intégration Azure-SSIS,
composant d’Azure Data Factory version 2.

Pour plus d’informations, consultez Effectuer un « lift-and-shift » des charges de travail


SQL Server Integration Services vers le cloud.

Ces nouvelles fonctionnalités nécessitent SQL Server Data Tools (SSDT) version 17.2 ou
ultérieure, mais ne nécessitent pas SQL Server 2017 ou SQL Server 2016. Quand vous
déployez des packages sur Azure, l’Assistant Déploiement de package met toujours à
niveau les packages avec le format de package le plus récent.

Améliorations de la version 2016 par catégorie


Facilité de gestion

Amélioration du déploiement

Assistant Mise à niveau de SSISDB

Prise en charge de la fonctionnalité AlwaysOn dans le catalogue SSIS

Déploiement incrémentiel de packages


Prise en charge de la fonctionnalité de chiffrement intégral dans le catalogue
SSIS

Amélioration du débogage

Nouveau rôle de base de données ssis_logreader dans le catalogue SSIS

Nouveau niveau de journalisation RuntimeLineage dans le catalogue SSIS

Nouveau niveau de journalisation personnalisé dans le catalogue SSIS

Noms de colonnes pour les erreurs contenues dans le flux de données

Prise en charge étendue des noms de la colonne d’erreur

Prise en charge du niveau de journalisation par défaut au niveau du serveur

Nouvelle interface IDTSComponentMetaData130 dans l’API

Amélioration de la gestion des packages

Amélioration de l’expérience pour la mise à niveau des projets

La propriété AutoAdjustBufferSize calcule automatiquement la taille de la


mémoire tampon du flux de données

Modèles de flux de contrôle réutilisables

Nouveaux modèles renommés en tant que parties

Connectivité

Extension de la connectivité locale

Prise en charge des sources de données OData v4

Prise en charge explicite des sources de données Excel 2013

Prise en charge du système de fichiers Hadoop (HDFS)

Extension de la prise en charge pour Hadoop et HDFS

La destination du fichier HDFS prend désormais en charge le format de


fichier ORC

Composants ODBC mis à jour pour SQL Server 2016

Prise en charge explicite des sources de données Excel 2016


Publication du connecteur pour SAP BW pour SQL Server 2016

Publication de la version 4.0 des connecteurs pour Oracle et Teradata

Publication des connecteurs pour Analytics Platform System (PDW) Appliance


Update 5

Extension de la connectivité au cloud

Connecteurs Azure Storage, et tâches Hive et Pig pour HDInsight -


Publication d’Azure Feature Pack pour SSIS pour SQL Server 2016

Prise en charge des ressources Microsoft Dynamics Online publiées dans


Service Pack 1

Prise en charge d’Azure Data Lake Store

Prise en charge d’Azure Synapse Analytics

Convivialité et productivité

Amélioration de l’expérience d’installation


Blocage de la mise à niveau quand SSISDB appartient à un groupe de
disponibilité

Amélioration de l’expérience de conception

Le concepteur SSIS crée et gère les packages pour SQL Server 2016, 2014 ou
2012

Multiples améliorations et correctifs de bogues pour les concepteurs.

Amélioration de l’expérience de gestion dans SQL Server Management Studio


Performances améliorées pour les affichages catalogue SSIS

Autres améliorations

La transformation du distributeur de données équilibrées fait désormais


partie de SSIS

Les composants de publication du flux de données font désormais partie de


SSIS

Prise en charge du stockage Blob Azure dans l’Assistant Importation et


Exportation SQL Server
Service et concepteur de capture de données modifiées pour Oracle pour
Microsoft SQL Server 2016

Mise à jour des composants de capture de données modifiées pour SQL


Server 2016

Mise à jour de la tâche DDL d’exécution Analysis Services

Les tâches Analysis Services prennent en charge les modèles tabulaires

Prise en charge des services R intégrés

Sortie de validation XML détaillée dans la tâche XML

Simplicité de gestion

Amélioration du déploiement

Assistant Mise à niveau de SSISDB

Exécutez l’Assistant Mise à niveau de SSISDB pour mettre à niveau la base de données
du catalogue SSIS, SSISDB, quand celle-ci est plus ancienne que la version actuelle de
l’instance SQL Server. Cela se produit quand l’une des conditions suivantes est remplie.

Vous avez restauré la base de données à partir d’une ancienne version de SQL
Server.

Vous n’avez pas supprimé la base de données d’un groupe de disponibilité Always
On avant la mise à niveau de l’instance SQL Server. Cela empêche la mise à niveau
automatique de la base de données. Pour plus d’informations, consultez
Upgrading SSISDB in an availability group.

Pour plus d’informations, consultez Catalogue SSIS (SSISDB).

Prise en charge de la fonctionnalité AlwaysOn dans le catalogue


SSIS
La fonctionnalité des groupes de disponibilité AlwaysOn est une solution de haute
disponibilité et de récupération d’urgence qui offre une alternative au niveau de
l’entreprise à la mise en miroir de bases de données. Un groupe de disponibilité prend
en charge un environnement de basculement pour un ensemble discret de bases de
données utilisateur, appelées bases de données de disponibilité, qui basculent
ensemble. Pour plus d’informations, consultez Groupes de disponibilité AlwaysOn.

Dans SQL Server 2016, SSIS introduit de nouvelles fonctionnalités qui vous permettent
d’effectuer facilement un déploiement sur un catalogue SSIS centralisé (par exemple,
une base de données utilisateur SSISDB). Pour fournir une haute disponibilité à la base
de données SSISDB et son contenu (projets, packages, journaux d’exécution, etc.), vous
pouvez ajouter la base de données SSISDB à un groupe de disponibilité AlwaysOn,
comme n’importe quelle autre base de données utilisateur. Quand un basculement se
produit, le nœud secondaire devient automatiquement le nouveau nœud primaire.

Pour obtenir une présentation détaillée et des instructions pas à pas concernant
l’activation d’AlwaysOn pour SSISDB, consultez Catalogue SSIS.

Déploiement incrémentiel de packages


La fonctionnalité de déploiement incrémentiel de packages vous permet de déployer un
ou plusieurs packages dans un projet existant ou nouveau sans déployer la totalité du
projet. Vous pouvez déployer des packages de façon incrémentielle à l’aide des outils
suivants.

Assistant Déploiement

SQL Server Management Studio (qui utilise l’Assistant Déploiement)

SQL Server Data Tools (Visual Studio) (qui utilise également l’Assistant
Déploiement)

Procédures stockées

API MOM (Management Object Model)

Pour plus d’informations, consultez Déployer des projets et des packages Integration
Services (SSIS).

Prise en charge de la fonctionnalité de chiffrement intégral dans le


catalogue SSIS
SSIS prend déjà en charge la fonctionnalité de chiffrement intégral dans SQL Server.
Pour plus d’informations, consultez les billets de blog suivants.

SSIS et le chiffrement intégral

Transformation de recherche et chiffrement intégral


Amélioration du débogage

Nouveau rôle de base de données ssis_logreader dans le catalogue


SSIS

Dans les versions antérieures du catalogue SSIS, seuls les utilisateurs avec le rôle
ssis_admin peuvent accéder aux affichages qui contiennent la sortie de journalisation. Il
existe maintenant un nouveau rôle de base de données, ssis_logreader , qui vous
permet d’accorder aux utilisateurs non-administrateurs l’accès aux affichages contenant
la sortie de journalisation.

Il existe également un nouveau rôle ssis_monitor . Ce rôle prend en charge AlwaysOn et


est destiné à être utilisé de façon interne uniquement par le catalogue SSIS.

Nouveau niveau de journalisation RuntimeLineage dans le


catalogue SSIS

Le nouveau niveau de journalisation RuntimeLineage dans le catalogue SSIS permet de


collecter les données nécessaires pour le suivi des informations de lignage dans le flux
de données. Vous pouvez analyser ces informations de lignage pour mapper la relation
de lignage entre différentes tâches. Les éditeurs de logiciels indépendants et les
développeurs peuvent créer des outils de mappage de lignage personnalisés à l’aide de
ces informations.

Nouveau niveau de journalisation personnalisé dans le catalogue


SSIS
Dans les versions antérieures du catalogue SSIS, vous pouvez choisir l’un des quatre
niveaux de journalisation intégrés ( None, Basic, Performance ou Verbose) quand vous
exécutez un package. SQL Server 2016 ajoute le niveau de journalisation
RuntimeLineage. En outre, vous pouvez désormais créer et enregistrer plusieurs niveaux
de journalisation personnalisés dans le catalogue SSIS, et choisir le niveau de
journalisation à utiliser chaque fois que vous exécutez un package. Pour chaque niveau
de journalisation personnalisé, sélectionnez uniquement les statistiques et les
événements à capturer. Vous pouvez éventuellement inclure le contexte de l’événement
pour voir les valeurs des variables, les chaînes de connexion et les propriétés de la tâche.
Pour plus d’informations, consultez Activer la journalisation des exécutions de package
sur le serveur SSIS.
Noms de colonnes pour les erreurs contenues dans le flux de
données

Lorsque vous redirigez les lignes contenant des erreurs vers une sortie d'erreur dans le
flux de données, la sortie contient un identificateur numérique pour la colonne dans
laquelle l'erreur s'est produite, mais n'affiche pas le nom de la colonne. Il existe
désormais plusieurs façons de rechercher ou d’afficher le nom de la colonne dans
laquelle l’erreur s’est produite.

Quand vous configurez la journalisation, sélectionnez l’événement DiagnosticEx .


Cet événement consigne un mappage de colonnes de flux de données dans le
journal. Vous pouvez alors rechercher le nom de colonne dans ce mappage de
colonne à l’aide de l’identificateur de colonne capturé par une sortie d’erreur. Pour
plus d’informations, consultez Gestion des erreurs dans les données.

Dans l’éditeur avancé, vous pouvez voir le nom de colonne de la colonne en amont
quand vous affichez les propriétés d’une colonne d’entrée ou de sortie d’un
composant de flux de données.

Pour afficher les noms des colonnes dans lesquelles l’erreur s’est produite, attachez
une Visionneuse de données à une sortie d’erreur. La Visionneuse de données
affiche désormais la description de l’erreur et le nom de la colonne dans laquelle
l’erreur s’est produite.

Dans le composant Script ou un composant de flux de données personnalisé,


appelez la nouvelle méthode GetIdentificationStringByID de l’interface
IDTSComponentMetadata100.

Pour plus d’informations sur cette amélioration, consultez le billet de blog suivant écrit
par le développeur SSIS Bo Fan : Error Column Improvements for SSIS Data Flow
(Améliorations de la colonne d’erreur pour le flux de données SSIS) .

7 Notes

(Ce support a été développé dans des versions suivantes. Pour plus d’informations,
consultez Support développé des noms de la colonne d’erreur et Nouvelle
interface IDTSComponentMetaData130 dans l’API.)

Prise en charge étendue des noms de la colonne d’erreur


L’événement DiagnosticEx consigne désormais les informations de colonne pour toutes
les colonnes d’entrée et de sortie, pas seulement les colonnes de lignage. Ainsi, nous
appelons désormais la sortie un mappage de colonne de pipeline au lieu d’un mappage
de lignage de pipeline.

La méthode GetIdentificationStringByLineageID a été renommée


GetIdentificationStringByID. Pour plus d’informations, consultez Noms de colonnes pour
les erreurs contenues dans le flux de données.

Pour plus d’informations sur ce changement et sur l’amélioration de la colonne d’erreur,


consultez la mise à jour du billet de blog suivant. Error Column Improvements for SSIS
Data Flow (Updated for CTP3.3) [Améliorations de la colonne d’erreur pour le flux de
données SSIS (mis à jour pour CTP3.3)]

7 Notes

(Dans RC 0, cette méthode a été déplacée vers la nouvelle interface


IDTSComponentMetaData130. Pour plus d’informations, consultez Nouvelle
interface IDTSComponentMetaData130 dans l’API.)

Prise en charge du niveau de journalisation par défaut au niveau du


serveur

Dans Propriétés du serveurde SQL Server, sous la propriété Niveau de journalisation


du serveur , vous pouvez désormais sélectionner un niveau de journalisation par défaut
au niveau du serveur. Vous pouvez choisir l’un des niveaux de journalisation intégrés
(Basic, None, Verbose, Performance ou RuntimeLineage), ou choisir un niveau de
journalisation personnalisé existant. Le niveau de journalisation sélectionné s’applique à
tous les packages déployés dans le catalogue SSIS. Il s'applique également par défaut à
une étape de travail de l'Agent SQL qui exécute un package SSIS.

Nouvelle interface IDTSComponentMetaData130 dans l’API


Le nouveau niveau de journalisation IDTSComponentMetaData130 ajoute de nouvelles
fonctionnalités à l’interface IDTSComponentMetaData100 existante dans SQL Server
2016, en particulier la méthode GetIdentificationStringByID . (La méthode
GetIdentificationStringByID est déplacée de l’interface IDTSComponentMetaData100
dans la nouvelle interface.) Il y a également deux nouvelles interfaces,
IDTSInputColumn130 et IDTSOutputColumn130 , qui fournissent la propriété
LineageIdentificationString . Pour plus d’informations, consultez Noms de colonnes
pour les erreurs contenues dans le flux de données.
Amélioration de la gestion des packages

Amélioration de l’expérience pour la mise à niveau des projets


Durant la mise à niveau des projets SSIS de versions antérieures vers la version actuelle,
les gestionnaires de connexions au niveau du projet continuent de fonctionner comme
prévu. De plus, la disposition du package et les annotations sont conservées.

La propriété AutoAdjustBufferSize calcule automatiquement la


taille de la mémoire tampon du flux de données
Quand vous définissez la nouvelle propriété AutoAdjustBufferSize à la valeur true, le
moteur de flux de données calcule automatiquement la taille de la mémoire tampon
pour le flux de données. Pour plus d’informations, consultez Data Flow Performance
Features.

Modèles de flux de contrôle réutilisables

Enregistrez une tâche de flux de contrôle ou un conteneur fréquemment utilisé dans un


fichier de modèle autonome, puis réutilisez-le plusieurs fois dans un ou plusieurs
packages d’un projet à l’aide de modèles de flux de contrôle. Cette possibilité de
réutilisation facilite la conception et la gestion des packages SSIS. Pour plus
d’informations, consultez Réutiliser un flux de contrôle sur des packages à l’aide de
composants de package de flux de contrôle.

Nouveaux modèles renommés en tant que parties

Les nouveaux modèles de flux de contrôle réutilisables dans la version CTP 3.0 ont été
renommés en tant que parties de flux de contrôle ou parties de package. Pour plus
d’informations sur cette fonctionnalité, consultez Réutiliser un flux de contrôle sur des
packages à l’aide de composants de package de flux de contrôle.

Connectivité

Extension de la connectivité locale

Prise en charge des sources de données OData v4


OData Source et le Gestionnaire de connexions OData prennent désormais en charge les
protocoles OData v3 et v4.

Pour le protocole OData V3, le composant prend en charge les formats de


données JSON et ATOM.

Pour le protocole OData V4, le composant prend en charge le format de données


JSON.

Pour plus d'informations, consultez OData Source.

Prise en charge explicite des sources de données Excel 2013

Le Gestionnaire de connexions Excel, la source Excel, la destination Excel, ainsi que


l’Assistant Importation et Exportation SQL Server fournissent désormais une prise en
charge explicite des sources de données Excel 2013.

Prise en charge du système de fichiers Hadoop (HDFS)

Le support du système de fichiers HDFS contient les gestionnaires de connexions


permettant de se connecter aux clusters Hadoop, ainsi que les tâches permettant
d’effectuer les opérations HDFS courantes. Pour plus d’informations, consultez Support
Hadoop et HDFS dans Integration Services (SSIS).

Extension de la prise en charge pour Hadoop et HDFS

Le gestionnaire de connexions Hadoop prend désormais en charge


l’authentification de base et l’authentification Kerberos. Pour plus d’informations,
consultez Hadoop Connection Manager.

La source du fichier HDFS et la destination du fichier HDFS prennent désormais en


charge les formats texte et Avro. Pour plus d’informations, consultez Source des
fichiers HDFS et Destination des fichiers HDFS.

La tâche du système de fichiers Hadoop prend désormais en charge l’option


CopyWithinHadoop en plus des options CopyToHadoop et CopyFromHadoop.
Pour plus d’informations, consultez Hadoop File System Task.

La destination du fichier HDFS prend désormais en charge le


format de fichier ORC
La destination du fichier HDFS prend désormais en charge le format de fichier ORC, en
plus du format texte et Avro. (La source du fichier HDFS prend en charge uniquement le
format texte et Avro.) Pour plus d’informations sur ce composant, consultez HDFS File
Destination.

Composants ODBC mis à jour pour SQL Server 2016

Les composants ODBC source et de destination ont été mis à jour pour assurer une
compatibilité complète avec SQL Server 2016. Il n’existe aucune nouvelle fonctionnalité,
ni aucun changement de comportement.

Prise en charge explicite des sources de données Excel 2016


Le Gestionnaire de connexions Excel, la source Excel et la destination Excel fournissent
désormais une prise en charge explicite des sources de données Excel 2016.

Publication du connecteur pour SAP BW pour SQL Server 2016

Microsoft® Connector for SAP BW pour Microsoft SQL Server® 2016 a été publié
comme faisant partie du Feature Pack de SQL Server 2016. Pour télécharger les
composants du Feature Pack, consultez Feature Pack Microsoft® SQL Server® 2016 .

Publication de la version 4.0 des connecteurs pour Oracle et


Teradata
La version 4.0 de Microsoft Connectors pour Oracle et Teradata a été publiée. Pour
télécharger les connecteurs, consultez Microsoft Connectors v4.0 for Oracle and
Teradata .

Publication des connecteurs pour Analytics Platform


System (PDW) Appliance Update 5
Les adaptateurs de destination pour le chargement des données dans PDW avec AU5
ont été publiés. Pour télécharger les adaptateurs, consultez Analytics Platform System
Appliance Update 5 Documentation and Client Tools .

Extension de la connectivité au cloud

Publication d’Azure Feature Pack pour SSIS pour SQL Server 2016
Le Feature Pack Azure pour Integration Services a été publié pour SQL Server 2016. Le
Feature Pack contient les gestionnaires de connexions permettant de se connecter aux
sources de données Azure, ainsi que les tâches permettant d’effectuer les opérations
Azure courantes. Pour plus d’informations, consultez Pack de fonctionnalités Azure pour
Integration Services (SSIS).

Prise en charge des ressources Microsoft Dynamics Online publiées


dans Service Pack 1

Quand SQL Server 2016 Service Pack 1 est installé, le Gestionnaire de connexions OData
et de sources OData prend désormais en charge la connexion aux flux OData de
Microsoft Dynamics AX Online et Microsoft Dynamics CRM Online.

Prise en charge d’Azure Data Lake Store


La dernière version du Feature Pack Azure inclut un gestionnaire de connexions, une
source et une destination pour déplacer des données vers et depuis Azure Data Lake
Store. Pour plus d’informations, consultez Pack de fonctionnalités Azure pour Integration
Services (SSIS)

Prise en charge d’Azure Synapse Analytics

La dernière version du Feature Pack Azure comprend la tâche de chargement Azure SQL
DW pour renseigner Azure Synapse Analytics avec des données. Pour plus
d’informations, consultez Pack de fonctionnalités Azure pour Integration Services (SSIS)

Convivialité et productivité

Amélioration de l’expérience d’installation

Blocage de la mise à niveau quand SSISDB appartient à un groupe


de disponibilité
Si la base de données du catalogue SSIS (SSISDB) appartient à un groupe de
disponibilité AlwaysOn, vous devez supprimer SSISDB du groupe de disponibilité, mettre
à niveau SQL Server, puis rajouter SSISDB au groupe de disponibilité. Pour plus
d’informations, consultez Upgrading SSISDB in an availability group.

Amélioration de l’expérience de conception


Prise en charge du multi-ciblage et de plusieurs versions dans le
Concepteur SSIS

Vous pouvez désormais utiliser le Concepteur SSIS dans SQL Server Data Tools (SSDT)
pour Visual Studio 2015 pour créer, gérer et exécuter les packages qui ciblent SQL
Server 2016, SQL Server 2014 ou SQL Server 2012. Pour obtenir SSDT, voir Télécharger la
dernière version de SQL Server Data Tools.

Dans l’Explorateur de solutions, cliquez avec le bouton droit sur un projet Integration
Services, puis sélectionnez Propriétés pour ouvrir les pages de propriétés du projet.
Sous l’onglet Général de Propriétés de configuration, sélectionnez la propriété
TargetServerVersion, puis choisissez SQL Server 2016, SQL Server 2014 ou SQL
Server 2012.

) Important

Si vous développez des extensions personnalisées pour SSIS, consultez Support


multi-targeting in your custom components (Prise en charge du multi-ciblage
dans vos composants personnalisés) et Getting your SSIS custom extensions to be
supported by the multi-version support of SSDT 2015 for SQL Server
2016 (Préparer vos extensions personnalisées SSIS pour utiliser la prise en charge
de plusieurs versions de SSDT 2015 pour SQL Server 2016).

Amélioration de l’expérience de gestion dans SQL Server


Management Studio

Performances améliorées pour les affichages catalogue SSIS


La plupart des affichages de catalogue SSIS sont maintenant plus performants quand ils
sont exécutés par un utilisateur qui n’est pas membre du rôle ssis_admin.

Autres améliorations

La transformation du distributeur de données équilibrées fait


désormais partie de SSIS
La transformation du distributeur de données équilibrées, qui nécessitait un
téléchargement distinct dans les versions antérieures de SQL Server, est désormais
installée quand vous installez Integration Services. Pour plus d’informations, consultez
Balanced Data Distributor Transformation.

Les composants de publication du flux de données font désormais


partie de SSIS
Les composants de publication du flux de données, qui nécessitaient un téléchargement
distinct dans les versions antérieures de SQL Server, sont désormais installés quand vous
installez Integration Services. Pour plus d’informations, consultez Data Streaming
Destination.

Prise en charge du Stockage Blob Azure dans l’Assistant


Importation et Exportation SQL Server

L’Assistant Importation et Exportation SQL Server peut désormais importer des données
à partir d’Azure Blob Storage, mais également enregistrer des données à cet
emplacement. Pour plus d’informations, consultez Choisir une source de données
(Assistant Importation et Exportation SQL Server) et Choisir une destination (Assistant
Importation et Exportation SQL Server).

Service et concepteur de capture de données modifiées pour


Oracle pour Microsoft SQL Server 2016
Le service et le concepteur de capture des changements de données Microsoft® pour
Oracle par Attunity pour Microsoft SQL Server® 2016 ont été publiés comme faisant
partie du Feature Pack SQL Server 2016. Ces composants prennent désormais en charge
Oracle 12c dans une installation classique. (L’installation multi-locataire n’est pas prise
en charge). Pour télécharger les composants du Feature Pack, consultez Feature Pack
Microsoft® SQL Server® 2016 .
Mise à jour des composants de capture de données modifiées pour
SQL Server 2016

Les composants de capture de données modifiées (CDC), tels que la tâche de contrôle,
la source et la transformation de séparateur, ont été mis à jour pour assurer une
compatibilité complète avec SQL Server 2016. Il n’existe aucune nouvelle fonctionnalité,
ni aucun changement de comportement.

Mise à jour de la tâche DDL d’exécution Analysis Services

La tâche DDL d’exécution Analysis Services a été mise à jour pour accepter les
commandes du langage TMSL (Tabular Model Scripting Language).

Les tâches Analysis Services prennent en charge les modèles


tabulaires

Vous pouvez désormais utiliser toutes les tâches et destinations SSIS qui prennent en
charge SQL Server Analysis Services (SSAS) avec des modèles tabulaires SQL Server
2016. Les tâches SSIS ont été mises à jour pour représenter des objets tabulaires au lieu
d’objets multidimensionnels. Par exemple, quand vous sélectionnez des objets à traiter,
la tâche de traitement Analysis Services détecte automatiquement un modèle tabulaire
et affiche une liste d’objets tabulaires au lieu de montrer des groupes et des dimensions
de mesures. Désormais, la destination de traitement de partition affiche également des
objets tabulaires et prend en charge le Push de données dans une partition.

La destination de traitement de dimension ne fonctionne pas pour les modèles


tabulaires avec le niveau de compatibilité SQL 2016. La tâche de traitement Analysis
Services et la destination de traitement de partition sont tout ce dont vous avez besoin
pour le traitement tabulaire.

Prise en charge des services R intégrés


SSIS prend déjà en charge les services R intégrés dans SQL Server. Vous pouvez utiliser
SSIS non seulement pour extraire les données et charger la sortie de l’analyse, mais
également pour créer, exécuter et recycler régulièrement les modèles R. Pour plus
d’informations, consultez le billet de blog suivant. Operationalize your machine learning
project using SQL Server 2016 SSIS and R Services (Faire fonctionner votre projet
d’apprentissage machine à l’aide de SQL Server 2016 SSIS et des services R) .

Sortie de validation XML détaillée dans la tâche XML


Validez des documents XML et obtenez une sortie d’erreur détaillée en activant la
propriété ValidationDetails de la tâche XML. Avant que la propriété ValidationDetails ne
soit disponible, la validation XML par la tâche XML ne renvoyait qu’un résultat true ou
false, sans aucune information sur les erreurs ou leur emplacement. À présent, quand
vous définissez ValidationDetails sur true, le fichier de sortie contient des informations
détaillées sur chaque erreur, notamment le numéro de ligne et la position. Vous pouvez
utiliser ces informations pour comprendre, localiser et corriger les erreurs dans les
documents XML. Pour plus d’informations, consultez Validate XML with the XML Task.

SSIS a introduit la propriété ValidationDetails dans SQL Server 2012 (11.x) Service Pack
2. Cette nouvelle propriété n’a pas été annoncée ou documentée à ce moment-là. La
propriété ValidationDetails est également disponible dans SQL Server 2014 (12.x) et
dans SQL Server 2016 (13.x).

Obtenir de l’aide
Idées pour SQL : vous avez des suggestions pour améliorer SQL Server ?
Questions et réponses Microsoft (SQL Server)
DBA Stack Exchange (balise sql-server) : posez des questions sur SQL Server
Stack Overflow (balise sql-server) : réponses aux questions sur le développement
SQL
Reddit : discussion générale sur SQL Server
Termes du contrat de licence Microsoft SQL Server et autres informations
Options de support pour les utilisateurs professionnels
Contacter Microsoft
Aide et commentaires supplémentaires pour SQL Server

Contribuer à la documentation SQL


Saviez-vous que vous pouvez modifier le contenu SQL vous-même ? Dans ce cas, non
seulement vous nous aidez à améliorer notre documentation, mais vous êtes également
cité en tant que contributeur à la page.

Pour plus d’informations, consultez Guide pratique pour contribuer à la documentation


SQL Server

Voir aussi
Nouveautés de SQL Server 2016
Éditions et fonctionnalités prises en charge de SQL Server 2016
Nouveautés d’Integration Services dans
SQL Server 2017
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette rubrique décrit les fonctionnalités qui ont été ajoutées ou mises à jour dans SQL
Server 2017 (14.x) Integration Services.

7 Notes

SQL Server 2017 inclut également les fonctionnalités de SQL Server 2016 et les
fonctionnalités ajoutées dans les mises à jour de SQL Server 2016. Pour plus
d’informations sur les nouvelles fonctionnalités SSIS dans SQL Server 2016,
consultez Nouveautés d’Integration Services dans SQL Server 2016.

Principales caractéristiques de cette version


Voici les nouvelles fonctionnalités les plus importantes d’Integration Services dans SQL
Server 2017.

Scale-out. Distribuez plus facilement l’exécution de package SSIS sur plusieurs


ordinateurs de travail, et gérez les exécutions et les threads de travail à partir d’un
seul ordinateur maître. Pour plus d’informations, consultez Integration Services
Scale Out.

Integration Services sur Linux. Exécutez des packages SSIS sur des ordinateurs
Linux. Pour plus d’informations, consultez Extraire, transformer et charger des
données sur Linux avec SSIS.

Améliorations de la connectivité. Connectez-vous aux flux OData de Microsoft


Dynamics AX Online et Microsoft Dynamics CRM Online avec les composants
OData mis à jour.

Nouveautés dans Azure Data Factory


Avec la préversion publique d’Azure Data Factory version 2 de septembre 2017, vous
pouvez désormais effectuer les opérations suivantes :
Déployer des packages dans la base de données du catalogue SSIS (SSISDB) sur
Azure SQL Database.
Exécuter des packages déployés sur Azure sur le runtime d’intégration Azure-SSIS,
composant d’Azure Data Factory version 2.

Pour plus d’informations, consultez Effectuer un « lift-and-shift » des charges de travail


SQL Server Integration Services vers le cloud.

Ces nouvelles fonctionnalités nécessitent SQL Server Data Tools (SSDT) version 17.2 ou
ultérieure, mais ne nécessitent pas SQL Server 2017 ou SQL Server 2016. Quand vous
déployez des packages sur Azure, l’Assistant Déploiement de package met toujours à
niveau les packages avec le format de package le plus récent.

Nouveautés dans le Feature Pack Azure


Outre les améliorations de connectivité dans SQL Server, le Feature Pack Integration
Services pour Azure a ajouté la prise en charge d’Azure Data Lake Store. Pour plus
d’informations, consultez le billet de blog intitulé New Azure Feature Pack Release
Strengthening ADLS Connectivity (Publication du nouveau Feature Pack Azure
renforçant la connectivité ADLS) . Voir également Feature Pack Azure pour Integration
Services (SSIS).

Nouveautés de SQL Server Data Tools (SSDT)


Vous pouvez maintenant développer des projets et des packages SSIS qui ciblent les
versions de SQL Server de 2012 à 2017 dans Visual Studio 2017 ou Visual Studio 2015.
Pour plus d’informations, consultez Télécharger SSDT (SQL Server Data Tools).

Nouveautés de SSIS dans SQL Server 2017 RC1

Fonctionnalités nouvelles et modifiées dans Scale Out


pour SSIS
Scale Out Master prend désormais en charge la haute disponibilité. Vous pouvez
activer AlwaysOn pour SSISDB et configurer le clustering de basculement Windows
Server pour le serveur qui héberge le service Scale Out Master. En appliquant cette
modification à Scale Out Master, vous évitez un point de défaillance unique et
bénéficiez d’une haute disponibilité pour l’ensemble du déploiement Scale Out.
La gestion de basculement des journaux d’exécution des Scale Out Workers est
améliorée. Les journaux d’exécution sont conservés sur le disque local au cas où le
Scale Out Worker s’arrêterait de manière inattendue. Plus tard, quand le worker
redémarre, il recharge les journaux persistants et continue à les enregistrer dans
SSISDB.
Le paramètre runincluster de la procédure stockée [catalog].[create_execution] est
renommé en runinscaleout pour des raisons de cohérence et de lisibilité. Ce
changement de nom de paramètre a l’impact suivant :
Si vous avez des scripts existants pour exécuter des packages dans Scale Out,
vous devez remplacer le nom du paramètre runincluster par runinscaleout pour
que les scripts fonctionnent dans la version RC1.
SQL Server Management Studio (SSMS) 17.1 et versions antérieures ne peuvent
pas déclencher l’exécution du package dans Scale Out dans la version RC1. Le
message d'erreur est : « @runincluster n’est pas un paramètre pour la procédure
create_execution ». Ce problème est résolu dans la prochaine version de SSMS,
la version 17.2. Les versions 17.2 et ultérieures de SSMS prennent en charge le
nouveau nom de paramètre et l’exécution de package dans Scale Out. Jusqu’à
ce que SSMS version 17.2 soit disponible, en guise de solution de
contournement vous pouvez utiliser votre version existante de SSMS pour
générer le script d’exécution du package, remplacer le nom du paramètre
runincluster par runinscaleout dans le script, puis exécuter le script.
Le catalogue SSIS a une nouvelle propriété globale afin de spécifier le mode par
défaut pour l’exécution de packages SSIS. Cette nouvelle propriété s’applique
quand vous appelez la procédure stockée [catalog].[create_execution] avec le
paramètre runinscaleout défini sur null. Ce mode s’applique également aux travaux
de l’Agent SQL de SSIS. Vous pouvez définir la nouvelle propriété globale dans la
boîte de dialogue Propriétés du nœud SSISDB dans SSMS, ou avec la commande
suivante :

SQL

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

Nouveautés de SSIS dans SQL Server 2017 CTP


2.1

Fonctionnalités nouvelles et modifiées dans Scale Out


pour SSIS
Vous pouvez maintenant utiliser le paramètre Use32BitRuntime quand vous
déclenchez l’exécution dans Scale Out.
Les performances de journalisation dans SSISDB pour les exécutions de package
dans Scale Out ont été améliorées. Les journaux Message d’événement et Contexte
de message sont désormais écrits dans SSISDB en mode batch plutôt qu’un par un.
Voici quelques remarques supplémentaires sur cette amélioration :
Certains rapports dans la version actuelle de SQL Server Management Studio
(SSMS) n’affichent pas ces journaux pour les exécutions dans Scale Out. Nous
estimons qu’ils seront pris en charge dans la prochaine version de SSMS. Les
rapports affectés incluent le rapport Toutes les connexions, le rapport Contexte
de l’erreur et la section Informations de connexion dans le tableau de bord
Integration Services.
Une nouvelle colonne event_message_guid a été ajoutée. Utilisez cette colonne
pour joindre les vues [catalog].[event_message_context] et [catalog].
[event_messages] au lieu d’utiliser event_message_id quand vous interrogez ces
journaux d’exécutions dans Scale Out.
Pour obtenir l’application de gestion pour SSIS Scale Out, téléchargez SQL Server
Management Studio (SSMS) 17.1 ou version ultérieure.

Nouveautés de SSIS dans SQL Server 2017 CTP


2.0
Il n’y a pas de nouvelles fonctionnalités SSIS dans SQL Server 2017 CTP 2.0.

Nouveautés de SSIS dans SQL Server 2017 CTP


1.4
Il n’y a pas de nouvelles fonctionnalités SSIS dans SQL Server 2017 CTP 1.4.

Nouveautés de SSIS dans SQL Server 2017 CTP


1.3
Il n’y a pas de nouvelles fonctionnalités SSIS dans SQL Server 2017 CTP 1.3.

Nouveautés de SSIS dans SQL Server 2017 CTP


1.2
Il n’y a pas de nouvelles fonctionnalités SSIS dans SQL Server 2017 CTP 1.2.

Nouveautés de SSIS dans SQL Server 2017 CTP


1.1
Il n’y a pas de nouvelles fonctionnalités SSIS dans SQL Server 2017 CTP 1.1.

Nouveautés de SSIS dans SQL Server 2017 CTP


1.0

Scale Out pour SSIS


La fonctionnalité Scale Out facilite grandement l’exécution de SSIS sur plusieurs
ordinateurs.

Après l’installation du Scale Out Master et des Scale Out Workers, le package peut être
distribué pour s’exécuter automatiquement sur différents Workers. Si l’exécution est
arrêtée inopinément, une nouvelle tentative est effectuée automatiquement. De plus,
vous pouvez gérer toutes les exécutions et Workers de manière centralisée à l’aide du
Master.

Pour plus d’informations, consultez Integration Services Scale Out.

Prise en charge des ressources Microsoft Dynamics


Online
Le Gestionnaire de connexions OData et de sources OData prennent désormais en
charge la connexion aux flux OData de Microsoft Dynamics AX Online et Microsoft
Dynamics CRM Online.
Fonctionnalités Integration Services
prises en charge par les éditions de SQL
Server
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette rubrique fournit des détails sur les fonctionnalités de SQL Server Integration
Services (SSIS) prises en charge par les différentes éditions de SQL Server.

Pour connaître les fonctionnalités prises en charge par les éditions Evaluation et
Developer, consultez les fonctionnalités répertoriées pour Enterprise Edition dans les
tableaux suivants.

Pour obtenir les notes de publication les plus récentes et des informations sur les
nouveautés, consultez les articles suivants :

Notes de publication de SQL Server 2016


Nouveautés d’Integration Services dans SQL Server 2016
Nouveautés d’Integration Services dans SQL Server 2017

Essayez SQL Server 2016 !

La version d’évaluation de SQL Server est disponible pendant une période d’évaluation
de 180 jours.

Télécharger SQL Server 2016 à partir du Centre d’évaluation

Nouvelles fonctionnalités Integration Services


dans SQL Server 2017
Fonctionnalité Entreprise standard Web Express Express
with
Advanced
Services

Scale Out Master Oui

Scale Out Worker Oui Oui 1 TBD TBD TBD


Fonctionnalité Entreprise standard Web Express Express
with
Advanced
Services

Prise en charge de Microsoft Dynamics Oui Oui


AX et Microsoft Dynamics CRM dans les
composants OData 2

Prise en charge Linux Oui Oui Oui

1 Si vous exécutez des packages qui nécessitent des fonctionnalités Entreprise


uniquement dans Scale Out, les Scale Out Workers doivent également s’exécuter sur des
instances de SQL Server Entreprise.

2
Cette fonctionnalité est également prise en charge dans SQL Server 2016 avec Service
Pack 1.

Assistant Importation et Exportation SQL


Server
Fonctionnalité Entreprise standard Web Express with Express
Advanced
Services

Assistant Importation et Oui Oui Oui Oui1 Oui1


Exportation SQL Server

1 DTSWizard.exe n’est pas fourni avec SQL sur Linux. Toutefois, dtexec sur Linux peut
être utilisé pour exécuter un package créé par DTSWizard sur Windows.

Integration Services
Fonctionnalité Entreprise standard Web Express with Express
Advanced
Services

Connecteurs de source de Oui Oui


données intégrés

Tâches et transformations Oui Oui


intégrées

Source et destination ODBC Oui Oui


Fonctionnalité Entreprise standard Web Express with Express
Advanced
Services

Connecteurs et tâches de sources Oui Oui


de données Azure

Connecteurs et tâches Oui Oui


Hadoop/HDFS

Outils de profilage de données de Oui Oui


base

Integration Services - sources et destinations


avancées
Fonctionnalité Entreprise standard Web Express with Express
Advanced
Services

Source et destination Oracle hautes Oui


performances par Attunity

Source et destination hautes Oui


performances Teradata par Attunity

Source et destination SAP BW Oui

Destination d’apprentissage du Oui


modèle d’exploration de données

Destination de traitement de Oui


dimension

Destination de traitement de partition Oui

Integration Services - Tâches et transformations


avancées
Fonctionnalité Entreprise standard Web Express with Express
Advanced
Services

Composants de capture de données Oui


modifiées par Attunity 1
Fonctionnalité Entreprise standard Web Express with Express
Advanced
Services

Transformation de requête Oui


d'exploration de données

Transformations de regroupement Oui


probable et de recherche floue

Transformations d’extraction de terme Oui


et de recherche de terme

1
Les composants de capture de données modifiées par Attunity nécessitent l’édition
Entreprise. Le service de capture de données modifiées et le concepteur de capture de
données modifiées, toutefois, ne nécessitent pas l’édition Entreprise. Vous pouvez
utiliser le concepteur et le service sur un ordinateur où SSIS n’est pas installé.
Documentation Integration Services
pour les développeurs
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Integration Services inclut un modèle objet entièrement réécrit, auquel ont été ajoutées
de nombreuses fonctionnalités, afin d'offrir un outil convivial, souple et puissant pour
étendre et programmer des packages. Les développeurs peuvent étendre et
programmer pratiquement tous les aspects des packages Integration Services.

En tant que développeur Integration Services, vous disposez de deux méthodes de


programmation Integration Services fondamentales :

Vous pouvez étendre des packages en écrivant des composants qui deviennent
disponibles dans le concepteur SSIS pour fournir des fonctionnalités
personnalisées dans un package.

Vous pouvez créer, configurer et exécuter des packages par programme à partir de
vos propres applications.

Si vous constatez que les composants intégrés dans Integration Services ne satisfont pas
vos besoins, vous pouvez étendre la puissance d'Integration Services en codant vos
propres extensions. Cette méthode propose deux options distinctes :

Pour une utilisation ad hoc dans un seul package, vous pouvez créer une tâche
personnalisée en écrivant du code dans la tâche de script, ou un composant de
flux de données personnalisé en écrivant du code dans le composant Script, que
vous pouvez configurer en tant que source, transformation ou destination. Ces
wrappers puissants se chargent d'écrire le code d'infrastructure et vous permettent
ainsi de vous consacrer exclusivement au développement de vos fonctionnalités
personnalisées ; toutefois, ils sont difficilement réutilisables dans un contexte
différent.

Pour une utilisation dans plusieurs packages, vous pouvez créer des extensions
Integration Services personnalisées, telles que des gestionnaires de connexions,
des tâches, des énumérateurs, des modules fournisseurs d'informations et des
composants de flux. Le modèle objet Integration Services managé contient des
classes de base qui fournissent un point de départ et facilitent considérablement le
développement d'extensions personnalisées.
Si vous souhaitez créer des packages de manière dynamique, ou gérer et exécuter des
packages Integration Services à l'extérieur de l'environnement de développement, vous
pouvez manipuler les packages par programme. Vous pouvez charger, modifier et
exécuter des packages existants, ou créer et exécuter par programme des packages
entièrement nouveaux. Cette méthode vous offre une gamme continue d'options :

Charger et exécuter un package existant sans modification.

Charger un package existant, le reconfigurer (par exemple, spécifier une source de


données différente) et l'exécuter.

Créer un package, ajouter et configurer des composants, apporter des


modifications objet par objet et propriété par propriété, l’enregistrer, puis
l’exécuter.

Ces méthodes de programmation Integration Services sont décrites dans cette section
et illustrées par des exemples.

Dans cette section


Vue d'ensemble de la programmation Integration Services
Décrit les rôles de flux de contrôle et de flux dans le développement Integration
Services.

Présentation des transformations synchrones et asynchrones


Décrit la distinction importante entre les sorties synchrones et les sorties asynchrones,
ainsi que les composants qui les utilisent dans le flux de données.

Utilisation de gestionnaires de connexions par programme


Répertorie les gestionnaires de connexions que vous pouvez utiliser à partir du code
managé, ainsi que les valeurs que les gestionnaires de connexions retournent quand le
code appelle la méthode AcquireConnection.

Extension de packages avec des scripts


Décrit comment étendre le flux de contrôle à l’aide de la tâche de script, ou le flux de
données à l’aide du composant Script.

Extension de packages avec des objets personnalisés


Décrit comment créer et programmer des tâches personnalisées, des composants de
flux de données et d'autres objets de package à utiliser dans plusieurs packages.

Génération de packages par programme


Décrit comment créer, configurer et enregistrer des packages Integration Services par
programme.
Exécution et gestion de packages par programme
Décrit comment énumérer, exécuter et gérer des packages Integration Services par
programme.

Informations de référence
Guide de référence des erreurs et des messages propres à Integration Services
Répertorie les codes d'erreur Integration Services prédéfinis, avec leur nom symbolique
et leur description.

Sections connexes
Outils de dépannage pour le développement des packages
Décrit les fonctionnalités et les outils fournis par Integration Services pour le dépannage
des packages lors du développement.

Voir aussi
SQL Server Integration Services
Compatibilité descendante d'Integration
Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette rubrique décrit les modifications entre les versions de SQL Server Integration
Services. Elle traite des fonctionnalités qui ne sont plus disponibles ou destinées à être
supprimées dans les versions futures. Elle décrit également les changements importants
apportés au produit, connus pour empêcher le bon fonctionnement ou pour modifier le
comportement d'une application personnalisée incluant la fonctionnalité Integration
Services .

Fonctionnalités Integration Services dépréciées


Cette rubrique décrit les fonctionnalités dépréciées d’Integration Services encore
disponibles dans la version actuelle de SQL Server Integration Services. Il est prévu que
ces fonctionnalités soient supprimées dans une prochaine version de SQL Server.
N’utilisez pas de fonctions déconseillées dans les nouvelles applications.

SQL Server 2022 (16.x) ne compte aucune fonctionnalité Integration Services dépréciée.

Fonctionnalités Integration Services


abandonnées
Cette rubrique décrit les fonctionnalités d’Integration Services qui ne sont plus
disponibles dans la version actuelle de SQL Server Integration Services.

Change Data Capture Designer pour Oracle d’Attunity n’est pas pris en charge dans
SQL Server 2022 (16.x).

Changements cassants apportés aux


fonctionnalités Integration Services
Cette section décrit les changements essentiels apportés à Integration Services. Ces
modifications peuvent interrompre les applications, scripts ou autres éléments basés sur
les versions antérieures de SQL Server. Il se peut que vous rencontriez ces problèmes
pendant une mise à niveau.
Aucun changement cassant n’a été apporté aux fonctionnalités Integration Services dans
SQL Server 2022 (16.x).

Changements de comportement des


fonctionnalités Integration Services
Cette section décrit les changements de comportement dans Integration Services. Les
modifications de comportement affectent le mode de fonctionnement ou d’interaction
des fonctionnalités dans la version actuelle de SQL Server Integration Services par
rapport aux versions précédentes de SQL Server.

Le comportement des fonctionnalités Integration Services dans SQL Server 2022 (16.x)
est inchangé.
Déployer un projet SSIS avec SQL Server
Management Studio (SSMS)
Article • 30/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Ce guide de démarrage rapide montre comment utiliser SQL Server Management Studio
(SSMS) pour se connecter à la base de données du catalogue SSIS, puis exécuter
l’Assistant Déploiement d’Integration Services pour déployer un projet SSIS sur le
catalogue SSIS.

SQL Server Management Studio est un environnement intégré pour la gestion des
infrastructures SQL, de SQL Server à SQL Database. Pour plus d’informations sur SSMS,
consultez SQL Server Management Studio (SSMS).

Prérequis
Avant de commencer, vérifiez que vous disposez de la dernière version de SQL Server
Management Studio. Pour télécharger SSMS, consultez Télécharger SQL Server
Management Studio (SSMS).

La validation décrite dans cet article pour le déploiement sur Azure SQL Database
nécessite SQL Server Data Tools (SSDT) version 17.4 ou ultérieure. Pour obtenir la
dernière version de SSDT, consultez Télécharger SSDT (SQL Server Data Tools).

Un serveur Azure SQL Database écoute sur le port 1433. Si vous essayez de vous
connecter à un serveur Azure SQL Database en étant derrière un pare-feu d’entreprise,
ce port doit être ouvert dans le pare-feu d’entreprise pour que vous puissiez vous
connecter.

Plateformes prises en charge


Vous pouvez utiliser les informations de ce guide de démarrage rapide pour déployer un
projet SSIS sur les plateformes suivantes :

SQL Server sur Windows.

Azure SQL Database. Pour plus d’informations sur le déploiement et l’exécution de


packages dans Azure, consultez Effectuer un « lift-and-shift » des charges de
travail SQL Server Integration Services vers le cloud.
Vous ne pouvez pas utiliser les informations de ce guide de démarrage rapide pour
déployer un package SSIS sur SQL Server sur Linux. Pour plus d’informations sur
l’exécution de packages sur Linux, consultez Extraire, transformer et charger des
données sur Linux avec SSIS.

Pour Azure SQL Database, obtenez les


informations de connexion.
Pour déployer le projet sur Azure SQL Database, obtenez les informations de connexion
dont vous avez besoin pour vous connecter à la base de données du catalogue SSIS
(SSISDB). Vous avez besoin des informations de connexion et du nom de serveur
complet dans les procédures qui suivent.

1. Connectez-vous au portail Azure .


2. Sélectionnez Bases de données SQL dans le menu de gauche, puis sélectionnez la
base de données SSISDB dans la page Bases de données SQL.
3. Dans la page Vue d’ensemble de votre base de données, notez le nom complet du
serveur. Pour voir l’option Cliquer pour copier, pointez sur le nom du serveur.
4. Si vous avez oublié vos informations de connexion au serveur Azure SQL Database,
accédez à la page du serveur SQL Database pour voir le nom de l’administrateur
du serveur. Vous pouvez réinitialiser le mot de passe si nécessaire.

Méthodes d’authentification pour le


déploiement
Si vous déployez sur un serveur SQL Server avec l’Assistant Déploiement, vous devez
utiliser l’authentification Windows. Vous ne pouvez pas utiliser l’authentification SQL
Server.

Si vous déployez sur un serveur Azure SQL Database, vous devez utiliser
l’authentification SQL Server ou l’authentification Azure Active Directory. Vous ne
pouvez pas utiliser l’authentification Windows.

Se connecter à la base de données SSISDB


Utilisez SQL Server Management Studio pour établir une connexion au catalogue SSIS.

1. Ouvrez SQL Server Management Studio.

2. Dans la fenêtre Se connecter au serveur, entrez les valeurs suivantes :


Paramètre Valeur En savoir plus
suggérée

Type de serveur Moteur de base Cette valeur est requise.


de données

Nom du serveur Nom complet Si vous vous connectez à un serveur Azure SQL
du serveur Database, le nom est au format suivant :
<server_name>.database.windows.net .

Authentification l’authentification Avec l’authentification SQL Server, vous pouvez vous


SQL Server connecter à SQL Server ou à Azure SQL Database.
Consultez Méthodes d’authentification dans le
déploiement dans cet article.

Connexion Compte Il s’agit du compte que vous avez spécifié quand


d’administrateur vous avez créé le serveur.
de serveur

Mot de passe Mot de passe de Il s’agit du mot de passe que vous avez spécifié
votre compte quand vous avez créé le serveur.
d’administrateur
de serveur

3. Cliquez sur Connecter. La fenêtre Explorateur d’objets s’ouvre dans SSMS.

4. Dans l’Explorateur d’objets, développez Catalogues Integration Services, puis


développez SSISDB pour afficher les objets de la base de données de catalogues
SSIS.

Démarrer l’Assistant Déploiement d’Integration


Services
1. Dans l’Explorateur d’objets, après avoir développé les nœuds Catalogues
Integration Services et SSISDB, développez un dossier.

2. Sélectionnez le nœud Projets.

3. Cliquez avec le bouton droit sur le nœud Projets, puis sélectionnez Déployer le
projet. L’Assistant Déploiement d’Integration Services s’ouvre. Vous pouvez
déployer un projet à partir du catalogue actif ou du système de fichiers.

Déployer un projet avec l’Assistant


1. Dans la page Introduction de l’Assistant, examinez l’introduction. Cliquez sur
Suivant pour ouvrir la page Sélectionner la source.

2. Dans la page Sélectionner la source, sélectionnez le projet SSIS existant à


déployer.

Pour déployer un fichier de déploiement de projet que vous avez créé en


générant un projet dans l’environnement de développement, sélectionnez
Fichier de déploiement de projet et entrez le chemin du fichier .ispac.
Pour déployer un projet déjà déployé dans une base de données du
catalogue SSIS, sélectionnez Catalogue Integration Services et entrez le nom
du serveur et le chemin du projet dans le catalogue. Cliquez sur Suivant pour
afficher la page Sélectionner la destination .

3. Dans la page Sélectionner la destination, sélectionnez la destination du projet.

Entrez le nom complet du serveur. Si le serveur cible est un serveur Azure


SQL Database, le nom est au format suivant :
<server_name>.database.windows.net .

Fournissez les informations d’authentification et sélectionnez Se connecter.


Consultez Méthodes d’authentification dans le déploiement dans cet article.
Sélectionnez ensuite Parcourir pour sélectionner le dossier cible dans SSISDB.
Ensuite, sélectionnez Suivant pour ouvrir la page Vérifier. (Le bouton Suivant
est activé seulement si vous sélectionnez Se connecter.)

4. Dans la page Vérifier, vérifiez les paramètres que vous avez sélectionnés.

Vous pouvez modifier vos sélections en cliquant sur Précédentou en cliquant


sur l'une des étapes dans le volet gauche.
Cliquez sur Déployer pour démarrer le processus de déploiement.

5. Si vous déployez sur un serveur Azure SQL Database, la page Valider s’ouvre et
inspecte les packages du projet à la recherche de problèmes connus susceptibles
d’impacter leur exécution dans Azure-SSIS Integration Runtime. Pour plus
d’informations, consultez Valider des packages SSIS déployés sur Azure.

6. Une fois le processus de déploiement effectué, la page Résultats s’affiche. Cette


page indique la réussite ou l’échec de chaque action.

Si l’action a échoué, cliquez sur Échec dans la colonne Résultat pour afficher
une explication de l’erreur.
Si vous le souhaitez, cliquez sur Enregistrer le rapport pour enregistrer les
résultats dans un fichier XML.
Cliquez sur Fermer pour quitter l’Assistant.
Étapes suivantes
Envisagez d’autres méthodes pour déployer un package.
Déployer un package SSIS avec Transact-SQL (SSMS)
Déployer un package SSIS avec Transact-SQL (VS Code)
Déployer un package SSIS à partir de l’invite de commandes
Déployer un package SSIS avec PowerShell
Déployer un package SSIS avec C#
Exécutez un package déployé. Pour exécuter un package, vous pouvez choisir
parmi plusieurs outils et langages. Pour plus d’informations, consultez les articles
suivants :
Exécuter un package SSIS avec SSMS
Exécuter un package SSIS avec Transact-SQL (SSMS)
Exécuter un package SSIS avec Transact-SQL (VS Code)
Exécuter un package SSIS à partir de l’invite de commandes
Exécuter un package SSIS avec PowerShell
Exécuter un package SSIS avec C#
Déployer un projet SSIS à partir de
SSMS avec Transact-SQL
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Ce guide de démarrage rapide montre comment utiliser SQL Server Management Studio
(SSMS) pour se connecter à la base de données du catalogue SSIS, puis utiliser des
instructions Transact-SQL pour déployer un projet SSIS dans le catalogue SSIS.

SQL Server Management Studio est un environnement intégré pour la gestion des
infrastructures SQL, de SQL Server à SQL Database. Pour plus d’informations sur SSMS,
consultez SQL Server Management Studio (SSMS).

Prérequis
Avant de commencer, vérifiez que vous disposez de la dernière version de SQL Server
Management Studio. Pour télécharger SSMS, consultez Télécharger SQL Server
Management Studio (SSMS).

Plateformes prises en charge


Vous pouvez utiliser les informations de ce guide de démarrage rapide pour déployer un
projet SSIS sur les plateformes suivantes :

SQL Server sur Windows.

Vous ne pouvez pas utiliser les informations de ce guide de démarrage rapide pour
déployer un package SSIS sur Azure SQL Database. La procédure stockée
catalog.deploy_project attend le chemin du fichier .ispac dans le système de fichiers
local. Pour plus d’informations sur le déploiement et l’exécution de packages dans
Azure, consultez Effectuer un « lift-and-shift » des charges de travail SQL Server
Integration Services vers le cloud.

Vous ne pouvez pas utiliser les informations de ce guide de démarrage rapide pour
déployer un package SSIS sur SQL Server sur Linux. Pour plus d’informations sur
l’exécution de packages sur Linux, consultez Extraire, transformer et charger des
données sur Linux avec SSIS.
Méthode d’authentification prise en charge
Consultez Méthodes d’authentification pour le déploiement.

Se connecter à la base de données du


catalogue SSIS
Utilisez SQL Server Management Studio pour établir une connexion au catalogue SSIS.

1. Ouvrez SQL Server Management Studio.

2. Dans la fenêtre Se connecter au serveur, entrez les valeurs suivantes :

Paramètre Valeur suggérée En savoir plus

Type de serveur Moteur de base de données Cette valeur est requise.

Nom du serveur Nom complet du serveur

Authentification l’authentification SQL Server

Connexion Compte d’administrateur de Il s’agit du compte que vous avez


serveur spécifié quand vous avez créé le serveur.

Mot de passe Mot de passe de votre Il s’agit du mot de passe que vous avez
compte d’administrateur de spécifié quand vous avez créé le serveur.
serveur

3. Cliquez sur Connecter. La fenêtre Explorateur d’objets s’ouvre dans SSMS.

4. Dans l’Explorateur d’objets, développez Catalogues Integration Services, puis


développez SSISDB pour afficher les objets de la base de données de catalogues
SSIS.

Exécuter le code T-SQL


Exécutez le code Transact-SQL suivant pour déployer un projet SSIS.

1. Dans SSMS, ouvrez une nouvelle fenêtre de requête et collez le code suivant.

2. Mettez à jour les valeurs de paramètres dans la procédure stockée


catalog.deploy_project pour votre système.

3. Vérifiez que SSISDB est la base de données active.


4. Exécutez le script.

5. Dans l’Explorateur d’objets, actualisez le contenu de SSISDB si nécessaire et


vérifiez la présence du projet que vous avez déployé.

SQL

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

Étapes suivantes
Envisagez d’autres méthodes pour déployer un package.
Déployer un package SSIS avec SSMS
Déployer un package SSIS avec Transact-SQL (VS Code)
Déployer un package SSIS à partir de l’invite de commandes
Déployer un package SSIS avec PowerShell
Déployer un package SSIS avec C#
Exécutez un package déployé. Pour exécuter un package, vous pouvez choisir
parmi plusieurs outils et langages. Pour plus d’informations, consultez les articles
suivants :
Exécuter un package SSIS avec SSMS
Exécuter un package SSIS avec Transact-SQL (SSMS)
Exécuter un package SSIS avec Transact-SQL (VS Code)
Exécuter un package SSIS à partir de l’invite de commandes
Exécuter un package SSIS avec PowerShell
Exécuter un package SSIS avec C#
Déployer un projet SSIS à partir de
Visual Studio Code avec Transact-SQL
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Ce guide de démarrage rapide montre comment utiliser Visual Studio Code pour se
connecter à la base de données du catalogue SSIS, puis utiliser des instructions
Transact-SQL pour déployer un projet SSIS dans le catalogue SSIS.

Visual Studio Code est un éditeur de code pour Windows, macOS et Linux qui prend en
charge les extensions, notamment l’extension mssql pour la connexion à Microsoft SQL
Server, à Azure SQL Database et à Azure Synapse Analytics. Pour plus d’informations sur
VS Code, consultez Visual Studio Code .

Prérequis
Avant de commencer, vérifiez que vous avez installé la dernière version de Visual Studio
Code et chargé l’extension mssql . Pour télécharger ces outils, consultez les pages
suivantes :

Télécharger Visual Studio Code


Extension mssql

Plateformes prises en charge


Vous pouvez utiliser les informations de ce guide de démarrage rapide pour déployer un
projet SSIS sur les plateformes suivantes :

SQL Server sur Windows.

Vous ne pouvez pas utiliser les informations de ce guide de démarrage rapide pour
déployer un package SSIS sur Azure SQL Database. La procédure stockée
catalog.deploy_project attend le chemin du fichier .ispac dans le système de fichiers

local. Pour plus d’informations sur le déploiement et l’exécution de packages dans


Azure, consultez Effectuer un « lift-and-shift » des charges de travail SQL Server
Integration Services vers le cloud.

Vous ne pouvez pas utiliser les informations de ce guide de démarrage rapide pour
déployer un package SSIS sur SQL Server sur Linux. Pour plus d’informations sur
l’exécution de packages sur Linux, consultez Extraire, transformer et charger des
données sur Linux avec SSIS.

Définir SQL comme mode de langage dans VS


Code
Pour activer les commandes mssql et T-SQL IntelliSense, définissez SQL comme mode
de langage dans Visual Studio Code.

1. Ouvrez Visual Studio Code, puis ouvrez une nouvelle fenêtre.

2. Cliquez sur Texte brut dans le coin inférieur droit de la barre d’état.

3. Dans le menu déroulant Sélectionner le mode de langage qui s’affiche,


sélectionnez ou entrez SQL, puis appuyez sur Entrée pour définir SQL comme
mode de langage.

Méthode d’authentification prise en charge


Consultez Méthodes d’authentification pour le déploiement.

Se connecter à la base de données du


catalogue SSIS
Utilisez Visual Studio Code pour établir une connexion au catalogue SSIS.

1. Dans VS Code, appuyez sur CTRL+MAJ+P (ou F1) pour ouvrir la Palette de
commandes.

2. Tapez sqlcon, puis appuyez sur ENTRÉE.

3. Appuyez sur ENTRÉE pour sélectionner Créer un profil de connexion. Cette étape
crée un profil de connexion pour votre instance de SQL Server.

4. Suivez les invites pour spécifier les propriétés de connexion de ce nouveau profil
de connexion. Après avoir spécifié chaque valeur, appuyez sur ENTRÉE pour
continuer.

Paramètre Valeur suggérée En savoir plus

Nom du serveur Nom complet du serveur


Paramètre Valeur suggérée En savoir plus

Nom de la base SSISDB Nom de la base de données à laquelle se


de données connecter.

Authentification Connexion SQL

Nom Compte d’administrateur Il s’agit du compte que vous avez spécifié


d’utilisateur de serveur quand vous avez créé le serveur.

Mot de passe Mot de passe de votre Il s’agit du mot de passe que vous avez
(connexion compte d’administrateur spécifié quand vous avez créé le serveur.
SQL) de serveur

Enregistrer le Oui ou Non Si vous ne souhaitez pas entrer le mot de


mot de passe ? passe à chaque fois, sélectionnez Oui.

Entrez un nom Nom d’un profil, tel que Un nom de profil enregistré permet
pour ce profil mySSISServer d’accélérer votre connexion lors des
connexions suivantes.

5. Appuyez sur la touche ÉCHAP pour fermer le message d’information qui vous
informe que le profil est créé et connecté.

6. Vérifiez votre connexion dans la barre d’état.

Exécuter le code T-SQL


Exécutez le code Transact-SQL suivant pour déployer un projet SSIS.

1. Dans la fenêtre Éditeur, entrez la requête suivante dans la fenêtre de requête vide.

2. Mettez à jour les valeurs de paramètres dans la procédure stockée


catalog.deploy_project pour votre système.

3. Appuyez sur Ctrl+Maj+E pour exécuter le code et déployer le projet.

SQL

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
Étapes suivantes
Envisagez d’autres méthodes pour déployer un package.
Déployer un package SSIS avec SSMS
Déployer un package SSIS avec Transact-SQL (SSMS)
Déployer un package SSIS à partir de l’invite de commandes
Déployer un package SSIS avec PowerShell
Déployer un package SSIS avec C#
Exécutez un package déployé. Pour exécuter un package, vous pouvez choisir
parmi plusieurs outils et langages. Pour plus d’informations, consultez les articles
suivants :
Exécuter un package SSIS avec SSMS
Exécuter un package SSIS avec Transact-SQL (SSMS)
Exécuter un package SSIS avec Transact-SQL (VS Code)
Exécuter un package SSIS à partir de l’invite de commandes
Exécuter un package SSIS avec PowerShell
Exécuter un package SSIS avec C#
Déployer un projet SSIS à partir de
l’invite de commandes avec
ISDeploymentWizard.exe
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Ce guide de démarrage rapide montre comment déployer un projet SSIS à partir de


l’invite de commandes en exécutant l’Assistant Déploiement d’Integration Services,
ISDeploymentWizard.exe .

Pour plus d’informations sur l’Assistant Déploiement d’Integration Services, consultez


Assistant Déploiement d’Integration Services.

Prérequis
La validation décrite dans cet article pour le déploiement sur Azure SQL Database
nécessite SQL Server Data Tools (SSDT) version 17.4 ou ultérieure. Pour obtenir la
dernière version de SSDT, consultez Télécharger SSDT (SQL Server Data Tools).

Un serveur Azure SQL Database écoute sur le port 1433. Si vous essayez de vous
connecter à un serveur Azure SQL Database en étant derrière un pare-feu d’entreprise,
ce port doit être ouvert dans le pare-feu d’entreprise pour que vous puissiez vous
connecter.

Plateformes prises en charge


Vous pouvez utiliser les informations de ce guide de démarrage rapide pour déployer un
projet SSIS sur les plateformes suivantes :

SQL Server sur Windows.

Azure SQL Database. Pour plus d’informations sur le déploiement et l’exécution de


packages dans Azure, consultez Effectuer un « lift-and-shift » des charges de
travail SQL Server Integration Services vers le cloud.

Vous ne pouvez pas utiliser les informations de ce guide de démarrage rapide pour
déployer un package SSIS sur SQL Server sur Linux. Pour plus d’informations sur
l’exécution de packages sur Linux, consultez Extraire, transformer et charger des
données sur Linux avec SSIS.
Pour Azure SQL Database, obtenez les
informations de connexion.
Pour déployer le projet sur Azure SQL Database, obtenez les informations de connexion
dont vous avez besoin pour vous connecter à la base de données du catalogue SSIS
(SSISDB). Vous avez besoin des informations de connexion et du nom de serveur
complet dans les procédures qui suivent.

1. Connectez-vous au portail Azure .


2. Sélectionnez Bases de données SQL dans le menu de gauche, puis sélectionnez la
base de données SSISDB dans la page Bases de données SQL.
3. Dans la page Vue d’ensemble de votre base de données, notez le nom complet du
serveur. Pour voir l’option Cliquer pour copier, pointez sur le nom du serveur.
4. Si vous avez oublié vos informations de connexion au serveur Azure SQL Database,
accédez à la page du serveur SQL Database pour voir le nom de l’administrateur
du serveur. Vous pouvez réinitialiser le mot de passe si nécessaire.

Méthode d’authentification prise en charge


Consultez Méthodes d’authentification pour le déploiement.

Démarrer l’Assistant Déploiement d’Integration


Services
1. Ouvrez une fenêtre d’invite de commandes.

2. Exécutez ISDeploymentWizard.exe . L’Assistant Déploiement d’Integration Services


s’ouvre.

Si le dossier qui contient ISDeploymentWizard.exe ne figure pas dans votre variable


d’environnement path , vous devrez peut-être utiliser la commande cd pour
basculer vers son répertoire. Pour SQL Server 2017, ce dossier est généralement
C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn .

Déployer un projet avec l’Assistant


1. Dans la page Introduction de l’Assistant, examinez l’introduction. Cliquez sur
Suivant pour ouvrir la page Sélectionner la source.
2. Dans la page Sélectionner la source, sélectionnez le projet SSIS existant à
déployer.

Pour déployer un fichier de déploiement de projet que vous avez créé en


générant un projet dans l’environnement de développement, sélectionnez
Fichier de déploiement de projet et entrez le chemin du fichier .ispac.
Pour déployer un projet déjà déployé dans une base de données du
catalogue SSIS, sélectionnez Catalogue Integration Services et entrez le nom
du serveur et le chemin du projet dans le catalogue. Cliquez sur Suivant pour
afficher la page Sélectionner la destination .

3. Dans la page Sélectionner la destination, sélectionnez la destination du projet.

Entrez le nom complet du serveur. Si le serveur cible est un serveur Azure


SQL Database, le nom est au format suivant :
<server_name>.database.windows.net .

Fournissez les informations d’authentification et sélectionnez Se connecter.


Consultez la section Méthodes d’authentification pour le déploiement de cet
article.
Sélectionnez ensuite Parcourir pour sélectionner le dossier cible dans SSISDB.
Ensuite, sélectionnez Suivant pour ouvrir la page Vérifier. (Le bouton Suivant
est activé seulement si vous sélectionnez Se connecter.)

4. Dans la page Vérifier, vérifiez les paramètres que vous avez sélectionnés.

Vous pouvez modifier vos sélections en cliquant sur Précédentou en cliquant


sur l'une des étapes dans le volet gauche.
Cliquez sur Déployer pour démarrer le processus de déploiement.

5. Si vous déployez sur un serveur Azure SQL Database, la page Valider s’ouvre et
inspecte les packages du projet à la recherche de problèmes connus susceptibles
d’impacter leur exécution dans Azure-SSIS Integration Runtime. Pour plus
d’informations, consultez Valider des packages SSIS déployés sur Azure.

6. Une fois le processus de déploiement effectué, la page Résultats s’affiche. Cette


page indique la réussite ou l’échec de chaque action.

Si l’action a échoué, cliquez sur Échec dans la colonne Résultat pour afficher
une explication de l’erreur.
Si vous le souhaitez, cliquez sur Enregistrer le rapport pour enregistrer les
résultats dans un fichier XML.
Cliquez sur Fermer pour quitter l’Assistant.
Étapes suivantes
Envisagez d’autres méthodes pour déployer un package.
Déployer un package SSIS avec SSMS
Déployer un package SSIS avec Transact-SQL (SSMS)
Déployer un package SSIS avec Transact-SQL (VS Code)
Déployer un package SSIS avec PowerShell
Déployer un package SSIS avec C#
Exécutez un package déployé. Pour exécuter un package, vous pouvez choisir
parmi plusieurs outils et langages. Pour plus d’informations, consultez les articles
suivants :
Exécuter un package SSIS avec SSMS
Exécuter un package SSIS avec Transact-SQL (SSMS)
Exécuter un package SSIS avec Transact-SQL (VS Code)
Exécuter un package SSIS à partir de l’invite de commandes
Exécuter un package SSIS avec PowerShell
Exécuter un package SSIS avec C#
Déployer un projet SSIS avec PowerShell
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Ce guide de démarrage rapide montre comment utiliser un script PowerShell pour se


connecter à un serveur de base de données et déployer un projet SSIS dans le catalogue
SSIS.

Prérequis
Un serveur Azure SQL Database écoute sur le port 1433. Si vous essayez de vous
connecter à un serveur Azure SQL Database en étant derrière un pare-feu d’entreprise,
ce port doit être ouvert dans le pare-feu d’entreprise pour que vous puissiez vous
connecter.

Plateformes prises en charge


Vous pouvez utiliser les informations de ce guide de démarrage rapide pour déployer un
projet SSIS sur les plateformes suivantes :

SQL Server sur Windows.

Azure SQL Database. Pour plus d’informations sur le déploiement et l’exécution de


packages dans Azure, consultez Effectuer un « lift-and-shift » des charges de
travail SQL Server Integration Services vers le cloud.

Vous ne pouvez pas utiliser les informations de ce guide de démarrage rapide pour
déployer un package SSIS sur SQL Server sur Linux. Pour plus d’informations sur
l’exécution de packages sur Linux, consultez Extraire, transformer et charger des
données sur Linux avec SSIS.

Pour Azure SQL Database, obtenez les


informations de connexion.
Pour déployer le projet sur Azure SQL Database, obtenez les informations de connexion
dont vous avez besoin pour vous connecter à la base de données du catalogue SSIS
(SSISDB). Vous avez besoin des informations de connexion et du nom de serveur
complet dans les procédures qui suivent.
1. Connectez-vous au portail Azure .
2. Sélectionnez Bases de données SQL dans le menu de gauche, puis sélectionnez la
base de données SSISDB dans la page Bases de données SQL.
3. Dans la page Vue d’ensemble de votre base de données, notez le nom complet du
serveur. Pour voir l’option Cliquer pour copier, pointez sur le nom du serveur.
4. Si vous avez oublié vos informations de connexion au serveur Azure SQL Database,
accédez à la page du serveur SQL Database pour voir le nom de l’administrateur
du serveur. Vous pouvez réinitialiser le mot de passe si nécessaire.
5. Cliquez sur Afficher les chaînes de connexion de la base de données.
6. Examinez la chaîne de connexion ADO.NET complète.

Méthode d’authentification prise en charge


Consultez Méthodes d’authentification pour le déploiement.

Fournisseur PowerShell SSIS


Entrez les valeurs appropriées pour les variables en haut du script suivant, puis exécutez
le script pour déployer le projet SSIS.

7 Notes

L’exemple suivant utilise l’authentification Windows pour effectuer un déploiement


sur un serveur SQL local. Utilisez le cmdlet New-PSDive pour établir une connexion à
l’aide de l’authentification SQL Server. Si vous vous connectez à un serveur Azure
SQL Database, vous ne pouvez pas utiliser l’authentification Windows.

PowerShell

# 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

Script PowerShell
Entrez les valeurs appropriées pour les variables en haut du script suivant, puis exécutez
le script pour déployer le projet SSIS.

7 Notes

L’exemple suivant utilise l’authentification Windows pour effectuer un déploiement


sur un serveur SQL local. Pour utiliser l’authentification SQL Server, remplacez
l’argument Integrated Security=SSPI; par User ID=<user name>;Password=
<password>; . Si vous vous connectez à un serveur Azure SQL Database, vous ne
pouvez pas utiliser l’authentification Windows.

PowerShell

# 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.Integrati
onServices, "+
"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."

Étapes suivantes
Envisagez d’autres méthodes pour déployer un package.
Déployer un package SSIS avec SSMS
Déployer un package SSIS avec Transact-SQL (SSMS)
Déployer un package SSIS avec Transact-SQL (VS Code)
Déployer un package SSIS à partir de l’invite de commandes
Déployer un package SSIS avec C#
Exécutez un package déployé. Pour exécuter un package, vous pouvez choisir
parmi plusieurs outils et langages. Pour plus d’informations, consultez les articles
suivants :
Exécuter un package SSIS avec SSMS
Exécuter un package SSIS avec Transact-SQL (SSMS)
Exécuter un package SSIS avec Transact-SQL (VS Code)
Exécuter un package SSIS à partir de l’invite de commandes
Exécuter un package SSIS avec PowerShell
Exécuter un package SSIS avec C#
Déployer un projet SSIS avec du code
C# dans une application .NET
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Ce guide de démarrage rapide montre comment écrire du code C# pour se connecter à


un serveur de base de données et déployer un projet SSIS.

Pour créer une application C#, vous pouvez utiliser Visual Studio, Visual Studio Code ou
un autre outil de votre choix.

Prérequis
Avant de commencer, vérifiez que Visual Studio ou Visual Studio Code est installé sur
votre ordinateur. Téléchargez l’édition Community gratuite de Visual Studio, ou le
logiciel Visual Studio Code gratuit, à partir de la page de Téléchargements Visual
Studio .

Un serveur Azure SQL Database écoute sur le port 1433. Si vous essayez de vous
connecter à un serveur Azure SQL Database en étant derrière un pare-feu d’entreprise,
ce port doit être ouvert dans le pare-feu d’entreprise pour que vous puissiez vous
connecter.

Plateformes prises en charge


Vous pouvez utiliser les informations de ce guide de démarrage rapide pour déployer un
projet SSIS sur les plateformes suivantes :

SQL Server sur Windows.

Azure SQL Database. Pour plus d’informations sur le déploiement et l’exécution de


packages dans Azure, consultez Effectuer un « lift-and-shift » des charges de
travail SQL Server Integration Services vers le cloud.

Vous ne pouvez pas utiliser les informations de ce guide de démarrage rapide pour
déployer un package SSIS sur SQL Server sur Linux. Pour plus d’informations sur
l’exécution de packages sur Linux, consultez Extraire, transformer et charger des
données sur Linux avec SSIS.
Pour Azure SQL Database, obtenez les
informations de connexion.
Pour déployer le projet sur Azure SQL Database, obtenez les informations de connexion
dont vous avez besoin pour vous connecter à la base de données du catalogue SSIS
(SSISDB). Vous avez besoin des informations de connexion et du nom de serveur
complet dans les procédures qui suivent.

1. Connectez-vous au portail Azure .


2. Sélectionnez Bases de données SQL dans le menu de gauche, puis sélectionnez la
base de données SSISDB dans la page Bases de données SQL.
3. Dans la page Vue d’ensemble de votre base de données, notez le nom complet du
serveur. Pour voir l’option Cliquer pour copier, pointez sur le nom du serveur.
4. Si vous avez oublié vos informations de connexion au serveur Azure SQL Database,
accédez à la page du serveur SQL Database pour voir le nom de l’administrateur
du serveur. Vous pouvez réinitialiser le mot de passe si nécessaire.
5. Cliquez sur Afficher les chaînes de connexion de la base de données.
6. Examinez la chaîne de connexion ADO.NET complète. Votre code peut aussi utiliser
un SqlConnectionStringBuilder pour recréer cette chaîne de connexion avec
chaque valeur de paramètre que vous fournissez.

Méthode d’authentification prise en charge


Consultez Méthodes d’authentification pour le déploiement.

Créer un projet Visual Studio


1. Dans Visual Studio, choisissez Fichier, Nouveau, Projet.
2. Dans la boîte de dialogue Nouveau projet, développez Visual C#.
3. Sélectionnez Application console et entrez run_ssis_project comme nom de projet.
4. Cliquez sur OK pour créer et ouvrir le nouveau projet dans Visual Studio.

Ajouter des références


1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le dossier
Références, puis sélectionnez Ajouter une référence. La boîte de dialogue
Gestionnaire de références s’ouvre.
2. Dans la boîte de dialogue Gestionnaire de références, développez Assemblys et
sélectionnez Extensions.
3. Sélectionnez les deux références suivantes à ajouter :

Microsoft.SqlServer.Management.Sdk.Sfc
Microsoft.SqlServer.Smo

4. Cliquez sur le bouton Parcourir pour ajouter une référence à


Microsoft.SqlServer.Management.IntegrationServices. (Cet assembly est installé
uniquement dans le Global Assembly Cache (GAC).) La boîte de dialogue
Sélectionner les fichiers à référencer s’ouvre.
5. Dans la boîte de dialogue Sélectionner les fichiers à référencer, accédez au
dossier GAC qui contient l’assembly. En général, il s’agit du dossier
C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.Management.IntegrationService

s\14.0.0.0__89845dcd8080cc91 .

6. Sélectionnez l’assembly (autrement dit, le fichier .dll) dans le dossier et cliquez sur
Ajouter.
7. Cliquez sur OK pour fermer la boîte de dialogue Gestionnaire de références et
ajouter les trois références. Pour vérifier que les références y figurent, consultez la
liste Références dans l’Explorateur de solutions.

Ajouter le code C#
1. Ouvrez Program.cs.

2. Remplacez le contenu de Program.cs par le code suivant. Ajoutez les valeurs


appropriées pour votre serveur, base de données, utilisateur et mot de passe.

7 Notes

L’exemple suivant utilise l’authentification Windows. Pour utiliser l’authentification


SQL Server, remplacez l’argument Integrated Security=SSPI; par User ID=<user
name>;Password=<password>; . Si vous vous connectez à un serveur Azure SQL
Database, vous ne pouvez pas utiliser l’authentification Windows.

C#

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.");
}
}
}

Exécuter le code
1. Pour exécuter l'application, appuyez sur F5.
2. Dans SSMS, vérifiez que le projet a été déployé.

Étapes suivantes
Envisagez d’autres méthodes pour déployer un package.
Déployer un package SSIS avec SSMS
Déployer un package SSIS avec Transact-SQL (SSMS)
Déployer un package SSIS avec Transact-SQL (VS Code)
Déployer un package SSIS à partir de l’invite de commandes
Déployer un package SSIS avec PowerShell
Exécutez un package déployé. Pour exécuter un package, vous pouvez choisir
parmi plusieurs outils et langages. Pour plus d’informations, consultez les articles
suivants :
Exécuter un package SSIS avec SSMS
Exécuter un package SSIS avec Transact-SQL (SSMS)
Exécuter un package SSIS avec Transact-SQL (VS Code)
Exécuter un package SSIS à partir de l’invite de commandes
Exécuter un package SSIS avec PowerShell
Exécuter un package SSIS avec C#
Exécuter un package SSIS avec SQL
Server Management Studio (SSMS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Ce guide de démarrage rapide montre comment utiliser SQL Server Management Studio
(SSMS) pour se connecter à la base de données du catalogue SSIS, puis exécuter un
package SSIS stocké dans le catalogue SSIS à partir de l’Explorateur d’objets dans SSMS.

SQL Server Management Studio est un environnement intégré pour la gestion des
infrastructures SQL, de SQL Server à SQL Database. Pour plus d’informations sur SSMS,
consultez SQL Server Management Studio (SSMS).

Prérequis
Avant de commencer, vérifiez que vous disposez de la dernière version de SQL Server
Management Studio (SSMS). Pour télécharger SSMS, consultez Télécharger SQL Server
Management Studio (SSMS).

Un serveur Azure SQL Database écoute sur le port 1433. Si vous essayez de vous
connecter à un serveur Azure SQL Database en étant derrière un pare-feu d’entreprise,
ce port doit être ouvert dans le pare-feu d’entreprise pour que vous puissiez vous
connecter.

Plateformes prises en charge


Vous pouvez utiliser les informations de ce guide de démarrage rapide pour exécuter un
package SSIS sur les plateformes suivantes :

SQL Server sur Windows.

Azure SQL Database. Pour plus d’informations sur le déploiement et l’exécution de


packages dans Azure, consultez Effectuer un « lift-and-shift » des charges de
travail SQL Server Integration Services vers le cloud.

Vous ne pouvez pas utiliser les informations de ce guide de démarrage rapide pour
exécuter un package SSIS sur Linux. Pour plus d’informations sur l’exécution de
packages sur Linux, consultez Extraire, transformer et charger des données sur Linux
avec SSIS.
Pour Azure SQL Database, obtenez les
informations de connexion.
Pour exécuter le package sur Azure SQL Database, obtenez les informations de
connexion dont vous avez besoin pour vous connecter à la base de données du
catalogue SSIS (SSISDB). Vous avez besoin des informations de connexion et du nom de
serveur complet dans les procédures qui suivent.

1. Connectez-vous au portail Azure .


2. Sélectionnez Bases de données SQL dans le menu de gauche, puis sélectionnez la
base de données SSISDB dans la page Bases de données SQL.
3. Dans la page Vue d’ensemble de votre base de données, notez le nom complet du
serveur. Pour voir l’option Cliquer pour copier, pointez sur le nom du serveur.
4. Si vous avez oublié vos informations de connexion au serveur Azure SQL Database,
accédez à la page du serveur SQL Database pour voir le nom de l’administrateur
du serveur. Vous pouvez réinitialiser le mot de passe si nécessaire.

Se connecter à la base de données SSISDB


Utilisez SQL Server Management Studio pour établir une connexion au catalogue SSIS.

1. Ouvrez SQL Server Management Studio.

2. Dans la fenêtre Se connecter au serveur, entrez les valeurs suivantes :

Paramètre Valeur En savoir plus


suggérée

Type de serveur Moteur de base Cette valeur est requise.


de données

Nom du serveur Nom complet Si vous vous connectez à un serveur Azure SQL
du serveur Database, le nom est au format suivant :
<server_name>.database.windows.net .

Authentification l’authentification Avec l’authentification SQL Server, vous pouvez vous


SQL Server connecter à SQL Server ou à Azure SQL Database. Si
vous vous connectez à un serveur Azure SQL
Database, vous ne pouvez pas utiliser
l’authentification Windows.

Connexion Compte Il s’agit du compte que vous avez spécifié quand


d’administrateur vous avez créé le serveur.
de serveur
Paramètre Valeur En savoir plus
suggérée

Mot de passe Mot de passe de Il s’agit du mot de passe que vous avez spécifié
votre compte quand vous avez créé le serveur.
d’administrateur
de serveur

3. Cliquez sur Connecter. La fenêtre Explorateur d’objets s’ouvre dans SSMS.

4. Dans l’Explorateur d’objets, développez Catalogues Integration Services, puis


développez SSISDB pour afficher les objets de la base de données de catalogues
SSIS.

Exécuter un package
1. Dans l’Explorateur d’objets, sélectionnez le package que vous souhaitez exécuter.

2. Cliquez avec le bouton droit et sélectionnez Exécuter. La boîte de dialogue


Exécuter le package s’ouvre.

3. Configurez l’exécution du package à l’aide des paramètres sous les onglets


Paramètres, Gestionnaires de connexionset Avancé de la boîte de dialogue
Exécuter le package .

4. Cliquez sur OK pour exécuter le package.

Étapes suivantes
Envisagez d’autres méthodes pour exécuter un package.
Exécuter un package SSIS avec Transact-SQL (SSMS)
Exécuter un package SSIS avec Transact-SQL (VS Code)
Exécuter un package SSIS à partir de l’invite de commandes
Exécuter un package SSIS avec PowerShell
Exécuter un package SSIS avec C#
Exécuter un package SSIS à partir de
SSMS avec Transact-SQL
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Ce guide de démarrage rapide montre comment utiliser SQL Server Management Studio
(SSMS) pour se connecter à la base de données du catalogue SSIS, puis utiliser des
instructions Transact-SQL pour exécuter un package SSIS stocké dans le catalogue SSIS.

SQL Server Management Studio est un environnement intégré pour la gestion des
infrastructures SQL, de SQL Server à SQL Database. Pour plus d’informations sur SSMS,
consultez SQL Server Management Studio (SSMS).

Prérequis
Avant de commencer, vérifiez que vous disposez de la dernière version de SQL Server
Management Studio (SSMS). Pour télécharger SSMS, consultez Télécharger SQL Server
Management Studio (SSMS).

Un serveur Azure SQL Database écoute sur le port 1433. Si vous essayez de vous
connecter à un serveur Azure SQL Database en étant derrière un pare-feu d’entreprise,
ce port doit être ouvert dans le pare-feu d’entreprise pour que vous puissiez vous
connecter.

Plateformes prises en charge


Vous pouvez utiliser les informations de ce guide de démarrage rapide pour exécuter un
package SSIS sur les plateformes suivantes :

SQL Server sur Windows.

Azure SQL Database. Pour plus d’informations sur le déploiement et l’exécution de


packages dans Azure, consultez Effectuer un « lift-and-shift » des charges de
travail SQL Server Integration Services vers le cloud.

Vous ne pouvez pas utiliser les informations de ce guide de démarrage rapide pour
exécuter un package SSIS sur Linux. Pour plus d’informations sur l’exécution de
packages sur Linux, consultez Extraire, transformer et charger des données sur Linux
avec SSIS.
Pour Azure SQL Database, obtenez les
informations de connexion.
Pour exécuter le package sur Azure SQL Database, obtenez les informations de
connexion dont vous avez besoin pour vous connecter à la base de données du
catalogue SSIS (SSISDB). Vous avez besoin des informations de connexion et du nom de
serveur complet dans les procédures qui suivent.

1. Connectez-vous au portail Azure .


2. Sélectionnez Bases de données SQL dans le menu de gauche, puis sélectionnez la
base de données SSISDB dans la page Bases de données SQL.
3. Dans la page Vue d’ensemble de votre base de données, notez le nom complet du
serveur. Pour voir l’option Cliquer pour copier, pointez sur le nom du serveur.
4. Si vous avez oublié vos informations de connexion au serveur Azure SQL Database,
accédez à la page du serveur SQL Database pour voir le nom de l’administrateur
du serveur. Vous pouvez réinitialiser le mot de passe si nécessaire.

Se connecter à la base de données SSISDB


Utilisez SQL Server Management Studio pour établir une connexion au catalogue SSIS
sur votre serveur Azure SQL Database.

1. Ouvrez SQL Server Management Studio.

2. Dans la fenêtre Se connecter au serveur, entrez les valeurs suivantes :

Paramètre Valeur En savoir plus


suggérée

Type de serveur Moteur de base Cette valeur est requise.


de données

Nom du serveur Nom complet Si vous vous connectez à un serveur Azure SQL
du serveur Database, le nom est au format suivant :
<server_name>.database.windows.net .

Authentification l’authentification Avec l’authentification SQL Server, vous pouvez vous


SQL Server connecter à SQL Server ou à Azure SQL Database. Si
vous vous connectez à un serveur Azure SQL
Database, vous ne pouvez pas utiliser
l’authentification Windows.
Paramètre Valeur En savoir plus
suggérée

Connexion Compte Il s’agit du compte que vous avez spécifié quand


d’administrateur vous avez créé le serveur.
de serveur

Mot de passe Mot de passe de Il s’agit du mot de passe que vous avez spécifié
votre compte quand vous avez créé le serveur.
d’administrateur
de serveur

3. Cliquez sur Connecter. La fenêtre Explorateur d’objets s’ouvre dans SSMS.

4. Dans l’Explorateur d’objets, développez Catalogues Integration Services, puis


développez SSISDB pour afficher les objets de la base de données de catalogues
SSIS.

Exécuter un package
Exécutez le code Transact-SQL suivant pour exécuter un package SSIS.

1. Dans SSMS, ouvrez une nouvelle fenêtre de requête et collez le code suivant. (Ce
code est le code généré par l’option Script dans la boîte de dialogue Exécuter le
package dans SSMS.)

2. Mettez à jour les valeurs de paramètres dans la procédure stockée


catalog.create_execution pour votre système.

3. Vérifiez que SSISDB est la base de données active.

4. Exécutez le script.

5. Dans l’Explorateur d’objets, actualisez le contenu de SSISDB si nécessaire et


vérifiez la présence du projet que vous avez déployé.

SQL

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

Étapes suivantes
Envisagez d’autres méthodes pour exécuter un package.
Exécuter un package SSIS avec SSMS
Exécuter un package SSIS avec Transact-SQL (VS Code)
Exécuter un package SSIS à partir de l’invite de commandes
Exécuter un package SSIS avec PowerShell
Exécuter un package SSIS avec C#
Exécuter un package SSIS à partir de
Visual Studio Code avec Transact-SQL
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Ce guide de démarrage rapide montre comment utiliser Visual Studio Code pour se
connecter à la base de données du catalogue SSIS, puis utiliser des instructions
Transact-SQL pour exécuter un package SSIS stocké dans le catalogue SSIS.

Visual Studio Code est un éditeur de code pour Windows, macOS et Linux qui prend en
charge les extensions, notamment l’extension mssql pour la connexion à Microsoft SQL
Server, à Azure SQL Database et à Azure Synapse Analytics. Pour plus d’informations sur
VS Code, consultez Visual Studio Code .

Prérequis
Avant de commencer, vérifiez que vous avez installé la dernière version de Visual Studio
Code et chargé l’extension mssql . Pour télécharger ces outils, consultez les pages
suivantes :

Télécharger Visual Studio Code


Extension mssql

Plateformes prises en charge


Vous pouvez utiliser les informations de ce guide de démarrage rapide pour exécuter un
package SSIS sur les plateformes suivantes :

SQL Server sur Windows.

Azure SQL Database. Pour plus d’informations sur le déploiement et l’exécution de


packages dans Azure, consultez Effectuer un « lift-and-shift » des charges de
travail SQL Server Integration Services vers le cloud.

Vous ne pouvez pas utiliser les informations de ce guide de démarrage rapide pour
exécuter un package SSIS sur Linux. Pour plus d’informations sur l’exécution de
packages sur Linux, consultez Extraire, transformer et charger des données sur Linux
avec SSIS.
Définir SQL comme mode de langage dans VS
Code
Pour activer les commandes mssql et T-SQL IntelliSense, définissez SQL comme mode
de langage dans Visual Studio Code.

1. Ouvrez Visual Studio Code, puis ouvrez une nouvelle fenêtre.

2. Cliquez sur Texte brut dans le coin inférieur droit de la barre d’état.

3. Dans le menu déroulant Sélectionner le mode de langage qui s’affiche,


sélectionnez ou entrez SQL, puis appuyez sur Entrée pour définir SQL comme
mode de langage.

Pour Azure SQL Database, obtenez les


informations de connexion.
Pour exécuter le package sur Azure SQL Database, obtenez les informations de
connexion dont vous avez besoin pour vous connecter à la base de données du
catalogue SSIS (SSISDB). Vous avez besoin des informations de connexion et du nom de
serveur complet dans les procédures qui suivent.

1. Connectez-vous au portail Azure .


2. Sélectionnez Bases de données SQL dans le menu de gauche, puis sélectionnez la
base de données SSISDB dans la page Bases de données SQL.
3. Dans la page Vue d’ensemble de votre base de données, notez le nom complet du
serveur. Pour voir l’option Cliquer pour copier, pointez sur le nom du serveur.
4. Si vous avez oublié vos informations de connexion au serveur Azure SQL Database,
accédez à la page du serveur SQL Database pour voir le nom de l’administrateur
du serveur. Vous pouvez réinitialiser le mot de passe si nécessaire.

Se connecter à la base de données du


catalogue SSIS
Utilisez Visual Studio Code pour établir une connexion au catalogue SSIS.

) Important

Avant de poursuivre, assurez-vous que votre serveur et votre base de données sont
prêts, et que vous disposez de vos informations de connexion. Si vous modifiez le
focus à partir de Visual Studio Code après avoir commencé à entrer les
informations de profil de connexion, vous devez redémarrer la création du profil de
connexion.

1. Dans VS Code, appuyez sur CTRL+MAJ+P (ou F1) pour ouvrir la Palette de
commandes.

2. Tapez sqlcon, puis appuyez sur ENTRÉE.

3. Appuyez sur ENTRÉE pour sélectionner Créer un profil de connexion. Cette étape
crée un profil de connexion pour votre instance de SQL Server.

4. Suivez les invites pour spécifier les propriétés de connexion de ce nouveau profil
de connexion. Après avoir spécifié chaque valeur, appuyez sur ENTRÉE pour
continuer.

Paramètre Valeur En savoir plus


suggérée

Nom du serveur Nom complet Si vous vous connectez à un serveur Azure SQL
du serveur Database, le nom est au format suivant :
<server_name>.database.windows.net .

Nom de la base SSISDB Nom de la base de données à laquelle se connecter.


de données

Authentification Connexion SQL Avec l’authentification SQL Server, vous pouvez vous
connecter à SQL Server ou à Azure SQL Database. Si
vous vous connectez à un serveur Azure SQL
Database, vous ne pouvez pas utiliser
l’authentification Windows.

Nom Compte Il s’agit du compte que vous avez spécifié quand


d'utilisateur d’administrateur vous avez créé le serveur.
de serveur

Mot de passe Mot de passe Il s’agit du mot de passe que vous avez spécifié
(connexion de votre quand vous avez créé le serveur.
SQL) compte
d’administrateur
de serveur

Enregistrer le Oui ou Non Si vous ne souhaitez pas entrer le mot de passe à


mot de passe ? chaque fois, sélectionnez Oui.

Entrez un nom Nom d’un profil, Un nom de profil enregistré permet d’accélérer votre
pour ce profil tel que connexion lors des connexions suivantes.
mySSISServer
5. Appuyez sur la touche ÉCHAP pour fermer le message d’information qui vous
informe que le profil est créé et connecté.

6. Vérifiez votre connexion dans la barre d’état.

Exécuter le code T-SQL


Exécutez le code Transact-SQL suivant pour exécuter un package SSIS.

1. Dans la fenêtre Éditeur, entrez la requête suivante dans la fenêtre de requête vide.
(Ce code est le code généré par l’option Script dans la boîte de dialogue Exécuter
le package dans SSMS.)

2. Mettez à jour les valeurs de paramètres dans la procédure stockée


catalog.create_execution pour votre système.

3. Appuyez sur Ctrl+Maj+E pour exécuter le code et le package.

SQL

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

Étapes suivantes
Envisagez d’autres méthodes pour exécuter un package.
Exécuter un package SSIS avec SSMS
Exécuter un package SSIS avec Transact-SQL (SSMS)
Exécuter un package SSIS à partir de l’invite de commandes
Exécuter un package SSIS avec PowerShell
Exécuter un package SSIS avec C#
Exécuter un package SSIS à partir de
l’invite de commandes avec DTExec.exe
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Ce guide de démarrage rapide montre comment exécuter un package SSIS à partir de


l’invite de commandes en exécutant DTExec.exe avec les paramètres appropriés.

7 Notes

La méthode décrite dans cet article n’a pas été testée avec des packages déployés
sur un serveur Azure SQL Database.

Pour plus d’informations sur DTExec.exe , consultez Utilitaire dtexec.

Plateformes prises en charge


Vous pouvez utiliser les informations de ce guide de démarrage rapide pour exécuter un
package SSIS sur les plateformes suivantes :

SQL Server sur Windows.

La méthode décrite dans cet article n’a pas été testée avec des packages déployés sur
un serveur Azure SQL Database. Pour plus d’informations sur le déploiement et
l’exécution de packages dans Azure, consultez Effectuer un « lift-and-shift » des charges
de travail SQL Server Integration Services vers le cloud.

Vous ne pouvez pas utiliser les informations de ce guide de démarrage rapide pour
exécuter un package SSIS sur Linux. Pour plus d’informations sur l’exécution de
packages sur Linux, consultez Extraire, transformer et charger des données sur Linux
avec SSIS.

Exécuter un package avec dtexec


Si le dossier qui contient DTExec.exe ne figure pas dans votre variable d’environnement
path , vous devrez peut-être utiliser la commande cd pour basculer vers son répertoire.

Pour SQL Server 2017, ce dossier est généralement C:\Program Files (x86)\Microsoft
SQL Server\140\DTS\Binn .
Avec les valeurs de paramètres utilisées dans l’exemple suivant, le programme exécute
le package qui se trouve au chemin de dossier spécifié sur le serveur SSIS, autrement dit
le serveur qui héberge la base de données du catalogue SSIS (SSISDB). Le paramètre
/Server fournit le nom du serveur. Le programme se connecte en tant que l’utilisateur
actuel avec l’Authentification intégrée de Windows. Pour utiliser l’authentification SQL,
spécifiez les paramètres /User et Password avec les valeurs appropriées.

1. Ouvrez une fenêtre d’invite de commandes.

2. Exécutez DTExec.exe et fournissez des valeurs pour au moins les paramètres


ISServer et Server , comme indiqué dans l’exemple suivant :

Invite de commandes Windows

dtexec /ISServer "\SSISDB\Project1Folder\Integration Services


Project1\Package.dtsx" /Server "localhost"

Étapes suivantes
Envisagez d’autres méthodes pour exécuter un package.
Exécuter un package SSIS avec SSMS
Exécuter un package SSIS avec Transact-SQL (SSMS)
Exécuter un package SSIS avec Transact-SQL (VS Code)
Exécuter un package SSIS avec PowerShell
Exécuter un package SSIS avec C#
Exécuter un package SSIS avec
PowerShell
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Ce guide de démarrage rapide montre comment utiliser un script PowerShell pour se


connecter à un serveur de base de données et exécuter un package SSIS.

Prérequis
Un serveur Azure SQL Database écoute sur le port 1433. Si vous essayez de vous
connecter à un serveur Azure SQL Database en étant derrière un pare-feu d’entreprise,
ce port doit être ouvert dans le pare-feu d’entreprise pour que vous puissiez vous
connecter.

Plateformes prises en charge


Vous pouvez utiliser les informations de ce guide de démarrage rapide pour exécuter un
package SSIS sur les plateformes suivantes :

SQL Server sur Windows.

Runtime d’intégration SSIS (IR) dans Azure Data Factory (ADF), où le catalogue SSIS
(SSISDB) est hébergé par Azure SQL Managed Instance (MI). Pour plus
d’informations sur le déploiement et l’exécution de packages dans Azure,
consultez Effectuer un « lift-and-shift » des charges de travail SQL Server
Integration Services vers le cloud.

Vous ne pouvez pas utiliser les informations de ce guide de démarrage rapide pour
exécuter un package SSIS sur Linux. Pour plus d’informations sur l’exécution de
packages sur Linux, consultez Extraire, transformer et charger des données sur Linux
avec SSIS.

Pour Azure SQL Database, obtenez les


informations de connexion.
Pour exécuter le package sur Azure SQL Database, obtenez les informations de
connexion dont vous avez besoin pour vous connecter à la base de données du
catalogue SSIS (SSISDB). Vous avez besoin des informations de connexion et du nom de
serveur complet dans les procédures qui suivent.

1. Connectez-vous au portail Azure .


2. Sélectionnez Bases de données SQL dans le menu de gauche, puis sélectionnez la
base de données SSISDB dans la page Bases de données SQL.
3. Dans la page Vue d’ensemble de votre base de données, notez le nom complet du
serveur. Pour voir l’option Cliquer pour copier, pointez sur le nom du serveur.
4. Si vous avez oublié vos informations de connexion au serveur Azure SQL Database,
accédez à la page du serveur SQL Database pour voir le nom de l’administrateur
du serveur. Vous pouvez réinitialiser le mot de passe si nécessaire.
5. Cliquez sur Afficher les chaînes de connexion de la base de données.
6. Examinez la chaîne de connexion ADO.NET complète.

Fournisseur PowerShell SSIS


Vous pouvez utiliser le fournisseur PowerShell de SSIS pour vous connecter à un
catalogue SSIS et exécuter les packages qu’il contient.

Voici un exemple simple illustrant la méthode pour exécuter un package SSIS dans un
catalogue de packages avec le fournisseur PowerShell de SSIS.

PowerShell

(Get-ChildItem
SQLSERVER:\SSIS\localhost\Default\Catalogs\SSISDB\Folders\Project1Folder\Pro
jects\'Integration Services Project1'\Packages\ |
WHERE { $_.Name -eq 'Package.dtsx' }).Execute("false", $null)

Script PowerShell
Entrez les valeurs appropriées pour les variables en haut du script suivant, puis exécutez
le script pour exécuter le package SSIS.

7 Notes

L’exemple suivant utilise l’authentification Windows. Pour utiliser l’authentification


SQL Server, remplacez l’argument Integrated Security=SSPI; par User ID=<user
name>;Password=<password>; . Si vous vous connectez à un serveur Azure SQL

Database, vous ne pouvez pas utiliser l’authentification Windows.


PowerShell

# 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.Integrati
onServices, "+
"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."

Étapes suivantes
Envisagez d’autres méthodes pour exécuter un package.
Exécuter un package SSIS avec SSMS
Exécuter un package SSIS avec Transact-SQL (SSMS)
Exécuter un package SSIS avec Transact-SQL (VS Code)
Exécuter un package SSIS à partir de l’invite de commandes
Exécuter un package SSIS avec C#
Exécuter un package SSIS avec du code
C# dans une application .NET
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Ce guide de démarrage rapide montre comment écrire du code C# pour se connecter à


un serveur de base de données et exécuter un package SSIS.

Pour créer une application C#, vous pouvez utiliser Visual Studio, Visual Studio Code ou
un autre outil de votre choix.

Conditions préalables
Avant de commencer, vérifiez que Visual Studio ou Visual Studio Code est installé sur
votre ordinateur. Téléchargez l’édition Community gratuite de Visual Studio, ou le
logiciel Visual Studio Code gratuit, à partir de la page de Téléchargements Visual
Studio .

Un serveur Azure SQL Database écoute sur le port 1433. Si vous essayez de vous
connecter à un serveur Azure SQL Database en étant derrière un pare-feu d’entreprise,
ce port doit être ouvert dans le pare-feu d’entreprise pour que vous puissiez vous
connecter.

Pour Azure SQL Database, obtenez les


informations de connexion.
Pour exécuter le package sur Azure SQL Database, obtenez les informations de
connexion dont vous avez besoin pour vous connecter à la base de données du
catalogue SSIS (SSISDB). Vous avez besoin des informations de connexion et du nom de
serveur complet dans les procédures qui suivent.

1. Connectez-vous au portail Azure .


2. Sélectionnez Bases de données SQL dans le menu de gauche, puis sélectionnez la
base de données SSISDB dans la page Bases de données SQL.
3. Dans la page Vue d’ensemble de votre base de données, notez le nom complet du
serveur. Pour voir l’option Cliquer pour copier, pointez sur le nom du serveur.
4. Si vous avez oublié vos informations de connexion au serveur Azure SQL Database,
accédez à la page du serveur SQL Database pour voir le nom de l’administrateur
du serveur. Vous pouvez réinitialiser le mot de passe si nécessaire.
5. Cliquez sur Afficher les chaînes de connexion de la base de données.
6. Examinez la chaîne de connexion ADO.NET complète. Votre code peut aussi utiliser
un SqlConnectionStringBuilder pour recréer cette chaîne de connexion avec
chaque valeur de paramètre que vous fournissez.

Créer un projet Visual Studio


1. Dans Visual Studio, choisissez Fichier, Nouveau, Projet.
2. Dans la boîte de dialogue Nouveau projet, développez Visual C#.
3. Sélectionnez Application console et entrez run_ssis_project comme nom de projet.
4. Cliquez sur OK pour créer et ouvrir le nouveau projet dans Visual Studio.

Ajouter des références


1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le dossier
Références, puis sélectionnez Ajouter une référence. La boîte de dialogue
Gestionnaire de références s’ouvre.
2. Dans la boîte de dialogue Gestionnaire de références, développez Assemblys et
sélectionnez Extensions.
3. Sélectionnez les deux références suivantes à ajouter :

Microsoft.SqlServer.Management.Sdk.Sfc
Microsoft.SqlServer.Smo

4. Cliquez sur le bouton Parcourir pour ajouter une référence à


Microsoft.SqlServer.Management.IntegrationServices. (Cet assembly est installé
uniquement dans le Global Assembly Cache (GAC).) La boîte de dialogue
Sélectionner les fichiers à référencer s’ouvre.
5. Dans la boîte de dialogue Sélectionner les fichiers à référencer, accédez au
dossier GAC qui contient l’assembly. En général, il s’agit du dossier
C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.Management.IntegrationService
s\14.0.0.0__89845dcd8080cc91 .

6. Sélectionnez l’assembly (autrement dit, le fichier .dll) dans le dossier et cliquez sur
Ajouter.
7. Cliquez sur OK pour fermer la boîte de dialogue Gestionnaire de références et
ajouter les trois références. Pour vérifier que les références y figurent, consultez la
liste Références dans l’Explorateur de solutions.

Ajouter le code C#
1. Ouvrez Program.cs.

2. Remplacez le contenu de Program.cs par le code suivant. Ajoutez les valeurs


appropriées pour votre serveur, base de données, utilisateur et mot de passe.

7 Notes

L’exemple suivant utilise l’authentification Windows. Pour utiliser l’authentification


SQL Server, remplacez l’argument Integrated Security=SSPI; par User ID=<user
name>;Password=<password>; . Si vous vous connectez à un serveur Azure SQL
Database, vous ne pouvez pas utiliser l’authentification Windows.

C#

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);

}
}
}

Exécuter le code
1. Pour exécuter l'application, appuyez sur F5.
2. Vérifiez que le package s’est exécuté comme prévu, puis fermez la fenêtre
d’application.

Étapes suivantes
Envisagez d’autres méthodes pour exécuter un package.
Exécuter un package SSIS avec SSMS
Exécuter un package SSIS avec Transact-SQL (SSMS)
Exécuter un package SSIS avec Transact-SQL (VS Code)
Exécuter un package SSIS à partir de l’invite de commandes
Exécuter un package SSIS avec PowerShell
Effectuer un « lift-and-shift » des
charges de travail SQL Server
Integration Services vers le cloud
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous pouvez maintenant déplacer vos projets, packages et charges de travail SQL Server
Integration Services (SSIS) vers le cloud Azure. Déployez, exécutez et gérez des projets
et des packages SSIS dans le catalogue SSIS (SSISDB) dans Azure SQL Database ou SQL
Managed Instance avec des outils habituels, comme SQL Server Management Studio
(SSMS).

Avantages
Le déplacement de vos charges de travail SSIS locales vers Azure présente les avantages
potentiels suivants :

Réduisez les coûts opérationnels et la charge de gestion de l’infrastructure quand


vous exécutez SSIS localement ou sur des machines virtuelles Azure.
Augmentez la haute disponibilité pour pouvoir spécifier plusieurs nœuds par
cluster, et étendez les fonctionnalités de haute disponibilité d’Azure et d’Azure SQL
Database.
Augmentez la scalabilité pour pouvoir spécifier plusieurs cœurs par nœud (scale-
up) et plusieurs nœuds par cluster (scale-out).

Architecture de SSIS sur Azure


Le tableau suivant met en évidence les différences entre une instance SSIS locale et une
instance SSIS sur Azure.

La différence la plus importante est la séparation du stockage et de l’exécution. Azure


Data Factory héberge le moteur de runtime des packages SSIS sur Azure. Le moteur
d’exécution est appelé Azure-SSIS Integration Runtime (Azure-SSIS IR). Pour plus
d’informations, consultez Azure-SSIS Runtime Integration.

ノ Agrandir le tableau
Emplacement Stockage Runtime Extensibilité

Localement SQL Server Runtime SSIS hébergé par SSIS Scale Out (dans SQL
SQL Server Server 2017 et versions
ultérieures)

Solutions personnalisées
(dans les versions antérieures
de SQL Server)

Sur Azure SQL Database ou Azure-SSIS Integration Options de mise à l’échelle


SQL Managed Runtime, composant pour Azure-SSIS Integration
Instance d’Azure Data Factory Runtime

Provisionner SSIS sur Azure


Provisionnez. Avant de pouvoir déployer et exécuter des packages SSIS dans Azure,
vous devez provisionner le catalogue SSIS (SSISDB) et le runtime d’intégration Azure-
SSIS.

Pour configurer SSIS sur Azure dans le portail Azure, suivez les étapes de
configuration dans cet article : Configurer Azure-SSIS Integration Runtime dans
Azure Data Factory.

Pour configurer SSIS sur Azure avec PowerShell, suivez les étapes de configuration
dans cet article : Configurer Azure-SSIS Integration Runtime dans Azure Data
Factory avec PowerShell.

Il vous suffit de provisionner Azure-SSIS IR une seule fois. Vous pouvez ensuite utiliser
des outils familiers tels que SQL Server Data Tools (SSDT) et SQL Server Management
Studio (SSMS) pour déployer, configurer, exécuter, surveiller, planifier et gérer les
packages.

7 Notes

Azure-SSIS Integration Runtime n’est pas encore disponible dans toutes les régions
Azure. Pour plus d’informations sur les régions prises en charge, consultez Produits
disponibles par région - Microsoft Azure .

Effectuez une augmentation de la taille des instances et une montée en puissance


parallèle. Quand vous provisionnez Azure-SSIS IR, vous pouvez effectuer un scale-up et
un scale-out en spécifiant des valeurs pour les options suivantes :
la taille du nœud (notamment le nombre de cœurs) et le nombre de nœuds du
cluster ;
l’instance existante d’Azure SQL Database pour héberger la base de données de
catalogues SSIS (SSISDB), et le niveau de service de la base de données ;
le nombre maximal d’exécutions parallèles par nœud.

Améliorez les performances. Pour plus d’informations, consultez Configurer le runtime


d’intégration Azure-SSIS pour de hautes performances.

Réduisez les coûts. Pour réduire les coûts, exécutez Azure-SSIS IR uniquement lorsque
vous en avez besoin. Pour plus d’informations, voir Guide pratique pour planifier le
démarrage et l’arrêt d’un runtime d’intégration Azure-SSIS.

Concevoir des packages


Vous continuez à concevoir et générer des packages localement dans SSDT, ou dans
Visual Studio avec SSDT installé.

Se connecter aux sources de données


Pour se connecter à des sources de données locales à partir du cloud avec
l’authentification Windows, voir Se connecter à des sources de données et à des
partages de fichiers avec l’authentification Windows à partir de packages SSIS sur Azure.

Pour se connecter à des fichiers et à des partages de fichiers, voir Ouvrir et enregistrer
des fichiers localement et sur Azure avec des packages SSIS déployés sur Azure.

Composants SSIS disponibles


Si vous approvisionnez une instance de SQL Database pour héberger SSISDB, les
composants Azure Feature Pack pour SSIS et Access Redistributable sont également
installés. Ces composants fournissent une connectivité à diverses sources de données
Azure et aux fichiers Excel et Access, en plus des sources de données prises en charge
par les composants intégrés.

Vous pouvez également installer des composants supplémentaires. Par exemple, vous
pouvez installer un pilote qui n’est pas installé par défaut. Pour plus d’informations, voir
Personnaliser l’installation du runtime d’intégration Azure-SSIS.

Des composants supplémentaires sont accessibles aux détenteurs d’une licence


Enterprise Edition. Pour plus d’informations, voir Configurer Enterprise Edition pour
Azure-SSIS Integration Runtime.
Si vous êtes éditeur de logiciels, vous pouvez mettre à jour l’installation de vos
composants sous licence pour les rendre disponibles sur Azure. Pour plus
d’informations, voir Installer des composants personnalisés payants ou sous licence pour
le runtime d’intégration Azure-SSIS.

Déployer et exécuter des packages


Pour commencer, consultez Tutoriel : Déployer et exécuter un package SQL Server
Integration Services (SSIS) sur Azure.

Prérequis
Pour déployer des packages SSIS sur Azure, vous devez avoir l’une des versions
suivantes de SQL Server Data Tools (SSDT) :

Pour Visual Studio 2017, version 15.3 ou ultérieure.


Pour Visual Studio 2015, version 17.2 ou ultérieure.

Se connecter à SSISDB
Le nom de l’instance SQL Database qui héberge SSISDB devient la première partie du
nom en quatre parties à utiliser quand vous déployez et exécutez des packages à partir
de SSDT et SSMS, au format suivant : <sql_database_name>.database.windows.net . Pour
plus d’informations sur la connexion à la base de données du catalogue SSIS sur Azure,
voir Se connecter au catalogue SSIS (SSISDB) sur Azure.

Déployer des projets et des packages


Vous devez utiliser le modèle de déploiement de projet, et non le modèle de
déploiement de package, quand vous déployez des projets dans SSISDB sur Azure.

Pour déployer des projets sur Azure, vous pouvez utiliser plusieurs outils et options de
script de votre choix :

SQL Server Management Studio (SSMS)


Transact-SQL (à partir de SSMS, Visual Studio Code ou tout autre outil)
Un outil en ligne de commande
PowerShell ou C# et le modèle objet de gestion SSIS

Le processus de déploiement valide chaque package pour vérifier qu’il peut s’exécuter
dans Azure SSIS Integration Runtime. Pour plus d’informations, voir Valider les packages
SQL Server Integration Services (SSIS) déployés sur Azure.

Pour obtenir un exemple de déploiement qui utilise SSMS et l’Assistant Déploiement


d’Integration Services, consultez Didacticiel : Déployer et exécuter un package SQL
Server Integration Services (SSIS) sur Azure.

Prise en charge de la version


Vous pouvez déployer n’importe quel package créé avec l’une des versions de SSIS sur
Azure. Quand vous déployez un package sur Azure sans erreur de validation, le package
est automatiquement mis à niveau avec le dernier format de package. Le package est
donc toujours mis à niveau avec la dernière version de SSIS.

Exécuter des packages


Il existe différents moyens d’exécuter des packages SSIS déployés sur Azure. Pour plus
d’informations, voir Exécuter des packages SQL Server Integration Services (SSIS)
déployés sur Azure.

Exécuter des packages dans un pipeline Azure Data


Factory
Pour exécuter un package SSIS dans un pipeline Azure Data Factory, utilisez l’activité
Exécuter un package SSIS. Pour plus d’informations, consultez Exécuter un package SSIS
à l’aide de l’activité Exécuter le package SSIS dans Azure Data Factory.

Lorsque vous exécutez un package dans un pipeline Data Factory avec l’activité Exécuter
un package SSIS, vous pouvez transmettre des valeurs au package à l’exécution. Pour
transmettre une ou plusieurs valeurs de runtime, créez des environnements d’exécution
SSIS dans SSISDB avec SQL Server Management Studio (SSMS). Dans chaque
environnement, créez des variables et affectez des valeurs qui correspondent aux
paramètres de vos projets ou packages. Configurez vos packages SSIS dans SSMS pour
associer ces variables d’environnement aux paramètres de votre projet ou package.
Quand vous exécutez les packages dans le pipeline, vous pouvez passer d’un
environnement à un autre en spécifiant différents chemins d’environnement sous
l’onglet Paramètres de l’interface utilisateur de l’activité Exécuter un package SSIS. Pour
plus d’informations sur les environnements SSIS, voir Créer et mapper un
environnement serveur.

Surveiller les packages


Pour effectuer le monitoring des packages en cours d’exécution, utilisez les options de
création de rapports suivantes dans SSMS.

Cliquez avec le bouton droit sur SSISDB, puis sélectionnez Opérations actives pour
ouvrir la boîte de dialogue Opérations actives.
Sélectionnez un package dans l’Explorateur d’objets, cliquez avec le bouton droit,
sélectionnez Rapports, Rapports standard, puis Toutes les exécutions.

Pour surveiller Azure-SSIS Integration Runtime, consultez Surveiller le runtime


d’intégration Azure-SSIS.

Planifier les packages


Il existe différents outils permettant de planifier l’exécution de packages déployés sur
Azure. Pour plus d’informations, voir Planifier l’exécution de packages SQL Server
Integration Services (SSIS) déployés sur Azure.

Étapes suivantes
Pour bien démarrer avec les charges de travail SSIS sur Azure, consultez les articles
suivants :

Tutoriel : Déployer et exécuter un package SQL Server Integration Services (SSIS)


sur Azure
Configurer Azure-SSIS Integration Runtime dans Azure Data Factory

Commentaires
Cette page a-t-elle été utile ?  Yes  No

Indiquer des commentaires sur le produit | Obtenir de l’aide sur Microsoft Q&A
Tutoriel : Déployer et exécuter un
package SQL Server Integration Services
(SSIS) sur Azure
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Ce tutoriel vous montre comment déployer un projet SQL Server Integration Services sur
le catalogue SSIS dans Azure SQL Database, comment exécuter un package dans le
runtime d’intégration Azure-SSIS et comment surveiller le package en cours d’exécution.

Prérequis
Avant de commencer, vérifiez que vous avez la version 17.2 ou ultérieure de SQL Server
Management Studio. Pour télécharger la dernière version de SSMS, consultez
Télécharger SQL Server Management Studio (SSMS).

Vérifiez également que vous avez configuré la base de données SSISDB dans Azure et
que vous avez provisionné le runtime d’intégration Azure-SSIS. Pour plus d’informations
sur le provisionnement de SSIS sur Azure, consultez Déployer des packages SQL Server
Integration Services sur Azure.

Pour Azure SQL Database, obtenez les


informations de connexion.
Pour exécuter le package sur Azure SQL Database, obtenez les informations de
connexion dont vous avez besoin pour vous connecter à la base de données du
catalogue SSIS (SSISDB). Vous avez besoin des informations de connexion et du nom de
serveur complet dans les procédures qui suivent.

1. Connectez-vous au portail Azure .


2. Sélectionnez Bases de données SQL dans le menu de gauche, puis sélectionnez la
base de données SSISDB dans la page Bases de données SQL.
3. Dans la page Vue d’ensemble de votre base de données, notez le nom complet du
serveur. Pour voir l’option Cliquer pour copier, pointez sur le nom du serveur.
4. Si vous avez oublié vos informations de connexion au serveur Azure SQL Database,
accédez à la page du serveur SQL Database pour voir le nom de l’administrateur
du serveur. Vous pouvez réinitialiser le mot de passe si nécessaire.
Se connecter à la base de données SSISDB
Utilisez SQL Server Management Studio pour vous connecter au catalogue SSIS sur
votre serveur Azure SQL Database. Pour obtenir plus d’informations et des captures
d’écran, consultez Se connecter à la base de données de catalogues SSISDB sur Azure.

Voici les deux points les plus importants à retenir. Ces étapes sont décrites dans la
procédure suivante.

Entrez le nom complet du serveur Azure SQL Database au format


mysqldbserver.database.windows.net.
Sélectionnez SSISDB comme base de données pour la connexion.

) Important

Un serveur Azure SQL Database écoute sur le port 1433. Si vous tentez de vous
connecter à un serveur Azure SQL Database derrière un pare-feu d’entreprise, ce
port doit être ouvert dans le pare-feu d’entreprise pour que vous puissiez vous
connecter correctement.

1. Ouvrez SQL Server Management Studio.

2. Connectez-vous au serveur. Dans la fenêtre Se connecter au serveur, entrez les


valeurs suivantes :

Paramètre Valeur Description


suggérée

Type de serveur Moteur de base Cette valeur est requise.


de données

Nom du serveur Nom complet Le nom doit être au format suivant :


du serveur mysqldbserver.database.windows.net. Si vous avez
besoin du nom du serveur, consultez Se connecter à
la base de données de catalogues SSISDB sur Azure.

Authentification l’authentification Vous ne pouvez pas vous connecter à Azure SQL


SQL Server Database avec l’authentification Windows.

Connexion Compte Le compte que vous avez spécifié lorsque vous avez
d’administrateur créé le serveur.
de serveur
Paramètre Valeur Description
suggérée

Mot de passe Mot de passe de Il s’agit du mot de passe que vous avez spécifié
votre compte quand vous avez créé le serveur.
d’administrateur
de serveur

3. Connectez-vous à la base de données SSISDB. Sélectionnez Options pour


développer la boîte de dialogue Se connecter au serveur. Dans la boîte de
dialogue Se connecter au serveur développée, sélectionnez l’onglet Propriétés de
connexions. Dans le champ Se connecter à la base de données, sélectionnez ou
entrez SSISDB .

4. Sélectionnez Connecter. La fenêtre Explorateur d’objets s’ouvre dans SSMS.

5. Dans l’Explorateur d’objets, développez Catalogues Integration Services, puis


développez SSISDB pour afficher les objets de la base de données de catalogues
SSIS.

Déployer un projet avec l’Assistant


Déploiement
Pour en savoir plus sur le déploiement de packages et sur l’Assistant Déploiement,
consultez Déployer des projets et des packages Integration Services (SSIS) et Assistant
Déploiement d’Integration Services.

7 Notes

Le déploiement sur Azure prend uniquement en charge le modèle de déploiement


de projet.

Démarrer l’Assistant Déploiement d’Integration Services


1. Dans l’Explorateur d’objets de SSMS, après avoir développé le nœud Catalogues
Integration Services et le nœud SSISDB, développez un dossier de projet.

2. Sélectionnez le nœud Projets.

3. Cliquez avec le bouton droit sur le nœud Projets, puis sélectionnez Déployer le
projet. L’Assistant Déploiement d’Integration Services s’ouvre. Vous pouvez
déployer un projet à partir d’une base de données de catalogues SSIS ou du
système de fichiers.

Déployer un projet avec l’Assistant Déploiement


1. Dans la page Introduction de l’Assistant Déploiement, lisez l’introduction.
Sélectionnez Suivant pour ouvrir la page Sélectionner la source.

2. Dans la page Sélectionner la source, sélectionnez le projet SSIS existant à


déployer.

Pour déployer un fichier de déploiement de projet que vous avez créé,


sélectionnez Fichier de déploiement de projet , puis entrez le chemin d’accès
du fichier .ispac.
Pour déployer un projet qui réside dans un catalogue SSIS, sélectionnez
Catalogue Integration Services, puis entrez le nom du serveur et le chemin
du projet au sein du catalogue. Seuls les projets qui résident dans SSISDB
hébergé par SQL Server peuvent être redéployés au cours de cette étape.
Sélectionnez Suivant pour voir la page Sélectionner la destination.

3. Dans la page Sélectionner la destination, sélectionnez la destination du projet.

Entrez le nom complet du serveur au format


<server_name>.database.windows.net .

Fournissez les informations d’authentification et sélectionnez Se connecter.


Sélectionnez ensuite Parcourir pour sélectionner le dossier cible dans SSISDB.
Ensuite, sélectionnez Suivant pour ouvrir la page Vérifier. (Le bouton Suivant
est activé seulement si vous sélectionnez Se connecter.)

4. Dans la page Vérifier, vérifiez les paramètres que vous avez sélectionnés.

Vous pouvez changer vos choix en sélectionnant Précédent, ou en


sélectionnant l’une des étapes du volet gauche.
Sélectionnez Déployer pour démarrer le processus de déploiement.

7 Notes

Si le message d’erreur Il n’y a aucun Worker Agent actif (Fournisseur de


données SqlClient .Net) s’affiche, vérifiez que le Runtime d’intégration Azure-
SSIS est en cours d’exécution. Cette erreur se produit si vous essayez de
déployer pendant que le Runtime d’intégration Azure-SSIS est à l’état arrêté.

5. Une fois le processus de déploiement effectué, la page Résultats s’affiche. Cette


page indique la réussite ou l’échec de chaque action.

En cas d’échec de l’action, sélectionnez Échec dans la colonne Résultat pour


afficher une explication de l’erreur.
Sélectionnez éventuellement Enregistrer le rapport pour enregistrer les
résultats dans un fichier XML.
Pour quitter l’Assistant, sélectionnez Fermer.

Déployer un projet avec PowerShell


Pour déployer un projet avec PowerShell sur SSISDB sur Azure SQL Database, adaptez le
script suivant à vos besoins. Le script énumère les dossiers enfants sous
$ProjectFilePath et les projets de chaque dossier enfant, puis crée les mêmes dossiers

dans SSISDB et déploie les projets dans ces dossiers.

Ce script nécessite l’installation de SQL Server Data Tools version 17.x ou de SQL Server
Management Studio sur l’ordinateur sur lequel vous exécutez le script.

PowerShell

# Variables
$ProjectFilePath = "C:\<folder>"
$SSISDBServerEndpoint = "<servername>.database.windows.net"
$SSISDBServerAdminUserName = "<username>"
$SSISDBServerAdminPassword = "<password>"

# Load the IntegrationServices Assembly


[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Manag
ement.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."

Exécuter un package
1. Dans l’Explorateur d’objets de SSMS, sélectionnez le package à exécuter.

2. Cliquez avec le bouton droit et sélectionnez Exécuter pour ouvrir la boîte de


dialogue Exécuter le package.

3. Dans la boîte de dialogue Exécuter le package, configurez l’exécution du package


à l’aide des paramètres situés sous les onglets Paramètres, Gestionnaires de
connexions et Avancé.

4. Sélectionnez OK pour exécuter le package.

Surveiller l’exécution du package dans SSMS


Pour afficher l’état des opérations Integration Services en cours d’exécution sur le
serveur Integration Services, par exemple le déploiement, la validation et l’exécution du
package, utilisez la boîte de dialogue Opérations actives dans SSMS. Pour ouvrir la boîte
de dialogue Opérations actives, cliquez avec le bouton droit sur SSISDB, puis
sélectionnez Opérations actives.

Vous pouvez également sélectionner un package dans l’Explorateur d’objets, cliquer


avec le bouton droit et sélectionner Rapports, Rapports standard, puis Toutes les
exécutions.

Pour plus d’informations sur la surveillance des packages en cours d’exécution dans
SSMS, consultez la section Surveiller les packages en cours d’exécution et autres
opérations.

Surveiller l’activité Exécuter le package SSIS


Si vous exécutez un package dans le cadre d’un pipeline Azure Data Factory avec
l’activité Exécuter le package SSIS, vous pouvez surveiller les exécutions du pipeline dans
l’interface utilisateur de Data Factory. Vous pouvez obtenir l’ID de l’exécution de SSISDB
à partir de la sortie de l’exécution de l’activité, puis l’utiliser pour examiner des messages
d’erreur et des journaux d’exécution plus complets dans SSMS.
Surveiller le runtime d’intégration Azure SSIS
Pour obtenir des informations d’état sur le runtime d’intégration Azure-SSIS dans lequel
les packages sont en cours d’exécution, utilisez les commandes PowerShell suivantes.
Pour chacune des commandes, spécifiez les noms de la fabrique de données, du
runtime d’intégration Azure-SSIS et du groupe de ressources.

Pour plus d’informations, consultez Surveiller le runtime d’intégration Azure-SSIS.


Obtenir des métadonnées sur le runtime d’intégration
Azure SSIS
PowerShell

Get-AzDataFactoryV2IntegrationRuntime -DataFactoryName $DataFactoryName -


Name $AzureSsisIRName -ResourceGroupName $ResourceGroupName

Obtenir l’état du runtime d’intégration Azure SSIS


PowerShell

Get-AzDataFactoryV2IntegrationRuntime -Status -DataFactoryName


$DataFactoryName -Name $AzureSsisIRName -ResourceGroupName
$ResourceGroupName

Étapes suivantes
Apprenez à planifier l’exécution du package. Pour plus d’informations, consultez
Planifier l’exécution d’un package SSIS sur Azure
Accéder à des magasins de données et à des partages de
fichiers avec l’authentification Windows à partir de packages
SSIS sur Azure
Article • 10/08/2023

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

 Conseil

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les
aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la
création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !

Vous pouvez utiliser l’authentification Windows pour accéder à des magasins de données, par exemple des serveurs SQL, des partages de
fichiers, Azure Files, etc. à partir de packages SSIS qui s’exécutent sur Azure-SSIS Integration Runtime (IR) dans Azure Data Factory (ADF) et
Azure Synapse. Il peut s’agir de magasins de données sur site, hébergés sur les Machines virtuelles Azure ou qui s’exécutent dans Azure en
tant que services gérés. S’ils sont en local, vous devez joindre votre runtime Azure-SSIS IR à un Réseau virtuel (Réseau virtuel Microsoft
Azure) connecté à votre réseau local : voir Joindre un runtime Azure-SSIS IR à un Réseau virtuel Microsoft Azure. Il existe quatre moyens
d’accéder à des magasins de données avec l’authentification Windows à partir de packages SSIS qui s’exécutent sur un runtime Azure-SSIS
IR :

Méthode de Portée Étape de configuration Méthode d’accès dans des packages


connexion effective

Configurer un Selon Configurez la propriété Authentification Windows pour définir un Accédez aux ressources directement dans les packages.
contexte l’activité contexte « Exécution/Exécuter en tant que » pour l’exécution de packages utilisez un chemin d’accès UNC pour accéder aux partag
d’exécution au Exécuter un SSIS en tant qu’activités Exécuter un package SSIS dans des pipelines ADF. ou au service Azure Files : \\YourFileShareServerName\Y
niveau de package SSIS ou
l’activité Pour plus d’informations, voir Configurer l’activité Exécuter le package \\YourAzureStorageAccountName.file.core.windows.net\
SSIS.

Configurer un Selon Azure- Exécutez la procédure stockée catalog.set_execution_credential SSISDB Accédez aux ressources directement dans les packages.
contexte SSIS IR, mais pour définir un contexte « Exécution/Exécuter en tant que ». utilisez un chemin d’accès UNC pour accéder aux partag
d’exécution au est remplacé ou au service Azure Files : \\YourFileShareServerName\Y
niveau du lors la Pour plus d’informations, voir la suite de cet article. ou
catalogue configuration \\YourAzureStorageAccountName.file.core.windows.net\
d’un
contexte
d’exécution
au niveau de
l’activité (voir
plus haut)
Méthode de Portée Étape de configuration Méthode d’accès dans des packages
connexion effective

Conserver les Selon Azure- Exécutez la commande cmdkey dans un script d’installation personnalisé Accédez aux ressources directement dans les packages.
informations SSIS IR, mais ( main.cmd ) lors de l’approvisionnement de votre Azure-SSIS IR, par utilisez un chemin d’accès UNC pour accéder aux partag
d’identification est remplacé exemple, si vous utilisez des partages de fichiers, Azure Files ou SQL ou au service Azure Files : \\YourFileShareServerName\Y
avec la lors la Server : ou
commande configuration \\YourAzureStorageAccountName.file.core.windows.net\
cmdkey d’un cmdkey /add:YourFileShareServerName /user:YourDomainName\YourUsername
contexte /pass:YourPassword ,
d’exécution
au niveau de cmdkey /add:YourAzureStorageAccountName.file.core.windows.net
l’activité ou /user:azure\YourAzureStorageAccountName /pass:YourAccessKey ou
du catalogue
(voir plus cmdkey
haut) /add:YourSQLServerFullyQualifiedDomainNameOrIPAddress:YorSQLServerPort
/user:YourDomainName\YourUsername /pass:YourPassword .

Pour plus d’informations, voir Personnaliser l’installation du runtime


Azure-SSIS IR.

Monter des Par package Exécutez la commande net use dans la tâche Exécuter le processus Accédez aux partages de fichiers par le biais de lecteurs
lecteurs à ajoutée au début du flux de contrôle de vos packages, par exemple, net
l’exécution du use D: \\YourFileShareServerName\YourFolderName .
package (non
persistant)

2 Avertissement

Si vous n’utilisez aucune des méthodes ci-dessus pour accéder à des magasins de données avec l’Authentification Windows, les
packages qui dépendent de l’Authentification Windows ne peuvent pas y accéder et échouent au moment de l’exécution.

La suite de cet article explique comment configurer le catalogue SSIS (SSISDB) hébergé dans une base de données SQL/une instance
managée SQL pour exécuter des packages sur le runtime d’intégration Azure-SSIS utilisant l’authentification Windows pour accéder aux
magasins de données.

Vous ne pouvez utiliser qu’un seul jeu d’informations d’identification


Si vous utilisez l’authentification Windows dans un package SSIS, vous ne pouvez recourir qu’à un seul jeu d’informations d’identification.
Tant que vous ne les changez et ne les supprimez pas, les informations d’identification de domaine que vous indiquez en suivant les étapes
de cet article s’appliquent à toutes les exécutions de packages, interactives ou planifiées, sur votre runtime Azure-SSIS IR. Si votre package
doit se connecter à plusieurs magasins de données avec différents jeux d’informations d’identification, tournez-vous vers les autres
méthodes décrites plus haut.
Fournir des informations d’identification de domaine pour
l’authentification Windows
Suivez les étapes ci-dessous pour fournir des informations d’identification de domaine permettant aux packages d’utiliser l’authentification
Windows afin d’accéder à des magasins de données sur site :

1. Avec SSMS (SQL Server Management Studio) ou un autre outil, connectez-vous à la base de données SQL/l’instance managée SQL qui
héberge SSISDB. Pour plus d’informations, voir Se connecter à SSISDB sur Azure.

2. La base de données SSISDB étant la base de données active, ouvrez une fenêtre de requête.

3. Exécutez la procédure stockée suivante en indiquant les informations d’identification de domaine nécessaires :

SQL

catalog.set_execution_credential @user='<your user name>', @domain='<your domain name>', @password='<your password>'

4. Exécutez vos packages SSIS. Les packages utilisent les informations d’identification fournies pour accéder aux magasins de données
sur site avec l’Authentification Windows.

Afficher les informations d’identification de domaine


Pour afficher les informations d’identification de domaine actives, effectuez les actions suivantes :

1. Avec SSMS ou un autre outil, connectez-vous à la base de données SQL/l’instance managée SQL qui héberge SSISDB. Pour plus
d’informations, voir Se connecter à SSISDB sur Azure.

2. La base de données SSISDB étant la base de données active, ouvrez une fenêtre de requête.

3. Exécutez la procédure stockée suivante et vérifiez la sortie :

SQL

SELECT *
FROM catalog.master_properties
WHERE property_name = 'EXECUTION_DOMAIN' OR property_name = 'EXECUTION_USER'

Effacer les informations d’identification de domaine


Pour effacer et supprimer les informations d’identification que vous avez fournies, comme indiqué dans cet article, effectuez les actions
suivantes :

1. Avec SSMS ou un autre outil, connectez-vous à la base de données SQL/l’instance managée SQL qui héberge SSISDB. Pour plus
d’informations, voir Se connecter à SSISDB sur Azure.

2. La base de données SSISDB étant la base de données active, ouvrez une fenêtre de requête.

3. Exécutez la procédure stockée suivante :

SQL

catalog.set_execution_credential @user='', @domain='', @password=''

Se connecter à un serveur SQL Server sur site


Suivez les étapes ci-dessous pour vérifier que vous pouvez vous connecter à un serveur SQL Server sur site :

1. Pour exécuter ce test, recherchez un ordinateur non membre d’un domaine.

2. Sur l’ordinateur non membre d’un domaine, exécutez la commande suivante pour lancer SSMS avec les informations d’identification
de domaine souhaitées :

Invite de commandes Windows

runas.exe /netonly /user:<domain>\<username> SSMS.exe


3. À partir de SSMS, vérifiez que vous pouvez vous connecter au serveur SQL Server sur site.

Prérequis
Suivez les étapes ci-dessous pour accéder à un serveur SQL Server sur site à partir de packages qui s’exécutent sur Azure :

1. Dans le Gestionnaire de configuration SQL Server, activez le protocole TCP/IP.

2. Autorisez l’accès à travers le Pare-feu Windows. Pour plus d’informations, voir Configurer le Pare-feu Windows pour accéder à SQL
Server.

3. Joignez votre runtime Azure-SSIS IR à un Réseau virtuel Microsoft Azure connecté au SQL Server local. Pour plus d’informations,
consultez Joindre le runtime Azure-SSIS IR à un Réseau virtuel Microsoft Azure.

4. Utilisez la procédure stockée catalog.set_execution_credential SSISDB pour indiquer les informations d’identification comme le
décrit cet article.

Se connecter à un partage de fichiers sur site


Suivez les étapes ci-dessous pour vérifier que vous pouvez vous connecter à un partage de fichiers sur site :

1. Pour exécuter ce test, recherchez un ordinateur non membre d’un domaine.

2. Sur l’ordinateur non membre d’un domaine, exécutez les commandes suivantes. Elles ouvrent une fenêtre d’invite de commandes
avec les informations d’identification de domaine à utiliser, puis testent la connectivité au partage de fichiers sur site en récupérant
une liste de répertoires.

Invite de commandes Windows

runas.exe /netonly /user:<domain>\<username> cmd.exe


dir \\fileshare

3. Vérifiez que la liste de répertoires est retournée pour le partage de fichiers sur site.

Prérequis
Suivez les étapes ci-dessous pour accéder à un partage de fichiers sur site à partir de packages qui s’exécutent sur Azure :

1. Autorisez l’accès à travers le Pare-feu Windows.

2. Joignez votre runtime Azure-SSIS IR à un Réseau virtuel Microsoft Azure connecté au partage de fichiers local. Pour plus
d’informations, consultez Joindre le runtime Azure-SSIS IR à un Réseau virtuel Microsoft Azure.

3. Utilisez la procédure stockée catalog.set_execution_credential SSISDB pour indiquer les informations d’identification comme le
décrit cet article.

Se connecter à un partage de fichiers sur les Machines virtuelles Azure


Suivez les étapes ci-dessous pour accéder à un partage de fichiers sur les Machines virtuelles Azure à partir de packages qui s’exécutent sur
Azure :

1. Avec SSMS ou un autre outil, connectez-vous à la base de données SQL/l’instance managée SQL qui héberge SSISDB. Pour plus
d’informations, voir Se connecter à SSISDB sur Azure.

2. La base de données SSISDB étant la base de données active, ouvrez une fenêtre de requête.

3. Exécutez la procédure stockée suivante en indiquant les informations d’identification de domaine nécessaires :

SQL

catalog.set_execution_credential @domain = N'.', @user = N'username of local account on Azure virtual machine',
@password = N'password'

Se connecter à un partage de fichiers dans Azure Files


Pour plus d’informations sur Azure Files, consultez Azure Files .

Suivez les étapes ci-dessous pour accéder à un partage de fichiers sur Azure Files à partir de packages qui s’exécutent sur Azure :

1. Avec SSMS ou un autre outil, connectez-vous à la base de données SQL/l’instance managée SQL qui héberge SSISDB. Pour plus
d’informations, voir Se connecter à SSISDB sur Azure.

2. La base de données SSISDB étant la base de données active, ouvrez une fenêtre de requête.

3. Exécutez la procédure stockée suivante en indiquant les informations d’identification de domaine nécessaires :

SQL

catalog.set_execution_credential @domain = N'Azure', @user = N'<storage-account-name>', @password = N'<storage-


account-key>'

Étapes suivantes
Déployez vos packages. Pour plus d’informations, voir Déployer un projet SSIS dans Azure avec SSMS.
Exécutez vos packages. Pour plus d’informations, voir Exécuter des packages SSIS sur Azure avec SSMS.
Planifiez vos packages. Pour plus d’informations, consultez Planifier des packages SSIS dans Azure.
Ouvrir et enregistrer des fichiers
localement et dans Azure avec des
packages SSIS déployés dans Azure
Article • 05/01/2024

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

 Conseil

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un
pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des
données à la science des données, en passant par l’analyse en temps réel, l’aide à la
décision et la création de rapports. Découvrez comment démarrer un nouvel essai
gratuitement !

Cet article explique ouvrir et enregistrer des fichiers localement et dans Azure quand
effectuez un lift-and-shift de packages SSIS qui utilisent des systèmes de fichiers locaux
dans SSIS dans Azure.

Enregistrer des fichiers temporaires


Si vous devez stocker et traiter des fichiers temporaires au cours d’une même exécution
d’un package, les packages peuvent utiliser le répertoire de travail actuel ( . ) ou le
répertoire temporaire ( %TEMP% ) de vos nœuds Azure SSIS Integration Runtime.

Utiliser des partages de fichiers locaux


Pour continuer à utiliser les partages de fichiers locaux quand vous faites un lift-and-
shift des packages basés sur des systèmes de fichiers locaux dans SSIS au sein d’Azure,
effectuez les actions suivantes :

1. Transférez les fichiers des systèmes de fichiers locaux vers des partages de fichiers
locaux.

2. Joignez les partages de fichiers locaux à un réseau virtuel Azure.

3. Joignez votre runtime d’intégration Azure-SSIS au même réseau virtuel. Pour plus
d’information, voir Joindre un runtime d’intégration Azure-SSIS à un réseau virtuel.
4. Connectez votre runtime d’intégration Azure-SSIS aux partages de fichiers locaux
dans le même réseau virtuel en configurant des informations d’identification
d’accès qui utilisent l’authentification Windows. Pour plus d’informations, consultez
Se connecter à des données et des partages de fichiers avec l’authentification
Windows.

5. Mettez à jour les chemins de fichiers locaux de vos packages en fonction des
chemins UNC qui pointent vers les partages de fichiers locaux. Par exemple, mettez
à jour C:\abc.txt vers \\<on-prem-server-name>\<share-name>\abc.txt .

Utiliser les partages de fichiers Azure


Pour utiliser Azure Files quand vous faites un lift-and-shift des packages basés sur des
systèmes de fichiers locaux dans SSIS au sein d’Azure, effectuez les actions suivantes :

1. Transférez les fichiers des systèmes de fichiers locaux vers Azure Files. Pour plus
d’informations, consultez Azure Files .

2. Connectez votre runtime d’intégration Azure SSIS à Azure Files en configurant les
informations d’identification d’accès qui utilisent l’authentification Windows. Pour
plus d’informations, consultez Se connecter à des données et des partages de
fichiers avec l’authentification Windows.

3. Mettez à jour les chemins de fichiers locaux de vos packages en fonction des
chemins UNC qui pointent vers Azure Files. Par exemple, mettez à jour C:\abc.txt
vers \\<storage-account-name>.file.core.windows.net\<share-name>\abc.txt .

Contenu connexe
Déployez vos packages. Pour plus d’informations, voir Déployer un projet SSIS
dans Azure avec SSMS.
Exécutez vos packages. Pour plus d’informations, voir Exécuter des packages SSIS
sur Azure avec SSMS.
Planifiez vos packages. Pour plus d’informations, consultez Planifier des packages
SSIS dans Azure.
Se connecter au catalogue SSIS (SSISDB)
dans Azure
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Découvrez les informations de connexion nécessaires pour se connecter au catalogue


SSIS (SSISDB) hébergé sur un serveur Azure SQL Database. Vous avez besoin des
éléments suivants pour vous connecter :

nom complet du serveur


nom de la base de données
informations de connexion

) Important

À l’heure actuelle, il n’est pas possible de créer la base de données du catalogue


SSISDB dans Azure SQL Database indépendamment de la création d’Azure-SSIS
Integration Runtime dans Azure Data Factory. Le runtime d’intégration Azure-SSIS
est l’environnement d’exécution qui exécute les packages SSIS sur Azure. Pour une
procédure pas à pas du processus, consultez Déployer et exécuter un package
SSIS dans Azure.

Prérequis
Avant de commencer, veillez à disposer de la version 17.2 ou ultérieure de SQL Server
Management Studio (SSMS). Si la base de données du catalogue SSISDB est hébergée
sur SQL Managed Instance, vérifiez que vous avez la version 17.6 ou ultérieure de SSMS.
Pour télécharger la dernière version de SSMS, consultez Télécharger SQL Server
Management Studio (SSMS).

Obtenir les informations de connexion à partir


du portail Azure
1. Connectez-vous au portail Azure .

2. Dans le portail Azure, sélectionnez Bases de données SQL dans le menu de


gauche, puis sélectionnez la base de données SSISDB dans la page Bases de
données SQL.

3. Dans la page Vue d’ensemble de la base de données SSISDB , vérifiez le nom


complet du serveur comme indiqué dans l’image suivante. Pointez sur le nom du
serveur pour afficher l’option Cliquer pour copier.

4. Si vous avez oublié les informations de connexion du serveur SQL Database,


accédez à la page du serveur SQL Database. Vous pourrez y trouver le nom de
l’administrateur du serveur et, si nécessaire, réinitialiser le mot de passe.

Se connecter à SSMS
1. Ouvrez SQL Server Management Studio.

2. Connectez-vous au serveur. Dans la fenêtre Se connecter au serveur, entrez les


valeurs suivantes :

Paramètre Valeur suggérée Description

Type de serveur Moteur de base de données Cette valeur est requise.

Nom du serveur Nom complet du serveur Le nom doit être au format suivant :
mysqldbserver.database.windows.net.

Authentification l’authentification SQL Server

Connexion Compte d’administrateur de Il s’agit du compte que vous avez


serveur spécifié lorsque vous avez créé le
serveur.

Mot de passe Mot de passe de votre Il s’agit du mot de passe que vous avez
compte d’administrateur de spécifié lorsque vous avez créé le
serveur serveur.
3. Connectez-vous à la base de données SSISDB. Sélectionnez Options pour
développer la boîte de dialogue Se connecter au serveur. Dans la boîte de
dialogue Se connecter au serveur développée, sélectionnez l’onglet Propriétés de
connexions. Dans le champ Se connecter à la base de données, sélectionnez ou
entrez SSISDB .

) Important

Si vous ne sélectionnez pas SSISDB quand vous vous connectez, le catalogue


SSIS risque de ne pas s’afficher dans l’Explorateur d’objets.
4. Sélectionnez Connecter.

5. Dans l’Explorateur d’objets, développez Catalogues Integration Services, puis


développez SSISDB pour afficher les objets de la base de données de catalogues
SSIS.

Étapes suivantes
Déployez un package. Pour plus d’informations, consultez Déployer un projet SSIS
avec SQL Server Management Studio (SSMS).
Exécutez un package. Pour plus d’informations, consultez Exécuter un package SSIS
avec SQL Server Management Studio (SSMS).
Planifiez un package. Pour plus d’informations, consultez Planifier des packages
SSIS dans Azure.
Valider les packages SSIS (SQL Server
Integration Services) déployés sur Azure
Article • 30/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Quand vous déployez un projet SQL Server Integration Services (SSIS) sur le catalogue
SSIS (SSISDB) sur un serveur Azure, l’Assistant Déploiement de package ajoute une
étape de validation supplémentaire après la page Passer en revue. Cette étape de
validation inspecte les packages du projet à la recherche de problèmes connus
susceptibles d’impacter leur exécution dans Azure SSIS Integration Runtime. L’Assistant
affiche ensuite tous les avertissements applicables dans la page Valider.

) Important

La validation décrite dans cet article se produit quand vous déployez un projet avec
SQL Server Data Tools (SSDT) version 17.4 ou ultérieure. Pour obtenir la dernière
version de SSDT, consultez Télécharger SSDT (SQL Server Data Tools).

Pour plus d’informations sur l’Assistant Déploiement de package, consultez Déployer


des projets et des packages Integration Services (SSIS).

Valider les gestionnaires de connexions


L’Assistant inspecte certains gestionnaires de connexions à la recherche des problèmes
suivants qui peuvent entraîner l’échec de la connexion :

Authentification Windows. Si une chaîne de connexion utilise l’authentification


Windows, la validation génère un avertissement. L’authentification Windows
nécessite des étapes de configuration supplémentaires. Pour plus d’informations,
consultez Se connecter à des données et des partages de fichiers avec
l’authentification Windows.
Chemin du fichier. Si une chaîne de connexion contient un chemin de fichier local
codé en dur, comme C:\\... , la validation génère un avertissement. Les packages
contenant un chemin absolu peuvent échouer.
Chemin UNC. Si une chaîne de connexion contient un chemin UNC, la validation
génère un avertissement. Les packages contenant un chemin UNC peuvent
échouer, car ce chemin nécessite généralement l’authentification Windows pour
l’octroi de l’accès.
Nom d’hôte. Si une propriété de serveur contient un nom d’hôte au lieu d’une
adresse IP, la validation génère un avertissement. Les packages contenant un nom
d’hôte peuvent échouer, car le réseau virtuel Azure exige généralement la bonne
configuration DNS pour prendre en charge la résolution de noms DNS.
Fournisseur ou pilote. Si un fournisseur ou un pilote n’est pas pris en charge, la
validation lève un avertissement. Seuls quelques fournisseurs et pilotes intégrés
sont pris en charge actuellement.

L’Assistant effectue les contrôles de validation suivants pour les gestionnaires de


connexions dans la liste.

Gestionnaire de Authentification Chemins d'accès Chemin Nom de Fournisseur


connexions Windows au fichier UNC l’hôte ou pilote

Ado

AdoNet

Cache

Excel

Fichier

FlatFile

Ftp

MsOLAP100

MultiFile

MultiFlatFile

OData

Odbc

OleDb

SmoServer

Smtp

SqlMobile

Wmi

Valider les sources et les destinations


Les sources et destinations tierces suivantes ne sont pas prises en charge :

Source et destination Oracle par Attunity


Source et destination Teradata par Attunity
Source et destination SAP BW

Valider les tâches et les composants

Tâche d'exécution de processus


La validation génère un avertissement si une commande pointe vers un fichier local avec
un chemin absolu ou vers un fichier avec un chemin UNC. Ces chemins peuvent
provoquer l’échec de l’exécution sur Azure.

Tâche de script et composant de script


La validation génère un avertissement si un package contient une tâche de script ou un
composant de script qui peut référencer ou appeler des assemblys non pris en charge.
Ces références ou appels peuvent provoquer l’échec de l’exécution.

Autres composants
Le format Orc n’est pas pris en charge dans la destination HDFS ni la destination Azure
Data Lake Store.

Étapes suivantes
Planifier des packages SSIS dans Azure.
Exécuter des packages SSIS (SQL Server
Integration Services) déployés sur Azure
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Choisissez une des méthodes décrites dans cet article pour exécuter des packages SSIS
déployés sur le catalogue SSISDB sur un serveur Azure SQL Database. Vous pouvez
exécuter un package directement ou dans le cadre d’un pipeline Azure Data Factory.
Pour une vue d’ensemble de SSIS sur Azure, consultez Déployer et exécuter des
packages SSIS dans Azure.

Exécuter un package directement

Exécuter avec SSMS

Exécuter avec des procédures stockées

Exécuter avec un script ou du code

Exécuter un package dans le cadre d’un pipeline Azure Data Factory

Exécuter avec l’activité Exécuter le package SSIS

Exécuter avec l’activité Procédure stockée

7 Notes

L’exécution d’un package avec dtexec.exe n’a pas été testée avec les packages
déployés sur Azure.

Exécuter un package avec SSMS


Dans SSMS (SQL Server Management Studio), vous pouvez cliquer avec le bouton droit
sur un package déployé sur la base de données du catalogue SSIS, SSISDB, puis
sélectionner Exécuter pour ouvrir la boîte de dialogue Exécuter le package. Pour plus
d’informations, consultez Exécuter un package SSIS avec SQL Server Management
Studio (SSMS).
Exécuter des packages avec des procédures
stockées
Dans tout environnement à partir duquel vous pouvez vous connecter à Azure SQL
Database et exécuter du code Transact-SQL, vous pouvez exécuter un package en
appelant les procédures stockées suivantes :

1. [catalog].[create_execution] . Pour plus d’informations, consultez


catalog.create_execution.

2. [catalog].[set_execution_parameter_value] . Pour plus d’informations, consultez


catalog.set_execution_parameter_value.

3. [catalog].[start_execution] . Pour plus d’informations, consultez


catalog.start_execution.

Pour plus d’informations, consultez les exemples suivants :

Exécuter un package SSIS à partir de SSMS avec Transact-SQL

Exécuter un package SSIS à partir de Visual Studio Code avec Transact-SQL

Exécuter un package avec un script ou du code


Dans tout environnement de développement à partir duquel vous pouvez appeler une
API managée, vous pouvez exécuter un package en appelant la méthode Execute de
l’objet Package dans l’espace de noms
Microsoft.SQLServer.Management.IntegrationServices .

Pour plus d’informations, consultez les exemples suivants :

Exécuter un package SSIS avec PowerShell

Exécuter un package SSIS avec du code C# dans une application .NET

Exécuter un package avec l’activité Exécuter le


package SSIS
Pour plus d’informations, consultez Exécuter un package SSIS à l’aide de l’activité
Exécuter le package SSIS dans Azure Data Factory.
Exécuter un package avec l’activité Procédure
stockée
Pour plus d’informations, consultez Exécuter un package SSIS à l’aide de l’activité
Procédure stockée dans Azure Data Factory.

Étapes suivantes
Découvrez les options disponibles pour planifier des packages SSIS déployés sur Azure.
Pour plus d’informations, consultez Planifier des packages SSIS dans Azure.
Planifier l’exécution de packages SSIS
(SQL Server Integration Services)
déployés dans Azure
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Choisissez une des méthodes décrites dans cet article pour planifier l’exécution de
packages SSIS déployés sur le catalogue SSISDB sur un serveur Azure SQL Database.
Vous pouvez planifier un package soit directement, soit indirectement dans le cadre
d’un pipeline Azure Data Factory. Pour obtenir une vue d’ensemble de SSIS sur Azure,
consultez Effectuer un « lift-and-shift » des charges de travail SQL Server Integration
Services vers le cloud.

Planifier un package directement

Planifier à l’aide de l’option Planifier dans SQL Server Management Studio


(SSMS)

Travaux élastiques SQL Database

SQL Server Agent

Planifier un package indirectement dans le cadre d’un pipeline Azure Data Factory

Planifier un package avec SSMS


Dans SQL Server Management Studio (SSMS), vous pouvez cliquer avec le bouton droit
sur un package déployé dans la base de données du catalogue SSIS, SSISDB , puis
sélectionner Planifier pour ouvrir la boîte de dialogue Nouvelle planification. Pour plus
d’informations, consultez Planifier des packages SSIS dans Azure avec SSMS.

Cette fonctionnalité nécessite SQL Server Management Studio version 17.7 ou ultérieure.
Pour obtenir la dernière version de SSMS, consultez Télécharger SQL Server
Management Studio (SSMS).

Planifier un package avec des travaux


élastiques SQL Database
Pour plus d’informations sur les travaux élastiques SQL Database, consultez Gestion des
bases de données cloud avec augmentation de la taille des instances.

Prérequis
Pour pouvoir utiliser des travaux élastiques afin de planifier des packages SSIS stockés
dans la base de données de catalogues SSISDB sur un serveur Azure SQL Database, vous
devez effectuer les actions suivantes :

1. Installez et configurez les tâches de base de données élastique. Pour plus


d’informations, consultez Vue d’ensemble de l’installation des tâches de base de
données élastique.

2. Créez des informations d’identification au niveau de la base de données pour


permettre aux travaux d’envoyer des commandes à la base de données de
catalogues SSIS. Pour plus d’informations, consultez CREATE DATABASE SCOPED
CREDENTIAL (Transact-SQL).

Créer un travail élastique


Créez le travail à l’aide d’un script Transact-SQL similaire au script indiqué dans
l’exemple suivant :

SQL

-- 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.n
et',
@database_name='SSISDB'

-- Add a job to schedule SSIS package execution


EXEC jobs.sp_add_job @job_name='ExecutePackageJob', @description='Descriptio
n',
@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

Planifier un package avec SQL Server Agent en


local
Pour plus d’informations sur SQL Server Agent, consultez Travaux de SQL Server Agent
pour les packages.

Prérequis : Créer un serveur lié


Avant de pouvoir utiliser SQL Server Agent localement pour planifier l’exécution des
packages stockés sur un serveur Azure SQL Database, vous devez ajouter le serveur SQL
Database à votre serveur SQL Server local en tant que serveur lié. L’exemple ci-dessous
utilise Microsoft OLE DB Driver pour SQL Server.

1. Configurer le serveur lié

SQL

-- 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='MSOLEDBSQL', -- Microsoft OLE DB Driver for SQL Server
@datasrc='<server_name>.database.windows.net', -- Add your Azure
SQL Database server endpoint
@location='',
@provstr='',
@catalog='SSISDB' -- Add SSISDB as the initial catalog

2. Configurer les informations d’identification du serveur lié

SQL

-- 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. Configurer les options du serveur lié

SQL

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

Pour plus d’informations, consultez Créer des serveurs liés et Serveurs liés.

Créer un travail de SQL Server Agent


Pour planifier un package avec SQL Server Agent localement, créez un travail avec une
étape de travail qui appelle les procédures stockées du catalogue SSIS [catalog].
[create_execution] , puis [catalog].[start_execution] . Pour plus d’informations,

consultez Travaux de SQL Server Agent pour les packages.

1. Dans SQL Server Management Studio, connectez-vous à la base de données SQL


Server locale sur laquelle vous souhaitez créer le travail.

2. Cliquez avec le bouton droit sur le nœud SQL Server Agent, sélectionnez
Nouveau, puis Travail pour ouvrir la boîte de dialogue Nouveau travail.

3. Dans la boîte de dialogue Nouveau travail, sélectionnez la page Étapes, puis


Nouveau pour ouvrir la boîte de dialogue Nouvelle étape du travail.

4. Dans la boîte de dialogue Nouvelle étape du travail, sélectionnez SSISDB en tant


que Base de données.

5. Dans le champ Commande, entrez un script Transact-SQL similaire au script


figurant dans l’exemple suivant :

SQL

-- 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, @use


anyworker=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. Finissez de configurer et de planifier le travail.

Planifier un package dans le cadre d’un


pipeline Azure Data Factory
Vous pouvez planifier un package indirectement à l’aide d’un déclencheur pour exécuter
un pipeline Azure Data Factory qui exécute un package SSIS.

Pour planifier un pipeline Data Factory, utilisez l’un des déclencheurs suivants :

Déclencheur de planification

Déclencheur de fenêtre bascule

Déclencheur basé sur un événement

Pour exécuter un package SSIS dans le cadre d’un pipeline Data Factory, utilisez l’une
des activités suivantes :

Activité Exécuter le package SSIS.

Activité Procédure stockée.

Étapes suivantes
Passez en revue les options disponibles pour exécuter des packages SSIS déployés sur
Azure. Pour plus d’informations, consultez Exécuter des packages SSIS dans Azure.
Planifier l’exécution de packages SSIS
déployés dans Azure avec SQL Server
Management Studio (SSMS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous pouvez utiliser SQL Server Management Studio (SSMS) pour planifier le
déploiement de packages SSIS dans Azure SQL Database. SQL Server local et SQL
Managed Instance ont respectivement SQL Server Agent et l’agent Managed Instance
comme planificateur de travaux SSIS de première classe. De son côté, SQL Database
n’intègre pas de planificateur de travaux SSIS de première classe. La fonctionnalité SSMS
décrite dans cet article présente une interface utilisateur bien connue qui s’apparente à
celle de SQL Server Agent pour la planification des packages déployés dans SQL
Database.

Si vous utilisez SQL Database pour héberger le catalogue SSIS, SSISDB , vous pouvez
utiliser cette fonctionnalité de SSMS pour générer les pipelines, les activités et les
déclencheurs Data Factory nécessaires à la planification de packages SSIS. Vous pouvez
ensuite si vous le souhaitez modifier et étendre ces objets dans Data Factory.

Quand vous vous servez de SSMS pour planifier un package, SSIS crée
automatiquement trois objets Data Factory et les nomme selon le nom du package
sélectionné et de l’horodatage. Par exemple, si le nom du package SSIS est
MonPackage, SSMS crée des objets Data Factory semblables aux suivants :

Object Name

Pipeline Pipeline_MonPackage_2018-05-08T09_00_00Z

Activité Exécuter le package SSIS Activité_MonPackage_2018-05-08T09_00_00Z

Déclencheur Déclencheur_MonPackage_2018-05-08T09_00_00Z

Conditions préalables requises


La fonctionnalité décrite dans cet article nécessite SQL Server Management Studio
version 17.7 ou supérieure. Pour obtenir la dernière version de SSMS, consultez
Télécharger SQL Server Management Studio (SSMS).
Planifier un package dans SSMS
1. Dans SSMS, dans l’Explorateur d’objets SQL Server, sélectionnez successivement la
base de données SSISDB, un dossier, un projet, puis un package. Cliquez avec le
bouton droit sur le package, puis sélectionnez Planifier.

2. La boîte de dialogue Nouvelle planification s’ouvre. Dans la page Général de la


boîte de dialogue Nouvelle planification, fournissez un nom et une description
pour le nouveau travail planifié.
3. Dans la page Package de la boîte de dialogue Nouvelle planification, sélectionnez
éventuellement des paramètres d’exécution et un environnement d’exécution.

4. Dans la page Planification de la boîte de dialogue Nouvelle planification, spécifiez


les paramètres de planification tels que la fréquence, l’heure du jour et la durée.

5. Après avoir créé le travail dans la boîte de dialogue Nouvelle planification, une
confirmation s’affiche pour vous rappeler les objets Data Factory que SSMS va
créer. Si vous sélectionnez Oui dans la boîte de dialogue de confirmation, le
nouveau pipeline Data Factory s’ouvre dans le portail Azure pour vous permettre
de l’examiner et de le personnaliser.
6. Pour personnaliser le déclencheur de planification, sélectionnez Nouveau/Modifier
dans le menu Déclencheur.

Le panneau Modifier le déclencheur s’ouvre pour vous permettre de personnaliser


les options de planification.
Étapes suivantes
Pour en savoir plus sur les autres méthodes de planification d’un package SSIS,
consultez Planifier l’exécution d’un package SSIS sur Azure.

Pour en savoir plus sur les pipelines, les activités et les déclencheurs Azure Data Factory,
consultez les articles suivants :

Pipelines et activités dans Azure Data Factory


Exécution et déclencheurs de pipelines dans Azure Data Factory
Migrer des charges de travail SSIS
locales vers SSIS dans ADF
Article • 02/06/2023

Cet article liste les processus et les outils qui peuvent vous aider à migrer des charges
de travail SQL Server Integration Services (SSIS) vers SSIS dans ADF.

La vue d’ensemble de la migration présente le processus de migration de vos charges


de travail ETL dans SSIS au niveau local vers SSIS dans ADF.

Le processus de migration se déroule en deux phases : l’évaluation et la migration.

Évaluation
À cette fin, vous pouvez utiliser l’Assistant Migration de données (DMA), un outil
disponible en téléchargement gratuit qui peut être installé et exécuté localement. Vous
pouvez créer un projet d’évaluation DMA de type Services d’intégration pour évaluer
des packages SSIS par lots et identifier les problèmes de compatibilité.

Obtenez l’Assistant Migration de base de données et procédez à l’évaluation des


packages.

Migration
Les étapes de migration des packages SSIS et des travaux de SQL Server Agent qui
planifient les exécutions de packages SSIS peuvent varier selon les types de stockage
des packages SSIS sources et la destination de la migration des charges de travail de
base de données. Pour plus d’informations, consultez cette page.

Étapes suivantes
Migrer des packages SSIS vers Azure SQL Managed Instance.
Migrez les travaux SSIS vers Azure Data Factory (ADF) avec SQL Server
Management Studio (SSMS).
Installer Integration Services (SSIS)
Article • 26/04/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

SQL Server fournit un programme d’installation unique pour installer tout ou une partie
de ses composants, notamment Integration Services. Utilisez le programme
d’installation SQL Server pour installer Integration Services avec ou sans d’autres
composants SQL Server sur un seul ordinateur.

Cet article met l’accent sur quelques facteurs importants qu’il convient de prendre en
compte avant d’installer Integration Services. Les informations de cet article vous aident
à évaluer les options d’installation, de façon à ce que votre sélection aboutisse à une
installation réussie.

Préparer l’installation d’Integration Services


Avant d’installer Microsoft SQL Server Integration Services, vérifiez les informations
suivantes :

Configurations matérielle et logicielle requises pour l’installation de SQL Server

Considérations sur la sécurité pour une installation SQL Server

Installer la version autonome ou côte à côte


Vous pouvez installer SQL Server Integration Services dans les configurations suivantes :

Installez SQL Server Integration Services sur un ordinateur dépourvu d’instances


antérieures de SQL Server.

Installez Integration Services côte à côte avec une instance existante de SQL Server.

Quand vous effectuez une mise à niveau vers la dernière version de Integration Services
sur un ordinateur où une version antérieure de Integration Services, la version actuelle
est installée côte à côte avec la version antérieure.

Pour plus d’informations sur la mise à niveau de Integration Services, consultez Mettre à
niveau Integration Services.

Installer Integration Services


Après avoir pris connaissance de la configuration requise pour l’installation de SQL
Server et vérifié que votre ordinateur répondait à ces critères, vous pouvez installer
Integration Services.

1. Si vous n’avez pas encore Microsoft SQL Server, téléchargez une Édition
développeur gratuite depuis Téléchargements SQL Server . SSIS n’est pas inclus
dans l’édition Express de SQL Server.

2. Dans l’Assistant Installation de SQL Server, sélectionnez Nouvelle installation


autonome de SQL Server ou ajout de fonctionnalités à une installation existante.
Pour installer Integration Services, faites les sélections dans la page Sélection de
composant comme suit :

Sous Fonctionnalités partagées, sélectionnez Integration Services.

Sous Fonctionnalités partagées, sélectionnez éventuellement Kit de


développement logiciel (SDK) des outils clients afin d’installer les assemblys
managés pour la programmation de Integration Services.

Sous Fonctionnalités de l’instance, sélectionnez si vous le souhaitez Services


Moteur de base de données pour héberger la base de données du catalogue
SSIS, SSISDB , afin de stocker, gérer, exécuter et surveiller des packages SSIS.
3. Pensez à installer des composants supplémentaires pour Integration Services. Pour
plus d’informations, consultez la section Installer des composants supplémentaires
de cet article.

7 Notes

Parmi les composants SQL Server que vous pouvez sélectionner dans la page
Sélection de composant de l’Assistant Installation, certains n’installent qu’une
partie des composants Integration Services. Ces composants sont utiles pour des
tâches spécifiques, mais les fonctionnalités de Integration Services s’en trouvent
limitées. Par exemple, l'option Services Moteur de base de données installe les
composants Integration Services requis pour l'Assistant Importation et Exportation
SQL Server . Pour garantir une installation complète de Integration Services, vous
devez sélectionner Integration Services dans la page Sélection de composant .

Installer un serveur dédié pour les processus ETL


Pour utiliser un serveur dédié pour les processus d’extraction, de transformation et de
chargement (ETL), installez une instance locale du Moteur de base de données SQL
Server quand vous installez Integration Services. Integration Services stocke
habituellement les packages dans une instance du Moteur de base de données et
compte sur l'Agent SQL Server pour la planification de ces packages. Si le serveur ETL ne
dispose pas d’une instance du Moteur de base de données, vous devez planifier ou
exécuter les packages à partir d’un serveur qui a une instance du Moteur de base de
données. Cela signifie que les packages ne s’exécutent pas sur le serveur ETL, mais sur le
serveur à partir duquel ils sont démarrés. En conséquence, les ressources du serveur ETL
dédié ne sont pas utilisées comme prévu. De plus, les ressources d'autres serveurs
peuvent être éprouvées par les processus ETL en cours d'exécution

Configurer la journalisation des événements SSIS


Par défaut, dans une nouvelle installation, Integration Services est configuré de façon à
ne pas journaliser les événements en rapport avec l'exécution de packages dans le
journal des événements des applications. Ce paramètre limite le nombre d'entrées de
journal des événements lorsque vous utilisez la fonctionnalité du collecteur de données
de SQL Server. Les événements qui ne sont pas enregistrés incluent l’ID d’événement
12288, « le Package a démarré », et l’ID d’événement 12289, « le Package a fini avec
succès ». Pour enregistrer ces événements dans le journal des événements des
applications, ouvrez le Registre pour y apporter des modifications. Dans le Registre,
recherchez le nœud HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL
Server\130\SSIS et modifiez la valeur DWORD du paramètre
LogPackageExecutionToEventLog en remplaçant 0 par 1 .

Installer des composants supplémentaires


Pour une installation complète de Integration Services, sélectionnez les composants
dont vous avez besoin dans la liste suivante :

Integration Services. Installer SSIS avec l’Assistant Installation de SQL Server. La


sélection de SSIS installe les composants suivants :

Prise en charge du catalogue SSIS sur le moteur de base de données SQL Server

Fonctionnalité Scale-Out facultative.

Les composants SSIS 32 bits et 64 bits

L’installation seule d’Integration Services n’installe PAS les outils nécessaires pour
concevoir et développer des packages SSIS.

Services Moteur de base de données. Installez le moteur de base de données avec


l’Assistant Installation de SQL Server. La sélection de Services Moteur de base de
données vous permet de créer et d’héberger la base de données du catalogue
SSIS, SSISDB , afin de stocker, gérer, exécuter et surveiller les packages SSIS.

SQL Server Data Tools (SSDT) . Pour télécharger et installer SSDT, consultez
Télécharger SQL Server Data Tools (SSDT). L’installation de SSDT vous permet de
concevoir et de déployer des packages SSIS. SSDT installe les éléments suivants :

Les outils de conception et de développement de package SSIS, notamment le


concepteur SSIS

Les composants SSIS 32 bits uniquement

Une version limitée de Visual Studio (si aucune édition de Visual Studio n’est
déjà installée).

Visual Studio Tools for Applications (VSTA), l’éditeur de script utilisé par le
composant de script et la tâche de script SSIS

Les Assistants SSIS, notamment l’Assistant Déploiement et l’Assistant Mise à


niveau de packages

L’Assistant Importation et Exportation SQL Server


) Important

À partir de Visual Studio 2019, il n’existe aucun programme d’installation


autonome pour SSDT. Vous pouvez obtenir l’extension du concepteur SSIS à
partir de la Place de marché Visual Studio .

Integration Services Feature Pack pour Azure. Pour télécharger et installer le


Feature Pack, consultez Feature Pack Microsoft SQL Server Integration Services
pour Azure. L’installation du Feature Pack permet à vos packages de se connecter
aux services de stockage et d’analytique dans le cloud Azure, notamment aux
services suivants :

Stockage Blob Azure.

Azure HDInsight

Azure Data Lake Store

Azure Synapse Analytics

Azure Data Lake Storage (Gen2).

Composants supplémentaires facultatifs. Vous pouvez éventuellement télécharger


des composants tiers supplémentaires à partir du SQL Server Feature Package.

Microsoft® Connector pour SAP BW pour Microsoft SQL Server®. Pour obtenir
ces composants, consultez Microsoft® SQL Server® 2017 Feature Pack .

Microsoft Connectors pour Oracle et Teradata par Attunity. Pour obtenir ces
composants, consultez Connecteurs Attunity.

Étapes suivantes
Pour plus d’informations sur l’installation d’Integration Services et les mises à jour des
fonctionnalités, consultez les articles suivants :

Installation de plusieurs versions Integration Services côte à côte

Nouveautés d’Integration Services dans SQL Server 2017

Nouveautés d’Integration Services dans SQL Server 2016


Installation de plusieurs versions
Integration Services côte à côte
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous pouvez installer plusieurs versions de SQL Server 2019 (15.x) Integration Services
(SSIS) côte à côte. Cette rubrique décrit certaines limitations des installations côte à
côte.

Conception et gestion de packages


Pour concevoir et gérer des packages ciblant SQL Server 2016, SQL Server 2014 ou SQL
Server 2012, utilisez SQL Server Data Tools (SSDT) pour Visual Studio 2015. Pour obtenir
SSDT, voir Télécharger la dernière version de SQL Server Data Tools.

Dans les pages de propriétés d’un projet Integration Services, au niveau de l’onglet
Général de Propriétés de configuration, sélectionnez la propriété TargetServerVersion
et choisissez SQL Server 2016, SQL Server 2014 ou SQL Server 2012.

Version cible de SQL Environnement de développement de packages SSIS


Server

2016 SQL Server Data Tools pour Visual Studio 2015

2014 SQL Server Data Tools pour Visual Studio 2015

ou

SQL Server Data Tools - Business Intelligence pour Visual Studio


2013

2012 SQL Server Data Tools pour Visual Studio 2015

ou

SQL Server Data Tools – Business Intelligence pour Visual Studio


2012

2008 Business Intelligence Development Studio dans SQL Server 2008

Lorsque vous ajoutez un package existant à un projet existant, le package est converti
au format ciblé par le projet.
Exécution des packages
Pour exécuter des packages Integration Services créés par des versions antérieures des
outils de développement, vous pouvez utiliser la version SQL Server 2019 (15.x) de
l’utilitaire dtexec ou de SQL Server Agent. Lorsque ces outils SQL Server 2019 (15.x)
chargent un package développé dans une version antérieure des outils de
développement, l’outil convertit momentanément le package en mémoire dans le
format de package utilisé par SQL Server 2019 Integration Services (SSIS) . Si le package
présente des problèmes empêchant une conversion, l’outil SQL Server 2019 (15.x) ne
peut pas exécuter le package tant que ces problèmes ne sont pas résolus. Pour plus
d’informations, consultez Mettre à niveau des packages Integration Services.
Mettre à niveau Integration Services
Article • 12/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Si SQL Server 2008 Integration Services (SSIS) ou version ultérieure est actuellement
installé sur votre ordinateur, vous pouvez effectuer une mise à niveau vers SQL Server
2019 Integration Services (SSIS).

Lorsque vous effectuez une mise à niveau vers SQL Server 2019 Integration Services
(SSIS) sur un ordinateur où est déjà installée l’une de ces versions antérieures
d’Integration Services, SQL Server 2019 Integration Services (SSIS) est installé côte à côte
avec la version antérieure.

Avec cette installation côte à côte, plusieurs versions de l'utilitaire dtexec sont installés.
Pour être certain d’exécuter la version appropriée de l’utilitaire, à l’invite de commandes,
exécutez l’utilitaire en entrant le chemin complet (<lecteur>:\Program Files\Microsoft
SQL Server\<version>\DTS\Binn). Pour plus d'informations dtexec, consultez dtexec
Utility.

7 Notes

Dans les versions précédentes de SQL Server, par défaut, lorsque vous installiez
SQL Server, tous les membres du groupe Utilisateurs dans Utilisateurs et groupes
locaux avaient accès au service Integration Services. Quand vous installez SQL
Server 2016 (13.x) ou une version ultérieure, les utilisateurs n’ont pas accès au
service Integration Services. Ce service est sécurisé par défaut. Après avoir installé
SQL Server, l’administrateur de SQL Server doit exécuter l’outil de configuration
DCOM (Dcomcnfg.exe) pour accorder à des utilisateurs spécifiques l’accès au
service Integration Services. Pour plus d’informations, consultez Service Integration
Services (Service SSIS).

Avant de procéder à la mise à niveau


d'Integration Services
Nous vous recommandons d’exécuter le Conseiller de mise à niveau avant de procéder
à la mise à niveau vers SQL Server 2019 (15.x). Le Conseiller de mise à niveau signale les
problèmes que vous pouvez rencontrer si vous effectuez une migration de packages
Integration Services existants vers le nouveau format de package que SQL Server 2019
(15.x) utilise.

7 Notes

La prise en charge de la migration ou de l’exécution de packages DTS (Data


Transformation Services) a été suspendue dans SQL Server 2012. Les fonctionnalités
DTS suivantes ne sont plus disponibles.

Runtime DTS ;
DTS API ;
Assistant Migration de package pour la migration de packages DTS vers la
prochaine version d’Integration Services ;
prise en charge de la maintenance des packages DTS dans SQL Server
Management Studio ;
Tâche d'exécution de package DTS 2000 ;
analyse du Conseiller de mise à niveau des packages DTS.

Pour plus d’informations sur les autres fonctionnalités abandonnées, consultez


Fonctionnalités Integration Services abandonnées dans SQL Server 2016.

mise à niveau d'Integration Services


Vous pouvez effectuer la mise à niveau au moyen de l'une des méthodes suivantes :

Exécutez le programme d'installation de SQL Server 2019 (15.x) et sélectionnez


l’option Mise à niveau de SQL Server 2008, SQL Server 2008 R2, SQL Server 2012
(11.x) ou SQL Server 2014 (12.x).

Exécutez le fichier setup.exe à l’invite de commandes et spécifiez l’option


/ACTION=upgrade . Pour plus d’informations, consultez la section, « Scripts
d’installation pour Integration Services », dans Installer SQL Server 2016 à partir de
l’invite de commandes.

Vous ne pouvez pas utiliser la mise à niveau pour exécuter les actions suivantes :

Reconfigurer une installation existante d’Integration Services.

Passer d'une version 32 bits à une version 64 bits de SQL Server ou d'une version
64 bits à une version 32 bits.

Passer d'une version localisée de SQL Server à une autre version localisée.
Lorsque vous effectuez une mise à niveau, vous pouvez mettre à niveau à la fois
Integration Services et le Moteur de base de données, ou uniquement le Moteur de
base de données, ou encore uniquement Integration Services. Si vous mettez à niveau
uniquement le Moteur de base de données, SQL Server 2008 Integration Services (SSIS)
ou version ultérieure reste opérationnel, mais vous n’avez pas les fonctionnalités de SQL
Server 2019 Integration Services (SSIS). Si vous mettez à niveau uniquement Integration
Services, SQL Server 2019 Integration Services (SSIS) est entièrement opérationnel, mais
peut uniquement stocker des packages dans le système de fichiers, sauf si une instance
du Moteur de base de données SQL Server est disponible sur un autre ordinateur.

Mise à niveau à la fois d’Integration Services et


du Moteur de base de données vers SQL
Server 2019 (15.x)
Cette section décrit les conséquences liées à l'exécution d'une mise à niveau qui obéit
aux critères suivants :

Vous mettez à niveau Integration Services et une instance du Moteur de base de


données vers SQL Server 2019 (15.x).

Integration Services et l’instance du Moteur de base de données se trouvent tous


les deux sur le même ordinateur.

Ce que fait le processus de mise à niveau


Le processus de mise à niveau effectue les tâches suivantes :

Installe les fichiers, le service et les outils (Management Studio et SQL Server Data
Tools) SQL Server 2019 Integration Services (SSIS). Quand il y a plusieurs instances
de SQL Server 2008 (10.0.x), SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x)
ou SQL Server 2014 (12.x) sur le même ordinateur, la première fois que vous
mettez à niveau l’une des instances vers SQL Server 2019 (15.x), les fichiers, le
service et les outils SQL Server 2019 Integration Services (SSIS) sont installés.

Met à niveau l’instance du Moteur de base de données SQL Server 2008 (10.0.x),
SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x) ou SQL Server 2014 (12.x) vers
la version SQL Server 2019 (15.x).

Déplace les données des tables système SQL Server 2008 Integration Services
(SSIS) ou version ultérieure vers les tables système SQL Server 2019 Integration
Services (SSIS), de la façon suivante :
Déplace les packages sans modification de la table système
msdb.dbo.sysdtspackages90 vers la table système msdb.dbo.sysssispackages.

7 Notes

Bien que les données soient déplacées vers une autre table système, la
mise à niveau n'effectue pas la migration des packages vers le nouveau
format.

Déplace les métadonnées de dossier de la table système msdb.sysdtsfolders90


vers la table système msdb.sysssisfolders.

Déplace les données du journal de la table système msdb.sysdtslog90 vers la


table système msdb.sysssislog.

Supprime les tables système msdb.sysdts*90 et les procédures stockées utilisées


pour y accéder après avoir déplacé les données vers les nouvelles tables
msdb.sysssis*. Toutefois, la mise à niveau remplace la table sysdtslog90 par une
vue qui est également nommée sysdtslog90. Cette nouvelle vue sysdtslog90
présente la nouvelle table système msdb.sysssislog. Cela garantit que les rapports
basés sur la table du journal continuent à s'exécuter sans interruption.

Pour contrôler l'accès aux packages, crée trois nouveaux rôles de base de données
fixes : db_ssisadmin, db_ssisltduser et db_ssisoperator. Les rôles db_dtsadmin,
db_dtsltduser et db_dtsoperator dans SQL Server 2005 (9.x) Integration Services ne
sont pas supprimés, mais deviennent membres des nouveaux rôles
correspondants.

Si le magasin de packages SSIS (autrement dit, l’emplacement du système de


fichiers géré par le service Integration Services) constitue l’emplacement par défaut
sous \SQL Server\90, \SQL Server\100, \SQL Server\110 ou \SQL Server\120,
déplace ces packages vers le nouvel emplacement par défaut sous \SQL
Server\130.

Met à jour le fichier de configuration du service Integration Services de sorte qu’il


pointe vers l’instance mise à niveau du Moteur de base de données.

Ce que ne fait pas le processus de mise à niveau


Le processus de mise à niveau n'effectue pas les tâches suivantes :
Ne supprime pas le service SQL Server 2008 Integration Services (SSIS) ou version
ultérieure.

Ne migre pas les packages Integration Services existants vers le nouveau format de
package utilisé par SQL Server 2019 (15.x). Pour plus d’informations sur la
migration de packages, consultez Mettre à niveau des packages Integration
Services.

Ne déplace pas de packages à partir d'emplacements du système de fichiers, autre


que l'emplacement par défaut, qui ont été ajoutés au fichier de configuration du
service. Si vous avez déjà modifié le fichier de configuration du service de manière
à ajouter des dossiers de système de fichiers supplémentaires, les packages
stockés dans ces dossiers ne seront pas déplacés à un nouvel endroit.

Dans les étapes de travail SQL Server Agent qui appellent directement l’utilitaire
dtexec (dtexec.exe), ne met pas à jour le chemin du système de fichiers pour
l’utilitaire dtexec. Vous devez modifier manuellement ces étapes de travail pour
mettre à jour le chemin du système de fichiers avec l’emplacement de SQL Server
2019 (15.x) pour l’utilitaire dtexec.

Ce que vous pouvez faire après la mise à niveau


Une fois la mise à niveau terminée, vous pouvez accomplir les tâches suivantes :

Lancez les travaux SQL Server Agent qui exécutent des packages.

Utilisez Management Studio pour gérer les packages Integration Services qui sont
stockés dans une instance de SQL Server 2008 (10.0.x), de SQL Server 2008 R2
(10.50.x), de SQL Server 2012 (11.x) ou de SQL Server 2014 (12.x). Vous devez
modifier le fichier de configuration du service pour ajouter l’instance de SQL
Server 2008 (10.0.x), de SQL Server 2008 R2 (10.50.x), de SQL Server 2012 (11.x) ou
de SQL Server 2014 (12.x) à la liste des emplacements gérés par le service.

7 Notes

Les versions antérieures de Management Studio ne peuvent pas se connecter


au service SQL Server 2019 Integration Services (SSIS).

Identifier la version des packages dans la table système msdb.dbo.sysssispackages


en vérifiant la valeur de la colonne packageformat. La table possède une colonne
packageformat qui identifie la version de chaque package. La valeur 3 indique un
package SQL Server 2008 Integration Services (SSIS). Tant que vous n'effectuez pas
la migration des packages vers le nouveau format, la valeur de la colonne
packageformat ne change pas.

Vous ne pouvez pas utiliser les outils de SQL Server 2008 (10.0.x), de SQL
Server 2008 R2 (10.50.x), de SQL Server 2012 (11.x) ou de SQL Server 2014 (12.x)
pour concevoir, exécuter et gérer des packages Integration Services. Les outils de
SQL Server 2008 (10.0.x), de SQL Server 2008 R2 (10.50.x), de SQL Server 2012
(11.x) ou de SQL Server 2014 (12.x) incluent les versions respectives de SQL Server
Data Tools (SSDT), de l’Assistant Importation et Exportation SQL Server et de
l’utilitaire d’exécution de package (dtexecui.exe). Le processus de mise à niveau ne
supprime pas les outils de SQL Server 2008 (10.0.x), de SQL Server 2008 R2
(10.50.x), de SQL Server 2012 (11.x) ou de SQL Server 2014 (12.x). Toutefois, vous
ne serez pas en mesure de faire appel à ces outils pour continuer à utiliser les
packages SQL Server 2008 Integration Services (SSIS) ou version ultérieure sur un
serveur qui a été mis à niveau.

Par défaut, dans le cadre d'une installation de type mise à niveau, Integration
Services est configuré de façon à journaliser les événements en rapport avec
l'exécution de packages dans le journal d'événements de l'application. Ce
paramètre peut générer trop d'entrées de journal d'événements lorsque vous
utilisez la fonctionnalité de collecte de données de SQL Server 2019 (15.x). Les
événements enregistrés incluent l'ID d'événement 12288, « le Package a démarré »,
et l'ID d'événement 12289, « le Package a fini avec succès ». Pour arrêter
l'enregistrement de ces deux événements dans le journal d'événements de
l'application, ouvrez le Registre pour y apporter des modifications. Dans le
Registre, recherchez le nœud
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\SSIS et
modifiez la valeur DWORD du paramètre LogPackageExecutionToEventLog en
remplaçant 1 par 0.

Mise à niveau uniquement du Moteur de base


de données vers SQL Server 2019 (15.x)
Cette section décrit les conséquences liées à l'exécution d'une mise à niveau qui obéit
aux critères suivants :

Vous mettez à niveau uniquement une instance du Moteur de base de données.


Autrement dit, l’instance du Moteur de base de données est maintenant une
instance de SQL Server 2019 (15.x), mais l’instance d’Integration Services et les
outils clients sont de SQL Server 2008 (10.0.x), de SQL Server 2008 R2 (10.50.x), de
SQL Server 2012 (11.x) ou de SQL Server 2014 (12.x).
L’instance du Moteur de base de données se trouve sur un ordinateur, alors
qu’Integration Services et les outils clients sont sur un autre ordinateur.

Ce que vous pouvez faire après la mise à niveau


Les tables système qui stockent les packages dans l’instance mise à niveau du Moteur
de base de données ne sont pas les mêmes que celles utilisées dans SQL Server 2008
(10.0.x). Ainsi, les versions SQL Server 2008 (10.0.x) de Management Studio et de SQL
Server Data Tools ne peuvent pas découvrir les packages qui sont stockés dans les
tables système sur l’instance mise à niveau du Moteur de base de données. Comme ces
packages ne peuvent pas être découverts, l'utilisation que vous pouvez en faire est
limitée :

Vous ne pouvez pas utiliser les outils de SQL Server 2008 (10.0.x), Management
Studio et SQL Server Data Tools sur d’autres ordinateurs pour charger ou gérer des
packages qui se trouvent sur l’instance mise à niveau du Moteur de base de
données.

7 Notes

Bien que les packages sur l’instance mise à niveau du Moteur de base de
données n’aient pas encore été migrés vers le nouveau format de package, ils
ne sont pas encore découvrables par les outils de SQL Server 2008 (10.0.x).
Ainsi, les packages ne peuvent pas être utilisés par les outils de SQL
Server 2008 (10.0.x).

Vous ne pouvez pas utiliser SQL Server 2008 Integration Services (SSIS) sur d’autres
ordinateurs pour exécuter les packages qui sont stockés dans msdb sur l’instance
mise à niveau du Moteur de base de données.

Vous ne pouvez pas utiliser des travaux SQL Server Agent sur des ordinateurs SQL
Server 2008 (10.0.x) pour exécuter des packages SQL Server 2008 Integration
Services (SSIS) qui sont stockés sur l’instance mise à niveau du Moteur de base de
données.

Ressources externes
Entrée de blog Faire fonctionner vos extensions et applications SSIS personnalisées
existantes à Denali , sur blogs.msdn.com.
Mettre à niveau des packages
Integration Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Quand vous mettez à niveau une instance de SQL Server 2008 (10.0.x) vers la version
actuelle de SQL Server, vos packages SQL Server 2008 Integration Services (SSIS)
existants ne sont pas automatiquement mis à niveau vers le format de package utilisé
par la version actuelle de SQL Server Integration Services. Vous devez choisir une
méthode de mise à niveau et mettre à niveau vos packages manuellement.

Pour plus d’informations sur la mise à niveau des packages lorsque vous convertissez un
projet en modèle de déploiement de projet, consultez Déployer des projets et des
packages Integration Services Server (SSIS).

Choix d'une méthode de mise à niveau


Vous pouvez utiliser différentes méthodes pour mettre à niveau des packages SQL
Server 2008 (10.0.x), SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x) ou SQL
Server 2014 (12.x). Pour certaines d'entre elles, la mise à niveau n'est que temporaire.
Pour d'autres, elle est définitive. Le tableau suivant décrit chacune de ces méthodes et
indique si la mise à niveau est temporaire ou définitive.

7 Notes

Quand vous exécutez un package SQL Server 2008 (10.0.x), SQL Server 2008 R2
(10.50.x), SQL Server 2012 (11.x) ou SQL Server 2014 (12.x) au moyen de l’utilitaire
dtexec (dtexec.exe) qui est installé avec la version actuelle de SQL Server, la mise à
niveau de package temporaire augmente la durée d’exécution. Le taux
d'accroissement de temps d'exécution de package varie selon la taille du package.
Pour éviter une augmentation pendant la durée d'exécution, il est recommandé
d'effectuer la mise à niveau du package avant de l'exécuter.

7 Notes

Les composants Script qui référencent des assemblys liés à SSIS avec liaison à la
version ne sont pas pris en compte par le processus de mise à niveau et restent
inchangés. Une référence de mise à jour manuelle vers la nouvelle version est
nécessaire.

Méthode de mise à niveau Type de mise à niveau

Recourez à l’utilitaire dtexec (dtexec.exe) qui installé avec la La mise à niveau de


version actuelle de SQL Server pour exécuter un package SQL packages est temporaire.
Server 2008 (10.0.x), SQL Server 2008 R2 (10.50.x), SQL
Server 2012 (11.x) ou SQL Server 2014 (12.x). Les modifications ne
peuvent pas être
Pour plus d'informations, consultez Utilitaire dtexec. enregistrées.

Ouvrir un fichier de package SQL Server 2008 (10.0.x), SQL La mise à niveau de
Server 2008 R2 (10.50.x), SQL Server 2012 (11.x) ou SQL packages est définitive si
Server 2014 (12.x) dans SQL Server Data Tools (SSDT). vous enregistrez le package,
sinon, elle est temporaire.

Ajouter un package SQL Server 2008 (10.0.x), SQL Server 2008 R2 La mise à niveau de
(10.50.x), SQL Server 2012 (11.x) ou SQL Server 2014 (12.x) à un packages est permanente.
projet existant dans SQL Server Data Tools (SSDT).

Ouvrez un fichier de projet SQL Server 2008 Integration Services La mise à niveau de
(SSIS) ou ultérieur dans Visual Studio, puis utiliser l’Assistant Mise packages est permanente.
à niveau de packages SSIS pour mettre à niveau plusieurs
packages dans le projet.

Pour plus d’informations, consultez Mettre à niveau des packages


Integration Services à l’aide de l’Assistant Mise à niveau de
packages SSIS et Aide sur l’Assistant Mise à niveau de packages
SSIS via la touche F1.

Utilisez l’utilitaire Upgrade pour mettre à niveau un ou plusieurs La mise à niveau de


packages Integration Services . packages est permanente.

Applications et composants personnalisés


SQL Server 2005 Integration Services (SSIS) ne fonctionne pas avec la version actuelle de
SQL Server Integration Services.

Vous pouvez utiliser la version actuelle des outils SQL Server Integration Services pour
exécuter et gérer des packages qui incluent des composants personnalisés SSIS SQL
Server 2008 (10.0.x), SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x) ou SQL
Server 2014 (12.x). Nous avons ajouté quatre règles de redirection de liaison aux fichiers
suivants pour faciliter la redirection des assemblys du runtime de la version 10.0.0.0 (SQL
Server 2008 R2 (10.50.x)), version 11.0.0.0 ( SQL Server 2012 (11.x)) ou version 12.0.0.0 (
SQL Server 2014 (12.x)) vers la version 15.0.0.0 (SQL Server 2019 (15.x)).
DTExec.exe.config

dtshost.exe.config

DTSWizard.exe.config

DTUtil.exe.config

DTExecUI.exe.config

Pour utiliser SQL Server Data Tools afin de concevoir des packages incluant des
composants personnalisés SQL Server 2008 (10.0.x), SQL Server 2008 R2 (10.50.x), SQL
Server 2012 (11.x) ou SQL Server 2014 (12.x), vous devez modifier le fichier
devenv.exe.config situé dans <lecteur>:\Program Files\Microsoft Visual Studio
10.0\Common7\IDE.

Pour utiliser ces packages avec les applications clientes générées avec le runtime pour
SQL Server 2019 (15.x), incluez les règles de redirection dans la section de configuration
du fichier *.exe .config de l'exécutable. Les règles redirigent les assemblys du runtime
vers la version 15.0.0.0 (SQL Server 2019 (15.x)). Pour plus d’informations sur la
redirection des versions d’assemblys, consultez Élément <assemblyBinding> pour
<runtime>.

Recherche d'assemblys
Dans SQL Server 2019 (15.x), les assemblys Integration Services ont été mis à niveau vers
le .NET 4.0. Il existe un Global Assembly Cache distinct pour le .NET 4, situé dans
<lecteur>:\Windows\Microsoft.NET\assembly. Vous trouverez tous les assemblys
Integration Services sous ce chemin d'accès, en général dans le dossier GAC_MSIL.

Comme dans les versions antérieures de SQL Server, les principaux fichiers .dll
d’extensibilité Integration Services se trouvent également dans <lecteur>:\Program
Files\Microsoft SQL Server\130\SDK\Assemblies.

Présentation des résultats de mise à niveau de


packages SQL Server
Au cours de la mise à niveau de packages, la plupart des composants et fonctionnalités
des packages SQL Server 2008 (10.0.x), SQL Server 2008 R2 (10.50.x), SQL Server 2012
(11.x) ou SQL Server 2014 (12.x) sont convertis de façon fluide en leurs équivalents dans
la version actuelle de SQL Server. Il existe toutefois certains composants et
fonctionnalités pour lesquels aucune mise à niveau ne sera effectuée ou pour lesquels
vous devez connaître les résultats. Le tableau suivant identifie ces composants et
fonctionnalités.

7 Notes

Pour identifier les packages concernés par les points répertoriés dans le tableau,
exécutez le Conseiller de mise à niveau.

Composant Résultats de la mise à niveau


ou
fonctionnalité

Chaînes de Pour les packages SQL Server 2008 (10.0.x), SQL Server 2008 R2 (10.50.x), SQL
connexion Server 2012 (11.x) ou SQL Server 2014 (12.x), les noms de certains fournisseurs
ont changé et nécessitent des valeurs différentes dans les chaînes de connexion.
Pour mettre à jour les chaînes de connexion, utilisez l'une des procédures
suivantes :

Utilisez l'Assistant Mise à niveau de packages SSIS pour mettre à niveau le


package et sélectionnez l'option Mettre à jour les chaînes de connexion pour
l'utilisation des nouveaux noms de fournisseurs .

Dans SQL Server Data Tools (SSDT), sur la page Général de la boîte de dialogue
Options, sélectionnez l'option Mettre à jour les chaînes de connexion pour
l'utilisation des nouveaux noms de fournisseurs . Pour plus d’informations sur
cette option, consultez la page Général.

Dans SQL Server Data Tools (SSDT), ouvrez le package et modifiez manuellement
le texte de la propriété ConnectionString.

Remarque : vous ne pouvez pas appliquer les procédures ci-dessus pour mettre
à jour une chaîne de connexion lorsque celle-ci est stockée dans un fichier de
configuration ou dans un fichier de source de données, ou lorsqu’une
expression définit la propriété ConnectionString . Pour mettre à jour la chaîne
de connexion dans ces cas-là, vous devez mettre à jour le fichier ou l'expression
manuellement.

Pour plus d’informations sur les sources de données disponibles, consultez


Sources de données.

Scripts qui dépendent d'ADODB.dll


Les scripts de la tâche de script et du composant Script qui référencent explicitement
ADODB.dll risquent de ne pas pouvoir être mis à niveau ou de ne pas pouvoir s'exécuter
sur les ordinateurs qui ne disposent pas de SQL Server Management Studio ou de SQL
Server Data Tools (SSDT) . Pour permettre la mise à niveau des scripts de la tâche de
script et du composant Script, il est recommandé de supprimer la dépendance sur
ADODB.dll. Ado.Net est l'alternative recommandée pour le code managé, à l'instar des
scripts VB et C#.
Mettre à niveau des packages
Integration Services à l'aide de
l'Assistant Mise à niveau de packages
SSIS
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous pouvez mettre à niveau des packages créés dans des versions antérieures d'
Integration Services vers le format Integration Services utilisé par SQL Server 2019 (15.x)
. SQL Server fournit l'Assistant Mise à niveau de packages SSIS à cet effet. Étant donné
que vous pouvez configurer l'Assistant pour qu'il sauvegarde vos packages d'origine,
vous pouvez continuer à les utiliser si vous rencontrez des problèmes de mise à niveau.

L'Assistant Mise à niveau de packages SSIS est installé lors de l'installation de


Integration Services .

7 Notes

L'Assistant Mise à niveau de packages SSIS est disponible dans les éditions
Standard, Enterprise et Developer de SQL Server.

Pour plus d’informations sur la mise à niveau des packages Integration Services ,
consultez Mettre à niveau des packages Integration Services.

Le reste de cette rubrique décrit comment exécuter l'Assistant et sauvegarder les


packages d'origine.

Exécution de l'Assistant Mise à niveau de


packages SSIS
Vous pouvez exécuter l'Assistant Mise à niveau de packages SSIS à partir de SQL Server
Data Tools (SSDT), de SQL Server Management Studioou de l'invite de commandes.

Pour exécuter l'Assistant à partir de l'outils de données SQL Server

1. Dans SQL Server Data Tools (SSDT), créez ou ouvrez un projet Integration Services .
2. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud Packages
SSIS , puis cliquez sur Mettre à niveau tous les packages pour mettre à niveau
tous les packages sous ce nœud.

7 Notes

Lorsque vous ouvrez un projet Integration Services qui contient des packages
SQL Server 2008 Integration Services (SSIS) ou ultérieurs, Integration Services
ouvre automatiquement l’Assistant Mise à niveau de packages SSIS .

Pour exécuter l'Assistant à partir de SQL Server Management


Studio
Dans SQL Server Management Studio, connectez-vous à Integration Services,
développez le nœud Packages stockés , cliquez avec le bouton droit sur le nœud
Système de fichiers ou MSDB , puis cliquez sur Mettre à niveau les packages.

Pour exécuter l'Assistant à l'invite de commandes


À l’invite de commandes, exécutez le fichier SSISUpgrade.exe à partir du dossier
C:\Program Files\Microsoft SQL Server\130\DTS\Binn .

Sauvegarde des packages d'origine


Pour sauvegarder les packages d'origine, les packages d'origine et les package mis à
niveau doivent être stockés dans le même dossier du système de fichiers. Selon la façon
dont vous exécutez l'Assistant, cet emplacement de stockage peut être sélectionné
automatiquement.

Lorsque vous exécutez l'Assistant Mise à niveau de packages SSIS à partir de SQL
Server Data Tools (SSDT), l'Assistant stocke automatiquement à la fois les packages
d'origine et les packages mis à niveau dans le même dossier dans le système de
fichiers.

Lorsque vous exécutez l'Assistant Mise à niveau de packages SSIS à partir de SQL
Server Management Studio ou de l'invite de commandes, vous pouvez spécifier
différents emplacements de stockage pour les packages d'origine et les packages
mis à niveau. Pour sauvegarder les packages d'origine, n'oubliez pas de spécifier
que les packages d'origine et les packages mis à niveau sont stockés dans le même
dossier du système de fichiers. Si vous spécifiez d'autres options de stockage,
l'Assistant ne sera pas en mesure de sauvegarder les packages d'origine.

Lorsqu'il sauvegarde les packages d'origine, l'Assistant stocke une copie des packages
d'origine dans un dossier SSISBackupFolder . Il crée le dossier SSISBackupFolder en
tant que sous-dossier du dossier qui contient les packages d'origine et les packages mis
à niveau.

Pour sauvegarder les packages d'origine dans SQL Server


Management Studio ou à l'invite de commandes
1. Enregistrez les packages d'origine à un emplacement du système de fichiers.

7 Notes

L'option de sauvegarde de l'Assistant fonctionne uniquement avec les


packages stockés dans le système de fichiers.

2. Dans SQL Server Management Studio ou à l'invite de commandes, exécutez


l'Assistant Mise à niveau de packages SSIS .

3. Dans la page Sélectionner l'emplacement source de l'Assistant, définissez la


propriété Source du package à Système de fichiers.

4. Dans la page Sélectionner l’emplacement de destination de l’Assistant,


sélectionnez Enregistrer à l’emplacement source pour enregistrer les packages mis
à niveau au même emplacement que les packages d’origine.

7 Notes

L'option de sauvegarde de l'Assistant n'est disponible que lorsque les


packages mis à niveau sont stockés dans le même dossier que les packages
d'origine.

5. Dans la page Sélectionner les options de gestion des packages de l'Assistant,


sélectionnez l'option Sauvegarder les packages d'origine .

Pour sauvegarder les packages d'origine dans les outils de données


SQL Server
1. Enregistrez les packages d'origine à un emplacement du système de fichiers.
2. Dans la page Sélectionner les options de gestion des packages de l'Assistant,
sélectionnez l'option Sauvegarder les packages d'origine .

2 Avertissement

L’option Sauvegarder les packages d’origine ne s’affiche pas lorsque vous


ouvrez un projet SQL Server 2008 Integration Services (SSIS) ou ultérieur dans
SQL Server Data Tools (SSDT), ce qui lance automatiquement l’Assistant.

3. Dans SQL Server Data Tools (SSDT), exécutez l'Assistant Mise à niveau de packages
SSIS .
Outils de gestion et de développement
Integration Services (SSIS)
Article • 30/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Integration Services inclut deux studios pour travailler avec des packages :

SQL Server Data Tools (SSDT) pour le développement des packages Integration
Services requis par une solution métier. SQL Server Data Tools (SSDT) fournit le
projet Integration Services dans lequel vous créez des packages.

SQL Server Management Studio pour la gestion de packages dans un


environnement de production.

SQL Server Data Tools


Vous pouvez réaliser les tâches suivantes dans SQL Server Data Tools (SSDT):

exécuter l'Assistant Importation et Exportation SQL Server pour créer des packages
de base qui copient des données entre une source et une destination ;

créer des packages qui incluent un flux de contrôle complexe, un flux de données,
une logique piloté par les événements et la journalisation ;

tester et déboguer les packages à l'aide des fonctionnalités de résolution des


problèmes et de surveillance du concepteur SSIS et des fonctionnalités de
débogage de SQL Server Data Tools (SSDT);

créer des configurations qui mettent à jour les propriétés des packages et les
objets de package au moment de l'exécution ;

créer un utilitaire de déploiement qui peut installer les packages et leurs


dépendances sur d'autres ordinateurs ;

Enregistrer des copies des packages dans la base de données msdb SQL Server, le
magasin de packages SSIS et le système de fichiers.

Pour plus d'informations sur SQL Server Data Tools (SSDT), consultez SQL Server Data
Tools.
SQL Server Management Studio
SQL Server Management Studio fournit le service Integration Services que vous utilisez
pour gérer des packages, surveiller les packages en cours d'exécution, et déterminer
l'impact et le lignage des données pour les objets Integration Services et SQL Server .

Vous pouvez réaliser les tâches suivantes dans SQL Server Management Studio:

créer des dossiers pour organiser les packages de manière significative pour votre
organisation ;

exécuter les packages stockés sur l'ordinateur local à l'aide de l'utilitaire


d'exécution de package ;

exécuter l’utilitaire d’exécution de package pour générer une ligne de commande à


utiliser lors de l’exécution de l’utilitaire de ligne de commande dtexec (dtexec.exe) ;

Importer et exporter des packages dans la base de données msdb SQL Server, le
magasin de packages SSIS et le système de fichiers.
Projets et solutions Integration Services
(SSIS)
Article • 27/10/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

SQL Server fournit SQL Server Data Tools (SSDT) pour le développement de packages
Integration Services .

Les packages Integration Services résident dans des projets. Pour créer et utiliser des
projets Integration Services, vous devez installer SQL Server Data Tools. Pour plus
d’informations, consultez Installer Integration Services.

Quand vous créez un projet Integration Services dans SQL Server Data Tools (SSDT), la
boîte de dialogue Nouveau projet inclut un modèle Projet Integration Services . Ce
modèle de projet crée un nouveau projet qui contient un package unique.

Projets et solutions
Les projets sont stockés dans leur solution. Vous pouvez créer une solution, puis ajouter
un projet Integration Services à cette solution. S’il n’existe aucune solution, SQL Server
Data Tools (SSDT) en crée une automatiquement dès que vous commencez à créer le
projet. Une solution peut contenir plusieurs projets de différents types.

 Conseil

Par défaut, quand vous créez un projet dans SQL Server Data Tools, la solution
n’apparaît pas dans le volet Explorateur de solutions. Pour modifier ce
comportement par défaut, dans le menu Outils , cliquez sur Options. Dans la boîte
de dialogue Options , développez Projets et solutions, puis cliquez sur Général.
Dans la page Général , sélectionnez Toujours afficher la solution.

Les solutions contiennent des projets


Une solution est un conteneur qui regroupe et gère les projets que vous utilisez lorsque
vous développez des solutions d'entreprise de bout en bout. Une solution vous permet
de gérer plusieurs projets en une même unité et de regrouper plusieurs projets qui
contribuent à une solution d'entreprise.
Une solution peut contenir des projets de différents types. Si vous souhaitez utiliser le
concepteur SSIS pour créer un package Integration Services , vous travaillez dans un
projet Integration Services dans une solution fournie par SQL Server Data Tools (SSDT).

Lorsque vous créez une nouvelle solution, SQL Server Data Tools (SSDT) ajoute un
dossier Solution à l’Explorateur de solutions. Le dossier Solution contient les types de
fichiers suivants :

.sln : contient des informations sur la configuration de la solution et répertorie les

projets de la solution.

.suo : contient des informations sur vos préférences en matière d’utilisation de la

solution.

SQL Server Data Tools (SSDT) crée automatiquement une solution lorsque vous créez un
projet, mais vous pouvez aussi créer une solution vierge et lui ajouter ultérieurement
des projets.

Les projets Integration Services contiennent


des packages
Un projet est un conteneur dans lequel vous développez des packages Integration
Services .

Dans SQL Server Data Tools (SSDT), un projet Integration Services stocke et groupe les
fichiers associés au package. Par exemple, un projet inclut les fichiers requis pour créer
une solution d'extraction, de transfert et de chargement (ETL) spécifique.

Avant de créer un projet Integration Services , vous devez vous familiariser avec le
contenu de base de ce type de projet. Une fois que vous connaissez le contenu d'un
projet, vous pouvez commencer à créer et à utiliser un projet Integration Services .

Dossiers des projets Integration Services


Le diagramme suivant montre les dossiers d’un projet de services d’intégration dans
SQL Server Data Tools (SSDT).
Le tableau suivant décrit les dossiers d'un projet Integration Services .

Dossier Description

Gestionnaires de Contient des gestionnaires de connexions de projet. Pour plus


connexions d’informations, consultez Connexions Integration Services (SSIS).

SSIS . Contient les packages. Pour plus d’informations, consultez Packages


Integration Services (SSIS).

Parties de Contient les parties de package qui peuvent être réutilisées ou importées.
package Pour plus d’informations, consultez Réutiliser un flux de contrôle sur des
packages à l’aide de parties de package de flux de contrôle.

Divers Contient d'autres fichiers que les fichiers de package.

Fichiers des projets Integration Services


Lorsque vous ajoutez un nouveau projet de services d’intégration ou existant à une
solution, SQL Server Data Tools (SSDT) crée des fichiers de projet. Les fichiers projet
incluent :

.dtproj : contient des informations sur les configurations du projet et des

éléments tels que les packages.

*.dtproj.user : contient des informations sur vos préférences de travail avec le

projet.

*.database : contient des informations requises par SQL Server Data Tools (SSDT)
pour ouvrir le projet de services d’intégration.

Project.params : contient des informations sur les Paramètres du projet.


Ciblage de version dans des projets Integration
Services
Dans SQL Server Data Tools (SSDT), vous pouvez créer, gérer et exécuter des packages
ciblant des versions spécifiques de SQL Server.

Dans l’Explorateur de solutions, cliquez avec le bouton droit sur un projet Integration
Services, puis sélectionnez Propriétés pour ouvrir les pages de propriétés du projet.
Sous l’onglet Général des Propriétés de configuration, sélectionnez la propriété
TargetServerVersion, puis choisissez la version souhaitée.

Créer un projet Integration Services


1. Ouvrez SQL Server Data Tools (SSDT).

2. Dans le menu Fichier , pointez sur Nouveau, puis cliquez sur Projet.

3. Dans la boîte de dialogue Nouveau projet, sélectionnez Business Intelligence, puis


le modèle Projet Integration Services.

Le modèle Projet Integration Services crée un projet Integration Services qui


contient un package unique vide.
4. (Facultatif) modifiez le nom et l'emplacement du projet.

Le nom de la solution est automatiquement mis à jour pour correspondre au nom


du projet.

5. Pour créer un dossier distinct pour le fichier de solution, sélectionner Créer le


répertoire pour la solution.

6. Si un logiciel de contrôle de code source est installé sur l’ordinateur, sélectionnez


Ajouter au contrôle de code source pour associer le projet au contrôle de code
source.

7. Si le logiciel de contrôle de code source est Microsoft Visual SourceSafe, la boîte


de dialogue Connexion à Visual SourceSafe s’ouvre. Dans Connexion à Visual
SourceSafe, indiquez un nom d’utilisateur, un mot de passe et le nom de la base
de données Microsoft Visual SourceSafe. Cliquez sur Parcourir pour localiser la
base de données.

7 Notes

Pour afficher et modifier le plug-in du contrôle de code source sélectionné et


configurer l’environnement du contrôle de code source, cliquez sur Options
dans le menu Outils, puis développez le nœud Contrôle de code source.
8. Cliquez sur OK pour ajouter la solution à Explorateur de solutions et ajouter le
projet à la solution.

Importer un projet existant avec l’Assistant


Importation de projet
1. Dans Visual Studio, cliquez sur Nouveau>Projet dans le menu Fichier .

2. Dans la zone Modèles installés de la fenêtre Nouveau projet , développez


Business Intelligence, puis cliquez sur Integration Services.

3. Sélectionnez l’Assistant Importation de projet Integration Services dans la liste


des types de projets.

4. Tapez le nom du nouveau projet à créer dans la zone de texte Nom .

5. Tapez le chemin ou l’emplacement du projet dans la zone de texte Emplacement


ou cliquez sur Parcourir pour en sélectionner un.

6. Dans la zone de texte Nom de solution , tapez le nom de la solution.

7. Cliquez sur OK pour ouvrir la boîte de dialogue Assistant Importation de projet


Integration Services .

8. Cliquez sur Suivant pour basculer vers la page Sélectionner une source .

9. Si vous effectuez l’importation à partir d’un .ispac fichier, tapez le chemin incluant
le nom de fichier dans la zone de texte Chemin. Cliquez sur Parcourir pour accéder
au dossier où vous souhaitez que la solution soit stockée et tapez le nom de fichier
dans la zone de texte Nom de fichier , puis cliquez sur Ouvrir.

Si vous effectuez l’importation à partir d’un Catalogue Integration Services, tapez


le nom de l’instance de base de données dans la zone de texte Nom du serveur,
ou cliquez sur Parcourir et sélectionnez l’instance de base de données contenant le
catalogue.

Cliquez sur Parcourir en regard de la zone de texte Chemin d’accès , développez le


dossier dans le catalogue, sélectionnez le projet que vous souhaitez importer, puis
cliquez sur OK.

Cliquez sur Suivant pour passer à la page Vérifier .

10. Vérifiez les informations et cliquez sur Importer pour créer un projet basé sur le
projet existant sélectionné.
11. Facultatif : cliquez Enregistrer le rapport pour enregistrer les résultats dans un
fichier

12. Cliquez sur Fermer pour fermer la boîte de dialogue Assistant Importation de
projet Integration Services .

Ajouter un projet à une solution


Quand vous ajoutez un projet, vous pouvez créer un nouveau projet vide dans
Integration Services ou ajouter un projet que vous avez déjà créé pour une autre
solution. Vous pouvez uniquement ajouter un projet à une solution existante quand la
solution est visible dans SQL Server Data Tools (SSDT).

Ajouter un nouveau projet à une solution


1. Dans SQL Server Data Tools (SSDT), ouvrez la solution à laquelle vous souhaitez
ajouter un nouveau projet de services d’intégration et effectuez l’une des
opérations suivantes :

Cliquez avec le bouton droit sur la solution, cliquez sur Ajouter, puis sur
Nouveau projet.

or

Dans le menu Fichier , pointez sur Ajouter, puis cliquez sur Nouveau projet.

2. Dans la boîte de dialogue Ajouter un nouveau projet , dans le volet Modèles ,


cliquez sur Projet Integration Services .

3. Éventuellement, modifiez le nom et l'emplacement du projet.

4. Cliquez sur OK.

Ajouter un projet existant à une solution


1. Dans SQL Server Data Tools (SSDT), ouvrez la solution à laquelle vous souhaitez
ajouter un projet Integration Services existant, puis effectuez l'une des opérations
suivantes :

Cliquez avec le bouton droit sur la solution, pointez sur Ajouter, puis cliquez
sur Projet existant.

Dans le menu Fichier , cliquez sur Ajouter, puis sur Projet existant.
2. Dans la boîte de dialogue Ajouter un projet existant , recherchez le projet à
ajouter, puis cliquez sur Ouvrir.

3. Le projet est ajouté au dossier de la solution dans l' Explorateur de solutions.

Supprimer un projet d’une solution


Vous ne pouvez supprimer un projet d'une solution que lorsque la solution est visible
dans SQL Server Data Tools (SSDT). Une fois que la solution est visible, vous pouvez tout
supprimer mais devez conserver un projet. Lorsqu’il ne reste qu’un seul projet, SQL
Server Data Tools (SSDT) n’affiche plus le dossier des solutions. Vous ne pouvez pas
supprimer le dernier projet.

1. Dans SQL Server Data Tools (SSDT), ouvrez la solution dans laquelle vous souhaitez
supprimer un projet Integration Services .

2. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis
cliquez sur Décharger le projet.

3. Cliquez sur OK pour confirmer la suppression.

Ajouter un élément à un projet


1. Dans SQL Server Data Tools (SSDT), ouvrez la solution qui contient le projet
Integration Services auquel vous souhaitez ajouter un élément.

2. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, pointez
sur Ajouter, puis effectuez l’une des opérations suivantes :

Sélectionnez Nouvel élément, puis sélectionnez un modèle dans le volet


Modèles de la boîte de dialogue Ajouter un nouvel élément .

Sélectionnez Élément existant, recherchez dans la boîte de dialogue Ajouter


un élément existant pour localiser l’élément à ajouter au projet, puis
sélectionnez Ajouter.

3. Le nouvel élément apparaît dans le dossier approprié dans l'Explorateur de


solutions.

Copier des éléments de projet


Vous pouvez copier des objets dans un projet Integration Services ou entre des projets
Integration Services. Vous pouvez également copier des objets entre les autres types de
projets SQL Server Data Tools (SSDT), Reporting Services et Analysis Services. Pour
pouvoir effectuer une copie entre des projets, il faut qu'ils appartiennent à la même
solution SQL Server Data Tools (SSDT).

1. Dans SQL Server Data Tools (SSDT), ouvrez le projet ou la solution Integration
Services avec lequel vous voulez travailler.

2. Développez le projet et le dossier de l'élément à partir desquels effectuer la copie.

3. Cliquez avec le bouton droit sur l’élément, puis cliquez sur Copier.

4. Cliquez avec le bouton droit sur le projet Integration Services vers lequel effectuer
la copie, puis cliquez sur Coller.

Les éléments sont automatiquement copiés dans le dossier approprié. Si vous


copiez dans le projet Integration Services des éléments qui ne sont pas des
packages, ces éléments sont copiés dans le dossier Divers.

Étapes suivantes
Télécharger et installer SQL Server Data Tools.
SSIS : comment créer un package ETL

Commentaires
Cette page a-t-elle été utile ?  Yes  No

Indiquer des commentaires sur le produit | Obtenir de l’aide sur Microsoft Q&A
Extension Azure DevOps SQL Server
Integration Services (SSIS) DevOps Tools
Article • 09/03/2023

L’extension SSIS DevOps Tools est disponible dans la Place de Marché Azure DevOps.
SSIS DevOps prend en charge Azure DevOps Services, Azure DevOps Server 2019 et
versions ultérieures.

Si vous n’avez pas d’organisation Azure DevOps, vous devez tout d’abord vous inscrire à
Azure Pipelines, puis ajouter l’extension SSIS DevOps Tools en suivant ces étapes.

SSIS DevOps Tools inclut la tâche de génération SSIS, la tâche de fin de déploiement
SSIS et la tâche de configuration du catalogue SSIS.

La tâche de génération SSIS prend en charge la génération de fichiers dtproj dans


un modèle de déploiement de projet ou de package.

La tâche de déploiement SSIS prend en charge le déploiement d’un ou plusieurs


fichiers ispac dans un catalogue SSIS local et un runtime d’intégration Azure-SSIS
ou de fichiers SSISDeploymentManifest et des fichiers associés dans un partage de
fichiers Azure ou local.

La tâche de configuration du catalogue SSIS prend en charge la configuration des


éléments dossier/projet/environnement du catalogue SSIS avec un fichier de
configuration au format JSON. Cette tâche prend en charge les scénarios suivants :
Dossier
Créer un dossier.
Mettre à jour la description d’un dossier.
Projet
Configurer la valeur des paramètres (la valeur littérale et la valeur référencée
sont prises en charge).
Ajouter des références d’environnement.
Environnement
Créer un environnement.
Mettre à jour la description d’un environnement.
Créer ou mettre à jour une variable d’environnement.

Tâche de génération SSIS


Propriétés

Chemin du projet

Chemin du fichier ou dossier de projet à générer. Si un chemin de dossier est spécifié, la


tâche de génération SSIS recherchera tous les fichiers dtproj de manière récursive dans
ce dossier et les générera tous.

Le chemin de projet ne peut pas être vide, définissez-le sur . pour effectuer la génération
à partir du dossier racine du dépôt.

Configuration du projet
Nom de la configuration de projet à utiliser pour la génération. S’il n’est pas spécifié, il
s’agit, par défaut, de la première configuration de projet définie dans chaque fichier
dtproj.

Chemin de sortie

Chemin d’un dossier distinct où seront enregistrés les résultats de la génération. Ceux-ci
peuvent être publiés comme artefact de build à l’aide de la tâche de publication
d’artefacts de build.

Limitations et problèmes connus


La tâche de génération SSIS s’appuie sur Visual Studio et le concepteur SSIS
(obligatoire avec les agents de build). Ainsi, pour exécuter la tâche de génération
SSIS dans le pipeline :
pour les agents hébergés par Microsoft, vous devez choisir une image
disponible qui inclut l’extension Visual Studio et SQL Server Integration Services,
par exemple windows-2019. Pour plus d’informations, reportez-vous à la
documentation des agents hébergés par Microsoft pour les logiciels inclus dans
les images disponibles.
Pour les agents auto-hébergés, installez Visual Studio et le concepteur SSIS
(extension VS2017 + SSDT2017 ou VS2019 + SSIS Projects) sur les agents auto-
hébergés.

Pour générer des projets SSIS à l’aide de composants prêts à l’emploi (quels qu’ils
soient, y compris le Feature Pack SSIS Azure ou d’autres composants tiers), veillez à
ce que ces composants soient installés sur l’ordinateur sur lequel s’exécute l’agent
de pipeline. Pour l’agent hébergé par Microsoft, l’utilisateur peut ajouter une tâche
de script PowerShell ou une tâche de script de ligne de commande afin de
télécharger et d’installer les composants avant l’exécution de la tâche de
génération SSIS. Voici l’exemple de script PowerShell permettant d’installer Azure
Feature Pack :

PowerShell

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

Les niveaux de protection EncryptSensitiveWithPassword et


EncryptAllWithPassword ne sont pas pris en charge par la tâche de génération
SSIS. Veillez à ce qu’aucun des projets SSIS du code base n’utilise ces deux niveaux
de protection. Sinon, la tâche de génération SSIS cessera de répondre et dépassera
le délai d’attente pendant l’exécution.

Tâche de génération SSIS version 1.*


Améliorations dans la version 1.* :

Suppression de la dépendance sur Visual Studio et le concepteur SSIS. La tâche de


génération peut s’exécuter sur un agent hébergé par Microsoft ou un agent auto-
hébergé avec le système d’exploitation Windows et .NET Framework 4.6.2 ou
ultérieur.

Il n’est pas nécessaire d’installer les composants prédéfinis.


Prise en charge du niveau de protection EncryptionWithPassword et
EncryptionAllWithPassword.

Limitations et problèmes connus


La tâche de génération SSIS version 1.* ne prend pas en charge la génération d'un
projet SSIS contenant un package SSIS avec signature numérique.

Propriétés de la version 1.* uniquement

Mot de passe du projet

Mot de passe du projet SSIS et de ses packages. Cet argument n’est valide que si le
niveau de protection du projet SSIS et des packages est EncryptSensitiveWithPassword
ou EncryptAllWithPassword. Dans le modèle de déploiement de package, tous les
packages doivent partager le même mot de passe que celui spécifié par cet argument.

Supprimer les données sensibles


Permet de convertir le niveau de protection du projet SSIS en DontSaveSensitve si cette
valeur est true. Si le niveau de protection est EncryptSensitiveWithPassword ou
EncryptAllWithPassword, l’argument Project Password doit être défini correctement.
Cette option n’est valide que pour le modèle de déploiement de projet.

Tâche de déploiement SSIS


Propriétés

Chemin source
Chemin des fichiers ISPAC ou SSISDeploymentManifest sources que vous souhaitez
déployer. Il peut s’agir d’un chemin de dossier ou de fichier.

Type de destination

Type de la destination. Actuellement, la tâche de déploiement SSIS prend en charge


deux types :

Système de fichiers : les fichiers SSISDeploymentManifest et les fichiers associés


sont déployés dans un système de fichiers spécifié. Les partages de fichiers locaux
et Azure sont pris en charge.
SSISDB : les fichiers ISPAC sont déployés dans un catalogue SSIS spécifié, qui peut
être hébergé sur un serveur SQL Server local ou un runtime d’intégration Azure-
SSIS.

Serveur de destination
Nom du serveur SQL Server de destination. Il peut s’agir du nom d’une instance SQL
Server locale, Azure SQL Database ou Azure SQL Managed Instance. Cette propriété est
visible uniquement si le type de destination est SSISDB.

Chemin de destination
Chemin du dossier de destination dans lequel le fichier source sera déployé. Par
exemple :

/SSISDB/<folderName>
\\<machineName>\<shareFolderName>\<optionalSubfolderName>

La tâche de déploiement SSIS crée le dossier et le sous-dossier s’ils n’existent pas.

Type d'authentification
Type d’authentification utilisé pour l’accès au serveur de destination spécifié. Cette
propriété est visible uniquement si le type de destination est SSISDB. En général, les
types d’authentification suivants sont pris en charge :

Authentification Windows
l’authentification SQL Server
Active Directory - Authentification par mot de passe
Active Directory - Authentification intégrée

Cependant, la prise en charge d’un type d’authentification spécifique dépend du type de


serveur de destination et du type d’agent. Reportez-vous au tableau de prise en charge
détaillé ci-dessous.

Type de serveur de Agent hébergé par Microsoft Agent autohébergé


destination

Serveur SQL Server local ou N/A Authentification Windows


machine virtuelle

Azure SQL l’authentification SQL Server l’authentification SQL Server


Active Directory - Active Directory -
Authentification par mot de Authentification par mot de
passe passe
Active Directory -
Authentification intégrée

Nom de domaine

Nom de domaine utilisé pour l’accès au système de fichiers spécifié. Cette propriété est
visible uniquement si le type de destination est Système de fichiers. Vous pouvez la
laisser vide si le compte d’utilisateur utilisé pour l’exécution de l’agent autohébergé
dispose d’un accès en lecture/écriture au chemin de destination spécifié.

Nom d’utilisateur

Nom d’utilisateur utilisé pour l’accès à la base de données SSISDB ou au système de


fichiers spécifié. Cette propriété est visible si le type de destination est Système de
fichiers ou si le type d’authentification est Authentification SQL Server ou Active
Directory - Authentification par mot de passe. Vous pouvez la laisser vide si le type de
destination est Système de fichiers et si le compte d’utilisateur utilisé pour l’exécution de
l’agent autohébergé dispose d’un accès en lecture/écriture au chemin de destination
spécifié.

Mot de passe
Mot de passe utilisé pour l’accès à la base de données SSISDB ou au système de fichiers
spécifié. Cette propriété est visible si le type de destination est Système de fichiers ou si
le type d’authentification est Authentification SQL Server ou Active Directory -
Authentification par mot de passe. Vous pouvez la laisser vide si le type de destination
est Système de fichiers et si le compte d’utilisateur utilisé pour l’exécution de l’agent
autohébergé dispose d’un accès en lecture/écriture au chemin de destination spécifié.

Remplacer les projets ou fichiers SSISDeploymentManifest


existants portant le même nom

Indique si les projets ou fichiers SSISDeploymentManifest existants portant le même


nom doivent être remplacés. Si vous sélectionnez « Non », la tâche de déploiement SSIS
ignorera le déploiement de ces projets ou fichiers.

Continuer le déploiement si une erreur se produit


Indique si le déploiement des projets ou des fichiers restants doit continuer quand une
erreur se produit. Si vous sélectionnez « Non », la tâche de déploiement SSIS s’arrêtera
immédiatement si une erreur se produit.

Limitations et problèmes connus


Actuellement, la tâche de déploiement SSIS ne prend pas en charge les scénarios
suivants :
Configuration de l’environnement dans le catalogue SSIS
Déploiement de fichiers ISPAC sur Azure SQL Server ou Azure SQL Managed
Instance, qui autorisent uniquement l’authentification multifacteur
Déploiement de packages dans msdb ou le magasin de packages SSIS
Si vous installez l’extension des outils DevOps SSIS dans Azure DevOps Server,
vous pouvez voir le message « La taille du package d’extension dépasse la taille
maximale du package ». Pour résoudre le problème, suivez ces étapes :

1. Connectez-vous à l’instance SQL Server locale et sélectionnez la base de


données Gallery_Configuration.
2. Exécutez la requête INSERT INTO dbo.tbl_RegistryItems VALUES
(1,'#\Configuration\Service\Gallery\LargeExtensionUpload\SSIS\','MaxPacka

geSizeMB\',50) . Remplacez 50 par un nombre plus élevé si l’extension est


supérieure à 50 Mo.
3. Une fois que vous avez exécuté la requête, redémarrez Internet Information
Services. Réessayez de charger l’extension.
4. Si l’erreur persiste, contactez l’équipe du support technique SQL Server.

Tâche de déploiement SSIS version 1.*


Améliorations dans la version 1.* :

Prise en charge du niveau de protection EncryptionWithPassword et


EncryptionAllWithPassword.

Propriétés de la version 1.* uniquement

Mot de passe du projet


Mot de passe servant à déchiffrer les fichiers ISPAC ou DTSX. Cet argument n’est valide
que si le niveau de protection est EncryptSensitiveWithPassword ou
EncryptAllWithPassword.

Tâche de configuration du catalogue SSIS


Propriétés

Source du fichier de configuration

Source du fichier JSON utilisé pour la configuration du catalogue SSIS. Les options
possibles sont « Chemin fichier » ou « Inline ».

Pour plus de détails, consultez la section Définir le schéma JSON de configuration :

Examinez un exemple de fichier JSON de configuration inline.


Prenez connaissance du schéma JSON.

Chemin du fichier JSON de configuration


Chemin du fichier JSON utilisé pour la configuration du catalogue SSIS. Cette propriété
est visible uniquement si vous sélectionnez « Chemin fichier » comme source du fichier
de configuration.

Pour utiliser des variables de pipeline dans le fichier JSON de configuration, vous devez
ajouter une tâche de transformation de fichier avant cette tâche, ce qui a pour effet de
remplacer les valeurs de configuration par les variables de pipeline. Pour plus
d’informations, consultez la section Substitution de variables JSON.

Fichier JSON inline de configuration


Fichier JSON inline utilisé pour la configuration du catalogue SSIS. Cette propriété est
visible uniquement si vous sélectionnez « Inline » comme source du fichier de
configuration. Les variables de pipeline peuvent être utilisées directement.

Restaurer la configuration après une erreur


Détermine si la configuration effectuée par cette tâche doit être annulée en cas d’erreur.

Serveur cible
Nom du serveur SQL Server cible. Il peut s’agir du nom d’une instance SQL Server locale,
Azure SQL Database ou Azure SQL Managed Instance.

Type d'authentification

Type d’authentification utilisé pour l’accès au serveur cible spécifié. En général, les types
d’authentification suivants sont pris en charge :

Authentification Windows
l’authentification SQL Server
Active Directory - Authentification par mot de passe
Active Directory - Authentification intégrée

Cependant, la prise en charge d’un type d’authentification spécifique dépend du type de


serveur de destination et du type d’agent. Reportez-vous au tableau de prise en charge
détaillé ci-dessous.

Type de serveur de Agent hébergé par Microsoft Agent autohébergé


destination

Serveur SQL Server local ou N/A Authentification Windows


machine virtuelle

Azure SQL l’authentification SQL Server l’authentification SQL Server


Active Directory - Active Directory -
Authentification par mot de Authentification par mot de
passe passe
Active Directory -
Authentification intégrée

Nom d’utilisateur
Nom d’utilisateur à utiliser pour l’accès au serveur SQL Server cible. Cette propriété est
visible uniquement si le type d’authentification est Authentification SQL Server ou Active
Directory - Authentification par mot de passe.

Mot de passe
Mot de passe à utiliser pour l’accès au serveur SQL Server cible. Cette propriété est
visible uniquement si le type d’authentification est Authentification SQL Server ou Active
Directory - Authentification par mot de passe.

Définir le schéma JSON de configuration


Le schéma JSON de configuration comporte trois couches :

catalogue
dossier
projet et environnement

Exemple de fichier JSON de configuration inline

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
}
]
}
]
}
]
}

Schéma JSON
Attributs de catalogue

Propriété Description Notes

dossiers Tableau d’objets dossier. Chaque objet contient des Consultez Attributs de dossier
informations de configuration pour un dossier du pour voir le schéma d’un objet
catalogue. dossier.

Attributs de dossier

Propriété Description Notes

name Nom du dossier de catalogue. Le dossier est créé s’il n’existe


pas.

description Description du dossier de catalogue. La valeur Null est ignorée.

projects Tableau d’objets projet. Chaque objet contient Consultez Attributs de projet
des informations de configuration pour un pour voir le schéma d’un objet
projet. projet.

environments Tableau d’objets environnement. Chaque Consultez Attributs


objet contient des informations de d’environnement pour voir le
configuration pour un environnement. schéma d’un objet
environnement.

Attributs de projet

Propriété Description Notes

name Nom du projet. L’objet projet est ignoré si le


projet n’existe pas dans le
dossier parent.

parameters Tableau d'objets de paramètre. Chaque objet Consultez Attributs de paramètre


contient des informations de configuration pour pour voir le schéma d’un objet
un paramètre. paramètre.

references Tableau d’objets référence. Chaque objet Consultez Attributs de référence


représente une référence d’environnement pour pour voir le schéma d’un objet
le projet cible. référence.

Attributs de paramètre

Propriété Description Notes


Propriété Description Notes

name Nom du Le paramètre peut être un paramètre de projet ou un paramètre


paramètre. de package.
Le paramètre est ignoré s’il n’existe pas.
Si le paramètre est une propriété du gestionnaire de connexions, le
nom doit être au format CM.<Nom du gestionnaire de connexions>.
<Nom de la propriété>.

conteneur Conteneur Si le paramètre est un paramètre de projet, le conteneur doit être le


du nom du projet.
paramètre. S’il s’agit d’un paramètre de package, le conteneur doit être le nom
du package avec l’extension .dtsx.

value Valeur du Quand valueType est défini sur referenced : la valeur est une
paramètre. référence à une variable d’environnement avec le type string.
Quand valueType est literal : cet attribut prend en charge toutes les
valeurs JSON de type boolean, number ou string valides.
La valeur est convertie au type du paramètre cible. Une erreur se
produit si la valeur ne peut pas être convertie.
La valeur Null n’est pas valide. La tâche ignore cet objet paramètre
et génère un avertissement.

valueType Type de la Les types valides sont :


valeur du literal (littéral) : l’attribut value représente une valeur littérale.
paramètre. referenced (référencé) : l’attribut value représente une référence à une
variable d’environnement.

Attributs de référence

Propriété Description Notes

environmentFolder Nom du dossier de Le dossier est créé s’il n’existe pas.


l’environnement. La valeur peut être « . », qui représente le dossier
parent du projet et référence l’environnement.

environmentName Nom de L’environnement spécifié est créé s’il n’existe pas.


l’environnement
référencé.

Attributs d’environnement

Propriété Description Notes

name Nom de L’environnement est créé s’il n’existe pas.


l’environnement.
Propriété Description Notes

description Description de La valeur Null est ignorée.


l’environnement.

variables Tableau d’objets Chaque objet contient des informations de configuration pour
variable. une variable d’environnement. Consultez la section Attributs de
variable pour voir le schéma d’un objet variable.

Attributs de variable

Propriété Description Notes

name Nom de la variable La variable d’environnement est créée si elle


d’environnement. n’existe pas.

type Type de données de la Les types valides sont :


variable d’environnement. boolean
byte
datetime
Décimal
double
int16
int32
int64
sbyte
single
string
uint32
uint64

description Description de la variable La valeur Null est ignorée.


d’environnement.

value Valeur de la variable Cet attribut prend en charge toutes les valeurs
d’environnement. JSON de type boolean, number ou string valides.
La valeur est convertie au type spécifié par l’attribut
type. Une erreur se produit en cas d’échec de la
conversion.
La valeur Null n’est pas valide. La tâche ignore cet
objet variable d’environnement et génère un
avertissement.

sensible Détermine si la valeur de la Les entrées valides sont :


variable d’environnement est true
sensible. false
Notes de publication

Version 1.0.6
Date de publication : 1er septembre 2021

Version en disponibilité générale.

Version 1.0.5
Date de publication : 2 juin 2021

Correction d’un problème qui empêchait parfois la tâche de génération SSIS


version 1.* de générer des projets ou des packages avec le niveau de protection
EncryptSensitiveWithPassword ou EncryptAllWithPassword (Erreur : « Le vecteur
d’initialisation (IV) spécifié ne correspond pas à la taille de bloc de cet
algorithme. »).
Suppression du contenu JSON dans le journal de la tâche de configuration du
catalogue SSIS lorsque « Source du fichier de configuration » a la valeur « Chemin
de fichier ».

Version 1.0.4
Date de publication : 21 avril 2021

Tâche de génération SSIS version 1.* (préversion)


Suppression de la dépendance sur Visual Studio et le concepteur SSIS. La tâche
de génération peut s’exécuter sur un agent hébergé par Microsoft ou un agent
auto-hébergé avec le système d’exploitation Windows et .NET Framework 4.6.2
ou ultérieur.
Il n’est pas nécessaire d’installer les composants prédéfinis.
Prise en charge du niveau de protection EncryptionWithPassword et
EncryptionAllWithPassword.
Tâche de déploiement SSIS version 1.* (préversion)
Prise en charge du niveau de protection EncryptionWithPassword et
EncryptionAllWithPassword.

Version 1.0.3
Date de publication : 21 octobre 2020
Autorisation de la spécification du suffixe de chaîne de connexion pour la tâche de
déploiement SSIS et la tâche de configuration du catalogue SSIS.

Version 1.0.2
Date de publication : 26 mai 2020

Correction d’un problème qui peut provoquer l’échec de la tâche de configuration


du catalogue SSIS dans certains cas, une fois le travail de configuration effectué.

Version 1.0.1
Date de publication : 9 mai 2020

Correction d’un problème dans lequel la tâche de génération SSIS génère toujours
l’ensemble de la solution, même si un seul fichier dtproj est spécifié en tant que
chemin du projet.

Version 1.0.0
Date de publication : 8 mai 2020

Version en disponibilité générale.


Ajout d’une restriction de version minimale de .NET Framework sur l’agent.
Actuellement, la version minimale de .NET Framework est la version 4.6.2.
Description améliorée de la tâche de génération SSIS et de la tâche de
déploiement SSIS.

Version 0.2.0 - préversion


Date de publication : 31 mars 2020

Ajout de la tâche de configuration du catalogue SSIS.

Version 0.1.3 - préversion


Date de publication : 19 janvier 2020

Correction d’un problème qui empêchait le déploiement d’ISPAC si son nom de


fichier d’origine était modifié.

Version 0.1.2 - préversion


Date de publication : 13 janvier 2020

Ajout d’informations plus détaillées sur les exceptions dans le journal des tâches
SSIS Deploy lorsque le type de destination est SSISDB.
Correction de l’exemple de chemin de destination dans le texte d’aide du chemin
de destination de la propriété de la tâche SSIS Deploy.

Version 0.1.1 - préversion


Date de publication : 6 janvier 2020

Ajout d’une restriction pour la version minimale requise de l’agent. Actuellement,


la version minimale de l’agent de ce produit est 2.144.0.
Correction de texte d’affichage incorrect pour la tâche SSIS Deploy.
Amélioration de certains messages d’erreur.

Version 0.1.0 - préversion


Date de publication : 5 décembre 2019

Version initiale de SSIS DevOps Tools. Il s’agit d’une version préliminaire.

Étapes suivantes
Obtenir l’extension SSIS DevOps
SQL Server Integration Services (SSIS)
DevOps Tools autonome
Article • 23/05/2023

L’ensemble d’exécutables SSIS DevOps Tools standalone permet d’effectuer des tâches
de CI/CD SSIS. Sans dépendance à l’installation de Visual Studio ou du runtime SSIS, ces
exécutables peuvent être intégrés facilement à n’importe quelle plateforme de CI/CD.
Voici les exécutables fournis :

SSISBuild.exe : générer des projets SSIS dans le modèle de déploiement de projet


ou de package.
SSISDeploy.exe : déployer les fichiers ISPAC dans le catalogue SSIS, ou les fichiers
DTSX et leurs dépendances dans le système de fichiers.

Installation
La version 4.6.2 ou une version ultérieure de .NET Framework est nécessaire.

Téléchargez le programme d’installation le plus récent à partir du centre de


téléchargement . En outre, le lien de téléchargement direct est disponible pour le
script d’automatisation.

Installez ensuite via l’Assistant ou la ligne de commande :

Installation avec l’Assistant

Double-cliquez sur le fichier .exe à installer, puis spécifiez un dossier pour extraire les
fichiers exécutables et les fichiers de dépendance.

Installation en ligne de commande

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


SSISBuild.exe
Syntaxe

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|-?]

Paramètres

Paramètre Description

-project |-p: Chemin du fichier dtproj à générer.


<dtproj file
path>

-configuration|-c: Nom de la configuration de projet à utiliser pour la génération. S’il n’est pas
<configuration spécifié, il s’agit par défaut de la première configuration de projet définie
name> dans le fichier dtproj.

- Mot de passe du projet SSIS et de ses packages. Cet argument n’est valide
projectPassword|- que si le niveau de protection du projet SSIS et des packages est
pp:<project EncryptSensitiveWithPassword ou EncryptAllWithPassword. Dans le modèle
password> de déploiement de package, tous les packages doivent partager le même
mot de passe que celui spécifié par cet argument.

-stripSensitive|-ss Permet de convertir le niveau de protection du projet SSIS en


DontSaveSensitve. Si le niveau de protection est
EncryptSensitiveWithPassword ou EncryptAllWithPassword, l’argument -
projectPassword doit être défini correctement. Cette option n’est valide que
pour le modèle de déploiement de projet.
Paramètre Description

-output|-o: Chemin de sortie de l’artefact de build. La valeur de cet argument remplacera


<output path> le chemin de sortie par défaut dans la configuration du projet.

-log|-l:<log Paramètres relatifs aux journaux.


level>[;<log Niveau de journalisation : seuls les journaux présentant un niveau de
path>] journalisation égal ou supérieur seront écrits dans le fichier journal. Il existe
quatre niveaux de journalisation (du plus faible au plus élevé) : DIAG, INFO,
WRN et ERR. Le niveau de journalisation par défaut est INFO s’il n’est pas
spécifié.
Chemin des journaux : Chemin du fichier servant à conserver les journaux.
Le fichier journal n’est pas généré si le chemin n’est pas spécifié.

-quiet|-q Permet de n’afficher aucun journal dans la sortie standard.

-help|-h|-? Permet d’afficher des informations détaillées sur l’utilisation de cet utilitaire
de ligne de commande.

Exemples

Créer un dtproj avec la première configuration de projet définie, non chiffré par
mot de passe :

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

Créer un dtproj avec la configuration « DevConfiguration », chiffré par mot de


passe, et générez les artefacts de build dans un dossier spécifique :

SSISBuild.exe -p:C:\projects\demo\demo.dtproj -c:DevConfiguration -


pp:encryptionpassword -o:D:\folder

Générer un dtproj avec la configuration « DevConfiguration », chiffré par mot de


passe, en entrelaçant ses données sensibles et le niveau de journalisation DIAG :

SSISBuild.exe -p:C:\projects\demo\demo.dtproj -c:DevConfiguration -


pp:encryptionpassword -ss -l:diag

SSISDeploy.exe
Syntaxe

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|-?]

Paramètres

Paramètre Description

-source|-s:<source Chemin de fichier local des artefacts à déployer. ISPAC, DTSX, le chemin
path> de dossier de DTSX et SSISDeploymentManfiest sont autorisés.

-destination|-d:<type>; Le type de destination, le chemin du dossier de destination et le nom


<path>[;server] du serveur du catalogue SSIS sur lequel le fichier source sera déployé.
Sont actuellement pris en charge les deux types de destination
suivants :
CATALOGUE : déployer un ou plusieurs fichiers ISPAC dans le
catalogue SSIS spécifié. Le chemin de la destination CATALOGUE doit
être au format suivant :
/SSISDB/<folder name>[/<project name>]
Le <project name> facultatif est valide seulement quand la source
spécifie un seul chemin de fichier ISPAC. Le nom du serveur doit être
spécifié pour la destination CATALOGUE.
FICHIER : déployer des packages ou des fichiers SSIS spécifiés dans
un seul ou plusieurs fichiers SSISDeploymentManifest dans le chemin
du système de fichiers spécifié. Le chemin de la destination FICHIER
peut être un chemin de dossier local ou réseau au format suivant :
\\<machine name>\<folder name>[\<sub folder name>...]

-authType|-at:<auth Type d’authentification pour accéder à SQL Server. Obligatoire pour la


type name> destination CATALOGUE. Les types suivants sont pris en charge :
WIN : authentification Windows
SQL : authentification SQL Server
ADPWD : Active Directory - Mot de passe
ADINT : Active Directory - Intégré

- Suffixe de la chaîne de connexion utilisée pour se connecter au


connectionStringSuffix|- catalogue SSIS.
css:<connection string
suffix>

-projectPassword|-pp: Mot de passe servant à déchiffrer les fichiers ISPAC ou DTSX.


<project password>
Paramètre Description

-username|-u: Nom d’utilisateur utilisé pour accéder au catalogue SSIS ou au système


<username> de fichiers spécifié. Le préfixe avec nom de domaine est autorisé pour
l’accès au système de fichiers.

-password|-p: Mot de passe utilisé pour accéder au catalogue SSIS ou au système de


<password> fichiers spécifié.

-log|-l:<log level>[; Paramètres relatifs aux journaux pour l’exécution de cet utilitaire.
<log path>] Niveau de journalisation : seuls les journaux présentant un niveau
de journalisation égal ou supérieur seront écrits dans le fichier journal.
Il existe quatre niveaux de journalisation (du plus faible au plus élevé) :
DIAG, INFO, WRN et ERR. Le niveau de journalisation par défaut est
INFO s’il n’est pas spécifié.
Chemin des journaux : Chemin du fichier servant à conserver les
journaux. Le fichier journal n’est pas généré si le chemin n’est pas
spécifié.

-quiet|-q Permet de ne pas afficher les journaux dans la sortie standard.

-help|-h|-? Permet d’afficher des informations détaillées sur l’utilisation de cet


utilitaire de ligne de commande.

Exemples

Déployer un fichier ISPAC unique non chiffré par mot de passe dans le catalogue
SSIS avec l’Authentification Windows.

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

Déployer un fichier ISPAC unique chiffré par mot de passe dans le catalogue SSIS
avec l’authentification SQL, puis renommer le projet.

SSISDeploy.exe -s:D:\myfolder\test.ispac -
d:catalog;/SSISDB/folder/testproj;myssisserver -at:sql -u:sqlusername -
p:sqlpassword -pp:encryptionpassword

Déployer un fichier SSISDeploymentManifest unique et les fichiers associés dans le


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

Déployer un dossier de fichiers DTSX dans le système de fichiers local.

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

Notes de publication

Version 1.0.0.0
Date de publication : 1er septembre 2021

Version en disponibilité générale.

Version 0.1.3.1 Préversion


Date de publication : 10 juin 2021

Correction d’un problème lors duquel SSISDeploy.exe ne parvenait pas à déployer


des projets SSIS en affichant l’erreur suivante : « Exception non prise en charge :
System.IO.FileLoadException : Impossible de charger le fichier ou l’assembly
'Microsoft.SqlServer.IntegrationServices.ProjectDeployment, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35' ou l’une de ses
dépendances. Échec de la validation de nom fort. (Exception de HRESULT :
0x8013141A) ---> System.Security.SecurityException : La validation de nom fort a
échoué. (Exception de HRESULT : 0x8013141A) »

Version 0.1.3 - préversion


Date de publication : 2 juin 2021

Correction d’un problème lors duquel SSISBuild.exe ne parvenait pas à générer des
projets en affichant l’erreur « Échec de la vérification de cohérence du projet. Les
incohérences suivantes ont été détectées » si le nom du package dans le projet
contenait des caractères spéciaux.
Correction d’un problème lors duquel SSISBUild.exe ne parvenait pas à générer des
projets en cas de non-correspondance entre le nom dans dtproj et le nom du
fichier.
Correction d’un problème lors duquel SSISBuild.exe ne parvenait pas à générer des
projets avec le niveau de protection
encryptSenstiveWithPassword/EncryptAllWithPassword si le projet ciblait SQL
Server 2016.

Version 0.1.2 - préversion


Date de publication : 14 janvier 2021

Correction d’un problème qui provoquait l’échec de la génération du projet par


SSISBuild.exe, avec l’exception NullReference, lorsque les métadonnées de
paramètre du package dans le fichier projet SSIS et le package SSIS ne
correspondaient pas.
Correction d’un problème d’échec de l’exécution du package avec l’erreur
« Impossible de déchiffrer le nœud XML protégé », alors que le package est
correctement déployé sur SSISDB avec SSISDeploy.exe, quand le projet SSIS
contenant le package est chiffré avec EncryptSensitiveWithUserKey et que le
package contient un CM avec des données sensibles.

Version 0.1.1 - préversion


Date de publication : 11 novembre 2020

Correction du problème selon lequel SSISDeploy.exe ne parvenait pas à charger un


assembly lors du déploiement d’ispac dans le catalogue SSIS.

Version 0.1.0 - préversion


Date de publication : 16 octobre 2020

Préversion initiale de SSIS DevOps Tools standalone.

Étapes suivantes
Téléchargez SSIS DevOps Tools standalone .
Si vous avez des questions, consultez Q&A
Interface utilisateur d'Integration
Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

En plus des surfaces de dessin disponibles sous les onglets du concepteur SSIS ,
l'interface utilisateur donne accès aux fenêtres et boîtes de dialogue suivantes
permettant d'ajouter des fonctionnalités aux packages et de configurer les propriétés
d'objets de packages.

Les boîtes de dialogue et fenêtres que vous utilisez pour ajouter des
fonctionnalités telles que la journalisation et les configurations de packages.

Les éditeurs personnalisés pour la configuration des propriétés des objets de


packages. Presque chaque type de conteneur, tâche et composant de flux de
données possède son propre éditeur personnalisé.

La boîte de dialogue Éditeur avancé , un éditeur générique qui propose des


options de configuration plus détaillées pour de nombreux composants de flux de
données.

SQL Server Data Tools (SSDT) fournit également des fenêtres et des boîtes de dialogue
pour la configuration de l'environnement et l'utilisation des packages.

Boîtes de dialogue et fenêtres


Après l'ouverture ou la création d'un package dans le concepteur SSIS , les boîtes de
dialogue et fenêtres suivantes sont disponibles.

Ce tableau répertorie les boîtes de dialogue disponibles à partir du menu SSIS et des
surfaces de dessin du concepteur SSIS .

Boîte de Objectif Accès


dialogue
Boîte de Objectif Accès
dialogue

Prise en main Accédez aux exemples, Sur l’aire de conception de l’onglet Flux de contrôle
didacticiels et vidéos. ou de l’onglet Flux de données , cliquez avec le
bouton droit, puis cliquez sur Prise en main.

Pour afficher automatiquement la fenêtre Mise en


route lorsque vous créez un projet Integration
Services , sélectionnez Afficher toujours dans un
nouveau projet en bas de la fenêtre.

Configurer les Configuration de la Dans le menu SSIS , cliquez sur Enregistrement.


journaux SSIS journalisation pour un
package et ses tâches -ou-
en ajoutant des
journaux et en Cliquez n’importe où sur l’aire de conception de
définissant des détails l’onglet Flux de contrôle , puis cliquez sur
de journalisation. Journalisation.

Bibliothèque Ajout et modification Dans le menu SSIS , cliquez sur Configurations du


des de configurations de package.
configurations package. L'exécution de
du package l'Assistant -ou-
Configuration de
package s'effectue à Cliquez n’importe où sur l’aire de conception de
partir de cette boîte de l’onglet Flux de contrôle , puis cliquez sur
dialogue. Configurations du package.

Signature Signature d'un package Dans le menu SSIS , cliquez sur Signature numérique.
numérique ou suppression de la
signature d'un package. -ou-

Cliquez n’importe où sur l’aire de conception de


l’onglet Flux de contrôle , puis cliquez sur Signature
numérique.

Définir des Activation des points Sur l’aire de conception de l’onglet Flux de contrôle ,
points d’arrêt d'arrêt sur des tâches et cliquez avec le bouton droit sur une tâche ou un
définition des conteneur, puis cliquez sur Modifier les points
propriétés des points d’arrêt. Pour définir un point d’arrêt sur le package,
d'arrêt. cliquez n’importe où sur l’aire de conception de
l’onglet Flux de contrôle , puis cliquez sur Modifier
les points d’arrêt.

La fenêtre Mise en route fournit des liens vers des exemples, des didacticiels et des
vidéos. Pour ajouter des liens à des contenus supplémentaires, modifiez le fichier
SamplesSites.xml inclus avec la version actuelle de SQL Server Integration Services. Nous
vous recommandons de ne pas modifier la valeur de l’élément
<GettingStartedSamples> qui spécifie l’URL du flux RSS. Le fichier se trouve dans le
dossier <lecteur>:\Program Files\Microsoft SQL Server\110\DTS\Binn. Sur un ordinateur
64 bits, le fichier se trouve dans le dossier <lecteur>:\Program Files(x86)\Microsoft SQL
Server\110\DTS\Binn

Si le fichier SamplesSites.xml est endommagé, remplacez le xml dans le fichier par le xml
par défaut suivant.

<?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>

Ce tableau répertorie les fenêtres disponibles à partir des menus SSIS et Affichage et
des surfaces de dessin du concepteur SSIS .

Fenêtre Objectif Accès

Variables Ajout et gestion de Dans le menu SSIS , cliquez sur Variables.


variables
personnalisées. -ou-

Cliquez n’importe où sur l’aire de conception des


onglets Flux de contrôle et Flux de données , puis
cliquez sur Variables.

-ou-

Dans le menu Affichage , pointez sur Autres fenêtres,


puis cliquez sur Variables.
Fenêtre Objectif Accès

Journaux Affichage des entrées Dans le menu SSIS , cliquez sur Journaux
d'événements de journaux au d'événements.
moment de l'exécution.
-ou-

Cliquez n’importe où sur l’aire de conception des


onglets Flux de contrôle et Flux de données , puis
cliquez sur Journaux d’événements.

-ou-

Dans le menu Affichage , pointez sur Autres fenêtres,


puis cliquez sur Journaux d'événements.

Éditeurs personnalisés
Integration Services fournit une boîte de dialogue personnalisée pour la plupart des
conteneurs, tâches, sources, transformations et destinations.

Le tableau suivant décrit comment accéder aux boîtes de dialogue personnalisées.

Type d'éditeur Accès

Conteneur. Pour plus d’informations, consultez Sur l’aire de conception de l’onglet Flux de
Conteneurs Integration Services. contrôle , double-cliquez sur le conteneur.

Tâche. Pour plus d’informations, consultez Sur l’aire de conception de l’onglet Flux de
Tâches Integration Services. contrôle , double-cliquez sur la tâche.

Source. Sur l’aire de conception de l’onglet Flux de


données , double-cliquez sur la source.

Transformation. Pour plus d’informations, Sur l’aire de conception de l’onglet Flux de


consultez Transformations Integration Services. données , double-cliquez sur la transformation.

Destination. Sur l’aire de conception de l’onglet Flux de


données , double-cliquez sur la destination.

Éditeur avancé
La boîte de dialogue Éditeur avancé est une interface utilisateur permettant de
configurer des composants de flux de données. Elle présente les propriétés du
composant selon une disposition générique. La boîte de dialogue Éditeur avancé n'est
pas accessible aux transformations Integration Services qui possèdent plusieurs entrées.
Pour ouvrir cet éditeur, cliquez sur Afficher l’éditeur avancé dans la fenêtre Propriétés
ou cliquez avec le bouton droit sur un composant de flux de données, puis cliquez sur
Afficher l’éditeur avancé.

Si vous créez une source, une transformation ou une destination personnalisée mais
vous ne souhaitez pas écrire d'interface utilisateur personnalisée, vous pouvez utiliser l'
Éditeur avancé .

Fonctionnalités des outils de données SQL


Server
SQL Server Data Tools (SSDT) propose des fenêtres, des boîtes de dialogue et des
options de menu pour l'utilisation des packages Integration Services .

Voici un récapitulatif des fenêtres et menus disponibles :

La fenêtre Explorateur de solutions répertorie les projets (y compris le projet


Integration Services dans lequel vous développez des packages Integration
Services ) et les fichiers de projets.

Pour trier par nom les packages contenus dans un projet, cliquez avec le bouton
droit sur le nœud Packages SSIS , puis cliquez sur Trier par nom.

La fenêtre Boîte à outils répertorie les éléments de création de flux de contrôle et


de flux de données.

La fenêtre Propriétés répertorie les propriétés d'objets.

Le menu Format fournit des options de dimensionnement et d'alignement de


contrôles dans un package.

Le menu Edition fournit une fonctionnalité de copier-coller pour la copie d'objets


sur les surfaces de dessin.

Le menu Affichage fournit des options de modification de la représentation


graphique des objets dans le concepteur SSIS .

Pour plus d'informations sur les fenêtres et menus supplémentaires, consultez la


documentation de Visual Studio.

Tâches associées
Pour plus d’informations sur la création de packages dans SQL Server Data Tools (SSDT),
consultez Créer des packages dans les outils de données SQL Server.

Voir aussi
Concepteur SSIS
Concepteur SSIS
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

SSIS est un outil graphique permettant de créer et de gérer des packages Integration
Services . SSIS est disponible dans SQL Server Data Tools (SSDT) , en tant que projet
Integration Services .

Vous pouvez utiliser le concepteur SSIS pour effectuer les tâches suivantes :

construire le flux de contrôle dans un package ;

construire les flux de données dans un package ;

ajouter des gestionnaires d'événements au package et aux objets du package ;

afficher le contenu du package ;

au moment de l'exécution, afficher la progression de l'exécution du package.

Le diagramme qui suit montre le concepteur SSIS et la fenêtre Boîte à outils .

Integration Services comprend des fenêtres et des boîtes de dialogue et des fenêtres
supplémentaires permettant d’ajouter des fonctionnalités aux packages, tandis que SQL
Server Data Tools (SSDT) en propose d’autres pour configurer l’environnement de
développement et l’utilisation de packages. Pour plus d’informations, consultez Interface
utilisateur d’Integration Services.

SSIS ne dépend pas du service Integration Services (celui qui gère et surveille les
packages) ; la création ou la modification de packages dans le concepteur SSIS ne
requiert pas que ce service soit en cours d'exécution. Toutefois, si vous arrêtez le service
alors que le concepteur SSIS Designer est ouvert, vous ne pouvez plus ouvrir les boîtes
de dialogue fournies par le concepteur SSIS Designer et vous risquez de recevoir le
message d’erreur « Le serveur RPC n’est pas disponible ». Pour réinitialiser le concepteur
SSIS Designer et continuer à utiliser le package, vous devez fermer le concepteur, quitter
SQL Server Data Tools (SSDT), puis rouvrir SQL Server Data Tools (SSDT), le projet
Integration Services, et le package.

Annuler et rétablir
Vous pouvez annuler et rétablir au maximum 20 actions dans le concepteur SSIS . Pour
un package, les opérations annuler/rétablir sont disponibles dans les onglets Flux de
contrôle, Flux de données, Gestionnaires d’événementset Paramètres , et dans la
fenêtre Variables . Pour un projet, ces opérations sont disponibles dans la fenêtre
Paramètres du projet .

Vous ne pouvez pas annuler/rétablir les modifications apportées à la nouvelle Boîte à


outils SSIS.

Lorsque vous apportez des modifications à un composant à l'aide de l'éditeur de


composant, vous annulez et rétablissez les modifications en tant qu'ensemble au lieu
d'annuler et rétablir des modifications individuelles. L'ensemble de modifications
apparaît en tant qu'action unique dans la liste déroulante d'annulation et de
rétablissement.

Pour annuler une action, cliquez sur le bouton Annuler de la barre d’outils, sur l’élément
de menu Modifier/Annuler ou appuyez sur Ctrl+Z. Pour rétablir une action, cliquez sur
le bouton Rétablir de la barre d’outils ou sur l’élément de menu Modifier/Rétablir , ou
appuyez sur CTRL+Y. Vous pouvez annuler et rétablir plusieurs actions en cliquant sur la
flèche en regard du bouton de la barre d’outils, en mettant en surbrillance plusieurs
actions de la liste déroulante, puis en cliquant dans la liste.

Parties du concepteur SSIS


SSIS comprend cinq onglets permanents : un pour créer le flux de contrôle du package,
un pour les flux de données, un pour les paramètres et un pour les gestionnaires
d'événements, ainsi qu'un onglet pour afficher le contenu du package. Au moment de
l'exécution, un sixième onglet apparaît pour indiquer la progression de l'exécution d'un
package et les résultats de l'exécution une fois celle-ci terminée.

Par ailleurs, le concepteur SSIS contient une zone nommée Gestionnaires de connexions
qui permet d'ajouter et de configurer les gestionnaires de connexions utilisés par un
package pour se connecter aux données.

Onglet Flux de contrôle


Le flux de contrôle d'un package est construit sur l'aire de conception de l'onglet Flux
de contrôle . Vous devez faire glisser des éléments de la Boîte à outils vers la surface de
dessin, puis les relier en un flux de contrôle en cliquant sur l'icône d'un élément, puis en
faisant glisser la flèche vers un autre élément.

Pour plus d’informations, consultez Control Flow.

Onglet Flux de données


Si un package contient une tâche de flux de données, vous pouvez ajouter des flux de
données au package. Les flux de données d'un package sont construits sur la surface de
dessin de l'onglet Flux de données . Vous devez faire glisser des éléments de la Boîte à
outils vers la surface de dessin, puis les relier en un flux de données en cliquant sur
l'icône d'un élément, puis en faisant glisser la flèche vers un autre élément.

Pour en savoir plus, voir Data Flow.

Onglet paramètres
Les paramètres d'Integration Services (SSIS) vous permettent d'affecter des valeurs aux
propriétés des packages au moment de l'exécution du package. Vous pouvez créer des
paramètres de projet au niveau du projet et des paramètres de package au niveau du
package. Les paramètres du projet sont utilisés pour fournir une entrée externe que le
projet reçoit à un ou plusieurs packages du projet. L'utilisation de paramètres de
package vous permet de modifier l'exécution du package sans avoir à modifier et à
redéployer le package. Cet onglet vous permet de gérer les paramètres du package.

Pour plus d’informations sur les paramètres, consultez Paramètres Integration Services
(SSIS).

) Important
Les paramètres sont disponibles uniquement pour les projets développés pour le
modèle de déploiement de projet. Par conséquent, vous verrez l'onglet Paramètres
uniquement pour les packages qui font partie d'un projet configuré pour utiliser le
modèle de déploiement du projet.

Onglet Gestionnaires d'événements


Les événements d'un package sont construits sur la surface de dessin de l'onglet
Gestionnaires d'événements . Sous l'onglet Gestionnaires d'événements , vous devez
sélectionner le package ou l'objet du package pour lequel vous voulez créer un
gestionnaire d'événements, puis sélectionner l'événement à associer au gestionnaire
d'événements. Un gestionnaire d'événements contient un flux de contrôle et des flux de
données facultatifs.

Pour en savoir plus, voir Add an Event Handler to a Package.

Onglet Explorateur de package


Les packages peuvent être complexes et inclure de nombreuses tâches, gestionnaires de
connexions, variables et autres éléments. L'Explorateur de package permet d'afficher
une liste complète des éléments du package.

Pour plus d’informations, consultez Afficher des objets de packages.

Onglet Progression/Résultats d'exécution


L'onglet Progression indique la progression de l'exécution du package. À la fin de
l'exécution du package, les résultats de l'exécution sont disponibles sous l'onglet
Résultats d'exécution .

7 Notes

Pour activer ou désactiver l'affichage de messages sous l'onglet Progression ,


basculez l'option Création de rapports de progression de débogage dans le menu
SSIS .

Zone Gestionnaires de connexion


Ajoutez et modifiez les gestionnaires de connexions utilisés par un package dans la zone
Gestionnaires de connexions . Integration Services inclut des gestionnaires de
connexions permettant de se connecter à différentes sources de données, telles que des
fichiers texte, des bases de données OLE DB et des fournisseurs .NET.

Pour plus d’informations, consultez Connexions Integration Services (SSIS) et Créer des
gestionnaires de connexions.

Onglet Flux de contrôle


Utilisez l'onglet Flux de contrôle du concepteur SSIS pour créer le flux de contrôle dans
un package Integration Services .

Pour créer le flux de contrôle, faites glisser les objets graphiques qui représentent les
tâches et les conteneurs SSIS de la Boîte à outils vers la surface de dessin de l'onglet
Flux de contrôle , puis connectez-les en faisant glisser le connecteur d'un objet vers un
autre. Chaque ligne de raccordement représente une contrainte de priorité qui spécifie
l'ordre d'exécution des tâches et des conteneurs.

En outre, vous pouvez utiliser le Concepteur SSIS pour ajouter les fonctionnalités
suivantes à l'onglet Flux de contrôle :

mettre en œuvre l'enregistrement dans un journal ;

créer des configurations de package ;

signer le package à l'aide d'un certificat ;

gérer les variables ;

ajouter des annotations.

configurer des points d'arrêt.

Pour ajouter ces fonctions à des tâches ou des conteneurs individuels dans le
Concepteur SSIS , cliquez avec le bouton droit sur l'objet situé sur la surface de dessin,
puis sélectionnez l'option.

Onglet Flux de données


Utilisez l'onglet Flux de données du concepteur SSIS pour créer des flux de données
dans un package Integration Services .

Pour créer le flux de données, faites glisser les objets graphiques qui représentent les
sources, les transformations et les destinations de la Boîte à outils vers la surface de
dessin de l'onglet Flux de données , puis connectez-les pour créer les chemins d'accès
qui définissent la séquence dans laquelle les transformations sont exécutées.

Cliquez avec le bouton droit sur un chemin d’accès, puis cliquez sur Visionneuses de
données pour ajouter des visionneuses de données permettant d’afficher les données
avant et après chaque objet du flux de données.

Vous pouvez également utiliser le concepteur SSIS pour ajouter les fonctionnalités
suivantes à l'onglet Flux de données :

gérer les variables ;

ajouter des annotations.

Pour ajouter ces fonctions dans le concepteur SSIS , cliquez avec le bouton droit sur la
surface de dessin, puis sélectionnez l'option choisie.

Onglet Gestionnaires d'événements


Utilisez l’onglet Gestionnaires d’événements du concepteur SSIS pour créer un flux de
contrôle dans un package Integration Services . Un gestionnaire d'événements est
exécuté en réponse à un événement déclenché par le package ou par une tâche ou un
conteneur du package.

Options
Exécutable
Sélectionnez l'exécutable pour lequel vous souhaitez créer un gestionnaire
d'événements. L'exécutable peut être un package ou une tâche ou des conteneurs du
package.

Gestionnaire d’événements
Sélectionnez un type de gestionnaire d'événements. Créez le gestionnaire d’événements
en faisant glisser les éléments à partir de la Boîte à outils.

Supprimer
Sélectionnez un gestionnaire d’événements et supprimez-le du package en cliquant sur
Supprimer.

Cliquez ici pour créer un <nom de gestionnaire d’événements> pour le fichier


exécutable <nom du fichier exécutable>
Cliquez pour créer le gestionnaire d'événements.
Pour créer le flux de contrôle, faites glisser les objets graphiques qui représentent les
tâches et les conteneurs SSIS de la Boîte à outils vers l’onglet Gestionnaires
d’événements , puis connectez-les en utilisant des contraintes de priorité pour définir
leur ordre d’exécution.

Par ailleurs, pour ajouter des annotations, cliquez avec le bouton droit dans l’aire de
conception puis, dans le menu qui s’affiche, cliquez sur Ajouter une annotation.

Onglet Explorateur de package


Utilisez l'onglet Explorateur de package du Concepteur SSIS pour afficher une vue
hiérarchique de tous les éléments d'un package : configurations, connexions,
gestionnaires d'événements, objets exécutables tels que les tâches et les conteneurs,
modules fournisseurs d'informations, contraintes de précédence et variables. Si un
package contient une tâche de flux de données, l'onglet Explorateur de package
comporte un nœud qui contient une vue hiérarchique de tous les composants de flux de
données.

Cliquez avec le bouton droit sur un élément du package, puis cliquez sur Propriétés
pour afficher les propriétés de l’élément dans la fenêtre Propriétés , ou cliquez sur
Supprimer pour supprimer l’élément.

Onglet Progression
Utilisez l'onglet Progression du concepteur SSIS pour afficher la progression d'un
package Integration Services exécuté dans SQL Server Data Tools (SSDT). L'onglet
Progression répertorie l'heure de début, l'heure de fin et le temps écoulé pour la
validation et l'exécution du package et de ses exécutables, les informations ou les
avertissements éventuels pour le package, les notifications sur la progression, la réussite
ou l'échec du package et les messages d'erreur éventuels générés pendant l'exécution
du package.

Pour activer ou désactiver l'affichage de messages sous l'onglet Progression , basculez


l'option Création de rapports de progression de débogage dans le menu SSIS . La
désactivation du rapport de progression peut aider à améliorer les performances lors de
l'exécution d'un package complexe dans SQL Server Data Tools.

Une fois l'exécution du package terminée, l'onglet Progression devient l'onglet


Résultats d'exécution .

Zone Gestionnaires de connexion


Les packages utilisent des gestionnaires de connexion pour se connecter aux sources de
données telles que les fichiers, les bases de données relationnelles et les serveurs.

Utilisez la zone Gestionnaires de connexion du concepteur SSIS pour ajouter,


supprimer, modifier, renommer et copier et coller les gestionnaires de connexion.

Cliquez avec le bouton droit dans cette zone puis, dans le menu qui s'affiche, cliquez sur
l'option de la tâche à exécuter.

Tâches associées
Créer des packages dans les outils de données SQL Server

Voir aussi
Interface utilisateur d’Integration Services
Éditeur avancé
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Éditeur avancé pour configurer les propriétés du


composant de l'objet Integration Services sélectionné.

L' Éditeur avancé est disponible pour la plupart des objets Integration Services dont les
propriétés sont configurables. Il s'agit du seul éditeur disponible pour les objets qui ne
comportent pas d'interface utilisateur personnalisée.

Integration Services ont des propriétés qu'il est possible de définir au niveau du
composant, de l'entrée et de la sortie et au niveau de la colonne d'entrée et de sortie. L'
Éditeur avancé énumère toutes les propriétés courantes et personnalisées de l'objet
sélectionné. Il les affiche dans au maximum quatre des cinq onglets suivants en fonction
des cas :

Gestionnaires de connexions : utilisez cet onglet pour définir les propriétés de


connexion.

Propriétés du composant : utilisez cet onglet pour définir les propriétés au niveau
du composant.

Mappage de colonnes : utilisez cet onglet pour mapper les colonnes disponibles
en tant que colonnes de sortie.

Colonnes d’entrée : utilisez cet onglet pour sélectionner les colonnes d’entrée.

Propriétés d’entrée et de sortie : utilisez cet onglet pour définir les propriétés
d’entrée et de sortie, ainsi que pour ajouter et supprimer des sorties, sélectionner
ou supprimer les colonnes des entrées et des sorties, et définir les propriétés des
entrées et des sorties.

Les propriétés affichées dépendent des composants. Pour plus d'informations sur les
propriétés qu'il est possible d'afficher dans l' Éditeur avancé, consultez les rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Propriétés du chemin
Pour plus d'informations sur le composant spécifique que vous modifiez, consultez la
description du composant dans la section « Composants des flux de données » de la
documentation Objets et concepts d' Integration Services :

Transformations Integration Services

Voir aussi
Guide de référence des erreurs et des messages propres à Integration Services
Grouper ou dissocier des composants
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les onglets Flux de contrôle, Flux de donnéeset Gestionnaires d’événements du


concepteur SSIS prennent en charge le groupement réductible. Si un package contient
plusieurs composants, les onglets peuvent être encombrés, ce qui rend difficile
l'affichage simultané de tous les composants et la recherche de l'élément avec lequel
vous souhaitez travailler. La fonctionnalité de groupement réductible permet
d'économiser de l'espace sur la surface de travail et de faciliter l'utilisation des packages
volumineux.

Vous sélectionnez les composants à grouper, vous les groupez, puis vous développez ou
réduisez les groupes selon vos besoins. Le développement d'un groupe donne accès aux
propriétés des composants du groupe. Les contraintes de précédence qui connectent
les tâches et conteneurs sont incluses automatiquement dans le groupe.

Voici quelques observations concernant le regroupement des composants.

Pour regrouper des composants, le flux de contrôle, le flux de données ou le


gestionnaire d'événements doivent contenir plusieurs composants.

Les groupes peuvent également être imbriqués, ce qui rend possible la création de
groupes à l'intérieur d'autres groupes. La surface de dessin peut implémenter
plusieurs groupes non imbriqués, mais un composant ne peut appartenir qu'à un
seul groupe, à moins que les groupes soient imbriqués.

Lors de l'enregistrement d'un package, le concepteur SSIS enregistre le


groupement mais celui-ci n'a aucun effet sur l'exécution du package. La possibilité
de grouper les composants est une fonctionnalité de conception ; elle n'affecte pas
le comportement d'exécution du package.

Pour regrouper des composants


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Flux de contrôle, Flux de donnéesou Gestionnaires


d’événements .
4. Sur l’aire de conception de l’onglet, sélectionnez les composants que vous
souhaitez grouper, cliquez avec le bouton droit sur un composant sélectionné, puis
cliquez sur Groupe.

5. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Pour dissocier des composants


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Flux de contrôle, Flux de donnéesou Gestionnaires


d’événements .

4. Sur l’aire de conception de l’onglet, sélectionnez le groupe qui contient le


composant que vous souhaitez dissocier, cliquez avec le bouton droit sur le
composant sélectionné, puis cliquez sur Dissocier.

5. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Ajouter ou supprimer une tâche ou un conteneur dans un flux de contrôle
Connecter des tâches et des conteneurs à l’aide d’une contrainte de précédence par
défaut
Utiliser des annotations dans les
packages
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le concepteur SSIS propose des annotations que vous pouvez utiliser afin de faire en
sorte que les packages s'auto-documentent et soient ainsi plus faciles à comprendre et
à gérer. Vous pouvez ajouter des annotations au flux de contrôle, au flux de données et
aux surfaces de dessin du gestionnaire d'événements du concepteur SSIS . Les
annotations peuvent contenir n'importe quel type de texte et sont utiles pour ajouter
des étiquettes, des commentaires et autres informations descriptives à un package. Les
annotations sont disponibles uniquement au moment de la conception. Par exemple,
elles ne sont pas écrites dans les fichiers journaux.

Lorsque vous appuyez sur Entrée, le texte est renvoyé à la ligne suivante. La taille de la
zone d'annotation augmente automatiquement lorsque vous ajoutez des lignes de texte
supplémentaires. Les annotations de package sont conservées en texte clair dans la
section CDATA du fichier de package.

Pour plus d’informations sur les modifications du format du fichier de package,


consultez Format de package SSIS.

Lorsque vous enregistrez le package, le concepteur SSIS enregistre les annotations dans
le package.

Ajouter une annotation à un package


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package auquel vous voulez ajouter une annotation.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Dans le concepteur SSIS , cliquez avec le bouton droit n’importe où sur la surface
de dessin de l’onglet Flux de contrôle, Flux de donnéesou Gestionnaires
d’événements , puis cliquez sur Ajouter une annotation. Un bloc de texte apparaît
sur la surface de dessin de l'onglet.

4. Ajoutez le texte.

7 Notes
Si vous n'ajoutez pas de texte, le bloc de texte est supprimé lorsque vous
cliquez en dehors.

5. Pour modifier la taille ou le format du texte de l’annotation, cliquez avec le bouton


droit sur l’annotation, puis cliquez sur Définir la police de l’annotation de texte.

6. Pour ajouter une ligne de texte supplémentaire, appuyez sur ENTRÉE.

La taille de la zone d'annotation augmente automatiquement lorsque vous ajoutez


des lignes de texte supplémentaires.

7. Pour ajouter une annotation à un groupe, cliquez avec le bouton droit sur
l’annotation, puis cliquez sur Groupe.

8. Pour enregistrer le package mis à jour, dans le menu Fichier , cliquez sur
Enregistrer tout.
Boîte à outils SSIS
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Tous les composants installés sur l’ordinateur local apparaissent automatiquement dans
la Boîte à outils SSIS. Lorsque vous installez des composants additionnels, cliquez avec
le bouton droit dans la boîte à outils, puis cliquez sur Boîte à outils Actualiser pour
ajouter les composants.

Quand vous créez un projet SSIS ou ouvrez un projet existant, la Boîte à outils SSIS est
automatiquement affichée. Pour ouvrir la boîte à outils, vous pouvez également cliquer
sur le bouton de la boîte à outils situé en haut à droite de l’aire de conception du
package ou sur AFFICHAGE > Autres fenêtres > Boîte à outils SSIS.

7 Notes

Si vous ne voyez pas la boîte à outils, accédez à AFFICHAGE > Autres fenêtres >
Boîte à outils SSIS.

Vous pouvez obtenir des informations supplémentaires sur un composant de la boîte à


outils en cliquant sur le composant pour afficher sa description en bas de la boîte à
outils. Pour certains composants, vous pouvez également accéder à des exemples qui
montrent comment configurer et utiliser les composants. Ces exemples sont disponibles
sur MSDN. Pour accéder aux exemples depuis la Boîte à outils SSIS, cliquez sur le lien
Rechercher des exemples qui apparaît sous la description.

7 Notes

Vous ne pouvez pas supprimer les composants installés à partir de la boîte à outils.

Catégories de la boîte à outils


Dans la boîte à outils SSIS, le flux de contrôle et les composants de flux de données
sont organisés en catégories. Vous pouvez développer et réduire des catégories, et
réorganiser des composants. Restaurez l’organisation par défaut en cliquant avec le
bouton droit dans la boîte à outils, puis en cliquant sur Restaurer les valeurs par défaut
de la boîte à outils.
Les catégories Favoris et Commun apparaissent dans la boîte à outils lorsque vous
sélectionnez les onglets Flux de contrôle, Flux de donnéeset Gestionnaires
d'événements . La catégorie Autres tâches apparaît dans la boîte à outils lorsque vous
sélectionnez l'onglet Flux de contrôle ou l'onglet Gestionnaires d'événements . Les
catégories Autres transformations, Autres sourceset Autres destinations apparaissent
dans la boîte à outils lorsque vous sélectionnez l'onglet Flux de données .

Ajouter des composants Azure à la boîte à


outils
Le Feature Pack Azure pour Integration Services contient les gestionnaires de
connexions permettant de se connecter aux sources de données Azure, ainsi que les
tâches permettant d’effectuer les opérations Azure courantes. Installez le Feature Pack
pour ajouter ces éléments à la boîte à outils. Pour plus d’informations, consultez Pack de
fonctionnalités Azure pour Integration Services (SSIS).

Déplacer un élément de boîte à outils vers une


autre catégorie
1. Cliquez avec le bouton droit sur un élément de la boîte à outils SSIS, puis cliquez
sur l'un des éléments suivants :

Déplacer vers Favoris

Déplacer vers Courant

Déplacer vers Autres sources

Déplacer vers Autres destinations

Déplacer vers Autres transformations

Déplacer vers Autres tâches

Actualiser la boîte à outils SSIS


1. Cliquez avec le bouton droit dans la boîte à outils SSIS, puis cliquez sur Actualiser
boîte à outils.
Page Général des Options des
Concepteurs Integration Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la page Général de la page Concepteurs de services d'intégration dans la boîte


de dialogue Options pour spécifier les options de chargement, d'affichage et de mise à
niveau des packages.

Pour ouvrir la page Général dans SQL Server Data Tools (SSDT), dans le menu Outils ,
cliquez sur Options, développez Concepteurs Business Intelligenceet sélectionnez
Concepteurs de services d'intégration.

Options
Vérifier la signature numérique lors du chargement d'un package
Sélectionnez cette option pour que Integration Services vérifie la signature numérique
durant le chargement d’un package. Integration Services vérifie uniquement si la
signature numérique est présente, si elle est valide et si elle provient d’une source fiable.
Integration Services ne vérifie pas si le package a été modifié depuis qu'il a été signé.

Si vous définissez la valeur de Registre BlockedSignatureStates , cette valeur de Registre


remplace l’option Vérifier la signature numérique lors du chargement d’un package .
Pour plus d’informations, consultez Implémenter une stratégie de signature en
définissant une valeur de Registre.

Pour plus d’informations sur les packages et les certificats numériques, consultez
Identifier la source de packages à l’aide de signatures numériques.

Afficher un avertissement si un package n'est pas signé


Sélectionnez cette option pour afficher un avertissement lors du chargement d'un
package qui n'est pas signé.

Afficher les étiquettes de contrainte de précédence


Sélectionnez l’étiquette (Réussite, Échec ou À l’achèvement) à afficher sur les contraintes
de précédence pendant la consultation de packages dans SQL Server Data Tools (SSDT).

Langage de script
Sélectionnez le langage de script par défaut pour les nouvelles tâches de script et les
composants Script.
Mettre à jour les chaînes de connexion pour l'utilisation des nouveaux noms de
fournisseurs
Durant l’ouverture ou la mise à niveau de packages SQL Server 2005 Integration Services
(SSIS), mettez à jour les chaînes de connexion afin d’utiliser les noms correspondant aux
fournisseurs suivants, pour la version actuelle de SQL Server Integration Services :

Analysis Services Fournisseur OLE DB

SQL Server Native Client

L'Assistant Mise à niveau de packages SSIS met à jour uniquement les chaînes de
connexion qui sont stockées dans des gestionnaires de connexions. Il ne met pas à jour
les chaînes de connexion qui sont construites dynamiquement à l'aide du langage
d'expression Integration Services ou en utilisant du code dans une tâche de script.

Créer un ID de package
Durant la mise à niveau de packages SQL Server 2005 Integration Services (SSIS) , créez
des ID de package pour les versions mises à niveau des packages.

Voir aussi
Vue d'ensemble de la sécurité (Integration Services)
Extension de packages avec des scripts
Packages Integration Services (SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un package est une collection organisée de connexions, d’éléments de flux de contrôle,


d’éléments de flux de données, de gestionnaires d’événements, de variables, de
paramètres et de configurations que vous assemblez à l’aide des outils de conception
graphiques de SQL Server Integration Services ou que vous créez programmatiquement.
Vous enregistrez le package terminé dans SQL Server, le magasin de packages SSIS , ou
le système de fichiers, ou vous pouvez déployer le projet ssISnoversion sur le serveur
SSIS . Le package est l'unité de travail qui est extraite, exécutée et enregistrée.

Lorsque vous créez un package, il s'agit d'un objet vide qui ne fait rien. Pour doter un
package de fonctionnalités, vous ajoutez à celui-ci un flux de contrôle et,
éventuellement un ou plusieurs flux de données.

Le schéma suivant illustre un package simple contenant un flux de contrôle avec une
tâche de flux de données, qui contient à son tour un flux de données.

Après avoir créé le package de base, vous pouvez l'enrichir en y ajoutant des
fonctionnalités avancées telles que la journalisation et des variables. Pour plus
d'informations, consultez la section relative aux objets qui étendent les fonctionnalités
des packages.

Vous pouvez ensuite configurer le package achevé en définissant les propriétés de


niveau package qui mettent en œuvre la sécurité, autorisent le redémarrage des
packages à partir de points de contrôle ou incorporent des transactions dans le flux de
travail des packages. Pour plus d'informations, consultez la section relative aux
propriétés qui prennent en charge les fonctionnalités étendues.
Contenu d’un package
Tâches et conteneurs (flux de contrôle). Un flux de contrôle comprend un ou plusieurs
conteneurs ou tâches qui s'exécutent quand le package s'exécute. Pour contrôler l'ordre
ou définir les conditions d'exécution des tâches et des conteneurs les uns à la suite des
autres dans le flux de contrôle du package, vous utilisez des contraintes de priorité afin
de connecter les tâches et les conteneurs dans le package. Un sous-ensemble de tâches
et de conteneurs peut également être regroupé et exécuté de façon répétée en tant
qu'unité dans le flux de contrôle du package. Pour plus d’informations, consultez
Control Flow.

Sources de données et destinations (flux de données). Un flux de données comprend


les sources et les destinations qui extraient et chargent les données, les transformations
qui modifient et étendent les données, ainsi que les chemins qui relient les sources, les
transformations et les destinations. Vous ne pouvez ajouter un flux de données à un
package que si le flux de contrôle du package comprend une tâche de flux de données.
La tâche de flux de données est l'exécutable qui, dans le package SSIS , crée, ordonne et
exécute le flux de données. Une instance distincte du moteur de flux de données est
ouverte pour chaque tâche de flux de données comprise dans un package. Pour plus
d'informations, consultez Data Flow Task et Data Flow.

Gestionnaires de connexions (connexions). En règle générale, un package comprend au


moins un gestionnaire de connexions. Un gestionnaire de connexions est un lien entre
un package et une source de données, qui définit la chaîne de connexion permettant
d'accéder aux données utilisées par les tâches, les transformations et les gestionnaires
d'événements du package. Integration Services dispose de types de connexion pour des
sources de données telles que les fichiers texte et XML, les bases de données
relationnelles, et les bases de données et les projets Analysis Services . Pour plus
d’informations, consultez Connexions Integration Services (SSIS).

Objets étendant les fonctionnalités des


packages
Les packages peuvent comprendre des objets supplémentaires qui offrent des
fonctionnalités avancées ou étendent les fonctionnalités existantes, telles que les
gestionnaires d'événements, les configurations, la journalisation et les variables.

Gestionnaires d'événements
Un gestionnaire d'événements est un flux de travail qui s'exécute en réponse aux
événements déclenchés par un package, une tâche ou un conteneur. Par exemple, vous
pouvez utiliser un gestionnaire d'événements pour vérifier l'espace disque lorsqu'un
événement se produit avant l'exécution ou si une erreur se produit, et envoyer à un
administrateur un message électronique indiquant l'espace disponible ou des
informations sur l'erreur. Un gestionnaire d'événements est construit comme un
package, avec un flux de contrôle et des flux de données facultatifs. Vous pouvez ajouter
des gestionnaires d'événements à des tâches ou à des conteneurs spécifiques dans le
package. Pour plus d’informations, consultez Gestionnaires d’événements Integration
Services (SSIS).

Configurations
Une configuration est un ensemble de paires propriété/valeur qui définit les propriétés
du package et ses tâches, conteneurs, variables, connexions et gestionnaires
d'événements lorsque le package s'exécute. Les configurations permettent de mettre à
jour les propriétés sans modifier le package. Lorsque le package est exécuté, les
informations de configuration sont chargées et mettent à jour les valeurs des propriétés.
Par exemple, une configuration peut mettre à jour la chaîne de connexion.

La configuration est enregistrée puis déployée avec le package lorsque celui-ci est
installé sur un autre ordinateur. Lorsque vous installez le package, vous pouvez mettre à
jour les valeurs de la configuration afin qu'il puisse être pris en charge dans un autre
environnement. Pour plus d’informations, consultez Créer des configurations de
package.

Journalisation et modules fournisseurs d'informations


Un journal est une collection d'informations relatives au package, qui sont rassemblées
lorsque celui-ci s'exécute. Par exemple, un journal peut indiquer l'heure de début et de
fin de l'exécution d'un package. Un module fournisseur d'informations définit le type de
destination et le format que le package et ses conteneurs et ses tâches peuvent utiliser
pour consigner les informations d'exécution. Les journaux sont associés à un package,
mais les tâches et les conteneurs figurant dans le package peuvent consigner des
informations dans n'importe quel journal de package. Integration Services comprend
une série de modules fournisseurs d’informations intégrés qui facilitent la journalisation.
Par exemple, Integration Services comprend des modules fournisseurs d'informations
pour les fichiers SQL Server et les fichiers texte. Vous pouvez également créer des
modules fournisseurs d'informations personnalisés et les utiliser pour la journalisation.
Pour plus d’informations, consultez Journalisation d’Integration Services (SSIS).
Variables
Integration Services prend en charge les variables système et les variables définies par
l’utilisateur. Les variables système fournissent des informations utiles sur les objets de
package lors de l'exécution, tandis que les variables définies par l'utilisateur prennent en
charge des scénarios personnalisés dans les packages. Vous pouvez utiliser les deux
types de variables dans les expressions, les scripts et les configurations.

Les variables de niveau package comprennent les variables système prédéfinies


disponibles pour un package et les variables définies par l'utilisateur et dont la portée
s'étend au package. Pour plus d’informations, consultez Variables Integration Services
(SSIS).

Paramètres
Integration Services vous permettent d'affecter des valeurs aux propriétés dans des
packages au moment de l'exécution du package. Vous pouvez créer des paramètres de
projet au niveau du projet et des paramètres de package au niveau du package. Les
paramètres du projet sont utilisés pour fournir une entrée externe que le projet reçoit à
un ou plusieurs packages du projet. L'utilisation de paramètres de package vous permet
de modifier l'exécution du package sans avoir à modifier et à redéployer le package.
Pour plus d’informations, consultez Paramètres Integration Services (SSIS).

Propriétés de package prenant en charge les


fonctionnalités étendues
L'objet de package peut être configuré de manière à prendre en charge des
fonctionnalités telles que le redémarrage du package aux points de contrôle, la
signature du package avec un certificat numérique, la définition du niveau de protection
du package et la sécurisation de l'intégrité des données à l'aide de transactions.

Redémarrage des packages


Le package comprend des propriétés de point de contrôle qui vous permettent de le
redémarrer en cas d'échec d'une ou plusieurs de ses tâches. Par exemple, si un package
possède deux tâches de flux de données qui mettent à jour deux tables différentes et
que la deuxième tâche échoue, le package peut être réexécuté sans qu'il soit nécessaire
de répéter la première tâche de flux de données. Le redémarrage d'un package peut
être source de gain de temps pour les packages dont l'exécution est longue. La
fonctionnalité de redémarrage vous permet de démarrer le package à partir de la tâche
défaillante sans devoir réexécuter l'ensemble du package. Pour plus d'informations,
consultez Redémarrer des packages à l'aide de points de contrôle.

Sécurisation des packages


Vous pouvez signer un package au moyen d'une signature numérique et le chiffrer à
l'aide d'un mot de passe ou d'une clé utilisateur. Une signature numérique authentifie la
source du package. Toutefois, vous devez également configurer Integration Services
pour vérifier la signature numérique lors du chargement du package. Pour plus
d’informations, consultez Identifier la source de packages à l’aide de signatures
numériques et Contrôle d’accès pour les données sensibles présentes dans les packages.

Prise en charge des transactions


La définition d'un attribut de transaction au package permet d'associer les tâches, les
conteneurs et les connexions du package à la transaction. Grâce aux attributs de
transaction, le package et ses éléments réussissent ou échouent en tant qu'unité. Les
packages peuvent également exécuter d'autres packages et inscrire d'autres packages
dans les transactions, ce qui vous permet d'exécuter plusieurs packages en tant qu'unité
de travail unique. Pour plus d’informations, consultez Transactions Integration Services.

Entrées de journal personnalisées disponibles


dans le package
Le tableau suivant répertorie les entrées de journal personnalisées pour les packages.
Pour plus d’informations, consultez Journalisation d’Integration Services (SSIS).

Entrée du Description
journal

PackageStart Indique que le package a commencé à s'exécuter.

Remarque : cette entrée de journal est automatiquement écrite dans le journal.


Vous ne pouvez pas l'exclure.

PackageEnd Indique que le package est terminé.

Remarque : cette entrée de journal est automatiquement écrite dans le journal.


Vous ne pouvez pas l'exclure.

Diagnostic Fournit des informations sur la configuration système qui affecte l'exécution du
package, notamment le nombre d'exécutables pouvant s'exécuter simultanément.
Définir les propriétés d’un package
Vous pouvez définir les propriétés dans la fenêtre Propriétés de SQL Server Data Tools
(SSDT) ou par programmation.

Pour plus d’informations sur la façon de définir ces propriétés à l’aide de SQL Server
Data Tools (SSDT), consultez Définir les propriétés d’un package.

Pour plus d’informations sur la définition par programmation de ces propriétés,


consultez Package.

Réutiliser un package existant en tant que


modèle
Les packages sont fréquemment utilisés comme modèles permettant de générer des
packages qui partagent des fonctionnalités de base. Vous construisez le package de
base, puis le copiez, ou vous pouvez préciser que le package est un modèle. Par
exemple, un package qui télécharge et copie des fichiers, puis extrait les données peut
inclure les tâches FTP et de système de fichiers dans une boucle Foreach qui énumère
les fichiers dans un dossier. Il peut également inclure des gestionnaires de connexions
de fichiers plats pour accéder aux données, ainsi que des sources de fichiers plats pour
extraire les données. La destination des données varie, et elle est ajoutée à chaque
nouveau package après sa copie à partir du package de base. Vous pouvez également
créer des packages, puis les utiliser comme modèles pour les nouveaux packages que
vous ajoutez à un projet Integration Services . Pour plus d'informations, consultez Create
Packages in SQL Server Data Tools.

Lors de la création initiale d'un package, par programmation ou à l'aide du concepteur


SSIS, un GUID est ajouté à sa propriété ID et un nom à sa propriété Name . Si vous créez
un nouveau package en copiant un package existant ou en utilisant un modèle de
package, le nom et le GUID sont également copiés. Cela peut causer un problème si
vous utilisez la journalisation, car le GUID et le nom du package sont écrits dans les
journaux pour identifier le package auquel les informations consignées appartiennent.
Par conséquent, vous devez mettre à jour le nom et le GUID des nouveaux packages
pour les différencier plus facilement du package à partir duquel ils ont été copiés et
entre eux dans les données du journal.

Pour modifier le GUID du package, vous régénérez un GUID dans la propriété ID de la


fenêtre Propriétés dans SQL Server Data Tools (SSDT). Pour modifier le nom du package,
vous pouvez mettre à jour la valeur de la propriété Name dans la fenêtre Propriétés.
Vous pouvez également utiliser l’invite de commandes dtutil ou mettre à jour le GUID et
le nom par programmation. Pour plus d’informations, consultez Définir les propriétés
d’un package et Utilitaire dtutil.

Tâches associées
Integration Services , SSIS met à votre disposition deux outils graphiques : le concepteur
SQL Server et l'Assistant Importation et Exportation SSIS . Consultez les rubriques
suivantes pour plus de détails.

Importer et exporter des données avec l’Assistant Importation et Exportation SQL


Server

Créer des packages dans les outils de données SQL Server

Voir Génération de packages par programme dans le Guide du développeur.


Créer des packages dans les outils de
données SQL Server
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Dans SQL Server Data Tools (SSDT), vous pouvez créer un nouveau package à l'aide de
l'une des méthodes suivantes :

Utiliser le modèle de package inclus dans Integration Services .

Utiliser un modèle personnalisé

Pour utiliser des packages personnalisés comme modèles pour la création de


nouveaux packages, il vous suffit de les copier dans le dossier
DataTransformationItems. Par défaut, ce dossier se trouve dans C:\Program
Files\Microsoft Visual Studio
10.0\Common7\IDE\PrivateAssemblies\ProjectItems\DataTransformationProject.

Copier un package existant.

Si des packages existants incluent des fonctionnalités que vous souhaitez réutiliser,
vous pouvez construire le flux de contrôle et les flux de données dans le package
plus rapidement en copiant et en collant des objets à partir de nouveaux packages.
Pour plus d’informations sur le copier et coller dans des projets Integration
Services , consultez Réutiliser des objets de packages.

Si vous créez un nouveau package en copiant un package existant ou en utilisant


un package personnalisé comme modèle, le nom et le GUID du package existant
sont copiés également. Vous devez mettre à jour le nom et le GUID du nouveau
package pour le différencier plus facilement du package à partir duquel il a été
copié. Par exemple, si des packages ont le même GUID, il est plus difficile
d'identifier le package auquel appartiennent les données de journal. Vous pouvez
régénérer le GUID dans la propriété ID et mettre à jour la valeur de la propriété
Name à l’aide de la fenêtre Propriétés dans SQL Server Data Tools (SSDT). Pour
plus d’informations, consultez Définir les propriétés d’un package et Utilitaire
dtutil.

Utiliser un package personnalisé que vous avez désigné comme modèle.

Exécuter l'Assistant Importation et Exportation SQL Server


L'Assistant Importation et Exportation SQL Server crée un package complet pour
une opération simple d'importation ou d'exportation. Cet Assistant configure les
connexions, la source et la destination, et ajoute toutes les transformations de
données requises pour vous permettre d'exécuter l'opération d'importation ou
d'exportation immédiatement. Vous pouvez enregistrer, le cas échéant, le package
pour l'exécuter de nouveau ultérieurement ou pour l'affiner et l'améliorer dans SQL
Server Data Tools. Toutefois, si vous enregistrez le package, vous devez l'ajouter à
un projet Integration Services existant avant de pouvoir le modifier ou l'exécuter
dans SQL Server Data Tools.

Les packages que vous créez dans SQL Server Data Tools (SSDT) à l'aide du concepteur
SSIS sont enregistrés dans le système de fichiers. Pour enregistrer un package dans SQL
Server ou dans le magasin de packages, vous devez enregistrer une copie du package.
Pour plus d’informations, consultez Enregistrer une copie d’un package.

Pour obtenir une vidéo qui montre comment créer un package de base à l’aide du
modèle de package par défaut, consultez Création d’un package de base (Vidéo liée à
SQL Server).

Obtenir SQL Server Data Tools


Pour installer SQL Server Data Tools (SSDT), consultez Télécharger SQL Server Data Tools
(SSDT).

Créer un package dans SQL Server Data Tools à


l’aide du modèle de package
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services dans
lequel vous souhaitez créer un package.

2. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le dossier


Packages SSIS , puis cliquez sur Nouveau package SSIS.

3. Si vous le souhaitez, ajoutez des tâches de flux de contrôle, des tâches de flux de
données et des gestionnaires d'événements au package. Pour plus d’informations,
consultez Flux de contrôle, Flux de données et Gestionnaires d’événements
Integration Services (SSIS).

4. Dans le menu Fichier , cliquez sur Enregistrer les éléments sélectionnés pour
enregistrer le nouveau package.
7 Notes

Vous pouvez enregistrer un package vide.

Choisir la version cible d’un projet et de ses


packages
1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur un projet
Integration Services, puis sélectionnez Propriétés pour ouvrir les pages de
propriétés du projet.

2. Sous l’onglet Général de Propriétés de configuration, sélectionnez la propriété


TargetServerVersion, puis choisissez SQL Server 2016, SQL Server 2014 ou SQL
Server 2012.

Vous pouvez créer, gérer et exécuter des packages qui ciblent SQL Server 2016, SQL
Server 2014 ou SQL Server 2012.
Ajouter une copie des packages
existants
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Ajouter une copie des packages existants pour ajouter à
un projet SQL Serverune copie d'un package stocké dans Integration Services , le
système de fichiers ou le magasin de packages SSIS.

Options
Emplacement du package
Sélectionnez le type d'emplacement de stockage à partir duquel copier le package.

Serveur
En cas de copie à partir de SQL Server ou du magasin de packages SSIS, tapez le nom
d'un serveur ou sélectionnez-en un dans la liste.

Type d’authentification
En cas de copie à partir de SQL Server, sélectionnez un type d'authentification.

Nom d'utilisateur
Si vous utilisez l’authentification SQL Server , entrez un nom d’utilisateur.

Mot de passe
Si vous utilisez l’authentification SQL Server , entrez un mot de passe.

Chemin d'accès au package


Tapez le chemin du package ou cliquez sur le bouton Parcourir (...) pour rechercher le
package à copier.

Voir aussi
Enregistrer une copie du package
Enregistrer des packages
Service Integration Services (Service SSIS)
Définir les propriétés d'un package
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Lorsque vous créez un package dans SQL Server Data Tools (SSDT) à l'aide de l'interface
graphique fournie par Integration Services , vous définissez les propriétés de l'objet de
package dans la fenêtre Propriétés.

La fenêtre Propriétés affiche une liste de propriétés triées par catégorie et par ordre
alphabétique. Pour réorganiser la fenêtre Propriétés par catégorie, cliquez sur l'icône
Catégories.

Dans cette organisation, la fenêtre Propriétés regroupe les propriétés dans les
catégories suivantes :

Points de contrôle

Exécution

Valeur d'exécution forcée

Identification

Divers

Sécurité

Transactions

Version

Pour plus d’informations sur les propriétés d’un package que vous ne pouvez pas définir
dans la fenêtre Propriétés , consultez Package.

Pour définir les propriétés d'un package dans la fenêtre


Propriétés
Définir les propriétés d’un package

Propriétés par catégorie


Les tableaux qui suivent énumèrent les propriétés d'un package par catégorie.
Points de contrôle
Vous pouvez utiliser les propriétés de cette catégorie pour redémarrer le package à
partir d'un point d'échec dans le flux de contrôle du package, au lieu de réexécuter le
package depuis le début de son flux de contrôle. Pour plus d’informations, consultez
Restart Packages by Using Checkpoints.

Propriété Description

CheckpointFileName Nom du fichier qui capture les informations de point de contrôle


permettant à un package de redémarrer. Une fois le package terminé avec
succès, le fichier est supprimé.

CheckpointUsage Indique à quel moment un package peut être redémarré. Ces valeurs sont
Never, IfExistset Always. La valeur par défaut est Neverpour indiquer que
le package ne peut pas être redémarré. Pour plus d’informations,
consultez DTSCheckpointUsage.

SaveCheckpoints Indique si les points de contrôle sont écrits dans le fichier de point de
contrôle lors de l'exécution du package. La valeur par défaut de cette
propriété est False.

7 Notes

L’option /CheckPointing on de dtexec revient à définir la propriété


SaveCheckpoints du package sur True, et la propriété CheckpointUsage sur Always.
Pour plus d'informations, consultez Utilitaire dtexec.

Exécution
Les propriétés de cette catégorie permettent de configurer le comportement de l'objet
de package au moment de l'exécution.

Propriété Description

DelayValidation Indique si la validation du package est retardée jusqu'à l'exécution


du package. La valeur par défaut de cette propriété est False.

Disable Indique si le package est désactivé. La valeur par défaut de cette


propriété est False.

DisableEventHandlers Indique si les gestionnaires d'événements du package sont


exécutés. La valeur par défaut de cette propriété est False.
Propriété Description

FailPackageOnFailure Indique si le package échoue en cas d'erreur dans un composant


du package. La seule valeur possible pour cette propriété est False.

FailParentOnError Indique si le conteneur parent échoue en cas d'erreur dans un


conteneur enfant. La valeur par défaut de cette propriété est False.

MaxConcurrentExecutables Nombre de fichiers exécutables pouvant être exécutés


simultanément par le package. La valeur par défaut de cette
propriété est -1, ce qui indique qu’aucune limite n’est appliquée.

MaximumErrorCount Nombre maximal d'erreurs pouvant se produire avant arrêt de


l'exécution d'un package. La valeur par défaut de cette propriété
est 1.

PackagePriorityClass Classe de priorité du thread Win32 du package. Cette propriété


peut prendre les valeurs Default, AboveNormal, Normal,
BelowNormalet Idle. La valeur par défaut de cette propriété est
Default. Pour plus d’informations, consultez DTSPriorityClass.

Valeur d'exécution forcée


Les propriétés de cette catégorie permettent de configurer une valeur d'exécution
facultative pour le package.

Propriété Description

ForcedExecutionValue Si ForceExecutionValue a la valeur True, valeur indiquant la valeur


d’exécution facultative retournée par le package. La valeur par
défaut de cette propriété est 0.

ForcedExecutionValueType Type de données de ForcedExecutionValue. La valeur par défaut de


cette propriété est Int32.

ForceExecutionValue Valeur booléenne qui indique si la valeur d'exécution facultative du


conteneur doit être forcée de contenir une valeur particulière. La
valeur par défaut de cette propriété est False.

Identification
Les propriétés de cette catégorie fournissent des informations telles que l'identificateur
unique et le nom du package.

Propriété Description

CreationDate Date de création du package.


Propriété Description

CreatorComputerName Nom de l'ordinateur sur lequel le package a été créé.

CreatorName Nom de la personne qui a créé le package.

Description Description des fonctionnalités du package.

Identifiant Identificateur global unique du package, affecté lors de la création du


package. Cette propriété est en lecture seule. Pour générer une
nouvelle valeur aléatoire pour la propriété ID, sélectionnez <Générer
un nouvel ID> dans la liste déroulante.

Nom Nom du package.

PackageType Type de package. Les valeurs possibles sont Default, DTSDesigner,


DTSDesigner100, DTSWizard, SQLDBMaintet SQLReplication. La valeur
par défaut de cette propriété est Default. Pour plus d’informations,
consultez DTSPackageType.

Divers
Les propriétés de cette catégorie sont utilisées pour accéder aux configurations et aux
expressions utilisées par un package et pour fournir des informations sur les paramètres
régionaux et le mode de journalisation du package. Pour plus d’informations, consultez
Expressions de propriété dans des packages.

Propriété Description

Configurations Ensemble de configurations utilisées par le package. Cliquez


sur le bouton Parcourir (...) pour afficher et configurer les
configurations du package.

Expressions Cliquez sur le bouton Parcourir (...) pour créer des expressions
pour les propriétés du package.

Remarque : vous pouvez créer des expressions pour toutes les


propriétés du package incluses dans le modèle d’objet, et non
seulement pour les propriétés énumérées dans la fenêtre
Propriétés.

Pour plus d’informations, consultez Expressions de propriété


dans des packages.

Pour afficher les expressions de propriétés existantes,


développez Expressions. Cliquez sur le bouton (...) dans la
zone de texte d’une expression pour modifier et évaluer une
expression.
Propriété Description

ForceExecutionResult Résultat d'exécution du package. Cette propriété peut


prendre les valeurs None, Success, Failureet Completion. La
valeur par défaut de cette propriété est None. Pour plus
d’informations, consultez
T:Microsoft.SqlServer.Dts.Runtime.DTSForcedExecResult.

LocaleId Paramètre régional Microsoft Win32. La valeur par défaut de


cette propriété est le paramètre régional du système
d'exploitation sur l'ordinateur local.

LoggingMode Valeur qui indique le comportement de journalisation du


package. Ces valeurs sont Disabled, Enabledet
UseParentSetting. La valeur par défaut de cette propriété est
UseParentSetting. Pour plus d’informations, consultez
DTSLoggingMode.

OfflineMode Indique si le package est en mode hors connexion. Cette


propriété est en lecture seule. Elle est définie au niveau du
projet. Normalement, le concepteur SSIS tente de se
connecter à chaque source de données utilisée par votre
package pour valider les métadonnées associées aux sources
et aux destinations. Vous pouvez activer l'option Travailler
hors connexion du menu SSIS , avant même d'ouvrir un
package, pour empêcher ces tentatives de connexion et les
erreurs de validation qui en résultent lorsque les sources de
données ne sont pas disponibles. Vous pouvez également
activer l’option Travailler hors connexion pour accélérer les
opérations exécutées dans le concepteur, puis la désactiver
dès que vous souhaitez valider votre package.

SuppressConfigurationWarnings Indique sur les avertissements générés par les configurations


sont supprimés. La valeur par défaut de cette propriété est
False.

UpdateObjects Indique si le package est mis à jour pour utiliser des versions
plus récentes des objets qu'il contient, si des versions plus
récentes sont disponibles. Par exemple, si cette propriété a la
valeur True, un package incluant une tâche d’insertion en bloc
est mis à jour pour utiliser la version plus récente de cette
tâche fournie par Integration Services . La valeur par défaut de
cette propriété est False.

Sécurité
Les propriétés de cette catégorie sont utilisées pour définir le niveau de protection du
package. Pour plus d'informations, consultez Access Control for Sensitive Data in
Packages.

Propriété Description

PackagePassword Mot de passe pour les niveaux de protection de package


(EncryptSensitiveWithPassword et EncryptAllWithPassword) qui nécessitent
des mots de passe.

ProtectionLevel Niveau de protection du package. Cette propriété peut prendre les valeurs
DontSaveSensitive, EncryptSensitiveWithUserKey,
EncryptSensitiveWithPassword, EncryptAllWithPasswordet ServerStorage.
La valeur par défaut de cette propriété est EncryptSensitiveWithUserKey.
Pour plus d’informations, consultez DTSProtectionLevel.

Transactions
Les propriétés de cette catégorie permettent de configurer le niveau d'isolement et
l'option de transaction du package. Pour plus d’informations, consultez Transactions
Integration Services.

Propriété Description
Propriété Description

IsolationLevel Niveau d'isolement de la transaction sur package. Cette propriété peut


prendre les valeurs Unspecified, Chaos, ReadUncommitted,
ReadCommitted, RepeatableRead, Serializableet Snapshot. La valeur par
défaut de cette propriété est Serializable.

Remarque : la valeur Snapshot de la propriété IsolationLevel est


incompatible avec les transactions de package. Cependant, vous ne pouvez
pas utiliser la propriété IsolationLevel pour définir le niveau d'isolation des
transactions de package pour Shapshot. Utilisez une requête SQL pour
définir les transactions de package à Snapshot. Pour plus d’informations,
consultez SET TRANSACTION ISOLATION LEVEL (Transact-SQL).

Le système applique la propriété IsolationLevel aux transactions de package


uniquement lorsque la propriété TransactionOption a la valeur Required.

La valeur de la propriété IsolationLevel demandée par un conteneur enfant


est ignorée lorsque les conditions suivantes sont remplies :
La valeur de la propriété TransactionOption du conteneur enfant est
Supported.
Le conteneur enfant rejoint la transaction d'un conteneur parent.

La valeur de la propriété IsolationLevel demandée par le conteneur est


respectée uniquement lorsque le conteneur lance une nouvelle transaction.
Un conteneur lance une nouvelle transaction lorsque les conditions
suivantes sont remplies :
La valeur de la propriété TransactionOption du conteneur est Required.
Le parent n'a pas déjà démarré de transaction.

Pour plus d’informations, consultez IsolationLevel.

TransactionOption Participation transactionnelle du package. Cette propriété peut prendre les


valeurs NotSupported, Supportedet Required. La valeur par défaut de cette
propriété est Supported. Pour plus d’informations, consultez
DTSTransactionOption.

Version
Les propriétés de cette catégorie fournissent des informations sur la version de l'objet
de package.

Propriété Description

VersionBuild Numéro de version de la build du package.


Propriété Description

VersionComments Commentaires sur la version du package.

VersionGUID Identificateur global unique de la version du package. Cette propriété est en


lecture seule.

VersionMajor Dernière version majeure du package.

VersionMinor Dernière version mineure du package.

Définir les propriétés d’un package dans la


fenêtre Propriétés
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package à configurer.

2. Dans l’Explorateur de solutions, double-cliquez sur le package pour l’ouvrir dans


le concepteur SSIS , ou cliquez avec le bouton droit et sélectionnez Concepteur de
vues.

3. Cliquez sur l’onglet Flux de contrôle , puis effectuez l’une des opérations suivantes
:

Cliquez avec le bouton droit n’importe où dans l’arrière-plan de la surface de


dessin du flux de contrôle, puis cliquez sur Propriétés.

Dans le menu Affichage , cliquez sur Fenêtre Propriétés.

4. Modifiez les propriétés du package dans la fenêtre Propriétés .

5. Pour enregistrer le package mis à jour, dans le menu Fichier , cliquez sur
Enregistrer les éléments sélectionnés .
Afficher des objets de packages
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Dans le concepteur SSIS, l'onglet Explorateur de package fournit un affichage Explorer


du package. Cet affichage reflète la hiérarchie de conteneur de l'architecture Integration
Services. Le conteneur de packages est situé en haut de la hiérarchie et vous pouvez
développer le package pour afficher les connexions, les exécutables, les gestionnaires
d'événements, les fournisseurs d'informations, les contraintes de précédence et les
variables du package.

Les exécutables, qui sont les conteneurs et les tâches du package, peuvent inclure des
gestionnaires d'événements, des contraintes de précédence et des variables. Integration
Services prend en charge une hiérarchie imbriquée de conteneurs et les conteneurs de
boucles For, de boucles Foreach et de séquences peuvent inclure d'autres exécutables.

Si un package contient un flux de données, l' Explorateur de package répertorie la tâche


de flux de données et inclut un dossier Composants qui répertorie les composants du
flux de données.

À partir de l'onglet Explorateur de package , vous pouvez supprimer des objets d'un
package et accéder à la fenêtre Propriétés afin d'afficher les propriétés des objets.

Le schéma suivant illustre l'arborescence d'un package simple.

Afficher la structure et le contenu d’un package


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package à afficher dans Explorer de package.
2. Cliquez sur l'onglet Explorateur de package .

3. Pour afficher le contenu des dossiers Variables, Contraintes de précédence,


Gestionnaires d'événements, Gestionnaires de connexions, Modules fournisseurs
d'informationsou Exécutables , développez chaque dossier.

4. Selon la structure du package, développez les dossiers de niveau inférieur.

Afficher les propriétés d’un objet de package


Cliquez avec le bouton droit sur un objet, puis cliquez sur Propriétés pour ouvrir la
fenêtre Propriétés .

Supprimer un objet d’un package


Cliquez avec le bouton droit sur un objet, puis cliquez sur Supprimer.

Voir aussi
Tâches Integration Services
Conteneurs Integration Services
Contraintes de précédence
Variables Integration Services (SSIS)
Gestionnaires d'événements Integration Services (SSIS)
Journalisation d'Integration Services (SSIS)
Copier un package dans les outils de
données SQL Server
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette rubrique explique comment créer un package Integration Services en copiant un


package existant, et comment mettre à jour les propriétés Name et GUID du nouveau
package.

Pour copier un package


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services qui
contient le package que vous voulez copier.

2. Dans l'Explorateur de solutions, double-cliquez sur le package.

3. Vérifiez soit que le package à copier est sélectionné dans l'Explorateur de solutions,
soit que l'onglet du concepteur SSIS qui contient le package est l'onglet actif.

4. Dans le menu Fichier, cliquez sur Enregistrer <nom_package> sous.

7 Notes

Le package doit être ouvert dans le concepteur SSIS pour que l’option
Enregistrer sous apparaisse dans le menu Fichier .

5. Le cas échéant, accédez à un autre dossier.

6. Mettez à jour le nom du fichier de package. Veillez à conserver l'extension de


fichier .dtsx.

7. Cliquez sur Enregistrer.

8. À l'invite, déterminez si vous voulez mettre à jour le nom de l'objet de package afin
qu'il corresponde au nom de fichier. Si vous cliquez sur Oui, la propriété Name du
package est mise à jour. Le nouveau package est ajouté au projet Integration
Services et ouvert dans le concepteur SSIS .

9. Le cas échéant, cliquez sur l’arrière-plan de l’onglet Flux de contrôle , puis cliquez
sur Propriétés.
10. Dans la fenêtre Propriétés, cliquez sur la valeur de la propriété ID, puis cliquez sur
<Générer un nouvel ID> dans la liste déroulante.

11. Dans le menu Fichier , cliquez sur Enregistrer les éléments sélectionnés pour
enregistrer le nouveau package.

Voir aussi
Enregistrer une copie d'un package
Créer des packages dans les outils de données SQL Server
Packages Integration Services (SSIS)
Copier des objets de packages
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette rubrique indique comment copier des éléments de flux de contrôle, des éléments
de flux de données, ainsi que des gestionnaires de connexions dans un package ou
entre des packages.

Pour copier des éléments de flux de contrôle et de


données
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services qui
contient les packages que vous voulez utiliser.

2. Dans l'Explorateur de solutions, double-cliquez sur les packages entre lesquels


vous souhaitez effectuer une copie.

3. Dans le concepteur SSIS , cliquez sur l’onglet du package qui contient les éléments
à copier, puis cliquez sur l’onglet Flux de contrôle, Flux de donnéesou
Gestionnaires d’événements .

4. Sélectionnez les éléments de flux de contrôle ou de flux de données à copier. Vous


pouvez sélectionner des éléments un à la fois en appuyant sur la touche Maj et en
cliquant sur l'élément, ou bien sélectionner des éléments en tant que groupe en
faisant glisser le pointeur sur les éléments à sélectionner.

) Important

Les contraintes de précédence et les chemins d'accès qui connectent des


éléments ne sont pas sélectionnés automatiquement lorsque vous
sélectionnez les deux éléments qu'ils connectent. Pour copier un flux de travail
ordonné (segment d’un flux de contrôle ou d’un flux de données), veillez à
copier également les contraintes de priorité et les chemins d’accès.

5. Cliquez avec le bouton droit sur un élément sélectionné, puis cliquez sur Copier.

6. Dans le cas de copie d'éléments dans un package différent, cliquez sur le package
de destination de la copie, puis cliquez sur l'onglet approprié pour le type
d'élément.
) Important

Vous ne pouvez pas copier un flux de données dans un package tant que le
package ne contient pas au moins une tâche de flux de données.

7. Cliquez avec le bouton droit, puis cliquez sur Coller.

Pour copier des gestionnaires de connexions


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services qui
contient le package que vous voulez utiliser.

2. Dans l'Explorateur de solutions, double-cliquez sur le package.

3. Dans le concepteur SSIS , cliquez sur l’onglet Flux de contrôle, Flux de donnéesou
Gestionnaire d’événements .

4. Dans la zone Gestionnaires de connexions , cliquez avec le bouton droit sur le


gestionnaire de connexions, puis cliquez sur Copier. Vous ne pouvez copier qu'un
seul gestionnaire de connexions à la fois.

5. Si vous copiez des éléments dans un package différent, cliquez sur le package de
destination de la copie, puis cliquez sur l’onglet Flux de contrôle, Flux de
donnéesou Gestionnaire d’événements .

6. Cliquez avec le bouton droit sur Gestionnaires de connexions , puis cliquez sur
Coller.

Voir aussi
Flux de contrôle
Flux de données
Connexions Integration Services (SSIS)
Copier des éléments de projet
Enregistrer des packages
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Dans SQL Server Data Tools (SSDT), vous créez des packages à l’aide du concepteur SSIS
et vous les enregistrez dans le système de fichiers sous forme de fichiers XML (fichiers
.dtsx). Vous pouvez également enregistrer des copies du fichier XML des packages dans
la base de données msdb dans SQL Server ou dans le magasin de packages. Le magasin
de packages représente les dossiers de l’emplacement du système de fichiers gérés par
le service Integration Services.

Si vous enregistrez un package dans le système de fichiers, vous pouvez utiliser par la
suite le service Integration Services pour importer le package dans SQL Server ou dans
le magasin de packages. Pour plus d’informations, consultez Service Integration Services
(Service SSIS).

Vous pouvez également utiliser un utilitaire d’invite de commandes, dtutil, pour copier
un package entre le système de fichiers et msdb. Pour plus d’informations, consultez
dtutil Utility.

Enregistrer un package dans le système de


fichiers
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package à enregistrer dans un fichier.

2. Dans l'Explorateur de solutions, cliquez sur le package à enregistrer.

3. Dans le menu Fichier , cliquez sur Enregistrer les éléments sélectionnés.

7 Notes

Vous pouvez vérifier le chemin d'accès et le nom de fichier dans lequel le


package a été enregistré dans la fenêtre Propriétés.

Enregistrer une copie d'un package


Cette section décrit comment enregistrer une copie d’un package dans le système de
fichiers, dans le magasin de packages ou dans la base de données msdb dans Microsoft
SQL Server. Lorsque vous spécifiez un emplacement dans lequel enregistrer la copie du
package, vous pouvez également mettre à jour le nom de celui-ci.

Le magasin de packages peut comprendre à la fois la base de données msdb et les


dossiers du système de fichiers, uniquement la base de données msdb, ou uniquement
les dossiers du système de fichiers. Dans la base de données msdb, les packages sont
enregistrés dans la table sysssispackages . Cette table comprend une colonne folderid
qui identifie le dossier logique auquel le package appartient. Les dossiers logiques
permettent de regrouper les packages enregistrés dans la base de données msdb , à
l’image des dossiers du système de fichiers qui permettent de regrouper les packages
enregistrés dans le système de fichiers. Les lignes de la table sysssispackagefolders de
la base de données msdb définissent les dossiers.

Si la base de données msdb n’est pas définie dans le cadre du magasin de packages,
vous pouvez néanmoins associer les packages aux dossiers logiques existants en
sélectionnant SQL Server dans l’option Chemin d’accès au package .

7 Notes

Pour pouvoir enregistrer une copie du package, le package doit être ouvert dans le
Concepteur SSIS.

Pour enregistrer une copie d'un package


1. Dans l'Explorateur de solutions, double-cliquez sur le package dont vous voulez
enregistrer une copie.

2. Dans le menu Fichier, cliquez sur Enregistrer une copie de <fichier de package>
sous .

3. Dans la boîte de dialogue Enregistrer une copie du package, sélectionnez


l’emplacement d’un package dans la liste Emplacement du package. Les options
suivantes sont disponibles :

SQL Server
Système de fichiers
Magasin de packages SSIS

4. Si l’emplacement est SQL Server ou Magasin de packages SSIS, indiquez un nom


de serveur.
5. Si vous enregistrez une copie du package dans SQL Server, indiquez le type
d'authentification et, si vous utilisez l'authentification SQL Server, indiquez un nom
d'utilisateur et un mot de passe.

6. Pour spécifier le chemin du package, tapez le chemin ou cliquez sur le bouton


Parcourir (...) pour indiquer l’emplacement du package. Le nom par défaut du
package est Package. Le cas échéant, attribuez au package un nom qui réponde
mieux à vos besoins.

Si vous sélectionnez SQL Server dans l’option Chemin d’accès au package , le


chemin du package comprend les dossiers logiques enregistrés dans la base de
données msdb et le nom du package. Par exemple, si le package
DownloadMonthlyData est associé au sous-dossier Finance du dossier MSDB (nom
par défaut du dossier logique racine dans la base de données msdb), le chemin du
package nommé DownloadMonthlyData est
MSDB/Finance/DownloadMonthlyData.

Si vous sélectionnez Magasin de packages SSIS dans l’option Chemin d’accès au


package , le chemin du package comprend le dossier géré par le service
Integration Services. Par exemple, si le package UpdateDeductions se trouve dans
le sous-dossier HumanResources du dossier de système de fichiers géré par le
service, le chemin d'accès au package est /File
System/HumanResources/UpdateDeductions ; de même, si le package
PostResumes est associé au sous-dossier HumanResources du dossier MSDB, le
chemin d'accès au package est MSDB/HumanResources/PostResumes.

Si vous sélectionnez Système de fichiers dans l’option Chemin d’accès au package


, le chemin du package se compose de l’emplacement dans le système de fichiers
et du nom de fichier. Par exemple, si le nom du package est UpdateDemographics,
le chemin d'accès au package est
C:\HumanResources\Quarterly\UpdateDemographics.dtsx.

7. Vérifiez le niveau de protection du package.

8. Si vous le souhaitez, cliquez sur le bouton (...) en regard de la zone Niveau de


protection pour changer le niveau de protection.

Dans la boîte de dialogue Niveau de protection du package , sélectionnez un


niveau de protection différent.

Cliquez sur OK.

9. Cliquez sur OK.


Enregistrer un package en tant que modèle de
package
Cette section montre comment désigner et utiliser des packages personnalisés comme
modèles quand vous créez des packages Integration Services dans SQL Server Data
Tools (SSDT). Par défaut, Integration Services utilise un modèle de package qui crée un
package vide lorsque vous ajoutez un nouveau package à un projet Integration Services.
Vous ne pouvez pas remplacer ce modèle par défaut, mais vous pouvez en ajouter de
nouveaux.

Vous pouvez désigner plusieurs packages à utiliser comme modèles. Avant de pouvoir
implémenter de nouveaux packages personnalisés comme modèles, vous devez créer
les packages.

Lorsque vous créez un package en utilisant des packages personnalisés comme


modèles, les nouveaux packages portent le même nom et le même GUID que le modèle.
Pour différencier les packages, vous devez mettre à jour la valeur de la propriété Name
et générer un nouveau GUID pour la propriété ID . Pour plus d’informations, consultez
Créer des packages dans les outils de données SQL Server et Définir les propriétés d’un
package.

Pour désigner un package personnalisé comme modèle


de package
1. Dans le système de fichiers, localisez le package que vous souhaitez utiliser comme
modèle.

2. Copiez le package dans le dossier DataTransformationItems. Par défaut ce dossier


se trouve dans C:\Program Files\Microsoft Visual Studio
9.0\Common7\IDE\PrivateAssemblies\ProjectItems\DataTransformationProject.

3. Recommencez les étapes 1 et 2 pour chaque package que vous souhaitez utiliser
comme modèle.

Pour utiliser un package personnalisé comme modèle de


package
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services dans
lequel vous souhaitez créer un package.
2. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, pointez
sur Ajouter, puis cliquez sur Nouvel élément.

3. Dans la boîte de dialogue Ajouter un nouvel élément -<nom_projet>, cliquez sur


le package que vous voulez utiliser comme modèle.

La liste de modèles inclut le modèle de package par défaut nommé Nouveau


package SSIS. L'icône de package identifie les modèles pouvant être utilisés
comme modèles de packages.

4. Cliquez sur Ajouter.


Réutiliser un flux de contrôle sur des
packages à l’aide de composants de
package de flux de contrôle
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Enregistrez une tâche ou un conteneur de flux de contrôle couramment utilisés dans un


fichier de pièce (fichier « .dtsxp ») autonome, et réutilisez celui-ci plusieurs fois dans un
ou plusieurs packages à l’aide de composants de package de flux de contrôle. Cette
possibilité de réutilisation facilite la conception et la gestion des packages SSIS.

Créer un composant de package de flux de


contrôle
Pour créer un composant de package de flux contrôle, dans l’Explorateur de solutions,
développez le dossier Package Parts (Composants de package). Cliquez avec le bouton
droit sur Control Flow (Flux de contrôle), puis sélectionnez New Control Flow Package
Part(Nouveau composant de package de flux de contrôle).

Un nouveau fichier de composant portant l’extension « .dtsxp » est créé dans le dossier
Package Parts | Control Flow (Composants de Package | Flux de contrôle). En même
temps, un nouvel élément du même nom est ajouté à la boîte à outils SSIS. (L’élément
de boîte à outils est visible uniquement pendant que vous avez un projet contenant le
composants ouvert dans Visual Studio.)
Concevoir un composant de package de flux de
contrôle
Pour ouvrir l’éditeur de composant de package, double-cliquez sur le fichier du
composant dans l’Explorateur de solutions. Vous pouvez concevoir le composant de la
même manière qu’un package.
Vérifiez que les composants du flux de contrôle présentent les limitations suivantes.

Un composant ne peut avoir qu’une seule tâche ou un seul conteneur de niveau


supérieur. Si vous voulez inclure plusieurs tâches ou conteneurs, placez-les tous
dans un conteneur de séquences unique.

Vous ne pouvez pas exécuter ou déboguer un composant directement dans le


concepteur.

Ajouter un composant de package de flux


contrôle existant à un package
Vous pouvez réutiliser des composants enregistrés dans le projet Integration Services en
cours ou dans un autre projet.

Pour réutiliser un composant faisant partie du projet actuel, glissez-déplacez le


composant à partir de la boîte à outils.

Pour réutiliser un composant faisant partie d’un autre projet, utilisez la commande
Add Existing Control Flow Package Part (Ajouter un composant de package de
flux de contrôle existant).

Glisser-déplacer un composant de package de flux de


contrôle
Pour réutiliser un composant dans un projet, glissez-déplacez simplement l’élément
composant comme tout autre conteneur ou tâche à partir de la boîte à outils. Vous
pouvez glisser-déplacer la partie vers un package plusieurs fois afin de réutiliser la
logique à plusieurs emplacements du package. Recourez à cette méthode pour réutiliser
un composant faisant partie du projet actuel.

Lorsque vous enregistrez le package, le concepteur SSIS vérifie s’il existe des instances
du composant dans le package.
Si le package contient des instances du composant, le concepteur génère un
nouveau .dtsx.designer contenant toutes les informations relatives au composant.

Si le package n’utilise pas de composant, le concepteur supprime tout fichier


.dtsx.designer créé précédemment pour le package (autrement dit, tout fichier
.dtsx.designer portant le même nom que le package).

Ajouter une copie d’un composant de package de flux


contrôle existant ou une référence à un composant
existant
Pour ajouter à un package une copie d’un composant existant dans le système de
fichiers, dans l’Explorateur de solutions, développez le dossier Package Parts
(Composants de package). Cliquez avec le bouton droit sur Control Flow (Flux de
contrôle), puis sélectionnez Add Existing Control Flow Package Part(Ajouter un
composant de package de flux de contrôle existant).
Options

Chemin d’accès au composant de package


Tapez le chemin de fichier du composant, ou cliquez sur le bouton Parcourir (...) pour
localiser le fichier de composant à copier ou à référencer.

Ajouter en tant que référence

Si le composant est sélectionné, il est ajouté au projet Integration Services en tant


que référence. Sélectionnez cette option si vous voulez référencer une copie
unique d’un fichier de partie dans plusieurs projets Integration Services.

Si cette option est désactivée, une copie du fichier de partie est ajoutée au projet.

Configurer un composant de package de flux


de contrôle
Pour configurer des parties de package de flux de contrôle après les avoir ajoutés au
flux de contrôle d’un package, utilisez la boîte de dialogue Configuration de partie de
package.

Pour ouvrir la boîte de dialogue Package Part Configuration


(Configuration de composant de package)

1. Pour configurer une instance de composant, double-cliquez dessus dans le flux de


contrôle. Vous pouvez également cliquer avec le bouton droit sur l’instance de
composant, puis sélectionner Modifier. La boîte de dialogue Package Part
Configuration (Configuration de composant de package).

2. Configurez les propriétés et les gestionnaires de connexion pour l’instance de


composant.

Onglet Propriétés
Utilisez l’onglet Propriétés de la boîte de dialogue Configuration de partie de package.
La hiérarchie d’arborescence dans le volet gauche répertorie toutes les propriétés
configurables de l’instance de composant.

Si elle est désactivée, la propriété n’est pas configurée dans l’instance de


composant. L’instance de composant utilise la valeur par défaut de la propriété,
qui est définie dans le composant de package de flux de contrôle.

Si elle est sélectionnée, la valeur que vous entrez ou sélectionnez remplace la


valeur par défaut.

La table dans le volet droit répertorie les propriétés à configurer.

Property Path(Chemin d’accès à la propriété). Chemin d’accès à la propriété.

Property Type(Type de propriété). Type de données de la propriété.

Valeur. Valeur configurée. Cette valeur remplace la valeur par défaut.

Onglet Connection Managers (Gestionnaires de


connexions)
L’onglet Gestionnaires de connexions dans la boîte de dialogue Configuration de
partie de package permet de spécifier les propriétés des gestionnaires de connexions
pour l’instance de partie.
Le tableau dans le volet gauche répertorie tous les gestionnaires de connexions définis
dans le composant de flux de contrôle. Choisissez le gestionnaire de connexions à
configurer.

La liste dans le volet droit répertorie les propriétés du gestionnaire de connexions


sélectionné.

Définir Option activée si la propriété est configurée pour l’instance de composant.

Property Name(Nom de la propriété). Nom de la propriété.

Valeur. Valeur configurée. Cette valeur remplace la valeur par défaut.

Supprimer un composant de flux de contrôle


Pour supprimer un composant, dans l’Explorateur de solutions, cliquez avec le bouton
droit sur le composant, puis sélectionnez Delete(Supprimer). Sélectionnez OK pour
confirmer la suppression, ou sélectionnez Cancel (Annuler) pour conserver le
composant.

Si vous supprimez un composant d’un projet, il est supprimé définitivement du système


de fichiers et ne peut pas être restauré.

7 Notes
Si vous voulez supprimer une partie d’un projet Integration Services, mais continuer
à l’utiliser dans d’autres projets, utilisez l’option Exclure du projet au lieu de
l’option Supprimer.

Les composants de package sont des


fonctionnalités disponibles uniquement au
moment de la conception.
Les composants de package sont des fonctionnalités disponibles au moment du design
caractéristiques. Le concepteur SSIS crée, ouvre, enregistre et met à jour des parties, et
ajoute, configure ou supprime des instances de partie dans un package. En revanche, le
runtime SSIS n’est pas informé de la présence de composants. Voici comment le
concepteur accomplit cette séparation.

Le concepteur enregistre les instances de composant de package avec leurs


propriétés configurées pour un fichier « .dtsx.designer ».

Quand le concepteur enregistre le fichier « .dtsx.designer », il extrait également le


contenu des composants référencés par ce fichier et remplace les instances de
composant dans le package par le contenu des composants.

Enfin, tout le contenu, qui n’inclut plus d’informations sur le composant, est
réenregistré dans le fichier de package « .dtsx ». Il s’agit du fichier que le runtime
SSIS exécute.

Le diagramme ci-dessous illustre la relation entre les composants (fichiers « .dtsxp »), le
concepteur SSIS et le runtime SSIS.
Réutiliser des objets de packages
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Fonctionnalités usuelles de packages que vous souhaitez réutiliser. Si vous avez par
exemple créé un ensemble de tâches, il peut être utile de réutiliser des éléments
rassemblés en groupe, ou un élément unique, tel qu’un gestionnaire de connexions créé
dans un autre projet Integration Services.

Copier et coller
SQL Server Data Tools (SSDT) et le concepteur SSIS prennent en charge la copie et le
collage d’objets de packages, tels que des éléments de flux de contrôle, des éléments
de flux de données et des gestionnaires de connexions. Vous pouvez effectuer la copie
et le collage entre des projets et entre des packages. Si la solution contient plusieurs
projets, vous pouvez effectuer la copie entre des projets, lesquels peuvent être de types
différents.

Si une solution contient plusieurs packages, vous pouvez effectuer la copie et le collage
entre eux. Les packages peuvent se trouver dans les mêmes projets Integration Services
ou dans des projets différents. Les objets de packages peuvent toutefois avoir des
dépendances avec d'autres objets sans lesquels ils ne sont pas valides. Par exemple, une
tâche d'exécution SQL utilise un gestionnaire de connexions que vous devez également
copier pour faire fonctionner la tâche. Certains objets de packages nécessitent
également que le package contienne déjà un objet particulier, sans lequel il n'est pas
possible de coller convenablement les objets copiés dans un package. Par exemple, il
n'est pas possible de coller un flux de données dans un package qui ne possède pas au
moins une tâche de flux de données.

Il peut arriver que vous deviez copier les mêmes packages plusieurs fois. Pour éviter le
processus de copie, vous pouvez désigner ces packages en tant que modèles et vous en
servir pour créer des packages.

Quand vous copiez un objet de package, Integration Services attribue automatiquement


un nouveau GUID à la propriété ID du nouvel objet et met à jour la propriété Name.

Vous ne pouvez pas copier de variables. Si un objet, une tâche par exemple, utilise des
variables, vous devez recréer les variables dans le package de destination. À l'inverse, si
vous copiez le package complet, les variables du package sont également copiées.
Tâches associées
Copier des objets de packages

Copier des éléments de projet

Enregistrer un package en tant que modèle de package


Supprimer des packages
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Dans SQL Server Data Tools (SSDT), vous pouvez supprimer des packages enregistrés
dans le système de fichiers. Si vous supprimez un package, la suppression est
permanente et il est impossible de le restaurer dans un projet Integration Services.

7 Notes

Si vous souhaitez supprimer des packages d’un projet Integration Services mais les
utiliser dans d’autres projets, vous devez utiliser l’option Exclure du projet plutôt
que Supprimer.

Pour supprimer un package dans Business Intelligence


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package à supprimer.

2. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le package, puis
cliquez sur Supprimer.

3. Cliquez sur OK pour confirmer la suppression ou cliquez sur Annuler pour


conserver le package.
dtutil (utilitaire)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

L’utilitaire d’invite de commandes dtutil permet de gérer des packages SQL Server
Integration Services. Cet utilitaire peut copier, déplacer ou supprimer un package, ou en
vérifier l'existence. Ces actions peuvent être effectuées sur n’importe quel package SSIS
stocké à l’un des trois emplacements suivants : une base de données Microsoft SQL
Server, le magasin de packages SSIS et le système de fichiers. Si l'utilitaire accède à un
package stocké dans msdb, il peut être nécessaire d'indiquer un nom d'utilisateur et un
mot de passe à l'invite de commandes. Si l'instance de SQL Server utilise
l'authentification SQL Server, il est nécessaire d'indiquer un nom d'utilisateur et un mot
de passe à l'invite de commandes. Si le nom d'utilisateur est manquant, dtutil essaie de
se connecter à SQL Server en utilisant l'authentification Windows. Le type de stockage
du package est identifié par les options /SQL, /FILEet /DTS .

L'utilitaire d'invite de commandes dtutil ne prend pas en charge l'utilisation de fichiers


de commandes ni la redirection.

L'utilitaire d'invite de commandes dtutil comprend les fonctionnalités suivantes :

Des remarques présentes à l'invite de commandes, qui documentent


automatiquement l'action en cours de réalisation et qui en facilitent la
compréhension

Une protection contre l'écrasement, qui sollicite votre confirmation avant une
opération de copie ou de déplacement de packages susceptible de remplacer un
package existant

Une aide de la console, qui fournit des informations sur les options de commande
de dtutil.

7 Notes

Nombre des opérations qui sont réalisées par l'utilitaire dtutil peuvent également
être réalisées visuellement dans SQL Server Management Studio lorsque vous êtes
connecté à une instance de Integration Services. Pour plus d’informations,
consultez Gestion de packages (Service SSIS).

Les options peuvent être entrées dans n'importe quel ordre. Le caractère (« | ») est
l’opérateur OR et sert à afficher les valeurs possibles. Vous devez choisir l'une des
options qui sont délimitées par le caractère OR .

Toutes les options doivent commencer par une barre oblique (/) ou par un signe moins
(-). Toutefois, n'insérez pas d'espace entre la barre oblique ou le signe moins et le texte
de l'option ; sinon, la commande échoue.

Les arguments doivent être des chaînes entre guillemets ou ne contenir aucun espace.

Les guillemets doubles à l'intérieur des chaînes mises entre guillemets simples
représentent des guillemets simples en mode échappement.

Les options et les arguments, à l'exception des mots de passe, ne respectent pas la
casse.

Considérations concernant l'installation sur les ordinateurs 64 bits

Sur un ordinateur 64 bits, Integration Services installe une version 64 bits de l’utilitaire
dtexec (dtexec.exe) et de l’utilitaire dtutil (dtutil.exe). Pour installer les versions de 32
bits de ces outils Integration Services, vous devez sélectionner Outils clients ou SQL
Server Data Tools (SSDT) pendant l’installation.

Par défaut, un ordinateur 64 bits qui dispose à la fois des versions 64 bits et 32 bits
d'une invite de commandes Integration Services doit pouvoir exécuter la version 32 bits.
La version 32 bits s'exécute car le chemin d'accès au répertoire de la version 32 bits
apparaît dans la variable d'environnement PATH avant le chemin d'accès au répertoire
de la version 64 bits. (En général, le chemin du répertoire 32 bits est <lecteur>:\Program
Files(x86)\Microsoft SQL Server\130\DTS\Binn, tandis que le chemin du répertoire 64
bits est <lecteur>:\Program Files\Microsoft SQL Server\130\DTS\Binn.)

7 Notes

Si vous utilisez SQL Server Agent pour exécuter l'utilitaire, il utilise


automatiquement la version 64 bits de ce dernier. SQL Server Agent utilise le
Registre, et non la variable d'environnement PATH, pour localiser le fichier
exécutable correct de l'utilitaire.

Pour vous assurer que vous exécutez la version 64 bits de l'utilitaire à l'invite de
commandes, vous pouvez effectuer l'une des actions suivantes :

Ouvrez une fenêtre d’invite de commandes, indiquez le répertoire qui contient la


version 64 bits de l’utilitaire (<lecteur> :\Program Files\Microsoft SQL
Server\130\DTS\Binn), puis exécutez celui-ci à partir de cet emplacement.
À l’invite de commandes, exécutez l’utilitaire en entrant le chemin complet
(<lecteur>:\Program Files\Microsoft SQL Server\130\DTS\Binn) de la version 64 bits
de l’utilitaire.

Modifiez de manière définitive l’ordre des chemins dans la variable


d’environnement PATH en plaçant le chemin 64 bits (<lecteur>:\Program
Files\Microsoft SQL Server\130\DTS\Binn) avant le chemin 32 bits
(<lecteur>:\Program Files(x86)\Microsoft SQL Server\130\DTS\Binn) dans la
variable.

Syntaxe
dos

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

Paramètres

Option Description

/? Affiche les options d'invite de commandes.

/C[opy] Spécifie une action de copie sur un package SSIS.


location;destinationPathandPackageName Pour utiliser ce paramètre, vous devez tout d’abord
spécifier l’emplacement du package à l’aide de
l’option /FI, /SQou /DT . Spécifiez ensuite le nom du
package de destination de l'emplacement de
destination. L’argument
destinationPathandPackageName spécifie sur quel
emplacement le package SSIS est copié. Si
l'emplacement de destination location est SQL, les
arguments DestUser, DestPassword et DestServer
doivent être également spécifiés dans la commande.

Lorsque l'action Copy rencontre un package existant


à l'emplacement de destination, dtutil invite
l'utilisateur à confirmer la suppression du package. La
réponse Y remplace le package et la réponse N
termine le programme. Lorsque la commande inclut
l'argument Quiet , aucune invite n'apparaît et tout
package existant est remplacé.

/Dec[rypt] password (Facultatif). Définit le mot de passe de déchiffrement


qui est utilisé lorsque vous chargez un package avec
chiffrement de mot de passe.
Option Description

/Del[ete] Supprime le package spécifié par l'option SQL, DTS


ou FILE . Si dtutil ne peut pas supprimer le package,
le programme prend fin.

/DestP[assword] password Spécifie le mot de passe utilisé avec l'option SQL


pour se connecter à une instance SQL de destination
avec l'authentification SQL Server. Une erreur est
générée si DESTPASSWORD est spécifié dans une
ligne de commande qui n'inclut pas l'option DTSUSER
.

Remarque : lorsque c'est possible, utilisez


l'authentification Windows.

/DestS[erver] server_instance Spécifie le nom du serveur utilisé avec une action qui
entraîne l'enregistrement d'une destination dans SQL
Server. Cette valeur sert à identifier un serveur non
local ou autre que le serveur par défaut lors de
l’enregistrement d’un package SSIS. La spécification
de DESTSERVER dans une ligne de commande sans
action associée à SQL Server constitue une erreur.
Des actions telles que SIGN SQL, COPY SQLou MOVE
SQL représentent des commandes appropriées à
combiner avec cette option.

Un nom d'instance SQL peut être spécifié en ajoutant


à la suite du nom du serveur une barre oblique et le
nom de l'instance.

/DestU[ser] username Spécifie le nom d’utilisateur qui est employé avec les
options SIGN SQL, COPY SQL et MOVE SQL pour se
connecter à une instance SQL qui utilise
l’authentification SQL Server. La spécification de
DESTUSER dans une ligne de commande qui n'inclut
pas l'option SIGN SQL, COPY SQLou MOVE SQL
constitue une erreur.
Option Description

/Dump process ID (Facultatif) Entraîne la suspension du processus


spécifié, de l’utilitaire dtexec ou du processus
dtsDebugHost.exe , ainsi que la création des fichiers
de vidage de débogage, .mdmp et .tmp.

Remarque : Pour utiliser l’option /Dump, le droit


d’utilisateur Déboguer les programmes doit vous être
assigné (SeDebugPrivilege).

Pour trouver le process ID du processus que vous


souhaitez suspendre, utilisez le Gestionnaire des
tâches de Windows.

Par défaut, Integration Services stocke les fichiers de


sauvegarde du débogage dans le dossier
<lecteur> :\Program Files\Microsoft
SQL Server\130\Shared\ErrorDumps.

Pour plus d’informations sur l’utilitaire dtexec et le


processus dtsDebugHost.exe , consultez Utilitaire
dtexec et Génération, déploiement et débogage
d’objets personnalisés.

Pour plus d'informations sur les fichiers de vidage du


débogage, consultez Generating Dump Files for
Package Execution.

Remarque : Les fichiers de vidage du débogage


peuvent contenir des informations sensibles. Utilisez
une liste de contrôle d'accès (ACL, Access Control
List) pour restreindre l'accès aux fichiers ou copiez ces
derniers dans un dossier avec accès restreint.
Option Description

/DT[S] filespec Spécifie que le package SSIS à traiter se trouve dans


le magasin de packages SSIS. L’argument filespec doit
inclure le chemin du dossier en commençant à la
racine du magasin de packages SSIS. Par défaut, les
noms des dossiers racine dans le fichier de
configuration sont « MSDB » et « Système de
fichiers ». Les chemins d'accès qui contiennent un
espace doivent être placés entre guillemets.

Si l'option DT[S] est spécifiée sur la même ligne de


commande que l'une des options suivantes, une
erreur DTEXEC_DTEXECERROR est retournée :

FILE

SQL

SOURCEUSER

SOURCEPASSWORD

SOURCESERVER
Option Description

/En[crypt] {SQL | FILE}; (Facultatif). Chiffre le package chargé avec le niveau


Path;ProtectionLevel[;password] de protection et le mot de passe spécifiés, puis
l'enregistre à l'emplacement spécifié dans Path. Le
ProtectionLevel détermine si un mot de passe est
requis.

SQL - Path est le nom du package de destination.

FILE - Path est le chemin complet et le nom de fichier


du package.

DTS - Cette option n’est actuellement pas prise en


charge.

OptionsProtectionLevel :

Niveau 0 : retire les informations sensibles.

Niveau 1 : les informations sensibles sont chiffrées en


utilisant des informations d'identification de
l'utilisateur local.

Niveau 2 : les informations sensibles sont chiffrées à


l'aide du mot de passe requis.

Niveau 3 : le package est chiffré à l'aide du mot de


passe requis.

Niveau 4 : le package est chiffré à l'aide des


informations d'identification de l'utilisateur local.

Un package de niveau 5 utilise le chiffrement de


stockage SQL Server.

/Ex[ists] (Facultatif). Sert à déterminer si un package existe.


dtutil tente de localiser le package spécifié à l'aide
des options SQL, DTS ou FILE . Si dtutil ne peut pas
localiser le package spécifié, une erreur
DTEXEC_DTEXECERROR est retournée.

/FC[reate] {SQL | (Facultatif). Crée un nouveau dossier portant le nom


DTS};ParentFolderPath;NewFolderName que vous avez spécifié dans NewFolderName.
L'emplacement du nouveau dossier est indiqué par
ParentFolderPath.
Option Description

/FDe[lete] {SQL | DTS} (Facultatif). Supprime de SQL Server ou de SSIS le


[;ParentFolderPath;FolderName] dossier spécifié par le nom dans FolderName.
L'emplacement du dossier à supprimer est indiqué
par ParentFolderPath.

/FDi[rectory] {SQL | DTS};FolderPath[;S] (Facultatif). Répertorie le contenu, les dossiers et les


packages d’un dossier sur SSIS ou SQL Server. Le
paramètre facultatif FolderPath spécifie le dossier
dont vous voulez afficher le contenu. Le paramètre
facultatif S spécifie que vous voulez afficher la liste du
contenu des sous-dossiers du dossier indiqué dans
FolderPath.

/FE[xists ] {SQL | DTS};FolderPath (Facultatif). Vérifie si le dossier spécifié existe sur SSIS
ou SQL Server. Le paramètre FolderPath représente le
chemin et le nom de dossier à vérifier.

/Fi[le] filespec Cette option spécifie que le package SSIS à traiter se


trouve dans le système de fichiers. La valeur filespec
peut être fournie sous la forme d’un chemin UNC
(Universal Naming Convention) ou d’un chemin local.

Si l’option File est spécifiée sur la même ligne de


commande que l’une des options suivantes, une
erreur DTEXEC_DTEXECERROR est retournée :

DTS

SQL

SOURCEUSER

SOURCEPASSWORD

SOURCESERVER

/FR[ename] {SQL | DTS} (Facultatif). Renomme un dossier sur SSIS ou SQL


[;ParentFolderPath; Server. ParentFolderPath constitue l'emplacement du
OldFolderName;NewFolderName] dossier à renommer. OldFolderName correspond au
nom actuel du dossier tandis que NewFolderName
représente le nouveau nom à attribuer au dossier.
Option Description

/H[elp] option Affiche une aide contextuelle qui indique les options
dtutil et décrit leur utilisation. Cet argument est
facultatif. Si l'argument est inclus, le texte d'aide
contient des informations détaillées sur l'option
spécifiée. L'exemple suivant affiche une aide pour
toutes les options :

dtutil /H

Les deux exemples suivants illustrent l’utilisation de


l’option /H pour afficher une aide étendue sur une
option spécifique, l’option /Q [uiet] , dans cet
exemple :

dtutil /Help Quiet

dtutil /H Q

/I[DRegenerate] Crée un nouvel identificateur global unique (GUID)


pour le package et met à jour la propriété de l'ID du
package. Lorsqu'un package est copié, l'ID du
package ne change pas ; ainsi les fichiers journaux
contiennent le même GUID pour les deux packages.
Cette action crée un nouveau GUID pour le package
nouvellement copié, afin de le distinguer de l'original.
Option Description

/M[ove] {SQL | File | DTS}; pathandname Spécifie une action de déplacement sur un package
SSIS. Pour utiliser ce paramètre, vous devez tout
d’abord spécifier l’emplacement du package à l’aide
de l’option /FI, /SQou /DT . Spécifiez ensuite l'action
Move . Cette action nécessite deux arguments,
séparés par un point-virgule :

L'argument de destination peut spécifier SQL, FILEou


DTS. Une destination SQL peut comporter les options
DESTUSER, DESTPASSWORDet DESTSERVER .

L’argument pathandname spécifie l’emplacement du


package : SQL utilise le chemin et le nom du package,
FILE utilise un UNC ou un chemin local tandis que
DTS utilise un emplacement relatif à la racine du
magasin de packages SSIS. Lorsque la destination est
FILE ou DTS, l'argument path n'inclut pas le nom du
fichier. Il utilise plutôt le nom du package à
l'emplacement spécifié comme le nom de fichier.

Lorsque l'action MOVE rencontre un package existant


à l'emplacement de destination, dtutil vous invite à
confirmer le remplacement du package. La réponse Y
remplace le package et la réponse N termine le
programme. Lorsque la commande inclut l'option
QUIET , aucune invite n'apparaît et tout package
existant est remplacé.

/Q[uiet] Arrête les invites de confirmation pouvant apparaître


lorsqu'une commande incluant l'option COPY,
MOVEou SIGN est exécutée. Ces invites apparaissent
si un package portant le même nom que le package
spécifié existe déjà sur l'ordinateur de destination ou
si le package spécifié est déjà signé.

/R[emark] text Ajoute un commentaire à la ligne de commande.


L'argument de commentaire est facultatif. Si le texte
du commentaire inclut les espaces, il est mis entre
guillemets. Vous pouvez inclure plusieurs options
REM dans une ligne de commande.
Option Description

/Si[gn] {SQL | File | DTS}; path; hash Signe un package SSIS. Cette action utilise trois
arguments requis, séparés par des point-virgules ;
destination, path et hash :

L'argument de destination peut spécifier SQL, FILEou


DTS. Une destination SQL peut comporter les options
DESTUSER, DESTPASSWORD et DESTSERVER .

L'argument path spécifie l'emplacement du package à


traiter.

L'argument hash spécifie un identificateur de


certificat exprimé en tant que chaîne hexadécimale de
longueur variable.

Pour plus d’informations, consultez Identifier la


source de packages à l’aide de signatures
numériques.

** Important ** Lorsqu’il est configuré pour vérifier la


signature du package, Integration Services vérifie
seulement si la signature numérique est présente, si
elle est valide et si elle provient d’une source
approuvée. Integration Services ne vérifie pas si le
package a été modifié.

/SourceP[assword] password Spécifie le mot de passe utilisé avec les options SQL
et SOURCEUSER pour permettre la récupération d'un
package SSIS qui est stocké dans une base de
données, sur une instance SQL qui utilise
l'authentification SQL Server. La spécification de
SOURCEPASSWORD dans une ligne de commande
qui n'inclut pas l'option SOURCEUSER constitue une
erreur.

Remarque : lorsque c'est possible, utilisez


l'authentification Windows.
Option Description

/SourceS[erver] server_instance Spécifie le nom du serveur qui est utilisé avec l'option
SQL pour permettre la récupération d'un package
SSIS qui est stocké dans SQL Server. La spécification
de SOURCESERVER dans une ligne de commande qui
n’inclut pas l’option SIGN SQL, COPYSQL ou
MOVESQL constitue une erreur.

Un nom d'instance SQL peut être spécifié en ajoutant


à la suite du nom du serveur une barre oblique et le
nom de l'instance.

/SourceU[ser] username Spécifie le nom d'utilisateur qui est employé avec


l’option SOURCESERVER pour permettre l'extraction
d'un package SSIS sotcké dans SQL Server à l’aide de
l’authentification SQL Server. La spécification de
SOURCEUSER dans une ligne de commande qui
n'inclut pas l'option SIGN SQL, COPY SQLou MOVE
SQL constitue une erreur.

Remarque : lorsque c'est possible, utilisez


l'authentification Windows.
Option Description

/SQ[L] package_path Spécifie l'emplacement d'un package SSIS. Cette


option indique que le package est stocké dans la
base de données msdb . L’argument package_path
spécifie le chemin et le nom du package SSIS. Les
noms de dossier se terminent par des barres obliques
inverses.

Si l’option SQL est spécifiée sur la même ligne de


commande que l’une des options suivantes, une
erreur DTEXEC_DTEXECERROR est retournée :

DTS

FILE

L'option SQL peut être accompagnée de zéro ou


d'une instance des options suivantes :

SOURCEUSER

SOURCEPASSWORD

SOURCESERVER

Si SOURCEUSERNAME n'est pas inclus,


l'authentification Windows est utilisée pour accéder
au package. SOURCEPASSWORD est autorisé
uniquement si SOURCEUSER est présent. Si l'option
SOURCEPASSWORD n'est pas incluse, un mot de
passe vide est employé.

** Important ** N'utilisez pas de mot de passe vide.


Utilisez un mot de passe fort.

Codes de sortie dtutil


L'utilitairedtutil définit un code de sortie qui vous alerte lorsque des erreurs de syntaxe
sont détectées, des arguments incorrects sont employés ou des combinaisons non
valides d'options sont spécifiées. Dans le cas contraire, l'utilitaire signale « L'opération
s'est terminée avec succès ». Le tableau ci-dessous répertorie les valeurs que l'utilitaire
dtutil peut définir lors de sa fermeture.
Valeur Description

0 L'utilitaire s'est exécuté avec succès.

1 L'utilitaire a échoué.

4 L'utilitaire ne peut pas localiser le package demandé.

5 L'utilitaire ne peut pas charger le package demandé.

6 L'utilitaire ne peut pas résoudre la ligne de commande car elle comporte des erreurs
syntaxiques ou sémantiques.

Notes
Vous ne pouvez pas utiliser de fichiers de commandes ou une redirection avec dtutil.

L'ordre des options dans la ligne de commande n'est pas significatif.

Exemples
Les exemples suivants présentent de façon détaillée des scénarios classiques
d'utilisation de ligne de commande.

Exemples de copie
Pour copier dans un magasin de packages SSIS un package stocké dans la base de
données msdb, elle-même présente sur une instance de SQL Server à l’aide de
l'authentification Windows, employez la syntaxe suivante :

dos

dtutil /SQL srcPackage /COPY DTS;destFolder\destPackage

Pour copier un package d'un emplacement sur le système de fichiers dans un autre
emplacement et renommer la copie, utilisez la syntaxe suivante :

dos

dtutil /FILE c:\myPackages\mypackage.dtsx /COPY


FILE;c:\myTestPackages\mynewpackage.dtsx
Pour copier un package sur le système de fichiers local dans une instance de SQL Server
hébergée sur un autre ordinateur, utilisez la syntaxe suivante :

dos

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


SQL;destpkgname

Dans la mesure où les options /DestU[ser] et /DestP[assword] n’ont pas été utilisées,
l’utilisation de l’authentification Windows est implicite.

Pour créer un ID destiné à un package nouvellement copié, utilisez la syntaxe suivante :

dos

dtutil /I /FILE copiedpkg.dtsx

Pour créer un ID destiné à tous les packages d'un dossier spécifique, utilisez la syntaxe
suivante :

dos

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

Utilisez un signe de pourcentage unique (%) lorsque vous tapez la commande à partir
de l'invite et utilisez un signe de pourcentage double (%%) si la commande est utilisée à
l'intérieur d'un fichier de commandes.

Exemples de suppression
Pour supprimer un package stocké dans la base de données msdb sur une instance de
SQL Server qui utilise l'authentification Windows, employez la syntaxe suivante :

dos

dtutil /SQL delPackage /DELETE

Pour supprimer un package stocké dans la base de données msdb sur une instance de
SQL Server qui utilise l'authentification SQL Server, employez la syntaxe suivante :

dos

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


/DELETE
7 Notes

Pour supprimer un package d'un serveur nommé, incluez l'option SOURCESERVER


et son argument. Vous pouvez spécifier un serveur uniquement par le biais de
l'option SQL .

Pour supprimer un package stocké dans le magasin des packages SSIS, utilisez la
syntaxe suivante :

dos

dtutil /DTS delPackage.dtsx /DELETE

Pour supprimer un package stocké dans le système de fichiers, utilisez la syntaxe


suivante :

dos

dtutil /FILE c:\delPackage.dtsx /DELETE

Exemples d'Exists
Pour déterminer si un package existe dans la base de données msdb sur une instance
locale de SQL Server qui utilise l'authentification Windows, employez la syntaxe suivante
:

dos

dtutil /SQL srcPackage /EXISTS

Pour déterminer si un package existe dans la base de données msdb sur une instance
locale de SQL Server qui utilise l'authentification SQL Server, employez la syntaxe
suivante :

dos

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


/EXISTS
7 Notes

Pour déterminer si un package existe sur un serveur nommé, incluez l'option


SOURCESERVER et son argument. Vous pouvez uniquement spécifier un serveur en
utilisant l'option SQL.

Pour déterminer si un package existe dans le magasin de packages local, utilisez la


syntaxe suivante :

dos

dtutil /DTS srcPackage.dtsx /EXISTS

Pour déterminer si un package existe dans le système de fichiers local, utilisez la syntaxe
suivante :

dos

dtutil /FILE c:\srcPackage.dtsx /EXISTS

Exemples de Move
Pour déplacer un package stocké dans le magasin de packages SSIS vers la base de
données msdb, elle-même située sur une instance locale de SQL Server qui utilise
l'authentification Windows, employez la syntaxe suivante :

dos

dtutil /DTS srcPackage.dtsx /MOVE SQL;destPackage

Pour déplacer un package stocké dans la base de données msdb, elle-même située sur
une instance locale de SQL Server qui utilise l'authentification SQL Server vers la base de
données msdb située sur une autre instance locale de SQL Server qui utilise
l'authentification SQL Server, employez la syntaxe suivante :

dos

dtutil /SQL srcPackage /SOURCEUSER srcUserName /SOURCEPASSWORD $Hj45jhd@X


/MOVE SQL;destPackage /DESTUSER destUserName /DESTPASSWORD !38dsFH@v

7 Notes
Pour déplacer un package d'un serveur nommé à un autre, incluez les options
SOURCES et DESTS , ainsi que leurs arguments. Vous ne pouvez spécifier des
serveurs qu'à l'aide de l'option SQL .

Pour déplacer un package stocké dans le magasin des packages SSIS, employez la
syntaxe suivante :

dos

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

Pour déplacer un package qui est stocké dans le système de fichiers, employez la
syntaxe suivante :

dos

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

Exemples de Sign
Pour signer un package qui est stocké dans une base de données SQL Server sur une
instance locale de SQL Server qui utilise l'authentification Windows, utilisez la syntaxe
suivante :

dos

dtutil /FILE srcPackage.dtsx /SIGN


FILE;destpkg.dtsx;1767832648918a9d989fdac9819873a91f919

Pour obtenir des informations concernant votre certificat, utilisez CertMgr. Le code de
hachage peut être affiché dans l'utilitaire CertMgr en sélectionnant le certificat, puis en
cliquant sur Afficher pour afficher les propriétés. L'onglet Détails fournit des
informations supplémentaires sur le certificat. La propriété Thumbprint est utilisée
comme valeur de hachage, sans les espaces.

7 Notes

Le hachage utilisé dans l'exemple ci-dessus n'est pas un hachage véritable.

Pour plus d'informations, consultez la section « CertMgr » de l'article (en anglais) «


Signing and Checking Code with Authenticode» (signature et vérification du code à
l'aide d'Authenticode).

Exemples d'Encrypt
L'exemple suivant chiffre le fichier PackageToEncrypt.dtsx dans le fichier
EncryptedPackage.dts en utilisant un chiffrement de package complet, avec un mot de
passe. Le mot de passe qui est utilisé pour le chiffrement est EncPswd.

dos

dtutil /FILE PackageToEncrypt.dtsx /ENCRYPT


file;EncryptedPackage.dtsx;3;EncPswd

Voir aussi
Exécuter des packages Integration Services (SSIS)
Aide sur l'Assistant Mise à niveau de
packages SSIS via la touche F1
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez l’Assistant Mise à niveau de packages SSIS pour mettre à niveau des packages
créés par des versions antérieures de SQL Server vers le format de package utilisé par la
version actuelle de SQL Server Integration Services.

Pour exécuter l'Assistant Mise à niveau de packages SSIS

Mettre à niveau des packages Integration Services à l'aide de l'Assistant Mise à


niveau de packages SSIS

Assistant Mise à niveau de SSIS

Options
Ne plus afficher cette page.
Ignorer la page d'accueil lors de l'ouverture suivante de l'Assistant.

Page Sélectionner l’emplacement source


Utilisez la page Sélectionner l’emplacement source pour spécifier la source à partir de
laquelle effectuer la mise à niveau de packages.

7 Notes

Cette page est disponible uniquement quand vous exécutez l’Assistant Mise à
niveau de packages SSIS à partir de SQL Server Management Studio ou de l’invite
de commandes.

Options statiques
Source du package
Sélectionnez l'emplacement de stockage qui contient les packages à mettre à niveau.
Cette option a les valeurs répertoriées dans le tableau suivant.
Valeur Description

Système Indique que les packages à mettre à niveau se trouvent dans un dossier sur
de l'ordinateur local.
fichiers
Pour que l'Assistant sauvegarde les packages d'origine avant de les mettre à niveau,
les packages d'origine doivent être stockés dans le système de fichiers. Pour plus
d'informations, consultez la rubrique de procédure.

Magasin Indique que les packages à mettre à niveau se trouvent dans le magasin de packages.
de Le magasin de packages se compose de l’ensemble des dossiers du système de
packages fichiers gérés par le service Integration Services. Pour plus d’informations, consultez
SSIS Gestion de packages (Service SSIS).

La sélection de cette valeur affiche les options dynamiques Source du package


correspondantes.

Microsoft Indique que les packages à mettre à niveau proviennent d’une instance existante de
SQL SQL Server.
Server
La sélection de cette valeur affiche les options dynamiques Source du package
correspondantes.

Folder
Tapez le nom d’un dossier qui contient les packages à mettre à niveau, ou cliquez sur
Parcourir et recherchez le dossier.

Parcourir
Recherchez le dossier qui contient les packages à mettre à niveau.

Options dynamiques de la source du package

Source du package = Magasin de packages SSIS


Serveur
Tapez le nom du serveur sur lesquels se trouvent les packages à mettre à niveau ou
sélectionnez ce serveur dans la liste.

Source du package = Microsoft SQL Server

Serveur
Tapez le nom du serveur sur lesquels se trouvent les packages à mettre à niveau ou
sélectionnez ce serveur dans la liste.
Utiliser l’authentification Windows
Permet d'utiliser l'authentification Windows pour se connecter au serveur.

Utiliser l'authentification SQL Server


Permet d’utiliser l’authentification SQL Server pour se connecter au serveur. Si vous
utilisez l’authentification SQL Server , vous devez fournir un nom d’utilisateur et un mot
de passe.

Nom d'utilisateur
Tapez le nom d’utilisateur que l’authentification SQL Server utilisera pour se connecter
au serveur.

Mot de passe
Tapez le mot de passe que l’authentification SQL Server utilisera pour se connecter au
serveur.

Page Sélectionner l’emplacement de


destination
Utilisez la page Sélectionner l’emplacement de destination pour spécifier la destination
dans laquelle enregistrer les packages mis à niveau.

7 Notes

Cette page est disponible uniquement quand vous exécutez l’Assistant Mise à
niveau de packages SSIS à partir de SQL Server Management Studio ou de l’invite
de commandes.

Options statiques
Enregistrer à l'emplacement source
Enregistrez les packages mis à niveau dans le même emplacement que celui spécifié
dans la page Sélectionner l’emplacement source de l’Assistant.

Si vous voulez que l’Assistant sauvegarde les packages d’origine quand ils sont stockés
dans le système de fichiers, sélectionnez l’option Enregistrer à l’emplacement source .
Pour plus d’informations, consultez Mettre à niveau des packages Integration Services à
l’aide de l’Assistant Mise à niveau de packages SSIS.

Sélectionner le nouvel emplacement de destination


Enregistrez les packages mis à niveau dans l'emplacement de destination qui est spécifié
sur cette page.

Source du package
Spécifiez l'emplacement où les packages de mise à niveau doivent être stockés. Cette
option a les valeurs répertoriées dans le tableau suivant.

Valeur Description

Système Indique que les packages mis à niveau doivent être enregistrés dans un dossier sur
de l'ordinateur local.
fichiers

Magasin Indique que les packages mis à niveau doivent être enregistrés dans le magasin de
de packages Integration Services. Le magasin de packages se compose de l'ensemble
packages des dossiers du système de fichiers gérés par Integration Services. Pour plus
SSIS d’informations, consultez Gestion de packages (Service SSIS).

La sélection de cette valeur affiche les options dynamiques Source du package


correspondantes.

Microsoft Indique que les packages mis à niveau doivent enregistrés dans une instance
SQL existante de SQL Server.
Server
La sélection de cette valeur affiche les options Source du package dynamiques
correspondantes.

Folder
Tapez le nom d’un dossier dans lequel enregistrer les packages mis à niveau, ou cliquez
sur Parcourir et recherchez le dossier.

Parcourir
Recherchez le dossier dans lequel les packages mis à niveau seront enregistrés.

Options dynamiques de la source du package

Source du package = Magasin de packages SSIS

Serveur
Tapez le nom du serveur sur lequel les packages de mise à niveau seront enregistrés, ou
sélectionnez un serveur dans la liste.

Source du package = Microsoft SQL Server

Serveur
Tapez le nom du serveur sur lequel les packages de mise à niveau seront enregistrés, ou
sélectionnez ce serveur dans la liste.

Utiliser l’authentification Windows


Permet d'utiliser l'authentification Windows pour se connecter au serveur.

Utiliser l'authentification SQL Server


Permet d’utiliser l’authentification SQL Server pour se connecter au serveur. Si vous
utilisez l’authentification SQL Server , vous devez fournir un nom d’utilisateur et un mot
de passe.

Nom d'utilisateur
Tapez le nom d’utilisateur à utiliser pendant l’utilisation de l’authentification SQL Server
pour se connecter au serveur.

Mot de passe
Tapez le mot de passe à utiliser pendant l’utilisation de l’authentification SQL Server
pour se connecter au serveur.

Page Sélectionner les options de gestion des


packages
Utilisez la page Sélectionner les options de gestion des packages pour spécifier des
options permettant de mettre à niveau des packages.

Pour exécuter l'Assistant Mise à niveau de packages SSIS

Mettre à niveau des packages Integration Services à l'aide de l'Assistant Mise à


niveau de packages SSIS

Options
Mettre à jour les chaînes de connexion pour l'utilisation des nouveaux noms de
fournisseurs
Mettez à jour les chaînes de connexion afin d'utiliser les noms des fournisseurs suivants
pour la version actuelle d' Integration Services:

Fournisseur OLE DB pour Analysis Services

SQL Server Native Client

L'Assistant Mise à niveau de packages SSIS met à jour uniquement les chaînes de
connexion qui sont stockées dans des gestionnaires de connexions. Il ne met pas à jour
les chaînes de connexion qui sont construites dynamiquement à l'aide du langage
d'expression Integration Services ou en utilisant du code dans une tâche de script.

Valider les packages mis à niveau


Validez les packages de mise à niveau et enregistrez uniquement ceux dont la validation
a réussi.

Si vous ne sélectionnez pas cette option, l'Assistant ne validera pas les packages de mise
à niveau. Par conséquent, il les enregistrera tous, qu'ils soient valides ou non. L’Assistant
enregistre les packages de mise à niveau dans la destination spécifiée dans la page
Sélectionner l’emplacement de destination de l’Assistant.

La validation ralentit le processus de mise à niveau. Nous vous recommandons de ne


pas sélectionner cette option pour les packages volumineux qui sont susceptibles d'être
mis à niveau avec succès.

Créer des ID de package


Créez de nouveaux ID de package pour les packages de mise à niveau.

Continuer le processus de mise à niveau lorsque la mise à niveau d’un package


échoue
Spécifiez que, quand un package ne peut pas être mis à niveau, l’Assistant Mise à niveau
de packages SSIS continue à mettre à niveau les packages restants.

Conflits de noms de packages


Spécifiez la façon dont l'Assistant doit gérer les packages qui portent le même nom.
Cette option a les valeurs répertoriées dans le tableau suivant.

Remplacer les fichiers de packages existants


Remplace le package existant par le package de mise à niveau du même nom.

Ajouter des suffixes numériques pour mettre à niveau les noms de packages
Ajoute un suffixe numérique au nom du package de mise à niveau.

Ne pas mettre à niveau les packages


Arrête la mise à niveau des packages et affiche une erreur à la fin de l'Assistant.

Ces options ne sont pas disponibles quand vous sélectionnez l’option Enregistrer à
l’emplacement source dans la page Sélectionner l’emplacement de destination de
l’Assistant.

Ignorer les configurations


Ne charge pas les configurations de package pendant la mise à niveau des packages.
L'activation de cette option réduit le temps requis pour mettre à niveau le package.
Sauvegarder les packages d’origine
Cette option demande à l’Assistant de sauvegarder les packages d’origine dans un
dossier SSISBackupFolder . L’Assistant crée le dossier SSISBackupFolder en tant que
sous-dossier du dossier qui contient les packages d’origine et les packages mis à niveau.

7 Notes

Cette option est disponible uniquement lorsque vous spécifiez que les packages
d'origine et les packages mis à niveau sont stockés dans le système de fichiers et
dans le même dossier.

Page Sélectionner les packages


Utilisez la page Sélectionnez les packages pour sélectionner les packages à mettre à
niveau. Cette page répertorie les packages qui sont stockés dans l'emplacement spécifié
sur la page Sélectionner l'emplacement source de l'Assistant.

Options
Nom de package existant
Sélectionnez un ou plusieurs packages à mettre à niveau.

Nom du package de mise à niveau


Indiquez le nom du package de destination, ou utilisez le nom par défaut fourni par
l'Assistant.

7 Notes

Vous pouvez également modifier le nom du package de destination après avoir mis
à niveau le package. Dans SQL Server Data Tools (SSDT) ou SQL Server
Management Studio, ouvrez le package mis à niveau et modifiez son nom.

Mot de passe
Indiquez le mot de passe utilisé pour déchiffrer les packages de mise à niveau
sélectionnés.

Appliquer à la sélection
Appliquez le mot de passe spécifié pour déchiffrer les packages de mise à niveau
sélectionnés.
Page Fin de l’Assistant
Utilisez la page Terminer l'Assistant pour vérifier et confirmer les options de mise à
niveau des packages que vous avez sélectionnées. Il s'agit de la dernière page de
l'Assistant dans laquelle vous pouvez revenir aux pages précédentes et modifier les
options pour cette session de l'Assistant.

Options
Récapitulatif des options
Vérifiez les options de mise à niveau que vous avez sélectionnées dans l'Assistant. Pour
modifier ces options, cliquez sur Précédent pour retourner aux pages précédentes de
l'Assistant.

Page Mise à niveau des packages


Utilisez la page Mise à niveau des packages pour afficher la progression de la mise à
niveau de packages et pour interrompre le processus de mise à niveau. L'Assistant Mise
à niveau de packages SSIS met à niveau, un par un, les packages sélectionnés.

Options
Volet Message
Affiche des messages de progression et des informations de résumé pendant le
processus de mise à niveau.

Action
Permet d'afficher les actions de la mise à niveau.

État
Permet d'afficher le résultat de chaque action.

Message
Permet d'afficher les messages d'erreur générés par chaque action.

Stop
Permet d'arrêter la mise à niveau de packages.

Report
Sélectionnez ce que vous voulez faire avec le rapport qui contient les résultats de la
mise à niveau de packages :
Afficher le rapport en ligne.

Enregistrer le rapport dans un fichier.

Copier le rapport dans le Presse-papiers.

Envoyer le rapport sous forme de message électronique.

Afficher les packages mis à niveau

Afficher les packages mis à niveau qui ont été enregistrés


dans une base de données SQL Server ou dans le magasin
de packages
Dans l'Explorateur d'objets de Management Studio, connectez-vous à l'instance locale d'
Integration Services, puis développez le nœud Packages stockés pour voir les packages
mis à niveau.

Afficher les packages mis à niveau à partir de SQL Server


Data Tools
Dans l'Explorateur de solutions de SQL Server Data Tools (SSDT), ouvrez le projet
Integration Services , puis développez le nœud Packages SSIS pour voir les packages
mis à niveau.

Voir aussi
Mettre à niveau des packages Integration Services
Paramètres de projet et de package
Integration Services (SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les paramètresIntegration Services (SSIS) vous permettent d'affecter des valeurs aux
propriétés dans des packages au moment de l'exécution du package. Vous pouvez créer
des paramètres de projet au niveau du projet et des paramètres de package au niveau du
package. Les paramètres du projet sont utilisés pour fournir une entrée externe que le
projet reçoit à un ou plusieurs packages du projet. L'utilisation de paramètres de
package vous permet de modifier l'exécution du package sans avoir à modifier et à
redéployer le package.

Dans SQL Server Data Tools vous créez, modifiez ou supprimez les paramètres d'un
projet à l'aide de la fenêtre Project.params . Vous créez, modifiez et supprimez les
paramètres d'un package à l'aide de l'onglet Paramètres dans le Concepteur SSIS . Vous
associez un nouveau paramètre ou un paramètre existant à une propriété de tâche à
l'aide de la boîte de dialogue Paramétrer . Pour plus d'informations sur l'utilisation de la
fenêtre Project.params et l'onglet Paramètres , consultez Create Parameters. Pour plus
d'informations sur la boîte de dialogue Paramétrer , consultez Parameterize Dialog Box.

Paramètres et modèle de déploiement de


package
En général, si vous déployez un package à l'aide du modèle de déploiement de package,
vous devez utiliser les configurations au lieu des paramètres.

Lorsque vous déployez un package qui contient des paramètres à l'aide du modèle de
déploiement de package, puis exécutez le package, les paramètres ne sont pas appelés
au moment de l'exécution. Si le package contient des paramètres de package et des
expressions dans le package utilisent les paramètres, les valeurs résultantes sont
appliquées au moment de l'exécution. Si le package contient des paramètres de projet,
l'exécution du package peut échouer.

Paramètres et modèle de déploiement de


projet
Quand vous déployez un projet sur le serveur SQL Server Integration Services (SSIS),
vous utilisez des vues, des procédures stockées et l’interface utilisateur SQL Server
Management Studio pour gérer les paramètres du projet et du package. Pour plus
d'informations, consultez les rubriques ci-dessous.

Vues (catalogue Integration Services)

Procédures stockées (catalogue Integration Services)

Boîte de dialogue Configurer

Exécuter le package, boîte de dialogue

Valeurs des paramètres


Attribuez au plus trois types différents de valeurs à un paramètre. Lorsque l'exécution
d'un package démarre, une valeur unique est utilisée pour le paramètre, et le paramètre
est résolu à sa valeur littérale finale.

Le tableau qui suit énumère les types de valeurs.

Nom de la Description Type de la


valeur valeur

Valeur Valeur affectée à une instance spécifique de l'exécution du Littéral


d'exécution package. Cette affectation remplace toutes les autres valeurs,
mais s'applique uniquement à une instance unique de
l'exécution du package.

Valeur de Valeur affectée au paramètre dans l’étendue du projet après Littéral ou


serveur que le projet est déployé sur le serveur Integration Services. Référence de
Cette valeur remplace la valeur de conception par défaut. variable
d'environnement

Valeur de Valeur affectée au paramètre lorsque le projet est créé ou Littéral


création modifié dans SQL Server Data Tools. Cette valeur est conservée
avec le projet.

Utilisez un paramètre unique pour affecter une valeur à plusieurs propriétés des
packages. Il n'est possible d'affecter une valeur à une propriété de package unique qu'à
partir d'un paramètre unique.

Exécutions et valeurs de paramètres


L' exécution est un objet qui représente une instance unique de l'exécution du package.
Lorsque vous créez une exécution, vous spécifiez tous les détails nécessaires pour
exécuter un package, tel que les valeurs de paramètres d'exécution. Vous pouvez
également modifier les valeurs de paramètres pour les exécutions existantes.

Lorsque vous définissez de manière explicite une valeur de paramètre d'exécution, cette
valeur s'applique uniquement à cette instance d'exécution particulière. La valeur
d'exécution est utilisée à la place d'une valeur de serveur ou d'une valeur de conception.
Si vous ne définissez pas de valeur d'exécution de manière explicite, et qu'une valeur de
serveur a été spécifiée, la valeur de serveur est utilisée.

Lorsqu'un paramètre est marqué comme requis, une valeur de serveur ou une valeur
d'exécution doit être spécifiée pour ce paramètre. Sinon, le package correspondant ne
s'exécute pas. Bien que le paramètre dispose d'une valeur par défaut au moment de la
conception, elle ne sera jamais utilisée une fois le projet déployé.

Variables d'environnement
Si un paramètre référence une variable d'environnement, la valeur littérale de cette
variable est résolue par l'intermédiaire de la référence environnementale spécifiée et est
appliquée au paramètre. La valeur de paramètre littérale finale utilisée pour l'exécution
du package est appelée « valeur de paramètre d'exécution ». Vous spécifiez la référence
environnementale pour une exécution à l'aide de la boîte de dialogue Exécuter .

Si un paramètre de projet référence une variable d'environnement et la valeur littérale


de la variable n'est pas résolue au moment de l'exécution, la valeur de conception est
utilisée. La valeur de serveur n'est pas utilisée.

Pour afficher les variables d'environnement affectées aux valeurs de paramètre,


interrogez l'affichage catalog.object_parameters. Pour plus d’informations, consultez
catalog.object_parameters (base de données SSISDB).

Détermination des valeurs de paramètre d'exécution


La procédure stockée et les vues Transact-SQL suivantes peuvent être utilisées pour
afficher et définir des valeurs de paramètre.

catalog.execution_parameter_values (base de données SSISDB)(vue)


Affiche les valeurs de paramètre effectives dans une exécution spécifique.

catalog.get_parameter_values (base de données SSISDB) (procédure stockée)


Résout et affiche les valeurs effectives du package et de la référence environnementale
spécifiés.
catalog.object_parameters (base de données SSISDB)(vue)
Affiche les paramètres et les propriétés de tous les packages et les projets dans le
catalogue Integration Services , y compris les valeurs de conception par défaut et les
valeurs de serveur par défaut.

catalog.set_execution_parameter_value (base de données SSISDB)


Définit la valeur d'un paramètre pour une instance d'exécution dans le catalogue
Integration Services .

Vous pouvez également utiliser la boîte de dialogue Exécuter le package dans SQL
Server Data Tools (SSDT) pour modifiez la valeur de paramètre. Pour plus d'informations,
consultez Execute Package Dialog Box.

Vous pouvez également utiliser l'option /Parameter dtexec pour modifier une valeur de
paramètre. Pour plus d'informations, consultez Utilitaire dtexec.

Validation des paramètres


Si les valeurs de paramètre ne peuvent pas être résolues, l'exécution du package
correspondante échoue. Pour éviter les échecs, vous pouvez valider les projets et les
packages à l'aide de la boîte de dialogue Valider dans SQL Server Data Tools (SSDT). La
validation vous permet de vérifier que tous les paramètres disposent des valeurs
nécessaires ou qu'ils peuvent résoudre les valeurs requises avec des références
environnementales spécifiques. La validation vérifie également d'autres problèmes
courants liés aux packages.

Pour plus d'informations, consultez Validate Dialog Box.

Exemple de paramètres
Cet exemple illustre un paramètre nommé pkgOptions utilisé pour spécifier les options
du package dans lequel il réside.

Au moment de la conception, lorsque le paramètre a été créé dans SQL Server Data
Tools, la valeur par défaut 1 a été affectée au paramètre. Cette valeur par défaut est
appelée « valeur de conception par défaut ». Si le projet a été déployé dans le catalogue
SSISDB et qu'aucune autre valeur n'a été affectée à ce paramètre, la propriété de
package correspondant au paramètre pkgOptions se verrait affecter la valeur 1 pendant
l'exécution du package. La valeur de conception par défaut est conservée avec le projet
pendant tout son cycle de vie.

Lors de la préparation une instance spécifique de l'exécution du package, la valeur 5 est


affectée au paramètre pkgOptions . Cette valeur est appelée « valeur d'exécution » car
elle s'applique au paramètre uniquement pour cette instance d'exécution particulière.
Lorsque l'exécution démarre, la propriété de package correspondant au paramètre
pkgOptions se voit affecter la valeur 5.

Créer des paramètres


Vous pouvez utiliser SQL Server Data Tools (SSDT) pour créer les paramètres de projet et
de package. Les procédures suivantes fournissent des instructions pas-à-pas pour créer
les paramètres de package/projet.

7 Notes

Si vous convertissez un projet que vous avez créé à l’aide d’une version antérieure
d’Integration Services en modèle de déploiement de projet, vous pouvez utiliser
l’Assistant Conversion de projet Integration Services pour créer les paramètres en
fonction des configurations. Pour plus d’informations, consultez Déployer des
projets et des packages Integration Services (SSIS).

Créer les paramètres de package


1. Ouvrez le package dans SQL Server Data Tools, puis cliquez sur l'onglet Paramètres
dans le Concepteur SSIS.

2. Cliquez sur le bouton Ajouter un paramètre de la barre d'outils.

3. Entrez les valeurs des propriétés Nom, Type de données, Valeur, Sensibleet Requis
dans la liste elle-même ou dans la fenêtre Propriétés . Le tableau suivant décrit ces
propriétés.

Propriété Description

Name Le nom du paramètre.


Propriété Description

Type de Type de données du paramètre.


données

Valeur par Valeur par défaut du paramètre affecté au moment de la conception. Cette
défaut valeur est aussi appelée « valeur de conception par défaut ».

Sensible Les valeurs de paramètre sensibles sont chiffrées dans le catalogue et


apparaissent sous la forme d'une valeur Null lorsqu'elles sont affichées avec
Transact-SQL ou SQL Server Management Studio.

Obligatoire Nécessite qu'une valeur, autre que la valeur de conception par défaut, soit
spécifiée pour que le package puisse s'exécuter.

Description Pour faciliter la maintenance, description du paramètre. Dans SQL Server Data
Tools (SSDT), définissez la description des paramètres dans la fenêtre
Propriétés de Visual Studio lorsque le paramètre est sélectionné dans la
fenêtre des paramètres applicables.

7 Notes

Lorsque vous déployez un projet dans le catalogue, plusieurs autres


propriétés sont associées au projet. Pour afficher toutes les propriétés pour
tous les paramètres dans le catalogue, utilisez la vue
catalog.object_parameters (base de données SSISDB).

4. Enregistrez le projet pour sauvegarder les modifications apportées aux paramètres.


Les valeurs de paramètre sont stockées dans le fichier du projet.

2 Avertissement

Vous pouvez effectuer sur place des modifications dans la liste ou utiliser la
fenêtre Propriétés pour modifier les valeurs des propriétés de paramètre.
Vous pouvez supprimer un paramètre à l'aide du bouton Supprimer (X) de la
barre d'outils. À l'aide du dernier bouton de la barre d'outils, vous pouvez
spécifier une valeur de paramètre qui n'est utilisée que lorsque vous exécutez
le package dans SQL Server Data Tools.

7 Notes

Si vous rouvrez le fichier de package sans ouvrir le projet dans SQL Server
Data Tools, l’onglet Paramètres est vide et désactivé.
Créer les paramètres de projet
1. Ouvrez le projet dans SQL Server Data Tools.

2. Cliquez avec le bouton droit sur Project.params dans l'Explorateur de solutions,


puis cliquez sur Ouvrir ou double-cliquez sur Project.params pour l'ouvrir.

3. Cliquez sur le bouton Ajouter un paramètre de la barre d'outils.

4. Entrez les valeurs des propriétés Nom, Type de données, Valeur, Sensibleet Requis
.

Propriété Description

Name Le nom du paramètre.

Type de Type de données du paramètre.


données

Valeur par Valeur par défaut du paramètre affecté au moment de la conception. Cette
défaut valeur est aussi appelée « valeur de conception par défaut ».

Sensible Les valeurs de paramètre sensibles sont chiffrées dans le catalogue et


apparaissent sous la forme d'une valeur Null lorsqu'elles sont affichées avec
Transact-SQL ou SQL Server Management Studio.

Obligatoire Nécessite qu'une valeur, autre que la valeur de conception par défaut, soit
spécifiée pour que le package puisse s'exécuter.

Description Pour faciliter la maintenance, description du paramètre. Dans SQL Server Data
Tools, définissez la description des paramètres dans la fenêtre Propriétés de
Visual Studio lorsque le paramètre est sélectionné dans la fenêtre des
paramètres applicables.
5. Enregistrez le projet pour sauvegarder les modifications apportées aux paramètres.
Les valeurs de paramètres sont stockées dans des configurations au sein du fichier
projet. Enregistrez le fichier projet pour valider sur disque toutes les modifications
apportées aux valeurs de paramètres.

2 Avertissement

Vous pouvez effectuer sur place des modifications dans la liste ou utiliser la
fenêtre Propriétés pour modifier les valeurs des propriétés de paramètre.
Vous pouvez supprimer un paramètre à l'aide du bouton Supprimer (X) de la
barre d'outils. En cliquant sur le dernier bouton de la barre d'outils pour ouvrir
la boîte de dialogue Gérer les valeurs de paramètre , vous pouvez spécifier
une valeur pour un paramètre utilisé uniquement lors de l'exécution du
package dans SQL Server Data Tools.

Parameterize Dialog Box


La boîte de dialogue Paramétrer vous permet d’associer un paramètre nouveau ou
existant à la propriété d’une tâche. Vous ouvrez la boîte de dialogue en cliquant avec le
bouton droit sur une tâche ou en affichant l'onglet Flux de contrôle dans le Concepteur
SSIS , puis en cliquant sur Paramétrer. La liste suivante décrit les éléments d'interface
utilisateur de la boîte de dialogue. Pour plus d’informations sur les paramètres,
consultez Paramètres Integration Services (SSIS).

Options
Propriété
Sélectionnez la propriété de la tâche que vous souhaitez associer à un paramètre. Cette
liste est remplie avec toutes les propriétés qui sont paramétrables.

Utiliser un paramètre existant


Sélectionnez cette option pour associer la propriété de la tâche à un paramètre existant,
puis sélectionnez le paramètre dans la liste déroulante.

Ne pas utiliser de paramètre


Sélectionnez cette option pour supprimer une référence à un paramètre. Le paramètre
n'est pas supprimé.

Créer un paramètre
Sélectionnez cette option pour créer un nouveau paramètre que vous souhaitez associer
à la propriété de la tâche.

Nom
Spécifiez le nom du paramètre à créer.

Description
Spécifiez la description du paramètre.

Valeur
Spécifiez la valeur par défaut du paramètre. Cette opération est aussi appelée « valeur
par défaut de conception », qui peut être remplacée ultérieurement au moment du
déploiement.

Portée
Spécifiez l'étendue du paramètre en sélectionnant l'option Projet ou Package . Les
paramètres du projet sont utilisés pour fournir une entrée externe que le projet reçoit à
un ou plusieurs packages du projet. L'utilisation de paramètres de package vous permet
de modifier l'exécution du package sans avoir à modifier et à redéployer le package.

Sensible
Spécifiez si le paramètre contient une valeur sensible en activant ou en désactivant la
case à cocher. Les valeurs de paramètre sensibles sont chiffrées dans le catalogue et
apparaissent sous la forme d'une valeur Null lorsqu'elles sont affichées avec Transact-
SQL ou SQL Server Management Studio.

Obligatoire
Spécifiez si le paramètre nécessite qu'une valeur, autre que la valeur de conception
par défaut, soit spécifiée pour que le package puisse s'exécuter.

Définir des valeurs de paramètres après le


déploiement du projet
L'Assistant Déploiement vous permet de définir des valeurs de paramètre par défaut du
serveur lorsque vous déployez votre projet dans le catalogue. Une fois votre projet dans
le catalogue, vous pouvez utiliser l'Explorateur d'objets SQL Server Management Studio
(SSMS) ou Transact-SQL pour définir les valeurs par défaut du serveur.

Définir les valeurs par défaut du serveur avec


l’Explorateur d’objets SSMS
1. Sélectionnez le projet sous le nœud Integration Services, puis cliquez dessus avec
le bouton droit.
2. Cliquez sur Propriétés pour ouvrir la fenêtre de dialogue Propriétés du projet .

3. Ouvrez la page des paramètres en cliquant sur Paramètres sous Sélectionner une
page.

4. Sélectionnez le paramètre souhaité dans la liste Paramètres . Remarque : la


colonne Conteneur permet de faire la distinction entre les paramètres du projet et
les paramètres du package.

5. Dans la colonne Valeur , spécifiez la valeur de paramètre du serveur par défaut


souhaitée.

Définir les paramètres par défaut du serveur avec


Transact-SQL
Pour définir les paramètres par défaut du serveur avec Transact-SQL, utilisez la
procédure stockée catalog.set_object_parameter_value (base de données SSISDB). Pour
afficher les valeurs par défaut actuelles du serveur, interrogez la vue
catalog.object_parameters (base de données SSISDB). Pour effacer une valeur par défaut
du serveur, utilisez la procédure stockée catalog.clear_object_parameter_value (base de
données SSISDB).
Connexions Integration Services (SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Microsoft SQL Server Integration Services utilisent des connexions pour effectuer
différentes tâches et pour implémenter des fonctionnalités Integration Services :

Connexion à des banques de données sources et de destination telles que du


texte, des données XML, des classeurs Excel et des bases de données relationnelles
pour extraire et charger des données.

Connexion à des bases de données relationnelles qui contiennent des données de


référence pour effectuer des recherches exactes ou floues.

Connexion à des bases de données relationnelles pour exécuter des instructions


SQL telles que des commandes SELECT, DELETE et INSERT, et également des
procédures stockées.

Connexion à SQL Server pour effectuer des tâches de maintenance et de transfert


telles que la sauvegarde de bases de données et le transfert de connexions.

Écriture d'entrées de journal dans des fichiers texte, dans des fichiers XML et dans
des tables SQL Server , écriture de configurations de package dans des tables SQL
Server .

Connexion à SQL Server pour créer des tables de travail temporaires dont certaines
transformations ont besoin pour effectuer leur travail.

Connexion à des projets et des bases de données Analysis Services pour accéder à
des modèles d'exploration de données, traiter des cubes et des dimensions, et
exécuter du code DDL.

Spécification de fichiers et de dossiers existants, ou création de nouveaux fichiers


et dossiers à utiliser avec des énumérateurs et des tâches de boucles Foreach.

Connexion à des files d’attente de messages, à WMI (Windows Management


Instrumentation), à SMO ( SQL Server Management Object), au web et à des
serveurs de messagerie.

Pour établir ces connexions, Integration Services utilise des gestionnaires de connexions,
comme décrit dans la section suivante.
Gestionnaires de connexions
Integration Services utilise le gestionnaire de connexions comme représentation logique
d'une connexion. Au moment de la conception, vous définissez les propriétés d'un
gestionnaire de connexions pour décrire la connexion physique qu' Integration Services
crée lors de l'exécution du package. Par exemple, un gestionnaire de connexions inclut
la propriété ConnectionString que vous définissez lors de la conception ; au moment de
l'exécution, une connexion physique est créée à l'aide de la valeur de la propriété de
chaîne de connexion.

Un package peut utiliser plusieurs instances d'un type de gestionnaire de connexions et


vous pouvez définir les propriétés sur chaque instance. Au moment de l'exécution,
chaque instance d'un type de gestionnaire de connexions crée une connexion qui
possède des attributs différents.

SQL Server Integration Services fournit différents types de gestionnaires de connexions


qui permettent aux packages d’établir une connexion à divers serveurs et à diverses
sources de données :

Il y a des gestionnaires de connexions intégrés que le programme d'installation


installe lorsque vous installez Integration Services.

Il y a des gestionnaires de connexions qui sont téléchargeables à partir du site


Web Microsoft .

Vous pouvez créer votre propre gestionnaire de connexions personnalisé si les


gestionnaires de connexions existants ne répondent pas à vos besoins.

Gestionnaires de connexions au niveau du package et au


niveau du projet
Un gestionnaire de connexions peut être créé au niveau du package ou au niveau du
projet. Le gestionnaire de connexions créé au niveau du projet est disponible pour tous
les packages du projet. Le gestionnaire de connexions créé au niveau du package n'est,
quant à lui, disponible que pour ce seul package.

Pour partager des connexions aux sources, vous utilisez les gestionnaires de connexions
créés au niveau du projet au lieu des sources de données. Pour ajouter un gestionnaire
de connexions au niveau du projet, le projet Integration Services doit utiliser le modèle
de déploiement de projet. Quand un projet est configuré pour utiliser ce modèle, le
dossier Gestionnaires de connexions apparaît dans l’Explorateur de solutionset le
dossier Sources de données est supprimé de l’Explorateur de solutions.
7 Notes

Si vous souhaitez utiliser des sources de données dans votre package, vous devez
convertir le projet en modèle de déploiement de package.

Pour plus d’informations sur les deux modèles et sur la conversion d’un projet en
modèle de déploiement de projet, consultez Déployer des projets et des packages
Integration Services (SSIS).

Gestionnaires de connexions intégrés


Le tableau suivant liste les types de gestionnaires de connexions fournis par SQL Server
Integration Services.

Type Description Rubrique

ADO Établit une connexion à des objets ADO (ActiveX Data Gestionnaire de
Objects). connexions ADO

ADO.NET Établit une connexion à une source de données au Gestionnaire de


moyen d'un fournisseur .NET. connexions ADO.NET

CACHE Lit les données du flux de données ou d'un fichier Gestionnaire de


cache (.caw) et peut enregistrer des données dans le connexions du cache
fichier cache.

DQS Établit une connexion à un serveur Data Quality Gestionnaire de


Services et à une base de données Data Quality connexions de
Services sur le serveur. nettoyage DQS

EXCEL Établit une connexion à un fichier de classeur Excel. Gestionnaire de


connexions Excel

FILE Établit une connexion à un fichier ou un dossier. Gestionnaire de


connexions de fichiers

FLATFILE Établit une connexion à des données dans un fichier Gestionnaire de


plat unique. connexions de fichiers
plats

FTP Établit une connexion à un serveur FTP. Gestionnaires de


connexions FTP

HTTP Établit une connexion à un serveur Web. Gestionnaire de


connexions HTTP
Type Description Rubrique

MSMQ Établit une connexion à une file d'attente de Gestionnaire de


messages. connexions MSMQ

MSOLAP100 Établit une connexion à une instance de SQL Server Gestionnaire de


Analysis Services ou d’un projet Analysis Services. connexions Analysis
Services

MULTIFILE Établit une connexion à plusieurs fichiers et dossiers. Gestionnaire de


connexions de fichiers
multiples

MULTIFLATFILE Établit une connexion à plusieurs fichiers et dossiers Gestionnaire de


de données. connexions de fichiers
plats multiples

OLEDB Établit une connexion à une source de données au Gestionnaire de


moyen d'un fournisseur OLE DB. connexions OLE DB

ODBC Établit une connexion à une source de données au Gestionnaire de


moyen d'ODBC. connexions ODBC

SMOServer Établit une connexion à un serveur SMO ( SQL Server Gestionnaire de


Management Objects). connexions SMO

SMTP Établit une connexion à un serveur de messagerie Gestionnaire de


SMTP. connexions SMTP

SQLMOBILE Établit une connexion à une base de données SQL Gestionnaire de


Server Compact. connexions de SQL
Server Compact Edition

WMI Établit une connexion à un serveur et spécifie la Gestionnaire de


portée de la gestion WMI (Windows Management connexions WMI
Instrumentation) sur le serveur.

Gestionnaires de connexions pouvant être téléchargés


Le tableau suivant répertorie d'autres types de gestionnaires de connexions que vous
pouvez télécharger à partir du site Web Microsoft .

) Important

Les gestionnaires de connexions qui figurent dans le tableau suivant fonctionnent


uniquement avec SQL Server Entreprise et SQL Server Développeur.
Type Description Rubrique

ORACLE Établit une Le gestionnaire de connexions Oracle est le composant de


connexion à gestionnaire de connexions du Connecteur Microsoft pour Oracle
un serveur par Attunity. Le Connecteur Microsoft pour Oracle par Attunity
Oracle inclut également une source et une destination. Pour plus
<informations d'informations, consultez la page de téléchargement Microsoft
de version>. Connector for Oracle .

SAPBI Établit une Le gestionnaire de connexions SAP BI est le composant de


connexion à gestionnaire de connexions du Connecteur Microsoft for SAP BI. Le
un système Connecteur Microsoft for SAP BI inclut également une source et une
SAP destination. Pour plus d'informations, consultez la page de
NetWeaver BI téléchargement Microsoft SQL Server 2008 Feature Pack .
version 7.

TERADATA Établit une Le gestionnaire de connexions Teradata est le composant de


connexion à gestionnaire de connexions du Connecteur Microsoft pour Teradata
un serveur par Attunity. Le Connecteur Microsoft pour Teradata par Attunity
Teradata inclut également une source et une destination. Pour plus
<informations d'informations, consultez la page de téléchargement Microsoft
de version>. Connectors for Oracle and Teradata by Attunity (en anglais).

Gestionnaires de connexions personnalisés


Vous pouvez également écrire des gestionnaires de connexions personnalisés. Pour plus
d'informations, consultez Developing a Custom Connection Manager.

Créer des gestionnaires de connexions


Integration Services propose différents gestionnaires de connexions pour répondre aux
besoins de tâches qui se connectent à différents types de serveurs et de sources de
données. Les gestionnaires de connexions sont utilisés par les composants de flux de
données qui extraient et chargent des données dans différents types de banques de
données et par les modules fournisseurs d'informations qui enregistrent des journaux
sur un serveur, dans une table SQL Server ou dans un fichier. Par exemple, un package
contenant une tâche Envoyer un message utilise un gestionnaire de connexions SMTP
pour se connecter à un serveur SMTP (Simple Mail Transfer Protocol). Un package
contenant une tâche d'exécution SQL peut utiliser un gestionnaire de connexions OLE
DB pour se connecter à une base de données SQL Server . Pour plus d’informations,
consultez Connexions Integration Services (SSIS).

Pour créer et configurer automatiquement des gestionnaires de connexions quand vous


créez un package, vous pouvez utiliser l’Assistant Importation et exportation SQL Server
. Cet Assistant vous aide aussi à créer et configurer les sources et destinations qui
utilisent les gestionnaires de connexions. Pour plus d'informations, consultez Create
Packages in SQL Server Data Tools.

Pour créer manuellement un nouveau gestionnaire de connexions et l'ajouter à un


package existant, utilisez la zone Gestionnaires de connexions sous les onglets Flux de
contrôle, Flux de donnéeset Gestionnaires d'événements du concepteur SSIS . Dans la
zone Gestionnaire de connexions , vous devez choisir le type de gestionnaire de
connexions à créer, puis définir ses propriétés dans la boîte de dialogue fournie à cet
effet dans le concepteur SSIS . Pour plus d'informations, consultez la section « Utilisation
de la zone Gestionnaire de connexions », plus loin dans cette rubrique.

Une fois le gestionnaire de connexions ajouté à un package, vous pouvez l'utiliser dans
des tâches, des conteneurs de boucles Foreach, des sources, des transformations et des
destinations. Pour plus d’informations, consultez Tâches Integration Services, Conteneur
de boucles Foreach et Flux de données.

Utilisation de la zone Gestionnaires de connexions


Vous pouvez créer des gestionnaires de connexions lorsque l'onglet Flux de contrôle,
Flux de donnéesou Gestionnaires d'événements du concepteur SSIS est actif.

Le diagramme qui suit montre la zone Gestionnaires de connexions de l'onglet Flux de


contrôle du concepteur SSIS .
Fournisseurs 32 bits et 64 bits pour gestionnaires de
connexions
De nombreux fournisseurs utilisés par des gestionnaires de connexions sont disponibles
en versions 32 bits et 64 bits. L'environnement de conception Integration Services est un
environnement 32 bits et vous ne pouvez voir que des fournisseurs 32 bits pendant la
conception d'un package. Par conséquent, vous pouvez configurer un gestionnaire de
connexions pour utiliser un fournisseur 64 bits spécifique uniquement si la version
32 bits du même fournisseur est également installée.

Au moment de l'exécution, la version appropriée est employée même si vous avez


spécifié la version 32 bits du fournisseur lors de la conception. La version 64 bits du
fournisseur peut être exécutée même si le package est utilisé dans SQL Server Data
Tools (SSDT).

Les deux versions du fournisseur ont le même ID. Pour spécifier si l’exécution de
Integration Services utilise une version 64 bits disponible du fournisseur, vous devez
définir la propriété Run64BitRuntime du projet Integration Services. Si la propriété
Run64BitRuntime a la valeur true, l’exécution trouve le fournisseur 64 bits et l’utilise ; si
Run64BitRuntime a la valeur false, l’exécution trouve et utilise le fournisseur 32 bits.
Pour plus d’informations sur les propriétés que vous pouvez définir sur les projets
Integration Services, consultez Environnements Integration Services (SSIS) et Studio.

Ajouter un gestionnaire de connexions

Ajouter un gestionnaire de connexions lors de la création


d’un package
Utiliser l'Assistant Importation et Exportation SQL Server

En plus de créer et configurer un gestionnaire de connexions, cet Assistant vous


aide également à créer et configurer les sources et destinations qui utilisent le
gestionnaire de connexions. Pour plus d'informations, consultez Create Packages in
SQL Server Data Tools.

Ajouter un gestionnaire de connexions à un package


existant
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l’Explorateur de solutions, double-cliquez sur le package pour l’ouvrir.

3. Dans le concepteur SSIS , cliquez sur l’onglet Flux de contrôle , Flux de données
ou Gestionnaire d’événements pour rendre la zone Gestionnaires de connexions
disponible.

4. Cliquez avec le bouton droit n’importe où dans la zone Gestionnaires de


connexions , puis effectuez l’une des opérations suivantes :

Cliquez sur le type du gestionnaire de connexions à ajouter au package.

-ou-

Si le type que vous voulez ajouter ne figure pas dans la liste, cliquez sur
Nouvelle connexion pour ouvrir la boîte de dialogue Ajout d’un
gestionnaire de connexions SSIS , sélectionnez un type de gestionnaire de
connexions, puis cliquez sur OK.

La boîte de dialogue personnalisée pour le type de gestionnaire de connexions


sélectionné s'ouvre. Pour plus d'informations sur les types de gestionnaire de
connexions et les options disponibles, reportez-vous au tableau d'options suivant.

Gestionnaire de connexions Options

Gestionnaire de connexions Configurer le gestionnaire de connexions OLE DB


ADO

Gestionnaire de connexions Configurer le gestionnaire de connexions ADO.NET


ADO.NET

Gestionnaire de connexions Référence de l’interface utilisateur de la boîte de dialogue


Analysis Services Ajout d’un gestionnaire de connexions Analysis Services

Gestionnaire de connexions Éditeur du gestionnaire de connexions Excel


Excel

Gestionnaire de connexions Éditeur du gestionnaire de connexions de fichiers


de fichiers

Gestionnaire de connexions Référence de l’interface utilisateur de la boîte de dialogue


de fichiers multiples Ajouter un gestionnaire de connexions de fichiers

Gestionnaire de connexions Éditeur du gestionnaire de connexions de fichiers plats


de fichiers plats (page Général)

Éditeur du gestionnaire de connexions de fichiers plats


(page Colonnes)

Éditeur du gestionnaire de connexions de fichiers plats


(page Avancé)

Éditeur du gestionnaire de connexions de fichiers plats


(Enterprise Manager)

Gestionnaire de connexions Éditeur du gestionnaire de connexions de fichiers plats


de fichiers plats multiples multiples (page Général)

Éditeur du gestionnaire de connexions de fichiers plats


multiples (page Colonnes)

Éditeur du gestionnaire de connexions de fichiers plats


multiples (page Avancé)

Éditeur du gestionnaire de connexions de fichiers plats


multiples (page Aperçu)

Gestionnaires de connexions Éditeur du gestionnaire de connexions FTP


FTP
Gestionnaire de connexions Options

Gestionnaire de connexions Éditeur du gestionnaire de connexions HTTP (page


HTTP Serveur)

Éditeur du gestionnaire de connexions HTTP (page Proxy)

Gestionnaire de connexions Éditeur du gestionnaire de connexions MSMQ


MSMQ

Gestionnaire de connexions Informations de référence sur l’interface utilisateur du


ODBC gestionnaire de connexions ODBC

Gestionnaire de connexions Configurer le gestionnaire de connexions OLE DB


OLE DB

Gestionnaire de connexions Éditeur du gestionnaire de connexions SMO


SMO

Gestionnaire de connexions Éditeur du gestionnaire de connexions SMTP


SMTP

Gestionnaire de connexions Éditeur du gestionnaire de connexions SQL Server


de SQL Server Compact Compact Edition (page Connexion)
Edition
Éditeur du gestionnaire de connexions SQL Server
Compact Edition (page Tout)

Gestionnaire de connexions Éditeur du gestionnaire de connexions WMI


WMI

La zone Gestionnaires de connexions répertorie le gestionnaire de connexions


ajouté.

5. Vous pouvez aussi cliquer avec le bouton droit sur le gestionnaire de connexions,
cliquer sur Renommer, puis modifier le nom par défaut du gestionnaire de
connexions.

6. Pour enregistrer le package mis à jour, cliquez sur Enregistrer l’élément


sélectionné dans le menu Fichier .

Ajouter un gestionnaire de connexions au niveau du


projet
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services .

2. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur Gestionnaires de


connexions, puis cliquez sur Nouveau gestionnaire de connexions.
3. Dans la boîte de dialogue Ajout d’un gestionnaire de connexions SSIS ,
sélectionnez le type de gestionnaire de connexions, puis cliquez sur Ajouter.

La boîte de dialogue personnalisée pour le type de gestionnaire de connexions


sélectionné s'ouvre. Pour plus d'informations sur les types de gestionnaire de
connexions et les options disponibles, reportez-vous au tableau d'options suivant.

Gestionnaire de connexions Options

Gestionnaire de connexions Configurer le gestionnaire de connexions OLE DB


ADO

Gestionnaire de connexions Configurer le gestionnaire de connexions ADO.NET


ADO.NET

Gestionnaire de connexions Référence de l’interface utilisateur de la boîte de dialogue


Analysis Services Ajout d’un gestionnaire de connexions Analysis Services

Gestionnaire de connexions Éditeur du gestionnaire de connexions Excel


Excel

Gestionnaire de connexions Éditeur du gestionnaire de connexions de fichiers


de fichiers

Gestionnaire de connexions Référence de l’interface utilisateur de la boîte de dialogue


de fichiers multiples Ajouter un gestionnaire de connexions de fichiers

Gestionnaire de connexions Éditeur du gestionnaire de connexions de fichiers plats


de fichiers plats (page Général)

Éditeur du gestionnaire de connexions de fichiers plats


(page Colonnes)

Éditeur du gestionnaire de connexions de fichiers plats


(page Avancé)

Éditeur du gestionnaire de connexions de fichiers plats


(Enterprise Manager)

Gestionnaire de connexions Éditeur du gestionnaire de connexions de fichiers plats


de fichiers plats multiples multiples (page Général)

Éditeur du gestionnaire de connexions de fichiers plats


multiples (page Colonnes)

Éditeur du gestionnaire de connexions de fichiers plats


multiples (page Avancé)

Éditeur du gestionnaire de connexions de fichiers plats


multiples (page Aperçu)
Gestionnaire de connexions Options

Gestionnaires de connexions Éditeur du gestionnaire de connexions FTP


FTP

Gestionnaire de connexions Éditeur du gestionnaire de connexions HTTP (page


HTTP Serveur)

Éditeur du gestionnaire de connexions HTTP (page Proxy)

Gestionnaire de connexions Éditeur du gestionnaire de connexions MSMQ


MSMQ

Gestionnaire de connexions Informations de référence sur l’interface utilisateur du


ODBC gestionnaire de connexions ODBC

Gestionnaire de connexions Configurer le gestionnaire de connexions OLE DB


OLE DB

Gestionnaire de connexions Éditeur du gestionnaire de connexions SMO


SMO

Gestionnaire de connexions Éditeur du gestionnaire de connexions SMTP


SMTP

Gestionnaire de connexions Éditeur du gestionnaire de connexions SQL Server


de SQL Server Compact Compact Edition (page Connexion)
Edition
Éditeur du gestionnaire de connexions SQL Server
Compact Edition (page Tout)

Gestionnaire de connexions Éditeur du gestionnaire de connexions WMI


WMI

Le gestionnaire de connexions que vous avez ajouté apparaîtra sous le nœud


Gestionnaires de connexions dans l’Explorateur de solutions. Il figurera aussi sous
l’onglet Gestionnaires de connexions de la fenêtre Concepteur SSIS pour tous les
packages du projet. Le nom du gestionnaire de connexions de cet onglet aura un
préfixe (project) afin de distinguer ce gestionnaire de connexions de niveau projet
des gestionnaires de connexions de niveau package.

4. Le cas échéant, cliquez avec le bouton droit sur le gestionnaire de connexions dans
la fenêtre Explorateur de solutions sous le nœud Gestionnaires de connexions
(ou) sous l’onglet Gestionnaires de connexions de la fenêtre Concepteur SSIS ,
cliquez Renommer, puis modifiez le nom par défaut du gestionnaire de
connexions.

7 Notes
Sous l’onglet Gestionnaires de connexions de la fenêtre Concepteur SSIS,
vous ne pouvez pas remplacer le préfixe (project) dans le nom du
gestionnaire de connexions. C'est la procédure normale.

Boîte de dialogue Ajout d’un gestionnaire de connexions


SSIS
La boîte de dialogue Ajout d'un gestionnaire de connexions SSIS vous permet de
sélectionner le type de connexion à ajouter à un package.

Pour en savoir plus sur les gestionnaires de connexions, consultez Connexions


Integration Services (SSIS).

Options
Type du gestionnaire de connexions
Sélectionnez un type de connexion et cliquez sur Ajouterou double-cliquez sur un type
de connexion, pour spécifier les propriétés de connexion à l’aide de l’éditeur pour
chaque type de connexion.

Ajouter
Spécifiez les propriétés de connexion à l'aide de l'éditeur pour chaque type de
connexion.

Créer un paramètre pour une propriété du


gestionnaire de connexions
1. Dans la zone Gestionnaires de connexions , cliquez avec le bouton droit sur le
gestionnaire de connexions pour lequel vous souhaitez créer un paramètre, puis
cliquez sur Paramétrer.

2. Configurez les paramètres dans la boîte de dialogue Paramétrer . Pour plus


d’informations, consultez Paramétrer (boîte de dialogue).

7 Notes

La propriété ConnectionString n’est pas sensible et elle a été conçue pour ne pas
contenir d’informations de mot de passe sensibles. Il est recommandé d’utiliser la
propriété Password pour paramétriser le mot de passe sensible.
Supprimer un gestionnaire de connexions

Supprimer un gestionnaire de connexions d'un package


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Dans le concepteur SSIS , cliquez sur l’onglet Flux de contrôle , Flux de données
ou Gestionnaire d’événements pour rendre la zone Gestionnaires de connexions
disponible.

4. Cliquez avec le bouton droit sur le gestionnaire de connexions à supprimer, puis


cliquez sur Supprimer.

Si vous supprimez un gestionnaire de connexions utilisé par un élément de


package tel qu'une tâche d'exécution SQL ou une source OLE DB, vous obtiendrez
les résultats suivants :

Une icône d'erreur apparaît sur l'élément de package qui a utilisé le


gestionnaire de connexions supprimé.

Échec de validation du package.

Impossible d’exécuter le package.

5. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Supprimer un gestionnaire de connexions partagé


(gestionnaire de connexions au niveau du projet)
1. Pour supprimer un gestionnaire de connexions de niveau projet, cliquez avec le
bouton droit sur le gestionnaire de connexions sous le nœud Gestionnaires de
connexions dans la fenêtre Explorateur de solutions , puis cliquez Supprimer. SQL
Server Data Tools affiche le message d’avertissement suivant :

2 Avertissement

Lorsque vous supprimez un gestionnaire de connexions au niveau projet, les


packages qui utilisent le gestionnaire de connexions peuvent ne pas
s'exécuter. Vous ne pouvez pas annuler cette action. Voulez -vous supprimer
le gestionnaire de connexions ?

2. Cliquez sur OK pour supprimer le gestionnaire de connexions ou sur Annuler pour


le conserver.

7 Notes

Vous pouvez aussi supprimer un gestionnaire de connexions de niveau projet


sous l’onglet Gestionnaire de connexions de la fenêtre Concepteur SSIS
ouverte pour un package du projet. Pour ce faire, cliquez avec le bouton droit
sur le nom du gestionnaire de connexions figurant sous l’onglet, puis cliquez
sur Supprimer.

Définir les propriétés d’un gestionnaire de


connexions
Tous les gestionnaires de connexions peuvent être configurés à l'aide de la fenêtre
Propriétés .

Integration Services fournit également des boîtes de dialogue personnalisées


permettant de modifier les différents types de gestionnaires de connexions dans
Integration Services. La boîte de dialogue offre un ensemble d'options différent pour
chaque type de gestionnaire de connexions.

Modifier un gestionnaire de connexions à l’aide de la


fenêtre Propriétés
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Dans le concepteur SSIS, cliquez sur l’onglet Flux de contrôle , l’onglet Flux de
données ou l’onglet Gestionnaire d’événements pour rendre la zone
Gestionnaires de connexions disponible.

4. Cliquez avec le bouton droit sur le gestionnaire de connexions, puis sur Propriétés.
5. Dans la fenêtre Propriétés , modifiez les valeurs de propriété. La fenêtre Propriétés
offre un accès à des propriétés non configurables dans l’éditeur standard d’un
gestionnaire de connexions.

6. Cliquez sur OK.

7. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Modifier un gestionnaire de connexions à l’aide d’une


boîte de dialogue de gestionnaire de connexions
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Dans le concepteur SSIS , cliquez sur l’onglet Flux de contrôle , Flux de données
ou Gestionnaire d’événements pour rendre la zone Gestionnaires de connexions
disponible.

4. Dans la zone Gestionnaires de connexions , double-cliquez sur le gestionnaire de


connexions pour ouvrir la boîte de dialogue Gestionnaire de connexions . Pour
plus d'informations sur les types spécifiques de gestionnaires de connexions et les
options disponibles pour chaque type, consultez le tableau suivant.

Gestionnaire de connexions Options

Gestionnaire de connexions Configurer le gestionnaire de connexions OLE DB


ADO

Gestionnaire de connexions Configurer le gestionnaire de connexions ADO.NET


ADO.NET

Gestionnaire de connexions Référence de l’interface utilisateur de la boîte de dialogue


Analysis Services Ajout d’un gestionnaire de connexions Analysis Services

Gestionnaire de connexions Éditeur du gestionnaire de connexions Excel


Excel

Gestionnaire de connexions Éditeur du gestionnaire de connexions de fichiers


de fichiers

Gestionnaire de connexions Référence de l’interface utilisateur de la boîte de dialogue


de fichiers multiples Ajouter un gestionnaire de connexions de fichiers
Gestionnaire de connexions Options

Gestionnaire de connexions Éditeur du gestionnaire de connexions de fichiers plats


de fichiers plats (page Général)

Éditeur du gestionnaire de connexions de fichiers plats


(page Colonnes)

Éditeur du gestionnaire de connexions de fichiers plats


(page Avancé)

Éditeur du gestionnaire de connexions de fichiers plats


(Enterprise Manager)

Gestionnaire de connexions Éditeur du gestionnaire de connexions de fichiers plats


de fichiers plats multiples multiples (page Général)

Éditeur du gestionnaire de connexions de fichiers plats


multiples (page Colonnes)

Éditeur du gestionnaire de connexions de fichiers plats


multiples (page Avancé)

Éditeur du gestionnaire de connexions de fichiers plats


multiples (page Aperçu)

Gestionnaires de connexions Éditeur du gestionnaire de connexions FTP


FTP

Gestionnaire de connexions Éditeur du gestionnaire de connexions HTTP (page


HTTP Serveur)

Éditeur du gestionnaire de connexions HTTP (page Proxy)

Gestionnaire de connexions Éditeur du gestionnaire de connexions MSMQ


MSMQ

Gestionnaire de connexions Informations de référence sur l’interface utilisateur du


ODBC gestionnaire de connexions ODBC

Gestionnaire de connexions Configurer le gestionnaire de connexions OLE DB


OLE DB

Gestionnaire de connexions Éditeur du gestionnaire de connexions SMO


SMO

Gestionnaire de connexions Éditeur du gestionnaire de connexions SMTP


SMTP
Gestionnaire de connexions Options

Gestionnaire de connexions Éditeur du gestionnaire de connexions SQL Server


de SQL Server Compact Compact Edition (page Connexion)
Edition
Éditeur du gestionnaire de connexions SQL Server
Compact Edition (page Tout)

Gestionnaire de connexions Éditeur du gestionnaire de connexions WMI


WMI

5. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Contenu associé
Vidéo, Utilisez Microsoft Attunity Connector for Oracle pour améliorer les
performances des packages, sur technet.microsoft.com

Articles Wiki, Connectivité SSIS , sur social.technet.microsoft.com

Entrée de blog, Se connecter à MySQL SSIS , sur blogs.msdn.com.

Article technique Extraction et chargement des données SharePoint dans SQL


Server Integration Services, sur msdn.microsoft.com.

Article technique, You get


"DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER" error
message when using Oracle connection manager in SSIS (Le message d’erreur «
DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER’» s’affiche
lors de l’utilisation du gestionnaire de connexions Oracle dans SSIS), sur le site
support.microsoft.com.
Sources de données des packages
Integration Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

SQL Server Data Tools (SSDT) inclut un objet au moment de la conception que vous
pouvez utiliser dans les packages Microsoft Integration Services : la source de données.

Un objet de source de données est une référence à une connexion et comprend au


minimum une chaîne de connexion et un identificateur de source de données. Il peut
également inclure des métadonnées supplémentaires comme une description, un nom,
un nom d'utilisateur et un mot de passe.

7 Notes

Vous pouvez ajouter des sources de données uniquement aux projets qui sont
configurés pour utiliser le modèle de déploiement de package. Si un projet est
configuré pour utiliser le modèle de déploiement de projet, vous utilisez les
gestionnaires de connexions créés au niveau du projet pour partager les
connexions, au lieu d'utiliser les sources de données.

Pour plus d'informations sur les modèles de déploiement, consultez Deployment of


Projects and Packages. Pour plus d’informations sur la conversion d’un projet en
modèle de déploiement de projet, consultez Déployer des projets sur le serveur
Integration Services.

L'utilisation de sources de données dans les packages Integration Services présente les
avantages suivants :

Une source de données a une étendue de projet, ce qui signifie qu’une source de
données créée dans un projet Integration Services est accessible à tous les
packages de ce projet. Une source de données peut être définie une fois, puis
référencée par des gestionnaires de connexions dans plusieurs packages.

Une source de données permet la synchronisation entre l'objet de source de


données et ses références dans les packages. Si la source de données et les
packages qui la référencent se trouvent dans le même projet, la propriété de
chaîne de connexion des références de la source de données est automatiquement
mise à jour lorsque la source de données change.
Référencer des sources de données
Pour ajouter un objet de source de données à un projet Integration Services , cliquez
avec le bouton droit sur le dossier Sources de données dans l’Explorateur de solutions ,
puis cliquez sur Nouvelle source de données. L’élément est ajouté au dossier Sources
de données . Si vous souhaitez utiliser des objets sources de données créés dans
d'autres projets, vous devez d'abord les ajouter au projet.

Pour utiliser un objet de source de données dans un package, vous devez ajouter un
gestionnaire de connexions qui référence cet objet dans le package. Vous pouvez
l'ajouter au package avant ou pendant la construction du flux de contrôle et des flux de
données du package.

Un objet source de données représente une connexion simple à une source de données
et fournit un accès aux objets de la banque de données qu'il référence. Par exemple, un
objet de source de données qui se connecte à l’exemple de base de données SQL
ServerAdventureWorks inclut les 60 tables de cette base de données.

Il n'existe aucune dépendance entre une source de données et les gestionnaires de


connexions qui la référencent. Si une source de données ne fait plus partie d'un projet,
les packages restent valides car les informations relatives à la source de données,
comme son type de connexion et sa chaîne de connexion, sont incluses dans la
définition du package.
Gestionnaire de connexions ADO
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions ADO permet à un package de se connecter à des objets


ADO (ActiveX Data Objects), comme un recordset. Ce gestionnaire de connexions est
généralement utilisé dans les tâches personnalisées écrites dans une version antérieure
d’un langage comme Microsoft Visual Basic 6.0 ou dans les tâches personnalisées qui
font partie d’une application existante utilisant ADO pour se connecter à une source de
données.

Quand vous ajoutez un gestionnaire de connexions ADO à un package, Microsoft SQL


Server Integration Services crée un gestionnaire de connexions qui sera converti en
connexion ADO au moment de l’exécution, définit les propriétés du gestionnaire de
connexions et ajoute le gestionnaire de connexions à la collection Connections du
package. La propriété ConnectionManagerType du gestionnaire de connexions a pour
valeur ADO.

Résolution des problèmes liés au gestionnaire


de connexions ADO
Lors de la lecture par un gestionnaire de connexions ADO, certains types de données de
date SQL Server génèrent les résultats présentés dans le tableau suivant.

Type de Résultats
données SQL
Server

time, Le package échoue s'il n'utilise pas de commandes SQL paramétrables. Pour
datetimeoffset utiliser des commandes SQL paramétrables, utilisez la tâche d'exécution SQL
dans votre package. Pour plus d’informations, consultez Tâche d’exécution de
requêtes SQL et Paramètres et codes de retour dans la tâche d’exécution SQL.

datetime2 Le gestionnaire de connexions ADO tronque les millisecondes.

7 Notes

Pour plus d’informations sur les types de données SQL Server et leur mappage aux
types de données Integration Services, consultez Types de données (Transact-SQL)
et Types de données Integration Services.
Configuration du gestionnaire de connexions
ADO
Vous pouvez configurer un gestionnaire de connexions ADO de plusieurs manières :

Indiquez une chaîne de connexion spécifique configurée pour répondre aux


besoins du fournisseur sélectionné.

Selon le fournisseur, incluez le nom de la source de données à laquelle se


connecter.

Fournissez les informations d'identification de sécurité nécessaires selon le


fournisseur sélectionné.

Indiquez si la connexion créée à partir du gestionnaire de connexions est


conservée au moment de l'exécution.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Configurer le gestionnaire de connexions OLE DB

Pour plus d’informations sur la configuration d’un gestionnaire de connexions par


programmation, consultez ConnectionManager et Ajout de connexions par programme.

Voir aussi
Connexions Integration Services (SSIS)
Gestionnaire de connexions ADO.NET
Article • 27/10/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions ADO.NET permet à un package d'accéder à des sources


de données à l'aide d'un fournisseur .NET. En général, vous utilisez ce gestionnaire de
connexions pour accéder à des sources de données telles que Microsoft SQL Server.
Vous pouvez également accéder à des sources de données exposées via OLE DB et XML
dans des tâches personnalisées écrites en code managé dans un langage comme C#.

Lorsque vous ajoutez un gestionnaire de connexions ADO.NET à un package, SQL Server


Integration Services crée un gestionnaire de connexions qui sera résolu en connexion
ADO.NET au moment de l’exécution. Il définit les propriétés du gestionnaire de
connexions et ajoute le gestionnaire de connexions à la collection Connections du
package.

La propriété ConnectionManagerType du gestionnaire de connexions a pour valeur


ADO.NET . La valeur de ConnectionManagerType est qualifiée de façon à inclure le nom du

fournisseur .NET utilisé par le gestionnaire de connexions.

7 Notes

Microsoft Entra ID est le nouveau nom d’Azure Active Directory (Azure AD). Nous
sommes en train de mettre à jour la documentation.

Résolution des problèmes liés au gestionnaire


de connexions ADO.NET
Vous pouvez consigner les appels que le gestionnaire de connexions ADO.NET effectue
vers les fournisseurs de données externes. Vous pouvez alors résoudre les problèmes
liés aux connexions établies par le gestionnaire de connexions ADO.NET avec des
sources de données externes. Pour journaliser les appels faits par le gestionnaire de
connexions ADO.NET aux fournisseurs de données externes, activez la journalisation des
packages et sélectionnez l’événement Diagnostic au niveau du package. Pour plus
d’informations, consultez Outils de dépannage pour l’exécution des packages.

Quand elles sont lues par un gestionnaire de connexions ADO.NET, les données de
certains types de données de date SQL Server génèrent les résultats présentés dans le
tableau ci-après.

Type de données Résultats


SQL Server

time, Le package échoue s'il n'utilise pas de commandes SQL paramétrables. Pour
datetimeoffset utiliser des commandes SQL paramétrables, utilisez la tâche d'exécution SQL
dans votre package. Pour plus d’informations, consultez Tâche d’exécution de
requêtes SQL et Paramètres et codes de retour dans la tâche d’exécution
SQL.

datetime2 Le gestionnaire de connexions ADO.NET tronque les millisecondes.

7 Notes

Pour plus d’informations sur les types de données SQL Server et leur mappage aux
types de données Integration Services, consultez Types de données (Transact-SQL)
et Types de données Integration Services.

Configuration du gestionnaire de connexions


ADO.NET
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Fournissez une chaîne de connexion spécifique configurée de façon à satisfaire les


exigences du fournisseur .NET sélectionné.

Selon le fournisseur, incluez le nom de la source de données à laquelle se


connecter.

Fournissez les informations d'identification de sécurité nécessaires selon le


fournisseur sélectionné.

Indiquez si la connexion créée à partir du gestionnaire de connexions est


conservée au moment de l’exécution.

De nombreuses options de configuration du gestionnaire de connexions ADO.NET


dépendent du fournisseur .NET utilisé par le gestionnaire de connexions.

Pour plus d’informations sur les propriétés définissables dans le concepteur SSIS,
consultez Configurer le gestionnaire de connexions ADO.NET.
Pour plus d’informations sur la configuration d’un gestionnaire de connexions par
programmation, consultez ConnectionManager et Ajout de connexions par programme.

Configurer le gestionnaire de connexions ADO.NET


Utilisez la boîte de dialogue Configurer le gestionnaire de connexions ADO.NET pour
ajouter une connexion à une source de données accessible à l’aide d’un fournisseur de
données .NET Framework. Par exemple, un tel fournisseur est le fournisseur SqlClient. Le
gestionnaire de connexions peut utiliser une connexion existante, ou vous pouvez en
créer une nouvelle.

Pour en savoir plus sur le gestionnaire de connexions ADO.NET, consultez ADO.NET


Connection Manager.

Options

Connexions de données
Sélectionnez une connexion de données ADO.NET existante dans la liste.

Propriétés des connexions de données


Indique les propriétés et les valeurs pour la connexion de données ADO.NET
sélectionnée.

Nouveau
Permet de créer une connexion de données ADO.NET via la boîte de dialogue
Gestionnaire de connexions .

Supprimer
Sélectionnez une connexion, puis supprimez-la en sélectionnant Supprimer.

Identités managées pour l’authentification des ressources Azure


Lorsque vous exécutez des packages SSIS sur le runtime d’intégration Azure SSIS dans
Azure Data Factory (ADF), vous pouvez utiliser l’authentification Microsoft Entra avec
l’identité managée système/affectée par l’utilisateur spécifiée pour que votre ADF
accède à Azure SQL Database et SQL Managed Instance. Votre Azure-SSIS IR peut
accéder à votre base de données et copier des données depuis ou vers celui-ci à l’aide
de cette identité managée.

7 Notes
Lorsque vous vous authentifiez avec une identité managée affectée par
l’utilisateur, SSIS Integration Runtime doit être activé avec la même identité.
Pour plus d’informations, consultez Activer l’authentification Microsoft Entra
pour Azure-SSIS Integration Runtime.

Lorsque vous utilisez l’authentification Microsoft Entra pour accéder à Azure


SQL Database ou Azure SQL Managed Instance, vous pouvez rencontrer un
problème lié à l’échec de l’exécution du package ou à des changements de
comportement inattendus. Pour plus d’informations, consultez
Fonctionnalités et limitations d’AAD.

Pour permettre à votre ADF d’accéder à Azure SQL Database à l’aide de son identité
managée, procédez comme suit :

1. Approvisionnez un administrateur Microsoft Entra pour votre serveur logique dans


la base de données Azure SQL par le biais du portail Azure, si vous ne l’avez pas
déjà fait. L’administrateur Microsoft Entra peut être un utilisateur ou un groupe. Si
vous désignez un groupe comme administrateur et que l’identité managée de
votre ADF est membre de ce groupe, vous pouvez ignorer les étapes 2 et 3.
L’administrateur aura un accès complet à votre serveur logique.

2. Créez un utilisateur de base de données autonome pour représenter l’identité


managée système/affectée par l’utilisateur spécifiée pour votre ADF. Connectez-
vous à la base de données à partir de ou vers laquelle vous souhaitez copier des
données à l’aide de SQL Server Management Studio (SSMS) avec une identité
Microsoft Entra qui a au moins l’autorisation ALTER ANY USER. Exécutez
l’instruction T-SQL suivante :

SQL

CREATE USER [your managed identity name] FROM EXTERNAL PROVIDER;

Si vous utilisez l’identité managée affectée par le système pour votre ADF, votre
nom d’identité managée est votre nom ADF. Si vous utilisez une identité managée
affectée par l’utilisateur pour votre ADF, votre nom d’identité managée doit être le
nom d’identité managée affecté à l’utilisateur spécifié.

3. Accordez les autorisations nécessaires à l’identité managée pour votre ADF,


comme vous le faites normalement pour les utilisateurs SQL. Pour connaître les
rôles appropriés, consultez Rôles au niveau de la base de données. Exécutez
l’instruction T-SQL suivante. Pour plus d’options, consultez cet article.
SQL

EXEC sp_addrolemember [role name], [your managed identity name];

Pour utiliser une l’identité managée système/affectée par l’utilisateur spécifiée à votre
ADF pour accéder à Azure SQL Managed Instance, procédez comme suit :

1. Approvisionnez un administrateur Microsoft Entra pour votre Azure SQL Managed


Instance dans le portail Azure, si vous ne l’avez pas encore fait. L’administrateur
Microsoft Entra peut être un utilisateur ou un groupe. Si vous désignez un groupe
comme administrateur et que votre identité managée est membre de ce groupe,
vous pouvez ignorer les étapes 2 à 4. L’administrateur a un accès total à votre
Managed Instance.

2. Créez une connexion pour l’identité managée de votre ADF. Dans SSMS,
connectez-vous à votre instance managée à l’aide d’un compte disposant
d’autorisations sysadmin ou de l’administrateur Microsoft Entra. Dans la master
base de données, exécutez l’instruction T-SQL suivante :

SQL

CREATE LOGIN [your managed identity name] FROM EXTERNAL PROVIDER;

Si vous utilisez l’identité managée affectée par le système pour votre ADF, votre
nom d’identité managée est votre nom ADF. Si vous utilisez une identité managée
affectée par l’utilisateur pour votre ADF, votre nom d’identité managée doit être le
nom d’identité managée affecté à l’utilisateur spécifié.

3. Créez un utilisateur de base de données autonome représentant l’identité


managée système/affectée par l’utilisateur spécifiée pour votre ADF. Connectez-
vous à la base de données à partir de laquelle ou vers laquelle vous souhaitez
copier des données avec SSMS et exécutez l’instruction T-SQL suivante :

SQL

CREATE USER [your managed identity name] FROM EXTERNAL PROVIDER;

4. Accordez les autorisations nécessaires à l’identité managée pour votre ADF,


comme vous le faites normalement pour les utilisateurs SQL. Exécutez l’instruction
T-SQL suivante. Pour plus d’options, consultez cet article.

SQL
ALTER ROLE [role name e.g., db_owner] ADD MEMBER [your managed identity
name];

Enfin, vous pouvez configurer l’authentification Microsoft Entra avec l’identité managée
de votre ADF sur le gestionnaire de connexion ADO.NET. Les options disponibles sont
les suivantes :

Effectuez la configuration au moment du design. Dans le concepteur SSIS, cliquez


avec le bouton droit sur votre gestionnaire de connexions ADO.NET et
sélectionnez Propriétés. Mettez à jour la propriété ConnectUsingManagedIdentity
en spécifiant True .

7 Notes

Actuellement, la propriété ConnectUsingManagedIdentity du gestionnaire de


connexion ne prend pas effet lorsque vous exécutez votre package dans le
concepteur SSIS ou sur SQL Server, ce qui indique que l’authentification
Microsoft Entra avec l’identité managée de votre ADF ne fonctionne pas.

Effectuez la configuration au moment de l’exécution. Quand vous exécutez votre


package via SSMS ou l’Activité Exécuter le package SSIS dans le pipeline ADF,
recherchez le gestionnaire de connexions ADO.NET et mettez à jour sa propriété
ConnectUsingManagedIdentity avec la valeur True .

7 Notes

Sur Azure-SSIS IR, toutes les autres méthodes d’authentification (par exemple,
sécurité intégrée et mot de passe) préconfigurées sur votre gestionnaire de
connexions ADO.NET sont remplacées lors de l’utilisation de l’authentification
Microsoft Entra avec l’identité managée de votre ADF.

Pour configurer l’authentification Microsoft Entra avec l’identité managée de votre ADF
sur vos paquets existants, la meilleure façon est de reconstruire votre projet SSIS avec la
dernière version du concepteur SSIS au moins une fois. Redéployez votre projet SSIS sur
votre runtime d’intégration Azure-SSIS, afin que la nouvelle propriété du gestionnaire
de connexions ConnectUsingManagedIdentity soit ajoutée automatiquement à tous les
gestionnaires de connexions ADO.NET dans votre projet. L’autre méthode consiste à
utiliser directement la substitution de propriété avec le chemin de propriété
\Package.Connections[{nom de votre gestionnaire de
connexions}].Properties[ConnectUsingManagedIdentity] attribué à True au moment de
l’exécution.

Voir aussi
Source ADO.NET
Destination ADO.NET
Connexions Integration Services (SSIS)

Commentaires
Cette page a-t-elle été utile ?  Yes  No

Indiquer des commentaires sur le produit | Obtenir de l’aide sur Microsoft Q&A
Gestionnaire de connexions Analysis
Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions SQL Server Analysis Services permet à un package de se


connecter à un serveur qui exécute une base de données Analysis Services ou à un
projet Analysis Services qui procure un accès à des données de cube et de dimension. La
connexion à un projet Analysis Services est possible uniquement pendant le
développement de packages dans SQL Server Data Tools (SSDT). Au moment de
l'exécution, les packages se connectent au serveur et à la base de données sur lesquels
vous avez déployé le projet Analysis Services .

Les tâches (telles que la tâche DDL d’exécution Analysis Services et la tâche de
traitement Analysis Services ) et les destinations (telles que la destination Apprentissage
du modèle d’exploration de données) utilisent un gestionnaire de connexions Analysis
Services .

Pour plus d’informations sur les bases de données Analysis Services, consultez Bases de
données de modèle multidimensionnel (SSAS).

Configuration du gestionnaire de connexions


Analysis Services
Quand vous ajoutez un gestionnaire de connexions Analysis Services à un package, SQL
Server Integration Services crée un gestionnaire de connexions résolu en une connexion
Analysis Services au moment de l’exécution, définit les propriétés du gestionnaire de
connexions et ajoute le gestionnaire de connexions à la collection Connexions sur le
package. La propriété ConnectionManagerType du gestionnaire de connexions a pour
valeur MSOLAP100.

Vous pouvez configurer le gestionnaire de connexions Analysis Services comme suit :

Spécifiez une chaîne de connexion configurée de façon à satisfaire les exigences


du fournisseur Microsoft OLE pour Analysis Services.

Spécifiez l'instance de Analysis Services ou le projet Analysis Services auquel se


connecter.
Si vous vous connectez à une instance de Analysis Services, spécifiez le mode
d'authentification.

7 Notes

Si vous utilisez SSIS dans Azure Data Factory (ADF) et que vous souhaitez vous
connecter à une instance d’Azure Analysis Services (AAS), vous ne pouvez pas
utiliser un compte avec l’authentification multifacteur (MFA) activée. Au lieu de cela,
vous devez utiliser un compte qui ne nécessite aucune interactivité/authentification
MFA ou un principal du service. Pour utiliser ce dernier, rendez-vous ici pour en
créer un et lui affecter le rôle d’administrateur de serveur. Sélectionnez ensuite
Utiliser un nom d’utilisateur et un mot de passe spécifiques pour ouvrir une
session sur le serveur dans votre gestionnaire de connexions et, pour finir, entrez
vos User name: app:YourApplicationID et Password: YourAuthorizationKey .

Indiquez si la connexion créée à partir du gestionnaire de connexions est


conservée au moment de l'exécution.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d’informations sur les propriétés que vous pouvez définir dans le Concepteur
SSIS , cliquez sur une des rubriques suivantes :

Référence de l’interface utilisateur de la boîte de dialogue Ajout d’un gestionnaire


de connexions Analysis Services

Pour plus d’informations sur la configuration d’un gestionnaire de connexions par


programmation, consultez ConnectionManager et Ajout de connexions par programme.
Référence de l'interface utilisateur de la
boîte de dialogue Ajout d'un
gestionnaire de connexions Analysis
Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Ajout d’un gestionnaire de connexions Analysis Services


pour créer une connexion à un serveur exécutant SQL Server Analysis Servicesou pour
modifier les propriétés de connexion.

Pour en savoir plus sur le gestionnaire de connexions Analysis Services, consultez


Analysis Services Connection Manager.

Options
Créer une connexion à un ordinateur exécutant Analysis Services
Utilisez la connexion par défaut à un serveur exécutant une instance d’ Analysis
Servicesou créez une connexion en cliquant sur Modifier.

Modifier
Utilisez la boîte de dialogue Gestionnaire de connexions pour créer une connexion à un
serveur exécutant une instance d’ Analysis Serviceset pour modifier les propriétés de
connexion.

Créer une connexion à un projet Analysis Services dans cette solution


Spécifiez que la connexion utilisera un projet Analysis Services dans la solution ouverte.

7 Notes

Les projets de modèle tabulaire Analysis Services ne sont pas pris en charge pour
ce scénario.

Projet Analysis Services


Sélectionnez un projet Analysis Services dans la liste.

Voir aussi
Guide de référence des erreurs et des messages propres à Integration Services
Connexions Integration Services (SSIS)
Gestionnaire de connexions Azure Data
Lake Analytics
Article • 16/01/2024

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

) Important

Azure Data Lake Analytics sera mis hors service le 29 février 2024. Découvrez-en
plus avec cette annonce .

Un package SQL Server Integration Services (SSIS) peut utiliser le gestionnaire de


connexions Azure Data Lake Analytics pour se connecter à un compte Data Lake
Analytics avec l’un de ces deux types d’authentification suivants :

Identité de l’utilisateur Microsoft Entra


Identité du service Microsoft Entra

Le gestionnaire de connexions Data Lake Analytics est un composant de SQL Server


Integration Services (SSIS) Feature Pack pour Azure.

7 Notes

Bien que Microsoft Entra ID soit le nouveau nom d'Azure Active Directory (Azure
AD) pour empêcher l'interruption des environnements existants, Azure AD reste
toujours dans certains éléments codés en dur, tels que les champs d'interface
utilisateur, les fournisseurs de connexions, les codes d'erreur et cmdlets. Dans cet
article, ces deux noms sont interchangeables.

Configurer le gestionnaire de connexions


1. Dans la boîte de dialogue Ajout d’un gestionnaire de connexions SSIS,
sélectionnez AzureDataLakeAnalytics>Ajouter. La boîte de dialogue Éditeur du
gestionnaire de connexions Azure Data Lake Analytics s’ouvre.

2. Dans le champ Nom de compte ADLA de la boîte de dialogue Éditeur du


gestionnaire de connexions Azure Data Lake Analytics, indiquez le nom du
compte Data Lake Analytics. Exemple : myadlaaccountname.
3. Dans le champ Authentification, choisissez le type d’authentification adapté pour
accéder aux données dans Data Lake Analytics.

a. Si vous sélectionnez l’option d’authentification par l’identité de l’utilisateur


Azure Active Directory :

i. Renseignez les champs Nom d’utilisateur et Mot de passe.


ii. Sélectionnez Tester la connexion pour tester la connexion. Si l’administrateur
client ou vous-même n’avez pas déjà autorisé SSIS à accéder à votre compte
Data Lake Analytics, sélectionnez Accepter à l’invite. Pour plus d’informations
sur cette expérience de consentement, consultez Intégration d’applications avec
Microsoft Entra ID.

7 Notes

L’authentification multifacteur et l’authentification de compte Microsoft ne


sont pas prises en charge lorsque vous sélectionnez l’option d’authentification
par l’identité de l’utilisateur Azure Active Directory.

a. Si vous sélectionnez l’option d’authentification par l’identité du service Azure


Active Directory :

b. Créez une application et un principal de service Microsoft Entra pouvant


accéder au compte Data Lake Analytics. Pour plus d’informations sur cette
option d’authentification, consultez Créer une application et un principal de
service Microsoft Entra pouvant accéder aux ressources.

c. Pour permettre à cette application Microsoft Entra d’accéder à votre compte


Data Lake Analytics, attribuez des autorisations appropriées. Découvrez
comment accorder des autorisations à votre compte Data Lake Analytics avec
l’Assistant Ajout d’utilisateurs.

d. Renseignez les valeurs des champs ID d’application, Clé d’authentification, et


ID de locataire.

e. Sélectionnez Tester la connexion pour tester la connexion.

4. Sélectionnez OK pour fermer la boîte de dialogue Éditeur du gestionnaire de


connexions Azure Data Lake Analytics.

Afficher les propriétés du gestionnaire de


connexions
Les propriétés du gestionnaire de connexions que vous avez créées apparaissent dans la
fenêtre Propriétés .

Commentaires
Cette page a-t-elle été utile ?  Yes  No

Indiquer des commentaires sur le produit | Obtenir de l’aide sur Microsoft Q&A
Gestionnaire de connexions Azure Data
Lake Store
Article • 27/10/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un package SQL Server Integration Services (SSIS) peut utiliser le gestionnaire de


connexions Azure Data Lake Store pour se connecter à un compte Azure Data Lake
Storage Gen1 avec un des deux types d’authentification suivants :

Identité de l’utilisateur Microsoft Entra


Identité du service Microsoft Entra

Le gestionnaire de connexions Azure Data Lake Store est un composant de SQL Server
Integration Services (SSIS) Feature Pack pour Azure.

7 Notes

Bien que Microsoft Entra ID soit le nouveau nom d'Azure Active Directory (Azure
AD) pour empêcher l'interruption des environnements existants, Azure AD reste
toujours dans certains éléments codés en dur, tels que les champs d'interface
utilisateur, les fournisseurs de connexions, les codes d'erreur et cmdlets. Dans cet
article, ces deux noms sont interchangeables.

Prérequis
Pour que le gestionnaire de connexions Azure Data Lake Store et les composants qui
l’utilisent, c’est-à-dire la source Data Lake Storage Gen1 et la destination Azure Data
Lake Store Gen1, puissent se connecter aux services, veillez à télécharger la dernière
version du Feature Pack Azure ici .

Configurer le gestionnaire de connexions Azure


Data Lake Store
1. Dans la boîte de dialogue Ajout d’un gestionnaire de connexions SSIS,
sélectionnez AzureDataLake, puis Ajouter. La boîte de dialogue Éditeur du
gestionnaire de connexions Azure Data Lake Store s’affiche.
2. Dans la boîte de dialogue Éditeur du gestionnaire de connexions Azure Data Lake
Store, dans le champ Hôte ADLS, spécifiez l’URL de l’hôte Azure Data Lake Storage
Gen1. Par exemple, https://test.azuredatalakestore.net ou
test.azuredatalakestore.net .

3. Dans le champ Authentification, choisissez le type d’authentification adapté pour


accéder aux données dans Data Lake Storage Gen1.

a. Si vous sélectionnez l’option d’authentification par l’identité de l’utilisateur


Azure Active Directory, effectuez les étapes suivantes :

i. Renseignez les champs Nom d’utilisateur et Mot de passe.

ii. Sélectionnez Tester la connexion pour tester la connexion. Si l’administrateur


du locataire ou vous-même n’avez pas préalablement autorisé SSIS à accéder
à vos données Data Lake Storage Gen1, sélectionnez Accepter quand vous y
êtes invité. Pour plus d’informations sur cette expérience de consentement,
consultez Intégration d’applications avec Microsoft Entra ID.

7 Notes

L’authentification multifacteur et l’authentification de compte Microsoft ne


sont pas prises en charge lorsque vous sélectionnez l’option
d’authentification par l’identité de l’utilisateur Azure Active Directory.

b. Si vous sélectionnez l’option d’authentification par l’identité du service Azure


Active Directory, effectuez les étapes suivantes :

i. Créez une application Microsoft Entra et un principal de service pour accéder


aux données Data Lake Storage Gen1.

ii. Attribuez les autorisations appropriées pour permettre à cette application


AAD d’accéder à vos ressources Data Lake Storage Gen1. Pour plus
d’informations sur cette option d’authentification, consultez Créer une
application et un principal de service Microsoft Entra pouvant accéder aux
ressources.

iii. Renseignez les champs ID client, Clé secrète et Nom du locataire.

iv. Sélectionnez Tester la connexion pour tester la connexion.

4. Sélectionnez OK pour fermer la boîte de dialogue Éditeur du gestionnaire de


connexions Azure Data Lake Store.
Afficher les propriétés du gestionnaire de
connexions
Les propriétés du gestionnaire de connexions que vous avez créées apparaissent dans la
fenêtre Propriétés .

Commentaires
Cette page a-t-elle été utile ?  Yes  No

Indiquer des commentaires sur le produit | Obtenir de l’aide sur Microsoft Q&A
Gestionnaire de connexions Azure
HDInsight
Article • 15/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le gestionnaire de connexions Azure HDInsight permet à un package SSIS de se


connecter à un cluster Azure HDInsight.

Le gestionnaire de connexions Azure HDInsight est un composant de SQL Server


Integration Services (SSIS) Feature Pack pour Azure.

Pour créer et configurer un gestionnaire de connexions Azure HDInsight, effectuez les


étapes suivantes :

1. Dans la boîte de dialogue Ajout d’un gestionnaire de connexions SSIS,


sélectionnez AzureHDInsight, puis cliquez sur Ajouter.
2. Dans l’Éditeur du gestionnaire de connexions Azure HDInsight, spécifiez le nom
DNS du cluster (sans le préfixe de protocole), le nom d’utilisateur et le mot de
passe du cluster HDInsight auquel se connecter.
3. Cliquez sur OK pour fermer la boîte de dialogue.
4. Les propriétés du gestionnaire de connexions que vous avez créées apparaissent
dans la fenêtre Propriétés .
Gestionnaire de connexions Azure
Resource Manager
Article • 30/03/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le gestionnaire de connexions Azure Resource Manager permet à un package SSIS de


gérer les ressources Azure à l’aide d’un principal du service.

Le gestionnaire de connexions Azure Resource Manager est un composant de SQL


Server Integration Services (SSIS) Feature Pack pour Azure.

Pour créer et configurer un gestionnaire de connexions Azure Resource Manager,


effectuez les étapes suivantes :

1. Dans la boîte de dialogue Ajout d’un gestionnaire de connexions SSIS,


sélectionnez AzureResourceManager, puis cliquez sur Ajouter.
2. Dans l’Éditeur du gestionnaire de connexions Azure Resource Manager, spécifiez
l’ID d’application, la clé de l’application et l’ID de locataire du principal du service.
Pour plus d’informations sur ces propriétés, consultez cet article.
3. Cliquez sur OK pour fermer la boîte de dialogue.
4. Les propriétés du gestionnaire de connexions que vous avez créées apparaissent
dans la fenêtre Propriétés .
Gestionnaire de connexions de Stockage
Azure
Article • 27/10/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le gestionnaire de connexions de Stockage Azure permet à un package SQL Server


Integration Services (SSIS) de se connecter à un compte de Stockage Azure. Le
gestionnaire de connexions est un composant du Feature Pack SSIS (SQL Server
Integration Services) pour Azure.

Dans la boîte de dialogue Ajout d’un gestionnaire de connexions SSIS, sélectionnez


AzureStorage>Ajouter.

Les propriétés suivantes sont disponibles.

Service : spécifie le service de stockage auquel se connecter.


Account name (Nom du compte) : spécifie le nom du compte de stockage.
Authentication (Authentification) : spécifie la méthode d’authentification à utiliser.
Les authentifications AccessKey, ServicePrincipal et SharedAccessSignature sont
prises en charge.
AccessKey : pour cette méthode d’authentification, spécifiez la clé de compte.
ServicePrincipal : pour cette méthode d’authentification, spécifiez l’ID
d’application, la clé d’application et l’ID de locataire du principal du service.
Pour que la connexion de test fonctionne, le principal de service doit disposer
au moins du rôle Lecteur des données Blob du stockage pour le compte de
stockage. Pour plus d’informations, consultez Octroyer l’accès aux données blob
et de file d’attente Azure avec RBAC dans le Portail Azure.
SharedAccessSignature : pour cette méthode d’authentification, spécifiez au
moins le jeton de la signature d’accès partagé. Pour tester la connexion,
spécifiez en plus l’étendue de ressource à tester. Il peut s’agir de Service,
Conteneur ou Objet blob. Pour Conteneur et Objet blob, spécifiez
respectivement le nom du conteneur et le chemin de l’objet blob. Pour plus
d’informations, consultez Vue d’ensemble de la signature d’accès partagé de
Stockage Azure.
Environment : spécifie l’environnement de cloud qui héberge le compte de
stockage.

7 Notes
Microsoft Entra ID est le nouveau nom d’Azure Active Directory (Azure AD). Nous
sommes en train de mettre à jour la documentation.

Identités managées pour l’authentification des


ressources Azure
Lorsque vous exécutez des packages SSIS sur le Azure-SSIS Integration Runtime (IR)
dans Azure Data Factory (ADF), vous pouvez utiliser l’authentification Microsoft Entra
avec l’identité managée /système affectée par l’utilisateur spécifiée pour que votre ADF
accède à Stockage Azure. Votre Azure-SSIS IR peut accéder à votre compte de stockage
et copier des données depuis ou vers celui-ci à l’aide de cette identité managée.

7 Notes

Lorsque vous vous authentifiez avec une identité managée affectée par l’utilisateur,
SSIS Integration Runtime doit être activé pour l’authentification avec la même
identité. Pour plus d’informations, consultez Activer l’authentification Microsoft
Entra pour Azure-SSIS Integration Runtime.

Pour plus d’informations sur l’authentification de Stockage Azure en général, consultez


Authentifier l’accès à Stockage Azure à l’aide d’AAD. Pour utiliser l’authentification
Microsoft Entra avec l’identité managée système/affectée par l’utilisateur spécifiée pour
que votre ADF accède à Stockage Azure, procédez comme suit :

1. Recherchez l’identité managée système/affectée par l’utilisateur spécifiée pour


votre ADF à partir du portail Azure. Accédez aux Propriétés de votre fabrique de
données. Copiez l’ID d’application de l’identité managée (et non pas l’ID d’objet
de l’identité managée).

2. Accordez les autorisations requises à l’identité managée système/affectée par


l’utilisateur pour votre ADF pour accéder à Stockage Azure. Pour plus
d’informations sur les rôles, consultez l’article Gérer les droits d’accès aux données
de Stockage Azure avec RBAC.

En tant que source, dans le contrôle d’accès (IAM), accordez au moins le rôle
Lecteur des données Blob du stockage.
En tant que destination, dans le contrôle d’accès (IAM), accordez au moins le
rôle Contributeur aux données Blob du stockage.
Enfin, vous pouvez configurer l’authentification AAD avec l’identité managée
système/affectée par l’utilisateur spécifiée pour votre ADF sur le gestionnaire de
connexions de Stockage Azure. Les options disponibles sont les suivantes :

Effectuez la configuration au moment du design. Dans le concepteur SSIS,


double-cliquez sur votre gestionnaire de connexions de Stockage Azure pour
ouvrir l’Éditeur du gestionnaire de connexions de Stockage Azure. Sélectionnez
l’option Utiliser l’identité managée pour s’authentifier sur Azure.

7 Notes

Actuellement, la propriété ConnectUsingManagedIdentity du gestionnaire de


connexion ne prend pas effet lorsque vous exécutez votre package dans le
concepteur SSIS ou sur SQL Server, ce qui indique que l’authentification
Microsoft Entra avec l’identité managée de votre ADF ne fonctionne pas.

Effectuez la configuration au moment de l’exécution. Lorsque vous exécutez


votre package par le biais de SQL Server Management Studio (SSMS) ou de
l’Activité Exécuter le package SSIS dans le pipeline ADF, recherchez le gestionnaire
de connexions Stockage Azure et mettez à jour sa propriété
ConnectUsingManagedIdentity avec la valeur True .

7 Notes

Sur Azure-SSIS IR, toutes les autres méthodes d’authentification (par exemple,
sécurité intégrée et mot de passe) préconfigurées sur votre gestionnaire de
connexions Stockage Azure sont remplacées lors de l’utilisation de
l’authentification AAD avec l’identité managée système/affectée par
l’utilisateur spécifiée pour votre ADF.

Pour configurer l’authentification Microsoft Entra avec l’identité managée de votre ADF
sur vos paquets existants, la meilleure façon est de reconstruire votre projet SSIS avec la
dernière version du concepteur SSIS au moins une fois. Redéployez votre projet SSIS sur
votre runtime d’intégration Azure-SSIS, afin que la nouvelle propriété du gestionnaire
de connexions ConnectUsingManagedIdentity soit ajoutée automatiquement à tous les
gestionnaires de connexions Stockage Azure dans votre projet. L’autre méthode consiste
à utiliser directement la substitution de propriété avec le chemin de propriété
\Package.Connections[{nom de votre gestionnaire de
connexions}].Properties[ConnectUsingManagedIdentity] affecté à True au moment de
l’exécution.
Sécuriser le trafic réseau vers votre compte de
stockage
ADF est désormais un service Microsoft approuvé sur Stockage Azure. Lorsque vous
utilisez l’authentification Microsoft Entra avec l’identité managée système/affectée par
l’utilisateur spécifiée pour votre ADF, vous pouvez sécuriser votre compte de stockage
en limitant l’accès aux réseaux sélectionnés tout en autorisant votre ADF à y accéder.
Pour obtenir des instructions, reportez-vous à l’article Gestion des exceptions.

Voir aussi
Connexions Integration Services (SSIS)

Commentaires
Cette page a-t-elle été utile ?  Yes  No

Indiquer des commentaires sur le produit | Obtenir de l’aide sur Microsoft Q&A
Gestionnaire de connexions
d’abonnement Azure
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le gestionnaire de connexions d’abonnement Azure permet à un package SSIS de se


connecter à un abonnement Azure en utilisant les valeurs spécifiées pour les propriétés :
ID d’abonnement Azure et certificat de gestion.

Le gestionnaire de connexions d’abonnement Azure est un composant de SQL Server


Integration Services (SSIS) Feature Pack pour Azure.

1. Dans la boîte de dialogue Ajout d’un gestionnaire de connexions SSIS ci-dessus,


sélectionnez Abonnement Azure, puis cliquez sur Ajouter. Vous devez voir
s’afficher la boîte de dialogue Éditeur du gestionnaire de connexions
d’abonnement Azure .

2. Entrez votre ID d’abonnement Azure, qui identifie de façon unique un abonnement


Azure, pour l’ ID d’abonnement Azure. Cette valeur est indiquée sur le portail de
gestion Azure , à la page Paramètres :
3. Choisissez Emplacement du magasin de certificats de gestion et Nom du
magasin de certificats de gestion dans les listes déroulantes.

4. Entrez l’empreinte numérique du certificat de gestion ou cliquez sur Parcourir...


pour choisir un certificat dans le magasin sélectionné. Le certificat doit être
téléchargé en tant que certificat de gestion pour l’abonnement. Pour ce faire,
cliquez sur Télécharger dans la page suivante du portail Azure (voir cet article
MSDN pour plus de détails).

5. Cliquez sur Tester la connexion pour tester la connexion.

6. Cliquez sur OK pour fermer la boîte de dialogue.


Gestionnaire de connexions Excel
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions Excel permet à un package de se connecter à un fichier


de classeur Microsoft Excel. La source et la destination Excel incluses dans Microsoft SQL
Server Integration Services utilisent le gestionnaire de connexions Excel.

) Important

Pour obtenir des informations détaillées sur la connexion à des fichiers Excel, et sur
les limitations et les problèmes connus liés au chargement de données depuis ou
vers des fichiers Excel, consultez Charger des données depuis ou vers Excel avec
SQL Server Integration Services (SSIS).

Quand vous ajoutez un gestionnaire de connexions Excel à un package, Integration


Services crée un gestionnaire de connexions qui est converti en connexion Excel au
moment de l’exécution, définit les propriétés du gestionnaire de connexions et ajoute le
gestionnaire de connexions à la collection Connections du package.

La propriété ConnectionManagerType du gestionnaire de connexions a pour valeur


EXCEL.

Configurer le gestionnaire de connexions Excel


Vous pouvez configurer le gestionnaire de connexions Excel de plusieurs manières :

Spécifiez le chemin d'accès du fichier Excel.

Spécifiez la version d'Excel utilisée pour créer le fichier.

Indiquez si la première ligne de données dans les feuilles de calcul ou plages


sélectionnées contient des noms de colonnes.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d’informations sur les propriétés définissables dans le concepteur SSIS ,
consultez Éditeur du gestionnaire de connexions Excel.
Pour plus d’informations sur la configuration d’un gestionnaire de connexions par
programmation, consultez ConnectionManager et Ajout de connexions par programme.

Éditeur du gestionnaire de connexions Excel


La boîte de dialogue Éditeur du gestionnaire de connexions Excel vous permet
d'ajouter une connexion à un classeur Microsoft Excel existant ou nouveau.

Options
Chemin de fichier Excel
Tapez le chemin et le nom d’un fichier de classeur Excel existant ou nouveau.

Parcourir
Utilisez la boîte de dialogue Ouvrir pour accéder au dossier contenant le fichier Excel
existant ou au dossier où vous souhaitez créer le fichier.

Version Excel
Spécifiez la version de Microsoft Excel qui a été utilisée pour créer le fichier.

La première ligne possède des noms de colonnes


Permet de spécifier si la première ligne de données dans la feuille de calcul sélectionnée
contient les noms des colonnes. La valeur par défaut de cette option est True.

Solution pour importer des données de types


mixtes à partir d'Excel
Si vous utilisez des données contenant des types de données mixtes, par défaut, le
pilote Excel lit les 8 premières lignes (configurées par la clé de registre TypeGuessRows).
Sur la base des 8 premières lignes de données, le pilote Excel essaie de deviner le type
de données de chaque colonne. Par exemple, si votre source de données Excel
comporte des chiffres et du texte dans une colonne, si les 8 premières lignes
contiennent des chiffres, le pilote peut déterminer, sur la base de ces 8 premières lignes,
que les données de la colonne sont de type entier. Dans ce cas, SSIS ignore les valeurs
de texte et les importe comme des données NULL dans la destination.

Pour résoudre ce problème, vous pouvez essayer l'une des solutions suivantes :

Remplacez le type de colonne Excel par Texte dans le fichier Excel.

Ajoutez la propriété étendue IMEX à la chaîne de connexion pour remplacer le


comportement par défaut du pilote. Lorsque vous ajoutez la propriété étendue
« ;IMEX=1 » à la fin de la chaîne de connexion, Excel traite toutes les données
comme du texte. Voir l’exemple suivant :

ACE

Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=C:\ExcelFileName.xlsx;Extended Properties="EXCEL 12.0
XML;HDR=YES;IMEX=1";

Pour que cette solution fonctionne de manière fiable, vous devrez peut-être
également modifier les paramètres du registre. Le fichier main.cmd se présente
comme suit :

Invite de commandes Windows

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

Enregistrez le fichier au format CSV et modifiez le package SSIS pour qu’il prenne
en charge une importation CSV.

Tâches associées
Charger des données depuis ou vers Excel avec SQL Server Integration Services (SSIS)
Source Excel
Destination Excel
Gestionnaire de connexions de fichiers
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions de fichiers permet à un package de référencer un fichier


ou dossier existant ou de créer un fichier ou dossier au moment de l'exécution. Par
exemple, vous pouvez référencer un fichier Excel. Certains composants de Microsoft SQL
Server Integration Services utilisent les informations figurant dans les fichiers pour
réaliser leur travail. Par exemple, une tâche d'exécution SQL peut référencer un fichier
contenant les instructions SQL exécutées par la tâche. D'autres composants exécutent
des opérations sur les fichiers. Par exemple, la tâche de système de fichiers peut
référencer un fichier pour le copier à un nouvel emplacement.

Types d'utilisations du gestionnaire de


connexions de fichiers
La propriété FileUsageType du gestionnaire de connexions de fichiers spécifie la
manière dont la connexion de fichiers est utilisée. Le gestionnaire de connexions de
fichiers peut créer un fichier, créer un dossier, utiliser un fichier existant ou utiliser un
dossier existant.

Le tableau suivant répertorie les valeurs de FileUsageType.

Valeur Description

0 Le gestionnaire de connexions de fichiers utilise un fichier existant.

1 Le gestionnaire de connexions de fichiers crée un fichier.

2 Le gestionnaire de connexions de fichiers utilise un dossier existant.

3 Le gestionnaire de connexions de fichiers crée un dossier.

Connexions de fichiers ou de dossiers multiples


Le gestionnaire de connexions de fichiers peut référencer un seul fichier ou dossier. Pour
référencer plusieurs fichiers ou dossiers, utilisez un gestionnaire de connexions de
fichiers multiples au lieu du gestionnaire de connexions de fichiers. Pour plus
d’informations, consultez Gestionnaire de connexions de fichiers multiples.
Configuration du gestionnaire de connexions
de fichiers
Lorsque vous ajoutez un gestionnaire de connexions de fichiers à un package,
Integration Services crée un gestionnaire de connexions qui sera converti en connexion
de fichiers au moment de l’exécution, définit les propriétés de la connexion de fichiers et
ajoute la connexion de fichiers à la collection Connections du package.

La propriété ConnectionManagerType du gestionnaire de connexions a pour valeur


FILE.

Vous pouvez configurer un gestionnaire de connexions de fichiers de plusieurs manières


:

Spécifiez le type d'utilisation.

Spécifiez un fichier ou un dossier.

Vous pouvez définir la propriété ConnectionString du gestionnaire de connexions de


fichiers en spécifiant une expression dans la fenêtre Propriétés de SQL Server Data Tools
(SSDT). Toutefois, pour éviter une erreur de validation lorsque vous utilisez une
expression pour spécifier le fichier ou dossier, dans l’Éditeur du gestionnaire de
connexions de fichiers, pour Fichier/Dossier, ajoutez un chemin de fichier ou de
dossier.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d’informations sur les propriétés définissables dans le concepteur SSIS ,
consultez Éditeur du gestionnaire de connexions de fichiers.

Pour plus d’informations sur la configuration d’un gestionnaire de connexions par


programmation, consultez ConnectionManager et Ajout de connexions par programme.

Éditeur du gestionnaire de connexions de


fichiers
Utilisez la boîte de dialogue Éditeur du gestionnaire de connexions de fichiers pour
spécifier les propriétés à utiliser pour se connecter à un fichier ou à un dossier.

7 Notes
Vous pouvez définir la propriété ConnectionString du gestionnaire de connexions
de fichiers en spécifiant une expression dans la fenêtre Propriétés de SQL Server
Data Tools (SSDT). Toutefois, pour éviter une erreur de validation lorsque vous
utilisez une expression pour spécifier le fichier ou dossier, dans l’Éditeur du
gestionnaire de connexions de fichiers, pour Fichier/Dossier, ajoutez un chemin
de fichier ou de dossier.

Pour en savoir plus sur le gestionnaire de connexions de fichiers, consultez File


Connection Manager.

Options
Type d'utilisation
Indiquez si le Gestionnaire de connexions de fichiers se connecte à un fichier ou
dossier existant ou s’il crée un nouveau fichier ou dossier.

Value Description

Créer un fichier Crée un nouveau fichier au moment de l'exécution.

Fichier existant Utilise un fichier existant.

Créer un dossier Crée un nouveau dossier au moment de l'exécution.

Dossier existant Utilise un dossier existant.

Fichier / Dossier
Si Fichier, spécifiez le fichier à utiliser.

Si Dossier, spécifiez le dossier à utiliser.

Parcourir
Sélectionnez le fichier ou le dossier à l’aide de la boîte de dialogue Sélectionner un
fichier ou Rechercher un dossier .
Référence de l'interface utilisateur de la
boîte de dialogue Ajouter un
gestionnaire de connexions de fichiers
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Ajouter un gestionnaire de connexions de fichiers pour


définir une connexion à un groupe de fichiers ou dossiers.

Pour en savoir plus sur le gestionnaire de connexions pour plusieurs fichiers, consultez
Multiple Files Connection Manager.

7 Notes

Les tâches et composants de flux de données de Integration Services n'utilisent pas


le gestionnaire de connexions de fichiers multiples. Toutefois, vous pouvez utiliser
ce gestionnaire de connexions dans la tâche de script ou le composant Script.

Options
Type d’utilisation
Spécifiez le type de fichiers à utiliser avec le gestionnaire de connexions pour plusieurs
fichiers.

Valeur Description

Créer des fichiers Le gestionnaire de connexions va créer les fichiers.

Fichiers existants Le gestionnaire de connexions va utiliser des fichiers existants.

Créer des dossiers Le gestionnaire de connexions va créer les dossiers.

Dossiers existants Le gestionnaire de connexions va utiliser des dossiers existants.

Fichiers / Dossiers
Affichez les fichiers ou dossiers que vous avez ajoutés à l'aide des boutons décrits ci-
après.

Ajouter
Ajoutez un fichier à l’aide de la boîte de dialogue Sélectionner les fichiers ou ajoutez un
dossier à l’aide de la boîte de dialogue Rechercher un dossier .

Modifier
Sélectionnez un fichier ou dossier, puis remplacez-le par un autre fichier ou dossier à
l’aide de la boîte de dialogue Sélectionner les fichiers ou Rechercher un dossier .

Remove
Sélectionnez un fichier ou dossier, puis supprimez-le de la liste à l’aide du bouton
Supprimer .

Boutons de direction
Sélectionnez un fichier ou dossier, puis utilisez les boutons de direction pour le déplacer
vers le haut ou vers le bas afin de spécifier l'ordre d'accès.

Voir aussi
Guide de référence des erreurs et des messages propres à Integration Services
Référence de l'interface utilisateur de la
boîte de dialogue Suggérer les types de
colonnes
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Suggérer les types de colonnes pour identifier le type de
données et la longueur des colonnes dans un gestionnaire de connexions de fichiers
plats en se basant sur un échantillonnage du contenu du fichier.

Pour en savoir plus sur les types de données utilisés par Integration Services, consultez
Types de données d’Integration Services.

Options
Nombre de lignes
Tapez ou sélectionnez le nombre de lignes de l'échantillon utilisées par l'algorithme.

Suggérer le plus petit type de données integer


Désactivez cette case à cocher pour ignorer l'évaluation. Si elle est activée, détermine le
plus petit type de données integer possible pour les colonnes contenant des données
numériques entières.

Suggérer le plus petit type de données real


Désactivez cette case à cocher pour ignorer l'évaluation. Si elle est activée, détermine si
les colonnes contenant des données numériques réelles peuvent utiliser le plus petit
type de données real, DT_R4.

Identifier les colonnes booléennes en utilisant les valeurs suivantes


Tapez les deux valeurs à utiliser en tant que valeurs booléennes True et False. Ces valeurs
doivent être séparées par une virgule, la première correspondant à la valeur True.

Remplir les colonnes de la chaîne


Activez cette case à cocher pour autoriser le remplissage de la chaîne.

Pourcentage de remplissage
Tapez ou sélectionnez le pourcentage des longueurs de colonnes à ajouter à la longueur
des colonnes pour les données de type character. Ce pourcentage doit être un nombre
entier.
Voir aussi
Guide de référence des erreurs et des messages propres à Integration Services
Gestionnaire de connexions de fichiers plats
Gestionnaire de connexions de fichiers
plats
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions de fichiers plats permet à un package d'accéder aux


données d'un fichier plat. Ainsi, les sources et destinations de fichiers plats peuvent
utiliser des gestionnaires de connexions de fichiers plats pour extraire et charger des
données.

Le gestionnaire de connexions de fichiers plats peut accéder à un seul fichier. Pour


référencer plusieurs fichiers, utilisez un gestionnaire de connexions de fichiers plats
multiples plutôt qu'un gestionnaire de connexions de fichiers plats. Pour plus
d’informations, consultez Gestionnaire de connexion de fichiers plats multiples.

Longueur de colonne
Par défaut, le gestionnaire de connexions de fichiers plats définit la longueur des
colonnes de chaînes à 50 caractères. Dans la boîte de dialogue Éditeur du gestionnaire
de connexions de fichiers plats , vous pouvez évaluer les exemples de données et
redimensionner automatiquement la longueur de ces colonnes pour empêcher la
troncation de données ou une largeur de colonnes excessive. En outre, sauf si vous
redimensionnez ultérieurement la longueur de colonne dans une source de fichiers plats
ou une transformation, la longueur de colonne de la colonne de chaîne reste la même
dans tout le flux de données. Si ces colonnes de chaînes sont mappées à des colonnes
de destination plus étroites, des avertissements apparaissent dans l'interface utilisateur.
En outre, au moment de l'exécution, des erreurs peuvent se produire en raison de la
troncation des données. Pour éviter les erreurs ou la troncation, vous pouvez
redimensionner les colonnes pour assurer leur compatibilité avec les colonnes de
destination dans le gestionnaire de connexions de fichiers plats, la source de fichiers
plats ou une transformation. Pour modifier la longueur des colonnes de sortie, définissez
la propriété Length de la colonne de sortie sous l’onglet Propriétés d’entrée et de
sortie de la boîte de dialogue Éditeur avancé .

Si vous mettez à jour les longueurs de colonnes dans le gestionnaire de connexions de


fichiers plats après l'ajout et la configuration de la source de fichiers plats qui utilise le
gestionnaire de connexions, il n'est pas nécessaire de redimensionner manuellement les
colonnes de sortie dans la source de fichiers plats. Quand vous ouvrez la boîte de
dialogue Source du fichier plat , la source du fichier plat offre la possibilité de
synchroniser les métadonnées de la colonne.

Configuration du gestionnaire de connexions


de fichiers plats
Quand vous ajoutez un gestionnaire de connexions de fichiers plats à un package, SQL
Server Integration Services crée un gestionnaire de connexions qui sera résolu en une
connexion de fichiers plats au moment de l’exécution, définit les propriétés de
connexion de fichiers plats et ajoute le gestionnaire de connexions de fichiers plats à la
collection Connections du package.

La propriété ConnectionManagerType du gestionnaire de connexions a pour valeur


FLATFILE.

Par défaut, le gestionnaire de connexions de fichiers plats cherche toujours la présence


d'un séparateur de lignes dans les données non délimitées par des guillemets, puis
démarre une nouvelle ligne lorsqu'un séparateur de lignes est trouvé. Cela permet au
gestionnaire de connexions de fichiers plats d'analyser correctement les fichiers
comportant des lignes auxquelles il manque des champs de colonnes.

Dans certains cas, la désactivation de cette fonctionnalité peut améliorer les


performances des packages. Vous pouvez désactiver cette fonctionnalité en affectant à
la propriété AlwaysCheckForRowDelimitersdu gestionnaire de connexions de fichiers
plats la valeur False.

Vous pouvez configurer le gestionnaire de connexions de fichiers plats de plusieurs


manières :

Spécifiez le fichier, les paramètres régionaux et la page de codes à utiliser. Les


paramètres régionaux sont utilisés pour interpréter les données spécifiques à un
pays comme les dates, tandis que la page de codes est utilisée pour convertir les
données chaînes au format Unicode.

Spécifiez le format de fichier. Vous pouvez utiliser un format délimité, à largeur fixe
ou en drapeau à droite.

Spécifiez une ligne d'en-tête, une ligne de données et des séparateurs de


colonnes. Les séparateurs de colonnes peuvent être définis au niveau du fichier et
remplacés au niveau de la colonne.

Indiquez si la première ligne du fichier contient les noms de colonnes.


Spécifiez un caractère d'identificateur de texte. Chaque colonne peut être
configurée pour reconnaître un identificateur de texte.

L’utilisation d’un caractère qualificateur pour incorporer un caractère qualificateur


dans une chaîne qualifiée est désormais prise en charge par le gestionnaire de
connexions de fichiers plats. La double instance d'un qualificateur de texte est
interprétée comme une instance littérale et unique de cette chaîne. Par exemple, si
l’identificateur de texte est un guillemet simple et si les données d’entrée sont
'abc', 'def', 'g'hi', les données de sortie sont abc, def, g'hi. Toutefois, une instance
d’un qualificateur incorporé dans une chaîne qualifiée provoque l’échec de la
source du fichier plat avec l’erreur DTS_E_PRIMEOUTPUTFAILED.

Définissez des propriétés comme le nom, le type de données et la largeur


maximale pour des colonnes individuelles.

Vous pouvez définir la propriété ConnectionString du gestionnaire de connexions de


fichiers plats en spécifiant une expression dans la fenêtre Propriétés de SQL Server Data
Tools (SSDT). Pour éviter une erreur de validation, procédez comme suit.

Quand vous utilisez une expression pour spécifier le fichier, ajoutez un chemin de
fichier dans la zone Nom du fichier de l’Éditeur du gestionnaire de connexions de
fichiers plats.

Attribuez à la propriété DelayValidation du gestionnaire de connexions de fichiers


plats la valeur True.

Vous pouvez utiliser une expression pour créer un nom de fichier au moment de
l'exécution à l'aide du gestionnaire de connexions de fichiers plats, avec la destination
du fichier plat.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d’informations sur la configuration d’un gestionnaire de connexions par


programmation, consultez ConnectionManager et Ajout de connexions par programme.

Éditeur du gestionnaire de connexions de


fichiers plats (page Général)
La page Général de la boîte de dialogue Éditeur du gestionnaire de connexions de
fichiers plats vous permet de sélectionner un format de fichier et de données. Une
connexion de fichier plat permet à un package de se connecter à un fichier texte.
Pour en savoir plus sur le gestionnaire de connexions de fichiers plats, consultez Flat File
Connection Manager.

Options
Nom du gestionnaire de connexions
Permet de fournir un nom unique pour la connexion de fichier plat dans le flux de
travail. Le nom fourni sera affiché dans le concepteur SSIS .

Description
Décrit la connexion. Il est recommandé d'indiquer ici l'usage auquel la connexion est
destinée, de sorte que les packages soient correctement documentés et plus faciles à
gérer.

Nom de fichier
Tapez le chemin d'accès et le nom de fichier à utiliser dans la connexion de fichier plat.

Parcourir
Recherchez le nom de fichier à utiliser dans la connexion de fichier plat.

Paramètres régionaux
Spécifiez les paramètres régionaux pour fournir les informations spécifiques à la langue
relatives à l'ordre et aux formats de date et d'heure.

Unicode
Indique s'il convient d'utiliser Unicode. Si vous utilisez Unicode, vous ne pouvez pas
spécifier de page de codes.

Page de codes
Spécifiez la page de codes pour du texte non-Unicode.

Format
Indique si le fichier utilise une mise en forme délimitée, à largeur fixe ou en drapeau à
droite.

Value Description

Delimited Les colonnes sont séparées par les séparateurs spécifiés à la page Colonnes .

Largeur Les colonnes ont une largeur fixe.


fixe

En Les fichiers en drapeau à droite sont des fichiers dans lesquels chaque colonne a une
drapeau largeur fixe, à l'exception de la dernière colonne. Un séparateur de lignes s'applique.
à droite
Qualificateur de texte
Spécifiez le qualificateur de texte à utiliser. Par exemple, vous pouvez spécifier que les
champs de texte soient placés entre guillemets.

7 Notes

Après avoir sélectionné un identificateur de texte, vous ne pouvez pas sélectionner


de nouveau l’option Aucun . Tapez Aucun pour désélectionner l’identificateur de
texte.

Séparateur de lignes d'en-tête


Choisissez dans la liste des séparateurs de lignes d'en-tête ou entrez le texte de
séparation.

Valeur Description

{CR}{LF} La ligne d'en-tête est séparée par une combinaison retour chariot-saut de
ligne.

{CR} La ligne d'en-tête est séparée par des retours chariot.

{LF} La ligne d'en-tête est séparée par des sauts de lignes.

Point-virgule {;} La ligne d'en-tête est séparée par des points-virgules.

Deux-points {:} La ligne d'en-tête est séparée par des deux-points.

Virgule {,} La ligne d'en-tête est séparée par des virgules.

Tabulation {t} La ligne d'en-tête est séparée par des tabulations.

Barre verticale La ligne d'en-tête est séparée par des barres verticales.
{|}

Lignes d'en-tête à ignorer


Spécifiez le nombre de lignes d'en-tête ou de lignes de données initiales à ignorer, le
cas échéant.

Noms de colonnes dans la première ligne de données


Indique si des noms de colonne doivent être attendus ou fournis dans la première ligne
de données.

Éditeur du gestionnaire de connexions de


fichiers plats (page Colonnes)
La page Colonnes de la boîte de dialogue Éditeur du gestionnaire de connexions de
fichiers plats vous permet de spécifier les informations de ligne et de colonne, ainsi que
d'afficher un aperçu du fichier.

Pour en savoir plus sur le gestionnaire de connexions de fichiers plats, consultez Flat File
Connection Manager.

Options statiques
Nom du gestionnaire de connexions
Fournit un nom unique pour la connexion de fichiers plats du flux de travail. Le nom
fourni sera affiché dans le concepteur SSIS .

Description
Décrit la connexion. Il est recommandé d'indiquer ici l'usage auquel la connexion est
destinée, de sorte que les packages soient correctement documentés et plus faciles à
gérer.

Options dynamiques de format de fichier plat

Format = Délimité
Séparateur de lignes
Effectuez une sélection dans la liste des séparateurs de lignes disponibles ou entrez le
texte du séparateur.

Valeur Description

{CR}{LF} Les lignes sont séparées par une combinaison de retour chariot/saut de ligne.

{CR} Les lignes sont séparées par un retour chariot.

{LF} Les lignes sont séparées par un saut de ligne.

Point-virgule {;} Les lignes sont séparées par un point-virgule.

Deux-points {:} Les lignes sont séparées par un deux-points.

Virgule {,} Les lignes sont séparées par une virgule.

Tabulation {t} Les lignes sont séparées par une tabulation.

Barre verticale {|} Les lignes sont séparées par une barre verticale.
Délimiteur de colonne
Effectuez une sélection dans la liste des séparateurs de colonnes disponibles ou entrez
le texte du séparateur.

Valeur Description

{CR}{LF} Les colonnes sont délimitées par une combinaison retour chariot-saut de
ligne.

{CR} Les colonnes sont séparées par un retour chariot.

{LF} Les colonnes sont séparées par un saut de ligne.

Point-virgule {;} Les colonnes sont séparées par un point-virgule.

Deux-points {:} Les colonnes sont séparées par un deux-points.

Virgule {,} Les colonnes sont séparées par une virgule.

Tabulation {t} Les colonnes sont séparées par une tabulation.

Barre verticale Les colonnes sont séparées par une barre verticale.
{|}

Actualiser
Affichez les résultats des modifications des séparateurs en cliquant sur Actualiser. Il ne
devient visible qu'après avoir changé d'autres options de connexion.

Aperçu des lignes


Affichez les données d'exemple dans le fichier plat, divisées en colonnes et en lignes à
l'aide des options sélectionnées.

Réinitialiser les colonnes


Cliquez sur Réinitialiser les colonnespour supprimer toutes les colonnes à l’exception de
celles d’origine.

Format = Largeur fixe

Police
Sélectionnez la police d'affichage de l'aperçu des données.

Colonnes de données sources


Ajustez la largeur de la ligne en faisant glisser le marqueur de ligne rouge vertical, et
celle des colonnes en cliquant sur la règle en haut de la fenêtre d'aperçu.

Largeur de ligne
Spécifiez la largeur de la ligne avant d'ajouter des séparateurs pour des colonnes
distinctes. Vous pouvez également faire glisser la ligne rouge verticale dans la fenêtre
d'aperçu pour marquer la fin de la ligne. La valeur de la largeur de ligne est
automatiquement mise à jour.

Réinitialiser les colonnes


Cliquez sur Réinitialiser les colonnespour supprimer toutes les colonnes à l’exception de
celles d’origine.

Format = En drapeau à droite

7 Notes

Les fichiers en drapeau à droite sont des fichiers dans lesquels chaque colonne a
une largeur fixe, à l'exception de la dernière colonne. Un séparateur de lignes
s'applique.

Police
Sélectionnez la police d'affichage de l'aperçu des données.

Colonnes de données sources


Ajustez la largeur de la ligne en faisant glisser le marqueur de ligne rouge vertical, et
celle des colonnes en cliquant sur la règle en haut de la fenêtre d'aperçu.

Séparateur de lignes
Effectuez une sélection dans la liste des séparateurs de lignes disponibles ou entrez le
texte du séparateur.

Valeur Description

{CR}{LF} Les lignes sont séparées par une combinaison de retour chariot/saut de ligne.

{CR} Les lignes sont séparées par un retour chariot.

{LF} Les lignes sont séparées par un saut de ligne.

Point-virgule {;} Les lignes sont séparées par un point-virgule.

Deux-points {:} Les lignes sont séparées par un deux-points.

Virgule {,} Les lignes sont séparées par une virgule.

Tabulation {t} Les lignes sont séparées par une tabulation.

Barre verticale {|} Les lignes sont séparées par une barre verticale.
Réinitialiser les colonnes
Cliquez sur Réinitialiser les colonnespour supprimer toutes les colonnes à l’exception de
celles d’origine.

Éditeur du gestionnaire de connexions de


fichiers plats (page Avancé)
La page Avancé de la boîte de dialogue Éditeur du gestionnaire de connexions de
fichiers plats vous permet de définir des propriétés qui spécifient la manière dont
Integration Services lit et écrit des données dans les fichiers plats. Vous pouvez modifier
les noms des colonnes dans le fichier plat et définir des propriétés qui incluent le type
de données et des séparateurs pour chaque colonne du fichier.

Par défaut, la longueur des colonnes de type chaîne est de 50 caractères. Vous pouvez
redimensionner la longueur de ces colonnes pour empêcher la troncation des données
ou une largeur de colonne excessive. Vous pouvez également mettre à jour d'autres
métadonnées pour permettre la compatibilité avec les colonnes de destination. Par
exemple, vous pouvez convertir le type de données d'une colonne qui contient
uniquement des données de type entier en type de données numérique, tel que DT_I2.
Vous pouvez apporter ces modifications manuellement ou cliquer sur le bouton
Sélectionner les types pour utiliser la boîte de dialogue Suggérer les types de colonnes
pour évaluer des échantillons de données et effectuer automatiquement une partie de
ces modifications.

Pour en savoir plus sur le gestionnaire de connexions de fichiers plats, consultez Flat File
Connection Manager.

Options
Nom du gestionnaire de connexions
Spécifiez un nom unique pour le gestionnaire de connexions de fichiers plats dans le
flux de travail. Le nom fourni sera affiché dans le concepteur SSIS .

Description
Décrivez le gestionnaire de connexions. Il est recommandé d'indiquer ici l'usage auquel
le gestionnaire de connexions est destiné, de sorte que les packages soient
correctement documentés et plus faciles à gérer.

Configurez les propriétés de chaque colonne


Dans le volet gauche, sélectionnez une colonne pour afficher ses propriétés dans celui
de droite. Le tableau ci-dessous fournit une description des définitions des types de
données. Certaines de ces propriétés peuvent uniquement être configurées pour
certains formats de fichiers plats.

Propriété Description

ColumnType Indique si la colonne est délimitée, si elle a une largeur fixe ou si elle
présente un format en drapeau à droite. Cette propriété est en lecture
seule. Les fichiers en drapeau à droite sont des fichiers dans lesquels
chaque colonne a une largeur fixe, à l'exception de la dernière colonne.
Un séparateur de lignes s'applique.

OutputColumnWidth Indiquez une valeur spécifiant la largeur de colonne en nombre d'octets.


Pour les fichiers Unicode, cette valeur correspond à un nombre de
caractères. Dans la tâche de flux de données, cette valeur permet de
définir la largeur de la colonne de sortie pour les fichiers plats sources.
Dans le modèle objet, le nom de la propriété est MaximumWidth.

DataType Sélectionnez un type de données dans la liste des types de données


disponibles. Pour plus d’informations, consultez Types de données
Integration Services.

TextQualified Indique si les données de texte sont entourées par des caractères
identificateurs de texte, tels que des caractères de guillemets.

True : les données texte du fichier plat sont qualifiées. False : les données
texte du fichier plat ne sont pas qualifiées.

Nom Précisez un nom de colonne descriptif. Si vous n'entrez aucun nom,


Integration Services crée automatiquement un nom au format Colonne 0,
Colonne 1, et ainsi de suite.

DataScale Spécifiez l'échelle des données numériques. L'échelle est le nombre de


décimales. Pour plus d’informations, consultez Types de données
Integration Services.
Propriété Description

ColumnDelimiter Sélectionnez un délimiteur de colonnes dans la liste des séparateurs de


colonnes disponibles. Veillez à choisir un caractère de séparation qu'il est
peu probable de rencontrer dans le texte. Cette valeur est ignorée dans le
cas des colonnes à largeur fixe.

{CR}{LF} . Les colonnes sont délimitées par une combinaison retour


chariot-saut de ligne.

{CR} . Les colonnes sont séparées par un retour chariot.

{LF} . Les colonnes sont séparées par un saut de ligne.

Point-virgule {;} . Les colonnes sont séparées par un point-virgule.

Deux-points {:} . Les colonnes sont séparées par un deux-points.

Virgule {,} . Les colonnes sont séparées par une virgule.

Tabulation {t} . Les colonnes sont séparées par une tabulation.

Barre verticale {|}. Les colonnes sont séparées par une barre verticale.

DataPrecision Spécifiez la précision des données numériques. La précision indique le


nombre total de chiffres. Pour plus d’informations, consultez Types de
données Integration Services.

InputColumnWidth Indiquez une valeur spécifiant la largeur de colonne en nombre d'octets.


Pour les fichiers Unicode, cette valeur est exprimée en nombre de
caractères. Cette valeur est ignorée dans le cas des colonnes délimitées.

Remarque : Dans le modèle objet, le nom de cette propriété est


ColumnWidth.

Nouveau
Ajoutez une nouvelle colonne en cliquant sur Nouveau. Par défaut, ce nouveau bouton
ajoute une nouvelle colonne à la fin de la liste. Le bouton possède également les
options ci-dessous, disponibles dans la liste déroulante.

Value Description

Ajouter une colonne Ajoute une colonne à la fin de la liste.

Insérer avant Insère une nouvelle colonne avant la colonne sélectionnée.

Insérer après Insère une nouvelle colonne après la colonne sélectionnée.


Supprimer
Sélectionnez une colonne, puis supprimez-la en cliquant sur Supprimer.

Suggérer les types


La boîte de dialogue Suggérer les types de colonnes permet d’évaluer des échantillons
de données dans le fichier et d’obtenir des suggestions pour le type de données et la
longueur de chaque colonne. Pour plus d’informations, consultez Référence de
l’interface utilisateur de la boîte de dialogue Suggérer les types de colonnes.

Éditeur du gestionnaire de connexions de


fichiers plats (Enterprise Manager)
Utilisez le nœud Aperçu de la boîte de dialogue Éditeur du gestionnaire de connexions
de fichiers plats pour visualiser le contenu du fichier source sous forme de tableau.

Pour en savoir plus sur le gestionnaire de connexions de fichiers plats, consultez Flat File
Connection Manager.

Options
Nom du gestionnaire de connexions
Fournit un nom unique pour la connexion de fichiers plats du flux de travail. Le nom
fourni sera affiché dans le concepteur SSIS .

Description
Décrit la connexion. Il est recommandé d'indiquer ici l'usage auquel la connexion est
destinée, de sorte que les packages soient correctement documentés et plus faciles à
gérer.

Lignes de données à ignorer


Indiquez le nombre de lignes qui doivent être ignorées à partir du début du fichier plat.

Actualiser
Cliquez sur le bouton Actualiserpour visualiser l’effet obtenu en modifiant le nombre de
lignes à ignorer. Il ne devient visible qu'après avoir changé d'autres options de
connexion.

Aperçu des lignes


Affiche un échantillon de données du fichier plat, divisé en colonnes et en lignes en
fonction des options que vous avez sélectionnées.
Gestionnaires de connexion FTP
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions FTP permet à un package de se connecter à un serveur


FTP (File Transfer Protocol). La tâche FTP incluse dans SQL Server Integration Services
utilise ce gestionnaire de connexions.

Quand vous ajoutez un gestionnaire de connexions FTP à un package, Integration


Services crée un gestionnaire de connexions qui peut être résolu en tant que connexion
FTP au moment de l’exécution, définit les propriétés du gestionnaire de connexions et
ajoute le gestionnaire de connexions à la collection Connexions sur le package.

La propriété ConnectionManagerType du gestionnaire de connexions a pour valeur


FTP.

Vous pouvez configurer le gestionnaire de connexions FTP de plusieurs manières :

Spécifiez un nom de serveur et un port de serveur.

Spécifiez l'accès anonyme ou fournissez un nom d'utilisateur et un mot de passe


pour l'authentification de base.

) Important

Le gestionnaire de connexions FTP prend en charge uniquement


l'authentification anonyme et l'authentification de base. Il ne prend pas en
charge l'authentification Windows.

Définissez le délai d'attente, le nombre de nouvelles tentatives et la quantité de


données à copier en une fois.

Indiquez si le gestionnaire de connexions FTP utilise le mode actif ou passif.

Selon la configuration du site FTP auquel le gestionnaire de connexions FTP se connecte,


vous devrez éventuellement changer les valeurs par défaut suivantes du gestionnaire de
connexions :

Le port du serveur est réglé sur 21. Vous devez spécifier le port que le site FTP
écoute.
Le nom d'utilisateur prend la valeur « anonymous ». Vous devez fournir les
informations d'identification requises par le site FTP.

Modes actif/passif
Un gestionnaire de connexions FTP peut envoyer et recevoir des fichiers en mode actif
ou passif. En mode actif, le serveur initie la connexion de données, alors qu'en mode
passif il s'agit du client.

7 Notes

Le mode passif est recommandé pour SSIS Integration Runtime (IR), car celui-ci
risque de ne pas pouvoir accepter les connexions TCP entrantes.

Configuration du gestionnaire de connexions


FTP
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d’informations sur les propriétés que vous pouvez définir dans le Concepteur
SSIS , consultez Éditeur du gestionnaire de connexions FTP.

Pour plus d’informations sur la configuration d’un gestionnaire de connexions par


programmation, consultez ConnectionManager et Ajout de connexions par programme.

Éditeur du gestionnaire de connexions FTP


La boîte de dialogue Éditeur du gestionnaire de connexions FTP vous permet de
spécifier les propriétés de connexion à un serveur FTP.

) Important

Le gestionnaire de connexions FTP prend en charge uniquement l'authentification


anonyme et l'authentification de base. Il ne prend pas en charge l'authentification
Windows.

Pour en savoir plus sur le gestionnaire de connexions FTP, consultez Gestionnaire de


connexions FTP.
Options
Nom du serveur
Indiquez le nom du serveur FTP.

Port du serveur
Spécifiez le numéro de port sur le serveur FTP à utiliser pour la connexion. La valeur par
défaut de cette propriété est 21.

Nom d’utilisateur
Indiquez un nom d'utilisateur pour accéder au serveur FTP. La valeur par défaut de cette
propriété est anonyme.

Mot de passe
Indiquez le mot de passe permettant d'accéder au serveur FTP.

Délai d'expiration (en secondes)


Spécifiez le nombre de secondes à patienter avant l'expiration de la tâche. Une valeur
égale à 0 indique une durée illimitée. La valeur par défaut de cette propriété est 60.

Utiliser le mode passif


Permet de spécifier si le serveur ou le client initie la connexion. Le serveur initie la
connexion en mode actif, alors que le client l'initie en mode passif. La valeur par défaut
de cette propriété est mode actif.

Nouvelle tentatives
Spécifiez le nombre de fois que la tâche doit tenter d'établir une connexion. Une valeur
égale à 0 indique un nombre illimité de tentatives.

Taille de segment (en Ko)


Spécifiez une taille de segment en kilo-octets pour la transmission des données.

Tester la connexion
Après avoir configuré le gestionnaire de connexions FTP, confirmez que la connexion est
viable en cliquant sur Tester la connexion.

Voir aussi
Tâche FTP
Connexions Integration Services (SSIS)
Gestionnaire de connexions Hadoop
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le Gestionnaire de connexions Hadoop permet à un package SSIS (SQL Server


Integration Services) de se connecter à un cluster Hadoop en utilisant les valeurs que
vous spécifiez pour les propriétés.

Configurer le Gestionnaire de connexions


Hadoop
1. Dans la boîte de dialogue Ajout d’un gestionnaire de connexions SSIS ,
sélectionnez Hadoop>Ajouter. La boîte de dialogue Éditeur du Gestionnaire de
connexions Hadoop s’affiche.

2. Pour configurer les informations du cluster Hadoop associées, choisissez l’onglet


WebHCat ou WebHDFS dans le volet gauche.

3. Si vous activez l’option WebHCat pour appeler un travail Hive ou Pig sur Hadoop,
procédez comme suit :

a. Pour Hôte WebHCat, entrez le serveur qui héberge le service WebHCat.

b. Dans la zone Port WebHCat, entrez le port du service WebHCat, défini par
défaut sur 50111.

c. Dans la zone Authentification , sélectionnez la méthode d’authentification pour


l’accès au service WebHCat. Les valeurs disponibles sont De base et Kerberos.
d. Dans la zone Utilisateur WebHCat, entrez l’ Utilisateur autorisé à accéder à
WebHCat.

e. Si vous sélectionnez l’authentification Kerberos , entrez le Mot de passe et le


Domainede l’utilisateur.
4. Si vous activez l’option WebHDFS pour copier des données depuis ou vers HDFS,
procédez comme suit :

a. Dans la zone Hôte WebHDFS, entrez le serveur qui héberge le service


WebHDFS.

b. Dans la zone Port WebHDFS, entrez le port du service WebHDFS, défini par
défaut sur 50070.

c. Dans la zone Authentification , sélectionnez la méthode d’authentification pour


l’accès au service WebHDFS. Les valeurs disponibles sont De base et Kerberos.

d. Dans la zone Utilisateur WebHDFS, entrez l’utilisateur autorisé à accéder à


HDFS.

e. Si vous sélectionnez l’authentification Kerberos , entrez le Mot de passe et le


Domainede l’utilisateur.

5. Sélectionnez Test Connection (Tester la connexion). (Le test ne porte que sur la
connexion que vous avez activée.)

6. puis cliquez sur OK pour fermer la boîte de dialogue.

Se connecter avec l’authentification Kerberos


Il existe deux options permettant de configurer l’environnement local pour pouvoir
utiliser l’authentification Kerberos avec le Gestionnaire de connexions Hadoop. Vous
pouvez choisir l’option qui correspond le mieux à votre situation.

Option 1 : Joindre l’ordinateur SSIS au domaine Kerberos


Option n°2 : Activer l’approbation mutuelle entre le domaine Windows et le
domaine Kerberos

Option 1 : Joindre l’ordinateur SSIS au domaine Kerberos

Conditions requises :
L’ordinateur servant de passerelle doit se joindre au domaine Kerberos et ne peut
se joindre à aucun domaine Windows.

Pour effectuer la configuration :

Sur l’ordinateur SSIS :


1. Exécutez l’utilitaire Ksetup pour configurer le serveur et le domaine du centre de
distribution de clés Kerberos.

L’ordinateur doit être configuré en tant que membre d’un groupe de travail, car un
domaine Kerberos est différent d’un domaine Windows. Définissez le domaine
Kerberos et ajoutez un serveur de centre de distribution de clés Kerberos, comme
indiqué dans l’exemple suivant. Remplacez REALM.COM par votre propre domaine.

Console

C:> Ksetup /setdomain REALM.COM`


C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>

Après avoir exécuté ces commandes, redémarrez l’ordinateur.

2. Vérifiez la configuration avec la commande Ksetup. La sortie doit se présenter


comme suit :

Console

C:> Ksetup
default realm = REALM.COM (external)
REALM.com:
kdc = <your_kdc_server_address>

Option 2 : Activer l’approbation mutuelle entre le


domaine Windows et le domaine Kerberos

Conditions requises :
L’ordinateur servant de passerelle doit se joindre à un domaine Windows.
Vous avez besoin d’autorisations pour mettre à jour les paramètres du contrôleur
de domaine.

Pour effectuer la configuration :

7 Notes

Remplacez REALM.COM et AD.COM dans ce didacticiel par votre propre domaine et


votre propre contrôleur de domaine.
Sur le serveur du centre de distribution de clés Kerberos :

1. Modifiez la configuration du centre de distribution de clés Kerberos dans le fichier


krb5.conf. Autorisez le centre de distribution de clés Kerberos à approuver le
domaine Windows en référençant le modèle de configuration suivant. Par défaut,
la configuration se trouve dans /etc/krb5.conf.

Console

[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 = .
}

Après la configuration, redémarrez le service du centre de distribution de clés


Kerberos.

2. Préparez un principal nommé krbtgt/REALM.COM@AD.COM sur le serveur du


centre de distribution de clés Kerberos. Utilisez la commande suivante :

Kadmin> addprinc krbtgt/REALM.COM@AD.COM


3. Dans le fichier de configuration du service HDFS hadoop.security.auth_to_local,
ajoutez RULE:[1:$1@$0](.*@AD.COM)s/@.*// .

Sur le contrôleur de domaine :

1. Exécutez les commandes Ksetup suivantes pour ajouter une entrée de domaine :

Console

C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>


C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM

2. Établissez l’approbation du domaine Windows pour le domaine Kerberos. Dans


l’exemple suivant, [password] est le mot de passe du principal
krbtgt/REALM.COM@AD.COM.

C:> netdom trust REALM.COM /Domain: AD.COM /add /realm /password:[password]

3. Sélectionnez un algorithme de chiffrement à utiliser avec Kerberos.

a. Accédez à Gestionnaire de serveur>Gestion des stratégies de


groupe>Domaine. À partir de là, accédez à Objets de stratégie de
groupe>Stratégie de domaine Par défaut ou Active>Modifier.

b. Dans la fenêtre contextuelle Éditeur de gestion des stratégies de groupe,


accédez à Configuration de l’ordinateur>Stratégies>Paramètres Windows. À
partir de là, accédez à Paramètres de sécurité>Stratégies locales>Options de
sécurité. Configurez Sécurité du réseau : Configurer les types de chiffrement
autorisés pour Kerberos.

c. Sélectionnez l’algorithme de chiffrement à utiliser pour se connecter au centre


de distribution de clés Kerberos. En règle générale, vous pouvez sélectionner
n’importe quelle option.
d. Utilisez la commande Ksetup pour spécifier l’algorithme de chiffrement à utiliser
sur le domaine spécifique.

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. Pour utiliser le principal Kerberos dans le domaine Windows, créez le mappage


entre le compte de domaine et le principal Kerberos.

a. Accédez à Outils d’administration>Utilisateurs et ordinateurs Active Directory.

b. Configurez les fonctionnalités avancées en sélectionnant


Afficher>Fonctionnalités avancées.

c. Recherchez le compte pour lequel vous voulez créer des mappages, cliquez
avec le bouton droit pour afficher Mappages des noms, puis sélectionnez
l’onglet Noms Kerberos.

d. Ajoutez un principal provenant du domaine.


Sur l’ordinateur servant de passerelle :

Exécutez les commandes Ksetup suivantes pour ajouter une entrée de domaine.

Console

C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>


C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM

Voir aussi
Tâche Hive Hadoop
Tâche Pig Hadoop
Tâche du système de fichiers Hadoop
Gestionnaire de connexions HTTP
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Une connexion HTTP permet à un package d'accéder à un serveur Web via HTTP pour
l'envoi et la réception de fichiers. La tâche de service web incluse dans SQL Server
Integration Services utilise ce gestionnaire de connexions.

Quand vous ajoutez un gestionnaire de connexions HTTP à un package, Integration


Services crée un gestionnaire de connexions qui sera converti en connexion HTTP au
moment de l’exécution, définit les propriétés du gestionnaire de connexions et ajoute le
gestionnaire de connexions à la collection Connections du package.

La propriété ConnectionManagerType du gestionnaire de connexions a pour valeur


HTTP.

Vous pouvez configurer le gestionnaire de connexions HTTP de plusieurs manières :

Utilisez des informations d'identification. Si le gestionnaire de connexions utilise


des informations d'identification, ses propriétés incluent le nom d'utilisateur, le
mot de passe et le domaine.

) Important

Le gestionnaire de connexions HTTP prend en charge uniquement


l'authentification anonyme et l'authentification de base. Il ne prend pas en
charge l'authentification Windows.

Utilisez un certificat client. Si le gestionnaire de connexions utilise un certificat


client, ses propriétés incluent le nom du certificat.

Indiquez un délai de connexion au serveur et une taille de segment pour l'écriture


de données.

Utilisez un serveur proxy. Le serveur Proxy peut également être configuré pour
utiliser les informations d'identification et pour ignorer le serveur proxy et utiliser à
la place des adresses locales.

Configuration du gestionnaire de connexions


HTTP
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d’informations sur la configuration d’un gestionnaire de connexions par


programmation, consultez ConnectionManager.

Éditeur du gestionnaire de connexions HTTP


(page Serveur)
Utilisez l'onglet Serveur de la boîte de dialogue Éditeur du gestionnaire de connexions
HTTP pour configurer le gestionnaire de connexions HTTP en spécifiant des propriétés
telles que l'URL et les informations d'identification de sécurité. Une connexion HTTP
permet à un package d'accéder à un serveur Web via HTTP pour l'envoi et la réception
de fichiers. Une fois le gestionnaire de connexions HTTP configuré, vous pouvez
également tester la connexion.

) Important

Le gestionnaire de connexions HTTP prend en charge uniquement l'authentification


anonyme et l'authentification de base. Il ne prend pas en charge l'authentification
Windows.

Pour en savoir plus sur le gestionnaire de connexions HTTP, consultez HTTP Connection
Manager. Pour en savoir plus sur un scénario d'utilisation courante pour le gestionnaire
de connexions HTTP, consultez Web Service Task.

Options
URL du serveur
Tapez l'URL du serveur.

Si vous projetez d'utiliser le bouton Télécharger WSDL de la page Général de l' Éditeur
de tâche de service Web pour télécharger un fichier WSDL, tapez l'URL de ce fichier
WSDL. Cette URL se termine par « ?wsdl ».

Utiliser les informations d'identification


Spécifiez si vous voulez que le gestionnaire de connexions HTTP utilise les informations
d'identification de sécurité de l'utilisateur pour l'authentification.

Nom d’utilisateur
Si le gestionnaire de connexions HTTP utilise des informations d'identification, vous
devez spécifier un nom d'utilisateur, un mot de passe et un domaine.

Mot de passe
Si le gestionnaire de connexions HTTP utilise des informations d'identification, vous
devez spécifier un nom d'utilisateur, un mot de passe et un domaine.

Domaine
Si le gestionnaire de connexions HTTP utilise des informations d'identification, vous
devez spécifier un nom d'utilisateur, un mot de passe et un domaine.

Utiliser le certificat client


Spécifiez si vous voulez que le gestionnaire de connexions HTTP utilise un certificat
client pour l'authentification.

Certificate
Sélectionnez un certificat dans la liste via la boîte de dialogue Sélectionner un certificat
. La zone de texte affiche le nom associé au certificat.

Délai d'expiration (en secondes)


Spécifiez un délai d'expiration pour la connexion au serveur Web. La valeur par défaut
de cette propriété est 30 secondes.

Taille de segment (en Ko)


Spécifiez une taille de segment pour l'écriture des données.

Tester la connexion
Après avoir configuré le gestionnaire de connexions HTTP, vérifiez que la connexion est
viable en cliquant sur Tester la connexion.

Éditeur du gestionnaire de connexions HTTP


(page Proxy)
Utilisez l'onglet Proxy de la boîte de dialogue Éditeur du gestionnaire de connexions
HTTP pour configurer le gestionnaire de connexions HTTP afin d'utiliser un serveur
proxy. Une connexion HTTP permet à un package d'accéder à un serveur Web via HTTP
pour l'envoi et la réception de fichiers.

Pour en savoir plus sur le gestionnaire de connexions HTTP, consultez HTTP Connection
Manager. Pour en savoir plus sur un scénario d'utilisation courante pour le gestionnaire
de connexions HTTP, consultez Web Service Task.

Options
Utiliser le proxy
Indiquez si vous voulez que le gestionnaire de connexions HTTP se connecte via un
serveur proxy.

URL du proxy
Tapez l'URL du serveur proxy.

Ne pas utiliser de proxy en local


Indiquez si vous voulez que le gestionnaire de connexions HTTP contourne le serveur
proxy pour les adresses locales.

Utiliser les informations d'identification


Indiquez si vous voulez que le gestionnaire de connexions HTTP utilise les informations
d'identification de sécurité pour le serveur proxy.

Nom d’utilisateur
Si le gestionnaire de connexions HTTP utilise des informations d'identification, vous
devez spécifier un nom d'utilisateur, un mot de passe et un domaine.

Mot de passe
Si le gestionnaire de connexions HTTP utilise des informations d'identification, vous
devez spécifier un nom d'utilisateur, un mot de passe et un domaine.

Domaine
Si le gestionnaire de connexions HTTP utilise des informations d'identification, vous
devez spécifier un nom d'utilisateur, un mot de passe et un domaine.

Liste de contournement proxy


Liste d’adresses pour lesquelles vous voulez contourner le serveur proxy.

Ajouter
Tapez une adresse pour laquelle vous souhaitez que le gestionnaire de connexions HTTP
n'utilise pas le serveur proxy.

Remove
Sélectionnez une adresse, puis supprimez-la en cliquant sur Supprimer.

Voir aussi
Tâche de service Web
Connexions Integration Services (SSIS)
Gestionnaire de connexions MSMQ
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions MSMQ permet à un package de se connecter à une file


d'attente de messages qui utilise Message Queuing (MSMQ). La tâche Message Queue
que Microsoft SQL Server Integration Services inclut utilise un gestionnaire de
connexion MSMQ.

Quand vous ajoutez un gestionnaire de connexions MSMQ à un package, Integration


Services crée un gestionnaire de connexions qui sera résolu en une connexion MSMQ au
moment de l’exécution, définit les propriétés du gestionnaire de connexions et ajoute le
gestionnaire de connexions à la collection Connections sur le package. La propriété
ConnectionManagerType du gestionnaire de connexions a pour valeur MSMQ.

Vous pouvez configurer le gestionnaire de connexions MSMQ de plusieurs manières :

Spécifiez une chaîne de connexion.

Spécifiez le chemin d'accès à la file d'attente de messages à laquelle se connecter.

Le format du chemin dépend du type de file d'attente, comme le montre le tableau


suivant.

Type de file d'attente Exemple de chemin d'accès

Public <nom_ordinateur>\<nom_file_attente>

Privé <nom_ordinateur>\Private$\<nom_file_attente>

Vous pouvez utiliser un point (.) pour représenter l'ordinateur local.

Configuration du gestionnaire de connexions


MSMQ
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d’informations sur les propriétés que vous pouvez définir dans le Concepteur
SSIS, consultez Éditeur du gestionnaire de connexions MSMQ.
Pour plus d’informations sur la configuration d’un gestionnaire de connexions par
programmation, consultez ConnectionManager et Ajout de connexions par programme.

Éditeur du gestionnaire de connexions MSMQ


La boîte de dialogue Gestionnaire de connexions MSMQ permet de spécifier le chemin
d’une file d’attente de messages MSMQ (Message Queuing).

Pour en savoir plus sur le gestionnaire de connexions MSMQ, consultez MSMQ


Connection Manager.

7 Notes

Le gestionnaire de connexions MSMQ prend en charge les files d'attente privées et


publiques locales et les files d'attente publiques distantes. Il ne prend pas en
charge les files d'attente privées distantes. Pour une solution de contournement qui
utilise la tâche de script, consultez Envoi vers une file d'attente de messages
privée distante à l'aide de la tâche de script.

Options
Nom
Fournissez un nom unique pour le gestionnaire de connexions MSMQ dans le flux de
travail. Le nom fourni sera affiché dans le concepteur SSIS .

Description
Décrivez le gestionnaire de connexions. Il est recommandé d'indiquer ici l'usage auquel
le gestionnaire de connexions est destiné, de sorte que les packages soient
correctement documentés et plus faciles à gérer.

Chemin d’accès
Tapez le chemin d'accès complet de la file d'attente de messages. Le format du chemin
d'accès dépend du type de file d'attente.

Type de file d'attente Exemple de chemin d'accès

Public <nom_ordinateur>\<nom_file_attente>

Privé <nom_ordinateur>\Private$\<nom_file_attente>

Vous pouvez utiliser "." pour représenter l'ordinateur local.


Test
Après avoir configuré le gestionnaire de connexions MSMQ, vérifiez si la connexion est
opérationnelle en cliquant sur Tester.

Voir aussi
Tâche MSMQ
Connexions Integration Services (SSIS)
Gestionnaire de connexions de fichiers
multiples
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions de fichiers multiples permet à un package de référencer


des fichiers et dossiers existants ou de créer des fichiers ou dossiers au moment de
l'exécution.

7 Notes

Les tâches et composants de flux de données de Integration Services n'utilisent pas


le gestionnaire de connexions de fichiers multiples. Toutefois, vous pouvez utiliser
ce gestionnaire de connexions dans la tâche de script ou le composant Script. Pour
plus d’informations sur l’utilisation des gestionnaires de connexions avec la tâche
de script, consultez Connexion à des sources de données dans la tâche de script.
Pour plus d’informations sur l’utilisation des gestionnaires de connexions dans le
composant Script, consultez Connexion aux sources de données dans le
composant Script.

Types d'utilisations du gestionnaire de


connexions de fichiers multiples
La propriété FileUsageType du gestionnaire de connexions de fichiers multiples indique
la manière dont la connexion est utilisée. Le gestionnaire de connexions de fichiers
multiples permet de créer des fichiers, de créer des dossiers, d'utiliser des fichiers
existants et d'utiliser des dossiers existants.

Le tableau suivant répertorie les valeurs de FileUsageType.

Valeur Description

0 Le gestionnaire de connexions de fichiers multiples utilise un fichier existant.

1 Le gestionnaire de connexions de fichiers multiples crée un fichier.

2 Le gestionnaire de connexions de fichiers multiples utilise un dossier existant.

3 Le gestionnaire de connexions de fichiers multiples crée un dossier.


Configuration du gestionnaire de connexions
de fichiers multiples
Quand vous ajoutez un gestionnaire de connexions de fichiers multiples à un package,
Integration Services crée un gestionnaire de connexions qui sera converti en connexion
de fichiers multiples au moment de l’exécution, définit les propriétés de la connexion de
fichiers multiples et ajoute la connexion de fichiers multiples à la collection Connections
du package.

La propriété ConnectionManagerType du gestionnaire de connexions a la valeur


MULTIFILE.

Vous pouvez configurer un gestionnaire de connexions de fichiers multiples de plusieurs


manières :

Spécifiez le type d'utilisation des fichiers et des dossiers.

Spécifiez les fichiers et les dossiers.

Si vous utilisez plusieurs fichiers ou dossiers, indiquez l'ordre d'accès des fichiers et
dossiers.

Si le gestionnaire de connexions de fichiers multiples référence plusieurs fichiers et


dossiers, les chemins d'accès aux fichiers et dossiers sont séparés par une barre verticale
(|). La propriété ConnectionString du gestionnaire de connexions utilise le format
suivant :

<chemin>|<chemin>

Vous pouvez également spécifier plusieurs fichiers ou dossiers en utilisant des caractères
génériques. Par exemple, pour référencer tous les fichiers texte du lecteur C, la valeur de
la propriété ConnectionString peut être définie sur C:\*.txt.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d’informations sur les propriétés définissables dans le concepteur SSIS ,
consultez Référence de l’interface utilisateur de la boîte de dialogue Ajouter un
gestionnaire de connexions de fichiers.

Pour plus d’informations sur la configuration d’un gestionnaire de connexions par


programmation, consultez ConnectionManager et Ajout de connexions par programme.
Gestionnaire de connexions de fichiers
plats multiples
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions de fichiers plats multiples permet à un package


d'accéder aux données de plusieurs fichiers plats. Par exemple, une source de fichier plat
peut utiliser un gestionnaire de connexions de fichiers plats multiples lorsque la tâche
de flux de données se trouve dans un conteneur de boucles (conteneur de boucles For,
par exemple). Dans chaque boucle du conteneur, la source de fichier plat charge les
données à partir du nom de fichier suivant fourni par le gestionnaire de connexions de
fichiers plats multiples.

Quand vous ajoutez un gestionnaire de connexions de fichiers plats multiples à un


package, SQL Server Integration Services crée un gestionnaire de connexions qui sera
résolu en une connexion de fichiers plats multiples au moment de l’exécution, définit les
propriétés de la connexion de fichiers plats multiples et ajoute les gestionnaires de
connexions de fichiers plats multiples à la collection Connexions du package.

La propriété ConnectionManagerType du gestionnaire de connexions a pour valeur


MULTIFLATFILE.

Vous pouvez configurer un gestionnaire de connexions de fichiers plats multiples de


plusieurs manières :

Spécifiez les fichiers, paramètres régionaux et pages de codes à utiliser. Les


paramètres régionaux sont utilisés pour interpréter les données spécifiques à un
pays comme les dates, tandis que la page de codes est utilisée pour convertir les
données chaînes au format Unicode.

Spécifiez le format de fichier. Vous pouvez utiliser un format délimité, à largeur fixe
ou en drapeau à droite.

Spécifiez une ligne d'en-tête, une ligne de données et des séparateurs de


colonnes. Les séparateurs de colonnes peuvent être définis au niveau du fichier et
remplacés au niveau de la colonne.

Indiquez si la première ligne des fichiers contient les noms de colonnes.

Spécifiez un caractère d'identificateur de texte. Chaque colonne peut être


configurée pour reconnaître un identificateur de texte.
Définissez des propriétés comme le nom, le type de données et la largeur
maximale pour des colonnes individuelles.

Lorsque le gestionnaire de connexions de fichiers plats multiples référence plusieurs


fichiers, les chemins d'accès aux fichiers sont séparés par une barre verticale (|). La
propriété ConnectionString du gestionnaire de connexions utilise le format suivant :

<chemin>|<chemin>

Vous pouvez également spécifier plusieurs fichiers en utilisant des caractères


génériques. Par exemple, pour référencer tous les fichiers texte du lecteur C, la valeur de
la propriété ConnectionString peut être définie sur C:\*.txt.

Si un gestionnaire de connexions de fichiers plats multiples référence plusieurs fichiers,


tous les fichiers doivent utiliser le même format.

Par défaut, le gestionnaire de connexions de fichiers plats multiples définit pour les
colonnes de type chaîne une longueur de 50 caractères. Dans la boîte de dialogue
Éditeur du gestionnaire de connexions de fichiers plats multiples , vous pouvez
évaluer des exemples de données et redimensionner automatiquement la longueur de
ces colonnes pour empêcher la troncation des données ou la largeur de colonne
excessive. Sauf si vous redimensionnez la longueur de colonne dans une source de
fichier plat ou une transformation, celle-ci reste la même dans le flux de données. Si ces
colonnes mappent dans des colonnes de destination plus étroites, des avertissements
apparaissent dans l'interface de l'utilisateur et, à l'exécution, des erreurs peuvent se
produire du fait de la troncation des données. Vous pouvez redimensionner les colonnes
pour les rendre compatibles avec les colonnes de destination dans le gestionnaire de
connexions de fichiers plats multiples, la source du fichier plat ou une transformation.
Pour modifier la longueur des colonnes de sortie, définissez la propriété Length de la
colonne de sortie sous l’onglet Propriétés d’entrée et de sortie de la boîte de dialogue
Éditeur avancé .

Si vous mettez à jour des longueurs de colonne dans le gestionnaire de connexions de


fichiers plats multiples après avoir ajouté et configuré la source de fichier plat qui utilise
le gestionnaire de connexions, vous n'avez pas à redimensionner manuellement les
colonnes de sortie dans la source de fichier plat. Quand vous ouvrez la boîte de
dialogue Source du fichier plat , la source du fichier plat offre la possibilité de
synchroniser les métadonnées de la colonne.

Configuration du gestionnaire de connexions


de fichiers plats multiples
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d’informations sur la configuration d’un gestionnaire de connexions par


programmation, consultez ConnectionManager et Ajout de connexions par programme.

Éditeur du gestionnaire de connexions de


fichiers plats multiples (page Général)
Utilisez la page Général de la boîte de dialogue Éditeur du gestionnaire de connexions
de fichiers plats multiples pour sélectionner un groupe de fichiers ayant le même
format de données et pour spécifier leur format de données. Une connexion de fichiers
plats multiples permet à un package de se connecter à un groupe de fichiers texte ayant
le même format.

Pour en savoir plus sur le gestionnaire de connexions de fichiers plats multiples,


consultez Multiple Flat Files Connection Manager.

Options
Nom du gestionnaire de connexions
Spécifiez un nom unique pour la connexion de fichiers plats multiples dans le flux de
travail. Le nom fourni sera affiché dans le concepteur SSIS .

Description
Décrit la connexion. Il est recommandé d'indiquer ici l'usage auquel la connexion est
destinée, de sorte que les packages soient correctement documentés et plus faciles à
gérer.

Noms de fichiers
Tapez le chemin d'accès et les noms de fichiers à utiliser dans la connexion de fichiers
plats multiples. Vous pouvez spécifier plusieurs fichiers à la fois en utilisant des
caractères génériques (par exemple, C:\*.txt) ou en utilisant la barre verticale (|) pour
séparer plusieurs noms de fichiers. Tous les fichiers doivent avoir le même format de
données.

Parcourir
Naviguez jusqu'aux noms de fichiers à utiliser dans la connexion de fichiers plats
multiples. Vous pouvez sélectionner plusieurs fichiers. Tous les fichiers doivent avoir le
même format de données.
Paramètres régionaux
Indiquez l'emplacement qui fournira les informations de classement et de conversion de
la date et de l'heure.

Unicode
Indique s'il convient d'utiliser Unicode. L'utilisation d'Unicode vous empêche de spécifier
une page de codes.

Page de codes
Spécifiez la page de codes pour du texte non-Unicode.

Format
Permet de préciser la mise en forme à utiliser : délimitée, à largeur fixe ou en drapeau à
droite. Tous les fichiers doivent avoir le même format de données.

Valeur Description

Delimited Les colonnes sont séparées par les séparateurs spécifiés à la page Colonnes .

Largeur Les colonnes ont une largeur fixe que vous spécifiez en faisant glisser les lignes des
fixe marqueurs dans la page Colonnes .

En Dans les fichiers en drapeau à droite, toutes les colonnes ont une largeur fixe, sauf la
drapeau dernière, qui est délimitée par le séparateur de lignes défini dans la page Colonnes .
à droite

Qualificateur de texte
Spécifiez le qualificateur de texte à utiliser. Par exemple, vous pouvez spécifier de mettre
le texte entre guillemets.

Séparateur de lignes d'en-tête


Choisissez dans la liste des séparateurs de lignes d'en-tête ou entrez le texte de
séparation.

Valeur Description

{CR}{LF} La ligne d'en-tête est séparée par une combinaison retour chariot-saut de
ligne.

{CR} La ligne d'en-tête est séparée par des retours chariot.

{LF} La ligne d'en-tête est séparée par des sauts de lignes.

Point-virgule {;} La ligne d'en-tête est séparée par des points-virgules.

Deux-points {:} La ligne d'en-tête est séparée par des deux-points.


Valeur Description

Virgule {,} La ligne d'en-tête est séparée par des virgules.

Tabulation {t} La ligne d'en-tête est séparée par des tabulations.

Barre verticale La ligne d'en-tête est séparée par des barres verticales.
{|}

Lignes d'en-tête à ignorer


Spécifiez le nombre de lignes d'en-tête à ignorer, le cas échéant.

Noms de colonnes dans la première ligne de données


Indique si des noms de colonne doivent être attendus ou fournis dans la première ligne
de données.

Éditeur du gestionnaire de connexions de


fichiers plats multiples (page Colonnes)
Utilisez le nœud Colonnes de la boîte de dialogue Éditeur du gestionnaire de
connexions de fichiers plats multiples pour spécifier les informations de ligne et de
colonne et afficher un aperçu du premier fichier sélectionné.

Pour en savoir plus sur le gestionnaire de connexions de fichiers plats multiples,


consultez Multiple Flat Files Connection Manager.

Options statiques
Nom du gestionnaire de connexions
Spécifiez un nom unique pour la connexion de fichiers plats multiples dans le flux de
travail. Le nom fourni sera affiché dans le concepteur SSIS .

Description
Décrit la connexion. Il est recommandé d'indiquer ici l'usage auquel la connexion est
destinée, de sorte que les packages soient correctement documentés et plus faciles à
gérer.

Options dynamiques de format de fichier plat

Format = Délimité
Séparateur de lignes
Effectuez une sélection dans la liste des séparateurs de lignes disponibles ou entrez le
texte du séparateur.

Valeur Description

{CR}{LF} Les lignes sont séparées par une combinaison de retour chariot/saut de ligne.

{CR} Les lignes sont séparées par un retour chariot.

{LF} Les lignes sont séparées par un saut de ligne.

Point-virgule {;} Les lignes sont séparées par un point-virgule.

Deux-points {:} Les lignes sont séparées par un deux-points.

Virgule {,} Les lignes sont séparées par une virgule.

Tabulation {t} Les lignes sont séparées par une tabulation.

Barre verticale {|} Les lignes sont séparées par une barre verticale.

Délimiteur de colonne
Effectuez une sélection dans la liste des séparateurs de colonnes disponibles ou entrez
le texte du séparateur.

Valeur Description

{CR}{LF} Les colonnes sont délimitées par une combinaison retour chariot-saut de
ligne.

{CR} Les colonnes sont séparées par un retour chariot.

{LF} Les colonnes sont séparées par un saut de ligne.

Point-virgule {;} Les colonnes sont séparées par un point-virgule.

Deux-points {:} Les colonnes sont séparées par un deux-points.

Virgule {,} Les colonnes sont séparées par une virgule.

Tabulation {t} Les colonnes sont séparées par une tabulation.

Barre verticale Les colonnes sont séparées par une barre verticale.
{|}

Réinitialiser les colonnes


Cliquez sur Réinitialiser les colonnespour supprimer toutes les colonnes à l’exception de
celles d’origine.
Format = Largeur fixe
Police
Sélectionnez la police d'affichage de l'aperçu des données.

Colonnes de données sources


Ajustez la largeur de la ligne en faisant glisser le marqueur de ligne vertical, et celle des
colonnes en cliquant sur la règle en haut de la fenêtre d'aperçu.

Largeur de ligne
Spécifiez la largeur de la ligne avant d'ajouter des séparateurs pour des colonnes
distinctes. Vous pouvez également faire glisser la ligne verticale dans la fenêtre d'aperçu
pour marquer la fin de la ligne. La valeur de la largeur de ligne est automatiquement
mise à jour.

Réinitialiser les colonnes


Cliquez sur Réinitialiser les colonnespour supprimer toutes les colonnes à l’exception de
celles d’origine.

Format = En drapeau à droite

7 Notes

Les fichiers en drapeau à droite sont ceux dans lesquels chaque colonne possède
une largeur fixe, à l'exception de la dernière. Un séparateur de lignes s'applique.

Police
Sélectionnez la police d'affichage de l'aperçu des données.

Colonnes de données sources


Ajustez la largeur de la ligne en faisant glisser le marqueur de ligne vertical, et celle des
colonnes en cliquant sur la règle en haut de la fenêtre d'aperçu.

Séparateur de lignes
Effectuez une sélection dans la liste des séparateurs de lignes disponibles ou entrez le
texte du séparateur.

Valeur Description

{CR}{LF} Les lignes sont séparées par une combinaison de retour chariot/saut de ligne.

{CR} Les lignes sont séparées par un retour chariot.


Valeur Description

{LF} Les lignes sont séparées par un saut de ligne.

Point-virgule {;} Les lignes sont séparées par un point-virgule.

Deux-points {:} Les lignes sont séparées par un deux-points.

Virgule {,} Les lignes sont séparées par une virgule.

Tabulation {t} Les lignes sont séparées par une tabulation.

Barre verticale {|} Les lignes sont séparées par une barre verticale.

Réinitialiser les colonnes


Cliquez sur Réinitialiser les colonnespour supprimer toutes les colonnes à l’exception de
celles d’origine.

Éditeur du gestionnaire de connexions de


fichiers plats multiples (page Avancé)
Utilisez la page Avancé de la boîte de dialogue Éditeur du gestionnaire de connexions
de fichiers plats multiples pour définir des propriétés comme le type de données et les
délimiteurs de chaque colonne des fichiers texte auxquels le gestionnaire de connexions
de fichiers plats se connecte.

Par défaut, la longueur des colonnes de type chaîne est de 50 caractères. Vous pouvez
évaluer des exemples de données et redimensionner automatiquement la longueur de
ces colonnes pour empêcher la troncation des données ou une largeur de colonne
excessive. Vous pouvez également mettre à jour d'autres métadonnées pour permettre
la compatibilité avec les colonnes de destination. Par exemple, vous pouvez convertir le
type de données d'une colonne qui contient uniquement des données de type entier en
type de données numérique, tel que DT_I2.

Pour en savoir plus sur le gestionnaire de connexions de fichiers plats multiples,


consultez Multiple Flat Files Connection Manager.

Options
Nom du gestionnaire de connexions
Fournissez un nom unique pour le gestionnaire de connexions de fichiers plats multiples
dans le flux de travail. Le nom fourni sera affiché dans la zone Gestionnaires de
connexion du concepteur SSIS .
Description
Décrivez le gestionnaire de connexions. Il est recommandé d'indiquer ici l'usage auquel
le gestionnaire de connexions est destiné, de sorte que les packages soient
correctement documentés et plus faciles à gérer.

Configurez les propriétés de chaque colonne


Dans le volet gauche, sélectionnez une colonne pour afficher ses propriétés dans celui
de droite. Le tableau ci-dessous fournit une description des définitions des types de
données. Certaines de ces propriétés peuvent uniquement être configurées pour
certains formats de fichiers plats.

Propriété Description

ColumnType Indique si la colonne est délimitée, si elle a une largeur fixe ou si elle
présente un format en drapeau à droite. Cette propriété est en lecture
seule. Dans les fichiers en drapeau à droite, chaque colonne a une largeur
fixe, sauf la dernière qui est arrêtée par le séparateur de lignes.

OutputColumnWidth Indiquez une valeur spécifiant la largeur de colonne en nombre d'octets.


Pour les fichiers Unicode, cette valeur est exprimée en nombre de
caractères. Dans la tâche de flux de données, cette valeur permet de
définir la largeur de la colonne de sortie pour les fichiers plats sources.

Remarque : Dans le modèle objet, le nom de la propriété est


MaximumWidth.

DataType Sélectionnez un type de données dans la liste des types de données


disponibles. Pour plus d’informations, consultez Types de données
Integration Services.

TextQualified Indiquez si les données texte sont qualifiées à l’aide d’un caractère
identificateur de texte :

True : Les données texte du fichier plat sont qualifiées.

False : Les données texte du fichier plat ne sont pas qualifiées.

Nom Précisez un nom de colonne. La valeur par défaut est une liste numérotée
de colonnes. Vous pouvez toutefois indiquer un nom descriptif unique de
votre choix.

DataScale Spécifiez l'échelle des données numériques. L'échelle est le nombre de


décimales. Pour plus d’informations, consultez Types de données
Integration Services.
Propriété Description

ColumnDelimiter Sélectionnez un délimiteur de colonnes dans la liste des séparateurs de


colonnes disponibles. Veillez à choisir un caractère de séparation qu'il est
peu probable de rencontrer dans le texte. Cette valeur est ignorée dans le
cas des colonnes à largeur fixe.

{CR}{LF} : les colonnes sont délimitées par une combinaison retour


chariot/saut de ligne

{CR} : les colonnes sont séparées par un retour chariot

{LF} : les colonnes sont séparées par un saut de ligne

Point-virgule {;} : les colonnes sont délimitées par un point-virgule

Deux-points {:} : les colonnes sont délimitées par un deux-points

Virgule {,} : les colonnes sont délimitées par une virgule

Tabulation {t} : les colonnes sont délimitées par une tabulation

Barre verticale {|} : les colonnes sont délimitées par une barre verticale

DataPrecision Spécifiez la précision des données numériques. La précision indique le


nombre total de chiffres. Pour plus d’informations, consultez Types de
données Integration Services.

InputColumnWidth Indiquez une valeur spécifiant la largeur de colonne en nombre d'octets.


Pour les fichiers Unicode, cette valeur est exprimée en nombre de
caractères. Cette valeur est ignorée dans le cas des colonnes délimitées.

Remarque : Dans le modèle objet, le nom de cette propriété est


ColumnWidth.

Nouveau
Ajoutez une nouvelle colonne en cliquant sur Nouveau. Par défaut, ce nouveau bouton
ajoute une nouvelle colonne à la fin de la liste. Il comporte également une liste
déroulante avec les options disponibles suivantes :

Valeur Description

Ajouter une colonne Ajoute une colonne à la fin de la liste.

Insérer avant Insère une nouvelle colonne avant la colonne sélectionnée.

Insérer après Insère une nouvelle colonne après la colonne sélectionnée.


Supprimer
Sélectionnez une colonne, puis supprimez-la en cliquant sur Supprimer.

Suggérer les types


Utilisez la boîte de dialogue Suggérer les types de colonnes pour évaluer un échantillon
de données provenant du premier fichier sélectionné et pour obtenir des suggestions
concernant le type de données et la longueur de chaque colonne. Pour plus
d’informations, consultez Référence de l’interface utilisateur de la boîte de dialogue
Suggérer les types de colonnes.

Éditeur du gestionnaire de connexions de


fichiers plats multiples (page Aperçu)
La page Aperçu de la boîte de dialogue Éditeur du gestionnaire de connexions de
fichiers plats multiples vous permet d’afficher le contenu du premier fichier source
sélectionné, divisé en colonnes, telles que vous les avez définies.

Pour en savoir plus sur le gestionnaire de connexions de fichiers plats multiples,


consultez Multiple Flat Files Connection Manager.

Options
Nom du gestionnaire de connexions
Spécifiez un nom unique pour la connexion de fichiers plats multiples dans le flux de
travail. Le nom fourni sera affiché dans la zone Gestionnaires de connexion du
concepteur SSIS .

Description
Décrit la connexion. Il est recommandé d'indiquer ici l'usage auquel la connexion est
destinée, de sorte que les packages soient correctement documentés et plus faciles à
gérer.

Lignes de données à ignorer


Indiquez le nombre de lignes qui doivent être ignorées à partir du début du fichier plat.

Aperçu des lignes


Permet d'afficher les données d'exemple dans le premier fichier plat sélectionné,
divisées en colonnes et en lignes à l'aide des options sélectionnées.

Voir aussi
Source de fichier plat
Destination de fichier plat
Connexions Integration Services (SSIS)
Gestionnaire de connexions OData
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Connectez-vous à une source de données OData via un gestionnaire de connexions


OData. Un composant source OData utilise un gestionnaire de connexions ODatase
pour se connecter à une source de données OData et consommer les données du
service. Pour plus d'informations, consultez OData Source.

Ajout d’un gestionnaire de connexions OData à


un package SSIS
Vous pouvez ajouter un nouveau gestionnaire de connexions OData à un package SSIS
de trois manières :

Cliquez sur le bouton Nouveau... dans Éditeur de source OData.

Cliquez avec le bouton droit sur le dossier Gestionnaires de connexions dans


l’Explorateur de solutions, puis cliquez sur Nouveau gestionnaire de connexions.
Sélectionnez ODATA pour Type du gestionnaire de connexions.

Cliquez avec le bouton droit dans le volet Gestionnaires de connexions au bas du


concepteur de packages, puis sélectionnez Nouvelle connexion. Sélectionnez
ODATA pour Type du gestionnaire de connexions.

7 Notes

Vérifiez que la langue des paramètres internationaux de Visual Studio/SQL Server


Data Tools (SSDT) correspond à la langue par défaut de l’instance SQL Server cible
dans laquelle les packages SSIS sont déployés.

Authentification du gestionnaire de connexions


Le gestionnaire de connexions OData prend en charge cinq modes d’authentification.

Authentification Windows

Authentification de base (avec nom d’utilisateur et mot de passe)


Microsoft Dynamics AX Online (avec nom d’utilisateur et mot de passe)

Microsoft Dynamics CRM Online (avec nom d’utilisateur et mot de passe)

Microsoft Online Services (avec nom d’utilisateur et mot de passe)

Pour un accès anonyme, sélectionnez l’option Authentification Windows.

Pour vous connecter à Microsoft Dynamics AX Online ou Microsoft Dynamics CRM


Online, vous ne pouvez pas utiliser l’option d’authentification Microsoft Online Services.
Par ailleurs, vous ne pouvez utiliser aucun option qui est configurée pour
l’authentification multifacteur. L’authentification moderne n’est pas prise en charge pour
l’instant.

Spécification des informations d'identification


Si votre service OData requiert l’authentification de base, spécifiez un nom d’utilisateur
et un mot de passe dans OData Connection Manager Editor. Les valeurs que vous entrez
dans l'éditeur sont conservées dans le package. La valeur du mot de passe est chiffrée
selon le niveau de protection du package.

Il existe plusieurs façons de paramétrer les valeurs nom d’utilisateur et mot de passe ou
de les stocker en dehors du package. Vous pouvez par exemple utiliser des paramètres
ou définir directement les propriétés du gestionnaire de connexions lorsque vous
exécutez le package à partir de SQL Server Management Studio.

Propriétés du gestionnaire de connexions


OData
Le tableau suivant répertorie les propriétés du gestionnaire de connexions OData.

Propriété Valeur Description


par
défaut

Connexion False Valeur de l’en-tête « Keep-Alive » lors de l’envoi de la


persistante requête web.

Taille maximale des 4To Taille maximale des messages reçus, en octets, lors de l’envoi
messages reçus d’une requête web.

Nombre de 5 Nombre de nouvelles tentatives lors de l’envoi d’une


tentatives requête web.
Propriété Valeur Description
par
défaut

Nouvelle tentative 100 Temps d’attente en millisecondes avant une nouvelle


d’attente tentative lors de l’envoi d’une requête web.

Délai d’expiration 600 Délai d’expiration en secondes lors de l’envoi d’une requête
web.

Url URL vers le document de service.

UserName Nom d’utilisateur à utiliser pour l’authentification, si


nécessaire.

Mot de passe Mot de passe à utiliser pour l’authentification, si nécessaire.

ConnectionString Inclut d’autres propriétés du gestionnaire de connexions.

Éditeur du gestionnaire de connexions OData


La boîte de dialogue Éditeur du gestionnaire de connexions OData vous permet
d’ajouter ou de modifier une connexion à une source de données OData existante.

Options
Nom du gestionnaire de connexions
Nom du gestionnaire de connexions.

Emplacement du document de service


URL du service OData. Par exemple :
https://services.odata.org/V3/Northwind/Northwind.svc/ .

Authentification
Sélectionnez l’une des options suivantes :

Authentification Windows. Pour l’accès anonyme, sélectionnez cette option.


Authentification de base
Microsoft Dynamics AX Online pour Dynamics AX Online
Microsoft Dynamics CRM Online pour Dynamics CRM Online
Microsoft Online Services pour Microsoft Online Services

Si vous sélectionnez une option autre que Authentification Windows, entrez le nom
d’utilisateur et le mot de passe.
Pour vous connecter à Microsoft Dynamics AX Online ou Microsoft Dynamics CRM
Online, vous ne pouvez pas utiliser l’option d’authentification Microsoft Online Services.
Par ailleurs, vous ne pouvez utiliser aucun option qui est configurée pour
l’authentification multifacteur.

Tester la connexion
Cliquez sur ce bouton pour tester la connexion à la source OData.
Gestionnaire de connexions ODBC
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions ODBC permet à un package de se connecter à divers


systèmes de gestion de base de données à l'aide de la spécification ODBC (Open
Database Connectivity).

Quand vous ajoutez une connexion ODBC à un package et que vous définissez les
propriétés du gestionnaire de connexions, SQL Server Integration Services crée un
gestionnaire de connexions et l’ajoute à la collection Connections du package. Au
moment de l'exécution, le gestionnaire de connexions est résolu en tant que connexion
ODBC physique.

La propriété ConnectionManagerType du gestionnaire de connexions a pour valeur


ODBC.

Vous pouvez configurer le gestionnaire de connexions ODBC de plusieurs manières :

Fournissez une chaîne de connexion qui fait référence à un nom d'utilisateur ou de


source de données système.

Spécifiez le serveur auquel se connecter.

Indiquez si la connexion est conservée au moment de l'exécution.

7 Notes

Seuls ODBC 3.0 et versions ultérieures sont pris en charge pour SSIS IR dans Azure
Data Factory, SQL 2019 et versions ultérieures.

Configuration du gestionnaire de connexions


ODBC
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d’informations sur les propriétés que vous pouvez définir dans le Concepteur
SSIS , cliquez sur une des rubriques suivantes :
Informations de référence sur l’interface utilisateur du gestionnaire de connexions
ODBC

Pour plus d’informations sur la configuration d’un gestionnaire de connexions par


programmation, consultez ConnectionManager et Ajout de connexions par programme.

Référence de l'interface utilisateur du


gestionnaire de connexions ODBC
Utilisez la boîte de dialogue Configurer le gestionnaire de connexions ODBC pour
ajouter une connexion à une source de données ODBC.

Pour en savoir plus sur le gestionnaire de connexions ODBC, consultez ODBC


Connection Manager.

Options
Connexions de données
Sélectionnez un gestionnaire de connexions ODBC existant dans la liste.

Propriétés des connexions de données


Affichez les propriétés et les valeurs du gestionnaire de connexions ODBC sélectionné.

Nouveau
Créez un gestionnaire de connexions ODBC à l’aide de la boîte de dialogue
Gestionnaire de connexions . Cette boîte de dialogue vous permet également de créer
une nouvelle source de données ODBC si nécessaire.

Supprimer
Sélectionnez une connexion, puis supprimez-la à l’aide du bouton Supprimer .

Voir aussi
Connexions Integration Services (SSIS)
Gestionnaire de connexions OLEDB
Article • 27/10/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions OLEDB permet à un package de se connecter à une


source de données à l’aide d’un fournisseur OLEDB. Par exemple, un gestionnaire de
connexions OLEDB qui se connecte à SQL Server peut utiliser le fournisseur Microsoft
OLEDB pour SQL Server.

7 Notes

Le fournisseur OLEDB SQL Server Native Client 11.0 ne prend pas en charge les
mots clés de la nouvelle chaîne de connexion (MultiSubnetFailover=True) pour le
clustering de basculement de sous-réseaux multiples. Pour plus d’informations,
consultez les Notes de publication pour SQL Server .

7 Notes

Si la source de données est Microsoft Office Excel 2007 ou Microsoft Office Access
2007, elle requiert un fournisseur de données différent des versions antérieures
d’Excel ou d’Access. Pour plus d’informations, consultez Établir une connexion à un
classeur Excel et Établir une connexion à une base de données Access.

Plusieurs tâches et composants de flux de données SQL Server Integration Services


utilisent un gestionnaire de connexions OLEDB. Par exemple, la source OLEDB et la
destination OLEDB utilisent ce gestionnaire de connexions pour extraire et charger des
données. La tâche d’exécution de requêtes SQL peut utiliser ce gestionnaire de
connexions pour se connecter à une base de données SQL Server afin d’exécuter des
requêtes.

Vous pouvez également utiliser le gestionnaire de connexions OLEDB pour accéder à


des sources de données OLEDB dans des tâches personnalisées écrites dans du code
non géré qui utilise un langage comme C++.

Quand vous ajoutez un gestionnaire de connexions OLEDB à un package, Integration


Services crée un gestionnaire de connexions qui est résolu en une connexion OLEDB au
moment de l’exécution, définit les propriétés du gestionnaire de connexions et ajoute le
gestionnaire de connexions à la collection Connections sur le package.
La propriété ConnectionManagerType du gestionnaire de connexions a pour valeur OLEDB .

Configurez le gestionnaire de connexions OLEDB de plusieurs manières :

Indiquez une chaîne de connexion spécifique configurée pour répondre aux


besoins du fournisseur sélectionné.

Selon le fournisseur, incluez le nom de la source de données à laquelle se


connecter.

Fournissez les informations d'identification de sécurité nécessaires selon le


fournisseur sélectionné.

Indiquez si la connexion créée à partir du gestionnaire de connexions est


conservée au moment de l’exécution.

7 Notes

Microsoft Entra ID est le nouveau nom d’Azure Active Directory (Azure AD). Nous
sommes en train de mettre à jour la documentation.

Consigner les appels et résoudre les problèmes


de connexion
Vous pouvez consigner les appels que le gestionnaire de connexions OLEDB effectue
vers des fournisseurs de données externes. Vous pouvez alors résoudre les problèmes
liés aux connexions établies par le gestionnaire de connexions OLEDB avec des sources
de données externes. Pour consigner les appels que le gestionnaire de connexions
OLEDB effectue vers des fournisseurs de données externes, activez la journalisation des
packages et sélectionnez l’événement Diagnostic au niveau du package. Pour plus
d’informations, consultez Outils de dépannage pour l’exécution des packages.

Configurer le gestionnaire de connexions


OLEDB
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation. Pour plus d’informations sur les propriétés définissables dans le
concepteur SSIS , consultez Configurer le gestionnaire de connexions OLEDB. Pour plus
d’informations sur la configuration d’un gestionnaire de connexions par programmation,
consultez la documentation de la classe
T:Microsoft.SqlServer.Dts.Runtime.ConnectionManager dans le Guide du développeur.

Configurer le gestionnaire de connexions OLEDB


Utilisez la boîte de dialogue Configurer le gestionnaire de connexions OLEDB pour
ajouter une connexion à une source de données. Cette connexion peut être nouvelle ou
une copie d’une connexion existante.

7 Notes

Si la source de données est Microsoft Office Excel 2007, la source de données


requiert un gestionnaire de connexions différent des versions antérieures d'Excel.
Pour plus d’informations, consultez Établir une connexion à un classeur Excel.

Si la source de données est Microsoft Office Access 2007, la source de données


requiert un fournisseur OLEDB différent des versions antérieures d’Access. Pour plus
d’informations, consultez Établir une connexion à une base de données Access.

Pour en savoir plus sur le gestionnaire de connexions OLEDB, consultez Gestionnaire de


connexions OLEDB.

Options

Connexions de données
Sélectionnez une connexion de données OLEDB existante dans la liste.

Propriétés des connexions de données


Permet d’afficher les propriétés et les valeurs relatives à la connexion de données OLEDB
sélectionnée.

Nouveau
Créez une connexion de données OLEDB à l’aide de la boîte de dialogue Gestionnaire
de connexions .

Supprimer
Sélectionnez une connexion de données, puis supprimez-la en sélectionnant Supprimer.

Identités managées pour l’authentification des ressources Azure


Lorsque vous exécutez des packages SSIS sur le runtime d’intégration Azure-SSIS dans
Azure Data Factory (ADF), vous pouvez utiliser l’authentification Microsoft Entra avec
l’identité managée système/affectée par l’utilisateur spécifiée pour que votre ADF
accède à votre base de données Azure SQL ou à votre instance gérée SQL. Votre Azure-
SSIS IR peut accéder à votre base de données et copier des données depuis ou vers
celui-ci à l’aide de cette identité managée.

7 Notes

Lorsque vous vous authentifiez avec une identité managée affectée par
l’utilisateur, SSIS Integration Runtime doit être activé avec la même identité.
Pour plus d’informations, consultez Activer l’authentification Microsoft Entra
pour Azure-SSIS Integration Runtime.

Lorsque vous utilisez l’authentification Microsoft Entra pour accéder à Azure


SQL Database ou Azure SQL Managed Instance, vous pouvez rencontrer un
problème lié à l’échec de l’exécution du package ou à un changement de
comportement inattendu. Pour plus d’informations, consultez Fonctionnalités
et limitations d’AAD.

Pour utiliser l’authentification AAD avec l’identité managée système/affectée par


l’utilisateur spécifiée pour que votre ADF accède à un serveur Azure SQL Database,
procédez comme suit :

1. Approvisionnez un administrateur Microsoft Entra pour votre serveur logique dans


le portail Azure, si vous ne l’avez pas encore fait. L’administrateur Microsoft Entra
peut être un utilisateur ou un groupe Microsoft Entra. Si vous désignez un groupe
comme administrateur, vous pouvez ajouter l’identité managée de votre ADF au
groupe et ignorer les étapes 2 et 3. L’administrateur aura un accès complet à votre
serveur Azure SQL Database.

2. Créez un utilisateur de base de données autonome pour l’identité


managée/système affectée par l’utilisateur spécifiée pour votre ADF. Utilisez SQL
Server Management Studio (SSMS) pour vous connecter à la base de données avec
un utilisateur Microsoft Entra disposant au moins de l’autorisation ALTER ANY
USER. Exécutez l’instruction T-SQL suivante :

SQL

CREATE USER [your managed identity name] FROM EXTERNAL PROVIDER;

Si vous utilisez l’identité managée affectée par le système pour votre ADF, votre
nom d’identité managée doit être votre nom ADF. Si vous utilisez une identité
managée affectée par l’utilisateur pour votre ADF, votre nom d’identité managée
doit être le nom d’identité managée affecté à l’utilisateur spécifié.

3. Accordez les autorisations nécessaires à l’identité managée pour votre ADF,


comme vous le faites normalement pour les utilisateurs SQL. Pour connaître les
rôles appropriés, consultez Rôles au niveau de la base de données. Exécutez
l’instruction T-SQL suivante. Pour plus d’options, consultez cet article.

SQL

EXEC sp_addrolemember [role name], [your managed identity name];

Pour utiliser l’authentification AAD avec l’identité managée système/affectée par


l’utilisateur spécifiée pour que votre ADF accède à Azure SQL Managed Instance,
procédez comme suit :

1. Approvisionnez un administrateur Microsoft Entra pour votre Azure SQL Managed


Instance dans le portail Azure, si vous ne l’avez pas encore fait. L’administrateur
Microsoft Entra peut être un utilisateur ou un groupe Microsoft Entra. Si vous
désignez un groupe comme administrateur, vous pouvez ajouter l’identité
managée de votre ADF au groupe et ignorer les étapes 2 et 3. L’administrateur a
un accès total à votre Azure SQL Managed Instance.

2. Créez une connexion affectée à l’identité managée pour votre ADF. Dans SSMS,
connectez-vous à votre instance Azure SQL Managed Instance à l’aide d’un
compte SQL Server qui est un administrateur système. Dans la base de données
de master , exécutez l’instruction T-SQL suivante ::

SQL

CREATE LOGIN [your managed identity name] FROM EXTERNAL PROVIDER;

Si vous utilisez l’identité managée par le système pour votre ADF, votre nom
d’identité managée doit être votre nom ADF. Si vous utilisez une identité managée
affectée par l’utilisateur pour votre ADF, votre nom d’identité managée doit être le
nom d’identité managée affecté à l’utilisateur spécifié.

3. Créez un utilisateur de base de données autonome représentant l’identité


managée système/affectée par l’utilisateur spécifiée pour votre ADF. Connectez-
vous à la base de données à partir de laquelle ou vers laquelle vous souhaitez
copier des données avec SSMS et exécutez l’instruction T-SQL suivante :

SQL
CREATE USER [your managed identity name] FROM EXTERNAL PROVIDER;

4. Accordez les autorisations nécessaires à l’identité managée pour votre ADF,


comme vous le faites normalement pour les utilisateurs SQL. Exécutez l’instruction
T-SQL suivante. Pour plus d’options, consultez cet article.

SQL

ALTER ROLE [role name e.g., db_owner] ADD MEMBER [your managed identity
name];

Vous pouvez ensuite configurer le fournisseur OLEDB sur votre gestionnaire de


connexions OLEDB. Les options disponibles sont les suivantes :

Effectuez la configuration au moment du design. Dans le concepteur SSIS,


double-cliquez sur votre gestionnaire de connexions OLEDB pour ouvrir la fenêtre
Gestionnaire de connexions. Dans la liste déroulante Fournisseur, sélectionnez
Microsoft OLEDB Driver pour SQL Server .

7 Notes

Il est possible que les autres fournisseurs dans la liste déroulante ne prennent
pas en charge l’authentification d’identité managée.

Effectuez la configuration au moment de l’exécution. Quand vous exécutez votre


package via SSMS ou l’Activité Exécuter le package SSIS dans le pipeline ADF,
recherchez la propriété ConnectionString du gestionnaire de connexions OLEDB.
Mettez à jour la propriété de connexion Provider en spécifiant MSOLEDBSQL
(autrement dit, Microsoft OLEDB Driver pour SQL Server).

VB

Data Source=serverName;Initial
Catalog=databaseName;Provider=MSOLEDBSQL;...

Enfin, vous pouvez configurer l’authentification AAD avec l’identité managée


système/affectée par l’utilisateur spécifiée pour votre ADF sur le gestionnaire de
connexions OLEDB . Les options disponibles sont les suivantes :

Effectuez la configuration au moment du design. Dans le concepteur SSIS, cliquez


avec le bouton droit sur votre gestionnaire de connexions OLEDB et sélectionnez
Propriétés. Mettez à jour la propriété ConnectUsingManagedIdentity en spécifiant
True .

7 Notes

La propriété du gestionnaire de connexions ConnectUsingManagedIdentity ne


prend pas effet (ce qui indique que l’authentification d’identité managée ne
fonctionne pas) quand vous exécutez le package SSIS dans le concepteur SSIS
ou SQL Server.

Effectuez la configuration au moment de l’exécution. Quand vous exécutez votre


package via SSMS ou l’Activité Exécuter le package SSIS dans le pipeline ADF,
recherchez le gestionnaire de connexions OLEDB et mettez à jour sa propriété
ConnectUsingManagedIdentity avec la valeur True .

7 Notes

Sur Azure-SSIS IR, toutes les autres méthodes d’authentification (par exemple,
sécurité intégrée et mot de passe) préconfigurées sur votre gestionnaire de
connexions OLEDB sont remplacées lors de l’utilisation de l’authentification
AAD avec l’identité managée système/affectée par l’utilisateur spécifiée pour
votre ADF.

Pour configurer l’authentification AAD avec l’identité managée système/affectée par


l’utilisateur spécifiée pour votre ADF sur vos packages existants, la meilleure méthode
consiste à reconstruire votre projet SSIS avec le dernier Concepteur SSIS au moins une
fois. Redéployez votre projet SSIS sur votre runtime d’intégration Azure-SSIS, afin que la
nouvelle propriété du gestionnaire de connexions ConnectUsingManagedIdentity soit
ajoutée automatiquement à tous les gestionnaires de connexions OLEDB dans votre
projet. L’autre méthode consiste à utiliser directement la substitution de propriété avec
le chemin de propriété \Package.Connections[{nom de votre gestionnaire de
connexions}].Properties[ConnectUsingManagedIdentity] affecté à True au moment de
l’exécution.

Voir aussi
Source OLEDB
Destination OLEDB
Connexions Integration Services (SSIS)
Commentaires
Cette page a-t-elle été utile ?  Yes  No

Indiquer des commentaires sur le produit | Obtenir de l’aide sur Microsoft Q&A
Gestionnaire de connexions SAP BW
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le gestionnaire de connexions SAP BW est le composant de gestionnaire de connexions


de Microsoft Connector 1.1 pour SAP BW. Ainsi, le gestionnaire de connexions SAP BW
fournit la connectivité à un système SAP Netweaver BW version 7 dont ont besoin les
composants source et de destination de Microsoft Connector 1.1 pour SAP BW. (La
source et la destination SAP BW qui font partie du package Microsoft Connector 1.1
pour SAP BW sont les seuls composants Integration Services qui utilisent le gestionnaire
de connexions SAP BW.)

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

Lorsque vous ajoutez un gestionnaire de connexions SAP BW à un package, la propriété


ConnectionManagerType du gestionnaire de connexions est définie sur SAPBI.

Configuration du gestionnaire de connexions


SAP BW
Vous pouvez configurer le gestionnaire de connexions SAP BW de plusieurs manières :

Fournissez le client, le nom d'utilisateur, le mot de passe et la langue pour la


connexion.

Déterminez si la connexion doit être établie à un serveur d'applications unique ou


à un groupe de serveurs à charge équilibrée.

Fournissez le numéro d'hôte et du système pour un serveur d'applications unique,


ou fournissez le serveur de messages, le groupe et le SID pour un groupe de
serveurs à charge équilibrée.

Activez la journalisation personnalisée des appels de fonction RFC pour les


composants de Microsoft Connector 1.1 pour SAP BW. (Cette journalisation diffère
de la journalisation facultative que vous pouvez activer sur les packages
Integration Services .) Pour activer la journalisation des appels de fonction RFC,
spécifiez un répertoire dans lequel stocker les fichiers journaux qui sont créés
avant et après chaque appel de fonction RFC. (Cette fonctionnalité de
journalisation crée de nombreux fichiers journaux au format XML. Comme ces
fichiers journaux contiennent également toutes les lignes de données qui sont
transférées, ils peuvent occuper beaucoup d’espace sur le disque.) Si vous ne
sélectionnez pas de répertoire de journal, la journalisation n’est pas activée.

) Important

Si les données qui sont transférées contiennent des informations sensibles, les
fichiers journaux contiendront également ces informations sensibles.

Utilisez les valeurs que vous avez entrées pour tester la connexion.

Si vous ne connaissez pas toutes les valeurs requises pour configurer le gestionnaire de
connexions, adressez-vous à votre administrateur SAP.

Pour obtenir la procédure pas à pas qui montre comment configurer et utiliser le
gestionnaire de connexions, la source et la destination SAP BW, consultez le livre blanc
Utilisation de SQL Server 2008 Integration Services avec SAP BI 7.0. Ce livre blanc
explique également comment configurer les objets nécessaires dans SAP BW.

Utilisation du concepteur SSIS pour configurer la source


Pour plus d'informations sur les propriétés du gestionnaire de connexions SAP BW que
vous pouvez définir dans le concepteur SSIS , cliquez sur la rubrique suivante :

Éditeur du gestionnaire de connexions SAP BW

Éditeur du gestionnaire de connexions SAP BW


Utilisez l' Éditeur du gestionnaire de connexions SAP BW pour spécifier les propriétés à
utiliser pour se connecter à un système SAP Netweaver BW version 7.

Le gestionnaire de connexions SAP BW fournit la connectivité à un système SAP


Netweaver BW version 7 en vue d'une utilisation par la source ou la destination SAP BW.
Pour en savoir plus sur le gestionnaire de connexions SAP BW de Microsoft Connector
1.1 pour SAP BW, consultez Gestionnaire de connexions SAP BW.
) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

Pour ouvrir l'Éditeur du gestionnaire de connexions SAP BW

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient le gestionnaire de connexions SAP BW.

2. Dans la zone Gestionnaires de connexions de l'onglet Flux de contrôle , procédez


de l'une des façons suivantes :

Double-cliquez sur le gestionnaire de connexions SAP BW.

- ou -

Cliquez avec le bouton droit sur le gestionnaire de connexions SAP BW, puis
sélectionnez Modifier.

Options

7 Notes

Si vous ne connaissez pas toutes les valeurs requises pour configurer le


gestionnaire de connexions, adressez-vous à votre administrateur SAP.

Client
Spécifiez le numéro de client du système.

Langage
Spécifiez la langue utilisée par le système. Par exemple, spécifiez FR pour le français.

Nom d’utilisateur
Spécifiez le nom d'utilisateur qui sera utilisé pour se connecter au système.

Mot de passe
Spécifiez le mot de passe qui sera utilisé avec le nom d'utilisateur.

Utiliser le serveur d'applications unique


Connectez-vous à un serveur d'applications unique.
Pour vous connecter à un groupe de serveurs à charge équilibrée, utilisez plutôt l’option
Utiliser l’équilibrage de charge .

Hôte
Si vous vous connectez à un serveur d'applications unique, spécifiez le nom d'hôte.

7 Notes

Cette option est disponible uniquement si vous avez sélectionné l'option Utiliser le
serveur d'applications unique .

Numéro système
Si vous vous connectez à un serveur d'applications unique, spécifiez le numéro du
système.

7 Notes

Cette option est disponible uniquement si vous avez sélectionné l'option Utiliser le
serveur d'applications unique .

Utiliser l’équilibrage de charge


Connectez-vous à un groupe de serveurs à charge équilibrée.

Pour vous connecter à un serveur d'applications unique, utilisez plutôt l'option Utiliser
le serveur d'applications unique .

Serveur de messagerie
Si vous vous connectez à un groupe de serveurs à charge équilibrée, spécifiez le nom du
serveur de messages.

7 Notes

Cette option est disponible uniquement si vous avez sélectionné l'option Utiliser
l'équilibrage de charge .

Groupe
Si vous vous connectez à un groupe de serveurs à charge équilibrée, spécifiez le nom du
groupe de serveurs.

7 Notes
Cette option est disponible uniquement si vous avez sélectionné l'option Utiliser
l'équilibrage de charge .

SID
Si vous vous connectez à un groupe de serveurs à charge équilibrée, spécifiez l'ID
système pour la connexion.

7 Notes

Cette option est disponible uniquement si vous avez sélectionné l'option Utiliser
l'équilibrage de charge .

Répertoire du journal
Activez la journalisation des composants de Microsoft Connector 1.1 pour SAP BW.

Pour activer la journalisation, spécifiez un répertoire pour les fichiers journaux qui sont
créés avant et après chaque appel de fonction RFC. (Cette fonctionnalité de
journalisation crée de nombreux fichiers journaux au format XML. Comme ces fichiers
journaux contiennent également toutes les lignes de données qui sont transférées, ils
peuvent occuper beaucoup d’espace sur le disque.)

) Important

Si les données qui sont transférées contiennent des informations sensibles, les
fichiers journaux contiendront également ces informations sensibles.

Pour spécifier le répertoire du journal, vous pouvez entrer le chemin d'accès au


répertoire manuellement, ou cliquer sur Parcourir et accéder au répertoire du journal.

Si vous ne sélectionnez pas de répertoire de journal, la journalisation n'est pas activée.

Parcourir
Parcourez l'arborescence pour sélectionner un dossier pour le répertoire du journal.

Tester la connexion
Testez la connexion à l'aide des valeurs que vous avez fournies. Après avoir cliqué sur
Tester la connexion, un message apparaît et indique si la connexion a été établie ou si
elle a échoué.

Voir aussi
Composants Microsoft Connector 1.1 pour SAP BW
Gestionnaire de connexions SMTP
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions SMTP permet à un package de se connecter à un serveur


SMTP (Simple Mail Transfer Protocol). La tâche Envoyer un message incluse dans
Microsoft SQL Server Integration Services utilise un gestionnaire de connexions SMTP.

Lorsque vous utilisez Microsoft Exchange comme serveur SMTP, vous pouvez être
amené à configurer le gestionnaire de connexions SMTP de manière à utiliser
l'authentification Windows. Les serveurs Exchange peuvent être configurés pour ne pas
autoriser les connexions SMTP non authentifiées.

Configuration du gestionnaire de connexions


SMTP
Quand vous ajoutez un gestionnaire de connexions SMTP à un package, Integration
Services crée un gestionnaire de connexions qui sera converti en connexion SMTP au
moment de l’exécution, définit les propriétés du gestionnaire de connexions et ajoute le
gestionnaire de connexions à la collection Connexions du package. La propriété
ConnectionManagerType du gestionnaire de connexions a pour valeur SMTP.

Vous pouvez configurer un gestionnaire de connexions SMTP de plusieurs manières :

Spécifiez une chaîne de connexion.

Indiquez le nom d'un serveur SMTP.

Spécifiez la méthode d'authentification à utiliser.

) Important

Le gestionnaire de connexions SMTP prend en charge uniquement


l'authentification anonyme et l'authentification Windows. Il ne prend pas en
charge l'authentification de base.

Permet d'indiquer si les communications doivent être chiffrées à l'aide de TLS


(Transport Layer Security), anciennement SSL (Secure Sockets Layer), lors de l'envoi
de messages électroniques.
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d’informations sur les propriétés définissables dans le concepteur SSIS ,
consultez Éditeur du gestionnaire de connexions SMTP.

Pour plus d’informations sur la configuration d’un gestionnaire de connexions par


programmation, consultez ConnectionManager et Ajout de connexions par programme.

Éditeur du gestionnaire de connexions SMTP


Utilisez la boîte de dialogue Éditeur du gestionnaire de connexions SMTP pour
spécifier un serveur SMTP (Simple Mail Transfer Protocol).

Pour en savoir plus sur le gestionnaire de connexions SMTP, consultez SMTP Connection
Manager.

Options
Nom
Donnez un nom unique au gestionnaire de connexions.

Description
Décrivez le gestionnaire de connexions. Il est recommandé d'indiquer ici l'usage auquel
le gestionnaire de connexions est destiné, de sorte que les packages soient
correctement documentés et plus faciles à gérer.

Serveur SMTP
Indiquez le nom du serveur SMTP.

Utiliser l'authentification Windows


Sélectionnez cette option pour envoyer des messages au moyen d'un serveur SMTP
utilisant l'authentification Windows pour authentifier l'accès au serveur.

) Important

Le gestionnaire de connexions SMTP prend en charge uniquement


l'authentification anonyme et l'authentification Windows. Il ne prend pas en charge
l'authentification de base.

7 Notes
Si vous utilisez Microsoft Exchange comme serveur SMTP, vous devrez peut-être
définir Utiliser l'authentification Windows à True. Les serveurs Exchange peuvent
être configurés de manière à interdire les connexions SMTP non authentifiées.

Activer SSL (Secure Sockets Layer)


Sélectionnez cette option pour chiffrer la communication au moyen de TLS/SSL lors de
l'envoi de messages électroniques.
Gestionnaire de connexions SMO
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions SMO permet à un package de se connecter à un serveur


SMO (SQL Management Object). Les tâches de transfert incluses dans SQL Server
Integration Services utilisent un gestionnaire de connexions SMO. Par exemple, la tâche
de transfert de connexions qui transfère des connexions SQL Server utilise un
gestionnaire de connexions SMO.

Quand vous ajoutez un gestionnaire de connexions SMO à un package, Integration


Services crée un gestionnaire de connexions qui est résolu en tant que connexion SMO
au moment de l’exécution, définit les propriétés du gestionnaire de connexions et
ajoute le gestionnaire de connexions à la collection Connexions sur le package. La
propriété ConnectionManagerType du gestionnaire de connexions a pour valeur
SMOServer.

Vous pouvez configurer le gestionnaire de connexions SMO de plusieurs manières :

Spécifiez le nom d'un serveur sur lequel SQL Server est installé.

Sélectionnez le mode d'authentification pour la connexion au serveur.

Configuration du gestionnaire de connexions


SMO
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d’informations sur les propriétés que vous pouvez définir dans le Concepteur
SSIS , consultez Éditeur du gestionnaire de connexions SMO.

Pour plus d’informations sur la configuration d’un gestionnaire de connexions par


programmation, consultez ConnectionManager et Ajout de connexions par programme.

Éditeur du gestionnaire de connexions SMO


Utilisez l' Éditeur du gestionnaire de connexions SMO pour configurer une connexion
SQL Server à utiliser par les différentes tâches qui transfèrent des objets SQL Server .
Pour en savoir plus sur le gestionnaire de connexions SMO, consultez SMO Connection
Manager.

Options
Nom du serveur
Tapez le nom de l'instance de SQL Server ou sélectionnez le nom du serveur dans la
liste.

Actualiser
Actualisez la liste des instances de SQL Server disponibles qui peuvent être détectées
sur le réseau.

Utiliser l'authentification Windows


Utilisez l'authentification Windows pour vous connecter à l'instance de SQL Server
sélectionnée.

Utiliser l’authentification SQL Server


Utilisez l'authentification SQL Server pour vous connecter à l'instance de SQL Server
sélectionnée.

Nom d’utilisateur
Si vous avez sélectionné l'authentification SQL Server , entrez le nom d'utilisateur SQL
Server .

Mot de passe
Si vous avez sélectionné l'authentification SQL Server , entrez le mot de passe.

Tester la connexion
Testez la connexion telle qu'elle est configurée.

Voir aussi
Connexions Integration Services (SSIS)
Gestionnaire de connexions de SQL
Server Compact Edition
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions SQL Server Compact permet à un package de se


connecter à une base de données SQL Server Compact. La destination SQL Server
Compact incluse dans Microsoft SQL Server Integration Services utilise ce gestionnaire
de connexions pour charger des données dans une table d’une base de données SQL
Server Compact.

7 Notes

Sur un ordinateur 64 bits, vous devez exécuter les packages qui se connectent à
des sources de données SQL Server Compact en mode 32 bits. Le fournisseur SQL
Server Compact utilisé par Integration Services pour se connecter à des sources de
données SQL Server Compact n’est disponible qu’en version 32 bits.

Configuration du gestionnaire de connexions


SQL Server Compact Edition
Quand vous ajoutez un gestionnaire de connexions SQL Server Compact à un package,
Integration Services crée un gestionnaire de connexions qui est résolu en connexion SQL
Server Compact au moment de l’exécution, définit les propriétés du gestionnaire de
connexions et ajoute le gestionnaire de connexions à la collection Connexions du
package.

La propriété ConnectionManagerType du gestionnaire de connexions a la valeur


SQLMOBILE.

Vous pouvez configurer le gestionnaire de connexions SQL Server Compact de plusieurs


manières :

Spécifiez une chaîne de connexion qui indique l’emplacement de la base de


données SQL Server Compact.

Spécifiez un mot de passe pour une base de données protégée par mot de passe.

Spécifiez le serveur où est stockée la base de données.


Indiquez si la connexion créée à partir du gestionnaire de connexions est
conservée au moment de l'exécution.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d’informations sur la configuration d’un gestionnaire de connexions par


programmation, consultez ConnectionManager et Ajout de connexions par programme.

Éditeur du gestionnaire de connexions SQL


Server Compact Edition (page Connexion)
La boîte de dialogue Éditeur du gestionnaire de connexions SQL Server Compact
Edition permet de spécifier les propriétés permettant de se connecter à une base de
données SQL Server Compact.

Pour en savoir plus sur le gestionnaire de connexions SQL Server Compact Edition,
consultez Éditeur du gestionnaire de connexions SQL Server Compact Edition.

Options
Nom et chemin d'accès au fichier de la base de données
Entrez le chemin et le nom de fichier de la base de données SQL Server Compact.

Parcourir
Recherchez le fichier de base de données SQL Server Compact souhaité à l’aide de la
boîte de dialogue Sélectionner la base de données SQL Server Compact Edition .

Mot de passe de la base de données


Entrez le mot de passe pour la base de données SQL Server Compact.

Éditeur du gestionnaire de connexions SQL


Server Compact Edition (page Tout)
La boîte de dialogue Éditeur du gestionnaire de connexions SQL Server Compact
Edition permet de spécifier les propriétés permettant de se connecter à une base de
données SQL Server Compact.

Pour en savoir plus sur le gestionnaire de connexions SQL Server Compact Edition,
consultez Éditeur du gestionnaire de connexions SQL Server Compact Edition.
Options
AutoShrink Threshold
Spécifiez le pourcentage d’espace libre autorisé dans la base de données SQL Server
Compact avant que le processus de réduction automatique soit lancé.

Escalade de verrous par défaut


Spécifiez le nombre de verrous de base de données acquis par la base de données SQL
Server Compact avant qu’elle tente de promouvoir les verrous.

Default Lock Timeout


Spécifiez l'intervalle par défaut, en millisecondes, d'attente d'un verrou par une
instruction.

Flush Interval
Spécifiez l'intervalle, en secondes, s'écoulant entre les vidages de données de
transactions validées sur le disque.

Identificateur de paramètres régionaux


Spécifiez l’identificateur de paramètres régionaux (LCID) de la base de données SQL
Server Compact.

Max Buffer Size


Spécifiez la quantité maximale de mémoire (en Ko) utilisée par SQL Server Compact
avant d’effectuer un vidage des données sur le disque.

Max Database Size


Spécifiez la taille maximale (en Mo) de la base de données SQL Server Compact.

Mode
Spécifiez le mode de fichier dans lequel ouvrir la base de données SQL Server Compact.
La valeur par défaut de cette propriété est Read Write.

L'option Mode comporte quatre valeurs, qui sont décrites dans le tableau suivant.

Valeur Description

Lecture seule Offre un accès en lecture seule à la base de données.

Read Write Autorise l'accès en lecture et écriture à la base de données.

Exclusif Offre un accès exclusif à la base de données.

Shared Read Indique que plusieurs utilisateurs peuvent lire la base de données simultanément.
Persist Security Info
Indique si des informations de sécurité sont retournées dans la chaîne de connexion. La
valeur par défaut de cette option est False.

Temp File Directory


Spécifiez l’emplacement du fichier de base de données temporaire de SQL Server
Compact.

Source de données
Spécifiez le nom de la base de données SQL Server Compact.

Mot de passe
Entrez le mot de passe pour la base de données SQL Server Compact.
Gestionnaire de connexions WMI
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions WMI permet à un package d'utiliser WMI (Windows


Management Instrumentation) pour gérer des informations dans un environnement
d'entreprise. La tâche de service web incluse dans Microsoft SQL Server Integration
Services utilise un gestionnaire de connexions WMI.

Quand vous ajoutez un gestionnaire de connexions WMI à un package, Integration


Services crée un gestionnaire de connexions qui sera résolu en une connexion WMI au
moment de l’exécution, définit les propriétés du gestionnaire de connexions et ajoute le
gestionnaire de connexions à la collection Connexions sur le package. La propriété
ConnectionManagerType du gestionnaire de connexions est définie sur WMI.

Configuration du gestionnaire de connexions


WMI
Vous pouvez configurer un gestionnaire de connexions WMI de plusieurs manières :

Spécifiez le nom d'un serveur.

Spécifiez un espace de noms sur le serveur.

Sélectionnez le mode d'authentification pour la connexion au serveur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d’informations sur les propriétés que vous pouvez définir dans le Concepteur
SSIS , consultez Éditeur du gestionnaire de connexions WMI.

Pour plus d’informations sur la configuration d’un gestionnaire de connexions par


programmation, consultez ConnectionManager et Ajout de connexions par programme.

Éditeur du gestionnaire de connexions WMI


Utilisez la boîte de dialogue Gestionnaire de connexions WMI pour spécifier une
connexion Microsoft Windows Management Instrumentation (WMI) à un serveur.
Pour en savoir plus sur le gestionnaire de connexions WMI, consultez WMI Connection
Manager.

Options
Nom
Donnez un nom unique au gestionnaire de connexions.

Description
Décrivez le gestionnaire de connexions. Il est recommandé d'indiquer ici l'usage auquel
le gestionnaire de connexions est destiné, de sorte que les packages soient
correctement documentés et plus faciles à gérer.

Nom du serveur
Fournissez le nom du serveur pour lequel vous souhaitez établir la connexion WMI.

Espace de noms
Spécifiez l'espace de noms WMI.

Utiliser l’authentification Windows


Sélectionnez cette option pour utiliser l'authentification Windows. Si vous utilisez
l'authentification Windows, vous n'avez pas besoin de fournir un nom d'utilisateur ou un
mot de passe pour la connexion.

Nom d’utilisateur
Si vous n'utilisez pas l'authentification Windows, vous devez fournir un nom d'utilisateur
pour la connexion.

Mot de passe
Si vous n'utilisez pas l'authentification Windows, vous devez fournir le mot de passe de
la connexion.

Test
Testez les paramètres du gestionnaire de connexions.

Voir aussi
Tâche de service Web
Connexions Integration Services (SSIS)
Flux de contrôle
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un package est constitué d'un flux de contrôle et, éventuellement, d'un ou de plusieurs
flux de données. SQL Server Integration Services fournit trois types différents d’éléments
de flux de contrôle : des conteneurs qui structurent les packages, des tâches qui
fournissent des fonctionnalités et des contraintes de précédence qui connectent les
exécutables, les conteneurs et les tâches pour former un flux de contrôle ordonné.

Pour plus d’informations, consultez Contraintes de précédence, Conteneurs Integration


Serviceset Tâches Integration Services.

Le diagramme qui suit montre un flux de contrôle composé d'un conteneur et de six
tâches. Cinq de ces tâches sont définies au niveau du package et une est définie au
niveau du conteneur. La tâche se trouve à l'intérieur d'un conteneur.

L’architecture Integration Services prend en charge l’imbrication de conteneurs et un


flux de contrôle peut contenir plusieurs niveaux de conteneurs imbriqués. Par exemple,
un package peut être formé d'un conteneur de boucles Foreach, qui lui-même peut
contenir un autre conteneur de boucles Foreach, etc.

Les gestionnaires d'événements contiennent également des flux de contrôle qui sont
créés à l'aide des mêmes types d'éléments de flux de contrôle.

Implémentation des flux de contrôle


Vous créez le flux de contrôle d’un package via l’onglet Flux de contrôle dans le
concepteur SSIS . Lorsque l’onglet Flux de contrôle est actif, la boîte à outils énumère
les tâches et conteneurs que vous pouvez ajouter au flux de contrôle.
Le diagramme qui suit montre le flux de contrôle d'un package simple dans le
concepteur de flux de contrôle. Le flux de contrôle représenté dans le diagramme est
constitué de trois tâches de niveau package et d'un conteneur de niveau package
contenant trois tâches. Les tâches et le conteneur sont connectés à l'aide de contraintes
de précédence.

La création d'un flux de contrôle comprend les tâches suivantes :

ajout des conteneurs qui implémentent les flux de travail répétitifs dans un
package ou divisent un flux de contrôle en sous-ensembles ;

ajout des tâches qui prennent en charge les flux de données, préparent les
données, réalisent les fonctions de flux de travail et de Business Intelligence et
implémentent le script ;

Integration Services propose différentes tâches que vous pouvez utiliser pour créer
un flux de contrôle répondant aux besoins du package. Si le package doit utiliser
des données, le flux de contrôle doit contenir au moins une tâche de flux de
données. Par exemple, un package devra peut-être extraire des données, agréger
des valeurs de données, puis écrire les résultats dans une source de données. Pour
plus d’informations, consultez Tâches Integration Services et Ajouter ou supprimer
une tâche ou un conteneur dans un flux de contrôle.

connexion des conteneurs et des tâches à l'aide de contraintes de précédence


pour former un flux de contrôle ordonné.

Après avoir ajouté une tâche ou un conteneur à l’aire de conception de l’onglet


Flux de contrôle , le concepteur SSIS ajoute automatiquement un connecteur à
l’élément. Si un package contient deux éléments, tâches ou conteneurs ou
davantage, vous pouvez les relier en un flux de contrôle en faisant glisser leurs
connecteurs vers un autre élément.

Le connecteur entre deux éléments représente une contrainte de précédence. Une


contrainte de précédence définit les relations entre deux éléments connectés. Elle
spécifie l'ordre d'exécution des tâches et des conteneurs et leurs conditions
d'exécution. Par exemple, une contrainte de précédence peut spécifier qu'une
tâche doit réussir pour pouvoir exécuter la tâche suivante. Pour plus
d’informations, consultez Contraintes de précédence.

Ajout de gestionnaires de connexions.

De nombreuses tâches ont besoin d'une connexion à une source de données. Vous
devez ajouter au package les gestionnaires de connexions requis par la tâche. En
fonction du type d'énumérateur qu'il utilise, le conteneur de boucles Foreach peut
également exiger un gestionnaire de connexions. Vous pouvez ajouter les
gestionnaires de connexions au moment de la création de l'élément de flux de
contrôle ou avant de commencer à construire le flux de contrôle. Pour plus
d’informations, consultez Connexions Integration Services (SSIS) et Créer des
gestionnaires de connexions.

Le concepteur SSIS propose également de nombreuses fonctionnalités disponibles au


moment de la conception permettant de gérer l’aire de conception et de faire en sorte
que le flux de contrôle s’auto-documente.

Tâches associées
Ajouter ou supprimer une tâche ou un conteneur dans un flux de contrôle

Définir les propriétés d'une tâche ou d'un conteneur

Grouper ou dissocier des composants


Ajouter ou supprimer une tâche ou un
conteneur dans un flux de contrôle
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Quand vous travaillez dans le concepteur de flux de contrôle, la boîte à outils du


concepteur SSIS énumère les tâches proposées par Integration Services pour créer le
flux de contrôle d’un package. Pour plus d’informations sur la boîte à outils, consultez
Boîte à outils SSIS.

Un package peut inclure plusieurs instances de la même tâche. Chaque instance d'une
tâche est identifiée de manière unique dans le package et vous pouvez configurer
chaque instance différemment.

Si vous supprimez une tâche, les contraintes de précédence connectant la tâche à


d'autres tâches et les conteneurs du flux de contrôle sont également supprimés.

Les procédures ci-dessous décrivent comment ajouter ou supprimer une tâche ou un


conteneur dans le flux de contrôle d'un package.

Ajouter une tâche ou un conteneur à un flux de


contrôle
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l'onglet Flux de contrôle .

4. Pour ouvrir la boîte à outils, cliquez sur Boîte à outils dans le menu Affichage .

5. Développez Éléments de flux de contrôle et Tâches du plan de maintenance.

6. Faites glisser des tâches et des conteneurs de la boîte à outils vers l’aire de
conception de l’onglet Flux de contrôle .

7. Connectez une tâche ou un conteneur du flux de contrôle du package à un autre


composant du flux de contrôle en faisant glisser son connecteur vers cet autre
composant.
8. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Supprimer une tâche ou un conteneur d’un flux


de contrôle
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.


Effectuez l’une des actions suivantes :

Cliquez sur l’onglet Flux de contrôle , cliquez avec le bouton droit sur la
tâche ou le conteneur à supprimer, puis cliquez sur Supprimer.

Ouvrez Explorateur de package. Dans le dossier Exécutables , cliquez avec le


bouton droit sur la tâche ou le conteneur à supprimer, puis cliquez sur
Supprimer.

3. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Définir les propriétés d’une tâche ou d’un


conteneur
Vous pouvez définir la plupart des propriétés des tâches et des conteneurs à l’aide de la
fenêtre Propriétés . Les seules exceptions sont les propriétés des collections de tâches et
les propriétés trop complexes à définir dans la fenêtre Propriétés . Par exemple, vous ne
pouvez pas configurer l’énumérateur utilisé par le conteneur de boucles Foreach dans la
fenêtre Propriétés . Vous devez utiliser un éditeur de tâche ou de conteneur pour définir
ces propriétés complexes. La plupart des éditeurs de tâche et de conteneur possèdent
plusieurs nœuds contenant chacun des propriétés connexes. Le nom du nœud indique
l'objet des propriétés contenues dans le nœud.

Les procédures suivantes décrivent comment définir les propriétés d’une tâche ou d’un
conteneur en utilisant les fenêtres Propriétés ou l’éditeur de tâche ou de conteneur
correspondant.

Définir les propriétés d’une tâche ou d’un conteneur à


l’aide de la fenêtre Propriétés
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l'onglet Flux de contrôle .

4. Sur l’aire de conception de l’onglet Flux de contrôle , cliquez avec le bouton droit
sur la tâche ou le conteneur, puis cliquez sur Propriétés.

5. Dans la fenêtre Propriétés , mettez à jour la valeur de la propriété.

7 Notes

Vous pouvez définir les propriétés en tapant une valeur directement dans la
zone de texte ou en sélectionnant une valeur dans une liste. Néanmoins,
certaines propriétés sont plus complexes et disposent d'un éditeur de
propriétés personnalisées. Pour définir la propriété, cliquez dans la zone de
texte, puis sur le bouton Générer (...) pour ouvrir l’éditeur personnalisé.

6. Si vous le souhaitez, créez des expressions de propriété afin de mettre à jour de


manière dynamique les propriétés de la tâche ou du conteneur. Pour plus
d’informations, consultez Ajouter ou modifier une Expression de propriété.

7. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Définir les propriétés d’une tâche ou d’un conteneur à


l’aide de l’éditeur de tâche ou de conteneur
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l'onglet Flux de contrôle .

4. Sur l’aire de conception de l’onglet Flux de contrôle , cliquez avec le bouton droit
sur la tâche ou le conteneur, puis cliquez sur Modifier pour ouvrir l’éditeur de
tâche ou de conteneur correspondant.

Pour plus d’informations sur la configuration du conteneur de boucles For,


consultez Configurer un conteneur de boucles For.
Pour plus d’informations sur la configuration du conteneur de boucles Foreach,
consultez Configurer un conteneur de boucles Foreach.

7 Notes

Le conteneur de séquences ne possède pas d'éditeur personnalisé.

5. Si l'éditeur de tâche ou de conteneur comporte plusieurs nœuds, cliquez sur celui


qui contient la propriété à définir.

6. Si vous le souhaitez, cliquez sur Expressions , puis dans la page Expressions , créez
des expressions de propriété afin de mettre à jour dynamiquement les propriétés
de la tâche ou du conteneur. Pour plus d’informations, consultez Ajouter ou
modifier une Expression de propriété.

7. Mettez à jour la valeur de la propriété.

8. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Tâches Integration Services
Conteneurs Integration Services
Flux de contrôle
Conteneurs Integration Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les conteneurs sont des objets de SQL Server Integration Services qui fournissent une
structure aux packages et des services aux tâches. Ils prennent en charge les flux de
contrôle répétitifs dans les packages, et regroupent les tâches et les conteneurs en
unités de travail significatives. Outre des tâches, les conteneurs peuvent comprendre
d'autres conteneurs.

Les packages utilisent les conteneurs aux fins suivantes :

Répéter des tâches pour tous les éléments d'une collection, tels que les fichiers
d'un dossier, des schémas ou des objets SMO ( SQL Server Management Objects).
Par exemple, un package peut exécuter des instructions Transact-SQL résidant
dans plusieurs fichiers.

Répéter des tâches jusqu’à ce qu’une expression spécifiée renvoie la valeur false.
Par exemple, un package peut envoyer un message électronique différent sept fois,
à raison d'une fois par jour de la semaine.

Regrouper les tâches et les conteneurs qui doivent réussir ou échouer en tant
qu'unité. Par exemple, un package peut regrouper les tâches qui suppriment et
ajoutent des lignes dans une table de base de données, puis valider ou annuler
toutes les tâches si l'une d'elles échoue.

Types de conteneurs
Integration Services fournit quatre types de conteneurs pour la création de packages. Le
tableau suivant décrit ces types de conteneurs.

Conteneur Description

Conteneur de Exécute un flux de contrôle de façon répétitive à l'aide d'un énumérateur.


boucles Foreach

Conteneur de Exécute un flux de contrôle de façon répétitive en testant une condition.


boucles For

conteneur de Regroupe les tâches et les conteneurs en flux de contrôle représentant des
séquences sous-ensembles du flux de contrôle des packages.
Conteneur Description

conteneur d'hôte Fournit des services à une seule tâche.


de tâche

Les packages et les gestionnaires d'événements sont également des types de


conteneurs. Pour plus d’informations, consultez Packages Integration Services (SSIS) et
Gestionnaires d’événements Integration Services (SSIS).

Résumé des propriétés de conteneur


Tous les types de conteneurs possèdent un ensemble de propriétés communes. Si vous
créez des packages à l’aide des outils graphiques fournis par Integration Services , la
fenêtre Propriétés répertorie les propriétés suivantes pour les conteneurs de boucles
Foreach, de boucles For et de séquences. Les propriétés du conteneur d'hôte de tâche
sont configurées dans le cadre de la configuration de la tâche encapsulée par l'hôte de
tâche. Définissez les propriétés de l'hôte de tâche lorsque vous configurez la tâche.

Property Description

DelayValidation Valeur booléenne qui indique si la validation du conteneur est


retardée jusqu'à l'exécution. La valeur par défaut de cette propriété
est False.

Pour plus d'informations, consultez DelayValidation.

Description Description du conteneur. La propriété contient une chaîne mais


peut être est vide.

Pour plus d'informations, consultez Description.

Désactiver Valeur booléenne qui indique si le conteneur s'exécute. La valeur


par défaut de cette propriété est False.

Pour plus d'informations, consultez Disable.

DisableEventHandlers Valeur booléenne qui indique si les gestionnaires d'événements


associés au conteneur s'exécutent. La valeur par défaut de cette
propriété est False.

FailPackageOnFailure Valeur booléenne qui indique si le package échoue en cas d'erreur


dans le conteneur. La valeur par défaut de cette propriété est False.

Pour plus d'informations, consultez FailPackageOnFailure.


Property Description

FailParentOnFailure Valeur booléenne qui indique si le conteneur parent échoue en cas


d'erreur dans le conteneur. La valeur par défaut de cette propriété
est False.

Pour plus d'informations, consultez FailParentOnFailure.

ForcedExecutionValue Si ForceExecutionValue a la valeur True, il s’agit de l’objet qui


contient la valeur d’exécution facultative du conteneur. La valeur par
défaut de cette propriété est 0.

Pour plus d'informations, consultez ForcedExecutionValue.

ForcedExecutionValueType Type de données de ForcedExecutionValue. La valeur par défaut de


cette propriété est Int32.

ForceExecutionResult Valeur qui indique le résultat forcé de l'exécution du package ou


conteneur. Cette propriété peut prendre les valeurs None, Success,
Failureet Completion. La valeur par défaut de cette propriété est
None.

Pour plus d'informations, consultez ForceExecutionResult.

ForceExecutionValue Valeur booléenne qui indique si la valeur d'exécution facultative du


conteneur doit être forcée de contenir une valeur particulière. La
valeur par défaut de cette propriété est False.

Pour plus d'informations, consultez ForceExecutionValue.

Identifiant Identificateur global unique du conteneur, affecté lors de la création


du package. Cette propriété est en lecture seule.

ID.

IsolationLevel Niveau d'isolation de la transaction sur conteneur. Cette propriété


peut prendre les valeurs Unspecified, Chaos, ReadUncommitted,
ReadCommitted, RepeatableRead, Serializableet Snapshot. La
valeur par défaut de cette propriété est Serializable. Pour plus
d'informations, consultez IsolationLevel.

LocaleID Paramètre régional Microsoft Win32. La valeur par défaut de cette


propriété est le paramètre régional du système d'exploitation sur
l'ordinateur local.

Pour plus d'informations, consultez LocaleID.


Property Description

LoggingMode Valeur qui indique le comportement de journalisation du conteneur.


Ces valeurs sont Disabled, Enabledet UseParentSetting. La valeur
par défaut de cette propriété est UseParentSetting. Pour plus
d’informations, consultez DTSLoggingMode.

MaximumErrorCount Nombre maximal d'erreurs pouvant se produire avant l'arrêt de


l'exécution d'un conteneur. La valeur par défaut de cette propriété
est 1.

Pour plus d'informations, consultez MaximumErrorCount.

Nom nom du conteneur.

Pour plus d’informations, consultez Name.

TransactionOption Participation transactionnelle du conteneur. Cette propriété peut


prendre les valeurs NotSupported, Supportedet Required. La valeur
par défaut de cette propriété est Supported. Pour plus
d’informations, consultez DTSTransactionOption.

Pour plus d'informations sur toutes les propriétés disponibles pour les conteneurs de
boucle Foreach, les conteneurs de boucle For, les conteneurs Sequence et les
conteneurs d'hôte de tâche lorsqu'ils sont configurés par programmation, consultez les
rubriques API Integration Services suivantes :

T:Microsoft.SqlServer.Dts.Runtime.ForEachLoop

T:Microsoft.SqlServer.Dts.Runtime.ForLoop

T:Microsoft.SqlServer.Dts.Runtime.Sequence

T:Microsoft.SqlServer.Dts.Runtime.TaskHost

Objets étendant les fonctionnalités des


conteneurs
Les conteneurs comprennent des flux de contrôle composés d'exécutables et de
contraintes de précédence, et peuvent utiliser des gestionnaires d'événements et des
variables. Le conteneur d'hôte de tâche est une exception : étant donné que celui-ci
encapsule une seule tâche, il n'utilise pas de contraintes de précédence.

Exécutables
Les exécutables désignent les tâches de niveau conteneur et tous les conteneurs se
trouvant dans le conteneur. Un exécutable peut être l’une des tâches et l’un des
conteneurs fournis par Integration Services , ou bien une tâche personnalisée. Pour plus
d’informations, consultez Tâches Integration Services.

Contraintes de précédence
Les contraintes de priorité relient en un flux de contrôle ordonné les conteneurs et les
tâches figurant dans le même conteneur parent. Pour plus d’informations, consultez
Contraintes de précédence.

Gestionnaires d'événements
Les gestionnaires d'événements au niveau conteneur répondent aux événements
déclenchés par le conteneur ou par les objets figurant dans celui-ci. Pour plus
d’informations, consultez Gestionnaires d’événements Integration Services (SSIS).

Variables
Les variables utilisées dans les conteneurs comprennent les variables système de niveau
conteneur fournies par Integration Services et les variables définies par l’utilisateur
utilisées par le conteneur. Pour plus d’informations, consultez Variables Integration
Services (SSIS).

Points d’arrêt
Quand vous définissez un point d’arrêt sur un conteneur et que la condition d’arrêt est
Arrêter lorsque le conteneur reçoit l’événement OnVariableValueChanged, définissez
la variable dans l’étendue du conteneur.

Voir aussi
Flux de contrôle
Conteneur de boucles Foreach
Article • 12/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le conteneur de boucles Foreach définit un flux de contrôle répétitif dans un package.


La mise en œuvre de la boucle est similaire à la structure de bouclage Foreach des
langages de programmation. Dans un package, le bouclage repose sur l'utilisation d'un
énumérateur Foreach. Le conteneur de boucles Foreach répète le flux de contrôle pour
chaque membre d'un énumérateur spécifié.

SQL Server Integration Services fournit les types d’énumérateur suivants :

Foreach ADO Enumerator, pour l'énumération des lignes des tables. Par exemple,
vous pouvez obtenir les lignes d'un ensemble d'enregistrements ADO.

La destination de l'ensemble d'enregistrements enregistre les données en mémoire


dans un ensemble d'enregistrements stocké dans une variable de package de type
Object . Vous devez en général utiliser un conteneur de boucles Foreach avec
l'énumérateur ADO Foreach pour traiter une par une les lignes de l'ensemble
d'enregistrements. La variable spécifiée pour l'énumérateur ADO Foreach doit être
de type Object. Pour plus d’informations sur la destination d’un recordset,
consultez Utiliser une destination de recordset.

Énumérateur de l'ensemble de lignes du schéma Foreach ADO.NET, pour


l'énumération des informations de schéma relatives à une source de données. Par
exemple, vous pouvez énumérer les tables de la base de données
AdventureWorks2022 SQL Server et en obtenir la liste.

Énumérateur de fichier Foreach, pour l'énumération des fichiers d'un dossier.


L'énumérateur peut parcourir les sous-dossiers. Par exemple, vous pouvez lire tous
les fichiers portant l'extension de nom de fichier *.log stockés dans le dossier
Windows et ses sous-dossiers. Notez que l’ordre dans lequel les fichiers sont
récupérés ne peut pas être spécifié.

Foreach From Variable Enumerator, pour l'énumération de l'objet énumérable


contenu dans une variable spécifiée. L’objet énumérable peut être un tableau, un
DataTableADO.NET, un énumérateur Integration Services , etc. Par exemple, vous
pouvez énumérer les valeurs d'un tableau qui contient des noms de serveurs.

Énumérateur d'élément Foreach, pour l'énumération des éléments qui sont des
collections. Par exemple, vous pouvez énumérer les noms d'exécutables et de
répertoires de travail qu'une tâche d'exécution de processus utilise.
Foreach NodeList Enumerator, pour l'énumération de l'ensemble de résultats d'une
expression XPath (XML Path Language). Par exemple, l'expression suivante
énumère tous les auteurs de la période classique et en obtient la liste :
/authors/author[@period='classical'] .

Foreach SMO Enumerator, pour l'énumération des objets SMO ( SQL Server
Management Object). Par exemple, vous pouvez énumérer les vues d'une base de
données SQL Server et en obtenir la liste.

Énumérateur Foreach File HDFS pour énumérer les fichiers HDFS à l’emplacement
HDFS spécifié.

Énumérateur d’objets blob Azure Foreach pour énumérer les objets blob dans un
conteneur d’objets blob dans Azure Storage.

Énumérateur ForEach ADLS File pour énumérer les fichiers d’un répertoire dans
Azure Data Lake Store.

Énumérateur ForEach Data Lake Storage Gen2 File pour énumérer les fichiers d’un
répertoire dans Azure Data Lake Store Gen2.

Le schéma suivant montre un conteneur de boucles Foreach ayant une tâche de système
de fichiers. La boucle Foreach utilise l'énumérateur de fichier Foreach, tandis que la
tâche de système de fichiers est configurée pour copier un fichier. Si le dossier spécifié
par l'énumérateur contient quatre fichiers, la boucle se répète quatre fois et copie
quatre fichiers.

Vous pouvez utiliser une combinaison de variables et d'expressions de propriété pour


mettre à jour la propriété de l'objet de package avec la valeur de la collection de
l'énumérateur. Vous mappez la valeur de la collection avec une variable définie par
l'utilisateur, puis vous mettez en œuvre une expression de propriété sur la propriété qui
utilise la variable. Par exemple, la valeur de la collection de l’énumérateur de fichier
Foreach est mappée avec une variable appelée MyFile . Cette variable est ensuite
utilisée dans l’expression de la propriété Subject d’une tâche Envoyer un message. À
l’exécution du package, la propriété Subject est mise à jour avec le nom d’un fichier à
chaque répétition de la boucle. Pour plus d’informations, consultez Expressions de
propriété dans des packages.

Vous pouvez également utiliser dans des expressions et des scripts les variables
mappées à la valeur de la collection de l'énumérateur.

Un conteneur de boucles Foreach peut comprendre plusieurs tâches et conteneurs, mais


il ne peut utiliser qu'un type d'énumérateur. Si le conteneur de boucles Foreach
comprend plusieurs tâches, vous pouvez mapper la valeur de la collection de
l'énumérateur avec plusieurs propriétés de chaque tâche.

Vous pouvez configurer un attribut de transaction sur le conteneur de boucles Foreach


afin de définir une transaction pour un sous-ensemble du flux de contrôle du package.
Cela vous permet de gérer les transactions au niveau de la boucle Foreach plutôt qu'au
niveau du package. Par exemple, si un conteneur de boucles Foreach répète un flux de
contrôle qui met à jour des dimensions et des tables de faits dans un schéma en étoile,
vous pouvez configurer une transaction de manière à ce que toutes les tables de faits
soient correctement mises à jour ou à ce qu'aucune des tables ne soit actualisée. Pour
plus d’informations, consultez Transactions Integration Services.

Types d'énumérateur
Vous pouvez configurer les énumérateurs en indiquant différentes informations pour
chacun d'eux.

Le tableau suivant récapitule les informations requises pour chaque type d'énumérateur.

Énumérateur Exigences de configuration

Foreach ADO Spécifiez la variable source de l'objet ADO et le mode de l'énumérateur. La


variable doit être du type Object.

Foreach ADO.NET Spécifiez la connexion à une base de données et le schéma à énumérer.


Schema Rowset

Fichier Foreach Spécifiez un dossier et les fichiers à énumérer, le format du nom des fichiers
extraits, et indiquez si l'opération doit parcourir les sous-dossiers.

Foreach From Spécifiez la variable qui contient les objets à énumérer.


Variable

Élément Foreach Définissez les éléments de la collection d'éléments Foreach, notamment les
colonnes et leur type de données.

Foreach NodeList Spécifiez la source du document XML et configurez l'opération XPath.


Énumérateur Exigences de configuration

Foreach SMO Spécifiez la connexion à une base de données et les objets SMO à énumérer.

Énumérateur Spécifiez un dossier et les fichiers à énumérer, le format du nom des fichiers
Foreach File HDFS extraits, et indiquez si l'opération doit parcourir les sous-dossiers.

Objet blob Azure Spécifiez le conteneur Stockage Blob Azure qui contient les objets blob à
foreach énumérer.

Foreach ADLS File Spécifiez le répertoire Azure Data Lake Store qui contient les fichiers à
énumérer.

Foreach Data Lake Spécifiez le répertoire Azure Data Lake Storage Gen2 qui contient les fichiers
Storage Gen2 File à énumérer, ainsi que d’autres options.

Ajouter une énumération à un flux de contrôle


avec un conteneur de boucles Foreach
Integration Services inclut le conteneur de boucles Foreach, un élément de flux de
contrôle qui permet de facilement inclure une construction de boucle énumérant les
fichiers et objets du flux de contrôle d’un package. Pour plus d’informations, consultez
Conteneur de boucles Foreach.

Le conteneur de boucles Foreach n'offre aucune fonctionnalité ; il ne fournit que la


structure dans laquelle vous créez le flux de contrôle répété, spécifiez un type
d'énumérateur et configurez l'énumérateur. Pour fournir une fonctionnalité de
conteneur, vous devez inclure au moins une tâche dans le conteneur de boucles
Foreach. Pour plus d’informations, consultez Tâches Integration Services.

Le conteneur de boucles Foreach peut inclure un flux de contrôle avec plusieurs tâches,
ainsi que d'autres conteneurs. Que vous ajoutiez des tâches et des conteneurs à un
conteneur de boucles Foreach ou à un package, l'opération est la même, sauf que vous
faites glisser les tâches et les conteneurs vers le conteneur de boucles Foreach plutôt
que vers le package. Si le conteneur de boucles Foreach contient plusieurs tâches ou
conteneurs, vous pouvez les connecter à l'aide de contraintes de précédence, tout
comme dans un package. Pour plus d’informations, consultez Contraintes de
précédence.

Ajouter et configurer un conteneur de boucles Foreach


1. Ajoutez le conteneur de boucles Foreach au package. Pour plus d’informations,
consultez Ajouter ou supprimer une tâche ou un conteneur dans un flux de
contrôle.

2. Ajoutez des tâches et des conteneurs au conteneur de boucles Foreach. Pour plus
d’informations, consultez Ajouter ou supprimer une tâche ou un conteneur dans
un flux de contrôle.

3. Connectez les tâches et les conteneurs du conteneur de boucles Foreach à l'aide


de contraintes de précédence. Pour plus d’informations, consultez Connecter des
tâches et des conteneurs à l’aide d’une contrainte de précédence par défaut.

4. Configurez le conteneur de boucles Foreach. Pour plus d’informations, consultez


Configurer un conteneur de boucles Foreach.

Configurer un conteneur de boucles Foreach


Cette procédure décrit comment configurer un conteneur de boucles Foreach,
notamment les expressions de la propriété au niveau de l'énumérateur et du conteneur.

1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Cliquez sur l’onglet Flux de contrôle , puis double-cliquez sur la boucle Foreach.

3. Dans la boîte de dialogue Éditeur de boucle Foreach , cliquez sur Général et, si
vous le souhaitez, modifiez le nom et la description de la boucle Foreach.

4. Cliquez sur Collection , puis sélectionnez un type d’énumérateur dans la liste


Énumérateur .

5. Indiquez un énumérateur et définissez ses options de la manière suivante :

Pour utiliser l’énumérateur Foreach File, indiquez le dossier contenant les


fichiers à énumérer, spécifiez un filtre pour le nom et le type de fichier et
indiquez si le nom de fichier complet doit être renvoyé. Indiquez enfin si les
fichiers des sous-dossiers doivent également être énumérés.

Pour utiliser l’énumérateur Foreach Item, cliquez sur Colonneset, dans la


boîte de dialogue Colonnes For Each Item , cliquez sur Ajouter pour ajouter
des colonnes. Sélectionnez un type de données dans la liste Type de
données pour chaque colonne, puis cliquez sur OK.

Tapez des valeurs dans les colonnes ou sélectionnez des valeurs dans les
listes.
7 Notes

Pour ajouter une nouvelle ligne, cliquez n'importe où en dehors de la


cellule dans laquelle vous avez tapé une valeur.

7 Notes

Si une valeur n'est pas compatible avec le type de données de la


colonne, le texte est mis en surbrillance.

Pour utiliser l’énumérateur ADO Foreach, sélectionnez une variable existante


ou cliquez sur Nouvelle variable dans la liste Variable source de l’objet ADO
pour spécifier la variable contenant le nom de l’objet ADO à énumérer et
sélectionnez une option de mode d’énumération.

Si vous créez une variable, définissez ses propriétés dans la boîte de dialogue
Ajouter une variable .

Pour utiliser l’énumérateur d’ensemble de lignes du schéma ADO.NET


Foreach, sélectionnez une connexion ADO.NET existante ou cliquez sur
Nouvelle connexion dans la liste Connexion , puis sélectionnez un schéma.

Si vous le souhaitez, cliquez sur Définir les restrictions et sélectionnez des


restrictions de schéma, sélectionnez la variable qui contient la valeur de
restriction ou tapez cette valeur, puis cliquez sur OK.

Pour utiliser l’énumérateur Foreach à partir d’une variable, sélectionnez une


variable dans la liste Variable .

Pour utiliser l’énumérateur Foreach NodeList, cliquez sur


DocumentSourceType et sélectionnez le type de source dans la liste, puis
cliquez sur DocumentSource. En fonction de la valeur sélectionnée pour
DocumentSourceType, sélectionnez une variable ou une connexion de fichier
dans la liste, créez une variable ou une connexion de fichier, ou tapez la
source XML dans l’Éditeur de source de document.

Cliquez ensuite sur EnumerationType et sélectionnez un type d’énumération


dans la liste. Si la valeur pour EnumerationType est Navigator, Node ou
NodeText, cliquez sur OuterXPathStringSourceType et sélectionnez le type de
source, puis cliquez sur OuterXPathStringSourceType. En fonction de la valeur
définie pour OuterXPathStringSourceType, sélectionnez une variable ou une
connexion de fichier dans la liste, créez une variable ou une connexion de
fichier, ou tapez la chaîne de l’expression XPath (XML Path Language) externe.

Si la valeur d’EnumerationType est ElementCollection, définissez


OuterXPathStringSourceType et OuterXPathString comme décrit ci-dessus.
Cliquez ensuite sur InnerElementType, sélectionnez un type d’énumération
pour les éléments internes, puis cliquez sur InnerXPathStringSourceType. En
fonction de la valeur définie pour InnerXPathStringSourceType, sélectionnez
une variable ou une connexion de fichier, créez une variable ou une
connexion de fichier, ou tapez la chaîne de l’expression XPath interne.

Pour utiliser l’énumérateur SMO Foreach, sélectionnez une connexion


ADO.NET existante ou cliquez sur Nouvelle connexion dans la liste
Connexion , puis tapez la chaîne à utiliser ou cliquez sur Parcourir. Si vous
cliquez sur Parcourir, dans la boîte de dialogue Sélectionner l’énumération
SMO , sélectionnez le type d’objet à énumérer et le type d’énumération, puis
cliquez sur OK.

6. Si vous le souhaitez, cliquez sur le bouton Parcourir (...) dans la zone de texte
Expressions de la page Collection pour créer des expressions qui mettent à jour
les valeurs des propriétés. Pour plus d’informations, consultez Ajouter ou modifier
une Expression de propriété.

7 Notes

Les propriétés énumérées dans la liste Propriété varient en fonction de


l’énumérateur.

7. Si vous le souhaitez, cliquez sur Mappage de variables pour mapper des


propriétés d’objets à la valeur de la collection, puis effectuez les étapes suivantes :

a. Dans la liste Variables, sélectionnez une variable ou cliquez sur <Nouvelle


variable> pour en créer une.

b. Si vous ajoutez une nouvelle variable, définissez ses propriétés dans la boîte de
dialogue Ajouter une variable et cliquez sur OK.

c. Si vous utilisez l’énumérateur Foreach Item, vous pouvez mettre à jour la valeur
de l’index dans la liste Index .

7 Notes
La valeur de l'index indique quelle colonne de l'élément mapper à la
variable. Seul l'énumérateur For Each Item peut utiliser une valeur d'index
autre que 0.

8. Si vous le souhaitez, cliquez sur Expressions et, dans la page Expressions , créez
des expressions de propriété pour les propriétés du conteneur de boucles Foreach.
Pour plus d’informations, consultez Ajouter ou modifier une Expression de
propriété.

9. Cliquez sur OK.

Page Général - Éditeur de boucle Foreach


Utilisez la page Général de la boîte de dialogue Éditeur de boucle Foreach pour décrire
et attribuer un nom à un conteneur de boucle Foreach qui utilise un énumérateur précis
afin de répéter un flux de travail pour chaque membre d'une collection.

Pour en savoir plus sur le conteneur de boucles Foreach et sa configuration, consultez


Conteneur de boucles Foreach et Configurer un conteneur de boucles Foreach.

Options
Nom
Attribuez un nom unique au conteneur de boucle Foreach. Ce nom est utilisé en tant
qu'étiquette dans l'icône de tâche et dans les journaux.

7 Notes

Les noms des objets doivent être uniques dans un package.

Description
Tapez la description du conteneur de boucle Foreach.

Page Collection - Éditeur de boucle Foreach


Utilisez la page Collection de la boîte de dialogue Éditeur de boucle Foreach pour
spécifier le type d’énumérateur et le configurer.

Pour en savoir plus sur le conteneur de boucles Foreach et sa configuration, consultez


Conteneur de boucles Foreach et Configurer un conteneur de boucles Foreach.
Options statiques
Énumérateur
Sélectionnez le type d'énumérateur dans la liste. Cette propriété dispose des options
répertoriées dans le tableau suivant :

Valeur Description

Énumérateur Permet d'énumérer les fichiers. Si cette valeur est sélectionnée, les options
ForEach File dynamiques s'affichent dans la section Énumérateur Foreach File.

Énumérateur Permet d'énumérer les valeurs issues d'un élément. Si cette valeur
ForEach Item d'énumérateur est sélectionnée, les options dynamiques s'affichent dans la
section Énumérateur Foreach Item.

Énumérateur Permet d'énumérer les tables ou les lignes au sein de tables. Si cette valeur
ForEach ADO est sélectionnée, les options dynamiques s'affichent dans la section
Énumérateur Foreach ADO.

Énumérateur Permet d'énumérer un schéma. Si cette valeur est sélectionnée, les options
Foreach dynamiques s'affichent dans la section Énumérateur Foreach ADO.NET.
ADO.NET
Schema Rowset

Énumérateur Permet d'énumérer la valeur d'une variable. Si cette valeur est sélectionnée,
Foreach À partir les options dynamiques s'affichent dans la section Énumérateur Foreach à
d’une variable partir d'une variable.

Énumérateur Permet d'énumérer les nœuds d'un document XML. Si cette valeur est
Foreach Nodelist sélectionnée, les options dynamiques s'affichent dans la section Énumérateur
Foreach NodeList.

Énumérateur Permet d'énumérer un objet SMO. Si cette valeur d'énumérateur est


ForEach SMO sélectionnée, les options dynamiques s'affichent dans la section Énumérateur
Foreach SMO.

Énumérateur Énumérez les fichiers HDFS dans l’emplacement HDFS spécifié. Si cette valeur
Foreach File est sélectionnée, les options dynamiques s’affichent dans la section
HDFS Énumérateur de fichiers HDFS Foreach.

Énumérateur Énumérez les fichiers d’objets blob à l’emplacement spécifié des objets blob.
Foreach Azure Si cette valeur est sélectionnée, les options dynamiques s’affichent dans la
Blob section Énumérateur d’objets blob Azure Foreach.

Énumérateur Permet d’énumérer les fichiers du répertoire Data Lake Store spécifié. Si cette
Foreach ADLS valeur est sélectionnée, les options dynamiques s’affichent dans la section
File Énumérateur Foreach ADLS File.
Valeur Description

Énumérateur Permet d’énumérer les fichiers du répertoire Data Lake Storage Gen2 spécifié.
Foreach Data Si cette valeur est sélectionnée, les options dynamiques s’affichent dans la
Lake Storage section Énumérateur Foreach Data Lake Storage Gen2 File.
Gen2 File

Expressions
Cliquez sur Expressions ou développez ce groupe pour afficher la liste des expressions
de propriété existantes. Cliquez sur le bouton représentant des points de suspension (...)
pour ajouter une expression de propriété à une propriété d’énumérateur, ou modifiez et
évaluez une expression de propriété existante.

Rubriques connexes :Expressions Integration Services (SSIS), Éditeur d’expressions de


propriété et Générateur d’expressions

Options dynamiques portant sur les énumérateurs

Enumerator = Foreach File Enumerator


Vous utilisez l'énumérateur Foreach File pour énumérer les fichiers d'un dossier. Par
exemple, si la boucle Foreach inclut une tâche SQL, vous pouvez utiliser l'énumérateur
Foreach File pour énumérer les fichiers qui contiennent les instructions SQL que la tâche
SQL exécute. L'énumérateur peut être configuré pour inclure les sous-dossiers.

Le contenu des dossiers et des sous-dossiers que l'énumérateur Foreach File énumère
peut changer pendant l'exécution de la boucle, car les processus externes ou les tâches
de la boucle ajoutent, renomment ou suppriment les fichiers pendant l'exécution de la
boucle. Ces modifications peuvent être à l’origine d’un certain nombre de situations
inattendues :

Si des fichiers sont supprimés, les actions d’une tâche de la boucle Foreach
peuvent affecter un jeu de fichiers différent des fichiers utilisés par les tâches à
venir.

Si des fichiers sont renommés et qu’un processus externe ajoute automatiquement


des fichiers pour remplacer les fichiers renommés, les actions des tâches de la
boucle Foreach peuvent affecter deux fois les mêmes fichiers.

Si des fichiers sont ajoutés, il peut être difficile de déterminer quels fichiers la
boucle Foreach a affecté.
Folder
Permet d'indiquer le chemin du dossier racine à énumérer.

Parcourir
Permet de rechercher et de spécifier le chemin d'accès du dossier racine.

Fichiers
Permet de spécifier les fichiers à énumérer.

7 Notes

Utilisez le caractère étoile (*) pour indiquer les fichiers à inclure à la collection. Par
exemple, pour ajouter des fichiers dont le nom contient « abc », utilisez le filtre
suivant : *abc*.

Lorsque vous spécifiez une extension de nom de fichier, l'énumérateur retourne


également des fichiers qui ont la même extension avec des caractères
supplémentaires ajoutés. (Ce comportement est identique à celui de la commande
dir dans le système d’exploitation, qui compare aussi les noms de fichiers 8.3 à des
fins de compatibilité descendante.) Ce comportement de l'énumérateur peut
générer des résultats inattendus. Par exemple, vous souhaitez énumérer
uniquement des fichiers Excel 2003 et vous spécifiez "*.xls". Toutefois,
l’énumérateur retourne également des fichiers Excel 2007 car ces fichiers portent
l’extension « .xlsx ».

Vous pouvez utiliser une expression pour spécifier les fichiers à inclure dans une
collection. Pour cela, développez Expressions dans la page Collection, sélectionnez
la propriété FileSpec, puis cliquez sur le bouton de sélection (...) pour ajouter
l’expression de propriété.

Complet
Permet de récupérer les chemins d'accès complets des noms de fichiers indiqués. Si des
caractères génériques sont utilisés dans l’option Fichiers, les chemins complets
retournés correspondent au filtre spécifié.

Nom uniquement
Permet de ne récupérer que les noms de fichiers. Si des caractères étoile (*) sont
mentionnés dans l'option Fichiers, les noms de fichiers retournés par la fonction sont
ceux correspondant au filtre spécifié.

Nom et extension
Permet de retrouver le nom et l'extension des fichiers. Si des caractères étoile (*) sont
mentionnés dans l'option Fichiers, les noms et extension de fichiers retournés par la
fonction sont ceux correspondant au filtre spécifié.

Parcourir les sous-dossiers


Permet d'inclure les sous-dossiers dans l'énumération.

Enumerator = Foreach Item Enumerator

Vous utilisez l'énumérateur Foreach Item pour énumérer les éléments d'un dossier. Vous
définissez les éléments de la collection en spécifiant les colonnes et les valeurs de
colonne. Les colonnes d'une ligne définissent un élément. Par exemple, un élément qui
spécifie les exécutables qu'une tâche Exécuter le processus lance et le répertoire de
travail que la tâche utilise a deux colonnes, une qui dresse la liste des noms
d'exécutables et une qui indique le répertoire de travail. Le nombre de lignes détermine
le nombre de répétitions de la boucle. Si la table a 10 lignes, la boucle se répète 10 fois.

Pour mettre à jour les propriétés de la tâche Exécuter le processus, vous associez des
variables à des colonnes d'élément en utilisant l'index de la colonne. La première
colonne définie dans l'élément de l'énumérateur a la valeur d'index 0, la deuxième
colonne 1, etc. Les valeurs de variables sont mises à jour à chaque répétition de la
boucle. Les propriétés Executable et WorkingDirectory de la tâche Exécuter le
processus peuvent ensuite être mises à jour par les expressions de propriété qui utilisent
ces variables.

Définissez les éléments de la collection For Each Item


Permet de fournir une valeur pour chaque colonne de la table.

7 Notes

Une nouvelle ligne est automatiquement ajoutée à la table dès que vous saisissez
des valeurs dans les colonnes composant les lignes.

7 Notes

Si une valeur indiquée n'est pas compatible avec le type de données de la colonne
dans laquelle vous insérez la valeur, le texte s'affiche alors en rouge.

Type de données de la colonne


Permet d'afficher le type de données de la colonne active.
Remove
Sélectionnez un élément, puis cliquez sur Supprimer pour le supprimer de la liste.

Colonnes
Cliquez pour configurer le type de données des colonnes constituant l'élément.

Rubriques connexes :Référence de l’interface utilisateur de la boîte de dialogue


Colonnes For Each Item

Enumerator = Foreach ADO Enumerator


Vous utilisez l'énumérateur ADO Foreach pour énumérer les lignes ou les tables d'un
objet ADO ou ADO.NET qui est stocké dans une variable. Par exemple, si la boucle
Foreach inclut une tâche de script qui écrit un dataset dans une variable, vous pouvez
utiliser l'énumérateur ADO Foreach pour énumérer les lignes du dataset. Si la variable
contient un dataset ADO.NET, l'énumérateur peut être configuré pour énumérer les
lignes de plusieurs tables ou pour énumérer des tables.

Variable source de l’objet ADO


Sélectionnez une variable définie par l’utilisateur dans la liste ou cliquez sur <Nouvelle
variable...> pour en créer une.

7 Notes

La variable doit être de type Objet ; dans le cas contraire, une erreur se produit.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable

Lignes dans la première table


Permet de n'énumérer que les lignes de la première table.

Lignes dans toutes les tables (dataset ADO.NET uniquement)


Permet d'énumérer les lignes de toutes les tables. Cette option n'est disponible que si
les objets à énumérer sont tous des membres du même dataset ADO.NET.

Toutes les tables (dataset ADO.NET uniquement)


Permet de n'énumérer que les tables.

Enumerator = Foreach ADO.NET Schema Rowset Enumerator

Vous utilisez l'énumérateur d'ensemble de lignes du schéma ADO.NET Foreach pour


énumérer un schéma pour une source de données spécifiée. Par exemple, si la boucle
Foreach inclut une tâche d'exécution SQL, vous pouvez utiliser l'énumérateur
d'ensemble de lignes du schéma ADO.NET Foreach pour énumérer des schémas tels que
les colonnes de la base de données AdventureWorks , et la tâche d'exécution SQL pour
obtenir les autorisations de schéma.

Connection
Sélectionnez un gestionnaire de connexions ADO.NET dans la liste ou cliquez sur
<Nouvelle connexion...> pour en créer un.

) Important

Le gestionnaire de connexions ADO.NET doit utiliser un fournisseur .NET pour OLE


DB. Lors de la connexion à SQL Server, il est recommandé d'utiliser le fournisseur
SQL Server Native Client, répertorié dans la section Fournisseurs .Net pour OleDb
de la boîte de dialogue Gestionnaire de connexions .

Rubriques connexes :ADO Connection Manager, Configure ADO.NET Connection


Manager

Schéma
Permet d'indiquer le schéma à énumérer.

Définir les restrictions


Permet de définir les restrictions s'appliquant au schéma indiqué.

Rubriques connexes :Restrictions de schéma, boîte de dialogue

Enumerator = Foreach From Variable Enumerator

L'énumérateur Foreach à partir d'une variable permet d'énumérer les objets


énumérables contenus dans la variable spécifiée. Par exemple, si la boucle Foreach inclut
une tâche d'exécution SQL qui exécute une requête et enregistre le résultat dans une
variable, vous pouvez utiliser l'énumérateur Foreach à partir d'une variable pour
énumérer les résultats de la requête.

Variable
Sélectionnez une variable dans la liste ou cliquez sur <Nouvelle variable...> pour en
créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable

Enumerator = Foreach NodeList Enumerator


L'énumérateur Foreach Nodelist permet d'énumérer un ensemble de nœuds XML qui
résulte de l'application d'une expression XPath à un fichier XML. Par exemple, si la
boucle Foreach inclut une tâche de script, vous pouvez utiliser l'énumérateur Foreach
NodeList pour transmettre une valeur qui correspond aux critères de l'expression XPath
du fichier XML à la tâche de script.

L’expression XPath qui s’applique au fichier XML est l’opération XPath externe, stockée
dans la propriété OuterXPathString. Si le type d’énumération XPath a la valeur
ElementCollection, l’énumérateur Foreach NodeList peut appliquer une expression
XPath interne, stockée dans la propriété InnerXPathString, à une collection d’éléments.

Pour en savoir plus sur l'utilisation de documents et de données XML, consultez


«Employing XML in the .NET Framework» (en anglais) dans MSDN Library.

DocumentSourceType
Permet de sélectionner le type de source correspondant au document XML. Cette
propriété dispose des options répertoriées dans le tableau suivant :

Valeur Description

Entrée directe Permet de définir la source sur un document XML.

Connexion de fichiers Permet de sélectionner un fichier contenant le document XML.

Variable Permet de définir la source sur une variable contenant le document XML.

DocumentSource
Si DocumentSourceType est défini sur Entrée directe, indiquez le code XML ou cliquez
sur le bouton représentant des points de suspension (...) pour fournir le code XML
nécessaire via la boîte de dialogue Éditeur de source de document.

Si DocumentSourceType est défini sur Connexion de fichier, sélectionnez un


gestionnaire de connexions de fichier ou cliquez sur <Nouvelle connexion...> pour en
créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

Si DocumentSourceType est défini sur Variable, sélectionnez une variable existante ou


cliquez sur <Nouvelle variable...> pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable.

EnumerationType
Permet de sélectionner le type d'énumérateur dans la liste. Cette propriété dispose des
options répertoriées dans le tableau suivant :
Valeur Description

Navigateur Permet d'énumérer par le biais d'un XPathNavigator.

Nœud Permet d'énumérer les nœuds retournés par une opération XPath.

NodeText Permet d'énumérer les nœuds texte retournés par une opération XPath.

ElementCollection Permet d'énumérer les nœuds des éléments retournés par une opération
XPath.

OuterXPathStringSourceType
Permet de sélectionner le type source correspondant à une chaîne XPath. Cette
propriété dispose des options répertoriées dans le tableau suivant :

Valeur Description

Entrée directe Permet de définir la source sur un document XML.

Connexion de fichiers Permet de sélectionner un fichier contenant le document XML.

Variable Permet de définir la source sur une variable contenant le document XML.

OuterXPathString
Si OuterXPathStringSourceType est défini sur Entrée directe, fournissez la chaîne XPath.

Si OuterXPathStringSourceType est défini sur Connexion de fichier, sélectionnez un


gestionnaire de connexions de fichier ou cliquez sur <Nouvelle connexion...> pour en
créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

Si OuterXPathStringSourceType est défini sur Variable, sélectionnez une variable


existante ou cliquez sur <Nouvelle variable...> pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable.

InnerElementType
Si EnumerationType est défini sur ElementCollection, sélectionnez le type d’élément
interne dans la liste.

InnerXPathStringSourceType
Permet de sélectionner le type source correspondant à une chaîne XPath interne. Cette
propriété dispose des options répertoriées dans le tableau suivant :

Valeur Description
Valeur Description

Entrée directe Permet de définir la source sur un document XML.

Connexion de fichiers Permet de sélectionner un fichier contenant le document XML.

Variable Permet de définir la source sur une variable contenant le document XML.

InnerXPathString
Si InnerXPathStringSourceType est défini sur Entrée directe, fournissez la chaîne XPath.

Si InnerXPathStringSourceType est défini sur Connexion de fichier, sélectionnez un


gestionnaire de connexions de fichier ou cliquez sur <Nouvelle connexion...> pour en
créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

Si InnerXPathStringSourceType est défini sur Variable, sélectionnez une variable


existante ou cliquez sur <Nouvelle variable...>pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable.

Enumerator = Foreach SMO Enumerator


L'énumérateur Foreach SMO permet d'énumérer des objets SQL-SMO (SQL Server
Management Object). Par exemple, si la boucle Foreach inclut une tâche d’exécution
SQL, vous pouvez utiliser l’énumérateur Foreach SMO pour énumérer les tables de la
base de données AdventureWorks et exécuter des requêtes qui comptent le nombre de
lignes dans chaque table.

Connection
Sélectionnez un gestionnaire de connexions ADO.NET existant ou cliquez sur <Nouvelle
connexion...> pour en créer un.

Rubriques connexes : Gestionnaire de connexions ADO.NET, Configurer le gestionnaire


de connexions ADO.NET

Énumérer
Permet de spécifier l'objet SMO à énumérer.

Parcourir
Permet de sélectionner l'énumération SMO.

Rubriques connexes :Sélectionner l’énumération SMO, boîte de dialogue


Enumerator = Foreach HDFS File Enumerator
L’ Énumérateur de fichiers HDFS Foreach permet à un package SSIS d’énumérer les
fichiers HDFS à l’emplacement HDFS spécifié. Le nom de chaque fichier HDFS peut être
stocké dans une variable et utilisé dans des tâches du conteneur de boucle Foreach.

Gestionnaire de connexions Hadoop


Spécifiez ou créez un gestionnaire de connexions Hadoop pointant vers l’emplacement
de stockage des fichiers HDFS. Pour plus d’informations, consultez Hadoop Connection
Manager.

Chemin du répertoire
Indiquez le nom du répertoire HDFS contenant les fichiers HDFS à énumérer.

Filtre de nom de fichier


Indiquez un filtre de nom pour sélectionner des fichiers dont le nom répond à certains
critères. Par exemple, MySheet*.xls* comprend des fichiers comme MySheet001.xls et
MySheet001.xlsx.

Récupérer le nom de fichier


Indiquez le type de nom de fichier récupéré par SSIS.

Nom complet signifie nom de fichier accompagné du chemin du répertoire.

Nom uniquement signifie que le nom de fichier est récupéré sans chemin.

Parcourir les sous-dossiers


Indiquez si vous souhaitez parcourir les sous-dossiers de manière récursive.

Dans la page Mappage de variables de l’éditeur, sélectionnez ou créez une variable


pour stocker le nom du fichier HDFS énuméré.

Énumérateur = Énumérateur d’objets blob Azure Foreach


L’Énumérateur de blobs Azure permet à un package SSIS d’énumérer les fichiers de
blob à l’emplacement de blob spécifié. Vous pouvez stocker le nom du fichier d’objets
blob énuméré dans une variable et l’utiliser dans des tâches au sein du conteneur de
boucles Foreach.

L’Énumérateur d’objets Blob Azure est un composant de SQL Server Integration


Services (SSIS) Feature Pack pour Azure pour SQL Server 2016 (13.x). Le Feature Pack est
disponible en téléchargement ici .

Gestionnaire de connexions de stockage Azure


Sélectionnez un gestionnaire de connexions Azure Storage existant ou créez-en un
nouveau qui fait référence à un compte Azure Storage.

Rubriques connexes : Gestionnaire de connexions de stockage Azure.

Nom du conteneur d’objets blob


Spécifiez le nom du conteneur d’objets blob qui contient les fichiers d’objets blob à
énumérer.

Répertoire d’objets blob


Spécifiez le répertoire d’objets blob qui contient les fichiers d’objets blob à énumérer. Le
répertoire d’objet blob est une structure hiérarchique virtuelle.

Rechercher de manière récursive


Spécifiez s’il faut rechercher de manière récursive dans les sous-répertoires.

Filtre de noms d’objets blob


Spécifier un filtre de noms pour énumérer les fichiers avec un certain modèle de nom.
Par exemple, MySheet*.xls\* inclut les fichiers MySheet001.xls et MySheetABC.xlsx.

Filtre de plage de temps de/à des objets blob


Spécifiez un filtre de plage de temps. Les fichiers modifiés après TimeRangeFrom et
avant TimeRangeTo sont énumérés.

Enumerator = Foreach ADLS File Enumerator


L’énumérateur ADLS File permet à un package SSIS d’énumérer les fichiers dans Azure
Data Lake Store. Vous pouvez stocker le chemin complet du fichier énuméré (précédé
d’une barre oblique - / ) dans une variable et l’utiliser dans des tâches au sein du
conteneur de boucles Foreach.

AzureDataLakeConnection
Spécifie un gestionnaire de connexions Azure Data Lake ou en crée un qui fait référence
à un compte ADLS.

AzureDataLakeDirectory
Spécifie le répertoire ADLS qui contient les fichiers à énumérer.

FileNamePattern
Spécifie un filtre de nom de fichier. Seuls les fichiers dont le nom correspond au modèle
spécifié sont énumérés. Les caractères génériques * et ? sont pris en charge.

SearchRecursively
Spécifie si la recherche doit être récursive au sein du répertoire spécifié.
Énumérateur = énumérateur Foreach Data Lake Storage Gen2 File
L’énumérateur Foreach Data Lake Storage Gen2 File permet à un package SSIS
d’énumérer les fichiers dans Azure Data Lake Storage Gen2.

AzureStorageConnection
Spécifie un gestionnaire de connexions Stockage Azure existant ou en crée un qui
référence un service Data Lake Storage Gen2.

FolderPath
Spécifie le chemin du dossier dont il faut énumérer les fichiers.

SearchRecursively
Spécifie si la recherche doit être récursive au sein du dossier spécifié.

Remarques sur la configuration des autorisations du principal de service

L’autorisation pour Data Lake Storage Gen2 est déterminée à la fois par RBAC et par des
listes des contrôles d’accès (ACL). Faites attention à ce que les listes de contrôle d’accès
soient configurées à l’aide de l’ID d’objet (OID) du principal de service pour l’inscription
d’application, comme indiqué ici. Cet ID diffère de l’ID d’application (client) utilisé avec
la configuration RBAC. Quand un principal de sécurité reçoit des autorisations sur les
données RBAC par le biais d’un rôle intégré ou personnalisé, ces autorisations sont
évaluées en premier lors de l’autorisation d’une demande. Si l’opération demandée est
autorisée par les attributions RBAC du principal de sécurité, l’autorisation est
immédiatement résolue et aucune vérification de liste de contrôle d’accès
supplémentaire n’est effectuée. Sinon, si le principal de sécurité n’a pas d’attribution
RBAC ou si l’opération de la demande ne correspond pas à l’autorisation affectée, les
vérifications de liste de contrôle d’accès sont effectuées pour déterminer si le principal
de sécurité est autorisé à effectuer l’opération demandée. Pour que l’énumérateur
fonctionne, accordez au moins l’autorisation d’Exécution à partir du système de fichiers
racine, ainsi que l’autorisation de Lecture pour le dossier cible. Vous pouvez également
accorder au moins le rôle Lecteur des données Blob du stockage avec RBAC. Pour plus
d’informations, consultez cet article.

Page Mappage de variables - Éditeur de boucle


Foreach
Utilisez la page Mappage de variables de la boîte de dialogue Éditeur de boucle
Foreach pour mapper les variables à la valeur de la collection. La valeur de cette variable
est mise à jour avec les valeurs de la collection à chaque itération de la boucle.
Pour en savoir plus sur l’utilisation du conteneur de boucle Foreach dans un package
Integration Services, consultez Conteneur de boucle Foreach. Pour en savoir plus sur la
façon de le configurer, consultez Configurer un conteneur de boucles Foreach.

Le tutoriel « Création d’un package ETL simple » de Microsoft SQL Server Integration
Services inclut une leçon sur l’ajout et la configuration d’une boucle Foreach.

Options
Variable
Sélectionnez une variable existante ou cliquez sur Nouvelle variable... pour en créer une.

7 Notes

Après avoir mappé une variable, une nouvelle ligne s’ajoute automatiquement à la
liste Variable.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable

Index
Si vous utilisez l'énumérateur Foreach Item, indiquez l'index de la colonne de la valeur
de la collection à mapper à la variable. Pour les autres types d'énumérateur, l'index est
en lecture seule.

7 Notes

L'index commence à 0.

Supprimer
Sélectionnez une variable, puis cliquez sur Supprimer.

Restrictions de schéma, boîte de dialogue


(ADO.NET)
Utilisez la boîte de dialogue Restrictions de schéma pour définir les restrictions de
schéma à appliquer à l’énumérateur de l’ensemble de lignes du schéma Foreach
ADO.NET.

Options
Restrictions
Sélectionnez les contraintes à appliquer au schéma.

Variable
Utilisez une variable pour définir les restrictions. Sélectionnez une variable dans la liste
ou cliquez sur Nouvelle variable... pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable

Text
Entrez le texte qui définit les restrictions.

Colonnes For Each Item (boîte de dialogue)


Utilisez la boîte de dialogue Colonnes For Each Item pour définir les colonnes des
éléments énumérés par l'énumérateur Foreach Item.

Options
Colonne
Répertorie les colonnes.

Type de données
Sélectionnez le type de données.

Ajouter
Ajoutez une nouvelle colonne.

Remove
Sélectionnez une colonne, puis cliquez sur Supprimer.

Sélectionner l'énumération SMO, boîte de


dialogue
Utilisez la boîte de dialogue Sélectionner l’énumération SMO pour spécifier l’objet
SMO ( SQL Server Management Object) sur l’instance spécifiée de SQL Server à
énumérer et pour sélectionner le type d’énumération.

Options
Énumérer
Développez le serveur et sélectionnez l'objet SMO.

Objets
Utilisez le type d'énumération Objets.

Préremplir
Utilisez l’option Préremplir avec le type d’énumération Objets.

Noms
Utilisez le type d'énumération Noms.

URN
Utilisez le type d'énumération URN.

Emplacements
Utilisez le type d'énumération Emplacements. Cette option est disponible uniquement
pour les fichiers.

Utilisation d’expressions de propriété avec des


conteneurs de boucles Foreach
Les packages peuvent être configurés pour exécuter simultanément plusieurs
exécutables. Cette configuration doit être utilisée avec précaution lorsque le package
inclut un conteneur de boucles Foreach qui implémente des expressions de propriété.

Il est souvent pratique d’implémenter une expression de propriété pour définir la valeur
de la propriété ConnectionString des gestionnaires de connexions que les énumérateurs
de boucles Foreach utilisent. L’expression de la propriété ConnectionString est définie
par une variable qui est mappée à la valeur de la collection de l’énumérateur et mise à
jour à chaque itération de la boucle.

Pour éviter les conséquences négatives d'une synchronisation non déterminante d'une
exécution parallèle de tâches dans la boucle, le package doit être configuré pour
exécuter un seul exécutable à la fois. Par exemple, si un package peut exécuter plusieurs
tâches simultanément, un conteneur de boucles Foreach qui énumère les fichiers dans le
dossier, récupère les noms de fichiers, puis utilise une tâche d'exécution SQL pour
insérer les noms de fichiers dans une table peut provoquer des conflits d'écriture
lorsque deux instances de la tâche d'exécution SQL tentent d'écrire simultanément. Pour
plus d’informations, consultez Expressions de propriété dans des packages.

Voir aussi
Flux de contrôle
Conteneurs Integration Services
Effectuer une boucle dans des fichiers et
des tables Excel avec un conteneur de
boucles Foreach
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les procédures de cette rubrique expliquent comment effectuer une boucle dans les
classeurs Excel d'un dossier, ou dans les tableaux d'un classeur Excel, à l'aide du
conteneur de boucles Foreach et de l'énumérateur approprié.

) Important

Pour obtenir des informations détaillées sur la connexion à des fichiers Excel, et sur
les limitations et les problèmes connus liés au chargement de données depuis ou
vers des fichiers Excel, consultez Charger des données depuis ou vers Excel avec
SQL Server Integration Services (SSIS).

Pour effectuer une boucle dans des fichiers


Excel à l'aide de l'énumérateur Foreach File
1. Créez une variable de chaîne qui recevra le chemin d'accès et le nom de fichier
Excel actuel à chaque itération de la boucle. Pour éviter des problèmes de
validation, assignez un chemin d'accès Excel et un nom de fichier valides comme
valeur initiale de la variable. (L'exemple d'expression présenté ultérieurement dans
cette procédure utilise le nom de variable ExcelFile .)

2. En option, créez une autre variable de chaîne qui contiendra la valeur de


l'argument Propriétés étendues de la chaîne de connexion Excel. Cet argument
contient une série de valeurs qui spécifient la version d'Excel et déterminent si la
première ligne contient les noms de colonnes, et si le mode d'importation est
utilisé. (L'exemple d'expression présenté ultérieurement dans cette procédure
utilise le nom de variable ExtProperties , avec une valeur initiale « Excel
12.0;HDR=Yes ».)

Si vous n'utilisez pas une variable pour l'argument de propriétés étendues, vous
devez l'ajouter manuellement à l'expression qui contient la chaîne de connexion.
3. Ajoutez un conteneur de boucles Foreach à l’onglet Flux de contrôle . Pour plus
d’informations sur la configuration du conteneur de boucles Foreach, consultez
Configurer un conteneur de boucles Foreach.

4. Dans la page Collection de l’Éditeur de boucle Foreach, sélectionnez


l’énumérateur de fichiers Foreach, spécifiez le dossier contenant les classeurs Excel,
puis le filtre de fichiers (généralement *.xlsx).

5. Dans la page Mappage de variables , mappez l’index 0 à une variable de chaîne


définie par l’utilisateur qui recevra le chemin et le nom de fichier Excel actuels à
chaque itération de la boucle. L'exemple d'expression présenté plus loin dans cette
procédure utilise le nom de variable ExcelFile .

6. Fermez l’Éditeur de boucle Foreach.

7. Ajoutez un gestionnaire de connexions Excel au package, comme décrit dans la


rubrique Ajouter, supprimer ou partager un gestionnaire de connexions dans un
package. Pour éviter toute erreur de validation, sélectionnez un fichier de classeur
Excel pour la connexion.

) Important

Pour éviter des erreurs de validation à mesure que vous configurez des tâches
et des composants de flux de données qui utilisent ce gestionnaire de
connexions Excel, sélectionnez un classeur Excel existant dans l’Éditeur du
gestionnaire de connexions Excel. Le gestionnaire de connexions n’utilise pas
ce classeur au moment de l’exécution une fois que vous ayez configuré une
expression pour la propriété ConnectionString comme décrit dans la
procédure suivante. Après avoir créé et configuré le package, vous pouvez
supprimer la valeur de la propriété ConnectionString dans la fenêtre
Propriétés. Néanmoins, si vous supprimez cette valeur, la propriété de chaîne
de connexion du gestionnaire de connexions Excel n'est plus valide tant que
la boucle Foreach n'est pas exécutée. Vous devez donc définir la propriété
DelayValidation à True dans les tâches où le gestionnaire de connexions est
utilisé, ou bien dans le package, pour éviter des erreurs de validation.

Vous devez également utiliser la valeur par défaut False pour la propriété
RetainSameConnection du gestionnaire de connexions Excel. Si vous
remplacez cette valeur par True, chaque itération de la boucle continue
d’ouvrir le premier classeur Excel.
8. Sélectionnez le nouveau gestionnaire de connexions Excel, cliquez sur la propriété
Expressions dans la fenêtre Propriétés, puis cliquez sur les points de suspension.

9. Dans l’Éditeur d’expressions de la propriété, sélectionnez la propriété


ConnectionString , puis cliquez sur les points de suspension.

10. Dans le Générateur d'expressions, entrez l'expression suivante :

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @[User::ExcelFile]


+ ";Extended Properties=\"" + @[User::ExtProperties] + "\""

L'utilisation du caractère d'échappement « \ » permet d'isoler les guillemets


internes requis autour de la valeur de l'argument de propriétés étendues
(ExtProperties).

L'argument de propriétés étendues n'est pas facultatif. Si vous n'utilisez pas de


variable pour contenir sa valeur, vous devez l’ajouter manuellement à l’expression,
comme dans l’exemple suivant :

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @[User::ExcelFile]


+ ";Extended Properties=Excel 12.0"

11. Dans le conteneur de boucles Foreach, créez des tâches qui utilisent le
gestionnaire de connexions Excel pour effectuer les mêmes opérations sur chaque
classeur Excel correspondant à l'emplacement et au modèle des fichiers spécifiés.

Pour effectuer une boucle dans des tableaux


Excel à l'aide de l'énumérateur d'ensemble de
lignes du schéma ADO.NET Foreach
1. Créez un gestionnaire de connexions ADO.NET qui utilise le fournisseur OLE DB
pour Microsoft ACE afin d’établir une connexion à un classeur Excel. Dans la page
Tout de la boîte de dialogue Gestionnaire de connexions, entrez la version Excel
(dans cet exemple, Excel 12.0) comme valeur de la propriété Propriétés étendues.
Pour plus d’informations, consultez Ajouter, supprimer ou partager un gestionnaire
de connexions dans un package.
2. Créez une variable de chaîne qui recevra le nom du tableau actuel à chaque
itération de la boucle.

3. Ajoutez un conteneur de boucles Foreach à l’onglet Flux de contrôle . Pour plus


d’informations sur la configuration du conteneur de boucles Foreach, consultez
Configurer un conteneur de boucles Foreach.

4. Dans la page Collection de l’Éditeur de boucle Foreach, sélectionnez


l’énumérateur d’ensemble de lignes du schéma ADO.NET Foreach.

5. En guise de valeur pour Connexion, sélectionnez le gestionnaire de connexions


ADO.NET que vous avez créé.

6. En guise de valeur pour Schéma, sélectionnez Tables.

7 Notes

La liste des tableaux d'un classeur Excel comprend à la fois les feuilles de
calcul (affectées du suffixe $) et les plages nommées. Si vous devez filtrer la
liste uniquement à partir des feuilles de calcul ou des plages nommées, vous
pouvez être amené à écrire du code personnalisé dans une tâche de script.
Pour plus d’informations, consultez Utilisation de fichiers Excel avec la tâche
de script.

7. Dans la page Mappage de variables , mappez Index 2 avec la variable de chaîne


créée précédemment pour inclure le nom du tableau actuel.

8. Fermez l’Éditeur de boucle Foreach.

9. Dans le conteneur de boucles Foreach, créez des tâches qui utilisent le


gestionnaire de connexions Excel pour effectuer les mêmes opérations sur chaque
tableau Excel du classeur spécifié. Si vous utilisez une tâche de script dans le but
d’examiner le nom de tableau énuméré ou pour utiliser chaque tableau, pensez à
ajouter la variable chaîne à la propriété ReadOnlyVariables de la tâche de script.

Voir aussi
Charger des données depuis ou vers Excel avec SQL Server Integration Services (SSIS)
Configurer un conteneur de boucles Foreach
Ajouter ou modifier une expression de propriété
Gestionnaire de connexions Excel
Source Excel
Destination Excel
Utilisation de fichiers Excel avec la tâche de script
Conteneur de boucles For
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le conteneur de boucles For définit un flux de contrôle répétitif dans un package. La


mise en œuvre de la boucle est similaire à la structure de bouclage For des langages de
programmation. Dans chaque répétition de la boucle, le conteneur de boucles For
évalue une expression et répète son flux de travail jusqu'à ce que l'expression retourne
la valeur False.

Le conteneur de boucle For utilise les éléments suivants pour définir la boucle :

Une expression d'initialisation facultative qui attribue des valeurs aux compteurs
de la boucle

Une expression d'évaluation qui permet de déterminer si la boucle doit s'arrêter ou


continuer

Une expression d'itération facultative qui incrémente ou décrémente le compteur


de la boucle

Le schéma suivant illustre un conteneur de boucles For avec une tâche Envoyer un
message. Si l'expression d'initialisation est @Counter = 0 , que l'expression d'évaluation
est @Counter < 4 et que l'expression d'itération est @Counter = @Counter + 1 , la boucle
se répète quatre fois et envoie quatre messages électroniques.

Les expressions doivent être des expressions SQL Server Integration Services valides.

Pour créer les expressions d'initialisation et d'assignation, vous pouvez utiliser


l'opérateur d'affectation (=). Cet opérateur n'est pas pris en charge par la grammaire
d'expression Integration Services et ne peut être utilisé que par les types d'expression
d'initialisation et d'assignation du conteneur de boucles For. Toute expression qui utilise
l’opérateur d’assignation doit avoir la syntaxe @Var = <expression> , où Var est une
variable d’exécution et <expression> est une expression qui suit les règles de la syntaxe
d’expression SSIS. L'expression peut comprendre les variables, les littéraux et l'ensemble
des opérateurs et des fonctions pris en charge par la grammaire d'expression SSIS.
L'expression doit correspondre à une valeur dont le type de données peut être converti
vers le type de données de la variable.
Un conteneur de boucles For ne peut avoir qu'une seule expression d'évaluation. Par
conséquent, le conteneur de boucles For exécute tous ses éléments de flux de contrôle
le même nombre de fois. Étant donné que le conteneur de boucles For peut
comprendre d'autres conteneurs de boucles For, vous pouvez créer des boucles
imbriquées et mettre en œuvre un bouclage complexe dans les packages.

Vous pouvez configurer une propriété de transaction sur le conteneur de boucles For
afin de définir une transaction pour un sous-ensemble du flux de contrôle du package.
Ainsi, vous pouvez gérer les transactions de façon plus précise. Par exemple, si un
conteneur de boucles For répète un flux de contrôle qui met à jour plusieurs fois les
données d'une table, vous pouvez configurer la boucle For et son flux de contrôle de
manière à utiliser une transaction empêchant toute mise à jour si toutes les données ne
sont pas mises à jour correctement. Pour plus d’informations, consultez Transactions
Integration Services.

Ajouter une itération à un flux de contrôle avec


le conteneur de boucles For
Integration Services inclut le conteneur de boucles For, élément de flux de contrôle qui
permet de facilement inclure un bouclage assurant la répétition conditionnelle d’un flux
de contrôle dans un package. Pour plus d’informations, consultez Conteneur de boucles
For.

Le conteneur de boucles For évalue une condition à chaque itération de la boucle et


s'arrête lorsque la condition est fausse. Il inclut des expressions pour l'initialisation de la
boucle, la spécification de la condition d'évaluation qui arrête l'exécution du flux de
contrôle répété et l'assignation d'une valeur à une expression qui met à jour la valeur
par rapport à laquelle la condition d'évaluation est comparée. Vous devez fournir une
condition d'évaluation, mais les expressions d'initialisation et d'assignation sont
facultatives.

Le conteneur de boucles For n'offre aucune fonctionnalité ; il ne fournit que la structure


dans laquelle vous créez le flux de contrôle répété. Pour fournir une fonctionnalité de
conteneur, vous devez inclure au moins une tâche dans le conteneur de boucles For.
Pour plus d’informations, consultez Tâches Integration Services.

Le conteneur de boucles For peut inclure un flux de contrôle avec plusieurs tâches, ainsi
que d'autres conteneurs. Que vous ajoutiez des tâches et des conteneurs à un
conteneur de boucles For ou à un package, l'opération est la même, sauf que vous faites
glisser les tâches et les conteneurs vers le conteneur de boucles For plutôt que vers le
package. Si le conteneur de boucles For contient plusieurs tâches ou conteneurs, vous
pouvez les connecter à l'aide de contraintes de précédence, tout comme dans un
package. Pour plus d’informations, consultez Contraintes de précédence.

Ajouter un conteneur de boucles For dans un


flux de contrôle
1. Ajoutez le conteneur de boucles For au package. Pour plus d’informations,
consultez Ajouter ou supprimer une tâche ou un conteneur dans un flux de
contrôle.

2. Ajoutez des tâches et des conteneurs au conteneur de boucles For. Pour plus
d’informations, consultez Ajouter ou supprimer une tâche ou un conteneur dans
un flux de contrôle.

3. Connectez les tâches et les conteneurs du conteneur de boucles For à l'aide de


contraintes de précédence. Pour plus d’informations, consultez Connecter des
tâches et des conteneurs à l’aide d’une contrainte de précédence par défaut.

4. Configurez le conteneur de boucles For. Pour plus d’informations, consultez


Configurer un conteneur de boucles For.

Configurer le conteneur de boucles For


Cette procédure décrit comment configurer un conteneur de boucles For à l’aide de la
boîte de dialogue Éditeur de boucle For .

1. Dans SQL Server Data Tools (SSDT), double-cliquez sur le conteneur de boucles For
pour ouvrir l’ Éditeur de boucle For.

2. Si vous le souhaitez, modifiez le nom et la description du conteneur de boucles


For.

3. Si vous le souhaitez, tapez une expression d’initialisation dans la zone de texte


InitExpression .

4. Tapez une expression d’évaluation dans la zone de texte EvalExpression .

7 Notes

L'expression doit prendre une valeur de type Boolean. Quand l’expression


donne la valeur false, la boucle cesse de s’exécuter.
5. Si vous le souhaitez, tapez une expression d’assignation dans la zone de texte
AssignExpression .

6. Si vous le souhaitez, cliquez sur Expressions et, dans la page Expressions , créez
des expressions de propriété pour les propriétés du conteneur de boucles For.
Pour plus d’informations, consultez Ajouter ou modifier une Expression de
propriété.

7. Cliquez sur OK pour fermer la boîte de dialogue Éditeur de boucle For.

Boîte de dialogue Éditeur de boucle For


Utilisez la page Éditeur de boucle For de la boîte de dialogue Éditeur de boucle For
pour configurer une boucle qui répète un flux de travail jusqu'à ce qu'une condition
spécifiée soit fausse.

Pour en savoir plus sur le conteneur de boucles For et sur son utilisation dans les
packages, consultez For Loop Container.

Options
InitExpression
Indiquez éventuellement une expression qui initialise les valeurs des variables utilisées
dans la boucle.

EvalExpression
Indiquez une expression qui évalue si la boucle doit s'interrompre ou se poursuivre.

AssignExpression
Indiquez éventuellement une expression qui modifie une expression à chaque répétition
de la boucle.

Nom
Indiquez un nom unique pour le conteneur de la boucle For. Ce nom sert d'étiquette à
l'icône de la tâche.

7 Notes

Les noms des objets doivent être uniques dans un package.

Description
Indiquez une description unique pour le conteneur de la boucle For.
Utiliser des expressions avec le conteneur de
boucles For
Lorsque vous configurez le conteneur de boucles For en spécifiant une condition
d'évaluation, une valeur d'initialisation ou une valeur d'assignation, vous pouvez utiliser
des littéraux ou des expressions.

Les expressions peuvent inclure des variables. Les variables présentent l'avantage de
pouvoir être mises à jour au moment de l'exécution, ce qui rend les packages plus
flexibles et plus faciles à gérer. La longueur maximale d'une expression est limitée à 4
000 caractères.

Lorsque vous spécifiez une variable dans une expression, vous devez préfixer le nom de
la variable avec le signe arobase (@). Par exemple, pour une variable nommée Counter,
entrez @Counter dans l’expression utilisée par le conteneur de boucles For. Si vous
incluez la propriété d'espace de noms dans la variable, vous devez placer la variable et
l'espace de noms entre crochets. Par exemple, pour une variable Counter dans l’espace
de noms MyNamespace , tapez [@MyNamespace::Counter].

Les variables utilisées par le conteneur de boucles For doivent être définies dans la
portée du conteneur de boucles For ou dans la portée d'un conteneur situé plus haut
dans la hiérarchie de conteneurs de package. Par exemple, un conteneur de boucles For
peut utiliser des variables définies dans sa portée et également des variables définies
dans la portée du package. Pour plus d’informations, consultez Variables Integration
Services (SSIS) et Utiliser des variables dans des packages.

La grammaire d'expression SSIS fournit un ensemble complet d'opérateurs et de


fonctions pour l'implémentation d'expressions complexes utilisées pour l'évaluation,
l'initialisation ou l'assignation. Pour plus d’informations, consultez Expressions
Integration Services (SSIS).

Voir aussi
Flux de contrôle
Expressions Integration Services (SSIS)
conteneur de séquences
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le conteneur de séquences définit un flux de contrôle représentant un sous-ensemble


du flux de contrôle du package. Les conteneurs de séquences regroupent le package en
plusieurs flux de contrôle distincts contenant chacun un ou plusieurs conteneurs et
tâches exécutés dans le flux de contrôle global du package.

Le conteneur de séquences peut inclure plusieurs tâches et d'autres conteneurs. L'ajout


de tâches et de conteneurs à un conteneur de séquences est identique à l'ajout de ces
éléments à un package. La seule différence est que vous faites glisser les tâches et les
conteneurs dans le conteneur de séquences au lieu de les glisser dans le conteneur de
package. Si le conteneur de séquences inclut plusieurs tâches ou conteneurs, vous
pouvez les connecter à l'aide de contraintes de précédence de la même manière que
dans un package. Pour plus d’informations, consultez Contraintes de précédence.

L'utilisation d'un conteneur de séquences présente de nombreux avantages :

Désactivation des groupes de tâches afin de concentrer le débogage du package


sur un seul sous-ensemble de son flux de contrôle

Centralisation de la gestion des propriétés de plusieurs tâches en définissant les


propriétés sur un conteneur de séquences plutôt que sur les différentes tâches

Vous pouvez ainsi définir la propriété Disable du conteneur de séquences et lui


affecter la valeur True pour désactiver toutes les tâches et tous les conteneurs du
conteneur de séquences.

Attribution d'une étendue aux variables utilisées par un groupe de tâches et de


conteneurs apparentés

Regroupement de nombreuses tâches pour vous permettre de les gérer plus


facilement, en réduisant et en développant le conteneur de séquences.

Vous pouvez aussi créer des groupes de tâches, qui peuvent être réduits et
développés à partir de la zone Groupe . Cependant, la zone Groupe est une
fonctionnalité disponible au moment de la conception qui ne contient aucune
propriété et n’affiche aucun comportement au moment de l’exécution. Pour plus
d’informations, consultez Grouper ou dissocier des composants
Configurez un attribut de transaction sur le conteneur de séquences afin de définir
une transaction pour un sous-ensemble du flux de contrôle du package. Ainsi,
vous pouvez gérer les transactions de façon plus précise.

Par exemple, si un conteneur de séquences comprend deux tâches apparentées,


l'une supprimant des données d'une table et l'autre insérant celles-ci dans une
table, vous pouvez configurer une transaction de manière à ce que l'action de
suppression soit annulée en cas d'échec de l'action d'insertion. Pour plus
d’informations, consultez Transactions Integration Services.

Configuration du conteneur de séquences


Le conteneur de séquences ne possède pas d’interface utilisateur personnalisée et vous
ne pouvez le configurer que dans la fenêtre Propriétés de SQL Server Data Tools (SSDT)
ou par programmation.

Pour plus d’informations sur la définition par programmation de ces propriétés,


consultez la documentation relative à la classe
T:Microsoft.SqlServer.Dts.Runtime.Sequence dans le Guide du développeur.

Tâches associées
Pour plus d’informations sur la définition des propriétés du composant dans SQL Server
Data Tools (SSDT), consultez Définir les propriétés d’une tâche ou d’un conteneur.

Voir aussi
Ajouter ou supprimer une tâche ou un conteneur dans un flux de contrôle
Connecter des tâches et des conteneurs à l’aide d’une contrainte de précédence par
défaut
Conteneurs Integration Services
conteneur d'hôte de tâche
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le conteneur d'hôte de tâche encapsule une seule tâche. Dans le concepteur SSIS ,
l'hôte de tâche n'est pas configuré séparément ; il est configuré lorsque vous définissez
les propriétés de la tâche qu'il encapsule. Pour plus d'informations sur les tâches
encapsulées par les conteneurs d’hôte de tâche, consultez Tâches Integration Services.

Ce conteneur étend l'utilisation des variables et des gestionnaires d'événements au


niveau de la tâche. Pour plus d’informations, consultez Gestionnaires d’événements
Integration Services (SSIS) et Variables Integration Services (SSIS).

Configuration de l'hôte de tâche


Vous pouvez définir les propriétés dans la fenêtre Propriétés de SQL Server Data Tools
(SSDT) ou par programmation.

Pour plus d’informations sur la définition de ces propriétés dans SQL Server Data Tools
(SSDT), consultez Définir les propriétés d’une tâche ou d’un conteneur.

Pour plus d’informations sur la définition par programmation de ces propriétés,


consultez TaskHost.

Tâches associées
Définir les propriétés d'une tâche ou d'un conteneur

Voir aussi
Conteneurs Integration Services
Tâches Integration Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les tâches sont des éléments de flux de contrôle qui définissent des unités de travail qui
sont exécutées dans un flux de contrôle de package. Un package SQL Server Integration
Services est composé d’une ou plusieurs tâches. Si le package contient plusieurs tâches,
elles sont connectées et organisées dans le flux de contrôle par des contraintes de
priorité.

Vous pouvez également écrire des tâches personnalisées à l'aide d'un langage de
programmation qui prend en charge COM, tel que Visual Basic, ou d'un langage de
programmation .NET, tel que C#.

Le concepteur SSIS, outil graphique de SQL Server Integration Services permettant de


manipuler les packages, met à votre disposition une aire de conception pour la création
des flux de contrôle de package, ainsi que des éditeurs personnalisés pour la
configuration des tâches. Vous pouvez aussi programmer le modèle objet SQL Server
Integration Services pour créer des packages par programmation.

Types de tâches
Integration Services comprend les types de tâches suivants.

tâche de flux de données


Tâche qui exécute les flux de données pour extraire les données, pour appliquer les
transformations au niveau des colonnes et pour charger des données.

Tâches de préparation des données


Ces tâches effectuent les processus suivants : copie de fichiers et de répertoires,
téléchargement de fichiers et de données, exécution de méthodes Web, application
d'opérations aux documents XML et profilage des données à des fins de nettoyage.

Tâches de flux de travail


Tâches qui communiquent avec d'autres processus pour exécuter les packages, exécuter
les programmes ou les fichiers de commandes, gérer les échanges de messages entre
les packages, envoyer des messages électroniques, lire les données WMI (Windows
Management Instrumentation) et observer les événements WMI.

Tâches SQL Server


Tâches qui accèdent aux objets et aux données SQL Server , et qui les copient, les
insèrent, les suppriment et les modifient.

Tâches de script
Tâches qui étendent les fonctionnalités des packages à l'aide de scripts.

Tâches Analysis Services


Tâches qui créent, modifient, suppriment et traitent les objets Analysis Services .

Tâches de maintenance
Tâches qui réalisent des fonctions d'administration telles que la sauvegarde et la
réduction des bases de données SQL Server , la reconstruction et la réorganisation des
index ou l'exécution des travaux d'Agent SQL Server .

Tâches personnalisées
Vous pouvez aussi écrire des tâches personnalisées à l'aide d'un langage de
programmation qui prend en charge COM, tel que Visual Basic, ou d'un langage de
programmation .NET, tel que C#. Si vous voulez accéder à votre tâche personnalisée
dans le concepteur SSIS , vous pouvez créer et inscrire une interface utilisateur pour la
tâche. Pour plus d’informations, consultez Développement d’une tâche personnalisée.

Configuration des tâches


Un package Integration Services peut contenir une seule tâche, par exemple une tâche
d'exécution SQL qui supprime des enregistrements dans une table de base de données
lors de l'exécution du package. Les packages contiennent cependant en général
plusieurs tâches et chacune d'elles est définie de manière à être exécutée dans le
contexte du flux de contrôle du package. Les gestionnaires d'événements, qui sont des
flux de travail exécutés en réponse aux événements d'exécution, peuvent également
avoir des tâches.

Pour plus d’informations sur l’ajout d’une tâche à un package à l’aide du concepteur
SSIS , consultez Ajouter ou supprimer une tâche ou un conteneur dans un flux de
contrôle.

Pour plus d’informations sur l’ajout d'une tâche à un package par programmation,
consultez Ajout de tâches par programme.

Chaque tâche peut être configurée séparément à l’aide des boîtes de dialogue
personnalisées du concepteur SSIS ou de la fenêtre Propriétés de SQL Server Data Tools
(SSDT). Un package peut contenir plusieurs tâches du même type (par exemple, six
tâches d’exécution SQL) et chaque tâche peut être configurée différemment. Pour plus
d’informations, consultez Définir les propriétés d’une tâche ou d’un conteneur.
Connexions et groupes des tâches
Si la tâche contient plusieurs tâches, elles sont connectées et organisées dans le flux de
contrôle par des contraintes de priorité. Pour plus d’informations, consultez Contraintes
de précédence.

Les tâches peuvent être regroupées et exécutées en tant qu'unité de travail unique ou
répétées dans une boucle. Pour plus d’informations, consultez Conteneur de boucles
Foreach, Conteneur de boucles Foret Conteneur de séquences.

Tâches associées
Ajouter ou supprimer une tâche ou un conteneur dans un flux de contrôle
Tâche DDL d'exécution de SQL Server
Analysis Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche DDL d'exécution de Analysis Services exécute des instructions DDL (Data
Definition Language) qui peuvent créer, supprimer ou modifier des modèles
d'exploration de données et des objets multidimensionnels tels que des cubes et des
dimensions. Par exemple, une instruction DDL peut créer une partition dans le cube
Adventure Works ou supprimer une dimension dans Adventure Works DW
Multidimensional 2012, l’exemple de base de données Analysis Services inclus dans SQL
Server.

La tâche DDL d'exécution de Analysis Services utilise un gestionnaire de connexions


Analysis Services pour se connecter à une instance de Analysis Services ou à un projet
Analysis Services . Pour plus d'informations, consultez Analysis Services Connection
Manager.

Integration Services comprend une série de tâches qui effectuent des opérations de
Business Intelligence, telles que le traitement des objets analytiques et l’exécution des
requêtes de prédiction d’exploration de données.

Pour plus d'informations sur les tâches Business Intelligence associées, cliquez sur l'une
des rubriques suivantes :

Tâche de traitement d’Analysis Services

Tâche de requête d’exploration de données

Instructions DDL
Les instructions DDL sont représentées en tant qu'instructions en langage ASSL (
Analysis Services Scripting Language) et insérées dans une commande XMLA (XML for
Analysis).

Le langage ASSL permet de définir et de décrire une instance de Analysis Services ,


ainsi que les bases de données et les objets de base de données qu’elle contient.
Pour plus d’informations, consultez Référence Analysis Services Scripting Language
(ASSL for XMLA).
XMLA est un langage de commande qui permet d'envoyer des commandes
d'action, telles que Create, Alter ou Process, à une instance de Analysis Services.
Pour plus d’informations, consultez Référence XML for Analysis (XMLA).

Si le code DDL est stocké dans un fichier distinct, la tâche DDL d’exécution de Analysis
Services utilise un gestionnaire de connexions de fichiers pour spécifier le chemin du
fichier. Pour plus d’informations, consultez File Connection Manager.

Étant donné que les instructions DDL peuvent contenir des mots de passe et d’autres
informations sensibles, un package qui comporte une ou plusieurs tâches DDL
d’exécution Analysis Services doit utiliser le niveau de protection de package
EncryptAllWithUserKey ou EncryptAllWithPassword. Pour plus d’informations,
consultez Packages Integration Services (SSIS).

Exemples d'instructions DDL


Les trois instructions DDL suivantes ont été générées en créant des scripts d’objets dans
Adventure Works DW Multidimensional 2012, la base de données Analysis Services
incluse dans SQL Server.

L’instruction DDL suivante supprime la dimension Promotion .

<Delete xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>
<DimensionID>Dim Promotion</DimensionID>
</Object>
</Delete>

L'instruction DDL suivante traite le cube Adventure Works DW Multidimensional 2012 .

<Batch xmlns="http://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>

L’instruction DDL suivante crée le modèle d’exploration de données Forecasting .

<Create xmlns="http://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>

Les trois instructions DDL suivantes ont été générées en créant des scripts d’objets dans
Adventure Works DW Multidimensional 2012, la base de données Analysis Services
incluse dans SQL Server.

L’instruction DDL suivante supprime la dimension Promotion .

<Delete xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>
<DimensionID>Dim Promotion</DimensionID>
</Object>
</Delete>

L'instruction DDL suivante traite le cube Adventure Works DW Multidimensional 2012 .

<Batch xmlns="http://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>

L’instruction DDL suivante crée le modèle d’exploration de données Forecasting .

<Create xmlns="http://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 de la tâche DDL d'exécution


d'Analysis Services
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :
Page Expressions

Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Configuration par programmation de la tâche


DDL d'exécution d'Analysis Services
Pour plus d'informations sur la définition par programme de ces propriétés, cliquez sur
la rubrique suivante :

ASExecuteDDLTask

Éditeur de tâche DDL d'exécution Analysis


Services (page Général)
La page Général de la boîte de dialogue Éditeur de tâche DDL d’exécution Analysis
Services permet de nommer et de décrire la tâche DDL d’exécution Analysis Services .

Options
Nom
Fournit un nom unique pour la tâche DDL d’exécution Analysis Services . Ce nom sert
d'étiquette à l'icône de la tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Tapez une description de la tâche DDL d'exécution Analysis Services .

Éditeur de tâche DDL d'exécution d'Analysis


Services (page DDL)
Utilisez la page DDL de la boîte de dialogue Éditeur de tâche DDL d’exécution
d’Analysis Services pour spécifier une connexion à un projet Analysis Services ou à une
base de données Analysis Services et fournir des informations sur la source des
instructions de langage de définition de données (DDL).

Options statiques
Connection
Sélectionnez un projet Analysis Services ou un gestionnaire de connexions Analysis
Services dans la liste, ou cliquez sur <Nouvelle connexion...> et utilisez la boîte de
dialogue Ajout d’un gestionnaire de connexions Analysis Services pour créer une
connexion.

Rubriques connexes :Référence de l'interface utilisateur de la boîte de dialogue Ajout


d’un gestionnaire de connexions Analysis Services, Gestionnaire de connexions Analysis
Services

SourceType
Spécifiez le type de source des instructions DDL. Cette propriété dispose des options
répertoriées dans le tableau suivant :

Valeur Description

Entrée Définissez la source de l'instruction DDL enregistrée dans la zone de texte


directe SourceDirect . Sélectionnez cette valeur pour afficher l'option dynamique de la
section suivante.

Connexion Définissez la source par un fichier qui contient l'instruction DDL. Sélectionnez cette
de fichiers valeur pour afficher l'option dynamique de la section suivante.

Variable Définissez la source par une variable. Sélectionnez cette valeur pour afficher l'option
dynamique de la section suivante.

Options dynamiques

SourceType = Entrée directe

Source
Tapez les instructions DDL ou cliquez sur le bouton représentant des points de
suspension (...) , puis tapez les instructions dans la boîte de dialogue Instructions DDL.

SourceType = Connexion de fichiers


Source
Sélectionnez une connexion de fichiers dans la liste ou cliquez sur <Nouvelle
connexion...> et utilisez la boîte de dialogue Gestionnaire de connexions de fichiers
pour créer une connexion.

Rubriques connexes :Gestionnaire de connexions de fichiers

SourceType = Variable
Source
Sélectionnez une variable dans la liste ou cliquez sur <Nouvelle variable> et utilisez la
boîte de dialogue Ajouter une variable pour créer une variable.

Rubriques connexes :Variables Integration Services (SSIS)


tâche de traitement d'Analysis Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de traitement Analysis Services traite les objets Analysis Services tels que les
modèles tabulaires, les cubes, les dimensions et les modèles d'exploration de données.

Lors du traitement des modèles tabulaires, gardez à l'esprit les points suivants :

Vous ne pouvez pas effectuer d'analyse d'impact sur les modèles tabulaires.

Certaines options de traitement du mode tabulaire ne sont pas exposées, par


exemple Traiter la défragmentation et Traiter le recalcul. Vous pouvez exécuter ces
fonctions à l'aide de la tâche DDL d'exécution.

Les options Traiter l'index et Traiter la mise à jour ne conviennent pas aux modèles
tabulaires et ne doivent pas être utilisées.

Les paramètres de lot sont ignorés pour les modèles tabulaires.

Définissez la version du serveur cible sur SQL Server 2019 pour la connexion à
Azure Analysis Services.

Integration Services comprend une série de tâches qui effectuent des opérations de
Business Intelligence, telles que l’exécution d’instructions DDL (Data Definition
Language) et de requêtes de prédiction d’exploration de données. Pour plus
d'informations sur les tâches Business Intelligence associées, cliquez sur l'une des
rubriques suivantes :

Tâche DDL d’exécution de SQL Server Analysis Services

Tâche de requête d’exploration de données

Traitement des objets


Plusieurs objets peuvent être traités simultanément. Pour traiter plusieurs objets, vous
définissez des paramètres qui s'appliquent au traitement de tous les objets du
traitement.

Les objets d'un traitement peuvent être traités de façon séquentielle ou parallèle. Si le
traitement ne contient pas d'objets nécessitant un traitement séquentiel, un traitement
parallèle peut accélérer la procédure. Si des objets du traitement sont traités en
parallèle, vous pouvez configurer la tâche afin qu'elle détermine le nombre d'objets à
traiter de la sorte ou bien spécifier manuellement le nombre d'objets à traiter
simultanément. Si des objets sont traités de façon séquentielle, vous pouvez définir un
attribut de transaction sur le traitement en inscrivant tous les objets dans une même
transaction ou en utilisant une transaction distincte pour chaque objet du traitement.

Lorsque vous traitez des objets analytiques, vous pouvez également traiter les objets qui
dépendent de ceux-ci. La tâche de traitement d' Analysis Services dispose d'une option
qui, outre les objets sélectionnés, permet de traiter tous les objets dépendants.

En principe, vous traitez les tables de dimension avant de traiter les tables de faits. Des
erreurs peuvent se produire si vous essayez de traiter les tables de faits avant de traiter
les tables de dimension.

Cette tâche vous permet également de configurer la gestion des erreurs de clés de
dimension. Par exemple, la tâche peut ignorer les erreurs ou s'arrêter dès qu'un certain
nombre d'erreurs se sont produites. La tâche peut utiliser la configuration d'erreur par
défaut ou vous pouvez construire une configuration d'erreur personnalisée. Dans la
configuration d'erreur personnalisée, vous indiquez les conditions d'erreur et comment
la tâche gère les erreurs. Par exemple, vous pouvez spécifier que l'exécution de la tâche
doit s'arrêter dès la quatrième erreur ou indiquer comment la tâche doit gérer les
valeurs de clé NULL . La configuration d'erreur personnalisée peut également
comprendre le chemin d'accès d'un journal d'erreurs.

7 Notes

La tâche de traitement Analysis Services ne peut traiter que les objets analytiques
créés à l'aide des outils SQL Server .

Cette tâche est fréquemment utilisée avec une tâche d'insertion en bloc qui charge des
données dans une table SQL Server ou avec une tâche de flux qui met en œuvre un flux
chargeant des données dans une table. Par exemple, la tâche de flux peut avoir un flux
qui extrait des données d’une base de données OLTP (Online Transaction Processing) et
les charge dans une table de faits d’un entrepôt de données, à la suite de quoi la tâche
de traitement Analysis Services est appelée pour traiter le cube basé sur l’entrepôt de
données.

La tâche de traitement Analysis Services utilise un gestionnaire de connexions Analysis


Services pour se connecter à une instance de Microsoft SQL Server Analysis Services.
Pour plus d'informations, consultez Analysis Services Connection Manager.
Gestion des erreurs

Configuration de la tâche de traitement


Analysis Services
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Page Expressions

Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Configuration par programmation de la tâche


de traitement Analysis Services
Pour plus d'informations sur la définition par programme de ces propriétés, cliquez sur
la rubrique suivante :

DTSProcessingTask

Éditeur de tâche de traitement d'Analysis


Services (page Général)
Utilisez la page Général de la boîte de dialogue Éditeur de tâche de traitement
d’Analysis Services pour nommer et décrire la tâche de traitement d’Analysis Services.

Options
Nom
Donnez un nom unique à la tâche de traitement Analysis Services. Ce nom sert
d'étiquette à l'icône de la tâche.

7 Notes
Les noms de tâche doivent être uniques dans un package.

Description
Tapez une description de la tâche de traitement Analysis Services.

Éditeur de tâche de traitement d'Analysis


Services (page Analysis Services)
Utilisez la page Analysis Services de la boîte de dialogue Éditeur de tâche de
traitement d’Analysis Services pour définir un gestionnaire de connexions Analysis
Services, sélectionner les objets analytiques à traiter et définir les options de traitement
et de gestion des erreurs.

Lors du traitement des modèles tabulaires, gardez à l'esprit les points suivants :

1. Vous ne pouvez pas effectuer d'analyse d'impact sur les modèles tabulaires.

2. Certaines options de traitement du mode tabulaire ne sont pas exposées, par


exemple Traiter la défragmentation et Traiter le recalcul. Vous pouvez exécuter ces
fonctions à l'aide de la tâche DDL d'exécution.

3. Certaines options de traitement fournies, par exemple le traitement des index, ne


conviennent pas aux modèles tabulaires et ne doivent pas être utilisées.

4. Les paramètres de lot sont ignorés pour les modèles tabulaires.

Options
Gestionnaire de connexions Analysis Services
Sélectionnez un gestionnaire de connexions Analysis Services existant dans la liste ou
cliquez sur Nouveau pour créer un nouveau gestionnaire de connexions.

Nouveau
Créez un nouveau gestionnaire de connexions Analysis Services.

Rubriques connexes :Analysis Services Connection Manager, Référence de l’interface


utilisateur de la boîte de dialogue Ajout d’un gestionnaire de connexions Analysis
Services

Liste d'objets

Property Description
Property Description

Nom de l’objet Affiche la liste des noms d'objets définis.

Type Affiche la liste des types des objets définis.

Options de Sélectionnez une option de traitement dans la liste.


traitement
Rubriques connexes : Traitement d’un modèle multidimensionnel (Analysis
Services)

Paramètres Affiche la liste des paramètres de traitement des objets définis.

Ajouter
Ajoutez un objet Analysis Services à la liste.

Remove
Sélectionnez un objet et cliquez sur Supprimer.

Analyse d'impact
Analyse l'impact sur l'objet sélectionné.

Rubriques connexes :Boîte de dialogue Analyse d’impact (Analysis Services - Données


multidimensionnelles)

Résumé des paramètres du traitement

Property Description

Ordre de traitement Indique si les objets sont traités séquentiellement ou dans un


traitement. Si le traitement parallèle est utilisé, indique le nombre
d'objets à traiter simultanément.

Mode de transaction Indique le mode de transaction du traitement séquentiel.

Erreurs de la dimension Indique le comportement de la tâche lorsqu'une erreur se produit.

Chemin d'accès du Définit le chemin d'accès du fichier de consignation des erreurs.


journal des erreurs de
clé de dimension

Traiter les objets Indique si les objets dépendants ou affectés sont également traités.
affectés

Modifier les paramètres


Change les options de traitement et la gestion des erreurs dans les clés de dimension.

Rubriques connexes :Boîte de dialogue Changer les paramètres (Analysis Services -


Données multidimensionnelles)
Tâche de téléchargement d’objet blob
Azure
Article • 15/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de téléchargement d’objet blob Azure permet à un package SSIS de


télécharger des fichiers à partir de Stockage Blob Azure.

Pour ajouter une tâche de téléchargement d’objet blob Azure, faites-la glisser sur le
concepteur SSIS, double-cliquez dessus ou cliquez dessus avec le bouton droit, puis
cliquez sur Modifier pour afficher la boîte de dialogue Éditeur de la tâche de
téléchargement d’objet blob Azure .

La tâche de téléchargement d’objets blob Azure est un composant de SQL Server


Integration Services (SSIS) Feature Pack pour Azure.

Le tableau suivant décrit les champs de cette boîte de dialogue.

Champ Description

AzureStorageConnection Spécifiez un gestionnaire de connexions Azure Storage existant


ou créez-en un qui fait référence à un compte Azure Storage et
pointe vers l’emplacement où les fichiers d’objets blob sont
hébergés.

BlobContainer Spécifie le nom du conteneur d’objets blob qui contient les


fichiers d’objets blob à télécharger.

BlobDirectory Spécifie le répertoire d’objets blob qui contient les fichiers


d’objets blob à télécharger. Le répertoire d’objet blob est une
structure hiérarchique virtuelle.

SearchRecursively Spécifie si la recherche doit être récursive dans les sous-


répertoires.

LocalDirectory Spécifie le répertoire local dans lequel les fichiers d’objets blob
téléchargés seront stockés.

FileName Spécifie un filtre de nom pour sélectionner des fichiers obéissant


à un schéma de nom spécifié. Par exemple, MySheet*.xls\*
inclut des fichiers tels que MySheet001.xls et MySheetABC.xlsx .

TimeRangeFrom/TimeRangeTo Spécifie une plage de temps pour appliquer un filtre. Les fichiers
modifiés après TimeRangeFrom et avant TimeRangeTo sont
inclus.
Tâche de chargement d’objets blob
Azure
Article • 15/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de chargement d’objets blob Azure permet à un package SSIS de charger des
fichiers sur Stockage Blob Azure.

Pour ajouter une tâche de chargement d’objets blob Azure, faites-la glisser vers le
concepteur SSIS, double-cliquez dessus ou cliquez dessus avec le bouton droit, puis
cliquez sur Modifier pour afficher la boîte de dialogue de l’Éditeur de tâche de
chargement d’objets blob Azure .

La tâche de chargement d’objets blob Azure est un composant de SQL Server


Integration Services (SSIS) Feature Pack pour Azure.

Le tableau suivant décrit les champs de cette boîte de dialogue.

Champ Description

AzureStorageConnection Spécifiez un gestionnaire de connexions Azure Storage existant


ou créez-en un qui fait référence à un compte Azure Storage et
pointe vers l’emplacement où les fichiers d’objets blob sont
hébergés.

BlobContainer Spécifie le nom du conteneur d’objets blob qui contient les


fichiers chargés en tant qu’objets blob.

BlobDirectory Spécifie le répertoire d’objets blob dans lequel le fichier chargé


est stocké en tant qu’objet blob de bloc. Le répertoire d’objet
blob est une structure hiérarchique virtuelle. Si l’objet blob existe
déjà, il est remplacé.

LocalDirectory Spécifie le répertoire local qui contient les fichiers à charger.

SearchRecursively Spécifiez s’il faut rechercher de manière récursive dans les sous-
répertoires.

FileName Spécifie un filtre de nom pour sélectionner des fichiers obéissant


à un schéma de nom spécifié. Par exemple, MySheet*.xls\*
inclut des fichiers tels que MySheet001.xls et MySheetABC.xlsx .

TimeRangeFrom/TimeRangeTo Spécifie une plage de temps pour appliquer un filtre. Les fichiers
modifiés après TimeRangeFrom et avant TimeRangeTo sont
inclus.
Tâche Azure Data Lake Analytics
Article • 27/10/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous pouvez soumettre des travaux U-SQL au service Azure Data Lake Analytics avec la
tâche Data Lake Analytics. Cette tâche est un composant du pack de fonctionnalités SQL
Server Integration Services (SSIS) pour Azure.

Pour obtenir des informations générales, consultez Azure Data Lake Analytics .

) Important

Azure Data Lake Analytics sera mis hors service le 29 février 2024. Découvrez-en
plus avec cette annonce .

Configurer la tâche
Pour ajouter une tâche Data Lake Analytics à un package, faites-la glisser de la boîte à
outils SSIS à la zone de conception. Ensuite, double-cliquez sur la tâche, ou cliquez avec
le bouton droit sur la tâche et sélectionnez Modifier. La boîte de dialogue Éditeur du
gestionnaire de connexions Azure Data Lake Analytics s’ouvre. Vous pouvez définir les
propriétés par le biais du concepteur SSIS ou par programmation.

Configuration de la page Général


Sur la page Général, configurez la tâche et fournissez le script U-SQL soumis par la
tâche. Pour plus d’informations sur le langage U-SQL, consultez Référence du langage
U-SQL.

Configuration de base
Vous pouvez spécifier le nom et la description de la tâche.

Configuration U-SQL
La configuration U-SQL comporte deux paramètres : SourceType et des options
dynamiques qui dépendent de la valeur SourceType.
SourceType spécifie la source du script U-SQL. Le script est soumis à un compte Data
Lake Analytics pendant l’exécution du package SSIS. Les options de cette propriété
sont :

Valeur Description

DirectInput Spécifie le script U-SQL par le biais de l’éditeur inline. Sélectionnez cette valeur
pour afficher l’option dynamique USQLStatement.

FileConnection Spécifie un fichier .usql local contenant le script U-SQL. Sélectionnez cette
option pour afficher l’option dynamique FileConnection.

Variable Spécifie une variable SSIS contenant le script U-SQL. Sélectionnez cette valeur
pour afficher l'option dynamique SourceVariable.

Options dynamiques SourceType : spécifient le contenu du script pour la requête U-


SQL.

SourceType Options dynamiques

SourceType = Tapez directement la requête U-SQL à envoyer dans la zone des options, ou
DirectInput sélectionnez le bouton Parcourir (…) pour la taper dans la boîte de dialogue
Entrer une requête U-SQL.

SourceType = Sélectionnez un gestionnaire de connexions de fichiers existant ou


FileConnection sélectionnez <Nouvelle connexion…> pour créer une connexion de fichiers.
Pour des informations connexes, consultez : Gestionnaire de connexions de
fichiers et Éditeur du gestionnaire de connexions de fichiers.

SourceType = Sélectionnez une variable existante, ou <Nouvelle variable...> pour en créer


Variable une. Pour des informations connexes, consultez Variables Integration
Services (SSIS) et Ajouter une variable.

Configuration des travaux


La configuration des travaux spécifie les propriétés de soumission des travaux U-SQL.

AzureDataLakeAnalyticsConnection : compte Data Lake Analytics auquel le script


U-SQL est soumis. Choisissez la connexion dans la liste des gestionnaires de
connexions définis. Pour créer une connexion, sélectionnez <Nouvelle
connexion>. Pour des informations connexes, consultez Gestionnaire de
connexions Azure Data Lake Analytics.

JobName : nom du travail U-SQL.

AnalyticsUnits : nombre d’unités analytiques du travail U-SQL.


Priority : priorité du travail U-SQL. Vous pouvez le définir entre 0 et 1000. Plus le
nombre est faible, plus la priorité est haute.

RuntimeVersion : version du runtime Data Lake Analytics du travail U-SQL. Valeur


par défaut : « default ». En général, il n’est pas nécessaire de modifier cette
propriété.

Synchronous : valeur booléenne indiquant si la tâche attend ou non la fin de


l’exécution du travail. Si la valeur est définie sur true, la tâche est marquée en tant
que réussie une fois le travail terminé. Si la valeur est définie sur false, la tâche est
marquée en tant que réussie une fois la phase de préparation du travail terminée.

Valeur Description

True Le résultat de la tâche dépend du résultat de l’exécution du travail U-SQL. Réussite


du travail > la tâche réussit. Échec du travail > la tâche échoue. La tâche réussit ou
échoue > la tâche se termine.

False Le résultat de la tâche dépend du résultat de la soumission et de la préparation du


travail U-SQL. L’envoi du travail réussit et la phase de préparation est franchie > la
tâche réussit. L’envoi du travail échoue ou le travail échoue lors de la phase de
préparation > la tâche échoue. La tâche réussit ou échoue > la tâche se termine.

TimeOut : délai d’attente en secondes de l’exécution du travail. Si le travail expire,


il est annulé et marqué comme ayant échoué. Cette propriété n’est pas disponible
si Synchronous est défini sur false.

Configuration de la page Mappage des


paramètres
Sur la page Mappage des paramètres de la boîte de dialogue Éditeur de tâches Azure
Data Lake Analytics, mappez les variables avec les paramètres (variables U-SQL) dans le
script U-SQL.

Nom de la variable : après avoir ajouté un mappage des paramètres en


sélectionnant Ajouter, sélectionnez un système ou une variable définie par
l’utilisateur dans la liste. Vous pouvez également sélectionner <Nouvelle
variable...> pour ajouter une nouvelle variable avec la boîte de dialogue Ajouter
une Variable. Pour plus d’informations, consultez Variables Integration Services
(SSIS).

Nom du paramètre : nom de paramètre/variable dans le script U-SQL. Vérifiez que


le nom du paramètre commence par le signe @, comme @Param1.
Voici un exemple montrant comment passer des paramètres au script U-SQL.

Exemple de script U-SQL

@searchlog =
EXTRACT UserId int,
Start DateTime,
Region string,
Query string,
Duration int,
Urls string,
ClickedUrls string
FROM @in
USING Extractors.Tsv(nullEscape:"#NULL#");

@rs1 =
SELECT Start, Region, Duration
FROM @searchlog
WHERE Region == "en-gb";

@rs1 =
SELECT Start, Region, Duration
FROM @rs1
WHERE Start <= DateTime.Parse("2012/02/19");

OUTPUT @rs1
TO @out
USING Outputters.Tsv(quoting:false, dateTimeFormat:null);

Notez que les chemins d’accès d’entrée et de sortie sont définis dans les paramètres
@in et @out. Les valeurs des paramètres @in et @out dans le script U-SQL sont
passées dynamiquement par la configuration du mappage des paramètres.

Nom de la variable Nom du paramètre

User: Variable1 @in

User: Variable2 @out

Configuration de la page Expression


Vous pouvez attribuer toutes les propriétés dans la configuration de la page Général
comme expression de propriété pour permettre une mise à jour dynamique de la
propriété lors de l’exécution. Pour des informations connexes, consultez Expressions de
propriété dans des packages.
Voir aussi
Gestionnaire de connexions Azure Data Lake Analytics
Tâche du système de fichiers Azure Data Lake Store
Gestionnaire de connexions Azure Data Lake Store

Commentaires
Cette page a-t-elle été utile ?  Yes  No

Indiquer des commentaires sur le produit | Obtenir de l’aide sur Microsoft Q&A
Système de fichiers Azure Data Lake
Store, tâche
Article • 15/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de système de fichiers Azure Data Lake Store permet aux utilisateurs d’effectuer
diverses opérations de système de fichiers sur Azure Data Lake Store (ADLS) .

La tâche de système de fichiers Azure Data Lake Store est un composant de SQL Server
Integration Services (SSIS) Feature Pack pour Azure.

Configurer la tâche de système de fichiers


Azure Data Lake Store
Pour ajouter une tâche de système de fichiers Azure Data Lake Store à un package,
faites-la glisser depuis la boîte à outils SSIS vers la zone de conception. Double-cliquez
ensuite sur la tâche, ou cliquez avec le bouton droit sur la tâche et sélectionnez
Modifier, pour ouvrir la boîte de dialogue Éditeur de tâches du système de fichiers
Azure Data Lake Store.

La propriété Opération indique l’opération de système de fichiers à réaliser.


Sélectionnez l’une des opérations suivantes :

CopyToADLS : charger des fichiers dans ADLS.


CopyFromADLS : télécharger des fichiers depuis ADLS.

Configurer les propriétés de l’opération


Pour toute opération, vous devez spécifier un gestionnaire de connexions Azure Data
Lake.

Voici les propriétés spécifiques à chaque opération :

CopyToADLS
LocalDirectory : spécifie le répertoire source local qui contient les fichiers à
charger.
FileNamePattern : spécifie un filtre de nom de fichier pour les fichiers sources.
Seuls les fichiers dont le nom correspond au modèle spécifié sont chargés. Les
caractères génériques * et ? sont pris en charge.
SearchRecursively : indique si des fichiers à charger doivent être recherchés de
manière récursive dans le répertoire source.
AzureDataLakeDirectory : spécifie le répertoire de destination ADLS dans lequel
charger les fichiers.
FileExpiry : spécifie une date et une heure d’expiration pour les fichiers chargés
dans ADLS. Laissez cette propriété vide pour indiquer que les fichiers n’expirent
jamais.

CopyFromADLS
AzureDataLakeDirectory : spécifie le répertoire source ADLS qui contient les
fichiers à télécharger.
SearchRecursively : indique si des fichiers à télécharger doivent être recherchés de
manière récursive dans le répertoire source.
LocalDirectory : spécifie le répertoire de destination dans lequel stocker les fichiers
téléchargés.
Tâche de création d’un cluster Azure
HDInsight
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de création de cluster Azure HDInsight permet à un package SSIS de créer un


cluster Azure HDInsight dans le groupe de ressources et l’abonnement Azure spécifiés.

La tâche de création de cluster Azure HDInsight est un composant de SQL Server


Integration Services (SSIS) Feature Pack pour Azure.

7 Notes

La création d’un cluster HDInsight peut prendre 10 à 20 minutes.


Il existe un coût associé à la création et à l’exécution d’un cluster Azure
HDInsight. Pour plus d’informations, consultez Tarification HDInsight .

Pour ajouter une tâche de création de cluster Azure HDInsight, faites-la glisser sur le
concepteur SSIS, double-cliquez dessus ou cliquez dessus avec le bouton droit, puis
cliquez sur Modifier pour afficher la boîte de dialogue Éditeur de la tâche de création
de cluster Azure HDInsight .

Le tableau suivant décrit les champs de cette boîte de dialogue.

Champ Description

AzureResourceManagerConnection Sélectionnez un gestionnaire de connexions Azure Resource


Manager existant ou créez-en un qui sera utilisé pour créer
le cluster HDInsight.

AzureStorageConnection Sélectionnez un gestionnaire de connexions Azure Storage


existant ou créez-en un nouveau qui fait référence à un
compte Azure Storage qui sera associé au cluster HDInsight.

SubscriptionId Spécifiez l’ID de l’abonnement dans lequel le cluster


HDInsight sera créé.

ResourceGroup Spécifiez le groupe de ressources Azure dans lequel le


cluster HDInsight sera créé.
Champ Description

Emplacement Spécifiez l’emplacement du cluster HDInsight. Le cluster


doit être créé au même emplacement que le compte de
stockage Azure spécifié.

ClusterName Spécifiez un nom pour le cluster HDInsight à créer.

clusterSize Spécifiez le nombre de nœuds à créer dans le cluster.

BlobContainer Spécifiez le nom du conteneur de stockage par défaut à


associer au cluster HDInsight.

UserName Spécifiez le nom d’utilisateur à utiliser pour la connexion au


cluster HDInsight.

Mot de passe Spécifiez le mot de passe à utiliser pour la connexion au


cluster HDInsight.

SshUserName Spécifiez le nom d’utilisateur utilisé pour accéder à distance


au cluster HDInsight à l’aide de SSH.

SshPassword Spécifiez le mot de passe utilisé pour accéder à distance au


cluster HDInsight à l’aide de SSH.

FailIfExists Spécifiez si la tâche doit échouer si le cluster existe déjà.

7 Notes

L’emplacement du cluster HDInsight et celui du compte de stockage Azure doivent


être identiques.
Tâche Supprimer un cluster Azure
HDInsight
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche Supprimer un cluster Azure HDInsight permet à un package SSIS de supprimer


un cluster Azure HDInsight dans l’abonnement et le groupe de ressources Azure
spécifiés.

La tâche Supprimer un cluster Azure HDInsight est un composant de SQL Server


Integration Services (SSIS) Feature Pack pour Azure.

7 Notes

La suppression d’un cluster HDInsight peut prendre 10 à 20 minutes.

Pour ajouter une tâche de suppression de cluster Azure HDInsight, faites-la glisser sur
le concepteur SSIS, double-cliquez dessus ou cliquez dessus avec le bouton droit, puis
cliquez sur Modifier pour afficher la boîte de dialogue Éditeur de la tâche de
suppression de cluster Azure HDInsight .

Le tableau suivant décrit les champs de cette boîte de dialogue.

Champ Description

AzureResourceManagerConnection Sélectionnez un gestionnaire de connexions Azure Resource


Manager existant ou créez-en un qui sera utilisé pour
supprimer le cluster HDInsight.

SubscriptionId Spécifiez l’ID de l’abonnement du cluster HDInsight.

ResourceGroup Spécifiez le groupe de ressources Azure du cluster


HDInsight.

ClusterName Spécifiez le nom du cluster à supprimer.

FailIfNotExists Spécifiez si la tâche doit échouer si le cluster n’existe pas.


Tâche Hive Azure HDInsight
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la tâche Hive Azure HDInsight pour exécuter un script Hive sur un cluster Azure
HDInsight.

Pour ajouter une tâche Hive Azure HDInsight, faites-la glisser sur le concepteur SSIS,
double-cliquez dessus ou cliquez dessus avec le bouton droit, puis cliquez sur Modifier
pour afficher la boîte de dialogue Éditeur de tâches Hive Azure HDInsight .

La tâche Hive Azure HDInsight est un composant de SQL Server Integration Services
(SSIS) Feature Pack pour Azure.

La liste suivante décrit les champs de cette boîte de dialogue.

1. Dans le champ HDInsightConnection, sélectionnez un gestionnaire de connexions


Azure HDInsight existant ou créez-en un qui fait référence au cluster Azure
HDInsight utilisé pour exécuter le script.

2. Dans le champ AzureStorageConnection, sélectionnez un gestionnaire de


connexions Stockage Azure existant ou créez-en un qui fait référence au compte
Stockage Azure associé au cluster. Celui-ci est nécessaire uniquement si vous
souhaitez télécharger les journaux de sortie d’exécution de script et les journaux
d’erreurs.

3. Dans le champ BlobContainer, spécifiez le nom du conteneur de stockage associé


au cluster. Celui-ci est nécessaire uniquement si vous souhaitez télécharger les
journaux de sortie d’exécution de script et les journaux d’erreurs.

4. Dans le champ LocalLogFolder, spécifiez le dossier dans lequel seront téléchargés


les journaux de sortie d’exécution de script et les journaux d’erreurs. Celui-ci est
nécessaire uniquement si vous souhaitez télécharger les journaux de sortie
d’exécution de script et les journaux d’erreurs.

5. Deux méthodes permettent de spécifier le script Hive à exécuter :

a. Script en ligne : renseignez le champ Script en tapant en ligne le script à


exécuter dans la boîte de dialogue Entrer le script.

b. Fichier de script : téléchargez le fichier de script dans Stockage Blob Azure et


renseignez le champ BlobName. Si l’objet blob ne se trouve pas dans le compte
ou le conteneur de stockage par défaut associé au cluster HDInsight, vous
devez renseigner les champs ExternalStorageAccountName et
ExternalBlobContainer. Dans le cas d’un objet blob externe, assurez-vous qu’il
est configuré comme étant accessible au public.

Si les deux sont spécifiés, le fichier de script est utilisé et le script en ligne est
ignoré.
Tâche Pig Azure HDInsight
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la tâche Pig Azure HDInsight pour exécuter un script Pig sur un cluster Azure
HDInsight.

Pour ajouter une tâche Pig Azure HDInsight, faites-la glisser sur le concepteur SSIS,
double-cliquez dessus ou cliquez dessus avec le bouton droit, puis cliquez sur Modifier
pour afficher la boîte de dialogue Éditeur de tâches Pig Azure HDInsight .

La tâche Pig Azure HDInsight est un composant de SQL Server Integration Services
(SSIS) Feature Pack pour Azure.

La liste suivante décrit les champs de cette boîte de dialogue.

1. Dans le champ HDInsightConnection, sélectionnez un gestionnaire de connexions


Azure HDInsight existant ou créez-en un qui fait référence au cluster Azure
HDInsight utilisé pour exécuter le script.

2. Dans le champ AzureStorageConnection, sélectionnez un gestionnaire de


connexions Stockage Azure existant ou créez-en un qui fait référence au compte
Stockage Azure associé au cluster. Celui-ci est nécessaire uniquement si vous
souhaitez télécharger les journaux de sortie d’exécution de script et les journaux
d’erreurs.

3. Dans le champ BlobContainer, spécifiez le nom du conteneur de stockage associé


au cluster. Celui-ci est nécessaire uniquement si vous souhaitez télécharger les
journaux de sortie d’exécution de script et les journaux d’erreurs.

4. Dans le champ LocalLogFolder, spécifiez le dossier dans lequel seront téléchargés


les journaux de sortie d’exécution de script et les journaux d’erreurs. Celui-ci est
nécessaire uniquement si vous souhaitez télécharger les journaux de sortie
d’exécution de script et les journaux d’erreurs.

5. Deux méthodes permettent de spécifier le script Pig à exécuter :

a. Script en ligne : renseignez le champ Script en tapant en ligne le script à


exécuter dans la boîte de dialogue Entrer le script.

b. Fichier de script : téléchargez le fichier de script dans Stockage Blob Azure et


renseignez le champ BlobName. Si l’objet blob ne se trouve pas dans le compte
ou le conteneur de stockage par défaut associé au cluster HDInsight, vous
devez renseigner les champs ExternalStorageAccountName et
ExternalBlobContainer. Dans le cas d’un objet blob externe, assurez-vous qu’il
est configuré comme étant accessible au public.

Si les deux sont spécifiés, le fichier de script est utilisé et le script en ligne est
ignoré.
Tâche Azure Synapse Analytics
Article • 15/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche Azure Synapse Analytics permet à un package SSIS de copier des données
tabulaires dans un pool SQL dédié Azure Synapse Analytics à partir du système de
fichiers ou du Stockage Blob Azure. Elle s’appuie sur PolyBase pour améliorer les
performances (cf. article Stratégies et modèles de chargement Azure Synapse Analytics).
Le format de fichier de données source pris en charge actuellement est le texte délimité
dans l’encodage UTF-8. Les données copiées à partir du système de fichiers sont
d’abord chargées dans le Stockage Blob Azure pour la préproduction, puis dans un pool
SQL dédié. Un compte de Stockage Blob Azure est donc nécessaire.

7 Notes

Le gestionnaire de connexions de stockage Azure avec le type de service Data Lake


Gen2 n’est pas pris en charge.

Si vous souhaitez utiliser Azure Data Lake Gen2 pour la gestion intermédiaire ou la
source, vous pouvez vous connecter via le gestionnaire de connexions de Stokage
Azure avec le type Stockage Blob Azure.

La tâche Azure Synapse Analytics est un composant de SQL Server Integration Services
(SSIS) Feature Pack pour Azure.

Pour ajouter une tâche Azure Synapse Analytics, faites-la glisser de la boîte à outils SSIS
vers le canevas du concepteur, double-cliquez dessus ou cliquez dessus avec le bouton
droit, puis cliquez sur Modifier pour afficher la boîte de dialogue de l’éditeur de tâche.

Dans la page Général , configurez les propriétés suivantes.

SourceType spécifie le type de magasin de données source. Sélectionnez l’un des types
suivants :

FileSystem : les données sources se trouvent dans le système de fichiers local.


BlobStorage : les données sources se trouvent dans le Stockage Blob Azure.

Voici les propriétés de chaque type de source.

FileSystem
Champ Description

LocalDirectory Spécifie le répertoire local qui contient les fichiers de données à


charger.

Recursively Spécifie s’il convient d’effectuer des recherches de façon récursive


dans les sous-répertoires.

FileName Indique un filtre de nom pour sélectionner des fichiers dont le nom
répond à certains critères. Par exemple, MaFeuille*.xsl* inclut les
fichiers MaFeuille001.xsl et MaFeuilleABC.xslx.

RowDelimiter Spécifie le ou les caractères qui marquent la fin de chaque ligne.

ColumnDelimiter Spécifie un ou plusieurs caractères qui marquent la fin de chaque


colonne. Par exemple, | (barre verticale), \t (tabulation), ’ (apostrophe),
“ (guillemets doubles) et 0x5c (barre oblique inverse).

IsFirstRowHeader Spécifie si la première ligne de chaque fichier de données contient les


noms de colonne au lieu des données réelles.

AzureStorageConnection Spécifie un gestionnaire de connexions de stockage Azure.

BlobContainer Spécifie le nom du conteneur d’objets blob dans lequel les données
locales seront chargées et relayées sur un pool SQL dédié Azure
Synapse Analytics via PolyBase. Un conteneur sera créé s’il n’existe pas.

BlobDirectory Spécifie le répertoire d’objets blob (structure hiérarchique virtuelle)


dans lequel les données locales seront chargées et relayées sur un
pool SQL dédié Azure Synapse Analytics via PolyBase.

RetainFiles Spécifie s’il convient de conserver les fichiers chargés sur le stockage
Azure.

CompressionType Spécifie le format de compression à utiliser lors du chargement de


fichiers sur le stockage Azure. La source locale n’est pas affectée.

CompressionLevel Spécifie le niveau de compression à utiliser pour le format de


compression.

SqlPoolConnection Spécifie un gestionnaire de connexions ADO.NET pour le pool SQL


dédié Azure Synapse Analytics.

TableName Spécifie le nom de la table de destination. Choisissez un nom de table


existant ou créez-en un en choisissant <Nouvelle table ...>.

TableDistribution Spécifie la méthode de distribution pour la nouvelle table. S’applique


si un nouveau nom de table est spécifié pour TableName.

HashColumnName Spécifie la colonne utilisée pour la distribution de table de hachage.


S’applique si la valeur HASH est spécifiée pour TableDistribution.
BlobStorage

Champ Description

AzureStorageConnection Spécifie un gestionnaire de connexions de stockage Azure.

BlobContainer Spécifie le nom de conteneur blob où se trouvent les données


sources.

BlobDirectory Spécifie le répertoire blob (structure hiérarchique virtuelle) où se


trouvent les données sources.

RowDelimiter Spécifie le ou les caractères qui marquent la fin de chaque ligne.

ColumnDelimiter Spécifie un ou plusieurs caractères qui marquent la fin de chaque


colonne. Par exemple, | (barre verticale), \t (tabulation), ’ (apostrophe),
“ (guillemets doubles) et 0x5c (barre oblique inverse).

CompressionType Spécifie le format de compression utilisé pour les données sources.

SqlPoolConnection Spécifie un gestionnaire de connexions ADO.NET pour le pool SQL


dédié Azure Synapse Analytics.

TableName Spécifie le nom de la table de destination. Choisissez un nom de table


existant ou créez-en un en choisissant <Nouvelle table ...>.

TableDistribution Spécifie la méthode de distribution pour la nouvelle table. S’applique


si un nouveau nom de table est spécifié pour TableName.

HashColumnName Spécifie la colonne utilisée pour la distribution de table de hachage.


S’applique si la valeur HASH est spécifiée pour TableDistribution.

La page Mappages sera différente selon que les données sont copiées sur une nouvelle
table ou sur une table existante. Dans le premier cas, configurez les colonnes sources à
mapper et les noms correspondants dans la table de destination à créer. Dans le second
cas, configurez les relations de mappage entre les colonnes sources et de destination.

Dans la page Colonnes , configurez les propriétés de type de données pour chaque
colonne source.

La page T-SQL affiche le code T-SQL utilisé pour charger des données entre le Stockage
Blob Azure et le pool SQL dédié. Le T-SQL est généré automatiquement à partir des
configurations sur les autres pages et sera exécuté dans le cadre de l’exécution de la
tâche. Vous pouvez choisir de modifier manuellement le T-SQL généré pour répondre à
vos besoins spécifiques en cliquant sur le bouton Modifier . Vous pouvez revenir à celui
qui a été généré automatiquement par la suite en cliquant sur le bouton Réinitialiser .
Tâche de fichier flexible
Article • 15/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Flexible File Task permet aux utilisateurs d’effectuer des opérations de fichiers sur divers
services de stockage pris en charge. Les services de stockage actuellement pris en
charge sont :

Système de fichiers local


Stockage Blob Azure
Azure Data Lake Storage Gen2

Flexible File Task est un composant du Feature Pack SQL Server Integration Services
(SSIS) pour Azure.

Pour ajouter une tâche Flexible File Task à un package, faites-la glisser de la boîte à
outils SSIS vers la zone de conception. Ensuite, double-cliquez sur la tâche, ou cliquez
dessus avec le bouton droit et sélectionnez Modifier, pour ouvrir la boîte de dialogue
Flexible File Task Editor.

La propriété Operation indique l’opération de fichier à réaliser. Les opérations


actuellement prises en charge sont les suivantes :

Opération Copy
Opération Delete

Pour l’opération Copy, les propriétés suivantes sont disponibles.

SourceConnectionType : spécifie le type de gestionnaire de connexions source.


SourceConnection : spécifie le gestionnaire de connexions source.
SourceFolderPath : spécifie le chemin du dossier source.
SourceFileName : spécifie le nom du fichier source. Si ce champ est vide, le dossier
source sera copié. Les caractères génériques suivants sont autorisés dans le nom
du fichier source : * (représente zéro ou plusieurs caractères), ? (représente zéro
ou un caractère) et ^ (caractère d’échappement).
SearchRecursively : spécifie s’il faut copier les sous-dossiers de manière récursive.
DestinationConnectionType : spécifie le type de gestionnaire de connexions de
destination.
DestinationConnection : spécifie le gestionnaire de connexions de destination.
DestinationFolderPath : spécifie le chemin du dossier de destination.
DestinationFileName : spécifie le nom du fichier de destination. Si ce champ est
vide, les noms des fichiers sources sont utilisés.

Pour l’opération Delete, les propriétés suivantes sont disponibles.

ConnectionType : Spécifie le type de gestionnaire de connexions.


Connection : Spécifie le gestionnaire de connexions.
FolderPath : Spécifie le chemin du dossier.
FileName : Spécifie le nom du fichier. Si ce champ est vide, le dossier sera
supprimé. Pour le Stockage Blob Azure, la suppression de dossier n’est pas prise en
charge. Les caractères génériques suivants sont autorisés dans le nom du fichier :
* (représente zéro ou plusieurs caractères), ? (représente zéro ou un caractère) et

^ (caractère d’échappement).

DeleteRecursively : spécifie s’il faut supprimer les fichiers de manière récursive.

Remarques sur la configuration des autorisations du principal de service

Pour que la connexion de test fonctionne (soit le stockage d’objets blob, soit Data Lake
Storage Gen2), le principal de service doit disposer au moins du rôle Lecteur des
données Blob du stockage pour le compte de stockage. Cette opération s’effectue à
l’aide de RBAC.

Pour le stockage d’objets blob, des autorisations de lecture et d’écriture sont accordées
en affectant au moins les rôles Lecteur des données Blob du stockage et Contributeur
aux données Blob du stockage, respectivement.

Pour Data Lake Storage Gen2, l’autorisation est déterminée à la fois par RBAC et par des
listes des contrôles d’accès (ACL). Faites attention à ce que les listes de contrôle d’accès
soient configurées à l’aide de l’ID d’objet (OID) du principal de service pour l’inscription
d’application, comme indiqué ici. Cet ID diffère de l’ID d’application (client) utilisé avec
la configuration RBAC. Quand un principal de sécurité reçoit des autorisations sur les
données RBAC par le biais d’un rôle intégré ou personnalisé, ces autorisations sont
évaluées en premier lors de l’autorisation d’une demande. Si l’opération demandée est
autorisée par les attributions RBAC du principal de sécurité, l’autorisation est
immédiatement résolue et aucune vérification de liste de contrôle d’accès
supplémentaire n’est effectuée. Sinon, si le principal de sécurité n’a pas d’attribution
RBAC ou si l’opération de la demande ne correspond pas à l’autorisation affectée, les
vérifications de liste de contrôle d’accès sont effectuées pour déterminer si le principal
de sécurité est autorisé à effectuer l’opération demandée.

Pour l’autorisation de lecture, accordez au moins l’autorisation d’Exécution à partir


du système de fichiers source, ainsi que l’autorisation de Lecture pour les fichiers à
copier. Vous pouvez également accorder au moins le rôle Lecteur des données
Blob du stockage avec RBAC.
Pour l’autorisation d’écriture, accordez au moins l’autorisation d’Exécution à partir
du système de fichiers récepteur, ainsi que l’autorisation d’Écriture pour le dossier
récepteur. Vous pouvez également accorder au moins le rôle Contributeur aux
données Blob du stockage avec RBAC.

Pour plus d’informations, consultez cet article.


Tâche Sauvegarder la base de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche Sauvegarder la base de données effectue différents types de sauvegardes de


base de données SQL Server . Pour plus d’informations, consultez Sauvegarder et
restaurer des bases de données SQL Server.

La tâche Sauvegarder la base de données permet à un package de sauvegarder une ou


plusieurs bases de données. Si la tâche ne sauvegarde qu'une seule base de données,
vous pouvez choisir le composant de sauvegarde : la base de données ou ses fichiers et
groupes de fichiers.

Modes de récupération et types de sauvegarde


pris en charge
Le tableau suivant décrit les modes de récupération et les types de sauvegarde pris en
charge par la tâche Sauvegarder la base de données.

mode de Base de Base de données Journal des Fichier ou


récupération données différentielle transactions différentielle de
fichiers

Simple Obligatoire Facultatif Non pris en Non pris en charge


charge

Complète Obligatoire Facultatif Obligatoire Facultatif

Bulk-logged Obligatoire Facultatif Obligatoire Facultatif

La tâche Sauvegarder la base de données encapsule une instruction Transact-SQL


BACKUP. Pour plus d’informations, consultez BACKUP (Transact-SQL).

Configuration de la tâche Sauvegarder la base


de données
Vous pouvez définir les propriétés par le biais du concepteur SSIS . Cette tâche se trouve
dans la section Tâches du plan de maintenance de la boîte à outils du concepteur SSIS .
Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Tâche Sauvegarder la base de données (Plan de maintenance)

Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur


tâche d'insertion en bloc
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche d'insertion en bloc est un moyen efficace pour copier de gros volumes de
données dans une table ou une vue SQL Server . Par exemple, supposons que votre
entreprise stocke la liste de ses produits d’un million de lignes sur un mainframe, mais
que son système d’e-commerce utilise SQL Server pour fournir des données à des pages
web. Vous devez mettre à jour la table des produits SQL Server toutes les nuits, à l'aide
de la liste principale des produits depuis le gros ordinateur. Pour mettre à jour la table,
vous enregistrez la liste des produits dans un fichier au format délimité par des
tabulations, puis vous utilisez la tâche d'insertion en bloc pour copier les données
directement dans la table SQL Server .

Pour garantir une copie de données à haute vitesse, les transformations ne peuvent
s'effectuer sur les données lors de leur déplacement entre le fichier source et la table ou
la vue.

Considérations sur l'utilisation


Avant d'utiliser la tâche d'insertion en bloc, tenez compte des éléments suivants :

La tâche d'insertion en bloc ne peut transférer des données que depuis un fichier
texte vers une table ou une vue SQL Server . Pour utiliser la tâche d’insertion en
bloc afin de transférer des données depuis d’autres systèmes de gestion de base
de données (SGBD), vous devez exporter les données de la source vers un fichier
texte, puis les importer depuis celui-ci vers une table ou une vue SQL Server .

La destination doit être une table ou une vue d'une base de données SQL Server .
Si la table ou la vue de destination contient déjà des données, les nouvelles
données sont ajoutées à la table existante lors de l'exécution de la tâche
d'insertion en bloc. Si vous souhaitez remplacer les données, avant de lancer la
tâche d'insertion en bloc, utilisez une tâche d'exécution SQL qui applique une
instruction DELETE ou TRUNCATE. Pour plus d'informations, consultez Execute SQL
Task.

Vous pouvez utiliser un fichier de format dans l'objet tâche d'insertion en bloc. Si
vous avez créé un fichier de format à l'aide de l'utilitaire bcp , vous pouvez
spécifier son chemin d'accès dans la tâche d'insertion en bloc. La tâche d'insertion
en bloc prend en charge les fichiers de format XML et non-XML. Pour plus
d’informations sur les fichiers de format, consultez Fichiers de format pour
l’importation ou l’exportation de données (SQL Server).

Seuls les membres du rôle serveur fixe sysadmin peuvent exécuter un package
contenant une tâche d'insertion en bloc.

Tâche d'insertion en bloc avec des transactions


Si aucune taille de traitement n'est définie, la copie par bloc complète est traitée comme
une transaction. Une taille de traitement égale à 0 indique que les données sont
insérées en un seul traitement. Si une taille de traitement est définie, chaque traitement
représente une transaction validée à la fin de l'exécution de ce traitement.

Le fait que la tâche d'insertion en bloc se joigne ou non à la transaction sur package
détermine son comportement vis-à-vis des transactions de package. Si la tâche
d'insertion en bloc ne se joint pas à la transaction de package, chaque traitement
exempt d'erreurs est validé comme une unité, avant que le traitement suivant soit traité.
Si la tâche d'insertion en bloc se joint à la transaction de package, les traitements
d'instructions exempts d'erreurs restent dans la transaction à la fin de la tâche. Ces
traitements sont soumis à la validation ou à l'annulation du package.

Un échec de la tâche d'insertion en bloc ne provoque pas automatiquement l'annulation


des traitements correctement chargés ; de même, si la tâche réussit, les traitements ne
sont pas automatiquement validés. La validation et l'annulation ne se produisent qu'en
fonction des paramètres de propriétés du package et du flux de travail.

Source et destination
Lorsque vous spécifiez l'emplacement du fichier texte source, tenez compte des
éléments suivants :

Le serveur doit être autorisé à accéder au fichier et à la base de données de


destination.

Le serveur exécute la tâche d'insertion en bloc. Par conséquent, tout fichier de


format utilisé par la tâche doit se trouver sur le serveur.

Le fichier source chargé par la tâche d'insertion en bloc peut se trouver sur un
serveur distant ou sur le même serveur que la base de données SQL Server dans
laquelle les données sont insérées. Si le fichier se situe sur un serveur distant, vous
devez spécifier son nom en indiquant le nom UNC (Universal Naming Convention)
dans le chemin d'accès.
Optimisation des performances
Pour optimiser les performances, tenez compte des éléments suivants :

Si le fichier texte est situé sur le même ordinateur que la base de données SQL
Server dans laquelle les données sont insérées, la copie a lieu à une vitesse plus
rapide puisque les données n'ont pas à transiter par le réseau.

La tâche d'insertion en bloc n'enregistre pas les lignes à l'origine d'erreurs. Si vous
devez capturer ces informations, utilisez les sorties d'erreur des composants de flux
de données afin de récupérer dans un fichier d'exception les lignes à l'origine des
erreurs.

Entrées de journal personnalisées disponibles


dans la tâche d'insertion en bloc
Le tableau suivant répertorie les entrées de journal personnalisées de la tâche
d'insertion en bloc. Pour plus d’informations, consultez Journalisation d’Integration
Services (SSIS).

Entrée du journal Description

BulkInsertTaskBegin Indique que l'insertion en bloc a commencé.

BulkInsertTaskEnd Indique que l'insertion en bloc est terminée.

BulkInsertTaskInfos Fournit des informations détaillées concernant la tâche.

Configuration de la tâche d'insertion en bloc


Vous pouvez configurer la tâche d'insertion en bloc comme suit :

Spécifiez le gestionnaire de connexions OLE DB à utiliser pour établir la connexion


à la base de données SQL Server de destination et la table ou vue dans laquelle les
données sont insérées. La tâche d'insertion en bloc prend uniquement en charge
les connexions OLE DB de la base de données de destination.

Indiquez le gestionnaire de connexions de fichiers ou de fichiers plats pour accéder


au fichier source. La tâche d'insertion en bloc utilise le gestionnaire de connexions
uniquement pour l'emplacement du fichier source. La tâche ignore les autres
options que vous sélectionnez dans l'éditeur de gestionnaire de connexions.
Définissez le format adopté par la tâche d'insertion en bloc, soit en utilisant un
fichier de format, soit en configurant les séparateurs de colonnes et de lignes des
données source. Si vous utilisez un fichier de format, indiquez le gestionnaire de
connexions de fichiers permettant d'y accéder.

Spécifiez les actions à réaliser dans la table ou la vue de destination au moment où


la tâche insère les données. Les options comprennent la vérification éventuelle des
contraintes, l'activation des insertions d'identité, la conservation des valeurs NULL,
l'exécution des déclencheurs ou le verrouillage de la table.

Indiquez les informations relatives au traitement de données à insérer, telles que la


taille du traitement, les première et dernière lignes à insérer depuis le fichier, le
nombre d'erreurs d'insertion pouvant se produire avant que la tâche arrête
d'insérer des lignes et les noms des colonnes à trier.

Si la tâche d'insertion en bloc se sert d'un gestionnaire de connexions de fichiers plats


pour accéder au fichier source, elle n'utilise pas le format spécifié dans ce gestionnaire.
Elle utilise à la place le format spécifié dans un fichier de format, ou les valeurs des
propriétés RowDelimiter et ColumnDelimiter de la tâche.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Page Expressions

Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Configuration par programme de la tâche d'insertion en


bloc
Pour plus d'informations sur la définition par programme de ces propriétés, cliquez sur
la rubrique suivante :

BulkInsertTask

Tâches associées
Définir les propriétés d'une tâche ou d'un conteneur

Contenu associé
Article technique, You may get "Unable to prepare the SSIS bulk insert for data
insertion" error on UAC enabled systems , sur support.microsoft.com.

Article technique, Guide des performances de chargement des données, sur le site
msdn.microsoft.com.

Article technique, Using SQL Server Integration Services to Bulk Load Data , sur le
site simple-talk.com.

Éditeur de tâche d'insertion en bloc (page


Connexion)
Utilisez la page Connexion de la boîte de dialogue Éditeur de tâche d'insertion en bloc
pour définir la source et la destination de l'opération d'insertion en bloc et le format à
utiliser.

Pour en savoir plus sur l’utilisation des insertions en bloc, consultez Tâche d’insertion en
bloc et Fichiers de format pour l’importation ou l’exportation de données (SQL Server).

Options
Connection
Sélectionnez un gestionnaire de connexions OLE DB dans la liste ou cliquez sur
<Nouvelle connexion...> pour créer une connexion.

Rubriques connexes :Gestionnaire de connexions OLE DB

Table de destination
Tapez le nom de la table de destination ou affichez ou sélectionnez une table ou une
vue dans la liste.

Format
Sélectionnez la source du format de l'insertion en bloc. Cette propriété dispose des
options répertoriées dans le tableau suivant.

Valeur Description
Valeur Description

Utiliser un Sélectionnez un fichier contenant la spécification de format. Cette option affiche


fichier l'option dynamique FormatFile.

Spécifier Spécifiez le format. Cette option affiche les options dynamiques RowDelimiter et
ColumnDelimiter.

File
Sélectionnez un gestionnaire de connexions de fichier ou de fichier plat dans la liste, ou
cliquez sur <Nouvelle connexion...> pour créer une connexion.

L'emplacement du fichier dépend du moteur de base de données SQL Server spécifié


dans le gestionnaire de connexions pour cette tâche. Le fichier texte doit être accessible
au moteur de base de données SQL Server situé sur un disque dur local du serveur ou
via un partage ou un lecteur mappé à SQL Server. Le fichier n'est pas accessible au
runtime SSIS.

Si vous accédez au fichier source en utilisant un gestionnaire de connexions de fichiers


plats, la tâche d'insertion en bloc n'utilise pas le format défini dans le gestionnaire de
connexions de fichiers plats. Elle utilise à la place le format spécifié dans un fichier de
format, ou les valeurs des propriétés RowDelimiter et ColumnDelimiter de la tâche.

Rubriques connexes :Gestionnaire de connexions de fichiers, Gestionnaire de


connexions de fichiers plats

Actualiser les tables


Actualise la liste des tables et des vues.

Options dynamiques de format

Format = Utiliser un fichier


FormatFile
Tapez le chemin du fichier de format ou cliquez sur le bouton avec des points de
suspension (...) pour rechercher le fichier de format.

Format = Spécifier
RowDelimiter
Spécifiez le délimiteur de ligne dans le fichier source. La valeur par défaut est {CR}{LF} .
ColumnDelimiter
Spécifiez le délimiteur de colonne dans le fichier source. La valeur par défaut est Tab.

Éditeur de tâche d'insertion en bloc (page


Général)
Utilisez la page Général de la boîte de dialogue Éditeur de tâche d'insertion en bloc
afin d'attribuer un nom et décrire la tâche d'insertion en bloc.

Options
Nom
Permet d'attribuer un nom unique à la tâche d'insertion en bloc. Ce nom sert d'étiquette
à l'icône de la tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Permet de fournir une description à la tâche d'insertion en bloc.

Éditeur de tâche d'insertion en bloc (page


Options)
Utilisez la page Options de la boîte de dialogue Éditeur de tâche d'insertion en bloc
afin de définir les propriétés de l'opération d'insertion en bloc. La tâche d’insertion en
bloc copie des volumes importants de données dans une table ou une vue Microsoft
SQL Server.

Pour en savoir plus sur l’utilisation des insertions en bloc, consultez Tâche d’insertion en
bloc et BULK INSERT (Transact-SQL).

Options
CodePage
Permet d'indiquer la page de codes des données dans le fichier de données.
DataFileType
Permet d'indiquer la valeur correspondant au type de données à utiliser lors d'une
opération de chargement.

BatchSize
Permet d'indiquer le nombre de lignes contenues dans un traitement. La valeur par
défaut correspond à la totalité du fichier de données. Si vous attribuez à BatchSize la
valeur zéro, les données sont chargées dans un traitement unique.

LastRow
Permet de spécifier la dernière ligne à copier.

FirstRow
Permet de spécifier la première ligne à partir de laquelle la copie doit commencer.

Options

Terme Définition

Contraintes de Permet de vérifier les contraintes s'appliquant à la table et aux colonnes.


validation

Conserver les Permet de conserver les valeurs Null pendant l'opération d'insertion en bloc au
valeurs NULL lieu d'insérer des valeurs par défaut dans les colonnes vides.

Activer Permet d'insérer des valeurs existantes dans une colonne d'identité.
l’insertion
d’identité

Verrou de Permet de verrouiller la table lors de l'opération d'insertion en bloc.


table

Exécuter les Lance tout déclencheur d'insertion, de mise à jour ou de suppression sur la
déclencheurs table.

SortedData
Implique l'ajout de la clause ORDER BY dans l'instruction d'insertion en bloc. Le nom de
colonne que vous fournissez doit être celui d'une colonne valide pour la table de
destination. La valeur par défaut est false. En d'autres termes, les données ne sont pas
triées par une clause ORDER BY.

MaxErrors
Permet de spécifier le nombre maximal d'erreurs tolérées avant l'annulation de
l'opération d'insertion en bloc. La valeur 0 indique qu'un nombre illimité d'erreurs est
autorisé.
7 Notes

Chaque ligne ne pouvant pas être importée par l'opération de chargement en


masse est comptée comme une erreur.
Tâche de contrôle de capture de
données modifiées
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de contrôle de capture de données modifiées permet de contrôler le cycle de


vie des packages de capture de données modifiées. Elle gère la synchronisation des
package de capture de données modifiées avec le package de charge initiale et la
gestion des plages de numéros séquentiels dans le journal (NSE) qui sont traités lors de
l'exécution d'un package de capture de données modifiées. En outre, la tâche de
contrôle de capture de données modifiées traite les scénarios d'erreur et la
récupération.

La tâche de contrôle de capture de données modifiées gère l'état du package de


capture de données modifiées dans une variable de package SSIS et peut également le
conserver de manière permanente dans une table de base de données afin qu'il soit
conservé d'une activation de package à l'autre et entre plusieurs packages qui exécutent
ensemble un processus de capture de données modifiées commun (par exemple, une
tâche peut être responsable du chargement initial et l'autre des mises à jour du flux
progressif).

La tâche de contrôle de capture de données modifiées prend en charge deux groupes


d'opérations. Un groupe gère la synchronisation de la charge initiale et le traitement des
modifications, tandis que l'autre gère la plage de traitement des modifications des NSE
pour une exécution d'un package de source de données modifiées et garde une trace
des actions correctement traitées.

Les opérations suivantes gèrent la synchronisation de la charge initiale et le traitement


des modifications :

Opération Description

ResetCdcState Cette opération est utilisée pour réinitialiser l'état permanent de capture de
données modifiées associé au contexte de capture de données modifiées
actuel. Une fois cette opération effectuée, le numéro LSN maximal actuel
de la table d’horodatage des LSN sys.fn_cdc_get_max_lsn devient le début
de la plage de traitement suivante. Cette opération requiert une connexion
à la base de données source.
Opération Description

MarkInitialLoadStart Cette opération est utilisée au début d'un package de charge initiale pour
enregistrer le NSE actuel dans la base de données source avant que le
package de charge initiale commence à lire les tables sources. Cette
opération requiert une connexion à la base de données source pour
appeler sys.fn_cdc_get_max_lsn .

Si vous sélectionnez MarkInitialLoadStart quand vous travaillez sur la


capture de données modifiées SQL Server (c’est-à-dire pas sur Oracle),
l’utilisateur spécifié dans le Gestionnaire de connexions doit être db_owner
ou sysadmin.

MarkInitialLoadEnd Cette opération est utilisée à la fin d'un package de charge initiale pour
enregistrer le NSE actuel dans la base de données source une fois que le
package de charge initiale a fini de lire les tables sources. Ce NSE est
déterminé en enregistrant l'heure à laquelle cette opération s'est produite,
puis en interrogeant la table de mappage cdc.lsn_time_ dans la base de
données de capture de données modifiées afin de rechercher une
modification survenue après cette heure.

Si vous sélectionnez MarkInitialLoadEnd quand vous travaillez sur la


capture de données modifiées SQL Server (c’est-à-dire pas sur Oracle),
l’utilisateur spécifié dans le Gestionnaire de connexions doit être db_owner
ou sysadmin.

MarkCdcStart Cette opération est utilisée lorsque la charge initiale est effectuée à partir
d'une base de données par instantané. Dans ce cas, le traitement des
modifications doit démarrer immédiatement après le NSE de l'instantané.
Vous pouvez spécifier le nom de la base de données par instantané à
utiliser et la tâche de contrôle de capture de données modifiées qui
interroge SQL Server pour connaître le NSE de l'instantané. Vous avez
également la possibilité de spécifier directement le NSE de l'instantané.

Si vous sélectionnez MarkCdcStart quand vous travaillez sur la capture de


données modifiées SQL Server (c’est-à-dire pas sur Oracle), l’utilisateur
spécifié dans le gestionnaire de connexions doit être db_owner ou
sysadmin.

Les opérations suivantes sont utilisées pour gérer la plage de traitement :

Opération Description
Opération Description

GetProcessingRange Cette opération est utilisée avant d'appeler le flux de données qui utilise
le flux de données de la source CDC. Elle établit une plage de numéros
LSN que le flux de données de la source CDC lit lorsqu'il est appelé. La
plage est stockée dans une variable de package SSIS qui est utilisée par la
source CDC pendant le traitement du flux de données.

Pour plus d’informations sur les états stockés, consultez Définir une
variable d’état.

MarkProcessedRange Cette opération est exécutée après que chaque exécution de la capture
de données modifiées (une fois le flux de données de capture de données
modifiées terminé avec succès) pour consigner le dernier NSE qui a été
entièrement traité dans le cadre de l'exécution de la capture de données
modifiées. Lors de la prochaine exécution de GetProcessingRange, cette
position constitue le début de la plage de traitement.

Gestion de la permanence de l'état de capture


de données modifiées
La tâche de contrôle de capture de données modifiées conserve un état permanent
entre les activations. Les informations stockées dans l'état de capture de données
modifiées sont utilisées pour déterminer et gérer la plage de traitement pour le package
de capture de données modifiées et pour détecter les conditions d'erreur. L'état
permanent est stocké sous forme de chaîne. Pour plus d’informations, consultez Définir
une variable d’état.

La tâche de contrôle de capture de données modifiées prend en charge deux types de


permanence d'état :

Permanence d'état manuelle : dans ce cas, la tâche de contrôle de capture de


données modifiées gère l'état stocké dans une variable de package, mais le
développeur de package doit lire la variable dans un stockage permanent avant
d'appeler le contrôle de capture de données modifiées, puis la réécrire dans ce
stockage permanent après le dernier appel du contrôle de capture de données
modifiées et une fois l'exécution de la capture de données modifiées terminée.

Permanence d'état automatique : l'état de capture de données modifiées est


stocké dans une table dans une base de données. L’état est stocké sous un nom
fourni par la propriété StateName dans une table nommée de la propriété Table à
utiliser pour le stockage de l’état , qui se trouve dans un gestionnaire de
connexions sélectionné pour le stockage de l’état. La valeur par défaut est le
gestionnaire de connexions source, mais la pratique courante consiste à utiliser le
gestionnaire de connexions cible. La tâche de contrôle de capture de données
modifiées met à jour la valeur d'état dans la table d'état et celle-ci est validée dans
le cadre de la transaction en cours.

Gestion des erreurs


La tâche de contrôle de capture de données modifiées peut signaler une erreur dans les
conditions suivantes :

Elle ne parvient pas à lire l'état de capture de données modifiées permanent ou la


mise à jour de l'état permanent échoue.

Elle ne parvient pas à lire les informations du NSE actuel dans la base de données
source.

La lecture de l'état de capture de données modifiées n'est pas cohérente.

Dans toutes ces situations, la tâche de contrôle de capture de données modifiées


signale une erreur qui peut être gérée de la manière dont SSIS gère habituellement les
erreurs de flux de contrôle.

La tâche de contrôle de capture de données modifiées peut également signaler un


avertissement lorsque l'opération Obtenir la plage de traitement est appelée
directement après une autre opération Obtenir la plage de traitement sans que Marquer
la plage traitée soit appelé. Ceci indique que l'exécution précédente a échoué ou qu'un
autre package de capture de données modifiées s'exécute peut-être avec le même nom
d'état de capture de données modifiées.

Configuration de la tâche de contrôle de


capture de données modifiées
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Dans cette section


Propriétés personnalisées de la tâche de contrôle de capture de données
modifiées
Tâches associées
Définir une variable d’état

Contenu associé
Article technique, Installation du service de capture de données modifiées
Microsoft SQL Server 2012 pour Oracle par Attunity , sur
social.technet.microsoft.com.

Article technique, Résolution des problèmes de configuration dans le service de


capture de données modifiées Microsoft SQL Server pour Oracle par Attunity ,
sur social.technet.microsoft.com.

Article technique, Dépannage des erreurs d'instance du service de capture de


données modifiées Microsoft SQL Server pour Oracle par Attunity , sur
social.technet.microsoft.com.

Éditeur de tâche de contrôle CDC


Utilisez la boîte de dialogue Éditeur de tâche de contrôle CDC pour configurer la tâche
de contrôle CDC. La configuration de la tâche de contrôle CDC inclut la définition d'une
connexion à la base de données CDC, l'opération de la tâche CDC et des informations
de gestion d'état.

Pour en savoir plus sur la tâche de contrôle CDC, consultez CDC Control Task.

Pour ouvrir l'Éditeur de tâche de contrôle CDC

1. Dans SQL Server Data Tools, ouvrez le package SQL Server 2019 Integration
Services (SSIS) doté de la tâche de contrôle CDC.

2. Sous l’onglet Flux de contrôle , double-cliquez sur la tâche de contrôle CDC.

Options
Gestionnaire de connexions ADO.NET de base de données CDC SQL Server
Sélectionnez un gestionnaire de connexions existant dans la liste ou cliquez sur
Nouveau pour créer une connexion. La connexion doit être établie avec une base de
données SQL Server activée pour la capture de données modifiées et dans laquelle la
table de modifications sélectionnée est localisée.
Opération de contrôle de capture de données modifiées
Sélectionnez l'opération à exécuter pour cette tâche. Toutes les opérations utilisent la
variable d'état qui est stockée dans une variable de package SSIS qui stocke l'état et le
passe entre les différents composants du package.

Marquer le début de la charge initiale: cette opération est utilisée en exécutant


une charge initiale d'une base de données active sans instantané. Elle est invoquée
au début d'un package de chargement initial pour enregistrer le numéro LSN
actuel dans la base de données source avant que le package de chargement initial
commence à lire les tables sources. Cela requiert une connexion à la base de
données source.

Si vous sélectionnez Marquer le début de la charge initiale quand vous travaillez


sur la capture de données modifiées SQL Server (c’est-à-dire pas sur Oracle),
l’utilisateur spécifié dans le gestionnaire de connexions doit être db_owner ou
sysadmin.

Marquer la fin de la charge initiale: cette opération est utilisée en exécutant une
charge initiale d'une base de données active sans instantané. Elle est invoquée à la
fin d'un package de chargement initial pour enregistrer le numéro LSN actuel dans
la base de données source une fois que le package de chargement initial a fini de
lire les tables sources. Ce numéro LSN est déterminé en enregistrant l'heure à
laquelle cette opération s'est produite, puis en interrogeant la table de mappage
cdc.lsn_time_ dans la base de données CDC afin de rechercher une modification
survenue après cette heure.

Si vous sélectionnez Marquer la fin de la charge initiale quand vous travaillez sur
la capture de données modifiées SQL Server (c’est-à-dire pas sur Oracle),
l’utilisateur spécifié dans le gestionnaire de connexions doit être db_owner ou
sysadmin.

Marquer le début CDC : cette opération est utilisée lorsque la charge initiale est
effectuée à partir d'un fichier de base de données d'instantanés ou d'une base de
données inactive. Elle est appelée à n'importe quel stade du package de charge
initiale. L'opération accepte un paramètre qui peut être un numéro LSN
d'instantané, un nom de base de données d'instantanés (de laquelle le numéro
LSN d'instantané dérive automatiquement) ou qui peut être laissé vide, auquel cas
le numéro LSN de la base de données actuelle est utilisé comme dernier numéro
LSN pour le package de traitement des modifications.

Cette opération est utilisée à la place des opérations Marquer le début/la fin de la
charge initiale.
Si vous sélectionnez Marquer le début CDC quand vous travaillez sur la capture de
données modifiées SQL Server (c’est-à-dire pas sur Oracle), l’utilisateur spécifié
dans le gestionnaire de connexions doit être db_owner ou sysadmin.

Get processing range: cette opération est utilisée dans un package de traitement
des modifications avant d'appeler le flux de données qui utilise le flux de données
source CDC. Elle établit une plage de numéros LSN que le flux de données de la
source CDC lit lorsqu'il est appelé. La plage est stockée dans une variable de
package SSIS qui est utilisée par la source CDC pendant le traitement du flux de
données.

Pour plus d’informations sur les états CDC stockés, consultez Définir une variable
d’état.

Marquer la plage traitée : cette opération est utilisée dans un package de


traitement des modifications à la fin d’une exécution CDC (après que le flux de
données CDC s’est terminé correctement) pour inscrire le dernier numéro LSN qui
était complètement traité dans l’exécution CDC. Lors de la prochaine exécution de
GetProcessingRange , cette position détermine le début de la prochaine plage de

traitement.

Réinitialiser l'état CDC: cette opération est utilisée pour réinitialiser l'état de
capture de données modifiées (CDC) permanent associé au contexte CDC actuel.
Une fois cette opération effectuée, le numéro LSN maximal actuel de la table
d’horodatage des LSN sys.fn_cdc_get_max_lsn devient le début de la plage de
traitement suivante. Cette opération requiert une connexion à la base de données
source.

Cette opération est notamment utilisée lorsque vous souhaitez traiter uniquement
les enregistrements de modifications récents et ignorer tous les anciens
enregistrements de modifications.

Variable contenant l'état CDC


Sélectionnez la variable de package SSIS qui stocke les informations d'état de
l'opération de tâche. Vous devez définir une variable avant de commencer. Si vous
sélectionnez Persistance d'état automatique, la variable d'état est chargée et
enregistrée automatiquement.

Pour plus d’informations sur la définition de la variable d’état, consultez Définir une
variable d’état.

Numéro séquentiel dans le journal (LSN) SQL Server pour démarrer le nom
CDC/instantané :
Entrez le numéro LSN de la base de données source ou de la base de données
d'instantanés à partir de laquelle la charge initiale est effectuée pour déterminer le
début de la capture de données modifiées. Le numéro est disponible uniquement si
Opération de contrôle CDC est défini sur Marquer le début CDC.

Pour plus d'informations sur ces opérations, consultez CDC Control Task.

Stockage automatique de l'état dans une table de base de données


Activez cette case à cocher pour que la tâche de contrôle CDC gère automatiquement le
chargement et le stockage de l'état CDC dans une table d'états contenue dans la base
de données spécifiée. Si cette case n'est pas sélectionnée, le développeur doit charger
l'état CDC au démarrage du package et l'enregistrer dès qu'il change.

Gestionnaire de connexions de la base de données où l'état est stocké


Sélectionnez un gestionnaire de connexions ADO.NET existant dans la liste ou cliquez
sur Nouveau pour créer une nouvelle connexion. La connexion concerne une base de
données SQL Server qui contient la table State. La table State contient les informations
d'état.

Ces informations sont disponibles uniquement si vous avez sélectionné Persistance


d'état automatique et il s'agit d'un paramètre obligatoire.

Table à utiliser pour stocker l'état


Tapez le nom de la table d'état à utiliser pour stocker l'état CDC. La table spécifiée doit
être composée de deux colonnes appelées name et state avec le type de données
varchar (256).

Vous pouvez éventuellement sélectionner Nouveau pour obtenir un script SQL qui
génère une nouvelle table d'état avec les colonnes requises. Lorsque Persistance d'état
automatique est sélectionné, le développeur doit créer une table d'état en fonction des
spécifications ci-dessus.

Ces informations sont disponibles uniquement si vous avez sélectionné Persistance


d'état automatique et il s'agit d'un paramètre obligatoire.

Nom de l’état
Entrez le nom à associer à l'état CDC persistant. La charge complète et les packages CDC
qui fonctionnent avec le même contexte CDC auront un nom d'état commun. Ce nom
est utilisé pour surveiller la ligne d'état dans la table d'état.
Propriétés personnalisées de la tâche de
contrôle de capture de données
modifiées
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le tableau suivant décrit les propriétés personnalisées de la tâche de contrôle de


capture de données modifiées. Toutes les propriétés sont en lecture/écriture.

Nom de la propriété Type de Description


données

Connexion Connexion Connexion ADO.NET à la base de données CDC SQL


ADO.NET Server pour l’accès aux tables de modifications et à
l’état de capture des données modifiées, si elles
sont stockées dans la même base de données.

La connexion doit être établie avec une base de


données SQL Server activée pour la capture de
données modifiées et dans laquelle la table de
modifications sélectionnée est localisée.

TaskOperation Integer Opération sélectionnée pour la tâche de contrôle


(énumération) de capture de données modifiées. Les valeurs
possibles sont Marquer le début de la charge
initiale, Marquer la fin de la charge initiale,
Marquer le début de la capture de données
modifiées, Obtenir la plage de traitement,
Marquer la plage traitéeet Rétablir l’état de la
capture de données modifiées.

Si vous sélectionnez MarkCdcStart,


MarkInitialLoadStartou MarkInitialLoadEnd quand
vous travaillez sur la capture de données modifiées
SQL Server (autrement dit, hors d’Oracle),
l’utilisateur spécifié dans le gestionnaire de
connexions doit être db_owner ou sysadmin.

Pour plus d’informations sur ces opérations,


consultez Éditeur de tâche de contrôle CDC et
Tâche de contrôle de capture de données
modifiées.
Nom de la propriété Type de Description
données

OperationParameter String Actuellement utilisé avec l’opération MarkCdcStart .


Ce paramètre permet d'effectuer une entrée
supplémentaire requise pour l'opération spécifique.
Par exemple, le NSE nécessaire pour l’opération
MarkCdcStart .

StateVariable String Variable de package SSIS qui stocke l'état de


capture de données modifiées du contexte de
capture de données modifiées actuel. La tâche de
contrôle de capture de données modifiées lit et
écrit l’état dans StateVariable et ne le charge pas
(pas plus qu’elle ne le stocke) dans un stockage
permanent, sauf si AutomaticStatePersistence est
sélectionné. Voir Définir une variable d’état.
Nom de la propriété Type de Description
données

AutomaticStatePersistence Booléen La tâche de contrôle de capture de données


modifiées lit l'état de capture de données modifiées
dans la variable de package d'état de capture de
données modifiées. Après une opération, la tâche
de contrôle de capture de données modifiées met à
jour la valeur de la variable de package d'état de
capture de données modifiées. La propriété
AutomaticStatePersistence indique à la tâche de
contrôle de capture de données modifiées la
personne chargée de rendre la valeur d’état de
capture de données modifiées permanente entre
les séries de package SSIS.

Quand cette propriété a la valeur true, la tâche de


contrôle de capture de données modifiées charge
automatiquement la valeur de la variable d’état de
capture de données modifiées à partir d’une table
d’état. Quand la tâche de contrôle de capture de
données modifiées met à jour la valeur de la
variable d’état de capture de données modifiées,
elle met également à jour sa valeur dans le même
état table.stores, l’état dans une table spéciale et
met à jour la variable d’état. Le développeur peut
contrôler la base de données SQL Server qui
contient cette table d'état et son nom. la structure
de cette table d'état est prédéfinie.

Si la valeur est false, la tâche de contrôle de capture


de données modifiées ne se charge pas de rendre
sa valeur permanente. Si la valeur est true, la tâche
de contrôle de capture de données modifiées
stocke l'état dans une table spéciale et met à jour
StateVariable.

La valeur par défaut est true, ce qui indique que la


permanence de l’état est mise à jour
automatiquement.

StateConnection Connexion Connexion ADO.NET à la base de données dans


ADO.NET laquelle la table d’état réside en cas d’utilisation
d’AutomaticStatePersistence. La valeur par défaut
est la même que pour Connexion.
Nom de la propriété Type de Description
données

StateName String Nom associé à l'état permanent. La pleine charge et


les packages de capture de données modifiées qui
fonctionnent avec le même contexte de capture de
données modifiées spécifient un nom de contexte
de capture de données modifiées commun. Ce nom
est utilisé pour surveiller la ligne d’état dans la table
d’état.

Cette propriété s’applique uniquement quand


AutomaticStatePersistence a la valeur true.

StateTable String Spécifie le nom de la table dans laquelle l'état de


contexte de capture de données modifiées est
stocké. Cette table doit être accessible à l'aide de la
connexion configurée pour ce composant. Cette
table doit inclure des colonnes varchar appelées
nom et état. (La colonne état doit comporter au
moins 256 caractères.)

Cette propriété s’applique uniquement quand


AutomaticStatePersistence a la valeur true.

CommandTimeout entier Cette valeur indique le délai d’attente (en secondes)


à utiliser pour communiquer avec la base de
données SQL Server . Cette valeur est utilisée
lorsque le temps de réponse de la base de données
est très lent et que la valeur par défaut (30
secondes) n’est pas suffisante.

Voir aussi
Tâche de contrôle de capture de données modifiées
Éditeur de tâche de contrôle CDC
Tâche Vérifier l'intégrité de la base de
données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche Vérifier l'intégrité de la base de données contrôle l'allocation et l'intégrité de la


structure de tous les objets de la base de données spécifiée. La tâche peut vérifier une
ou plusieurs bases de données et vous pouvez indiquer si vous souhaitez également
contrôler les index de base de données.

La tâche Vérifier l'intégrité de la base de données encapsule l'instruction DBCC


CHECKDB. Pour plus d’informations, consultez DBCC CHECKDB (Transact-SQL).

Configuration de la tâche Vérifier l'intégrité de


la base de données
Vous pouvez définir les propriétés par le biais du concepteur SSIS . Cette tâche se trouve
dans la section Tâches du plan de maintenance de la boîte à outils du concepteur SSIS .

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Tâche Vérifier l'intégrité de la base de données (Plan de maintenance)

Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur


tâche de flux de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de flux de données encapsule le moteur de flux de données chargé de déplacer


des données entre les sources et les destinations et permet à l'utilisateur de transformer,
nettoyer et modifier les données au cours de leur déplacement. L'ajout d'une tâche de
flux de données à un flux de contrôle de package permet au package d'extraire, de
transformer et de charger des données.

Un flux de données est constitué d'au moins un composant de flux de données, mais il
s'agit en général d'un ensemble de composants de flux de données connectés : des
sources qui extraient des données, des transformations qui modifient, acheminent ou
résument des données, et des destinations qui chargent des données.

Au moment de l'exécution, la tâche de flux de données crée un plan d'exécution à partir


du flux de données et le moteur de flux de données exécute le plan. Vous pouvez créer
une tâche de flux de données qui n'a aucun flux de données, mais la tâche s'exécute
uniquement si elle inclut au moins un flux de données.

Pour insérer des données en bloc dans une base de données SQL Server à partir de
fichiers texte, vous pouvez utiliser la tâche d’insertion en bloc au lieu d’une tâche de flux
de données et un flux de données. Cependant, la tâche d'insertion en bloc ne peut pas
transformer des données. Pour plus d’informations, consultez Tâche d’insertion en bloc.

Flux multiples
Une tâche de flux de données peut contenir plusieurs flux de données. Si une tâche
copie plusieurs ensembles de données et si l'ordre dans lequel les données sont copiées
n'est pas significatif, il peut être plus commode d'inclure plusieurs flux de données dans
la tâche de flux de données. Par exemple, vous pourriez créer cinq flux de données,
chacun copiant des données à partir d'un fichier plat vers une table de dimension
différente dans un schéma d'entrepôt de données en étoile.

Toutefois, le moteur de flux de données détermine l'ordre d'exécution lorsqu'une tâche


de flux de données contient plusieurs flux de données. Par conséquent, lorsque l'ordre
est important, le package doit utiliser plusieurs tâches de flux de données, chacune
contenant un flux de données. Vous pouvez ensuite appliquer des contraintes de
précédence afin de contrôler l'ordre d'exécution des tâches.
Le schéma suivant illustre une tâche de flux de données contenant plusieurs flux de
données.

Entrées du journal
Integration Services fournit un ensemble de journaux d’événements disponibles pour
toutes les tâches. Integration Services fournit également des entrées de journal
personnalisées pour de nombreuses tâches. Pour plus d’informations, consultez
Journalisation d’Integration Services (SSIS). La tâche de flux de données comprend les
entrées de journal personnalisées suivantes :

Entrée du journal Description

BufferSizeTuning Indique que la tâche de flux de données a modifié la taille du


tampon. L'entrée de journal décrit les raisons de cette
modification de taille et indique la nouvelle taille temporaire du
tampon.

OnPipelinePostEndOfRowset Indique qu’un composant a reçu son signal de fin d’ensemble de


lignes, qui est défini par le dernier appel de la méthode
ProcessInput . Une entrée est écrite pour chaque composant du
flux de données qui traite l'entrée. L'entrée inclut le nom du
composant.

OnPipelinePostPrimeOutput Indique que le composant a terminé son dernier appel de la


méthode PrimeOutput . Selon le flux de données, plusieurs
entrées de journal peuvent être écrites. Si le composant est une
source, cette entrée du journal signifie que le composant a
terminé le traitement des lignes.

OnPipelinePreEndOfRowset Indique qu’un composant est sur le point de recevoir son signal
de fin d’ensemble de lignes, qui est défini par le dernier appel de
la méthode ProcessInput . Une entrée est écrite pour chaque
composant du flux de données qui traite l'entrée. L'entrée inclut
le nom du composant.
Entrée du journal Description

OnPipelinePrePrimeOutput Indique que le composant est sur le point de recevoir son appel
de la méthode PrimeOutput . Selon le flux de données, plusieurs
entrées de journal peuvent être écrites.

OnPipelineRowsSent Indique le nombre de lignes fournies à une entrée de composant


par un appel de la méthode ProcessInput . L'entrée du journal
inclut le nom du composant.

PipelineBufferLeak Donne des informations sur tout composant qui maintient


l'activité des tampons après la fermeture du gestionnaire de
tampons. Si un tampon est toujours actif, cela signifie que des
ressources des tampons n'ont pas été libérées et qu'elles peuvent
provoquer des fuites de mémoire. L'entrée du journal fournit le
nom du composant et l'ID du tampon.

PipelineComponentTime Signale le temps (en millisecondes) que le composant a passé


dans chacune de ses cinq étapes de traitement majeures :
Validate, PreExecute, PostExecute, ProcessInput et ProcessOutput.

PipelineExecutionPlan Indique le plan d'exécution du flux de données. Le plan


d'exécution fournit des informations sur la manière dont les
tampons sont envoyés aux composants. Ces informations,
conjuguées à l'entrée PipelineExecutionTrees du journal, décrivent
ce qui se passe dans la tâche de flux de données.

PipelineExecutionTrees Indique les arborescences d'exécution de la disposition du flux de


données. Le planificateur du moteur du flux de données utilise les
arborescences pour construire le plan d'exécution du flux de
données.

PipelineInitialization Donne des informations d'initialisation relatives à la tâche. Ces


informations incluent les répertoires à utiliser pour le stockage
temporaire des données blob, la taille par défaut de la mémoire
tampon, ainsi que le nombre de lignes contenues dans une
mémoire tampon. Selon la configuration de la tâche de flux de
données, plusieurs entrées de journal peuvent être écrites.

Ces entrées de journal fournissent de nombreuses informations sur l'exécution de la


tâche de flux de données chaque fois que vous exécutez un package. D'une exécution à
l'autre des packages, vous pouvez capturer des informations qui, au fil du temps,
fournissent des éléments historiques importants sur le traitement effectué par la tâche,
sur les problèmes pouvant affecter les performances et sur le volume de données géré
par la tâche.

Pour plus d'informations sur la façon d'utiliser ces entrées de journal pour analyser et
améliorer les performances du flux de données, consultez l'une des rubriques suivantes :
Compteurs de performance

Fonctionnalités de performances de flux de données

Exemples de messages d'une tâche de flux de données


Le tableau suivant répertorie des exemples de messages pour les entrées de journal
d'un package très simple. Le package utilise une source OLE DB pour extraire les
données d'une table, une transformation de tri pour trier les données et une destination
OLE DB pour écrire les données dans une autre table.

Entrée du journal Messages

BufferSizeTuning Rows in buffer type 0 would cause a buffer size greater than
the configured maximum. There will be only 9637 rows in
buffers of this type.

Rows in buffer type 2 would cause a buffer size greater than


the configured maximum. There will be only 9497 rows in
buffers of this type.

Rows in buffer type 3 would cause a buffer size greater than


the configured maximum. There will be only 9497 rows in
buffers of this type.

OnPipelinePostEndOfRowset A component will be given the end of rowset signal. : 1180 :


Sort : 1181 : Sort Input

A component will be given the end of rowset signal. : 1291 :


OLE DB Destination : 1304 : OLE DB Destination Input

OnPipelinePostPrimeOutput A component has returned from its PrimeOutput call. : 1180 :


Sort

A component has returned from its PrimeOutput call. : 1 : OLE


DB Source

OnPipelinePreEndOfRowset A component has finished processing all of its rows. : 1180 :


Sort : 1181 : Sort Input

A component has finished processing all of its rows. : 1291 :


OLE DB Destination : 1304 : OLE DB Destination Input

OnPipelinePrePrimeOutput PrimeOutput will be called on a component. : 1180 : Sort

PrimeOutput will be called on a component. : 1 : OLE DB


Source
Entrée du journal Messages

OnPipelineRowsSent Rows were provided to a data flow component as input. : : 1185


: OLE DB Source Output : 1180 : Sort : 1181 : Sort Input : 76

Rows were provided to a data flow component as input. : : 1308


: Sort Output : 1291 : OLE DB Destination : 1304 : OLE DB
Destination Input : 76

PipelineComponentTime The component "Calculate LineItemTotalCost" (3522) spent 356


milliseconds in ProcessInput.

The component "Sum Quantity and LineItemTotalCost" (3619)


spent 79 milliseconds in ProcessInput.

The component "Calculate Average Cost" (3662) spent 16


milliseconds in ProcessInput.

The component "Sort by ProductID" (3717) spent 125


milliseconds in ProcessInput.

The component "Load Data" (3773) spent 0 milliseconds in


ProcessInput.

The component "Extract Data" (3869) spent 688 milliseconds in


PrimeOutput filling buffers on output "OLE DB Source Output"
(3879).

The component "Sum Quantity and LineItemTotalCost" (3619)


spent 141 milliseconds in PrimeOutput filling buffers on
output "Aggregate Output 1" (3621).

The component "Sort by ProductID" (3717) spent 16 milliseconds


in PrimeOutput filling buffers on output "Sort Output"
(3719).

PipelineExecutionPlan SourceThread0

Drives: 1

Influences: 1180 1291

Output Work List

CreatePrimeBuffer of type 1 for output ID 11.

SetBufferListener: "WorkThread0" for input ID 1181


Entrée du journal Messages

CreatePrimeBuffer of type 3 for output ID 12.

CallPrimeOutput on component "OLE DB Source" (1)

End Output Work List

End SourceThread0

WorkThread0

Drives: 1180

Influences: 1180 1291

Input Work list, input ID 1181 (1 EORs Expected)

CallProcessInput on input ID 1181 on component "Sort" (1180)


for view type 2

End Input Work list for input 1181

Output Work List

CreatePrimeBuffer of type 4 for output ID 1182.

SetBufferListener: "WorkThread1" for input ID 1304

CallPrimeOutput on component "Sort" (1180)

End Output Work List

End WorkThread0

WorkThread1

Drives: 1291

Influences: 1291

Input Work list, input ID 1304 (1 EORs Expected)

CallProcessInput on input ID 1304 on component "OLE DB


Destination" (1291) for view type 5

End Input Work list for input 1304

Output Work List


Entrée du journal Messages

End Output Work List

End WorkThread1

PipelineExecutionTrees begin execution tree 0

output "OLE DB Source Output" (11)

input "Sort Input" (1181)

end execution tree 0

begin execution tree 1

output "OLE DB Source Error Output" (12)

end execution tree 1

begin execution tree 2

output "Sort Output" (1182)

input "OLE DB Destination Input" (1304)

output "OLE DB Destination Error Output" (1305)

end execution tree 2

PipelineInitialization No temporary BLOB data storage locations were provided. The


buffer manager will consider the directories in the TEMP and
TMP environment variables.

The default buffer size is 10485760 bytes.

Buffers will have 10000 rows by default

The data flow will not remove unused components because its
RunInOptimizedMode property is set to false.

De nombreux événements de journal écrivent plusieurs entrées et les messages liés à de


nombreuses entrées de journal contiennent des données complexes. Pour faciliter la
compréhension et la communication du contenu des messages complexes, vous pouvez
analyser leur texte. En fonction de l'emplacement des journaux, vous pouvez utiliser des
instructions Transact-SQL ou un composant Script pour répartir le texte complexe sur
plusieurs colonnes ou sous d'autres formats que vous jugez plus utiles.
Par exemple, le tableau suivant affiche le message « Des lignes ont été fournies comme
entrée à un composant de flux de données. : : 1185 : Sortie de la source OLE DB : 1180 :
Tri : 1181 : Entrée du tri : 76 », analysé en colonnes. Le message a été écrit par
l’événement OnPipelineRowsSent au moment où les lignes ont été envoyées de la
source OLE DB à la transformation de tri.

Colonne Description Valeur

PathID Valeur de la propriété ID du chemin entre la source OLE 1185


DB et la transformation de tri.

PathName Valeur de la propriété Nom du chemin. Sortie de


source OLE DB

ComponentID Valeur de la propriété ID de la transformation de tri. 1180

ComponentName Valeur de la propriété Nom de la transformation de tri. Trier

InputID Valeur de la propriété ID de l’entrée de la transformation 1181


de tri.

InputName Valeur de la propriété Nom de l’entrée de la Entrée de tri


transformation de tri.

RowsSent Nombre de lignes envoyées à l'entrée de la transformation 76


de tri.

Configuration de la tâche de flux de données


Vous pouvez définir des propriétés dans la fenêtre Propriétés ou par programmation.

Pour plus d’informations sur la façon de définir ces propriétés dans la fenêtre Propriétés
, cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Configuration par programmation de la tâche


de flux de données
Pour plus d'informations sur l'ajout par programmation d'une tâche de flux de données
à un package et sur la définition des propriétés de flux de données, cliquez sur la
rubrique suivante :

Ajout de la tâche de flux de données par programmation


Tâches associées
Définir les propriétés d'une tâche ou d'un conteneur

Contenu associé
Vidéo, Distributeur de données équilibrées, sur technet.microsoft.com.
Data Mining Query Task
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

) Important

L’exploration de données a été dépréciée dans SQL Server 2017 (14.x) Analysis
Services et est à présent abandonnée dans SQL Server 2022 (16.x) Analysis Services.
La documentation n’est pas mise à jour pour les fonctionnalités déconseillées et
abandonnées. Pour en savoir plus, consultez Compatibilité descendante d’Analysis
Services.

La tâche de requête d’exploration de données exécute des requêtes de prédiction


basées sur les modèles d’exploration de données intégrés à Analysis Services. La requête
de prédiction crée une prédiction de nouvelles données à l'aide de modèles
d'exploration de données. Par exemple, une requête de prédiction peut prédire le
nombre de voiliers susceptibles d'être vendus pendant les mois d'été ou générer la liste
des prospects susceptibles d'acheter un voilier.

Integration Services fournit des tâches qui effectuent d’autres opérations décisionnelles,
comme l’exécution d’instructions de langage de définition de données (DDL) et le
traitement d’objets analytiques.

Pour plus d'informations sur les autres tâches Business Intelligence, cliquez sur l'une des
rubriques suivantes :

Tâche DDL d’exécution de SQL Server Analysis Services

Tâche de traitement d’Analysis Services

Requêtes de prédiction
La requête est une instruction DMX (Data Mining Extensions). Le langage DMX est une
extension du langage SQL qui prend en charge l'utilisation de modèles d'exploration de
données. Pour plus d’informations sur l’utilisation du langage DMX, consultez
Informations de référence sur le langage DMX.

La tâche peut interroger plusieurs modèles d'exploration de données basés sur la même
structure d'exploration de données. Un modèle d’exploration de données est construit à
partir d’un des algorithmes d’exploration de données fournis par Analysis Services. La
structure d'exploration de données référencée par la tâche de requête d'exploration de
données peut comprendre plusieurs modèles d'exploration de données, construits à
partir de différents algorithmes. Pour plus d’informations, consultez Structures
d’exploration de données (Analysis Services - Exploration de données) et Algorithmes
d’exploration de données (Analysis Services - Exploration de données).

La requête de prédiction exécutée par la tâche de requête d'exploration de données


renvoie un résultat qui se présente sous la forme d'une seule ligne ou d'un ensemble de
données. Une requête qui ne retourne qu'une ligne est appelée « requête singleton » :
par exemple, la requête qui prédit le nombre de voiliers susceptibles d'être vendus
pendant les mois d'été retourne un nombre. Pour plus d’informations sur les requêtes
de prédiction qui renvoient une seule ligne, consultez Outils de requête d’exploration de
données.

Les résultats des requêtes sont enregistrés dans des tables. Si une table portant le nom
spécifié par la tâche de requête d'exploration de données existe déjà, la tâche peut créer
une nouvelle table à partir du même nom, auquel elle ajoute un nombre, ou bien
remplacer le contenu de la table.

Si le résultat comprend une imbrication, elle est mise à plat avant d'être enregistrée. La
mise à plat d'un résultat change en table un ensemble de résultats imbriqué. Par
exemple, la mise à plat d'un résultat imbriqué composé d'une colonne Customer et
d'une colonne Product imbriquée ajoute des lignes à la colonne Customer afin de créer
une table qui comprend les données de produit associées à chaque client. Ainsi, dans le
cas d'un client auquel sont associés trois produits différents, l'opération génère une
table de trois lignes, contenant chacune le nom du client et un nom de produit différent.
Si le mot clé FLATTENED est omis, la table ne contient que la colonne Customer et une
seule ligne par client. Pour plus d’informations, consultez SELECT (DMX).

Configuration de la tâche de requête


d'exploration de données
La tâche de requête d'exploration de données requiert deux connexions. La première
connexion est celle d’un gestionnaire de connexions Analysis Services vers une instance
de Microsoft SQL Server Analysis Services ou un projet Analysis Services qui contient la
structure et le modèle d’exploration de données. La deuxième connexion est celle d’un
gestionnaire de connexions OLE DB vers la base de données SQL Server qui contient la
table dans laquelle la tâche écrit les données. Pour plus d'informations, consultez
Analysis Services Connection Manager et OLE DB Connection Manager.
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

7 Notes

L'éditeur de tâche de requête d'exploration de données n'a pas de page


Expressions. À la place, utilisez la fenêtre Propriétés pour accéder aux outils de
création et de gestion des expressions des propriétés de la tâche de requête
d'exploration de données.

Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Configuration par programmation de la tâche


de requête d'exploration de données
Pour plus d'informations sur la définition par programmation de ces propriétés, cliquez
sur l'une des rubriques suivantes :

DMQueryTask

Éditeur de tâche de requête d'exploration de


données (onglet Modèle d'exploration de
données)
Utilisez l’onglet Modèle d’exploration de données de la boîte de dialogue Tâche de
requête d’exploration de données pour spécifier la structure et le modèle d’exploration
de données à utiliser.

Pour en savoir plus sur l’implémentation de l’exploration de données dans les packages,
consultez Tâche de requête d’exploration de données et Solutions d’exploration de
données.

Options générales
Nom
Fournissez un nom unique pour la tâche de requête d'exploration de données. Ce nom
sert d'étiquette à l'icône de la tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Saisissez la description de la tâche de requête d'exploration de données.

Options de l'onglet Modèle d'exploration de données


Connection
Sélectionnez un gestionnaire de connexions Analysis Services dans la liste ou cliquez sur
Nouveau pour en créer un.

Rubriques connexes :Gestionnaire de connexions Analysis Services

Nouveau
Créez un nouveau gestionnaire de connexions Analysis Services.

Rubriques connexes :Référence de l’interface utilisateur de la boîte de dialogue Ajout


d’un gestionnaire de connexions Analysis Services

Structure d'exploration de données


Sélectionnez une structure d'exploration de données dans la liste.

Modèles d'exploration de données


Sélectionnez un modèle d'exploration de données qui repose sur la structure
sélectionnée.

Éditeur de tâche de requête d'exploration de


données (onglet Requête)
Utilisez l’onglet Requête de la boîte de dialogue Tâche de requête d’exploration de
données pour créer des requêtes de prédiction basées sur un modèle d’exploration de
données. Dans cette boîte de dialogue, vous pouvez également lier des paramètres et
des ensembles de résultats à des variables.

Pour en savoir plus sur l’implémentation de l’exploration de données dans les packages,
consultez Tâche de requête d’exploration de données et Solutions d’exploration de
données.
Options générales
Nom
Fournissez un nom unique pour la tâche de requête d'exploration de données. Ce nom
sert d'étiquette à l'icône de la tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Saisissez la description de la tâche de requête d'exploration de données.

Options de l'onglet Générer la requête


Requête d'exploration de données
Tapez une requête d'exploration de données.

Rubriques connexes :Informations de référence du langage DMX

Générer une nouvelle requête


Créez la requête d'exploration de données en utilisant un outil graphique.

Rubriques connexes :Data Mining Query

Options de l'onglet Mappage de paramètre


Nom du paramètre
Vous pouvez également mettre à jour le nom du paramètre. Mappez le paramètre à une
variable en sélectionnant cette dernière dans la liste Nom de la variable .

Nom de la variable
Sélectionnez une variable dans la liste pour l'associer au paramètre.

Ajouter
Ajoute un paramètre à la liste.

Remove
Sélectionnez un paramètre, puis cliquez sur Supprimer.

Options de l'onglet Ensemble de résultats


Nom de résultat
Vous pouvez également mettre à jour le nom de l'ensemble de résultats. Mappez le
résultat à une variable en sélectionnant cette dernière dans la liste Nom de la variable .

Après avoir ajouté un résultat en cliquant sur Ajouter, définissez un nom unique pour le
résultat.

Nom de la variable
Sélectionnez une variable dans la liste pour l'associer à l'ensemble de résultats.

Type de résultat
Indique si une ligne ou un ensemble de résultats complet doit être retourné.

Ajouter
Ajoute un ensemble de résultats à la liste.

Remove
Sélectionnez un résultat et cliquez sur Supprimer.

Éditeur de tâche de requête d'exploration de


données (onglet Sortie)
Utilisez l'onglet Sortie de la boîte de dialogue Éditeur de tâche de requête
d'exploration de données pour définir la destination de la requête de prédiction.

Pour en savoir plus sur l’implémentation de l’exploration de données dans les packages,
consultez Tâche de requête d’exploration de données et Solutions d’exploration de
données.

Options générales
Nom
Fournissez un nom unique pour la tâche de requête d'exploration de données. Ce nom
sert d'étiquette à l'icône de la tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Saisissez la description de la tâche de requête d'exploration de données.
Options de l'onglet Sortie
Connection
Sélectionnez un gestionnaire de connexions dans la liste ou cliquez sur Nouveau pour
en créer un.

Nouveau
Crée un gestionnaire de connexions. Vous ne pouvez utiliser que les types de
gestionnaires de connexions ADO.NET et OLE DB.

Table de sortie
Définissez la table dans laquelle la requête de prédiction écrit ses résultats.

Supprimer et recréer la table de sortie


Indiquez si la requête de prédiction doit remplacer le contenu de la table de destination
en supprimant, puis en recréant la table.
Requête d'exploration de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

) Important

L’exploration de données a été dépréciée dans SQL Server 2017 (14.x) Analysis
Services et est à présent abandonnée dans SQL Server 2022 (16.x) Analysis Services.
La documentation n’est pas mise à jour pour les fonctionnalités déconseillées et
abandonnées. Pour en savoir plus, consultez Compatibilité descendante d’Analysis
Services.

Le volet de conception contient le Générateur de requêtes de prévisions d'exploration


de données, qui peut servir à créer des requêtes de prévisions d'exploration de données.
Vous pouvez concevoir des requêtes de prévisions basées sur des tables d'entrée ou des
requêtes de prévisions singleton. Passez à la vue de résultat pour exécuter la requête et
afficher les résultats. La vue de la requête affiche la requête DMX (Data Mining
Extensions) créée par le Générateur de requêtes de prévisions d'exploration de données.

Options
Bouton de basculement entre les vues
Cliquez sur une icône pour basculer entre le volet de conception et le volet de requête.
Par défaut, le volet de conception est ouvert.

Pour basculer vers le volet de conception, cliquez sur l’icône .

Pour basculer vers le volet de requête, cliquez sur l’icône .

Modèle d'exploration de données


Choisissez le modèle d'exploration de données sur lequel vous souhaitez baser vos
prévisions.

Sélectionner un modèle
Ouvre la boîte de dialogue Sélectionnez un modèle d’exploration de données .

Colonnes d'entrée
Affiche les colonnes d'entrée sélectionnées utilisées pour générer les prévisions.
Source
Sélectionnez dans la liste déroulante la source contenant le champ qui sera utilisé pour
la colonne. Vous pouvez utiliser le modèle d’exploration de données sélectionné dans la
table Modèle d’exploration de données , la ou les tables d’entrée sélectionnées dans la
table Sélectionner une ou plusieurs tables d’entrée , une fonction de prédiction ou une
expression personnalisée.

Les colonnes des tables contenant le modèle d'exploration de données et les colonnes
d'entrée peuvent être glissées et déplacées sur la cellule.

Champ
Sélectionnez une colonne dans la liste des colonnes dérivées de la table source. Si vous
avez sélectionné Fonction de prédiction dans Source, cette cellule contient une liste
déroulante des fonctions de prédiction disponibles pour le modèle d’exploration de
données sélectionné.

Alias
Nom de la colonne retourné par le serveur.

Afficher
Sélectionnez cette option pour retourner la colonne ou pour utiliser la colonne
uniquement dans la clause WHERE.

Groupe
Utilisez cette option avec la colonne et/ou pour regrouper les expressions. Par exemple,
(expr1 OU expr2) ET expr3.

et/ou
Utilisez cette option pour créer une requête logique. Par exemple, (expr1 OU expr2) ET
expr3.

Critères/Argument
Spécifiez une condition ou une expression utilisateur qui s'applique à la colonne. Les
colonnes des tables contenant le modèle d'exploration de données et les colonnes
d'entrée peuvent être glissées et déplacées sur la cellule.

Voir aussi
Outils de requête d’exploration de données
Guide de référence des instructions DMX (Data Mining Extensions)
Tâche de profilage des données et
visionneuse
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de profilage des données fournit des fonctionnalités de profilage de données à


l'intérieur du processus d'extraction, de transformation et de chargement de données.
Grâce à la tâche de profilage des données, vous pouvez bénéficier des avantages
suivants :

Analyser les données sources plus efficacement

Mieux comprendre les données sources

Empêcher les problèmes de qualité des données avant qu'ils ne soient introduits
dans l'entrepôt de données

) Important

La tâche de profilage des données fonctionne uniquement avec les données


stockées dans SQL Server. Elle ne fonctionne pas avec les sources de données
tierces ou basées sur des fichiers.

Présentation du profilage des données


La qualité des données est cruciale dans toute entreprise. Compte tenu du fait que les
systèmes analytiques et décisionnels des entreprises sont fondés sur leurs systèmes
transactionnels, la fiabilité des indicateurs de performance clés et des prédictions
d'exploration de données dépend entièrement de la validité des données sur lesquelles
ils sont basés. Parallèlement à l'importance croissante des données valides dans la prise
de décision en entreprise, le processus de validation de ces données est de plus en plus
complexe. Les données affluent constamment dans l'entreprise, en provenance de
systèmes et de sources variés et d'un grand nombre d'utilisateurs.

Les mesures de la qualité des données peuvent être difficiles à mettre en place car elles
sont spécifiques au domaine ou à l'application. Une approche commune à la définition
de la qualité des données est le profilage des données.
Un profil de données est une collection de statistiques agrégées sur les données qui
peut regrouper, par exemple :

le nombre de lignes dans la table Customer ;

le nombre de valeurs distinctes dans la colonne State ;

le nombre de valeurs Null ou manquantes dans la colonne Zip ;

la distribution des valeurs dans la colonne City ;

la puissance de la dépendance fonctionnelle de la colonne State sur la colonne Zip


(en d’autres termes, un État américain doit toujours être le même pour une valeur
de code postal donnée).

Les statistiques fournies par un profil de données vous donnent les informations
nécessaires pour minimiser de manière efficace les problèmes de qualité qui peuvent
résulter de l'utilisation des données sources.

Integration Services et profilage des données


Dans Integration Services, le processus de profilage des données comprend les étapes
suivantes :

Étape 1 : Configuration de la tâche de profilage des données


La tâche de profilage des données vous permet de configurer les profils à calculer. Vous
exécutez ensuite le package qui contient la tâche de profilage des données pour
calculer les profils. La tâche enregistre la sortie du profil au format XML dans un fichier
ou une variable de package.

Pour plus d’informations :Configuration de la tâche de profilage des données

Étape 2 : Vérification des profils calculés par la tâche de profilage des données
Pour examiner les profils de données calculés par la tâche de profilage des données,
vous envoyez la sortie à un fichier, puis vous utilisez la visionneuse du profil des
données. Cette visionneuse est un utilitaire autonome qui affiche la sortie du profil, sous
forme d'informations résumées et détaillées, avec en option une fonction d'exploration
vers le bas.

Pour plus d’informations :Visionneuse du profil des données

Ajout de la logique conditionnelle au flux de travail de


profilage des données
La tâche de profilage des données n'inclut pas de fonctionnalités intégrées vous
permettant d'utiliser la logique conditionnelle pour connecter cette tâche aux tâches en
aval basées sur la sortie du profil. Toutefois, vous pouvez ajouter facilement cette
logique, avec un minimum de programmation, dans une tâche de script. Par exemple,
vous pouvez définir une tâche de script qui effectue une requête XPath sur le fichier de
sortie de la tâche de profilage des données. La requête peut déterminer si le
pourcentage de valeurs NULL dans une colonne particulière dépasse un certain seuil. Si
tel est le cas, vous pouvez interrompre le package et résoudre le problème dans les
données sources avant de continuer. Pour plus d’informations, consultez Incorporer une
tâche de profilage des données dans le flux de travail du package.

Contenu associé
Schéma du profileur de données
Configuration de la tâche de profilage
des données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Avant de pouvoir examiner un profil des données sources, vous devez tout d'abord
configurer et exécuter la tâche de profilage des données. Vous créez cette tâche dans un
package Integration Services . Pour configurer la tâche de profilage des données, vous
utilisez l'Éditeur de tâche de profilage de données. Cet éditeur vous permet de
sélectionner l'emplacement de sortie des profils et les profils à calculer. Après avoir
configuré la tâche, vous exécutez le package pour calculer les profils des données.

Limitations et exigences
La tâche de profilage des données fonctionne uniquement avec les données stockées
dans SQL Server. Elle ne fonctionne pas avec les sources de données tierces ou basées
sur des fichiers.

En outre, pour exécuter un package qui contient la tâche de profilage des données, vous
devez utiliser un compte qui dispose d'autorisations de lecture/écriture, notamment les
autorisations CREATE TABLE, sur la base de données tempdb.

Tâche de profilage des données dans un


package
La tâche de profilage des données configure uniquement les profils et crée le fichier de
sortie qui contient les profils calculés. Pour examiner ce fichier de sortie, vous devez
utiliser la visionneuse du profil des données qui est un programme autonome. Étant
donné que vous devez examiner la sortie séparément, vous pouvez utiliser la tâche de
profilage des données dans un package qui ne contient pas d'autres tâches.

Toutefois, vous n'êtes pas tenu d'utiliser la tâche de profilage des données comme la
seule tâche d'un package. Si vous souhaitez effectuer le profilage des données dans le
flux de travail ou le flux de données d'un package plus complexe, vous avez le choix
entre les options suivantes :

Pour implémenter la logique conditionnelle basée sur le fichier de sortie de la


tâche, dans le flux de contrôle du package, placez une tâche de script après la
tâche de profilage des données. Vous pouvez ensuite utiliser cette tâche de script
pour interroger le fichier de sortie.

Pour profiler les données dans le flux de données une fois que les données ont été
chargées et transformées, vous devez enregistrer les données modifiées
temporairement dans une table SQL Server . Ensuite, vous pouvez profiler les
données enregistrées.

Pour plus d’informations, consultez Incorporer une tâche de profilage des données dans
le flux de travail du package.

Configuration de la sortie de la tâche


Une fois que la tâche de profilage des données est dans un package, vous devez
configurer la sortie pour les profils que la tâche calculera. Pour configurer la sortie des
profils, vous devez utiliser la page Général de l'Éditeur de tâche de profilage des
données. Outre la spécification de la destination de la sortie, la page Général vous offre
également la possibilité d'effectuer un profil rapide des données. Lorsque vous
sélectionnez Profil rapide, la tâche de profilage des données profile une table ou une
vue en utilisant une partie ou la totalité des profils par défaut avec leurs paramètres par
défaut.

Pour plus d’informations, consultez Éditeur de tâche de profilage de données (page


Général) et Formulaire de profil rapide de table simple (tâche de profilage des données).

) Important

Le fichier de sortie peut contenir des données sensibles qui concernent votre base
de données et les données qu'elle contient. Pour obtenir des suggestions sur la
manière de sécuriser davantage ce fichier, consultez Accéder aux fichiers utilisés
par des packages.

Sélection et configuration des profils à calculer


Après avoir configuré le fichier de sortie, vous devez sélectionner les profils de données
à calculer. La tâche de profilage des données peut calculer huit profils de données
différents. Cinq de ces profils analysent des colonnes individuelles, tandis que les trois
autres analysent plusieurs colonnes ou les relations entre des colonnes et des tables.
Dans une même tâche de profilage des données, vous pouvez calculer plusieurs profils
pour plusieurs colonnes ou des combinaisons de colonnes dans plusieurs tables ou
vues.

Le tableau suivant décrit les rapports calculés par chacun de ces profils ainsi que les
types de données pour lesquels les profils sont valides.

Pour calculer Afin d'identifier Utilisez ce profil

Toutes les longueurs Les valeurs de chaîne qui ne sont pas Profil de distribution de
distinctes des valeurs valides. Par exemple, vous profilez une longueurs de colonne.
de chaîne dans la colonne supposée utiliser deux caractères Valide pour une colonne
colonne sélectionnée, pour les codes des États américains et avec l’un des types de
ainsi que le découvrez des valeurs qui comportent données caractères
pourcentage de lignes plus de deux caractères. suivants :
dans la table que
chaque longueur char
représente.
nchar

varchar

nvarchar

Un ensemble Les valeurs de chaîne qui ne sont pas Profil de motif de


d'expressions régulières valides ou dont le format est incorrect. colonne. Valide pour une
qui reflètent le Par exemple, un profil de modèle d’une colonne avec l’un des
pourcentage spécifié colonne de codes zip/postaux peut types de données
de valeurs dans une produire les expressions régulières : caractères suivants :
colonne de chaîne. \d{5}-\d{4}, \d{5} et \d{9}. Si la sortie
contient d'autres expressions régulières, char
Mais aussi pour les données contiennent des valeurs qui
rechercher des ne sont pas valides ou dont le format est nchar
expressions régulières incorrect.
qui peuvent être varchar
utilisées dans le futur
pour valider de nvarchar
nouvelles valeurs.
Pour calculer Afin d'identifier Utilisez ce profil

Le pourcentage de Un ratio élevé inattendu de valeurs Null Profil de ratio Null de la


valeurs Null dans la dans une colonne. Par exemple, vous colonne. Valide pour une
colonne sélectionnée. profilez une colonne supposée contenir colonne avec l’un des
des codes postaux américains et types de données
découvrez un pourcentage élevé et suivants :
inacceptable de codes manquants.
image

text

xml

types définis par


l'utilisateur

types Variant
Pour calculer Afin d'identifier Utilisez ce profil

Des statistiques, telles Les valeurs numériques et les dates qui Profil de statistiques de
que la valeur minimale, ne sont pas valides. Par exemple, vous colonnes. Valide pour une
la valeur maximale, la profilez une colonne de dates historiques colonne avec l’un des
moyenne et l'écart type et découvrez une date maximale qui n’est types de données suivants.
pour des colonnes pas encore passée.
numériques, ainsi que Types de données
la valeur minimale et la numériques :
valeur maximale pour
des colonnes datetime types integer (sauf bit
.
money

smallmoney

decimal

float

real

numeric

Types de données de date


et d’heure :

datetime

smalldatetime

timestamp

date

time

datetime2

datetimeoffset

Remarque : pour une


colonne comportant un
type de données de date
et d’heure, le profil calcule
uniquement le minimum
et le maximum.

Toutes les valeurs Un nombre incorrect de valeurs Profil de distribution de


Pour calculer Afin d'identifier Utilisez ce profil

distinctes dans la distinctes dans une colonne. Par valeurs de colonne. Valide
colonne sélectionnée, exemple, vous profilez une colonne qui pour une colonne avec
ainsi que le contient les États américains et découvrez l’un des types de données
pourcentage de lignes plus de 50 valeurs distinctes. suivants.
dans la table que
chaque valeur Types de données
représente. Ou les numériques :
valeurs qui
représentent plus qu'un types integer (sauf bit
pourcentage spécifié
dans la table. money

smallmoney

decimal

float

real

numeric

Types de données
caractères :

char

nchar

varchar

nvarchar

Types de données de date


et d’heure :

datetime

smalldatetime

timestamp

date

time

datetime2
Pour calculer Afin d'identifier Utilisez ce profil

datetimeoffset

Si une colonne ou un Les valeurs dupliquées dans une colonne Profil de clé candidate. Un
ensemble de colonnes clé potentielle. Par exemple, vous profilez profil de plusieurs
est une clé, ou une clé les colonnes Name et Address d’une colonnes qui indique si
approximative, pour la table Customers et découvrez des valeurs une colonne ou un
table sélectionnée. dupliquées là où les combinaisons nom ensemble de colonnes est
et adresse doivent être uniques. approprié pour servir de
clé pour la table
sélectionnée. Valide pour
les colonnes avec l’un des
types de données suivants
:

Types de données integer :

bit

tinyint

smallint

int

bigint

Types de données
caractères :

char

nchar

varchar

nvarchar

Types de données de date


et d’heure :

datetime

smalldatetime

timestamp

date
Pour calculer Afin d'identifier Utilisez ce profil

time

datetime2

datetimeoffset
Pour calculer Afin d'identifier Utilisez ce profil

Degré de dépendance Les valeurs qui ne sont pas valides dans Profil de dépendance
entre les valeurs d'une des colonnes dépendantes. Par exemple, fonctionnelle. Valide pour
colonne (colonne vous profilez la dépendance entre une les colonnes avec l’un des
dépendante) et celles colonne qui contient les codes postaux types de données suivants.
d'une autre colonne ou américains et une colonne qui contient
d'un ensemble de les États américains. Le même code postal Types de données integer :
colonnes (colonne doit toujours être associé au même État.
déterminante). Toutefois, le profil détecte des violations bit
de cette dépendance.
tinyint

smallint

int

bigint

Types de données
caractères :

char

nchar

varchar

nvarchar

Types de données de date


et d’heure :

datetime

smalldatetime

timestamp

date

time

datetime2

datetimeoffset
Pour calculer Afin d'identifier Utilisez ce profil

Si une colonne ou un Les valeurs qui ne sont pas valides. Par Profil d’inclusion de
ensemble de colonnes exemple, vous profilez la colonne valeur. Valide pour les
est approprié pour ProductID d’une table Sales et découvrez colonnes avec l’un de ces
servir de clé étrangère que la colonne contient des valeurs qui types de données :
entre les tables sont introuvables dans la colonne
sélectionnées. ProductID de la table Products. Types de données integer :

Autrement dit, ce profil bit


signale le
chevauchement des tinyint
valeurs entre deux
colonnes ou ensembles smallint
de colonnes.
int

bigint

Types de données
caractères :

char

nchar

varchar

nvarchar

Types de données de date


et d’heure :

datetime

smalldatetime

timestamp

date

time

datetime2

datetimeoffset

Pour sélectionner les profils à calculer, vous devez utiliser la page Demandes de profil
de l'Éditeur de tâche de profilage des données. Pour plus d’informations, consultez
Éditeur de tâche de profilage de données (page Général).

Dans la page Demandes de profil , vous spécifiez également la source de données et


vous configurez les profils de données. Lorsque vous configurez la tâche, tenez compte
des informations suivantes :

Pour simplifier la configuration et faciliter la découverte des caractéristiques de


données inconnues, vous pouvez utiliser le caractère générique (*) à la place du
nom d’une colonne. Si vous utilisez ce caractère générique, la tâche profilera
chaque colonne dotée d'un type de données approprié, qui à son tour pourra
ralentir le traitement.

Lorsque la table ou la vue sélectionnée est vide, la tâche de profilage des données
ne calcule pas de profils.

Lorsque toutes les valeurs dans la colonne sélectionnée sont Null, la tâche de
profilage des données calcule uniquement le profil de ratio de colonne Null. Elle
ne calcule pas le profil de distribution de longueurs de colonne, de modèle de
colonne, de statistiques de colonnes ou de distribution de valeurs de colonne pour
la colonne vide.

Chacun des profils de données disponibles possède ses propres options de


configuration. Pour plus d'informations sur ces options, consultez les rubriques
suivantes :

Options Demande de profil de clé candidate (tâche de profilage des données)

Options Demande de profil de distribution de longueurs de colonne (tâche de


profilage des données)

Options Demande de profil de ratio de colonne Null (tâche de profilage des


données)

Options Demande de profil de modèle de colonne (tâche de profilage des


données)

Options Demande de profil de statistiques de colonnes (tâche de profilage des


données)

Options Demande de profil de distribution de valeurs de colonne (tâche de


profilage des données)

Options Demande de profil de dépendance fonctionnelle (tâche de profilage des


données)
Options Demande de profil d'inclusion de valeur (tâche de profilage des données)

Exécution du package qui contient la tâche de


profilage des données
Après avoir configuré la tâche de profilage des données, vous pouvez l'exécuter. La
tâche calcule ensuite les profils de données et génère en sortie ces informations au
format XML dans un fichier ou dans une variable de package. La structure de ce code
XML respecte le schéma DataProfile.xsd. Vous pouvez ouvrir le schéma dans Microsoft
Visual Studio ou un autre éditeur de schéma, dans un éditeur XML ou encore dans un
éditeur de texte tel que le Bloc-notes. Ce schéma pour les informations sur la qualité des
données peut être utile aux fins suivantes :

pour échanger des informations sur la qualité des données au sein d'une
organisation ou entre plusieurs organisations ;

pour construire des outils personnalisés qui fonctionnent avec les informations sur
la qualité des données.

L’espace de noms cible est identifié dans le schéma en tant que


https://schemas.microsoft.com/sqlserver/2008/DataDebugger/ .

étape suivante
Visionneuse du profil des données.
Visionneuse du profil des données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

L'affichage et l'analyse des profils des données sont les étapes suivantes du processus
de profilage des données. Pour afficher ces profils, vous devez avoir exécuté la tâche de
profilage des données dans un package Integration Services et avoir calculé les profils
des données. Pour plus d’informations sur la configuration et l’exécution des tâches de
profilage des données, consultez Configuration de la tâche de profilage des données.

) Important

Le fichier de sortie peut contenir des données sensibles qui concernent votre base
de données et les données qu'elle contient. Pour obtenir des suggestions sur la
manière de sécuriser davantage ce fichier, consultez Accéder aux fichiers utilisés
par des packages.

Profils de données
Pour afficher les profils des données, vous configurez la tâche de profilage des données
de manière à envoyer sa sortie à un fichier, puis vous utilisez la visionneuse du profil des
données autonome. Pour ouvrir la visionneuse du profil des données, effectuez l'une des
actions suivantes :

Cliquez avec le bouton droit sur la tâche de profilage des données dans le
concepteur SSIS , puis cliquez sur Modifier. Cliquez sur Ouvrir la visionneuse de
profil dans la page Général de l’Éditeur de tâche de profilage de données.

Dans le dossier <lecteur>:\Program Files (x86) | Program Files\Microsoft SQL


Server\110\DTS\Binn, run DataProfileViewer.exe.

La visionneuse utilise plusieurs volets pour afficher les profils demandés et les résultats
calculés avec, en option, des détails et une fonction d'exploration vers le bas :

VoletProfils
Le volet Profils affiche les profils demandés dans la tâche de profilage des données.
Pour afficher les résultats calculés pour le profil, sélectionnez le profil dans le volet
Profils . Les résultats apparaîtront dans les autres volets de la visionneuse.
VoletRésultats
Le volet Résultats résume les résultats calculés du profil sur une seule ligne. Par
exemple, si vous demandez un Profil de distribution de longueurs de colonne, cette
ligne inclut la longueur minimale et la longueur maximale, ainsi que le nombre de
lignes. Pour la plupart des profils, vous pouvez sélectionner cette ligne dans le volet
Résultats pour afficher d’autres détails dans le volet Détails facultatif.

VoletDétails
Pour la plupart des types de profils, le volet Détails affiche des informations
supplémentaires à propos des résultats du profil sélectionnés dans le volet Résultats .
Par exemple, si vous demandez un Profil de distribution de longueurs de colonne, le
volet Détails affiche chaque longueur de colonne qui a été trouvée. Le volet affiche aussi
le nombre et le pourcentage de lignes dans lesquelles la valeur de colonne est égale à
cette longueur de colonne.

Pour les trois types de profils qui sont calculés sur plusieurs colonnes (Profil de clé
candidate, Profil de dépendance fonctionnelle et Profil d’inclusion de valeur), le volet
Détails affiche les violations de la relation attendue. Par exemple, si vous demandez un
Profil de clé candidate, le volet Détails affiche les valeurs dupliquées qui enfreignent
l'unicité de la clé candidate.

Si la source de données utilisée pour calculer le profil est disponible, vous pouvez
double-cliquer sur une ligne dans le volet Détails pour consulter les lignes
correspondantes de données dans le volet Exploration vers le bas .

VoletExploration vers le bas


Vous pouvez double-cliquer sur une ligne dans le volet Détails pour consulter les lignes
correspondantes de données dans le volet Exploration vers le bas quand les conditions
suivantes sont vérifiées :

La source de données utilisée pour calculer le profil est disponible.

Vous êtes autorisé à afficher les données.

Pour se connecter à la base de données source lors d'une requête d'exploration vers le
bas, la visionneuse du profil des données utilise l'authentification Windows et les
informations d'identification de l'utilisateur actuel. La visionneuse du profil des données
n'utilise pas les informations de connexion stockées dans le package qui a exécuté la
tâche de profilage des données.

) Important
La fonction d'exploration vers le bas disponible dans la visionneuse du profil des
données envoie des requêtes actives à la source de données d'origine. Ces
requêtes peuvent avoir un impact négatif sur les performances du serveur.

Si vous descendez dans la hiérarchie à partir d'un fichier de sortie qui n'a pas été
créé récemment, les requêtes d'exploration risquent de retourner un autre
ensemble de lignes que celui à partir duquel la sortie d'origine a été calculée.

Pour plus d’informations sur l’interface utilisateur de la visionneuse du profil des


données, consultez Aide F1 de la visionneuse du profil des données.

Aide F1 de la Visionneuse du profil des données


Utilisez la Visionneuse du profil des données pour afficher la sortie de la tâche de
profilage des données.

Pour plus d’informations sur le mode d’utilisation de la Visionneuse du profil des


données, consultez Visionneuse du profil des données. Pour plus d’informations sur
l’utilisation de la tâche de profilage des données, qui crée la sortie de profil que vous
analysez dans la Visionneuse du profil des données, consultez Configuration de la tâche
de profilage des données.

Options statiques
Ouvrir
Cliquez pour accéder au fichier enregistré qui contient la sortie de la tâche de profilage
des données.

VoletProfils
Développez l’arborescence du volet Profils pour consulter les profils inclus dans la
sortie. Sélectionnez un profil afin d'afficher les résultats de ce profil.

VoletMessage
Affiche des messages d'état.

VoletExploration vers le bas


Affiche les lignes de données qui correspondent à une valeur dans la sortie, si la source
de données utilisée par la tâche de profilage des données est disponible.

Par exemple, si vous affichez la sortie d’un profil de distribution de valeurs de colonne
pour une colonne des états américains, le volet Distribution de valeurs peut contenir
une ligne pour « WA ». Double-cliquez sur la ligne dans le volet Distribution de valeurs
pour consulter les lignes de données pour lesquelles la valeur de la colonne d’état est «
WA » dans le volet d’exploration.

Options dynamiques

Type de profil = Profil de distribution de longueurs de colonne

Profil de distribution de longueurs de colonne - volet <colonne>

Longueur minimale
Affiche la longueur minimale des valeurs de cette colonne.

Longueur maximale
Affiche la longueur maximale des valeurs de cette colonne.

Ignorer les espaces de début


Indique si ce profil a été calculé avec une valeur IgnoreLeadingSpaces True ou False.
Cette propriété a été définie dans la page Demandes de profil de l’éditeur de tâche de
profilage de données.

Ignorez les espaces de fin


Indique si ce profil a été calculé avec une valeur IgnoreTrailingSpaces True ou False.
Cette propriété a été définie dans la page Demandes de profil de l’éditeur de tâche de
profilage de données.

Nombre de lignes
Affiche le nombre de lignes présentes dans la table ou la vue.

Volet de distribution de longueurs détaillé

Longueur
Affiche les longueurs de colonne trouvées dans la colonne profilée.

Count
Affiche le nombre de lignes dans lesquelles la valeur de la colonne profilée a la longueur
affichée dans la colonne Longueur .

Percentage
Affiche le pourcentage de lignes dans lesquelles la valeur de la colonne profilée a la
longueur affichée dans la colonne Longueur .

Type de profil = Profil de ratio de colonne Null


Profil de ratio de colonne Null - volet <colonne>

Nombre null
Affiche le nombre de lignes dans lesquelles la colonne profilée possède une valeur
NULL.

Pourcentage null
Affiche le pourcentage de lignes dans lesquelles la colonne profilée possède une valeur
NULL.

Nombre de lignes
Affiche le nombre de lignes présentes dans la table ou la vue.

Type de profil = Profil de modèle de colonne

Profil de modèle de colonne - volet <colonne>

Nombre de lignes
Affiche le nombre de lignes présentes dans la table ou la vue.

Volet Distribution de modèles

Modèle
Affiche les modèles calculés pour la colonne profilée.

Percentage
Affiche le pourcentage de lignes dont les valeurs correspondent au modèle affiché dans
la colonne Modèle .

Type de profil = Profil de statistiques de colonnes

Profil de statistiques de colonnes - volet <colonne>

Minimum
Affiche la valeur minimale trouvée dans la colonne profilée.

Maximum
Affiche la valeur maximale trouvée dans la colonne profilée.

Mean
Affiche la moyenne des valeurs trouvées dans la colonne profilée.
Écart type
Affiche l'écart type des valeurs trouvées dans la colonne profilée.

Type de profil = Profil de distribution de valeurs de colonne

Profil de distribution de valeurs de colonne - volet <colonne>

Nombre de valeurs distinctes


Affiche le nombre de valeurs distinctes trouvées dans la colonne profilée.

Nombre de lignes
Affiche le nombre de lignes présentes dans la table ou la vue.

Volet de distribution de valeurs détaillé

Valeur
Affiche les valeurs distinctes trouvées dans la colonne profilée.

Count
Affiche le nombre de lignes dans lesquelles la colonne profilée a la valeur affichée dans
la colonne Valeur .

Percentage
Affiche le pourcentage de lignes dans lesquelles la colonne profilée a la valeur affichée
dans la colonne Valeur .

Type de profil = Profil de clé candidate

Profil de clé candidate - volet <table>

Colonnes clés
Affiche les colonnes sélectionnées pour le profilage en tant que clé candidate.

Puissance de la clé
Affiche la puissance (sous forme de pourcentage) de la colonne ou de la combinaison
de colonnes clés candidates. Une puissance de clé inférieure à 100 % indique qu'il existe
des valeurs dupliquées.

Volet Violations de clé


<colonne1>, <colonne2>, etc.
Affiche les valeurs dupliquées qui ont été détectées dans la colonne profilée.

Count
Affiche le nombre de lignes dans lesquelles la colonne spécifiée possède la valeur
affichée dans la première colonne.

Type de profil = Profil de dépendance fonctionnelle

Volet Profil de dépendance fonctionnelle

Colonnes déterminantes
Affiche les colonnes sélectionnées comme colonnes déterminantes. Dans l'exemple où
le même code postal américain doit systématiquement posséder le même état, le code
postal est la colonne déterminante.

Colonnes dépendantes
Affiche les colonnes sélectionnées comme colonnes dépendantes. Dans l'exemple où le
même code postal d'état américain doit systématiquement posséder le même état, l'état
est la colonne déterminante.

Puissance de la dépendance fonctionnelle


Affiche la puissance (sous forme de pourcentage) de la dépendance fonctionnelle entre
les colonnes. Une puissance de clé inférieure à 100% indique qu'il existe des situations
où la valeur déterminante ne détermine pas la valeur dépendante. Dans l'exemple où le
même code postal d'état américain doit systématiquement posséder le même état, cela
indique probablement que certaines valeurs d'état ne sont pas valides.

Volet Violations de la dépendance fonctionnelle

7 Notes

Un pourcentage élevé de valeurs erronées dans les données peut générer des
résultats inattendus d'un profil de dépendance fonctionnelle. Par exemple, 90 %
des lignes ont une valeur « WI » pour État avec une valeur « 98052 » pour Code
postal. Le profil signale les lignes qui contiennent la valeur correcte de État, « WA »,
en tant que violations.

<nom de colonne déterminante>


Affiche la valeur de la colonne déterminante ou de la combinaison de colonnes dans
cette instance d'une violation de dépendance fonctionnelle.
<nom de colonne dépendante>
Affiche la valeur de la colonne dépendante dans cette instance d'une violation de
dépendance fonctionnelle.

Nombre de supports
Affiche le nombre de lignes dans lesquelles la valeur de colonne déterminante
détermine la colonne dépendante.

Nombre de violations
Affiche le nombre de lignes dans lesquelles la valeur de colonne déterminante ne
détermine pas la colonne dépendante. (Il s’agit des lignes où la valeur dépendante est la
valeur affichée dans la colonne <nom de colonne dépendante>.)

Pourcentage de supports
Affiche le pourcentage de lignes dans lesquelles la colonne déterminante détermine la
colonne dépendante.

Type de profil = Profil d'inclusion de valeur

Volet du profil d'inclusion de valeur

Colonnes côté sous-ensemble


Affiche la colonne ou la combinaison de colonnes qui ont été profilées pour déterminer
si elles figurent dans les colonnes du sur-ensemble.

Colonnes côté sur-ensemble


Affiche la colonne ou la combinaison de colonnes qui ont été profilées pour déterminer
si elles incluent les valeurs dans les colonnes du sous-ensemble.

Puissance d'inclusion
Affiche la puissance (sous forme de pourcentage) du chevauchement entre les colonnes.
Une puissance de clé inférieure à 100 % indique que dans certains cas, la valeur du
sous-ensemble est introuvable parmi les valeurs du sur-ensemble.

Volet des violations d'inclusion

<colonne1>, <colonne2>, etc.


Affiche les valeurs de la colonne ou des colonnes du sous-ensemble qui étaient
introuvables dans la colonne ou les colonnes du sur-ensemble.

Count
Affiche le nombre de lignes dans lesquelles la colonne spécifiée possède la valeur
affichée dans la première colonne.
Tâche de profilage des données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de profilage des données calcule différents profils qui vous aident à vous
familiariser avec une source de données et à identifier les problèmes à résoudre au
niveau des données.

Vous pouvez utiliser la tâche de profilage des données à l’intérieur d’un package
Integration Services pour profiler les données stockées dans SQL Server et pour
identifier les problèmes potentiels de qualité des données.

7 Notes

Cette rubrique décrit uniquement les fonctionnalités et les spécifications de la


tâche de profilage des données. Pour connaître la procédure pas à pas d’utilisation
de la tâche de profilage des données, consultez la section Tâche de profilage des
données et visionneuse.

Limitations et exigences
La tâche de profilage des données fonctionne uniquement avec les données stockées
dans SQL Server. Cette tâche ne fonctionne pas avec les sources de données tierces ou
basées sur des fichiers.

En outre, pour exécuter un package qui contient la tâche de profilage des données, vous
devez utiliser un compte qui dispose d'autorisations de lecture/écriture, notamment les
autorisations CREATE TABLE, sur la base de données tempdb.

Visionneuse du profil des données


Après avoir utilisé la tâche pour calculer des profils de données et enregistrer ceux-ci
dans un fichier, vous pouvez utiliser la visionneuse du profil des données autonome
pour passer en revue la sortie du profil. La visionneuse du profil des données prend
également en charge l'exploration vers le bas pour vous aider à comprendre les
problèmes de qualité des données qui sont identifiés dans la sortie du profil. Pour plus
d’informations, consultez Visionneuse du profil des données.
) Important

Le fichier de sortie peut contenir des données sensibles qui concernent votre base
de données et les données qu’elle contient. Pour obtenir des suggestions sur la
manière de sécuriser davantage ce fichier, consultez Accéder aux fichiers utilisés
par des packages.

La fonction d'exploration vers le bas, disponible dans la visionneuse du profil des


données, envoie des requêtes actives à la source de données d'origine.

Profils disponibles
La tâche de profilage des données peut calculer huit profils de données différents. Cinq
de ces profils analysent des colonnes individuelles, tandis que les trois autres analysent
plusieurs colonnes ou les relations entre des colonnes et des tables.

Les cinq profils suivants analysent des colonnes individuelles.

Profils qui Description


analysent
des
colonnes
individuelles

Profil de Signale toutes les longueurs distinctes des valeurs de chaîne dans la colonne
distribution sélectionnée, ainsi que le pourcentage de lignes dans la table que chaque
de longueurs longueur représente.
de colonne
Ce profil vous aide à identifier des problèmes dans vos données, tels que des
valeurs non valides. Par exemple, vous profilez une colonne des codes des États
américains, ceux-ci comportant deux caractères, et découvrez des valeurs
excédant deux caractères.

Profil de ratio Signale le pourcentage de valeurs Null dans la colonne sélectionnée.


de colonne
Null Ce profil vous aide à identifier des problèmes dans vos données, tels qu'un ratio
élevé inattendu de valeurs Null dans une colonne. Par exemple, vous profilez une
colonne de codes postaux et découvrez un pourcentage élevé et inacceptable de
codes manquants.
Profils qui Description
analysent
des
colonnes
individuelles

Profil de Signale un ensemble d'expressions régulières qui reflètent le pourcentage spécifié


modèle de de valeurs dans une colonne de chaîne.
colonne
Ce profil vous aide à identifier des problèmes dans vos données, tels que des
chaînes non valides. Il peut également suggérer des expressions régulières
susceptibles d'être utilisées à l'avenir pour la validation de nouvelles valeurs. Par
exemple, un profil de modèle d'une colonne de codes postaux américains peut
générer les expressions régulières \d{5}-\d{4}, \d{5} et \d{9}. Si vous rencontrez
d'autres expressions régulières, il est probable que vos données contiennent des
valeurs qui ne sont pas valides ou utilisent un format incorrect.

Profil de Fournit des statistiques, telles que la valeur minimale, la valeur maximale, la
statistiques moyenne et l’écart type pour des colonnes numériques, ainsi que la valeur
de colonnes minimale et la valeur maximale pour des colonnes datetime .

Ce profil vous aide à identifier des problèmes dans vos données, tels que des
dates non valides. Par exemple, vous profilez une colonne de dates historiques et
découvrez une date maximum dont l'échéance est à venir.

Profil de Signale toutes les valeurs distinctes dans la colonne sélectionnée, ainsi que le
distribution pourcentage de lignes dans la table que chaque valeur représente. Peut
de valeurs de également signaler des valeurs qui représentent plus qu'un pourcentage de lignes
colonne spécifié dans la table.

Ce profil vous aide à identifier des problèmes dans vos données, tels qu'un
nombre incorrect de valeurs distinctes dans une colonne. Par exemple, vous
profilez une colonne supposée contenir les États américains et découvrez plus de
50 valeurs distinctes.

Les trois profils suivants analysent plusieurs colonnes ou les relations entre des colonnes
et des tables.

Profils qui Description


analysent
plusieurs
colonnes

Profil de clé Signale si une colonne ou un ensemble de colonnes est une clé, ou une clé
candidate approximative, pour la table sélectionnée.

Ce profil vous aide également à identifier des problèmes dans vos données, tels
que des valeurs dupliquées dans une colonne clé potentielle.
Profils qui Description
analysent
plusieurs
colonnes

Profil de Signale le degré de dépendance entre les valeurs d'une colonne (colonne
dépendance dépendante) et celles d'une autre colonne ou d'un ensemble de colonnes
fonctionnelle (colonne déterminante).

Ce profil vous aide également à identifier des problèmes dans vos données, tels
que des valeurs non valides. Par exemple, vous profilez la dépendance entre une
colonne qui contient les codes postaux américains et une colonne qui contient les
États américains. Le même code postal doit toujours afficher le même état mais le
profil détecte des violations de la dépendance.

Profil Calcule le chevauchement des valeurs entre deux colonnes ou ensembles de


d'inclusion colonnes. Ce profil permet de déterminer si une colonne ou un ensemble de
de valeur colonnes peut servir de clé étrangère entre les tables sélectionnées.

Ce profil vous aide également à identifier des problèmes dans vos données, tels
que des valeurs non valides. Par exemple, vous profilez la colonne ProductID
d'une table Sales et découvrez que la colonne contient des valeurs qui sont
introuvables dans la colonne ProductID de la table Products.

Conditions requises pour obtenir un profil


valide
Pour qu'un profil soit valide, vous devez sélectionner des tables et des colonnes qui ne
sont pas vides, et les colonnes doivent contenir des types de données valides pour le
profil.

Types de données valides


Certains des profils disponibles ne sont significatifs que pour certains types de données.
Par exemple, le fait de calculer un profil de modèle de colonne pour une colonne qui
contient des valeurs numériques ou datetime n’est pas significatif. Par conséquent, un
tel profil n'est pas valide.

Profil Types de données valides*

ColumnStatisticsProfile Colonnes de type numérique ou datetime (pas de mean et


stddev pour la colonne datetime )

ColumnNullRatioProfile Toutes les colonnes**


Profil Types de données valides*

ColumnValueDistributionProfile Colonnes de type entier , char et datetime

ColumnLengthDistributionProfile Colonnes de type char

ColumnPatternProfile Colonnes de type char

CandidateKeyProfile Colonnes de type entier , char et datetime

FunctionalDependencyProfile Colonnes de type entier , char et datetime

InclusionProfile Colonnes de type entier , char et datetime

* Dans le tableau précédent des types de données valides, les types entier, char,
datetime et numérique incluent les types de données spécifiques suivants :

Les types d’entiers sont bit, tinyint, smallint, intet bigint.

Les types de caractères sont char, nchar, varcharet nvarchar, mais n’incluent pas varchar
(max) et nvarchar (max).

Les types de date et d’heure sont datetime, smalldatetimeet timestamp.

Les types numériques sont les types entier (sauf bits), money, smallmoney, décimal,
float, réelet numérique.

** Les types image, texte, XML, UDT et variant ne sont pris en charge que pour le profil
de ratio de colonne Null.

Tables et colonnes valides


Si la table ou colonne est vide, la tâche de profilage des données entreprend les actions
suivantes :

Lorsque la table ou la vue sélectionnée est vide, la tâche de profilage des données
ne calcule pas de profils.

Lorsque toutes les valeurs dans la colonne sélectionnée sont Null, la tâche de
profilage des données calcule uniquement le profil de ratio de colonne Null. La
tâche ne calcule pas les profils de distribution de longueurs de colonne, de modèle
de colonne, de statistiques de colonnes ou de distribution de valeurs de colonne.

Fonctionnalités de la tâche de profilage des


données
Pratiques, les options de configuration de la tâche de profilage des données sont les
suivantes :

Colonnes génériques : quand vous configurez une demande de profil, la tâche


accepte le caractère générique (*) à la place d’un nom de colonne. Cela simplifie la
configuration et facilite la découverte des caractéristiques de données inconnues.
Lorsque la tâche s'exécute, elle profile chaque colonne ayant un type de données
approprié.

Profil rapide Vous pouvez sélectionner Profil rapide pour configurer la tâche
rapidement. Un profil rapide profile une table ou une vue en utilisant tous les
profils et paramètres par défaut.

Messages de journalisation personnalisés


disponibles dans la tâche de profilage des
données
Le tableau suivant répertorie les entrées de journal personnalisées pour la tâche de
profilage des données. Pour plus d’informations, consultez Journalisation d’Integration
Services (SSIS).

Entrée du journal Description

DataProfilingTaskTrace Donne des informations détaillées sur l'état de la tâche. Les messages
contiennent les informations suivantes :

Début de traitement des requêtes

Début de requête

Query End

Fin du calcul de requête

Sortie et son schéma


La tâche de profilage des données génère en sortie les profils sélectionnés en langage
XML structuré conformément au schéma DataProfile.xsd. Vous pouvez préciser si cette
sortie XML doit être enregistrée dans un fichier ou dans une variable de package. Vous
pouvez voir ce schéma en ligne sur
https://schemas.microsoft.com/sqlserver/2008/DataDebugger/ . Vous pouvez, à partir
de la page web, enregistrer une copie locale du schéma. Vous pouvez ensuite afficher la
copie locale du schéma dans Microsoft Visual Studio ou un autre éditeur de schéma,
dans un éditeur XML ou encore dans un éditeur de texte tel que le Bloc-notes.

Ce schéma pour les informations sur la qualité des données peut être utile pour :

échanger des informations sur la qualité des données au sein d'une organisation
ou entre plusieurs organisations ;

construire des outils personnalisés qui fonctionnent avec les informations sur la
qualité des données.

L’espace de noms cible est identifié dans le schéma en tant que


https://schemas.microsoft.com/sqlserver/2008/DataDebugger/ .

Sortie dans le flux de travail conditionnel d'un


package
Les composants de profilage des données n'incluent pas de fonctionnalités intégrées
pour implémenter la logique conditionnelle dans le flux de travail du package
Integration Services basée sur la sortie de la tâche de profilage des données. Toutefois,
vous pouvez ajouter facilement cette logique, avec un minimum de programmation,
dans une tâche de script. Ce code effectuerait une requête XPath sur la sortie XML, puis
enregistrerait le résultat dans une variable de package. Les contraintes de précédence
qui connectent la tâche de script aux tâches suivantes peuvent utiliser une expression
pour déterminer le flux de travail. Par exemple, la tâche de script détecte que le
pourcentage de valeurs Null dans une colonne dépasse un certain seuil. Lorsque cette
condition est remplie, vous pouvez interrompre le package et résoudre le problème
avant de continuer.

Configuration de la tâche de profilage des


données
Vous configurez la tâche de profilage des données en utilisant l’Éditeur de tâche de
profilage de données. L'éditeur comprend deux pages :

Page Général
Dans la page Général , vous spécifiez le fichier ou la variable de sortie. Vous pouvez
également sélectionner Profil rapide pour configurer rapidement la tâche afin de
calculer des profils à l’aide des paramètres par défaut. Pour plus d’informations,
consultez Formulaire de profil rapide de table simple (tâche de profilage des données).
Page Demandes de profil
Dans la page Demandes de profil , vous spécifiez la source de données et vous
sélectionnez et configurez les profils de données à calculer. Pour plus d'informations sur
les différents profils que vous pouvez configurer, consultez les rubriques suivantes :

Options Demande de profil de clé candidate (tâche de profilage des données)

Options Demande de profil de distribution de longueurs de colonne (tâche de


profilage des données)

Options Demande de profil de ratio de colonne Null (tâche de profilage des


données)

Options Demande de profil de modèle de colonne (tâche de profilage des


données)

Options Demande de profil de statistiques de colonnes (tâche de profilage des


données)

Options Demande de profil de distribution de valeurs de colonne (tâche de


profilage des données)

Options Demande de profil de dépendance fonctionnelle (tâche de profilage des


données)

Options Demande de profil d'inclusion de valeur (tâche de profilage des données)


Formulaire de profil rapide de table
simple (tâche de profilage des données)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez le Formulaire de profil rapide de table simple pour configurer rapidement la


tâche de profilage des données afin de profiler une table ou une vue unique à l'aide des
paramètres par défaut.

Pour plus d’informations sur l’utilisation de la tâche de profilage des données, consultez
Configuration de la tâche de profilage des données. Pour plus d’informations sur
l’utilisation de la visionneuse du profil des données pour analyser le résultat de la tâche
de profilage des données, consultez Visionneuse du profil des données.

Options
Connection
Sélectionnez un gestionnaire de connexions ADO.NET existant qui utilise le fournisseur
de données .NET pour SQL Server (SqlClient) afin d’établir la connexion à la base de
données SQL Server contenant la table ou la vue à profiler.

Table ou vue
Sélectionnez une table ou une vue dans la base de données à laquelle le gestionnaire de
connexions sélectionné se connecte.

Calcul
Sélectionnez les profils à calculer.

Valeur Description

Profil de ratio Calculez un profil de ratio de colonne Null à l'aide des paramètres par défaut
de colonne pour toutes les colonnes applicables dans la table ou la vue sélectionnée.
Null
Ce profil signale le pourcentage de valeurs NULL dans la colonne sélectionnée.
Ce profil peut vous aider à identifier des problèmes dans vos données, tels
qu'un ratio élevé inattendu de valeurs Null dans une colonne. Pour plus
d’informations sur les paramètres de ce profil, consultez Options de demande
de profil de ratio de colonne Null (Tâche de profilage des données).
Valeur Description

Profil de Calculez un profil de statistiques de colonnes à l'aide des paramètres par défaut
statistiques de pour toutes les colonnes applicables dans la table ou la vue sélectionnée.
colonnes
Ce profil répertorie des statistiques, telles que l'écart minimal, maximal, moyen
et type pour les colonnes numériques, ainsi que l'écart minimal et maximal pour
les colonnes datetime . Ce profil peut vous aider à identifier des problèmes dans
vos données, tels que des dates non valides. Pour plus d’informations sur les
paramètres de ce profil, consultez Options de demande de profil de statistiques
de colonnes (Tâche de profilage des données).

Profil de Calculez un profil de distribution de valeurs de colonne à l'aide des paramètres


distribution par défaut pour toutes les colonnes applicables dans la table ou la vue
de valeurs de sélectionnée.
colonne
Ce profil permet de préciser toutes les valeurs distinctes dans la colonne
sélectionnée, ainsi que le pourcentage de lignes dans la table que représente
chaque valeur. Ce profil peut également signaler les valeurs qui représentent
beaucoup plus qu'un pourcentage de lignes spécifié dans la table. Il peut vous
aider à identifier des problèmes dans vos données, tels qu'un nombre incorrect
de valeurs distinctes dans une colonne. Pour plus d’informations sur ce profil,
consultez Options de demande de profil de distribution de valeurs de colonne
(Tâche de profilage des données).

Profil de Calculez un profil de distribution de longueurs de colonne à l'aide des


distribution paramètres par défaut pour toutes les colonnes applicables dans la table ou la
de longueurs vue sélectionnée.
de colonne
Ce profil signale toutes les longueurs distinctes des valeurs de chaîne dans la
colonne sélectionnée, ainsi que le pourcentage de lignes dans la table que
chaque longueur représente. Ce profil peut vous aider à identifier des problèmes
dans vos données, tels que des valeurs non valides. Pour plus d’informations sur
les paramètres de ce profil, consultez Options de demande de profil de
distribution de longueurs de colonne (Tâche de profilage des données).

Profil de Calculez un profil de modèle de colonne à l'aide des paramètres par défaut pour
modèle de toutes les colonnes applicables dans la table ou la vue sélectionnée.
colonne
Ce profil signale un jeu d'expressions régulières qui couvrent les valeurs dans
une colonne de chaîne. Ce profil peut vous aider à identifier des problèmes dans
vos données, tels que des chaînes non valides. Il peut également suggérer des
expressions régulières susceptibles d'être utilisées à l'avenir pour la validation de
nouvelles valeurs. Pour plus d’informations sur les paramètres de ce profil,
consultez Options de demande de profil de motif de colonne (Tâche de profilage
des données).
Valeur Description

Profil de clé Calculez un profil de clé candidate pour les combinaisons de colonnes qui
candidate incluent jusqu'au nombre de colonnes spécifié dans pour au plus N clés de
colonne.

Ce profil signale si une colonne ou un ensemble de colonnes est adapté en tant


que clé pour la table sélectionnée. Ce profil peut également vous aider à
identifier des problèmes dans vos données, tels que des valeurs dupliquées dans
une colonne clé potentielle. Pour plus d’informations sur les paramètres de ce
profil, consultez Options de demande de profil de clé candidate (Tâche de
profilage des données).

pour au plus Sélectionnez le nombre maximal de colonnes à tester dans les combinaisons
N clés de possibles comme clé de la table ou de la vue. La valeur par défaut est 1. La
colonne valeur maximale est 1000. Par exemple, la valeur 3 teste les combinaisons de clé
d'une colonne, de deux colonnes et de trois colonnes.

Profil de Calculez un profil de dépendance fonctionnelle pour les combinaisons de


dépendance colonnes déterminantes qui incluent jusqu'au nombre de colonnes spécifié dans
fonctionnelle pour au moins N colonnes comme colonnes déterminantes.

Ce profil indique le degré de dépendance entre les valeurs d'une colonne


(colonne dépendante) et celles d'une autre colonne ou d'un ensemble de
colonnes (colonne déterminante). Ce profil peut également vous aider à
identifier des problèmes dans vos données, tels que des valeurs non valides.
Pour plus d’informations sur les paramètres de ce profil, consultez Options de
demande de profil de dépendance fonctionnelle (Tâche de profilage des
données).

pour au moins Sélectionnez le nombre maximal de colonnes à tester dans les combinaisons
N colonnes possibles comme colonnes déterminantes. La valeur par défaut est 1. La valeur
comme maximale est 1000. Par exemple, la valeur 2 teste les combinaisons dans
colonnes lesquelles les combinaisons d'une colonne ou de deux colonnes sont les
déterminantes colonnes déterminantes d'une autre colonne (dépendante).

7 Notes

Le type de profil d'inclusion de valeur n'est pas disponible à partir du formulaire de


profil rapide de table simple.

Voir aussi
Éditeur de tâche de profilage de données (page Général)
Éditeur de tâche de profilage de données (page Demandes de profil)
Éditeur de tâche de profilage de
données (page Demandes de profil)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la page Demandes de profil de l’Éditeur de tâche de profilage de données


pour sélectionner et configurer les profils que vous souhaitez calculer. Dans une même
tâche de profilage des données, vous pouvez calculer plusieurs profils pour plusieurs
colonnes ou des combinaisons de colonnes dans plusieurs tables ou vues.

Pour plus d’informations sur l’utilisation de la tâche de profilage des données, consultez
Configuration de la tâche de profilage des données. Pour plus d’informations sur
l’utilisation de la visionneuse du profil des données pour analyser le résultat de la tâche
de profilage des données, consultez Visionneuse du profil des données.

Pour ouvrir la page Demandes de profil de la tâche de profilage de données

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services doté de
la tâche de profilage de données.

2. Sous l’onglet Flux de contrôle , double-cliquez sur la tâche de profilage des


données.

3. Dans l’Éditeur de tâche de profilage de données, cliquez sur Demandes de profil.

Utilisation du volet Demandes


Le volet Demandes apparaît en haut de la page. Il répertorie tous les profils configurés
pour la tâche de profilage de données actuelle. Si aucun profil n'a été configuré, le volet
Demandes est vide. Pour ajouter un nouveau profil, cliquez dans une zone vide sous la
colonne Type de profil , puis sélectionnez un type de profil dans la liste. Pour configurer
un profil, sélectionnez-le dans le volet Demandes, puis définissez ses propriétés dans le
volet Propriétés de la demande .

Options du volet Demandes


Le volet Demandes propose les options suivantes :

Afficher
Précisez si vous souhaitez afficher l'ensemble des profils configurés pour la tâche ou
simplement l'un d'entre eux.

Les colonnes dans le volet Demandes changent selon la vue que vous sélectionnez. Pour
plus d'informations sur chacune de ces colonnes, consultez la section suivante «
Colonnes du volet Demandes ».

Colonnes du volet Demandes


Les colonnes qui s'affichent dans le volet Demandes dépendent de la vue que vous avez
sélectionnée :

Si vous choisissez d'afficher Toutes les demandes, le volet Demandes dévoile deux
colonnes : Type de profil et ID de demande.

Si vous choisissez d'afficher l'un des cinq profils de colonne, le volet Demandes fait
apparaître quatre colonnes : Type de profil, Table ou vue, Colonneet ID de
demande.

Si vous optez pour l’affichage d’un profil de clé candidate, le volet Demandes
comprend quatre colonnes : Type de profil, Table ou vue, Colonnes cléset ID de
demande.

Si vous souhaitez afficher un profil de dépendance fonctionnelle, le volet


Demandes propose cinq colonnes : Type de profil, Table ou vue, Colonnes
déterminantes, Colonne dépendanteet ID de demande.

Dans le cas d'un profil d'inclusion de valeur, le volet Demandes affiche six colonnes
: Type de profil, Table ou vue côté sous-ensemble, Table ou vue côté sur-
ensemble, Colonnes côté sous-ensemble, Colonnes côté sur-ensembleet ID de
demande.

Les sections suivantes décrivent chacune de ces colonnes.

Colonnes communes à toutes les vues


Type de profil
Sélectionnez un profil des données à partir des options suivantes :

Valeur Description
Valeur Description

Demande de Calculez un profil de clé candidate.


profil de clé
candidate Ce profil signale si une colonne ou un ensemble de colonnes est une clé, ou une
clé approximative, pour la table sélectionnée. Ce profil peut également vous aider
à identifier des problèmes dans vos données, tels que des valeurs dupliquées
dans une colonne clé potentielle.

Demande de Calculez un profil de distribution de longueurs de colonne.


profil de
distribution Le profil de distribution de longueurs de colonne signale toutes les longueurs
de longueurs distinctes des valeurs de chaîne dans la colonne sélectionnée, ainsi que le
de colonne pourcentage de lignes dans la table que chaque longueur représente. Ce profil
peut vous aider à identifier des problèmes dans vos données, tels que des valeurs
non valides. Par exemple, vous profilez une colonne de codes d'états des États-
Unis à deux caractères et découvrez des valeurs excédant deux caractères.

Demande de Calculez un profil de ratio de colonne Null.


profil de
ratio de Le profil de ratio de colonne Null signale le pourcentage de valeurs Null dans la
colonne Null colonne sélectionnée. Ce profil peut vous aider à identifier des problèmes dans
vos données, tels qu'un ratio élevé inattendu de valeurs Null dans une colonne.
Par exemple, vous profilez une colonne de codes postaux et découvrez un
pourcentage élevé et inacceptable de codes manquants.

Demande de Calculez un profil de modèle de colonne.


profil de
modèle de Le profil de modèle de colonne signale un ensemble d'expressions régulières qui
colonne reflètent le pourcentage spécifié pour les valeurs dans une colonne de chaîne. Ce
profil peut vous aider à identifier des problèmes dans vos données, tels que les
chaînes non valides. Il peut également suggérer des expressions régulières
susceptibles d'être utilisées à l'avenir pour la validation de nouvelles valeurs. Par
exemple, le profil de modèle d'une colonne de codes postaux peut générer les
expressions régulières suivantes : \d{5}-\d{4}, \d{5} et \d{9}. Si vous rencontrez
d'autres expressions régulières, il est probable que vos données contiennent des
valeurs qui ne sont pas valides ou utilisent un format incorrect.

Demande de Sélectionnez cette option pour calculer un profil de statistiques de colonnes à


profil de l'aide des paramètres par défaut pour toutes les colonnes applicables dans la
statistiques table ou la vue sélectionnée.
de colonnes
Le profil de statistiques de colonnes répertorie des statistiques, telles que l’écart
minimal, maximal, moyen et type pour les colonnes numériques et l’écart minimal
et maximal pour les colonnes datetime . Ce profil peut vous aider à identifier des
problèmes dans vos données, tels que les dates non valides. Par exemple, vous
profilez une colonne de dates historiques et découvrez une date maximum dont
l'échéance est à venir.
Valeur Description

Demande de Calculez un profil de distribution de valeurs de colonne.


profil de
distribution Le profil de distribution de valeurs de colonne permet de préciser toutes les
de valeurs valeurs distinctes dans la colonne sélectionnée, ainsi que le pourcentage de lignes
de colonne dans la table que représente chaque valeur. Ce profil peut également signaler des
valeurs qui représentent beaucoup plus qu'un pourcentage spécifié dans la table.
Il peut vous aider à identifier des problèmes dans vos données, tels qu'un nombre
incorrect de valeurs distinctes dans une colonne. Par exemple, vous profilez une
colonne qui contient les états des États-Unis et découvrez plus de 50 valeurs
distinctes.

Demande de Calculez un profil de dépendance fonctionnelle.


profil de
dépendance Le profil de dépendance fonctionnelle indique le degré de dépendance entre les
fonctionnelle valeurs d'une colonne (colonne dépendante) et celles d'une autre colonne ou
d'un ensemble de colonnes (colonne déterminante). Ce profil peut également
vous aider à identifier des problèmes dans vos données, tels que des valeurs non
valides. Par exemple, vous profilez une dépendance entre une colonne États-
Unis/Code postal et une colonne des états des États-Unis. Le même code postal
doit toujours afficher le même état mais le profil détecte des violations de la
dépendance.

Demande de Calculez un profil d'inclusion de valeur.


profil
d'inclusion Le profil d'inclusion de valeur calcule le chevauchement des valeurs entre deux
de valeur colonnes ou des ensembles de colonnes. Ce profil permet également de
déterminer si une colonne ou un ensemble de colonnes peut servir de clé
étrangère entre les tables sélectionnées. Ce profil peut également vous aider à
identifier des problèmes dans vos données, tels que les valeurs non valides. Par
exemple, vous profilez la colonne ProductID d'une table Sales et découvrez que la
colonne contient des valeurs qui sont introuvables dans la colonne ProductID de
la table Products.

RequestID
Affiche l'identificateur de la demande. En règle générale, il n'est pas nécessaire de
modifier la valeur générée automatiquement.

Colonnes communes à tous les profils individuels

Gestionnaire de connexions
Affiche le gestionnaire de connexions ADO.NET qui se connecte à la base de données
source.

ID de la demande
Affiche un identificateur pour la demande. En règle générale, il n'est pas nécessaire de
modifier la valeur générée automatiquement.

Colonnes communes aux cinq profils de colonne individuels


Table ou vue
Affiche la table ou la vue qui contient la colonne sélectionnée.

Colonne
Affiche la colonne sélectionnée pour le profilage.

Colonnes spécifiques au profil de clé candidate

Table ou vue
Affiche la table ou la vue qui contient les colonnes sélectionnées.

Colonnes clés
Affiche les colonnes sélectionnées pour le profilage.

Colonnes spécifiques au profil de dépendance fonctionnelle

Table ou vue
Affiche la table ou la vue qui contient les colonnes sélectionnées.

Colonnes déterminantes
Affiche les colonnes sélectionnées pour le profilage en tant que colonne ou colonnes
déterminantes. Dans l'exemple où une colonne États-Unis/Code postal détermine l'état
aux États-Unis, la colonne déterminante est la colonne de codes postaux.

Dependent column
Affiche les colonnes sélectionnées pour le profilage en tant que colonne dépendante.
Dans l'exemple où une colonne États-Unis/Code postal détermine l'état aux États-Unis,
la colonne dépendante est celle qui désigne l'état.

Colonnes spécifiques au profil d'inclusion de valeur


Table ou vue côté sous-ensemble
Affiche la table ou la vue qui contient la ou les colonnes sélectionnées en tant que
colonnes côté sous-ensemble.

Table ou vue côté sur-ensemble


Affiche la table ou la vue qui contient la ou les colonnes sélectionnées en tant que
colonnes côté sur-ensemble.
Colonnes côté sous-ensemble
Affiche la ou les colonnes sélectionnées pour le profilage en tant que colonnes côté
sous-ensemble. Dans l'exemple où vous souhaitez vérifier que les valeurs dans une
colonne des états américains apparaissent dans une table de référence de codes d'états
américains à deux caractères, la colonne de sous-ensemble correspond à la colonne des
états dans la table source.

Colonnes côté sur-ensemble


Affiche la ou les colonnes sélectionnées pour le profilage en tant que colonnes côté sur-
ensemble. Dans l'exemple où vous souhaitez vérifier que les valeurs dans une colonne
des états américains apparaissent dans une table de référence de codes d'états
américains à deux caractères, la colonne de sur-ensemble correspond à la colonne des
codes d'états dans la table de référence.

Utilisation du volet Propriétés de la demande


Le volet Propriétés de la demande apparaît sous le volet Demandes. Ce volet affiche les
options qui concernent le profil que vous avez sélectionné dans le volet Demandes.

7 Notes

Après avoir choisi un Type de profil, vous devez sélectionner le champ ID de


demande pour consulter les propriétés de la demande de profil dans le volet
Propriétés de la demande .

Ces options varient selon le profil sélectionné. Pour plus d'informations sur les types de
profil individuels, consultez les rubriques suivantes :

Options Demande de profil de clé candidate (tâche de profilage des données)

Options Demande de profil de ratio de colonne Null (tâche de profilage des


données)

Options Demande de profil de statistiques de colonnes (tâche de profilage des


données)

Options Demande de profil de distribution de valeurs de colonne (tâche de


profilage des données)

Options Demande de profil de distribution de longueurs de colonne (tâche de


profilage des données)
Options Demande de profil de modèle de colonne (tâche de profilage des
données)

Options Demande de profil de dépendance fonctionnelle (tâche de profilage des


données)

Options Demande de profil d'inclusion de valeur (tâche de profilage des données)

Voir aussi
Éditeur de tâche de profilage de données (page Général)
Formulaire de profil rapide de table simple (tâche de profilage des données)
Options Demande de profil de clé
candidate (tâche de profilage des
données)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez le volet Propriétés de la demande de la page Demandes de profil pour définir


les options de la Demande de profil de clé candidate sélectionnée dans le volet
Demandes. Un profil de clé candidate signale si une colonne ou un ensemble de
colonnes est une clé, ou une clé approximative, pour la table sélectionnée. Ce profil peut
également vous aider à identifier des problèmes dans vos données tels que des valeurs
en double dans une colonne clé potentielle.

7 Notes

Les options décrites dans cette rubrique apparaissent sur la page Demandes de
profil de l' Éditeur de tâche de profilage de données. Pour plus d’informations sur
cette page de l’éditeur, consultez Éditeur de tâche de profilage de données (Page
Demandes de profil).

Pour plus d’informations sur l’utilisation de la tâche de profilage des données, consultez
Configuration de la tâche de profilage des données. Pour plus d’informations sur
l’utilisation de la visionneuse du profil des données pour analyser le résultat de la tâche
de profilage des données, consultez Visionneuse du profil des données.

Fonctionnement de la sélection des colonnes


pour la propriété KeyColumns
Chaque Demande de profil de clé candidate calcule la puissance de clé d’un candidat
de clé unique composé d’une colonne unique ou de plusieurs colonnes :

Quand vous sélectionnez une seule colonne dans KeyColumns, la tâche calcule la
puissance de clé de cette colonne.

Quand vous sélectionnez plusieurs colonnes dans KeyColumns, la tâche calcule la


puissance de clé de la clé composite composée de toutes les colonnes
sélectionnées.
Quand vous sélectionnez le caractère générique (*), dansKeyColumns, la tâche
calcule la puissance de clé de chaque colonne dans la table ou l’affichage.

Par exemple, imaginez une table qui contient des colonnes A, B et C. Vous effectuez les
sélections suivantes pour KeyColumns:

Vous sélectionnez (*) et la colonne C dans KeyColumns. La tâche calcule la


puissance de clé de la colonne C, puis celle des candidats de clé composite (A, C)
et (B, C).

Vous sélectionnez (*) et (*) dans KeyColumns. La tâche calcule la puissance de clé
des colonnes individuelles A, B, et C, puis des candidats de clé composite (A, B), (A,
C) et (B, C).

7 Notes

Si vous sélectionnez le caractère générique (*), cette option risque d'aboutir à un


grand nombre de calculs et de diminuer les performances de la tâche. En revanche,
si la tâche détecte un sous-ensemble qui respecte le seuil défini pour une clé, la
tâche ne procède pas à l'analyse des combinaisons supplémentaires. Par exemple,
dans l'exemple de table décrit ci-dessus, si la tâche détermine que la colonne C est
une clé, la tâche ne poursuit pas l'analyse des candidats de clé composite.

Options Propriétés de la demande


Pour une demande de profil de clé candidate, le volet Propriétés de la demande
affiche les groupes d’options suivants :

Données, qui incluent les options TableOrView et KeyColumns .

Général

Options

Options de données
ConnectionManager
Sélectionnez le gestionnaire de connexions ADO.NET existant qui utilise le fournisseur
de données .NET pour SQL Server (SqlClient) pour établir la connexion à la base de
données SQL Server qui contient la table ou la vue à profiler.
TableOrView
Sélectionnez la table ou la vue existante à profiler.

Pour plus d'informations, consultez la section « Options TableorView » dans cette


rubrique.

KeyColumns
Sélectionnez la colonne ou les colonnes existantes à profiler. Sélectionnez (*) pour
profiler toutes les colonnes.

Pour plus d'informations, consultez les sections « Fonctionnement de la sélection des


colonnes pour la propriété KeyColumns » et « Options KeyColumns », plus haut dans
cette rubrique.

Options TableOrView
Schéma
Spécifiez le schéma auquel la table sélectionnée appartient. Cette option est en lecture
seule.

Table
Affiche le nom de la table sélectionnée. Cette option est en lecture seule.

Options KeyColumns

Les options suivantes sont proposées pour chaque colonne sélectionnée à des fins de
profilage dans KeyColumns ou pour l’option (*).

Pour plus d'informations, consultez la section « Fonctionnement de la sélection des


colonnes pour la propriété KeyColumns » plus haut dans cette rubrique.

IsWildcard
Indique si le caractère générique (*) a été sélectionné. Cette option est définie sur True
si vous avez sélectionné (*) pour profiler toutes les colonnes. Sa valeur est False si vous
avez sélectionné une colonne spécifique dont le profil doit être généré. Cette option est
en lecture seule.

ColumnName
Affiche le nom de la colonne sélectionnée. Cette option est vide si vous avez sélectionné
(*) pour profiler toutes les colonnes. Cette option est en lecture seule.

StringCompareOptions
Sélectionnez les options de comparaison des valeurs de chaîne. Cette propriété dispose
des options répertoriées dans le tableau suivant. La valeur par défaut de cette option est
Default.

7 Notes

Quand vous utilisez un caractère générique (*) pour ColumnName,


CompareOptions est en lecture seule et est définie sur le paramètre Par défaut.

Valeur Description

Par défaut Trie et compare des données d'après le classement de la colonne dans la table
source.

BinarySort Trie et compare les données en fonction des modèles binaires définis pour
chaque caractère. L'ordre de tri binaire respecte la casse et les accents. Il s'agit
aussi de l'ordre de tri le plus rapide.

DictionarySort Trie et compare des données d'après les règles de tri et de comparaison telles
que définies dans les dictionnaires de la langue ou de l'alphabet associé.

Si vous sélectionnez DictionarySort, vous pouvez également sélectionner toutes les


combinaisons d’options répertoriées dans le tableau suivant. Par défaut, aucune de ces
options supplémentaires n'est sélectionnée.

Valeur Description

IgnoreCase Indique si la comparaison fait la distinction entre les lettres majuscules et


minuscules. Si cette option est définie, la comparaison de chaînes ignore la
casse. Par exemple, « ABC » est alors identique à « abc ».

IgnoreNonSpace Indique si la comparaison fait la distinction entre les caractères avec espace et
les caractères diacritiques. Si cette option est définie, la comparaison ignore
les caractères diacritiques. Par exemple, « à » est identique à « a ».

IgnoreKanaType Indique si la comparaison fait la distinction entre les deux types de caractères
japonais Kana : Hiragana et Katakana. Si cette option est définie, la
comparaison de chaînes ignore le type Kana.

IgnoreWidth Indique si la comparaison fait la distinction entre un caractère sur un octet et


le même caractère représenté sur deux octets. Si cette option est définie, la
comparaison de chaînes traite les représentations sur un octet et sur deux
octets du même caractère comme identiques.

Options générales
RequestID
Tapez un nom descriptif pour identifier cette demande de profil. En règle générale, il
n'est pas nécessaire de modifier la valeur générée automatiquement.

Options
ThresholdSetting
Cette propriété dispose des options répertoriées dans le tableau suivant. La valeur par
défaut de cette propriété est Specified.

Valeur Description

Aucun Aucun seuil n’est spécifié. La puissance de la clé est signalée, quelle que soit sa valeur.

Spécifié Un seuil est spécifié dans KeyStrengthThreshold. La puissance de clé est précisée
uniquement si elle est supérieure au seuil.

Exact Aucun seuil n’est spécifié. La puissance de clé est précisée uniquement si les colonnes
sélectionnées sont une clé exacte.

KeyStrengthThreshold
Spécifiez le seuil (au moyen d'une valeur comprise entre 0 et 1) au-dessus duquel la
puissance de clé doit être précisée. La valeur par défaut de cette propriété est 0,95.
Cette option est activée uniquement quand Spécifié est sélectionné comme valeur
KeyStrengthThresholdSetting.

MaxNumberOfViolations
Spécifiez le nombre maximal de violations de clé candidate à signaler dans la sortie. La
valeur par défaut de cette propriété est 100. Cette option est désactivée quand Exact est
sélectionné en tant que valeur KeyStrengthThresholdSetting.

Voir aussi
Éditeur de tâche de profilage de données (page Général)
Formulaire de profil rapide de table simple (tâche de profilage des données)
Options Demande de profil de
distribution de longueurs de colonne
(tâche de profilage des données)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez le volet Propriétés de demandes de la page Demandes de profil pour définir les
options de la Demande de profil de distribution de longueurs de colonne sélectionnée
dans le volet Demandes. Un profil de distribution de longueurs de colonne signale
toutes les longueurs distinctes des valeurs de chaîne dans la colonne sélectionnée, et le
pourcentage de lignes dans la table que chaque longueur représente. Ce profil peut
vous aider à identifier les problèmes dans vos données, tels que les valeurs non valides.
Par exemple, vous profilez une colonne de codes d'états des États-Unis à deux
caractères et découvrez des valeurs excédant deux caractères.

7 Notes

Les options décrites dans cette rubrique apparaissent sur la page Demandes de
profil de l' Éditeur de tâche de profilage de données. Pour plus d’informations sur
cette page de l’éditeur, consultez Éditeur de tâche de profilage de données (Page
Demandes de profil).

Pour plus d’informations sur l’utilisation de la tâche de profilage des données, consultez
Configuration de la tâche de profilage des données. Pour plus d’informations sur
l’utilisation de la visionneuse du profil des données pour analyser le résultat de la tâche
de profilage des données, consultez Visionneuse du profil des données.

Options Propriétés de la demande


Pour une Demande de profil de distribution de longueurs de colonne, le volet
Propriétés de la demande affiche les groupes d’options suivants :

Données, qui incluent les options TableOrView et Column

Général

Options
Options de données
ConnectionManager
Sélectionnez le gestionnaire de connexions ADO.NET existant qui utilise le fournisseur
de données .NET pour SQL Server (SqlClient) pour établir la connexion à la base de
données SQL Server qui contient la table ou la vue à profiler.

TableOrView
Sélectionnez la table ou la vue existante qui contient la colonne à profiler.

Pour plus d'informations, consultez la section « Options TableorView » dans cette


rubrique.

Colonne
Sélectionnez la colonne existante à profiler. Sélectionnez (*) pour profiler toutes les
colonnes.

Pour plus d'informations, consultez la section « Options de colonne » dans cette


rubrique.

Options TableOrView
Schéma
Spécifiez le schéma auquel la table sélectionnée appartient. Cette option est en lecture
seule.

Table
Affiche le nom de la table sélectionnée. Cette option est en lecture seule.

Options de colonne
IsWildCard
Indique si le caractère générique (*) a été sélectionné. Cette option est définie sur True
si vous avez sélectionné (*) pour profiler toutes les colonnes. Sa valeur est False si vous
avez sélectionné une colonne spécifique dont le profil doit être généré. Cette option est
en lecture seule.

ColumnName
Affiche le nom de la colonne sélectionnée. Cette option est vide si vous avez sélectionné
(*) pour profiler toutes les colonnes. Cette option est en lecture seule.

StringCompareOptions
Cette option ne s'applique pas au profil de distribution de longueurs de colonne.
Options générales
RequestID
Tapez un nom descriptif pour identifier cette demande de profil. En règle générale, il
n'est pas nécessaire de modifier la valeur générée automatiquement.

Options
IgnoreLeadingSpaces
Indiquez si les espaces de début doivent être ignorés lorsque le profil compare des
valeurs de chaîne. La valeur par défaut de cette option est False.

IgnoreTrailingSpaces
Indiquez si les espaces de fin doivent être ignorés lorsque le profil compare des valeurs
de chaîne. La valeur par défaut de cette option est True.

Voir aussi
Éditeur de tâche de profilage de données (page Général)
Formulaire de profil rapide de table simple (tâche de profilage des données)
Options Demande de profil de ratio de
colonne Null (tâche de profilage des
données)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez le volet Propriétés de la demande de la page Demandes de profil pour définir


les options de la Demande de profil de ratio de colonne Null sélectionnée dans le volet
Demandes. Un profil de ratio de colonne Null signale le pourcentage de valeurs Null
dans la colonne sélectionnée. Ce profil peut vous aider à identifier des problèmes dans
vos données, tels qu'un ratio élevé inattendu de valeurs Null dans une colonne. Par
exemple, un profil de ratio de colonne Null peut profiler une colonne Code postal et
découvrir un pourcentage beaucoup trop élevé de codes postaux manquants.

7 Notes

Les options décrites dans cette rubrique apparaissent sur la page Demandes de
profil de l' Éditeur de tâche de profilage de données. Pour plus d’informations sur
cette page de l’éditeur, consultez Éditeur de tâche de profilage de données (Page
Demandes de profil).

Pour plus d’informations sur l’utilisation de la tâche de profilage des données, consultez
Configuration de la tâche de profilage des données. Pour plus d’informations sur
l’utilisation de la visionneuse du profil des données pour analyser le résultat de la tâche
de profilage des données, consultez Visionneuse du profil des données.

Options Propriétés de la demande


Pour une Demande de profil de ratio de colonne Null, le volet Propriétés de la
demande affiche les groupes d'options suivants :

Données, qui incluent les options TableOrView et Column

Général

Options de données
ConnectionManager
Sélectionnez le gestionnaire de connexions ADO.NET existant qui utilise le fournisseur
de données .NET pour SQL Server (SqlClient) pour établir la connexion à la base de
données SQL Server qui contient la table ou la vue à profiler.

TableOrView
Sélectionnez la table ou la vue existante qui contient la colonne à profiler.

Pour plus d'informations, consultez la section « Options TableorView » dans cette


rubrique.

Colonne
Sélectionnez la colonne existante à profiler. Sélectionnez (*) pour profiler toutes les
colonnes.

Pour plus d'informations, consultez la section « Options de colonne » dans cette


rubrique.

Options TableOrView
Schéma
Spécifie le schéma auquel la table sélectionnée appartient. Cette option est en lecture
seule.

Table
Affiche le nom de la table sélectionnée. Cette option est en lecture seule.

Options de colonne

IsWildCard
Indique si le caractère générique (*) a été sélectionné. Cette option est définie sur True
si vous avez sélectionné (*) pour profiler toutes les colonnes. Sa valeur est False si vous
avez sélectionné une colonne spécifique dont le profil doit être généré. Cette option est
en lecture seule.

ColumnName
Affiche le nom de la colonne sélectionnée. Cette option est vide si vous avez sélectionné
(*) pour profiler toutes les colonnes. Cette option est en lecture seule.

StringCompareOptions
Cette option ne s'applique pas au Profil de ratio de colonne Null.

Options générales
RequestID
Tapez un nom descriptif pour identifier cette demande de profil. En règle générale, il
n'est pas nécessaire de modifier la valeur générée automatiquement.

Voir aussi
Éditeur de tâche de profilage de données (page Général)
Formulaire de profil rapide de table simple (tâche de profilage des données)
Options Demande de profil de modèle
de colonne (tâche de profilage des
données)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez le volet Propriétés de la demande de la page Demandes de profil pour définir


les options de la Demande de profil de modèle de colonne sélectionnée dans le volet
Demandes. Un profil de modèle de colonne signale un ensemble d'expressions
régulières qui reflètent le pourcentage spécifié des valeurs dans une colonne de chaîne.
Ce profil peut vous aider à identifier des problèmes dans vos données, tels que les
chaînes non valides, et peut suggérer des expressions régulières susceptibles d'être
utilisées à l'avenir pour la validation de nouvelles valeurs. Par exemple, le profil de
modèle d'une colonne États-Unis/Codes postaux peut générer les expressions régulières
\d{5}-\d{4}, \d{5} et \d{9}. Si vous rencontrez d'autres expressions régulières, il est
probable que vos données contiennent des valeurs qui ne sont pas valides ou utilisent
un format incorrect.

7 Notes

Les options décrites dans cette rubrique apparaissent sur la page Demandes de
profil de l' Éditeur de tâche de profilage de données. Pour plus d’informations sur
cette page de l’éditeur, consultez Éditeur de tâche de profilage de données (Page
Demandes de profil).

Pour plus d’informations sur l’utilisation de la tâche de profilage des données, consultez
Configuration de la tâche de profilage des données. Pour plus d’informations sur
l’utilisation de la visionneuse du profil des données pour analyser le résultat de la tâche
de profilage des données, consultez Visionneuse du profil des données.

Fonctionnement de l'utilisation des séparateurs


et des symboles
Avant de calculer les modèles d’une Demande de profil de modèle de colonne, la tâche
de profilage des données marque les données sous forme de jetons. Autrement dit, elle
sépare les valeurs de chaîne en unités plus petites appelées « jetons ». Pour séparer les
chaînes en jetons, la tâche se base sur les séparateurs et les symboles que vous spécifiez
pour les propriétés Séparateurs et Symboles :

Séparateurs Par défaut, la liste des séparateurs contient les caractères suivants :
espace, tabulation horizontale (\t), nouvelle ligne (\n) et retour chariot (\r). Vous
pouvez définir d'autres séparateurs mais vous ne pouvez pas supprimer les
séparateurs par défaut.

Symboles Par défaut, la liste des symboles contient les caractères suivants : ,.;:-
"'~=&/@!?()<>[]{}|#*^% , ainsi que la coche. Par exemple, si les symboles sont " ()-

", la valeur "(425) 123-4567" est marquée sous forme de jeton de la manière
suivante : ["(", "425", ")", "123", "-", "4567", ")"].

Un caractère ne peut pas être à la fois un séparateur et un symbole.

Tous les séparateurs sont normalisés en un espace unique dans le cadre du processus de
création de jetons tandis que les symboles sont conservés.

Fonctionnement de l'utilisation de la table des


balises
Vous pouvez éventuellement regrouper les jetons associés par une même étiquette en
stockant les étiquettes et les termes associés dans une table spéciale que vous créez
dans une base de données SQL Server. La table des balises doit être composée de deux
colonnes de chaîne, l’une appelée « Balise », l’autre « Terme ». Ces colonnes peuvent
être de type char, nchar, varchar, ou nvarchar, mais pas text ou ntext. Vous pouvez
fusionner plusieurs balises et leurs termes correspondants dans une seule et unique
table. Une demande de profil de modèle de colonne peut utiliser une seule table des
balises. Vous pouvez utiliser un gestionnaire de connexions ADO.NET distinct pour vous
connecter à la table d’étiquettes. La table des balises peut donc être stockée dans une
autre base de données ou sur un autre serveur que les données sources.

Par exemple, vous pouvez regrouper les valeurs « East », « West », « North » et « South »
susceptibles d'apparaître dans des adresses postales en utilisant la balise unique «
Direction ». Un exemple de cette table des balises est proposé ci-dessous.

Tag Terme

Sens Est

Sens West

Sens Nord
Tag Terme

Sens Sud

Vous pouvez éventuellement utiliser une autre balise pour regrouper les différents mots
qui expriment la notion de « rue » (Street) dans les adresses postales :

Tag Terme

Rue Rue

Rue Avenue

Rue Emplacement

Rue Moyen

D'après cette combinaison de balises, le modèle obtenu pour une adresse postale peut
se présenter de la manière suivante :

\d+\ LookupTag=Direction \d+\p{L}+\ LookupTag=Street

7 Notes

L'utilisation d'une table des balises diminue les performances de la tâche de


profilage des données. N'utilisez pas plus de 10 balises ou plus de 100 termes par
balise.

Le même terme peut appartenir à plusieurs balises.

Options Propriétés de la demande


Pour une demande de profil de modèle de colonne, le volet Propriétés de la demande
affiche les groupes d’options suivants :

Données, qui incluent les options TableOrView et Column

Général

Options

Options de données
ConnectionManager
Sélectionnez le gestionnaire de connexions ADO.NET existant qui utilise le fournisseur
de données .NET pour SQL Server (SqlClient) pour établir la connexion à la base de
données SQL Server qui contient la table ou la vue à profiler.

TableOrView
Sélectionnez la table ou la vue existante qui contient la colonne à profiler.

Pour plus d'informations, consultez la section « Options TableorView » dans cette


rubrique.

Colonne
Sélectionnez la colonne existante à profiler. Sélectionnez (*) pour profiler toutes les
colonnes.

Pour plus d'informations, consultez la section « Options de colonne » dans cette


rubrique.

Options TableOrView
Schéma
Spécifie le schéma auquel la table sélectionnée appartient. Cette option est en lecture
seule.

Table
Affiche le nom de la table sélectionnée. Cette option est en lecture seule.

Options de colonne

IsWildCard
Indique si le caractère générique (*) a été sélectionné. Cette option est définie sur True
si vous avez sélectionné (*) pour profiler toutes les colonnes. Sa valeur est False si vous
avez sélectionné une colonne spécifique dont le profil doit être généré. Cette option est
en lecture seule.

ColumnName
Affiche le nom de la colonne sélectionnée. Cette option est vide si vous avez sélectionné
(*) pour profiler toutes les colonnes. Cette option est en lecture seule.

StringCompareOptions
Cette option ne s'applique pas au profil de modèle de colonne.

Options générales
RequestID
Tapez un nom descriptif pour identifier cette demande de profil. En règle générale, il
n'est pas nécessaire de modifier la valeur générée automatiquement.

Options
MaxNumberOfPatterns
Spécifiez le nombre maximal de modèles que vous souhaitez calculer à l'aide du profil.
La valeur par défaut de cette option est 10. La valeur maximale est 100.

PercentageDataCoverageDesired
Spécifiez le pourcentage des données que vous souhaitez refléter avec les modèles
calculés. La valeur par défaut de cette option est 95 (pourcent).

CaseSensitive
Indiquez si les modèles doivent respecter la casse. La valeur par défaut de cette option
est False.

Délimiteurs
Répertoriez les caractères à traiter en tant qu'équivalents des espaces entre les mots
lorsque vous marquez du texte sous forme de jetons. Par défaut, la liste des séparateurs
contient les caractères suivants : espace, tabulation horizontale (\t), nouvelle ligne (\n) et
retour chariot (\r). Vous pouvez définir d'autres séparateurs mais vous ne pouvez pas
supprimer les séparateurs par défaut.

Pour plus d'informations, consultez la section « Fonctionnement de l'utilisation des


séparateurs et des symboles » plus haut dans cette rubrique.

Symboles
Répertoriez les symboles à conserver dans le cadre des modèles. Les exemples peuvent
inclure « / » pour les dates, « : » pour les heures et « @ » pour les adresses de
messagerie. Par défaut, la liste des symboles contient les caractères suivants : ,.;:-
"'~=&/@!?()<>[]{}|#*^% .

Pour plus d'informations, consultez la section « Fonctionnement de l'utilisation des


séparateurs et des symboles » plus haut dans cette rubrique.

TagTableConnectionManager
Sélectionnez le gestionnaire de connexions ADO.NET existant qui utilise le fournisseur
de données .NET pour SQL Server (SqlClient) afin de vous connecter à la base de
données SQL Server qui contient la table d’étiquettes.
Pour plus d'informations, consultez la section « Fonctionnement de l'utilisation de la
table des balises » plus haut dans cette rubrique.

TagTableName
Sélectionnez la table des balises existante qui doit être composée de deux colonnes de
chaîne intitulées Balise et Terme.

Pour plus d'informations, consultez la section « Fonctionnement de l'utilisation de la


table des balises » plus haut dans cette rubrique.

Voir aussi
Éditeur de tâche de profilage de données (page Général)
Formulaire de profil rapide de table simple (tâche de profilage des données)
Options Demande de profil de
statistiques de colonnes (tâche de
profilage des données)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez le volet Propriétés de la demande de la page Demandes de profil pour définir


les options de la Demande de profil de statistiques de colonnes sélectionnée dans le
volet Demandes. Un profil de statistiques de colonnes répertorie des statistiques, telles
que l’écart minimal, maximal, moyen et type pour les colonnes numériques et l’écart
minimal et maximal pour les colonnes datetime . Ce profil peut vous aider à identifier
des problèmes dans vos données, tels que des dates non valides. Par exemple, vous
profilez une colonne de dates historiques et découvrez une date maximum dont
l'échéance est à venir.

7 Notes

Les options décrites dans cette rubrique apparaissent sur la page Demandes de
profil de l' Éditeur de tâche de profilage de données. Pour plus d’informations sur
cette page de l’éditeur, consultez Éditeur de tâche de profilage de données (Page
Demandes de profil).

Pour plus d’informations sur l’utilisation de la tâche de profilage des données, consultez
Configuration de la tâche de profilage des données. Pour plus d’informations sur
l’utilisation de la visionneuse du profil des données pour analyser le résultat de la tâche
de profilage des données, consultez Visionneuse du profil des données.

Options Propriétés de la demande


Pour une demande de profil de statistiques de colonnes, le volet Propriétés de la
demande affiche les groupes d’options suivants :

Données, qui incluent les options TableOrView et Column

Général

Options de données
ConnectionManager
Sélectionnez le gestionnaire de connexions ADO.NET existant qui utilise le fournisseur
de données .NET pour SQL Server (SqlClient) pour établir la connexion à la base de
données SQL Server qui contient la table ou la vue à profiler.

TableOrView
Sélectionnez la table ou la vue existante qui contient la colonne à profiler.

Pour plus d'informations, consultez la section « Options TableorView » dans cette


rubrique.

Colonne
Sélectionnez la colonne existante à profiler. Sélectionnez (*) pour profiler toutes les
colonnes.

Pour plus d'informations, consultez la section « Options de colonne » dans cette


rubrique.

Options TableOrView
Schéma
Spécifie le schéma auquel la table sélectionnée appartient. Cette option est en lecture
seule.

Table
Affiche le nom de la table sélectionnée. Cette option est en lecture seule.

Options de colonne

IsWildCard
Indique si le caractère générique (*) a été sélectionné. Cette option est définie sur True
si vous avez sélectionné (*) pour profiler toutes les colonnes. Sa valeur est False si vous
avez sélectionné une colonne spécifique dont le profil doit être généré. Cette option est
en lecture seule.

ColumnName
Affiche le nom de la colonne sélectionnée. Cette option est vide si vous avez sélectionné
(*) pour profiler toutes les colonnes. Cette option est en lecture seule.

StringCompareOptions
Cette option ne s'applique pas au profil de statistiques de colonnes.

Options générales
RequestID
Tapez un nom descriptif pour identifier cette demande de profil. En règle générale, il
n'est pas nécessaire de modifier la valeur générée automatiquement.

Voir aussi
Éditeur de tâche de profilage de données (page Général)
Formulaire de profil rapide de table simple (tâche de profilage des données)
Options Demande de profil de
distribution de valeurs de colonne
(tâche de profilage des données)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez le volet Propriétés de la demande de la page Demandes de profil pour définir


les options de la Demande de profil de distribution de valeurs de colonne sélectionnée
dans le volet Demandes. Un profil de distribution de valeurs de colonne permet de
préciser toutes les valeurs distinctes dans la colonne sélectionnée, ainsi que le
pourcentage de lignes dans la table que représente chaque valeur. Le profil peut
également signaler des valeurs qui représentent beaucoup plus qu'un pourcentage de
lignes spécifié dans la table. Il peut vous aider à identifier des problèmes dans vos
données, tels qu'un nombre incorrect de valeurs distinctes dans une colonne. Par
exemple, vous établissez le profil d'une colonne des états des États-Unis et découvrez
plus de 50 valeurs distinctes.

7 Notes

Les options décrites dans cette rubrique apparaissent sur la page Demandes de
profil de l' Éditeur de tâche de profilage de données. Pour plus d’informations sur
cette page de l’éditeur, consultez Éditeur de tâche de profilage de données (Page
Demandes de profil).

Pour plus d’informations sur l’utilisation de la tâche de profilage des données, consultez
Configuration de la tâche de profilage des données. Pour plus d’informations sur
l’utilisation de la visionneuse du profil des données pour analyser le résultat de la tâche
de profilage des données, consultez Visionneuse du profil des données.

Options Propriétés de la demande


Pour une Demande de profil de distribution de valeurs de colonne, le volet Propriétés
de la demande affiche les groupes d’options suivants :

Données, qui incluent les options TableOrView et Column

Général
Options

Options de données
ConnectionManager
Sélectionnez le gestionnaire de connexions ADO.NET existant qui utilise le fournisseur
de données .NET pour SQL Server (SqlClient) pour établir la connexion à la base de
données SQL Server qui contient la table ou la vue à profiler.

TableOrView
Sélectionnez la table ou la vue existante qui contient la colonne à profiler.

Pour plus d'informations, consultez la section « Options TableorView » dans cette


rubrique.

Colonne
Sélectionnez la colonne existante à profiler. Sélectionnez (*) pour profiler toutes les
colonnes.

Pour plus d'informations, consultez la section « Options de colonne » dans cette


rubrique.

Options TableOrView

Schéma
Spécifie le schéma auquel la table sélectionnée appartient. Cette option est en lecture
seule.

Table
Affiche le nom de la table sélectionnée. Cette option est en lecture seule.

Options de colonne
IsWildCard
Indique si le caractère générique (*) a été sélectionné. Cette option est définie sur True
si vous avez sélectionné (*) pour profiler toutes les colonnes. Sa valeur est False si vous
avez sélectionné une colonne spécifique dont le profil doit être généré. Cette option est
en lecture seule.

ColumnName
Affiche le nom de la colonne sélectionnée. Cette option est vide si vous avez sélectionné
(*) pour profiler toutes les colonnes. Cette option est en lecture seule.
StringCompareOptions
Sélectionnez les options de comparaison des valeurs de chaîne. Cette propriété dispose
des options répertoriées dans le tableau suivant. La valeur par défaut de cette option est
Default.

7 Notes

Si vous utilisez le caractère générique (*) pour ColumnName, CompareOptions est


en lecture seule et est défini sur le paramètre Default.

Valeur Description

Par défaut Trie et compare des données d'après le classement de la colonne dans la table
source.

BinarySort Trie et compare les données en fonction des modèles binaires définis pour
chaque caractère. L'ordre de tri binaire respecte la casse et les accents. Il s'agit
aussi de l'ordre de tri le plus rapide.

DictionarySort Trie et compare des données d'après les règles de tri et de comparaison telles
que définies dans les dictionnaires de la langue ou de l'alphabet associé.

Si vous sélectionnez DictionarySort, vous pouvez également sélectionner toutes les


combinaisons d’options répertoriées dans le tableau suivant. Par défaut, aucune de ces
options supplémentaires n'est sélectionnée.

Valeur Description

IgnoreCase Indique si la comparaison fait la distinction entre les lettres majuscules et


minuscules. Si cette option est définie, la comparaison de chaînes ignore la
casse. Par exemple, « ABC » est alors identique à « abc ».

IgnoreNonSpace Indique si la comparaison fait la distinction entre les caractères avec espace et
les caractères diacritiques. Si cette option est définie, la comparaison ignore
les caractères diacritiques. Par exemple, « à » est identique à « a ».

IgnoreKanaType Indique si la comparaison fait la distinction entre les deux types de caractères
japonais Kana : Hiragana et Katakana. Si cette option est définie, la
comparaison de chaînes ignore le type Kana.

IgnoreWidth Indique si la comparaison fait la distinction entre un caractère sur un octet et


le même caractère représenté sur deux octets. Si cette option est définie, la
comparaison de chaînes traite les représentations sur un octet et sur deux
octets du même caractère comme identiques.

Options générales
RequestID
Tapez un nom descriptif pour identifier cette demande de profil. En règle générale, il
n'est pas nécessaire de modifier la valeur générée automatiquement.

Options
ValueDistributionOption
Spécifiez si la distribution est à calculer pour toutes les valeurs de colonne. La valeur par
défaut de cette option est FrequentValues.

Value Description

AllValues La distribution est calculée pour toutes les valeurs de colonne.

FrequentValues La distribution est calculée uniquement pour les valeurs dont la fréquence
dépasse la valeur minimale spécifiée dans FrequentValueThreshold. Les valeurs
qui ne correspondent pas à FrequentValueThreshold sont exclues du rapport
de sortie.

FrequentValueThreshold
Spécifiez le seuil (au moyen d'une valeur comprise entre 0 et 1) au-dessus duquel la
valeur de colonne doit être précisée. Cette option est désactivée quand vous
sélectionnez AllValues comme ValueDistributionOption. La valeur par défaut de cette
option est 0,001.

Voir aussi
Éditeur de tâche de profilage de données (page Général)
Formulaire de profil rapide de table simple (tâche de profilage des données)
Options Demande de profil de
dépendance fonctionnelle (tâche de
profilage des données)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez le volet Propriétés de la demande de la page Demandes de profil pour définir


les options de la Demande de profil de dépendance fonctionnelle sélectionnée dans le
volet Demandes. Un profil de dépendance fonctionnelle indique le degré de
dépendance entre les valeurs d'une colonne (colonne dépendante) et celles d'une autre
colonne ou d'un ensemble de colonnes (colonne déterminante). Ce profil peut
également vous aider à identifier les problèmes dans vos données, tels que les valeurs
non valides. Par exemple, vous profilez la dépendance entre une colonne Code postal et
une colonne des états des États-Unis. Dans ce profil, la même colonne Code postal doit
toujours afficher le même état mais le profil détecte des violations de la dépendance.

7 Notes

Les options décrites dans cette rubrique apparaissent sur la page Demandes de
profil de l' Éditeur de tâche de profilage de données. Pour plus d’informations sur
cette page de l’éditeur, consultez Éditeur de tâche de profilage de données (Page
Demandes de profil).

Pour plus d’informations sur l’utilisation de la tâche de profilage des données, consultez
Configuration de la tâche de profilage des données. Pour plus d’informations sur
l’utilisation de la visionneuse du profil des données pour analyser le résultat de la tâche
de profilage des données, consultez Visionneuse du profil des données.

Fonctionnement du processus de sélection des


colonnes déterminantes et dépendantes
Une demande de profil de dépendance fonctionnelle calcule le degré avec lequel la
colonne ou l’ensemble de colonnes déterminantes (spécifié dans la propriété
DeterminantColumns ) détermine la valeur de la colonne dépendante (spécifiée dans la
propriété DependentColumn ). Par exemple, une colonne des états États-Unis doit
fonctionnellement dépendre d'une colonne États-Unis/Code postal. Autrement dit, si la
colonne Code postal (colonne déterminante) est 98052, l'état (colonne dépendante) doit
toujours être Washington.

Du côté déterminant, vous pouvez spécifier une colonne ou un ensemble de colonnes


dans la propriété DeterminantColumns . Par exemple, imaginez une table qui contient
les colonnes A, B et C. Vous effectuez les sélections suivantes pour la propriété
DeterminantColumns :

Quand vous sélectionnez le caractère générique (*), la tâche de profilage des


données teste chaque colonne en tant que côté déterminant de la dépendance.

Quand vous sélectionnez le caractère générique (*) et une ou plusieurs autres


colonnes, la tâche de profilage des données teste chaque combinaison de
colonnes en tant que côté déterminant de la dépendance. Par exemple, imaginez
une table composée des colonnes A, B et C. Si vous spécifiez (*) et la colonne C
comme valeur de la propriété DeterminantColumns, la tâche de profilage des
données teste les combinaisons (A, C) et (B, C) en tant que côté déterminant de la
dépendance.

Du côté dépendant, vous pouvez spécifier une colonne unique ou le caractère


générique (*) dans la propriété DependentColumn. Quand vous sélectionnez (*), la
tâche de profilage des données teste la colonne ou l’ensemble de colonnes du côté
déterminant avec chaque colonne.

7 Notes

Si vous sélectionnez le caractère générique (*), cette option risque d'aboutir à un


grand nombre de calculs et de diminuer les performances de la tâche. En revanche,
si la tâche détecte un sous-ensemble qui respecte le seuil défini pour une
dépendance fonctionnelle, la tâche ne procède pas à l'analyse des combinaisons
supplémentaires. Par exemple, dans l'exemple de table décrit ci-dessus, si la tâche
détermine que la colonne C est une colonne déterminante, la tâche ne poursuit pas
l'analyse des candidats composites.

Options Propriétés de la demande


Pour une demande de profil de dépendance fonctionnelle, le volet Propriétés de la
demande affiche les groupes d’options suivants :

Données, qui inclut les options DeterminantColumns et DependentColumn

Général
Options

Options de données
ConnectionManager
Sélectionnez le gestionnaire de connexions ADO.NET existant qui utilise le fournisseur
de données .NET pour SQL Server (SqlClient) pour établir la connexion à la base de
données SQL Server qui contient la table ou la vue à profiler.

TableOrView
Sélectionnez la table ou la vue existante à profiler.

DeterminantColumns
Sélectionnez la colonne ou l'ensemble de colonnes déterminantes, à savoir la colonne
ou l'ensemble de colonnes dont les valeurs déterminent la valeur de la colonne
dépendante.

Pour plus d'informations, consultez les sections, « Fonctionnement du processus de


sélection des colonnes déterminantes et dépendantes » et « Options
DeterminantColumns et DependentColumn » dans cette rubrique.

DependentColumn
Sélectionnez la colonne dépendante, c'est-à-dire la colonne dont la valeur est
déterminée par la valeur de la colonne ou de l'ensemble de colonnes du côté
déterminant.

Pour plus d'informations, consultez les sections, « Fonctionnement du processus de


sélection des colonnes déterminantes et dépendantes » et « Options
DeterminantColumns et DependentColumn » dans cette rubrique.

Options DeterminantColumns et DependentColumn

Les options suivantes sont proposées pour chaque colonne sélectionnée à des fins de
profilage dans DeterminantColumns et DependentColumn.

Pour plus d'informations, consultez la section « Fonctionnement du processus de


sélection des colonnes déterminantes et dépendantes » plus haut dans cette rubrique.

IsWildCard
Indique si le caractère générique (*) a été sélectionné. Cette option est définie sur True
si vous avez sélectionné (*) pour profiler toutes les colonnes. Sa valeur est False si vous
avez sélectionné une colonne spécifique dont le profil doit être généré. Cette option est
en lecture seule.
ColumnName
Affiche le nom de la colonne sélectionnée. Cette option est vide si vous avez sélectionné
(*) pour profiler toutes les colonnes. Cette option est en lecture seule.

StringCompareOptions
Sélectionnez les options de comparaison des valeurs de chaîne. Cette propriété dispose
des options répertoriées dans le tableau suivant. La valeur par défaut de cette option est
Default.

7 Notes

Quand vous utilisez un caractère générique (*) pour ColumnName,


CompareOptions est en lecture seule et est défini sur le paramètre Par défaut.

Valeur Description

Par défaut Trie et compare des données d'après le classement de la colonne dans la table
source.

BinarySort Trie et compare les données en fonction des modèles binaires définis pour
chaque caractère. L'ordre de tri binaire respecte la casse et les accents. Il s'agit
aussi de l'ordre de tri le plus rapide.

DictionarySort Trie et compare des données d'après les règles de tri et de comparaison telles
que définies dans les dictionnaires de la langue ou de l'alphabet associé.

Si vous sélectionnez DictionarySort, vous pouvez également sélectionner toutes les


combinaisons d’options répertoriées dans le tableau suivant. Par défaut, aucune de ces
options supplémentaires n'est sélectionnée.

Valeur Description

IgnoreCase Indique si la comparaison fait la distinction entre les lettres majuscules et


minuscules. Si cette option est définie, la comparaison de chaînes ignore la
casse. Par exemple, « ABC » est alors identique à « abc ».

IgnoreNonSpace Indique si la comparaison fait la distinction entre les caractères avec espace et
les caractères diacritiques. Si cette option est définie, la comparaison ignore
les caractères diacritiques. Par exemple, « à » est identique à « a ».

IgnoreKanaType Indique si la comparaison fait la distinction entre les deux types de caractères
japonais Kana : Hiragana et Katakana. Si cette option est définie, la
comparaison de chaînes ignore le type Kana.
Valeur Description

IgnoreWidth Indique si la comparaison fait la distinction entre un caractère sur un octet et


le même caractère représenté sur deux octets. Si cette option est définie, la
comparaison de chaînes traite les représentations sur un octet et sur deux
octets du même caractère comme identiques.

Options générales
RequestID
Tapez un nom descriptif pour identifier cette demande de profil. En règle générale, il
n'est pas nécessaire de modifier la valeur générée automatiquement.

Options
ThresholdSetting
Spécifiez le paramètre de seuil. La valeur par défaut de cette propriété est Specified.

Valeur Description

Aucun Aucun seuil n'est spécifié. La puissance de la dépendance fonctionnelle est précisée,
quelle que soit sa valeur.

Spécifié Utilisez le seuil spécifié dans FDStrengthThreshold. La puissance de la dépendance


fonctionnelle est précisée uniquement si elle est supérieure au seuil.

Exact Aucun seuil n'est spécifié. La puissance de la dépendance fonctionnelle est précisée
uniquement si la dépendance fonctionnelle entre les colonnes sélectionnées est exacte.

FDStrengthThreshold
Spécifiez le seuil (au moyen d'une valeur comprise entre 0 et 1) au-dessus duquel la
puissance de la dépendance fonctionnelle doit être précisée. La valeur par défaut de
cette propriété est 0,95. Cette option est activée uniquement quand Specified est
sélectionné comme valeur de ThresholdSetting.

MaxNumberOfViolations
Spécifiez le nombre maximal de violations de dépendance fonctionnelle à signaler dans
la sortie. La valeur par défaut de cette propriété est 100. Cette option est désactivée
quand Exact est sélectionné comme valeur de ThresholdSetting.

Voir aussi
Éditeur de tâche de profilage de données (page Général)
Formulaire de profil rapide de table simple (tâche de profilage des données)
Options Demande de profil d'inclusion
de valeur (tâche de profilage des
données)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez le volet Propriétés de la demande de la page Demandes de profil pour définir


les options de la Demande de profil d’inclusion de valeur sélectionnée dans le volet
Demandes. Un profil d'inclusion de valeur calcule le chevauchement des valeurs entre
deux colonnes ou des ensembles de colonnes. De cette manière, ce profil permet
également de déterminer si une colonne ou un ensemble de colonnes peut servir de clé
étrangère entre les tables sélectionnées. Ce profil peut également vous aider à identifier
les problèmes dans vos données, tels que les valeurs non valides. Par exemple, vous
utilisez un profil d'inclusion de valeur pour profiler la colonne ProductID d'une table
Sales. et découvrez que la colonne contient des valeurs qui sont introuvables dans la
colonne ProductID de la table Products.

7 Notes

Les options décrites dans cette rubrique apparaissent sur la page Demandes de
profil de l' Éditeur de tâche de profilage de données. Pour plus d’informations sur
cette page de l’éditeur, consultez Éditeur de tâche de profilage de données (Page
Demandes de profil).

Pour plus d’informations sur l’utilisation de la tâche de profilage des données, consultez
Configuration de la tâche de profilage des données. Pour plus d’informations sur
l’utilisation de la visionneuse du profil des données pour analyser le résultat de la tâche
de profilage des données, consultez Visionneuse du profil des données.

Fonctionnement de la sélection des colonnes


pour la propriété InclusionColumns
Une demande de profil d’inclusion de valeur calcule si toutes les valeurs d’un sous-
ensemble sont présentes dans le sur-ensemble. Le sur-ensemble est souvent une table
de recherche ou de référence. Par exemple, la colonne des états dans une table
d'adresses est la table de sous-ensemble. Chaque code d'état à deux caractères dans
cette colonne doit également être disponible dans la table des codes postaux des états
des États-Unis, ce qui équivaut à la table de sur-ensemble.

Lorsque vous utilisez le caractère générique (*) en tant que valeur de la colonne côté
sous-ensemble ou de la colonne côté sur-ensemble, la tâche de profilage des données
compare chaque colonne d'un côté avec la colonne spécifiée de l'autre côté.

7 Notes

Si vous sélectionnez le caractère générique (*), cette option risque d'aboutir à un


grand nombre de calculs et de diminuer les performances de la tâche.

Fonctionnement des paramètres de seuil


Vous pouvez utiliser deux paramètres de seuil différents pour améliorer la sortie d'une
demande de profil d'inclusion de valeur.

Quand vous spécifiez une valeur autre que Aucun pour InclusionThresholdSetting, le
profil signale la puissance d’inclusion du sous-ensemble figurant dans le sur-ensemble
uniquement si l’une des conditions suivantes est satisfaite :

quand la puissance d’inclusion dépasse le seuil spécifié dans


InclusionStrengthThreshold;

quand la puissance d’inclusion affiche une valeur égale à 1,0 et si


InclusionStrengthThreshold a la valeur Exact.

Vous pouvez améliorer davantage la sortie en éliminant les combinaisons pour


lesquelles la colonne côté sur-ensemble ne constitue pas une clé adéquate pour la table
côté sur-ensemble en raison de valeurs non uniques. Quand vous spécifiez une valeur
autre que Aucun pour SupersetColumnsKeyThresholdSetting, le profil signale la
puissance d’inclusion du sous-ensemble figurant dans le sur-ensemble uniquement si
l’une des conditions suivantes est satisfaite :

quand l’adéquation des colonnes côté sur-ensemble en qualité de clé dans la table
du sur-ensemble dépasse le seuil spécifié dans SupersetColumnsKeyThreshold;

quand la puissance d’inclusion affiche une valeur ou 1.0 et si


SupersetColumnsKeyThreshold a la valeur Exact.

Options Propriétés de la demande


Pour une Demande de profil d’inclusion de valeur, le volet Propriétés de la demande
affiche les groupes d’options suivants :

Données, qui incluent les options SubsetTableOrView, SupersetTableOrViewet


InclusionColumns

Général

Options

Options de données
ConnectionManager
Sélectionnez le gestionnaire de connexions ADO.NET existant qui utilise le fournisseur
de données .NET pour SQL Server (SqlClient) pour établir la connexion à la base de
données SQL Server qui contient la table ou la vue à profiler.

SubsetTableOrView
Sélectionnez la table ou la vue existante à profiler.

Pour plus d'informations, consultez la section « Options SubsetTableOrView et


SupersetTableOrView » dans cette rubrique.

SupersetTableOrView
Sélectionnez la table ou la vue existante à profiler.

Pour plus d'informations, consultez la section « Options SubsetTableOrView et


SupersetTableOrView » dans cette rubrique.

InclusionColumns
Sélectionnez les colonnes ou les ensembles de colonnes à partir des tables côté sous-
ensemble et sur-ensemble.

Pour plus d'informations, consultez les sections « Fonctionnement de la sélection des


colonnes pour la propriété InclusionColumns » et « Options KeyColumns » dans cette
rubrique.

Options SubsetTableOrView et SupersetTableOrView

Schéma
Spécifie le schéma auquel la table sélectionnée appartient. Cette option est en lecture
seule.
TableOrView
Affiche le nom de la table sélectionnée. Cette option est en lecture seule.

Options InclusionColumns

Les options suivantes sont proposées pour chaque ensemble de colonnes sélectionné à
des fins de profilage dans InclusionColumns.

Pour plus d'informations, consultez la section « Fonctionnement de la sélection des


colonnes pour la propriété InclusionColumns », plus haut dans cette rubrique.

IsWildcard
Indique si le caractère générique (*) a été sélectionné. Cette option est définie sur True
si vous avez sélectionné (*) pour profiler toutes les colonnes. Sa valeur est False si vous
avez sélectionné une colonne spécifique dont le profil doit être généré. Cette option est
en lecture seule.

ColumnName
Affiche le nom de la colonne sélectionnée. Cette option est vide si vous avez sélectionné
(*) pour profiler toutes les colonnes. Cette option est en lecture seule.

StringCompareOptions
Sélectionnez les options de comparaison des valeurs de chaîne. Cette propriété dispose
des options répertoriées dans le tableau suivant. La valeur par défaut de cette option est
Default.

7 Notes

Quand vous utilisez un caractère générique (*) pour ColumnName,


CompareOptions est en lecture seule et est défini sur le paramètre Par défaut.

Valeur Description

Par défaut Trie et compare des données d'après le classement de la colonne dans la table
source.

BinarySort Trie et compare les données en fonction des modèles binaires définis pour
chaque caractère. L'ordre de tri binaire respecte la casse et les accents. Il s'agit
aussi de l'ordre de tri le plus rapide.

DictionarySort Trie et compare des données d'après les règles de tri et de comparaison telles
que définies dans les dictionnaires de la langue ou de l'alphabet associé.
Si vous sélectionnez DictionarySort, vous pouvez également sélectionner toutes les
combinaisons d’options répertoriées dans le tableau suivant. Par défaut, aucune de ces
options supplémentaires n'est sélectionnée.

Valeur Description

IgnoreCase Indique si la comparaison fait la distinction entre les lettres majuscules et


minuscules. Si cette option est définie, la comparaison de chaînes ignore la
casse. Par exemple, « ABC » est alors identique à « abc ».

IgnoreNonSpace Indique si la comparaison fait la distinction entre les caractères avec espace et
les caractères diacritiques. Si cette option est définie, la comparaison ignore
les caractères diacritiques. Par exemple, « à » est identique à « a ».

IgnoreKanaType Indique si la comparaison fait la distinction entre les deux types de caractères
japonais Kana : Hiragana et Katakana. Si cette option est définie, la
comparaison de chaînes ignore le type Kana.

IgnoreWidth Indique si la comparaison fait la distinction entre un caractère sur un octet et


le même caractère représenté sur deux octets. Si cette option est définie, la
comparaison de chaînes traite les représentations sur un octet et sur deux
octets du même caractère comme identiques.

Options générales
RequestID
Tapez un nom descriptif pour identifier cette demande de profil. En règle générale, il
n'est pas nécessaire de modifier la valeur générée automatiquement.

Options
InclusionThresholdSetting
Sélectionnez le paramètre de seuil pour améliorer la sortie du profil. La valeur par défaut
de cette propriété est Specified. Pour plus d'informations, consultez la section «
Fonctionnement des paramètres de seuil », plus haut dans cette rubrique.

Valeur Description

Aucun Aucun seuil n'est spécifié. La puissance de la clé est signalée, quelle que soit sa valeur.

Spécifié Utilisez le seuil spécifié dans InclusionStrengthThreshold. La puissance d'inclusion est


précisée uniquement si elle est supérieure au seuil.

Exact Aucun seuil n'est spécifié. La puissance d'inclusion est signalée uniquement si les
valeurs de sous-ensemble sont incluses entièrement dans les valeurs de sur-ensemble.
InclusionStrengthThreshold
Spécifiez le seuil (au moyen d'une valeur comprise entre 0 et 1) au-dessus duquel la
puissance d'inclusion doit être précisée. La valeur par défaut de cette propriété est 0,95.
Cette option est activée uniquement quand Specified est sélectionné comme valeur
InclusionThresholdSetting.

Pour plus d'informations, consultez la section « Fonctionnement des paramètres de seuil


», plus haut dans cette rubrique.

SupersetColumnsKeyThresholdSetting
Spécifiez le seuil de sur-ensemble. La valeur par défaut de cette propriété est Specified.
Pour plus d'informations, consultez la section « Fonctionnement des paramètres de seuil
», plus haut dans cette rubrique.

Valeur Description

Aucun Aucun seuil n'est spécifié. La puissance d'inclusion est signalée, quelle que soit la
puissance de clé de la colonne du sur-ensemble.

Spécifié Utilisez le seuil spécifié dans SupersetColumnsKeyThreshold. La puissance d'inclusion


est signalée uniquement si la puissance de clé de la colonne du sur-ensemble est
supérieure au seuil.

Exact Aucun seuil n'est spécifié. La puissance d'inclusion est signalée uniquement si les
colonnes du sur-ensemble sont une clé exacte dans la table côté sur-ensemble.

SupersetColumnsKeyThreshold
Spécifiez le seuil (au moyen d'une valeur comprise entre 0 et 1) au-dessus duquel la
puissance d'inclusion doit être précisée. La valeur par défaut de cette propriété est 0,95.
Cette option est activée uniquement quand vous sélectionnez Specified en tant que
valeur SupersetColumnsKeyThresholdSetting.

Pour plus d'informations, consultez la section « Fonctionnement des paramètres de seuil


», plus haut dans cette rubrique.

MaxNumberOfViolations
Spécifiez le nombre maximal de violations d'inclusion à signaler dans la sortie. La valeur
par défaut de cette propriété est 100. Cette option est désactivée quand vous
sélectionnez Exact comme valeur InclusionThresholdSetting.

Voir aussi
Éditeur de tâche de profilage de données (page Général)
Formulaire de profil rapide de table simple (tâche de profilage des données)
Éditeur de tâche de profilage de
données (page Général)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la page Général de l' Éditeur de tâche de profilage de données pour configurer
les options suivantes :

Spécifiez la destination de la sortie du profil.

Utilisez les paramètres par défaut pour simplifier la tâche de profilage d'une table
ou vue unique.

Pour plus d’informations sur l’utilisation de la tâche de profilage des données, consultez
Configuration de la tâche de profilage des données. Pour plus d’informations sur
l’utilisation de la visionneuse du profil des données pour analyser le résultat de la tâche
de profilage des données, consultez Visionneuse du profil des données.

Pour ouvrir la page Général de l'Éditeur de tâche de profilage de données

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services doté de
la tâche de profilage de données.

2. Sous l’onglet Flux de contrôle , double-cliquez sur la tâche de profilage des


données.

3. Dans l' Éditeur de tâche de profilage de données, cliquez sur Général.

Options de profilage des données


Délai d'expiration
Spécifiez le nombre de secondes après lesquelles la tâche de profilage des données doit
expirer et ne plus s'exécuter. La valeur par défaut est 0, ce qui indique l'absence de délai
d'expiration.

Options de destination

) Important
Le fichier de sortie peut contenir des données sensibles qui concernent votre base
de données et les données qu'elle contient. Pour obtenir des suggestions sur la
manière de sécuriser davantage ce fichier, consultez Accéder aux fichiers utilisés
par des packages.

DestinationType
Spécifiez si la sortie du profil des données doit être enregistrée dans un fichier ou une
variable :

Valeur Description

FileConnection Enregistrez la sortie du profil dans un fichier à l'emplacement spécifié dans un


gestionnaire de connexions de fichiers.

Remarque : vous devez spécifier le gestionnaire de connexions de fichiers à


utiliser dans l’option Destination .

Variable Enregistrez la sortie du profil dans une variable de package.

Remarque : vous devez spécifier la variable de package à utiliser dans l’option


Destination .

Destination
Spécifiez le gestionnaire de connexions de fichiers ou la variable de package qui
contient la sortie du profil des données :

Si l'option DestinationType est définie sur FileConnection, l'option Destination


affiche les gestionnaires de connexions de fichiers disponibles. Choisissez l’un de
ces gestionnaires de connexions ou sélectionnez <Nouvelle connexion de fichier>
pour créer un nouveau gestionnaire de connexions de fichiers.

Si l'option DestinationType est définie sur Variable, l'option Destination affiche les
variables de package disponibles dans la liste Destination . Choisissez l’une de ces
variables ou sélectionnez <Nouvelle variable> pour créer une variable.

OverwriteDestination
Spécifiez si le fichier de sortie est à remplacer s'il existe déjà. La valeur par défaut est
False. La valeur de cette propriété est utilisée uniquement lorsque l'option
DestinationType est définie sur FileConnection. Lorsque l'option DestinationType est
définie sur Variable, la tâche remplace toujours la valeur précédente de la variable.

) Important
Si vous tentez d’exécuter la tâche de profilage des données plus d’une fois sans
modifier le nom du fichier de sortie ou redéfinir la valeur de la propriété
OverwriteDestination sur True, la tâche échoue et affiche un message indiquant
que le fichier de sortie existe déjà.

Autres options
Profil rapide
Affichez le Formulaire de profil rapide de table simple. Ce formulaire simplifie la tâche
de profilage d'une table ou d'une vue unique à l'aide des paramètres par défaut. Pour
plus d’informations, consultez Formulaire de profil rapide de table simple (tâche de
profilage des données).

Ouvrir la visionneuse de profil


Ouvre la visionneuse du profil des données. La visionneuse de profil des données
autonome affiche la sortie du profil des données de la tâche de profilage des données.
Pour afficher la sortie du profil des données, vous devez avoir exécuté la tâche de
profilage des données dans le package Integration Services et avoir calculé les profils
des données.

7 Notes

Pour ouvrir la Visionneuse du profil des données, vous pouvez aussi exécuter
DataProfileViewer.exe dans le dossier, <drive>:\Program Files (x86) | Program
Files\Microsoft SQL Server\110\DTS\Binn.

Voir aussi
Formulaire de profil rapide de table simple (tâche de profilage des données)
Éditeur de tâche de profilage de données (page Demandes de profil)
Incorporer une tâche de profilage des
données dans le flux de travail du
package
Article • 12/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le profilage des données et le nettoyage des données ne sont pas des candidats pour
un processus automatisé à leur stade initial. Dans SQL Server Integration Services, la
sortie de la tâche de profilage des données doit habituellement faire l’objet d’une
analyse visuelle et d’un jugement personnel pour qu’il soit déterminé si les violations
signalées sont significatives ou excessives. Même après avoir reconnu des problèmes de
qualité des données, un plan soigneusement pensé doit être appliqué pour déterminer
la meilleure approche pour le nettoyage.

Toutefois, après avoir établi des critères de qualité des données, vous pouvez souhaiter
automatiser une analyse et un nettoyage périodiques de la source de données.
Considérez les scénarios suivants :

Vérification de la qualité des données avant une charge incrémentielle. Utilisez la


tâche de profilage des données pour calculer le profil de ratio Null de la colonne
de nouvelles données prévues pour la colonne CustomerName dans un tableau
Customers. Si le pourcentage de valeurs NULL est supérieur à 20 %, envoyez un
message électronique qui contient la sortie de profil à l'opérateur et terminez le
package. Dans le cas contraire, continuez la charge incrémentielle.

Automatisation du nettoyage lorsque les conditions spécifiées sont satisfaites.


Utilisez la tâche de profilage des données pour calculer le profil d'inclusion de
valeur de la colonne State (État) par rapport à une table de recherche d'états, et de
la colonne ZIP Code/Postal Code (Code postal) par rapport à une table de
recherche de codes postaux. Si la puissance d'inclusion des valeurs d'état est
inférieure à 80 %, mais que la puissance d'inclusion des valeurs de code postal est
supérieure à 99 %, cela indique deux choses. En premier lieu, les données d'état
sont erronées. En second lieu, les données de code postal sont correctes. Lancez
une tâche de flux de données qui nettoie les données d'état en effectuant une
recherche de la valeur d'état correcte à partir de la valeur de code postal actuelle.

Une fois que vous avez un flux de travail dans lequel vous pouvez incorporer la tâche de
flux de données, vous devez comprendre les étapes requises pour ajouter cette tâche. La
section suivante décrit le processus général d'incorporation de la tâche de flux de
données. Les deux sections finales décrivent comment connecter la tâche de flux de
données, soit directement à une source de données, soit à des données transformées à
partir du flux de données.

Définition d'un flux de travail général pour la


tâche de flux de données
La procédure décrite ci-dessous esquisse l'approche générale permettant d'utiliser la
sortie de la tâche de profilage des données dans le flux de travail d'un package.

Pour utiliser par programmation la sortie de la tâche de profilage


des données dans un package

1. Ajoutez et configurez la tâche de profilage des données dans un package.

2. Configurez des variables de package qui contiendront les valeurs que vous
souhaitez extraire des résultats du profil.

3. Ajoutez et configurez une tâche de script. Connectez la tâche de script à la tâche


de profilage des données. Dans la tâche de script, écrivez un code pour lire les
valeurs souhaitées dans le fichier de sortie de la tâche de profilage des données et
remplir les variables de package.

4. Dans les contraintes de précédence qui connectent la tâche de script aux branches
situées en aval dans le flux de travail, écrivez des expressions qui utilisent les
valeurs des variables pour diriger le flux de travail.

Lorsque vous incorporez la tâche de profilage des données dans le flux de travail d'un
package, gardez à l'esprit les deux fonctionnalités suivantes de la tâche :

Sortie de la tâche. La tâche de profilage des données écrit sa sortie dans un fichier
ou une variable de package au format XML selon le schéma DataProfile.xsd. Par
conséquent, vous devez interroger la sortie XML si vous souhaitez utiliser les
résultats du profil dans le flux de travail conditionnel d'un package. Vous pouvez
facilement utiliser le langage de requête Xpath pour interroger cette sortie XML.
Pour étudier la structure de cette sortie XML, vous pouvez ouvrir un fichier de
sortie exemple ou le schéma lui-même. Pour ouvrir le fichier de sortie ou le
schéma, vous pouvez utiliser Microsoft Visual Studio, un autre éditeur XML ou un
éditeur de texte, tel que le Bloc-notes.

7 Notes
Certains résultats du profil, affichés dans la visionneuse du profil des données,
sont des valeurs calculées qui n'ont pas été trouvées directement dans la
sortie. Par exemple, la sortie du profil de ratio Null de la colonne contient le
nombre total de lignes et le nombre de lignes qui contiennent des valeurs
Null. Vous devez effectuer une requête sur ces deux valeurs, puis calculer le
pourcentage des lignes qui contiennent des valeurs Null, pour obtenir le ratio
Null de la colonne.

Entrée de la tâche. La tâche de profilage des données lit son entrée à partir des
tables SQL Server . Par conséquent, vous devez enregistrer les données en
mémoire dans des tables intermédiaires si vous voulez profiler les données qui ont
déjà été chargées et transformées dans le flux de données.

Les sections suivantes appliquent ce flux de travail général pour profiler les données qui
proviennent directement d'une source de données externe ou qui proviennent
transformées de la tâche de flux de données. Ces sections indiquent également
comment gérer les conditions préalables d'entrée et de sortie de la tâche de flux de
données.

Connexion de la tâche de profilage des


données directement à une source de données
externe
La tâche de profilage des données peut profiler des données qui proviennent
directement d'une source de données. Pour illustrer cette fonction, l’exemple suivant
utilise la tâche de profilage des données pour calculer un profil de ratio Null de la
colonne sur les colonnes de la table Person.Address dans la base de données
AdventureWorks2022. Ensuite, cet exemple utilise une tâche de script pour extraire les
résultats du fichier de sortie et remplir les variables de package qui peuvent être
utilisées pour diriger le flux de travail.

7 Notes

La colonne AddressLine2 a été sélectionnée pour cet exemple simple, car elle
contient un pourcentage élevé de valeurs Null.

Cet exemple inclut les étapes suivantes :


Configuration des gestionnaires de connexions qui se connectent à la source de
données externe et au fichier de sortie qui contiendra les résultats du profil.

Configuration des variables de package qui contiendront les valeurs requises par la
tâche de profilage des données.

Configuration de la tâche de profilage des données permettant de calculer le profil


de ratio Null de la colonne.

Configuration de la tâche de script qui utilisera la sortie XML de la tâche de


profilage des données.

Configuration des contraintes de précédence qui contrôleront quelles branches


situées en aval dans le flux de travail seront exécutées, en fonction des résultats de
la tâche de profilage des données.

Configurer les gestionnaires de connexions


Pour cet exemple, deux gestionnaires de connexions sont utilisés :

Un gestionnaire de connexions ADO.NET qui se connecte à la base de données


AdventureWorks2022.

Un gestionnaire de connexions de fichiers qui crée le fichier de sortie qui


contiendra les résultats de la tâche de profilage des données.

Pour configurer les gestionnaires de connexions

1. Dans SQL Server Data Tools (SSDT), créez un nouveau package Integration Services
.

2. Ajoutez un gestionnaire de connexions ADO.NET au package. Configurez ce


gestionnaire de connexions pour qu’il utilise le fournisseur de données .NET pour
SQL Server (SqlClient) et se connecte à une instance disponible de la base de
données AdventureWorks2022.

Par défaut, le gestionnaire de connexions porte le nom


<nom_serveur>.AdventureWorks1.

3. Ajoutez un gestionnaire de connexions de fichiers au package. Configurez ce


gestionnaire de connexions pour créer le fichier de sortie pour la tâche de
profilage des données.
Cet exemple utilise le nom de fichier, DataProfile1.xml. Par défaut, le gestionnaire
de connexions a le même nom que le fichier.

Configurer les variables de package


Cet exemple utilise deux variables de package :

La variable ProfileConnectionName transmet le nom du gestionnaire de


connexions de fichiers à la tâche de script.

La variable AddressLine2NullRatio transmet au package le ratio de valeurs Null


calculé pour cette colonne à partir de la tâche de script.

Pour configurer les variables de package qui contiendront les


résultats du profil

Dans la fenêtre Variables , ajoutez et configurez les deux variables de package


suivantes :

Entrez le nom ProfileConnectionNamepour l’une des variables et définissez le


type de cette variable en spécifiant String.

Entrez le nom AddressLine2NullRatiopour l’autre variable et définissez le type


de cette variable en spécifiant Double.

Configurer la tâche de profilage des données


La tâche de profilage des données doit être configurée de la façon suivante :

Pour utiliser les données que le gestionnaire de connexions ADO.NET fournit


comme entrée.

Pour effectuer une opération de profil de ratio Null de la colonne sur les données
d'entrée.

Pour enregistrer les résultats du profil dans le fichier associé au gestionnaire de


connexions de fichiers.

Pour configurer la tâche de profilage des données

1. Ajoutez une tâche de profilage des données au flux de contrôle.

2. Ouvrez l' Éditeur de tâche de profilage de données pour configurer la tâche.


3. Dans la page Général de l'éditeur, pour Destination, sélectionnez le nom du
gestionnaire de connexions de fichiers que vous avez configuré précédemment.

4. Dans la page Demandes de profil de l'éditeur, créez un nouveau profil de ratio


Null de la colonne.

5. Dans le volet Propriétés de la demande , pour ConnectionManager, sélectionnez


le gestionnaire de connexions ADO.NET que vous avez configuré précédemment.
Ensuite, pour TableOrView, sélectionnez Person.Address.

6. Fermez l'Éditeur de tâche de profilage de données.

Configurer la tâche de script


La tâche de script doit être configurée pour extraire les résultats du fichier de sortie et
remplir les variables de package configurées précédemment.

Pour configurer la tâche de script

1. Ajoutez une tâche de script au flux de contrôle.

2. Connectez la tâche de script à la tâche de profilage des données.

3. Ouvrez l' éditeur de tâche de script pour configurer la tâche.

4. Dans la page Script , sélectionnez votre langage de programmation préféré.


Ensuite, rendez les deux variables de package disponibles pour le script:

a. Pour ReadOnlyVariables, sélectionnez ProfileConnectionName.

b. Pour ReadWriteVariables, sélectionnez AddressLine2NullRatio.

5. Sélectionnez Modifier le script pour ouvrir l'environnement de développement de


script.

6. Ajoutez une référence à l'espace de noms System.Xml.

7. Entrez l'exemple de code qui correspond à votre langage de programmation :

VB

Imports System
Imports Microsoft.SqlServer.Dts.Runtime
Imports System.Xml

Public Class ScriptMain


Private FILENAME As String = "C:\ TEMP\DataProfile1.xml"
Private PROFILE_NAMESPACE_URI As String =
"https://schemas.microsoft.com/DataDebugger/"
Private NULLCOUNT_XPATH As String = _
"/default:DataProfile/default:DataProfileOutput/default:Profiles" &
_

"/default:ColumnNullRatioProfile[default:Column[@Name='AddressLine2']]/
default:NullCount/text()"
Private TABLE_XPATH As String = _
"/default:DataProfile/default:DataProfileOutput/default:Profiles" &
_

"/default:ColumnNullRatioProfile[default:Column[@Name='AddressLine2']]/
default:Table"

Public Sub Main()

Dim profileConnectionName As String


Dim profilePath As String
Dim profileOutput As New XmlDocument
Dim profileNSM As XmlNamespaceManager
Dim nullCountNode As XmlNode
Dim nullCount As Integer
Dim tableNode As XmlNode
Dim rowCount As Integer
Dim nullRatio As Double

' Open output file.


profileConnectionName =
Dts.Variables("ProfileConnectionName").Value.ToString()
profilePath =
Dts.Connections(profileConnectionName).ConnectionString
profileOutput.Load(profilePath)
profileNSM = New XmlNamespaceManager(profileOutput.NameTable)
profileNSM.AddNamespace("default", PROFILE_NAMESPACE_URI)

' Get null count for column.


nullCountNode = profileOutput.SelectSingleNode(NULLCOUNT_XPATH,
profileNSM)
nullCount = CType(nullCountNode.Value, Integer)

' Get row count for table.


tableNode = profileOutput.SelectSingleNode(TABLE_XPATH, profileNSM)
rowCount = CType(tableNode.Attributes("RowCount").Value, Integer)

' Compute and return null ratio.


nullRatio = nullCount / rowCount
Dts.Variables("AddressLine2NullRatio").Value = nullRatio

Dts.TaskResult = Dts.Results.Success

End Sub

End Class
C#

using System;
using Microsoft.SqlServer.Dts.Runtime;
using System.Xml;

public class ScriptMain


{

private string FILENAME = "C:\\ TEMP\\DataProfile1.xml";


private string PROFILE_NAMESPACE_URI =
"https://schemas.microsoft.com/DataDebugger/";
private string NULLCOUNT_XPATH =
"/default:DataProfile/default:DataProfileOutput/default:Profiles" +
"/default:ColumnNullRatioProfile[default:Column[@Name='AddressLine2']]/
default:NullCount/text()";
private string TABLE_XPATH =
"/default:DataProfile/default:DataProfileOutput/default:Profiles" +
"/default:ColumnNullRatioProfile[default:Column[@Name='AddressLine2']]/
default:Table";

public void Main()


{

string profileConnectionName;
string profilePath;
XmlDocument profileOutput = new XmlDocument();
XmlNamespaceManager profileNSM;
XmlNode nullCountNode;
int nullCount;
XmlNode tableNode;
int rowCount;
double nullRatio;

// Open output file.


profileConnectionName =
Dts.Variables["ProfileConnectionName"].Value.ToString();
profilePath =
Dts.Connections[profileConnectionName].ConnectionString;
profileOutput.Load(profilePath);
profileNSM = new XmlNamespaceManager(profileOutput.NameTable);
profileNSM.AddNamespace("default", PROFILE_NAMESPACE_URI);

// Get null count for column.


nullCountNode = profileOutput.SelectSingleNode(NULLCOUNT_XPATH,
profileNSM);
nullCount = (int)nullCountNode.Value;

// Get row count for table.


tableNode = profileOutput.SelectSingleNode(TABLE_XPATH,
profileNSM);
rowCount = (int)tableNode.Attributes["RowCount"].Value;
// Compute and return null ratio.
nullRatio = nullCount / rowCount;
Dts.Variables["AddressLine2NullRatio"].Value = nullRatio;

Dts.TaskResult = Dts.Results.Success;

7 Notes

L'exemple de code indiqué dans cette procédure montre comment charger la


sortie de la tâche de profilage des données à partir d'un fichier. Pour charger
la sortie de la tâche de profilage des données à partir d'une variable de
package, reportez-vous à l'exemple de code alternatif qui suit cette
procédure.

8. Fermez l'environnement de développement de script, puis l'éditeur de tâche de


script.

Code alternatif - Lecture de la sortie du profil à partir d’une


variable

La procédure précédente montre comment charger la sortie de la tâche de profilage des


données à partir d'un fichier. Toutefois, une méthode alternative consiste à charger cette
sortie à partir d'une variable de package. Pour charger la sortie à partir d'une variable,
vous devez apporter les modifications suivantes dans l'exemple de code :

Appelez la méthode LoadXml de la classe XmlDocument à la place de la méthode


Load .

Dans l'éditeur de tâche de script, ajoutez le nom de la variable de package qui


contient la sortie du profil dans la liste ReadOnlyVariables de la tâche.

Passez la valeur de chaîne de la variable à la méthode LoadXML , comme indiqué


dans l'exemple de code suivant. (Cet exemple utilise "ProfileOutput" comme nom
de la variable de package qui contient la sortie du profil.)

VB

Dim outputString As String


outputString = Dts.Variables("ProfileOutput").Value.ToString()
...
profileOutput.LoadXml(outputString)

C#

string outputString;
outputString = Dts.Variables["ProfileOutput"].Value.ToString();
...
profileOutput.LoadXml(outputString);

Configurer les contraintes de précédence


Il convient de configurer les contraintes de précédence pour contrôler quelles branches
situées en aval dans le flux de travail seront exécutées, en fonction des résultats de la
tâche de profilage des données.

Pour configurer les contraintes de précédence

Dans les contraintes de précédence qui connectent la tâche de script aux branches
situées en aval dans le flux de travail, écrivez des expressions qui utilisent les
valeurs des variables pour diriger le flux de travail.

Par exemple, vous pouvez définir l' Opération d'évaluation de la contrainte de


précédence en spécifiant Expression et contrainte. Ensuite, vous pouvez utiliser
@AddressLine2NullRatio < .90 comme valeur de l'expression. En conséquence, le
flux de travail suit le chemin d'accès sélectionné lorsque les tâches précédentes
réussissent et lorsque le pourcentage de valeurs NULL dans la colonne
sélectionnée est inférieur à 90 %.

Connexion de la tâche de profilage des


données aux données transformées à partir du
flux de données
Au lieu de profiler directement des données à partir d'une source de données, vous
pouvez profiler des données qui ont déjà été chargées et transformées dans le flux de
données. Toutefois, la tâche de profilage des données fonctionne uniquement par
rapport à des données persistantes et non pas par rapport à des données en mémoire.
Par conséquent, vous devez en premier lieu utiliser un composant de destination pour
enregistrer les données transformées dans une table intermédiaire.
7 Notes

Lorsque vous configurez la tâche de profilage des données, vous devez


sélectionner des tables et des colonnes existantes. Par conséquent, vous devez
créer la table intermédiaire au moment de la conception avant de pouvoir
configurer la tâche. En d'autres termes, ce scénario ne vous permet pas d'utiliser
une table temporaire créée au moment de l'exécution.

Après avoir enregistré les données dans une table intermédiaire, vous pouvez effectuer
les actions suivantes :

utiliser la tâche de profilage des données pour profiler les données ;

utiliser une tâche de script pour lire les résultats comme cela a été décrit
précédemment dans cette rubrique ;

utiliser ces résultats pour diriger le flux de travail suivant du package.

La procédure décrite ci-dessous fournit l'approche générale de l'utilisation de la tâche


de profilage des données pour profiler des données qui ont été transformées par le flux
de données. Un grand nombre de ces étapes sont semblables à celles décrites
précédemment pour le profilage de données qui proviennent directement d'une source
de données externe. Vous pouvez réexaminer ces étapes précédentes pour obtenir plus
d'informations sur la façon de configurer les différents composants.

Pour utiliser la tâche de profilage des données dans le flux de


données

1. Dans SQL Server Data Tools (SSDT), créez un package.

2. Dans le flux de données, ajoutez, configurez et connectez les sources et les


transformations appropriées.

3. Dans le flux de données, ajoutez, configurez et connectez un composant de


destination qui enregistre les données transformées dans une table intermédiaire.

4. Dans le flux de contrôle, ajoutez et configurez une tâche de profilage des données
qui calcule les profils souhaités par rapport aux données transformées dans la
table intermédiaire. Connectez la tâche de profilage des données à la tâche de flux
de données.

5. Configurez des variables de package qui contiendront les valeurs que vous
souhaitez extraire des résultats du profil.
6. Ajoutez et configurez une tâche de script. Connectez la tâche de script à la tâche
de profilage des données. Dans la tâche de script, écrivez un code pour lire les
valeurs souhaitées dans la sortie de la tâche de profilage des données et remplir
les variables de package.

7. Dans les contraintes de précédence qui connectent la tâche de script aux branches
situées en aval dans le flux de travail, écrivez des expressions qui utilisent les
valeurs des variables pour diriger le flux de travail.

Voir aussi
Configuration de la tâche de profilage des données
Visionneuse du profil des données
Tâche d'exécution de package
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche d'exécution de package étend les fonctionnalités d'entreprise de Integration


Services en permettant à des packages d'exécuter d'autres packages au sein d'un flux de
travail.

Vous pouvez utiliser la tâche d'exécution de package aux fins suivantes :

Division d'un flux de travail de package complexe. Cette tâche vous permet de
diviser le flux de travail en plusieurs packages, qui sont plus faciles à lire, à tester et
à maintenir. Par exemple, si vous chargez des données dans un schéma en étoile,
vous pouvez créer un package distinct pour remplir chaque dimension et la table
de faits.

Réutilisation de parties de packages. D'autres packages peuvent réutiliser des


parties d'un flux de travail de package. Par exemple, vous pouvez créer un module
d'extraction des données qui peut être appelé depuis différents packages. Chaque
package qui appelle le module d'extraction peut exécuter différentes opérations
de purge, de filtrage ou d'agrégation sur les données.

Regroupement des unités de travail. Les unités de travail peuvent être encapsulées
dans des packages distincts et incluses sous forme de composants transactionnels
au flux de travail d'un package parent. Par exemple, le package parent exécute les
packages secondaires et, en fonction de la réussite ou de l'échec des packages
secondaires, il valide ou annule la transaction.

Contrôle de la sécurité des packages. Les auteurs de package ont besoin d'accéder
à une seule partie d'une solution multipackage. En séparant un package en
plusieurs packages, vous pouvez fournir un niveau de sécurité plus élevé ; en effet,
vous pouvez permettre à un auteur d'accéder aux seuls packages appropriés.

Un package qui exécute d'autres packages est généralement appelé « package parent »,
tandis que les packages exécutés par un flux de travail parent sont appelés « packages
enfants ».

Integration Services comprend des tâches qui effectuent des opérations de flux de
travail, telles que l'exécution de fichiers de commandes, d'exécutables et de packages.
Pour plus d'informations, consultez Execute Process Task.
Exécution des packages
La tâche d'exécution de package peut exécuter des packages enfants contenus dans le
même projet qui contient le package parent. Vous sélectionnez un package enfant d'un
projet en définissant la propriété ReferenceType sur Project Reference, puis en
définissant la propriété PackageNameFromProjectReference .

7 Notes

L’option ReferenceType est en lecture seule et est définie sur Référence externe si
le projet qui contient le package n’a pas été converti en modèle de déploiement de
projet. Déployer des projets et des packages Integration Services (SSIS).

La tâche d’exécution de package peut exécuter des packages stockés dans la base de
données SQL Server msdb et des packages stockés dans le système de fichiers. La tâche
utilise un gestionnaire de connexions OLE DB pour se connecter à SQL Server ou un
gestionnaire de connexions de fichiers pour accéder au système de fichiers. Pour plus
d'informations, consultez OLE DB Connection Manager et Flat File Connection Manager.

La tâche d'exécution de package peut également exécuter un plan de maintenance de


base de données, ce qui vous permet de gérer les packages SSIS et les plans de
maintenance de base de données dans la même solution Integration Services . Un plan
de maintenance de base de données est similaire à un package SSIS , mais il ne peut
inclure que des tâches de maintenance de base de données et est toujours stocké dans
la base de données msdb.

Si vous choisissez un package stocké dans le système de fichiers, vous devez fournir le
nom et l'emplacement du package. Le package peut se trouver à n'importe quel endroit
dans le système de fichiers ; il n'est pas nécessaire qu'il figure dans le même dossier que
le package parent.

Le package enfant peut être exécuté dans le processus du package parent ou dans son
propre processus. L'exécution du package enfant dans son propre processus nécessite
davantage de mémoire, mais elle offre plus de souplesse. Par exemple, si le processus
enfant échoue, l'exécution du processus parent peut se poursuivre.

Dans d'autres situations, vous pouvez préférer que les packages parent et enfants
échouent ensemble comme une même unité, ou bien éviter la charge de traitement
supplémentaire d'un autre processus. Par exemple, si un processus enfant échoue et que
les traitements ultérieurs du processus parent du package dépendent de la réussite du
processus enfant, alors le package enfant doit s'exécuter dans le processus du package
parent.
Par défaut, la propriété ExecuteOutOfProcess de la tâche d’exécution du package a la
valeur False, et le package enfant s’exécute dans le même processus que le package
parent. Si vous affectez la valeur Trueà cette propriété, le package enfant s'exécute dans
un processus indépendant. Cela peut ralentir le lancement du package enfant. En outre,
si vous affectez la valeur Trueà la propriété, vous ne pouvez pas déboguer le package
dans une installation d’outils uniquement. Vous devez installer Integration Services. Pour
plus d’informations, consultez Installer Integration Services.

Extension des transactions


La transaction que le package parent utilise peut être étendue au package enfant ; par
conséquent, le travail réalisé par les deux packages peut être validé ou annulé. Par
exemple, les insertions dans une base de données effectuées par le package parent
peuvent être validées ou annulées, en fonction de celles réalisées par le package enfant,
et vice versa. Pour plus d'informations, consultez Inherited Transactions.

Propagation des détails de la journalisation


Le package enfant exécuté par la tâche d'exécution de package peut ou non être
configuré de manière à utiliser la journalisation, mais il transfère toujours les détails du
journal au package parent. Si la tâche d'exécution de package est configurée de manière
à utiliser la journalisation, elle consigne les informations détaillées du journal à partir du
package enfant. Pour plus d’informations, consultez Journalisation d’Integration Services
(SSIS).

Passage de valeurs à des packages enfants


Un package enfant utilise fréquemment des valeurs transmises par un autre package qui
l'appelle, généralement son package parent. L'utilisation de valeurs issues d'un package
parent est utile dans les scénarios suivants :

Les parties d'un flux de travail plus volumineux sont affectées à différents
packages. Par exemple, un package télécharge des données chaque nuit, les
résume, affecte des valeurs de données de synthèse à des variables, puis les passe
à un autre package qui les traite à son tour.

Le package parent coordonne dynamiquement les tâches d'un package enfant. Par
exemple, le package parent détermine le nombre de jours d'un mois en cours et
affecte ce nombre à une variable, puis le package enfant effectue une tâche autant
de fois que la valeur du nombre.
Un package enfant nécessite l'accès à des données dérivées dynamiquement par le
package parent. Par exemple, le package parent extrait des données d'une table et
charge l'ensemble de lignes dans une variable, puis le package enfant effectue des
opérations supplémentaires sur les données.

Vous pouvez utiliser les méthodes suivantes pour passer des valeurs à un package
enfant :

Configurations de package

Integration Services contient un type de configuration, en l'occurrence la


configuration Variable de package parent, qui permet de passer les valeurs du
package parent au package enfant. La configuration est basée sur le package
enfant et utilise une variable dans le package parent. La configuration est mappée
à une variable ou à la propriété d'un objet du package enfant. La variable peut
également être utilisée dans les scripts utilisés par la tâche de script ou le
composant de script.

Paramètres

Vous pouvez configurer la tâche d'exécution des packages pour mapper les
variables ou paramètres de package parent (ou les paramètres du projet) aux
paramètres de package enfant. Le projet doit utiliser le modèle de déploiement de
projet et le package enfant doit être contenu dans le même projet qui contient le
package parent. Pour plus d'informations, consultez Execute Package Task Editor.

7 Notes

Si le paramètre de package enfant ne respecte pas la casse et s'il est mappé à


un paramètre parent qui respecte la casse, le package enfant ne peut pas
s'exécuter.

Les conditions de mappage suivantes sont prises en charge :

Le paramètre de package enfant qui respecte la casse est mappé à un


paramètre parent qui respecte la casse.

Le paramètre de package enfant qui respecte la casse est mappé à un


paramètre parent qui ne respecte pas la casse.

Le paramètre de package enfant qui ne respecte pas la casse est mappé à un


paramètre parent qui ne respecte pas la casse.
La variable du package parent peut être définie dans l'étendue de la tâche d'exécution
de package ou dans un conteneur parent tel que le package. Si plusieurs variables de
même nom sont disponibles, la variable utilisée est celle définie dans l'étendue de la
tâche d'exécution de package ou celle qui, du point de vue de l'étendue, est la plus
proche de la tâche.

Pour plus d’informations, consultez Utiliser les valeurs des variables et des paramètres
dans un package enfant.

Accès aux variables de package parent


Les packages enfants peuvent accéder à des variables de package parent à l'aide de la
tâche de script. Quand vous entrez le nom de la variable de package parent sur la page
Script dans l’Éditeur de tâche de script, n’incluez pas Utilisateur : dans le nom de la
variable. Sinon, le package enfant ne localise pas la variable quand vous exécutez le
package parent.

Configuration de la tâche d'exécution de


package
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Page Expressions

Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Configuration de la tâche d'exécution de


package par programmation
Pour plus d'informations sur la définition par programme de ces propriétés, cliquez sur
la rubrique suivante :

N:Microsoft.SqlServer.Dts.Tasks.ExecutePackageTask
Éditeur de tâche d'exécution de package
Utilisez l'Éditeur de tâche d'exécution de package pour configurer la tâche d'exécution
de package. La tâche d'exécution de package étend les fonctionnalités d'entreprise de
Integration Services en permettant à des packages d'exécuter d'autres packages au sein
d'un flux de travail.

Que voulez-vous faire ?

Ouvrir l'Éditeur de tâche d'exécution de package

Définir les options sur la page Général

Définir les options sur la page Package

Définir les options sur la page Liaisons de paramètre

Ouvrir l'Éditeur de tâche d'exécution de package


1. Ouvrez un projet Integration Services dans Visual Studio qui contient une tâche
d'exécution de package.

2. Cliquez avec le bouton droit sur la tâche dans le Concepteur SSIS, puis cliquez sur
Modifier.

Définir les options sur la page Général


Nom
Fournissez un nom unique pour la tâche d'exécution de package. Ce nom sert
d'étiquette à l'icône de la tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Entrez une description de la tâche d'exécution de package.

Définir les options sur la page Package


ReferenceType
Sélectionnez Référence du projet pour les packages enfants qui sont dans le projet.
Sélectionnez Référence externe pour les packages enfants situés en dehors du package.

7 Notes

L’option ReferenceType est en lecture seule et est définie sur Référence externe si
le projet qui contient le package n’a pas été converti en modèle de déploiement de
projet. Déployer des projets et des packages Integration Services (SSIS).

Mot de passe
Si le package enfant s’avère protégé par un mot de passe, indiquez ce dernier ou cliquez
sur le bouton représentant des points de suspension (...) afin de définir un nouveau mot
de passe.

ExecuteOutOfProcess
Spécifiez si le package enfant s'exécute dans le processus du package parent ou dans un
processus distinct. Par défaut, la propriété ExecuteOutOfProcess de la tâche d’exécution
du package a la valeur False, et le package enfant s’exécute dans le même processus
que le package parent. Si vous affectez la valeur trueà cette propriété, le package enfant
s'exécute dans un processus indépendant. Cela peut ralentir le lancement du package
enfant. En outre, si vous avez défini la propriété sur true, vous ne pouvez pas déboguer
le package dans une installation d’outils uniquement : vous devez installer le produit
Integration Services . Pour plus d’informations, consultez Installer Integration Services.

Options dynamiques de ReferenceType

ReferenceType = Référence externe

Lieu
Sélectionnez l'emplacement du package enfant. Cette propriété dispose des options
répertoriées dans le tableau suivant.

Valeur Description

SQL Server Définissez l'emplacement d'une instance de SQL Server.

Système de fichiers Permet de définir l'emplacement du système de fichiers.

Connection
Sélectionnez le type d’emplacement de stockage du package enfant.

PackageNameReadOnly
Permet d'afficher le nom du package.
ReferenceType = Référence du projet

PackageNameFromProjectReference
Sélectionnez un package contenu dans le projet, qui sera le package enfant.

Options dynamiques pour la définition de l'emplacement

Emplacement = SQL Server

Connection
Sélectionnez un gestionnaire de connexions OLE DB dans la liste ou cliquez sur
<Nouvelle connexion...> pour en créer un.

Rubriques connexes :Gestionnaire de connexions OLE DB

PackageName
Permet d’entrer le nom du package enfant ou de cliquer sur le bouton représenté par
des points de suspension (...) pour atteindre le package.

Emplacement = Système de fichiers

Connection
Sélectionnez un gestionnaire de connexions de fichiers dans la liste ou cliquez sur
<Nouvelle connexion...> pour en créer un.

Rubriques connexes :Gestionnaire de connexions de fichiers

PackageNameReadOnly
Permet d'afficher le nom du package.

Définir les options sur la page Liaisons de paramètre


Vous pouvez passer des valeurs du package parent ou du projet au package enfant. Le
projet doit utiliser le modèle de déploiement de projet et le package enfant doit être
contenu dans le même projet qui contient le package parent.

Pour plus d’informations sur la conversion de projets en modèle de déploiement de


projet, consultez Déployer des projets et des packages Integration Services (SSIS).

Paramètre de package enfant


Entrez ou sélectionnez un nom pour le paramètre de package enfant.
Variable ou paramètre de liaison
Sélectionnez le paramètre ou la variable contenant la valeur que vous souhaitez
transmettre au package enfant.

Ajouter
Cliquez pour mapper un paramètre ou une variable à un paramètre de package enfant.

Remove
Cliquez pour supprimer un mappage entre un paramètre ou une variable et un
paramètre de package enfant.
Tâche d’exécution de processus
Article • 01/02/2024

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche d’exécution de processus exécute une application ou un fichier de commandes


dans le cadre d’un workflow de package SQL Server Integration Services. Bien qu'il soit
possible d'utiliser la tâche d'exécution de processus pour ouvrir des applications
standard telles que Microsoft Excel ou Microsoft Word, il est courant de l'utiliser pour
exécuter des applications d'entreprise ou des fichiers de commandes travaillant sur une
source de données. Par exemple, vous pouvez utiliser la tâche d'exécution de processus
pour développer un fichier texte compressé. Ensuite, le package peut utiliser le fichier
texte comme source de données pour le flux de données de ce package. Vous pouvez
aussi utiliser la tâche d'exécution de processus pour démarrer une application
personnalisée Visual Basic, chargée de générer quotidiennement un rapport sur les
ventes. Ensuite, vous pouvez associer le rapport à une tâche Envoyer un message pour
le transmettre à une liste de distribution.

Integration Services comprend d’autres tâches qui effectuent des opérations de


workflow comme l’exécution de packages. Pour plus d’informations, consultez Tâche
d’exécution de package.

Entrées de journal personnalisées disponibles


pour la tâche Exécuter le processus
Le tableau suivant répertorie les entrées de journal personnalisées pour la tâche
d'exécution de processus. Pour plus d’informations, consultez Journalisation
d’Integration Services (SSIS).

ノ Agrandir le tableau

Entrée du journal Description

ExecuteProcessExecutingProcess Fournit des informations sur le processus que la tâche est


chargée d'exécuter.

Deux entrées de journal sont écrites. La première contient des


informations sur le nom et l'emplacement de l'exécutable que
la tâche exécute ; la deuxième enregistre la sortie de
l'exécutable.
Entrée du journal Description

ExecuteProcessVariableRouting Fournit des informations sur les variables qui doivent être
acheminées vers l'entrée et les sorties de l'exécutable. Les
entrées du journal sont écrites pour stdin (l'entrée), stdout (la
sortie) et stderr (la sortie des erreurs).

Configuration de la tâche d’exécution de


processus
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d’informations sur la configuration de ces propriétés dans SSIS Designer,
consultez Ajouter ou supprimer une tâche ou un conteneur dans un flux de contrôle.

Paramètres de propriété
Lorsque la tâche d'exécution de processus exécute une application personnalisée, elle
fournit l'entrée à l'application via l'une des méthodes suivantes, ou les deux :

Une variable que vous spécifiez dans le paramètre de propriété


StandardInputVariable . Pour plus d’informations sur les variables, consultez
Variables des services d’intégration (SSIS) et Variables des services d’intégration
(SSIS).

Un argument que vous spécifiez dans le paramètre de propriété Arguments . (Par


exemple, si la tâche ouvre un document dans Word, l'argument peut nommer le
fichier .doc.)

Pour passer plusieurs arguments à une application personnalisée dans une tâche
d'exécution de processus, utilisez des espaces pour délimiter les arguments. Un
argument ne peut pas inclure d’espace, sinon la tâche ne s’exécute pas. Vous pouvez
utiliser une expression pour passer une valeur variable comme argument. Dans
l'exemple suivant, l'expression passe deux valeurs variables comme arguments et utilise
un espace pour délimiter les arguments :

@variable1 + " " + @variable2

Vous pouvez utiliser une expression pour définir différentes propriétés de tâche
d'exécution de processus.
Quand vous configurez la tâche d’exécution de processus à l’aide de la propriété
StandardInputVariable pour fournir l’entrée, appelez la méthode Console.ReadLine de
l’application pour lire l’entrée. Pour plus d’informations, consultez la Méthode
Console.ReadLine.

Quand vous configurez la tâche d’exécution de processus à l’aide de la propriété


Arguments pour fournir l’entrée, effectuez l’une des étapes suivantes pour obtenir les
arguments :

Si vous utilisez Microsoft Visual Basic pour écrire l’application, définissez la


propriété My.Application.CommandLineArgs . L’exemple suivant définit la
propriété My.Application.CommandLineArgs pour extraire deux arguments :

VB

Dim variable1 As String = My.Application.CommandLineArgs.Item(0)


Dim variable2 As String = My.Application.CommandLineArgs.Item(1)

Pour plus d’informations, consultez Propriété


ConsoleApplicationBase.CommandLineArgs.

Si vous utilisez Microsoft Visual C# pour écrire l’application, utilisez la méthode


Main.

Pour plus d’informations, consultez la rubrique Arguments de ligne de commande


(Guide de programmation C#).

La tâche d’exécution de processus comprend également les propriétés


StandardOutputVariable et StandardErrorVariable à l’aide desquelles vous pouvez
spécifier les variables qui exploitent la sortie et la sortie d’erreur standard de
l’application, respectivement.

En outre, vous pouvez configurer la tâche d'exécution de processus de manière à


spécifier un répertoire de travail, un délai d'attente ou une valeur pour indiquer que
l'exécutable s'est correctement exécuté. La tâche peut également être configurée pour
échouer si le code de retour de l’exécutable ne correspond pas à la valeur indiquant le
succès, ou si l’exécutable n’est pas trouvé à l’emplacement spécifié.

Configuration programmatique de la tâche


Exécuter le processus
Pour plus d’informations sur la définition de ces propriétés par programmation,
consultez ExecuteProcess.
Éditeur de tâche d’exécution de processus
(page Général)
La page Général de la boîte de dialogue Éditeur de tâche d’exécution de processus
permet de nommer et de décrire la tâche d’exécution de processus.

Options
Nom
Fournissez un nom unique pour la tâche d'exécution de processus. Ce nom sert
d'étiquette à l'icône de la tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Entrez une description de la tâche d'exécution de processus.

Éditeur de tâche d’exécution de processus


(page Processus)
Utilisez la page Traiter de la boîte de dialogue Éditeur de tâche d'exécution de
processus pour configurer les options qui exécutent le processus. Ces options
comprennent l'exécutable à lancer, son emplacement, les arguments de l'invite de
commandes et les variables qui fournissent l'entrée et la sortie de capture.

Options
RequireFullFileName
Indiquez si la tâche doit échouer au cas où l’exécutable est introuvable à l’emplacement
spécifié.

Exécutable
Tapez le nom de l'exécutable à lancer.

Arguments
Fournissez les arguments de l'invite de commandes.
WorkingDirectory
Saisissez le chemin d’accès du dossier qui contient l’exécutable ou cliquez sur le bouton
Parcourir (...), puis recherchez le dossier.

StandardInputVariable
Sélectionnez une variable pour fournir l’entrée au processus ou cliquez sur <Nouvelle
variable…> pour en créer une :

Rubriques connexes :Variables Integration Services (SSIS)

StandardOutputVariable
Sélectionnez une variable pour capturer la sortie du processus ou cliquez sur <Nouvelle
variable…> pour en créer une.

StandardErrorVariable
Sélectionnez une variable pour capturer la sortie d’erreur du processeur ou cliquez sur
<Nouvelle variable…> pour en créer une.

FailTaskIfReturnCodeIsNotSuccessValue
Indiquez si la tâche échoue quand le code de sortie du processus est différent de la
valeur spécifiée dans SuccessValue.

SuccessValue
Spécifiez la valeur retournée par l'exécutable pour indiquer le succès de l'opération. Par
défaut, cette valeur est définie sur 0 .

TimeOut
Spécifiez la durée en secondes de l'exécution du processus. Une valeur 0 indique
qu’aucune valeur de délai d’expiration n’est utilisée et que le processus s’exécute jusqu’à
ce qu’il se termine ou jusqu’à ce qu’une erreur se produise.

TerminateProcessAfterTimeOut
Indiquez si le processus doit se terminer après le délai d’attente spécifié par l’option
TimeOut . Cette option est uniquement disponible si la valeur de TimeOut n’est pas 0 .

WindowStyle
Spécifiez le style de la fenêtre dans lequel le processus est exécuté.

Contenu connexe
Tâches Integration Services
Flux de contrôle
Commentaires
Cette page a-t-elle été utile ?  Yes  No

Indiquer des commentaires sur le produit | Obtenir de l’aide sur Microsoft Q&A
Tâche Exécuter le travail de l'Agent SQL
Server
Article • 26/04/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche Exécuter le travail de l'Agent SQL Server exécute des travaux de l'Agent SQL
Server . SQL Server Agent est un service Windows Microsoft qui exécute des travaux
définis dans une instance de SQL Server. Vous pouvez créer des travaux qui exécutent
des instructions Transact-SQL et des scripts ActiveX, réalisent des tâches de maintenance
des services Analysis Services et de réplication ou exécutent des packages. Vous pouvez
également configurer une tâche pour surveiller Microsoft SQL Server et déclencher des
alertes. SQL Server Les travaux de l’Agent sont généralement utilisés pour automatiser
des tâches à caractère répétitif. Pour plus d’informations, consultez Implémenter des
travaux.

Grâce à la tâche Exécuter le travail de l'Agent SQL Server , un package peut effectuer des
tâches d'administration liées aux composants SQL Server . Par exemple, un travail
d’Agent SQL Server peut exécuter une procédure stockée système telle que
sp_enum_dtspackages pour obtenir la liste des packages stockés dans un dossier.

7 Notes

SQL Server Agent doit être en cours d’exécution pour que les travaux
d’administration locaux ou multiserveurs puissent être exécutés automatiquement.

Cette tâche encapsule la procédure système sp_start_job et transmet le nom du travail


d’Agent SQL Server à la procédure en guise d’argument. Pour plus d’informations,
consultez sp_start_job (Transact-SQL).

Configuration de la tâche d'exécution de travail


d'Agent SQL Server
Vous pouvez définir les propriétés par le biais du concepteur SSIS . Cette tâche se trouve
dans la section Tâches du plan de maintenance de la boîte à outils du concepteur SSIS .

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :
Tâche Exécuter le travail de SQL Server Agent (Plan de maintenance)

Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur


Tâche d’exécution de requêtes SQL
Article • 30/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche d'exécution SQL exécute des instructions ou des procédures stockées SQL à
partir d'un package. La tâche peut contenir une seule ou plusieurs instructions SQL
s'exécutant de façon séquentielle. Vous pouvez utiliser la tâche d'exécution SQL aux fins
suivantes :

Tronquer une table ou une vue pour la préparer à l'insertion de données.

Créer, modifier et supprimer des objets de base de données tels que des tables et
des vues.

Recréer des tables de faits et de dimension avant d'y charger des données.

Exécuter des procédures stockées. Si l'instruction SQL appelle une procédure


stockée qui retourne des résultats à partir d'une table temporaire, utilisez l'option
WITH RESULT SETS afin de définir les métadonnées du jeu de résultats.

Enregistrer dans une variable l'ensemble de lignes retourné par une requête.

Vous pouvez combiner la tâche d'exécution SQL et les conteneurs de boucles Foreach et
For pour exécuter plusieurs instructions SQL. Ces conteneurs mettent en œuvre des flux
de contrôle répétitifs dans un package et peuvent exécuter la tâche d'exécution SQL de
façon répétée. Par exemple, à l'aide du conteneur de boucles Foreach, un package peut
passer en revue les fichiers d'un dossier et exécuter une tâche d'exécution SQL de façon
répétée afin d'exécuter l'instruction SQL stockée dans chaque fichier.

Connexion à une source de données


La tâche d'exécution SQL peut utiliser différents types de gestionnaires de connexions
pour se connecter à la source de données dans laquelle elle exécute l'instruction ou la
procédure stockée SQL. La tâche peut utiliser les types de connexion décrits dans le
tableau suivant.

Type de connexion Gestionnaire de connexions

EXCEL Gestionnaire de connexions Excel

OLE DB Gestionnaire de connexions OLE DB


Type de connexion Gestionnaire de connexions

ODBC Gestionnaire de connexions ODBC

ADO Gestionnaire de connexions ADO

ADO.NET Gestionnaire de connexions ADO.NET

SQLMOBILE Gestionnaire de connexions de SQL Server Compact Edition

Créer des instructions SQL


La source des instructions SQL utilisée par cette tâche peut être une propriété de tâche
contenant une instruction, une connexion à un fichier contenant une ou plusieurs
instructions ou le nom d'une variable contenant une instruction. Les instructions SQL
doivent être écrites dans le langage du système de gestion de bases de données (SGBD)
source. Pour plus d’informations, consultez Requêtes Integration Services (SSIS).

Si les instructions SQL sont stockées dans un fichier, la tâche utilise un gestionnaire de
connexions de fichiers pour se connecter au fichier. Pour plus d’informations, consultez
File Connection Manager.

Dans le Concepteur SSIS , vous pouvez utiliser la boîte de dialogue Éditeur de tâche
d’exécution de requêtes SQL pour taper des instructions SQL ou utiliser le Générateur
de requêtes, une interface graphique utilisateur permettant de créer des requêtes SQL.

7 Notes

Les instructions SQL valides écrites en dehors de la tâche d'exécution SQL peuvent
ne pas être analysées correctement par celle-ci.

7 Notes

La tâche d’exécution de requêtes SQL utilise la valeur d’énumération RecognizeAll


ParseMode. Pour plus d’informations, consultez ManagedBatchParser
Namespace(Espace de noms ManagedBatchParser).

Envoyer plusieurs instructions dans un


traitement
Si vous incluez plusieurs instructions dans une tâche d'exécution SQL, vous pouvez les
regrouper et les exécuter sous forme de traitement. Pour indiquer la fin d'un traitement,
utilisez la commande GO. Toutes les instructions SQL comprises entre deux commandes
GO sont envoyées dans un traitement au fournisseur OLE DB afin d'être exécutées. La
commande SQL peut comprendre plusieurs traitements séparés par des commandes
GO.

Il existe des restrictions sur les types d'instructions SQL pouvant être regroupées dans
un traitement. Pour plus d’informations, consultez Lots d’instructions.

Si la tâche d'exécution SQL exécute un traitement d'instructions SQL, les règles suivantes
s'appliquent à celui-ci :

Une seule instruction peut retourner un ensemble de résultats et il doit s'agir de la


première instruction du traitement.

Si l'ensemble de résultats utilise des liaisons de résultats, les requêtes doivent


retourner le même nombre de colonnes. Si les requêtes retournent un nombre
différent de colonnes, la tâche échoue. Toutefois, même si la tâche échoue, les
requêtes qu'elle exécute, telles que les requêtes DELETE ou INSERT, peuvent
réussir.

Si les liaisons de résultats utilisent des noms de colonne, la requête doit retourner
des colonnes portant les mêmes noms que l'ensemble de résultats utilisé par la
tâche. Si les colonnes sont manquantes, la tâche échoue.

Si la tâche utilise la liaison de paramètre, toutes les requêtes du traitement doivent


avoir le même nombre et les mêmes types de paramètres.

Exécuter des commandes SQL paramétrables


Les instructions et les procédures stockées SQL utilisent fréquemment des paramètres
d'entrée, des paramètres de sortie et des codes de retour. La tâche d’exécution de
requêtes SQL prend en charge les types de paramètres Input, Outputet ReturnValue .
Vous utilisez le type Input pour les paramètres d’entrée, Output pour les paramètres de
sortie et ReturnValue pour les codes de retour.

7 Notes

Vous ne pouvez utiliser des paramètres dans une tâche d'exécution SQL que si le
fournisseur de données les prend en charge.
Spécifier un type d’ensemble de résultats
Selon le type de commande SQL, un ensemble de résultats peut ou non être retourné à
la tâche d'exécution SQL. Par exemple, une instruction SELECT retourne généralement
un ensemble de résultats, contrairement à une instruction INSERT. L'ensemble de
résultats issu d'une instruction SELECT peut contenir un nombre de lignes quelconque
(aucune ligne, une ligne ou de nombreuses lignes). Les procédures stockées peuvent
également retourner une valeur entière, appelée « code de retour », qui indique l'état de
leur exécution. Dans ce cas, l'ensemble de résultats comprend une seule ligne.

Configurer la tâche Exécuter des requêtes SQL


Vous pouvez configurer la tâche d'exécution SQL comme suit :

Spécifiez le type de gestionnaire de connexions à utiliser pour établir la connexion


à une base de données.

Spécifiez le type d'ensemble de résultats retourné par l'instruction SQL.

Spécifiez un délai d'expiration pour les instructions SQL.

Spécifiez la source de l'instruction SQL.

Indiquez si la tâche passe la phase de préparation de l'instruction SQL.

Si vous utilisez le type de connexion ADO, indiquez si l'instruction SQL est une
procédure stockée. Pour d’autres types de connexion, cette propriété est définie en
lecture seule et sa valeur est toujours false.

Vous pouvez définir les propriétés par programmation ou par le biais du concepteur
SSIS .

Page Général - Éditeur de tâche d’exécution de


requêtes SQL
Utilisez la page Général de la boîte de dialogue Éditeur de tâche d'exécution SQL pour
configurer la tâche d'exécution SQL et indiquer l'instruction SQL que la tâche exécuter.

Pour plus d’informations sur le langage de requête Transact-SQL, consultez Référence


Transact-SQL (moteur de base de données).

Options statiques
Nom
Donnez un nom unique à la tâche d'exécution SQL dans le flux de travail. Le nom fourni
est affiché dans le concepteur SSIS .

Description
Décrit la tâche d'exécution SQL. Pour réaliser des packages autodocumentés plus faciles
à maintenir, fournissez une description de la tâche en rapport avec son objectif.

TimeOut
Spécifiez le nombre maximal de secondes d'exécution de la tâche au terme duquel le
délai d'attente expire. La valeur 0 indique un délai infini. La valeur par défaut est 0.

7 Notes

Les procédures stockées ne sont par concernées par le délai d'expiration si elles
émulent la fonctionnalité de veille en laissant le temps nécessaire à l'établissement
des connexions et à la réalisation des transactions qui est supérieur au nombre de
secondes spécifié par l'option TimeOut. Cependant, les procédures stockées qui
exécutent des requêtes sont toujours soumises à la limitation de temps spécifiée
dans TimeOut.

CodePage
Spécifiez la page de codes à utiliser pour la traduction des valeurs Unicode en variables.
Il s'agit par défaut de la page de codes de l'ordinateur local.

7 Notes

Lorsque la tâche d'exécution SQL utilise un gestionnaire de connexions ADO ou


ODBC, la propriété CodePage n'est pas disponible. Si votre solution requiert
l'utilisation d'une page de codes, utilisez un gestionnaire de connexions OLE DB ou
ADO.NET avec la tâche d'exécution SQL.

TypeConversionMode
Quand vous définissez cette propriété avec la valeur Allowed, la tâche d’exécution SQL
tente de convertir le paramètre de sortie et les résultats de la requête dans le type de
données de la variable à laquelle les résultats sont affectés. Cela s'applique au type de
jeu de résultats Ligne unique .

ResultSet
Spécifiez le type de résultats attendu par l'instruction SQL en cours d'exécution.
Choisissez parmi les options suivantes : Ligne unique, Ensemble de résultats complet,
XMLou Aucun.

ConnectionType
Choisissez le type de gestionnaire de connexions à utiliser pour vous connecter à la
source de données. Les types de connexions disponibles sont OLE DB, ODBC, ADO,
ADO.NET et SQLMOBILE.

Rubriques connexes :Gestionnaire de connexions OLE DB, Gestionnaire de connexions


ODBC, Gestionnaire de connexions ADO, Gestionnaire de connexions ADO.NET,
Gestionnaire de connexions de SQL Server Compact Edition

Connection
Choisissez la connexion dans la liste des gestionnaires de connexions définis. Pour créer
une connexion, sélectionnez <Nouvelle connexion…>.

SQLSourceType
Sélectionnez le type de source de l'instruction SQL qui exécute la tâche.

Selon le type de gestionnaire de connexions que la tâche d'exécution SQL utilise, vous
devez utiliser des marqueurs de paramètres spécifiques dans les instructions SQL
paramétrables.

Cette propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Entrée Définissez la source d'une instruction Transact-SQL. Sélectionnez cette valeur pour
directe afficher l'option dynamique SQLStatement.

Connexion Sélectionnez un fichier qui contient une instruction Transact-SQL. Configurez cette
de fichiers option pour afficher l'option dynamique FileConnection.

Variable Définissez la source sur une variable qui définit l'instruction Transact-SQL.
Sélectionnez cette valeur pour afficher l'option dynamique SourceVariable.

QueryIsStoredProcedure
Indique si l'instruction SQL spécifiée à exécuter est une procédure stockée. Cette
propriété est en lecture/écriture uniquement si la tâche utilise le gestionnaire de
connexions ADO. Sinon, elle est en lecture seule ; sa valeur est alors false.

BypassPrepare
Indiquez si l'instruction SQL est préparée. true ignore la préparation ; false prépare
l'instruction SQL avant de l'exécuter. Cette option est disponible uniquement avec les
connexions OLE DB qui prennent en charge la préparation.
Rubriques connexes :Exécution préparée

Parcourir
Utilisez la boîte de dialogue Ouvrir pour rechercher un fichier qui contient une
instruction SQL. Sélectionnez un fichier dont vous voulez copier le contenu en tant
qu'instruction SQL dans la propriété SQLStatement .

Générer la requête
Créez une instruction SQL au moyen de la boîte de dialogue Générateur de requêtes : il
s’agit d’un outil graphique de création de requêtes. Cette option est disponible lorsque
l'option SQLSourceType est configurée avec Entrée directe.

Analyser la requête
Valide la syntaxe de l’instruction SQL.

Options dynamiques SQLSourceType

SQLSourceType = Entrée directe

SQLStatement
Dans la zone des options, tapez l’instruction SQL à exécuter ou cliquez sur le bouton
d’exploration (...) pour taper l’instruction SQL dans la boîte de dialogue Entrer une
requête SQL. Vous pouvez également cliquer sur Générer la requête pour composer
l’instruction à l’aide de la boîte de dialogue Générateur de requêtes.

Rubriques connexes :Générateur de requêtes

SQLSourceType = Connexion de fichiers

FileConnection
Sélectionnez un gestionnaire de connexions de fichiers existant ou cliquez sur
<Nouvelle connexion…> pour en créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

SQLSourceType = Variable

SourceVariable
Sélectionnez une variable existante ou cliquez sur <Nouvelle variable...> pour en créer
une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable


Page Mappage de paramètre - Éditeur de tâche
d’exécution de requêtes SQL
Utilisez la page Mappage de paramètre de la boîte de dialogue Éditeur de tâche
d’exécution de requêtes SQL pour associer des variables à des paramètres dans une
instruction SQL.

Options
Nom de la variable
Après avoir ajouté un mappage de paramètre en cliquant sur Ajouter, sélectionnez une
variable système ou une variable définie par l’utilisateur dans la liste, ou cliquez sur
<Nouvelle variable...> pour ajouter une nouvelle variable via la boîte de dialogue
Ajouter une variable.

Rubriques connexes :Variables Integration Services (SSIS)

Sens
Sélectionnez le sens du paramètre. Associez chaque variable à un paramètre d'entrée,
un paramètre de sortie ou un code de retour.

Type de données
Sélectionnez le type de données du paramètre. La liste des types de données
disponibles est propre au fournisseur sélectionné dans le gestionnaire de connexions
utilisé par la tâche.

Nom du paramètre
Fournissez un nom de paramètre.

En fonction du type de gestionnaire de connexions que la tâche utilise, vous devez


utiliser des nombres ou des noms de paramètres. Certains types de gestionnaires de
connexions requièrent que le premier caractère du nom de paramètre soit le signe @
(des noms spécifiques tels que @Param1) ou des noms de colonnes comme noms de
paramètres.

Taille de paramètre
Indiquez la taille des paramètres qui ont une longueur variable, par exemple les chaînes
et champs binaires.

Ce paramètre garantit que le fournisseur alloue l'espace suffisant pour les valeurs de
paramètre à longueur variable.
Ajouter
Cliquez pour ajouter une association de paramètre.

Remove
Sélectionnez une association de paramètre dans la liste et cliquez sur Supprimer.

Page Ensemble de résultats - Éditeur de tâche


d’exécution SQL
Utilisez la page Jeu de résultats de la boîte de dialogue Éditeur de tâche d’exécution de
requêtes SQL pour mapper le résultat de l’instruction SQL à des variables nouvelles ou
existantes. Les options de cette boîte de dialogue sont désactivées si ResultSet dans la
page Général est défini sur Aucun.

Options
Nom de résultat
Après avoir ajouté un ensemble de mappages d’un jeu de résultats en cliquant sur
Ajouter, donnez un nom au résultat. Selon le type de jeu de résultats, vous devez utiliser
des noms de résultats spécifiques.

Si le type de jeu de résultats est Ligne unique, le nom peut être celui d’une colonne
retournée par la requête ou le numéro qui, dans la liste des colonnes, représente la
position d’une colonne retournée par la requête.

Si le type de l'ensemble de résultats est Ensemble de résultats complet ou XML, vous


devez utiliser 0 comme nom de jeu de résultats.

Nom de la variable
Mappez le jeu de résultats à une variable en sélectionnant celle-ci, ou cliquez sur
<Nouvelle variable...> pour ajouter une nouvelle variable via la boîte de dialogue
Ajouter une variable.

Ajouter
Ajoute une correspondance de jeu de résultats.

Remove
Sélectionnez un mappage de jeu de résultats dans la liste, puis cliquez sur Supprimer.

Paramètres de la tâche d’exécution SQL


Les instructions et les procédures stockées SQL utilisent fréquemment des paramètres
d’entrée , des paramètres de sortie et des codes de retour. Dans Integration Services, la
tâche d’exécution SQL prend en charge les types de paramètres Input, Outputet
ReturnValue . Vous utilisez le type Input pour les paramètres d’entrée, Output pour les
paramètres de sortie et ReturnValue pour les codes de retour.

7 Notes

Vous ne pouvez utiliser des paramètres dans une tâche d'exécution SQL que si le
fournisseur de données les prend en charge.

Les paramètres des commandes SQL, notamment les requêtes et les procédures
stockées, sont mappés à des variables définies par l'utilisateur créées dans l'étendue de
la tâche d'exécution SQL, un conteneur parent ou dans l'étendue du package. Les
variables peuvent être définies au moment de la conception ou être remplies
dynamiquement lors de l'exécution. Vous pouvez également mapper des paramètres à
des variables système. Pour plus d’informations, consultez Variables Integration Services
(SSIS) et Variables système.

Toutefois, l'utilisation de paramètres et de codes de retour dans une tâche d'exécution


SQL ne permet pas uniquement de savoir quels types de paramètres sont pris en charge
par la tâche et de quelle manière ces paramètres seront mappés. D'autres indications et
spécifications d'utilisation permettent d'utiliser avec succès des paramètres et des codes
de retour dans la tâche d'exécution SQL. Le reste de cette rubrique traite de ces
indications et spécifications d'utilisation.

Utiliser des marqueurs et des noms de paramètres

Utiliser des paramètres avec les types de données de date et d’heure

Utiliser des paramètres dans les clauses WHERE

Utiliser des paramètres avec les procédures stockées

Obtenir les valeurs de codes de retour

Utiliser des marqueurs et des noms de paramètres


Selon le type de connexion que la tâche d'exécution SQL utilise, la syntaxe de la
commande SQL utilise différents marqueurs de paramètres. Par exemple, le type de
gestionnaire de connexions ADO.NET impose que la commande SQL utilise un
marqueur de paramètre au format @varParameter, tandis que le type de connexion OLE
DB exige le marqueur de paramètre point d’interrogation (?).

Les noms que vous pouvez utiliser comme noms de paramètres dans les mappages
entre variables et paramètres varient également selon le type de gestionnaire de
connexions. Par exemple, le type de gestionnaire de connexions ADO.NET utilise un nom
défini par l’utilisateur avec le préfixe @, tandis que le type de gestionnaire de
connexions OLE DB impose l’utilisation de la valeur numérique d’un ordinal de base 0
comme nom de paramètre.

Le tableau suivant indique les conditions requises des commandes SQL pour les types
de gestionnaires de connexions que la tâche d'exécution SQL peut utiliser.

Type de Marqueur Nom du Exemple de commande SQL


connexion de paramètre
paramètre

ADO ? Param1, SELECT FirstName, LastName, Title FROM


Param2, ... Person.Contact WHERE ContactID = ?

ADO.NET @<nom de @<nom de SELECT FirstName, LastName, Title FROM


paramètre> paramètre> Person.Contact WHERE ContactID =
@parmContactID

ODBC ? 1, 2, 3, ... SELECT FirstName, LastName, Title FROM


Person.Contact WHERE ContactID = ?

EXCEL et ? 0, 1, 2, 3, ... SELECT FirstName, LastName, Title FROM


OLE DB Person.Contact WHERE ContactID = ?

Utiliser des paramètres avec les gestionnaires de connexions


ADO.NET et ADO

Les gestionnaires de connexions ADO.NET et ADO ont des spécifications particulières


pour les commandes SQL qui utilisent des paramètres :

Les gestionnaires de connexions ADO.NET exigent que la commande SQL utilise


des noms de paramètres comme marqueurs de paramètres. Cela signifie que des
variables peuvent être mappées directement à des paramètres. Par exemple, la
variable @varName est mappée au paramètre nommé @parName et fournit une
valeur au paramètre @parName .

Les gestionnaires de connexions ADO.NET imposent que la commande SQL utilise


des points d'interrogation (?) comme marqueurs de paramètres. Toutefois, vous
pouvez utiliser les noms définis par l'utilisateur, à l'exception des valeurs entières,
comme noms de paramètres.

Pour fournir des valeurs aux paramètres, les variables sont mappées à des noms de
paramètres. Puis, la tâche d'exécution SQL utilise la valeur ordinale du nom de
paramètre dans la liste des paramètres pour charger des valeurs de variables dans des
paramètres.

Utiliser des paramètres avec les gestionnaires de connexions EXCEL,


ODBC et OLE DB
Les gestionnaires de connexions EXCEL, ODBC et OLE DB imposent que la commande
SQL utilise des points d'interrogation (?) comme marqueurs de paramètres et des
valeurs numériques de base 0 et de base 1 comme noms de paramètres. Si la tâche
d'exécution SQL utilise le gestionnaire de connexions ODBC, le nom de paramètre qui
mappe au premier paramètre dans la requête est nommé 1 ; sinon, le paramètre est
nommé 0. Pour les paramètres suivants, la valeur numérique du nom de paramètre
indique le paramètre dans la commande SQL à laquelle le nom de paramètre mappe.
Par exemple, le paramètre nommé 3 est mappé au troisième paramètre, qui est
représenté par le troisième point d'interrogation (?) dans la commande SQL.

Pour fournir des valeurs aux paramètres, les variables sont mappées à des noms de
paramètres et la tâche d'exécution SQL utilise la valeur ordinale du nom du paramètre
pour charger des valeurs de variables dans des paramètres.

Selon le fournisseur que le gestionnaire de connexions utilise, certains types de données


OLE DB peuvent ne pas être pris en charge. Par exemple, le pilote Excel ne reconnaît
qu'un ensemble limité de types de données. Pour plus d’informations sur le
comportement du fournisseur Jet avec le pilote Excel, consultez Source Excel.

Utiliser des paramètres avec les gestionnaires de connexions OLE


DB

Quand la tâche d’exécution SQL utilise le gestionnaire de connexions OLE DB, la


propriété BypassPrepare de la tâche est disponible. Vous devez définir cette propriété à
true si la tâche d’exécution SQL utilise des instructions SQL avec des paramètres.

Lorsque vous utilisez un gestionnaire de connexions OLE DB, vous ne pouvez pas utiliser
de sous-requêtes paramétrables, car la tâche d'exécution SQL ne peut pas dériver
d'informations de paramètre par le biais du fournisseur OLE DB. Toutefois, vous pouvez
utiliser une expression pour concaténer les valeurs des paramètres dans la chaîne de
requête et définir la propriété SqlStatementSource de la tâche.
Utiliser des paramètres avec les types de données de date
et d’heure

Utiliser des paramètres de date et d’heure avec les gestionnaires de


connexions ADO.NET et ADO

Au moment de la lecture des données des types SQL Server , time et datetimeoffset,
une tâche d’exécution SQL qui utilise un gestionnaire de connexions ADO.NET ou ADO a
les spécifications supplémentaires suivantes :

Concernant les données de type time , un gestionnaire de connexions ADO.NET


impose que ces données soient stockées dans un paramètre de type Input ou
Output, et dont le type de données est string.

Pour les données datetimeoffset , un gestionnaire de connexions ADO.NET impose


que ces données soient stockées dans l’un des paramètres suivants :

Un paramètre de type Input et dont le type de données est string.

Un paramètre de type Output ou ReturnValue, et dont le type de données est


datetimeoffset, stringou datetime2. Si vous sélectionnez un paramètre dont le
type de données est string ou datetime2, Integration Services convertit les
données en string ou datetime2.

Un gestionnaire de connexions ADO impose que les données time ou


datetimeoffset soient stockées dans un paramètre de type Input ou Outputet
dont le type de données est adVarWchar.

Pour plus d’informations sur les types de données SQL Server et leur mappage aux types
de données Integration Services, consultez Types de données (Transact-SQL) et Types de
données Integration Services.

Utiliser des paramètres de date et d’heure avec les gestionnaires de


connexions OLE DB

Pendant l’utilisation d’un gestionnaire de connexions OLE DB, une tâche d’exécution
SQL a des spécifications de stockage particulières pour les données des types SQL
Server , date, time, datetime, datetime2et datetimeoffset. Vous devez stocker ces
données dans l'un des types de paramètres suivants :

Un paramètre d'entrée doté du type de données NVARCHAR.


Un paramètre de sortie doté du type de données approprié, tel que répertorié
dans le tableau suivant.

Type de paramètre desortie Type de données Date

DBDATE date

DBTIME2 time

DBTIMESTAMP datetime, datetime2

DBTIMESTAMPOFFSET datetimeoffset

Si les données ne sont pas stockées dans le paramètre d'entrée ou de sortie approprié,
le package échoue.

Utiliser des paramètres de date et d’heure avec les gestionnaires de


connexions ODBC
Pendant l’utilisation d’un gestionnaire de connexions ODBC, une tâche d’exécution SQL
a des spécifications de stockage particulières pour les données de l’un des types SQL
Server , date, time, datetime, datetime2ou datetimeoffset. Vous devez stocker ces
données dans l'un des types de paramètres suivants :

Un paramètre d’entrée doté du type de données SQL_WVARCHAR

Un paramètre de sortie doté du type de données approprié, tel que répertorié


dans le tableau suivant.

Type de paramètre desortie Type de données Date

SQL_DATE date

SQL_SS_TIME2 time

SQL_TYPE_TIMESTAMP datetime, datetime2

-ou-

SQL_TIMESTAMP

SQL_SS_TIMESTAMPOFFSET datetimeoffset

Si les données ne sont pas stockées dans le paramètre d'entrée ou de sortie approprié,
le package échoue.
Utiliser des paramètres dans les clauses WHERE
Les commandes SELECT, INSERT, UPDATE et DELETE incluent fréquemment des clauses
WHERE pour spécifier des filtres qui définissent les conditions auxquelles chaque ligne
des tables sources doit satisfaire pour se qualifier pour une commande SQL. Les
paramètres fournissent les valeurs de filtre dans les clauses WHERE.

Vous pouvez utiliser des marqueurs de paramètres pour fournir dynamiquement des
valeurs de paramètres. Les règles pour lesquelles des marqueurs de paramètres et des
noms de paramètres peuvent être utilisés dans l'instruction SQL varient selon le type de
gestionnaire de connexions que la tâche d'exécution SQL utilise.

Le tableau suivant présente des exemples de la commande SELECT par type de


gestionnaire de connexions. Les instructions INSERT, UPDATE et DELETE sont similaires.
Les exemples utilisent la commande SELECT pour retourner les produits de la table
Product dans AdventureWorks2012 qui ont un ProductID supérieur et inférieur aux
valeurs spécifiées par deux paramètres.

Type de Syntaxe SELECT


connexion

EXCEL, ODBC et SELECT* FROM Production.Product WHERE ProductId > ? AND ProductID < ?
OLEDB

ADO SELECT* FROM Production.Product WHERE ProductId > ? AND ProductID < ?

ADO.NET SELECT* FROM Production.Product WHERE ProductId > @parmMinProductID AND


ProductID < @parmMaxProductID

Les exemples requièrent des paramètres avec les noms suivants :

Les gestionnaires de connexions EXCEL et OLED DB utilisent les noms de


paramètres 0 et 1. Le type de connexion ODBC utilise 1 et 2.

Le type de connexion ADO peut utiliser deux noms de paramètres (par exemple,
Param1 et Param2), mais les paramètres doivent être mappés selon leur position
ordinale dans la liste des paramètres.

Le type de connexion ADO.NET utilise les noms de paramètres


@parmMinProductID et @parmMaxProductID.

Utiliser des paramètres avec les procédures stockées


Les commandes SQL qui exécutent des procédures stockées peuvent également utiliser
le mappage de paramètres. Les règles d'utilisation des marqueurs de paramètres et des
noms de paramètres varient selon le type de gestionnaire de connexions que la tâche
d'exécution SQL utilise, tout comme les règles des requêtes paramétrables.

Le tableau suivant présente des exemples de la commande EXEC par type de


gestionnaire de connexions. Les exemples exécutent la procédure stockée
uspGetBillOfMaterials dans AdventureWorks2012. La procédure stockée utilise les
paramètres @StartProductID d’entrée @CheckDate et .

Type de Syntaxe EXEC


connexion

EXCEL et EXEC uspGetBillOfMaterials ?, ?


OLEDB

ODBC {call uspGetBillOfMaterials(?, ?)}

Pour plus d’informations sur la syntaxe d’appel ODBC, consultez la rubrique


Paramètres de procédure dans le Guide de référence du programmeur ODBC publié
dans MSDN Library.

ADO Si IsQueryStoredProcedure est défini sur False, EXEC uspGetBillOfMaterials ?, ?

Si IsQueryStoredProcedure est défini sur True, uspGetBillOfMaterials

ADO.NET Si IsQueryStoredProcedure est défini sur False, EXEC uspGetBillOfMaterials


@StartProductID, @CheckDate

Si IsQueryStoredProcedure est défini sur True, uspGetBillOfMaterials

Pour utiliser des paramètres de sortie, la syntaxe impose que le mot clé OUTPUT suive
chaque marqueur de paramètre. Par exemple, la syntaxe de paramètre de sortie suivante
est correcte : EXEC myStoredProcedure ? OUTPUT .

Pour plus d’informations sur l’utilisation de paramètres d’entrée et de sortie avec des
procédures stockées Transact-SQL, consultez EXECUTE (Transact-SQL).

Mapper des paramètres à des variables


Cette section décrit comment utiliser une instruction SQL paramétrable dans la tâche
d’exécution SQL et créer des mappages entre des variables et les paramètres de
l’instruction SQL.

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services que
vous voulez utiliser.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.


3. Cliquez sur l'onglet Flux de contrôle .

4. Si le package ne contient pas déjà une tâche d'exécution SQL, ajoutez-en une au
flux de contrôle du package. Pour plus d’informations, consultez Ajouter ou
supprimer une tâche ou un conteneur dans un flux de contrôle.

5. Double-cliquez sur la tâche d'exécution SQL.

6. Indiquez une commande SQL paramétrable de l'une des manières suivantes :

Utilisez l’entrée directe et tapez la commande SQL dans la propriété


SQLStatement.

Utilisez l’entrée directe, cliquez sur Générer la requête, puis créez une
commande SQL à l’aide des outils graphiques fournis par le Générateur de
requêtes.

Utilisez un fichier de connexion, puis référencez le fichier contenant la


commande SQL.

Utilisez une variable, puis référencez la variable contenant la commande SQL.

Les marqueurs de paramètres que vous utilisez dans les instructions SQL
paramétrables sont liés au type de connexion que la tâche d'exécution SQL utilise.

Type de connexion Marqueur de paramètre

ADO ?

ADO.NET et SQLMOBILE @<nom de paramètre>

ODBC ?

EXCEL et OLE DB ?

Le tableau suivant présente des exemples de la commande SELECT par type de


gestionnaire de connexions. Les paramètres fournissent les valeurs de filtre dans
les clauses WHERE. Les exemples utilisent la commande SELECT pour retourner les
produits de la table Product dans AdventureWorks2012 qui ont un ProductID
supérieur et inférieur aux valeurs spécifiées par deux paramètres.

Type de Syntaxe SELECT


connexion

EXCEL, ODBC SELECT* FROM Production.Product WHERE ProductId > ? AND ProductID < ?
et OLEDB
Type de Syntaxe SELECT
connexion

ADO SELECT* FROM Production.Product WHERE ProductId > ? AND ProductID < ?

ADO.NET SELECT* FROM Production.Product WHERE ProductId > @parmMinProductID


AND ProductID < @parmMaxProductID

7. Cliquez sur Mappage de paramètre.

8. Pour ajouter un mappage de paramètre, cliquez sur Ajouter.

9. Fournissez un nom dans la zone Nom du paramètre .

Les noms de paramètres que vous utilisez sont liés au type de connexion que la
tâche d'exécution SQL utilise.

Type de connexion Nom du paramètre

ADO Param1, Param2, ...

ADO.NET et SQLMOBILE @<nom de paramètre>

ODBC 1, 2, 3, ...

EXCEL et OLE DB 0, 1, 2, 3, ...

10. Dans la liste Nom de variable , sélectionnez une variable. Pour plus d’informations,
consultez Ajouter, supprimer, modifier l’étendue de la variable définie par
l’utilisateur dans un package.

11. Dans la liste Direction , indiquez si le paramètre est une entrée, une sortie ou une
valeur de retour.

12. Dans la liste Type de données , définissez le type de données du paramètre.

) Important

Le type de données du paramètre doit être compatible avec le type de


données de la variable.

13. Répétez les étapes 8 à 11 pour chaque paramètre de l'instruction SQL.

) Important
L'ordre de mappage des paramètres doit être identique à leur ordre
d'apparition dans l'instruction SQL.

14. Cliquez sur OK.

Obtenir les valeurs de codes de retour


Une procédure stockée peut retourner une valeur entière appelée « code de retour »
pour indiquer l'état d'exécution d'une procédure. Pour implémenter des codes de retour
dans la tâche d’exécution SQL, vous utilisez des paramètres du type ReturnValue .

Le tableau suivant présente par type de connexion des exemples de commandes EXEC
qui implémentent des codes de retour. Tous les exemples utilisent un paramètre
d’entrée . Les règles d’utilisation des marqueurs de paramètres et des noms de
paramètres sont les mêmes pour tous les types de paramètre : Input, Output et
ReturnValue.

Certaines syntaxes ne prennent pas en charge les littéraux de paramètres. Dans ce cas,
vous devez fournir la valeur du paramètre en utilisant une variable.

Type de Syntaxe EXEC


connexion

EXCEL et EXEC ? = myStoredProcedure 1


OLEDB

ODBC {? = call myStoredProcedure(1)}

Pour plus d’informations sur la syntaxe d’appel ODBC, consultez la rubrique


Paramètres de procédure dans le Guide de référence du programmeur ODBC publié
dans MSDN Library.

ADO Si IsQueryStoreProcedure est défini sur False, EXEC ? = myStoredProcedure 1

Si IsQueryStoreProcedure est défini sur True, myStoredProcedure

ADO.NET Définissez IsQueryStoreProcedure sur True.

myStoredProcedure

Dans la syntaxe affichée dans la table précédente, la tâche d’exécution SQL utilise le
type de source Entrée directe pour exécuter la procédure stockée. La tâche d’exécution
SQL peut aussi utiliser le type de source Connexion de fichiers pour exécuter une
procédure stockée. Que la tâche d’exécution SQL utilise le type de source Entrée directe
ou Connexion de fichiers , utilisez un paramètre de type ReturnValue pour implémenter
le code de retour.

Pour plus d’informations sur l’utilisation de codes de retour avec des procédures
stockées Transact-SQL, consultez RETURN (Transact-SQL).

Ensembles de résultats dans la tâche


d’exécution SQL
Dans un package Integration Services , le retour d'un jeu de résultats à la tâche
d'exécution SQL dépend du type de commande SQL que la tâche utilise. Par exemple,
une instruction SELECT retourne généralement un ensemble de résultats, contrairement
à une instruction INSERT.

Le contenu du jeu de résultats varie également selon la commande SQL. Par exemple,
l'ensemble de résultats issu d'une instruction SELECT peut contenir un nombre de lignes
quelconque (aucune ligne, une ligne ou de nombreuses lignes). Toutefois, le jeu de
résultats d'une instruction SELECT qui retourne un nombre ou une somme contient une
seule ligne.

L'utilisation d'ensembles de résultats dans une tâche d'exécution SQL ne permet pas
uniquement de savoir si la commande SQL retourne un ensemble de résultats et ce que
celui-ci contient. D'autres indications et spécifications d'utilisation permettent d'utiliser
avec succès des jeux de résultats dans la tâche d'exécution SQL. Le reste de cette
rubrique traite de ces indications et spécifications d'utilisation.

Spécification d'un type d'ensemble de résultats

Remplir une variable à l’aide d’un jeu de résultats

Spécifier un type d’ensemble de résultats


La tâche d'exécution SQL prend en charge les types de jeux de résultats suivants :

L'ensemble de résultats Aucun est utilisé lorsque la requête ne retourne aucun


résultat. Par exemple, cet ensemble de résultats est utilisé pour les requêtes qui
ajoutent, modifient et suppriment des enregistrements dans une table.

L'ensemble de résultats Ligne unique est utilisé lorsque la requête ne retourne


qu'une seule ligne. Par exemple, ce jeu de résultats est utilisé pour une instruction
SELECT qui retourne un nombre ou une somme.
Le jeu de résultats Ensemble de résultats complet est utilisé lorsque la requête
retourne plusieurs lignes. Par exemple, ce jeu de résultats est utilisé pour une
instruction SELECT qui extrait toutes les lignes d'une table.

L'ensemble de résultats XML est utilisé lorsque la requête retourne un ensemble


de résultats dans un format XML. Par exemple, ce jeu de résultats est utilisé pour
une instruction SELECT qui comprend une clause FOR XML.

Si la tâche d'exécution SQL utilise l'ensemble de résultats Ensemble de résultats


complet et que la requête retourne plusieurs ensemble de lignes, la tâche ne retourne
que le premier. Si cet ensemble de lignes génère une erreur, la tâche la signale. En
revanche, si d'autres ensembles de lignes génèrent des erreurs, la tâche ne les signale
pas.

Remplir une variable à l’aide d’un jeu de résultats


Vous pouvez lier le jeu de résultats retourné par une requête à une variable définie par
l'utilisateur si le type du jeu de résultats est une ligne unique, un ensemble de lignes ou
des données XML.

Si le type de l'ensemble de résultats est Ligne unique, vous pouvez lier une colonne du
résultat obtenu à une variable en utilisant le nom de colonne comme nom d'ensemble
de résultats. Vous pouvez également utiliser comme nom la position ordinale de la
colonne dans la liste des colonnes. Par exemple, le nom de l'ensemble de résultats de la
requête SELECT Color FROM Production.Product WHERE ProductID = ? pourrait être Color
ou 0. Si la requête retourne plusieurs colonnes et que vous souhaitez accéder aux
valeurs de toutes les colonnes, vous devez lier chaque colonne à une variable différente.
Si vous mappez des colonnes à des variables en utilisant des numéros comme noms de
jeux de résultats, ces numéros reflètent l'ordre d'apparition des colonnes dans la liste
des colonnes de la requête. Par exemple, dans la requête SELECT Color, ListPrice,
FROM Production.Product WHERE ProductID = ? , vous utilisez 0 pour la colonne Color et 1

pour la colonne ListPrice . La possibilité d'utiliser un nom de colonne comme nom


d'ensemble de résultats dépend du fournisseur que la tâche a été configurée pour
utiliser. Tous les fournisseurs ne rendent pas les noms de colonnes disponibles.

Certaines requêtes qui retournent une valeur unique peuvent ne pas inclure de noms de
colonnes. Par exemple, l'instruction SELECT COUNT (*) FROM Production.Product ne
retourne aucun nom de colonne. Vous pouvez accéder à l'ensemble de résultats en
utilisant la position ordinale, 0, comme nom de résultat. Pour accéder au résultat de
retour par nom de colonne, la requête doit inclure une clause AS <nom alias> pour
fournir un nom de colonne. L'instruction SELECT COUNT (*)AS CountOfProduct FROM
Production.Product , fournit la colonne CountOfProduct . Vous pouvez ensuite accéder à

la colonne de résultat de retour en utilisant le nom de colonne CountOfProduct ou la


position ordinale, 0.

Si le type de l'ensemble de résultats est Ensemble de résultats complet ou XML, vous


devez utiliser 0 comme nom de jeu de résultats.

Lorsque vous associez une variable à un ensemble de résultats à l'aide du type Ligne
unique , la variable doit être d'un type de données compatible avec celui de la colonne
contenue dans l'ensemble de résultats. Par exemple, vous ne pouvez pas associer un
ensemble de résultats contenant un type de données String à une variable de type de
données numérique. Lorsque vous définissez la propriété TypeConversionMode sur
Allowed, la tâche d'exécution SQL tente de convertir le paramètre de sortie et les
résultats de la requête dans le type de données de la variable à laquelle les résultats
sont affectés.

Un ensemble de résultats XML ne peut être associé qu'à une variable de type de
données String ou Object . Si la variable est de type de données String , la tâche
d'exécution SQL retourne une chaîne et la source XML peut exploiter les données XML.
Si le type de données de la variable est Object , la tâche d’exécution SQL retourne un
objet DOM (Document Object Model).

Un ensemble de résultats complet doit correspondre à une variable du type de


données Object . Le résultat obtenu est un objet d'ensemble de lignes. Vous pouvez
utiliser un conteneur de boucles Foreach pour extraire les valeurs de ligne de table qui
sont stockées dans la variable Object dans les variables de package, et utiliser une tâche
de script pour écrire dans un fichier les données stockées dans les variables de package.
Pour accéder à une démonstration illustrant comment faire avec un conteneur Foreach
Loop et une tâche de script.

Le tableau suivant récapitule les types de données des variables pouvant correspondre à
des ensembles de résultats.

Type Type de données de la Type d'objet


d'ensemble variable
de
résultats

Ligne Tout type compatible Non applicable


unique avec la colonne de type
contenue dans
l'ensemble de résultats.
Type Type de données de la Type d'objet
d'ensemble variable
de
résultats

Ensemble Object Si la tâche utilise un gestionnaire de connexions natif,


de résultats tel que les gestionnaires de connexions ADO, OLE DB,
complet Excel et ODBC, l'objet retourné est un RecordsetADO.

Si la tâche utilise un gestionnaire de connexions


managées, tel que le gestionnaire de connexions
ADO.NET , l’objet retourné est un
System.Data.DataSet.

Vous pouvez utiliser une tâche de script pour accéder à


l'objet System.Data.DataSet , comme le montre
l'exemple suivant.

Dim dt As Data.DataTable

Dim ds As Data.DataSet =
CType(Dts.Variables("Recordset").Value, DataSet) dt
= ds.Tables(0)

XML Chaîne Chaîne

XML Object Si la tâche utilise un gestionnaire de connexions natif,


tel que les gestionnaires de connexions ADO, OLE DB,
Excel et ODBC, l'objet retourné est un
MSXML6.IXMLDOMDocument.

Si la tâche utilise un gestionnaire de connexions


managées, tel que le gestionnaire de connexions
ADO.NET , l’objet retourné est un
System.Xml.XmlDocument.

Vous pouvez définir la variable dans l'étendue de la tâche d'exécution SQL ou dans celle
du package. Si la variable a l'étendue d'un package, le jeu de résultats est disponible
pour les autres tâches et conteneurs figurant dans le package, ainsi que pour les
packages exécutés par les tâches d'exécution de package ou d'exécution de package
DTS 2000.

Quand vous mappez une variable à un jeu de résultats Ligne unique , les valeurs qui ne
sont pas des chaînes et qui sont retournées par l’instruction SQL sont converties en
chaînes quand les conditions suivantes sont réunies :

La propriété TypeConversionMode a la valeur true. Définissez la valeur de


propriété dans la fenêtre Propriétés ou à l'aide de l' éditeur de tâche d'exécution
de requêtes SQL.

La conversion n'entraîne pas de troncation des données.

Mapper des ensembles de résultats à des


variables dans une tâche d'exécution SQL
Cette section décrit comment créer un mappage entre un jeu de résultats et une
variable dans une tâche d’exécution SQL. Le mappage d'un jeu de résultats à une
variable rend le jeu de résultats disponible aux autres éléments du package. Par
exemple, un script dans une tâche de script peut lire la variable, puis utiliser les valeurs
du jeu de résultats ou une source XML pour consommer le jeu de résultats stocké dans
une variable. Si le jeu de résultats est généré par un package parent, il est possible de le
rendre disponible à un package enfant appelé par une tâche d'exécution de package en
mappant le jeu de résultats à une variable dans le package parent, puis en créant une
configuration de variable de package parent dans le package enfant pour stocker la
valeur de la variable parent.

1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l’Explorateur de solutions, double-cliquez sur le package pour l’ouvrir.

3. Cliquez sur l'onglet Flux de contrôle .

4. Si le package ne contient pas déjà une tâche d'exécution SQL, ajoutez-en une au
flux de contrôle du package. Pour plus d’informations, consultez Ajouter ou
supprimer une tâche ou un conteneur dans un flux de contrôle.

5. Double-cliquez sur la tâche d'exécution SQL.

6. Dans la boîte de dialogue Éditeur de tâche d’exécution SQL , dans la page Général
, sélectionnez le type de jeu de résultats Ligne unique, Ensemble de résultats
completou XML .

7. Cliquez sur Ensemble de résultats.

8. Pour ajouter un mappage d’un jeu de résultats, cliquez sur Ajouter.

9. Dans la liste Nom de variable , sélectionnez une variable ou créez-en une. Pour
plus d’informations, consultez Ajouter, supprimer, modifier l’étendue de la variable
définie par l’utilisateur dans un package.
10. Dans la liste Nom de résultat , éventuellement, modifiez le nom du jeu de
résultats.

En général vous pouvez utiliser le nom de colonne comme nom de jeu de résultats,
ou vous pouvez utiliser la position ordinale de la colonne dans la liste de colonnes
en tant que jeu de résultats. La possibilité d'utiliser un nom de colonne comme
nom du jeu de résultats dépend du fournisseur que la tâche a été configurée pour
utiliser. Tous les fournisseurs ne rendent pas les noms de colonnes disponibles.

11. Cliquez sur OK.

Résoudre les problèmes liés à la tâche


d’exécution SQL
Vous pouvez consigner les appels que la tâche d'exécution SQL effectue auprès de
fournisseurs de données externes. Vous pouvez utiliser cette fonctionnalité de
journalisation pour résoudre les problèmes liés aux commandes SQL qu'exécute la tâche
d'exécution SQL. Pour consigner les appels que la tâche d’exécution SQL passe à des
fournisseurs de données externes, activez la journalisation des packages et sélectionnez
l’événement Diagnostic au niveau du package. Pour plus d’informations, consultez
Outils de dépannage pour l’exécution des packages.

Parfois, une commande SQL ou une procédure stockée retourne plusieurs jeux de
résultats. Ces jeux de résultats incluent non seulement des ensembles de lignes qui sont
le résultat de requêtes SELECT , mais également des valeurs uniques qui sont le résultat
d’erreurs d’instructions RAISERROR ou PRINT . Le fait que la tâche ignore les erreurs
dans des jeux de résultats qui se produisent après le premier jeu de résultats dépend du
type de gestionnaire de connexions utilisé :

Lorsque vous utilisez les gestionnaires de connexions OLE DB et ADO, la tâche


ignore les jeux de résultats qui se produisent après le premier jeu de résultats. Par
conséquent, avec ces gestionnaires de connexions, la tâche ignore une erreur
retournée par une commande SQL ou une procédure stockée lorsque l'erreur ne
fait pas partie du premier jeu de résultats.

Lorsque vous utilisez les gestionnaires de connexions ODBC et ADO.NET, la tâche


n'ignore pas les jeux de résultats qui se produisent après le premier jeu de
résultats. Avec ces gestionnaires de connexions, la tâche échoue avec une erreur
quand un jeu de résultats autre que le premier jeu de résultats contient une erreur.

Entrées de journal personnalisées


Le tableau suivant décrit les entrées de journal personnalisées pour la tâche d'exécution
SQL. Pour plus d’informations, consultez Journalisation d’Integration Services (SSIS).

Entrée du journal Description

ExecuteSQLExecutingQuery Fournit des informations sur les phases d'exécution de l'instruction


SQL. Des entrées de journal sont écrites lorsque la tâche acquiert la
connexion à la base de données, lorsqu'elle commence à préparer
l'instruction SQL et à la fin de l'exécution de l'instruction SQL.
L'entrée de journal concernant la phase de préparation inclut
l'instruction SQL que la tâche utilise.
MERGE in Integration Services Packages
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Dans la version actuelle de SQL Server Integration Services, l’instruction SQL d’une tâche
d’exécution SQL peut contenir une instruction MERGE. Cette instruction MERGE vous
permet d'accomplir plusieurs opérations INSERT, UPDATE et DELETE dans une même
instruction.

Pour utiliser l'instruction MERGE dans un package, procédez comme suit :

Créez une tâche de flux de données qui charge, transforme et enregistre les
données sources dans une table temporaire ou intermédiaire.

Créez une tâche d'exécution SQL contenant l'instruction MERGE.

Connectez la tâche de flux de données à la tâche d'exécution SQL et utilisez les


données de la table intermédiaire comme entrée pour l'instruction MERGE.

7 Notes

Bien qu'une instruction MERGE requière en général une table intermédiaire


dans ce scénario, les performances de l'instruction MERGE dépassent
habituellement celles de la recherche ligne par ligne effectuée par la
transformation de recherche. L'instruction MERGE est également utile lorsque
la grande taille d'une table de recherche pourrait tester la mémoire mise à la
disposition de la transformation de recherche pour mettre en cache sa table
de référence.

Utilisation de MERGE
En général, vous utilisez l'instruction MERGE lorsque vous souhaitez appliquer des
modifications qui incluent des insertions, des mises à jour et des suppressions d'une
table à une autre table. Avant SQL Server 2008 (10.0.x), ce processus nécessitait à la fois
une transformation de recherche et plusieurs transformations de commande OLE DB. La
transformation de recherche effectuait une recherche ligne par ligne pour déterminer si
chaque ligne était nouvelle ou modifiée. Les transformations de commande OLE DB
effectuaient alors les opérations INSERT, UPDATE et DELETE nécessaires. À compter de
SQL Server 2008 (10.0.x), une instruction MERGE unique peut remplacer la
transformation de recherche et les transformations de commande OLE DB
correspondantes réunies.

MERGE avec des charges incrémentielles


Les fonctionnalités de capture des changements de données, nouvelles dans SQL
Server 2008 (10.0.x), permettent d’effectuer de manière fiable des charges
incrémentielles dans un entrepôt de données. Comme alternative à l'utilisation de
transformations de commande OLE DB paramétrables pour effectuer les insertions et les
mises à jour, vous pouvez utiliser l'instruction MERGE pour associer ces deux types
d'opérations.

Pour plus d’informations, consultez Appliquer les modifications à la destination.

MERGE dans d'autres scénarios

Dans les scénarios suivants, vous pouvez utiliser l'instruction MERGE à l'extérieur ou à
l'intérieur d'un package Integration Services . Toutefois, un package Integration Services
est souvent requis pour charger les données à partir de plusieurs sources hétérogènes,
puis pour associer et assainir ces données. Par conséquent, vous pouvez envisager
d'utiliser l'instruction MERGE dans un package pour le côté pratique et pour faciliter la
maintenance.

Assurer le suivi des habitudes d'achat

La table FactBuyingHabits incluse dans l'entrepôt de données indique la dernière date à


laquelle un client a acheté un produit donné. La table se compose des colonnes
ProductID, CustomerID et PurchaseDate. Chaque semaine, la base de données
transactionnelle génère une table PurchaseRecords qui inclut les achats effectués
pendant la semaine. L'objectif est d'utiliser une instruction MERGE unique pour
fusionner les informations de la table PurchaseRecords dans la table FactBuyingHabits.
Pour les paires client–produit qui n'existent pas, l'instruction MERGE insère de nouvelles
lignes. Pour les paires client–produit qui existent, l'instruction MERGE met à jour la date
d'achat la plus récente.

Assurer le suivi de l'historique des prix

La table DimBook représente la liste des livres dans l'inventaire d'un libraire et identifie
l'historique des prix de chaque ouvrage. Cette table inclut les colonnes : ISBN,
ProductID, Price, Shelf et IsCurrent. Cette table possède également une ligne pour
chaque prix que le livre a eu. L'une de ces lignes contient le prix actuel. Pour indiquer la
ligne qui contient le prix actuel, la valeur de la colonne IsCurrent est égale à 1 pour cette
ligne.

Chaque semaine, la base de données génère une table WeeklyChanges qui contient les
modifications des prix pour la semaine et les nouveaux livres qui ont été ajoutés
pendant la semaine. En utilisant une instruction MERGE unique, vous pouvez appliquer
les modifications présentes dans la table WeeklyChanges à la table DimBook.
L'instruction MERGE insère de nouvelles lignes pour les nouveaux livres ajoutés et met à
jour la colonne IsCurrent en spécifiant 0 pour les lignes des livres existants dont le prix a
changé. L'instruction MERGE insère également de nouvelles lignes pour les livres dont le
prix a changé et, pour ces nouvelles lignes, elle affecte la valeur 1 à la colonne IsCurrent.

Fusionner une table avec des données nouvelles par


rapport à l'ancienne table
La base de données modélise les propriétés d’un objet en utilisant un « schéma
ouvert », ce qui signifie qu’une table contient des paires nom–valeur pour chaque
propriété. La table Properties a trois colonnes : EntityID, PropertyID et Value. Une table
NewProperties qui est une version plus récente de la table doit être synchronisée avec la
table Properties. Pour synchroniser ces deux tables, vous pouvez utiliser une instruction
MERGE unique pour effectuer les opérations suivantes :

supprimer des propriétés de la table Properties si elles ne figurent pas dans la


table NewProperties ;

mettre à jour les valeurs des propriétés dans la table Properties avec les nouvelles
valeurs présentes dans la table NewProperties ;

insérer de nouvelles propriétés pour les propriétés présentes dans la table


NewProperties mais qui ne figurent pas dans la table Properties.

Cette approche est utile dans les scénarios qui ressemblent à des scénarios de
réplication, où l'objectif est de maintenir la synchronisation entre les données de deux
tables sur deux serveurs.

Assurer le suivi du stock


La base de données Inventory possède une table ProductsInventory qui inclut les
colonnes ProductID et StockOnHand. Une table Shipments dotée des colonnes
ProductID, CustomerID et Quantity établit le suivi des livraisons de produits aux clients.
La table ProductInventory doit être mise à jour quotidiennement en fonction des
informations de la table Shipments. Une instruction MERGE unique peut réduire
l'inventaire dans la table ProductInventory en fonction des livraisons effectuées. Si
l'inventaire d'un produit a été réduit à 0, cette instruction MERGE peut également
supprimer cette ligne de produit de la table ProductInventory.
Tâche Exécuter l'instruction T-SQL
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche Exécuter l'instruction T-SQL exécute des instructions Transact-SQL. Pour plus
d’informations, consultez Informations de référence sur Transact-SQL (Moteur de base
de données) et Requêtes Integration Services (SSIS).

Cette tâche est similaire à la tâche d'exécution SQL. Toutefois, la tâche Exécuter
l'instruction T-SQL ne prend en charge que la version Transact-SQL du langage SQL et
vous ne pouvez pas recourir à cette tâche pour exécuter des instructions sur les serveurs
qui utilisent d'autres dialectes du langage SQL. Pour exécuter des requêtes
paramétrables, enregistrer les résultats des requêtes dans des variables ou utiliser des
expressions de propriété, vous devez utiliser la tâche d'exécution SQL et non pas la
tâche Exécuter l'instruction T-SQL. Pour plus d'informations, consultez Execute SQL Task.

Configuration de la tâche Exécuter l'instruction


T-SQL
Vous pouvez définir les propriétés par le biais du concepteur SSIS . Cette tâche se trouve
dans la section Tâches du plan de maintenance de la boîte à outils du concepteur SSIS .

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Exécuter la tâche de l’instruction T-SQL (Plan de maintenance)

Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Voir aussi
Tâches Integration Services
Flux de contrôle
MERGE dans les packages Integration Services
Tâche d'expression
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche d'expression crée et évalue les expressions qui définissent les valeurs des
variables au moment de l'exécution, à l'aide du Générateur d'expressions. Lorsque vous
modifiez la tâche, le Expression Builder est lancé.

Exemples d'expressions
Le langage des expressions comprend des fonctions et des opérateurs. Pour obtenir des
exemples qui montrent comment utiliser les fonctions et les opérateurs, consultez les
sections Exemples d'expressions dans les rubriques de fonctions et d'opérateurs. Les
liens vers les rubriques se trouvent dans Fonctions (expression SSIS) et Opérateurs
(expression SSIS).

Pour des exemples d'expressions plus complexes, consultez Examples of Advanced


Integration Services Expressions.

Pour obtenir des exemples d'utilisation des expressions pour définir des propriétés,
consultez la section Exemples d'expressions de propriété dans Use Property
Expressions in Packages.

Tâches associées
Utiliser une expression dans un composant de flux de données

Contenu associé
Article technique, SSIS Expression Cheat Sheet , sur pragmaticworks.com
Tâches du système de fichiers
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de système de fichiers effectue des opérations sur les fichiers et les répertoires
du système de fichiers. Par exemple, à l'aide de la tâche de système de fichiers, un
package peut créer, déplacer ou supprimer des répertoires et des fichiers. Vous pouvez
également utiliser la tâche de système de fichiers pour définir les attributs des fichiers et
des répertoires. Par exemple, la tâche de système de fichiers peut rendre les fichiers
cachés ou accessibles en lecture seule.

Toutes les opérations de la tâche de système de fichiers utilisent une source, qui peut
être un fichier ou un répertoire. Par exemple, le fichier que la tâche copie, ou le
répertoire qu'elle supprime, est une source. La source peut être spécifiée à l'aide d'un
gestionnaire de connexions de fichiers qui pointe vers le répertoire ou vers le fichier, ou
à l'aide du nom d'une variable qui contient le chemin d'accès source. Pour plus
d’informations, consultez Gestionnaire de connexions de fichier et Variables Integration
Services (SSIS).

Les opérations qui copient et déplacent les fichiers et les répertoires, et qui renomment
les fichiers, utilisent une destination et une source. La destination est spécifiée à l'aide
d'un gestionnaire de connexions de fichiers ou d'une variable. Les opérations de la tâche
de système de fichiers peuvent être configurées afin de permettre le remplacement des
fichiers et des répertoires de destination. L'opération de création d'un nouveau
répertoire peut être configurée de manière à utiliser un répertoire existant portant le
nom spécifié au lieu d'échouer si le répertoire existe déjà.

Opérations prédéfinies sur le système de


fichiers
La tâche de système de fichiers comprend un ensemble prédéfini d'opérations. Le
tableau suivant décrit ces opérations.

Opération Description

Copier le Copie un dossier d'un emplacement à l'autre.


répertoire

Copier le Copie un fichier d'un emplacement à l'autre.


fichier
Opération Description

Créer un Crée un dossier à un emplacement spécifié.


répertoire

Supprimer Supprime un dossier à un emplacement spécifié.


le
répertoire

Supprimer Supprime la totalité des fichiers et des dossiers d'un dossier.


le contenu
du
répertoire

Supprimer Supprime un fichier à un emplacement spécifié.


le fichier

Déplacer Déplace un dossier d'un emplacement à l'autre.


le
répertoire

Déplacer Déplace un fichier d'un emplacement à l'autre.


le fichier

Renommer Renomme un fichier à un emplacement spécifié.


le fichier

Définir des Définit les attributs des fichiers et des dossiers. Les attributs sont Archive, Caché,
attributs Normal, Lecture seule et Système. L'option Normal indique l'absence d'attributs et
ne peut pas être combinée avec les autres attributs. Vous pouvez combiner tous les
autres attributs.

La tâche de système de fichiers s'exécute sur un seul fichier ou répertoire. Cette tâche ne
prend donc pas en charge l'utilisation de caractères génériques pour effectuer la même
opération sur plusieurs fichiers. Pour que la tâche de système de fichiers répète une
même opération sur plusieurs fichiers ou répertoires, mettez la tâche de système de
fichiers dans un conteneur de boucles Foreach, comme décrit dans les étapes suivantes :

Configuration du conteneur de boucles Foreach : dans la page Collection de


l’Éditeur de boucle Foreach, définissez l’énumérateur sur Énumérateur Foreach File
et entrez l’expression générique comme configuration d’énumérateur pour
Fichiers. Dans la page Mappage de variables de l’Éditeur de boucle Foreach,
mappez la variable que vous voulez utiliser pour transmettre un par un les noms
de fichiers à la tâche de système de fichiers.

Ajout et configuration d’une tâche de système de fichiers : ajoutez une tâche de


système de fichiers au conteneur de boucles Foreach. Dans la page Général de
l’Éditeur de tâche de système de fichiers, affectez à la propriété SourceVariable ou
DestinationVariable la variable que vous avez définie dans le conteneur de boucles
Foreach.

Entrées de journal personnalisées disponibles


dans la tâche de système de fichiers
Le tableau suivant décrit l'entrée de journal personnalisée pour la tâche de système de
fichiers. Pour plus d’informations, consultez Journalisation d’Integration Services (SSIS).

Entrée du journal Description

FileSystemOperation Indique l'opération que la tâche effectue. L'entrée de journal est écrite au
démarrage de l'opération du système de fichiers et inclut des
informations sur la source et la destination.

Configuration de la tâche de système de


fichiers
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
consultez les rubriques suivantes :

Éditeur de tâche de système de fichiers (page Général)

Page Expressions

Pour plus d’informations sur la définition de ces propriétés dans le concepteur SSIS ,
consultez la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Pour plus d'informations sur la définition par programmation de ces propriétés,


consultez la rubrique suivante :

FileSystemTask

Tâches associées
Integration Services comprend une tâche qui télécharge et charge les fichiers de
données et gère les répertoires sur les serveurs. Pour plus d’informations, consultez
Tâche FTP.

Éditeur de tâche de système de fichiers (page


Général)
Utilisez la page Général de l' Éditeur de tâche de système de fichiers pour configurer
l'opération de système de fichiers qu'exécute la tâche.

Vous devez spécifier un gestionnaire de connexions source et de destination en


définissant les propriétés SourceConnection et DestinationConnection. Vous pouvez
fournir les noms de gestionnaires de connexions de fichiers qui pointent sur les fichiers
utilisés par la tâche comme source ou destination. Si les chemins de fichiers sont stockés
dans des variables, vous pouvez également fournir le nom des variables. Pour utiliser
des variables afin de stocker les chemins des fichiers, vous devez d’abord définir l’option
IsSourcePathVariable de la connexion source et l’option IsDestinationPatheVariable de la
connexion de destination sur True. Ensuite, vous pouvez créer de nouvelles variables ou
choisir les variables existantes, système ou définies par l'utilisateur, à utiliser. Dans la
boîte de dialogue Ajouter une variable , vous pouvez configurer et spécifier l'étendue
des variables. L'étendue doit être la tâche de système de fichiers ou un conteneur
parent. Pour plus d’informations, consultez Variables Integration Services (SSIS) et
Utiliser des variables dans des packages.

7 Notes

Pour remplacer les variables sélectionnées pour les propriétés SourceConnection et


DestinationConnection , entrez une expression pour les propriétés Source et
Destination . Vous entrez les expressions sur la page Expressions de l' Éditeur de
tâche de système de fichiers. Par exemple, pour définir le chemin d'accès des
fichiers utilisés comme destination par la tâche, vous pouvez utiliser la variable A
dans certaines conditions et la variables B dans d'autres conditions.

7 Notes

La tâche de système de fichiers s'exécute sur un seul fichier ou répertoire. Cette


tâche ne prend donc pas en charge l'utilisation de caractères génériques pour
effectuer la même opération sur plusieurs fichiers ou répertoires. Pour que la tâche
de système de fichiers répète une même opération sur plusieurs fichiers ou
répertoires, placez-la dans un conteneur de boucles Foreach. Pour plus
d’informations, consultez File System Task.
Vous pouvez utiliser des expressions pour recourir à différentes variables.

Options
IsDestinationPathVariable
Indique si le chemin d'accès de destination est stocké dans une variable. Cette propriété
dispose des options répertoriées dans le tableau suivant.

Valeur Description

True Le chemin d'accès de destination est stocké dans une variable. Cette valeur affiche
l'option dynamique DestinationVariable.

False Le chemin d'accès de destination est défini dans un gestionnaire de connexions de


fichiers. Cette valeur affiche l'option dynamique DestinationConnection.

OverwriteDestination
Indiquez si l'opération peut remplacer les fichiers dans le répertoire de destination.

Nom
Fournissez un nom unique pour la tâche de système de fichiers. Ce nom sert d'étiquette
à l'icône de la tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Tapez la description de la tâche de système de fichiers.

opération
Sélectionnez l'opération de système de fichiers à exécuter. Cette propriété dispose des
options répertoriées dans le tableau suivant.

Valeur Description

Copier le Copier un répertoire. Cette valeur affiche les options dynamiques d'une source et
répertoire d'une destination.

Copier un Copier un fichier. Cette valeur affiche les options dynamiques d'une source et d'une
fichier destination.

Créer un Créer un répertoire Cette valeur affiche les options dynamiques d'un répertoire
répertoire source et de destination.
Valeur Description

Supprimer Supprimer un répertoire. Cette valeur affiche les options dynamiques d'une source.
le
répertoire

Supprimer Supprimer le contenu d'un répertoire. Cette valeur affiche les options dynamiques
le contenu d'une source.
du
répertoire

Supprimer Supprimer un fichier. Cette valeur affiche les options dynamiques d'une source.
un fichier

Déplacer Déplacer un répertoire. Cette valeur affiche les options dynamiques d'une source et
le d'une destination.
répertoire

Déplacer Déplacer un fichier. Cette valeur affiche les options dynamiques d'une source et
le fichier d'une destination. Lorsque vous déplacez un fichier, n'incluez pas de nom de fichier
dans le chemin d'accès au répertoire que vous fournissez comme destination.

Renommer Renommer un fichier. Cette valeur affiche les options dynamiques d'une source et
le fichier d'une destination. Lorsque vous renommez un fichier, incluez le nouveau nom de
fichier dans le chemin d'accès au répertoire que vous fournissez comme destination.

Définir les Définir les attributs d'un fichier ou d'un répertoire. Cette valeur affiche les options
attributs dynamiques d'une source et d'une opération.

IsSourcePathVariable
Indique si le chemin d'accès de destination est stocké dans une variable. Cette propriété
dispose des options répertoriées dans le tableau suivant.

Valeur Description

True Le chemin d'accès de destination est stocké dans une variable. Sélectionnez cette valeur
pour afficher l'option dynamique SourceVariable.

False Le chemin d'accès de destination est défini dans un gestionnaire de connexions de


fichiers. Cette valeur affiche l'option dynamique DestinationVariable.

Options dynamiques IsDestinationPathVariable

IsDestinationPathVariable = True
DestinationVariable
Sélectionnez le nom de la variable dans la liste ou cliquez sur <Nouvelle variable...>
pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable

IsDestinationPathVariable = False

DestinationConnection
Sélectionnez un gestionnaire de connexions de fichier dans la liste ou cliquez sur
<Nouvelle connexion WMI...> pour en créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

Options dynamiques IsSourcePathVariable

IsSourcePathVariable = True
SourceVariable
Sélectionnez le nom de la variable dans la liste ou cliquez sur <Nouvelle variable...>
pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable

IsSourcePathVariable = False
SourceConnection
Sélectionnez un gestionnaire de connexions de fichier dans la liste ou cliquez sur
<Nouvelle connexion WMI...> pour en créer un.

Rubriques connexes :Gestionnaire de connexions de fichiers

Options dynamiques d'opération

Opération = Définir les attributs

Hidden
Indique si le fichier ou le répertoire est visible.

Lecture seule
Indique si le fichier est en lecture seule.

Archive
Indique si le fichier ou le répertoire est prêt pour l'archivage.
Système
Indique si le fichier est un fichier de système d'exploitation.

Opération = Créer un répertoire

UseDirectoryIfExists
Indique si l’option Créer un répertoire utilise un répertoire existant portant le nom
spécifié au lieu de créer un nouveau répertoire.

Voir aussi
Tâches Integration Services
Flux de contrôle
Tâche FTP
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche FTP télécharge des fichiers de données et gère des répertoires sur les serveurs.
Par exemple, un package peut télécharger des fichiers de données à partir d’un serveur
distant ou d’un emplacement Internet dans le cadre d’un workflow de package
Integration Services. Vous pouvez utiliser la tâche FTP aux fins suivantes :

Copie de répertoires et de fichiers de données depuis un répertoire vers un autre,


avant ou après le déplacement de données, et application de transformations aux
données

Connexion à un emplacement FTP source et copie des fichiers ou des packages


vers un répertoire de destination

Téléchargement de fichiers depuis un emplacement FTP et application de


transformations aux données de colonne avant de charger les données dans une
base de données

À l'exécution, la tâche FTP se connecte à un serveur à l'aide d'un gestionnaire de


connexions FTP. Le gestionnaire de connexions FTP est configuré indépendamment de
la tâche FTP, puis il est référencé dans celle-ci. Le gestionnaire de connexions FTP
comprend les paramètres de serveur, les informations d'identification d'accès au serveur
FTP et des options telles que le délai d'attente et le nombre de tentatives de connexion
au serveur. Pour plus d’informations, consultez Gestionnaires de connexion FTP.

) Important

Le gestionnaire de connexions FTP prend en charge uniquement l'authentification


anonyme et l'authentification de base. Il ne prend pas en charge l'authentification
Windows.

Pour accéder à un fichier local ou à un répertoire local, la tâche FTP utilise un


gestionnaire de connexions de fichiers ou des informations de chemin d'accès stockées
dans une variable. À l'inverse, pour accéder à un fichier distant ou à un répertoire
distant, la tâche FTP utilise un chemin d'accès directement spécifié sur le serveur distant,
tel qu'indiqué dans le gestionnaire de connexions FTP, ou des informations de chemin
d'accès stockées dans une variable. Pour plus d’informations, consultez Gestionnaire de
connexions de fichier et Variables Integration Services (SSIS).
Cela signifie que la tâche FTP peut recevoir plusieurs fichiers et supprimer plusieurs
fichiers distants ; toutefois, la tâche peut envoyer seulement un fichier et supprimer
seulement un fichier local si elle utilise un gestionnaire de connexions, car un
gestionnaire de connexions de fichiers ne peut accéder qu'à un fichier. Pour accéder à
plusieurs fichiers locaux, la tâche FTP doit utiliser une variable afin d'indiquer les
informations de chemin d'accès. Par exemple, une variable contenant le texte «
C:\Test&#42;.txt » désigne un chemin qui prend en charge la suppression ou l’envoi de
tous les fichiers ayant pour extension .txt et figurant dans le répertoire Test.

Pour envoyer plusieurs fichiers et accéder à plusieurs fichiers et répertoires locaux, vous
pouvez également exécuter la tâche FTP plusieurs fois en l'incluant dans une boucle
Foreach. La boucle Foreach peut passer en revue tous les fichiers d'un répertoire à l'aide
de l'énumérateur For Each File. Pour plus d’informations, consultez Conteneur de
boucles Foreach.

La tâche FTP prend en charge les caractères génériques ? et * dans les chemins. Cela lui
permet d'accéder à plusieurs fichiers. Toutefois, vous pouvez utiliser des caractères
génériques seulement dans la partie du chemin d'accès qui spécifie le nom de fichier.
Par exemple, « C:\MyDirectory\*.txt » est un chemin d'accès valide, contrairement à
« C:\*\MyText.txt ».

Vous pouvez configurer les opérations FTP de manière à ce que la tâche de système de
fichiers soit arrêtée en cas d'échec des opérations ou de manière à transférer les fichiers
en mode ASCII. De même, vous pouvez configurer les opérations qui envoient et
reçoivent des fichiers de manière à ce que les fichiers et les répertoires de destination
soient écrasés.

Opérations FTP prédéfinies


La tâche FTP comprend un ensemble prédéfini d'opérations. Le tableau suivant décrit
ces opérations.

Opération Description

Envoyer des fichiers Envoie un fichier depuis l'ordinateur local vers le serveur FTP.

Recevoir des fichiers Enregistre sur l'ordinateur local un fichier provenant du serveur
FTP.

Créer un répertoire local Crée un dossier sur l'ordinateur local.

Créer un répertoire distant Crée un dossier sur le serveur FTP.

Supprimer le répertoire local Supprime un dossier de l'ordinateur local.


Opération Description

Supprimer le répertoire Supprime un dossier du serveur FTP.


distant

Supprimer des fichiers locaux Supprime un fichier de l'ordinateur local.

Supprimer des fichiers Supprime un fichier du serveur FTP.


distants

Entrées de journal personnalisées disponibles


dans la tâche FTP
Le tableau suivant répertorie les entrées de journal personnalisées pour la tâche FTP.
Pour plus d’informations, consultez Journalisation d’Integration Services (SSIS).

Entrée du journal Description

FTPConnectingToServer Indique que la tâche a lancé une connexion au serveur FTP.

FTPOperation Indique le démarrage et le type d'une opération FTP effectuée par la


tâche.

Tâches associées
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d’informations sur la définition de ces propriétés dans le concepteur SSIS,
consultez Définir les propriétés d’une tâche ou d’un conteneur.

Pour plus d’informations sur la définition de ces propriétés par programmation,


consultez FtpTask.

Éditeur de tâche FTP (page Général)


La page Général de la boîte de dialogue Éditeur de tâche FTP permet de spécifier le
gestionnaire de connexions FTP qui se connecte au serveur FTP avec lequel la tâche
communique. Vous pouvez également nommer et décrire cette tâche FTP.

Options
Connexion FTP
Sélectionnez un gestionnaire de connexions FTP existant ou cliquez sur <Nouvelle
connexion...> pour en créer un.

) Important

Le gestionnaire de connexions FTP prend en charge uniquement l'authentification


anonyme et l'authentification de base. Il ne prend pas en charge l'authentification
Windows.

Rubriques connexes :Gestionnaires de connexions FTP, Éditeur du gestionnaire de


connexions FTP

Arrêt en cas d'échec de l'opération


Indique si la tâche FTP se termine en cas d'échec de l'opération.

Nom
Fournit un nom unique pour la tâche FTP. Ce nom sert d'étiquette à l'icône de la tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Tapez une description de la tâche FTP.

Éditeur de tâche FTP (page Transfert de


fichiers)
Utilisez la page Transfert de fichiers de l' Éditeur de tâche FTP pour configurer
l'opération FTP qu'exécute la tâche.

Options
IsRemotePathVariable
Indique si le chemin distant est stocké dans une variable. Cette propriété dispose des
options répertoriées dans le tableau suivant.

Valeur Description
Valeur Description

True Le chemin d'accès de destination est stocké dans une variable. Cette valeur affiche
l'option dynamique RemoteVariable.

False Le chemin d'accès de destination est défini dans un gestionnaire de connexions de


fichiers. Cette valeur affiche l'option dynamique RemovePath.

OverwriteFileAtDestination
Indique si un fichier peut être remplacé dans la destination.

IsLocalPathVariable
Indique si le chemin local est stocké dans une variable. Cette propriété dispose des
options répertoriées dans le tableau suivant.

Valeur Description

True Le chemin d'accès de destination est stocké dans une variable. Cette valeur affiche
l'option dynamique LocalVariable.

False Le chemin d'accès de destination est défini dans un gestionnaire de connexions de


fichiers. Cette valeur affiche l'option dynamique LocalPath.

opération
Sélectionnez l'opération FTP à exécuter. Cette propriété dispose des options
répertoriées dans le tableau suivant.

Valeur Description

Envoyer des Envoie des fichiers. Cette valeur affiche les options dynamiques
fichiers LocalVariable, LocalPathRemoteVariable et RemotePath.

Recevoir des Reçoit des fichiers. Cette valeur affiche les options dynamiques
fichiers LocalVariable, LocalPathRemoteVariable et RemotePath.

Créer un Crée un répertoire local. Cette valeur affiche les options dynamiques
répertoire local LocalVariable et LocalPath.

Créer un Crée un répertoire distant. Cette valeur affiche les options dynamiques
répertoire distant RemoteVariable et RemotePath.

Supprimer le Supprime un répertoire local. Cette valeur affiche les options dynamiques
répertoire local LocalVariable et LocalPath.

Supprimer le Supprime un répertoire distant. Cette valeur affiche les options dynamiques
répertoire distant RemoteVariable et RemotePath.
Valeur Description

Supprimer des Supprime des fichiers locaux Cette valeur affiche les options dynamiques
fichiers locaux LocalVariable et LocalPath.

Supprimer des Supprime des fichiers distants. Cette valeur affiche les options dynamiques
fichiers distants RemoteVariable et RemotePath.

IsTransferASCII
Indique si les fichiers transférés vers et depuis le serveur FTP distant doivent être
transférés en mode ASCII.

Options dynamiques IsRemotePathVariable

IsRemotePathVariable = True

RemoteVariable
Sélectionnez une variable existante définie par l’utilisateur ou cliquez sur <Nouvelle
variable...> pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable

IsRemotePathVariable = False

RemovePath
Sélectionnez un gestionnaire de connexions FTP existant ou cliquez sur <Nouvelle
connexion...> pour en créer un.

Rubriques connexes :Gestionnaires de connexion FTP, Éditeur du gestionnaire de


connexions FTP

Options dynamiques IsLocalPathVariable

IsLocalPathVariable = True

LocalVariable
Sélectionnez une variable existante définie par l’utilisateur ou cliquez sur <Nouvelle
variable...> pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable


IsLocalPathVariable = False
LocalPath
Sélectionnez un gestionnaire de connexions de fichier existant ou cliquez sur <Nouvelle
connexion...> pour en créer un.

Rubriques connexes :Gestionnaire de connexions de fichiers plats

Voir aussi
Tâches Integration Services
Flux de contrôle
Tâche du système de fichiers Hadoop
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Une tâche du système de fichiers Hadoop permet à un package SSIS de copier des
fichiers à partir d’un cluster Hadoop, vers un cluster Hadoop ou au sein d’un cluster
Hadoop.

Pour ajouter une tâche du système de fichiers Hadoop, opérez un glisser-déplacer de


cette tâche vers le concepteur. Double-cliquez ensuite sur la tâche ou cliquez avec le
bouton droit et sélectionnez Modifierpour ouvrir la boîte de dialogue Éditeur de tâches
du système de fichiers Hadoop .

Options
Configurez les options suivantes dans la boîte de dialogue Éditeur de tâches du
système de fichiers Hadoop .

Champ Description

Connexion Spécifiez un gestionnaire de connexions Hadoop existant ou créez-en un. Ce


Hadoop gestionnaire de connexions indique où les fichiers de destination sont hébergés.

Chemin de Spécifiez le chemin d’accès du fichier ou du répertoire sur HDFS.


fichier
Hadoop

Type de Spécifiez si l’objet du système de fichiers HDFS est un fichier ou un répertoire.


fichier
Hadoop

Remplacer la Spécifiez s’il faut remplacer le fichier cible le cas échéant.


destination

opération Spécifiez l’opération. Les opérations disponibles sont CopyToHDFS,


CopyFromHDFSet CopyWithinHDFS.

Connexion Spécifiez un gestionnaire de connexions de fichiers existant ou créez-en un. Ce


de fichiers gestionnaire de connexions indique où se trouvent les fichiers source.
locaux

Est récursif Indiquez si vous souhaitez copier tous les sous-dossiers de manière récursive.

Voir aussi
Gestionnaire de connexions Hadoop
Gestionnaire de connexions de fichiers
Tâche Hive Hadoop
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la tâche Hive Hadoop pour exécuter le script Hive sur un cluster Hadoop.

Pour ajouter une tâche Hive Hadoop, sélectionnez-la et faites-la glisser vers le
concepteur. Double-cliquez ensuite sur la tâche, ou cliquez avec le bouton droit et
sélectionnez Modifierpour ouvrir la boîte de dialogue Éditeur de tâches Hive Hadoop .

Options
Configurez les options suivantes dans la boîte de dialogue Éditeur de tâches Hive
Hadoop .

Champ Description
Champ Description

Connexion Hadoop Spécifiez un gestionnaire de connexions Hadoop existant ou créez-en un.


Ce gestionnaire de connexions indique où le service WebHCat est
hébergé.

SourceType Spécifiez le type de source de la requête. Les valeurs disponibles sont


ScriptFile et DirectInput.

InlineScript Lorsque la valeur de SourceType est DirectInput, spécifiez le script Hive.

HadoopScriptFilePath Lorsque SourceType présente la valeur ScriptFile, spécifiez le chemin


d’accès au fichier de script sur Hadoop.

TimeoutInMinutes Spécifiez une valeur de délai d’expiration en minutes. Le travail Hadoop


s’arrête s’il ne s’est pas terminé avant la fin du délai d’expiration.
Spécifiez 0 pour planifier une exécution asynchrone du travail Hadoop.

Voir aussi
Gestionnaire de connexions Hadoop
Tâche Pig Hadoop
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la tâche Pig Hadoop pour exécuter le script Pig sur un cluster Hadoop.

Pour ajouter une tâche Pig Hadoop, sélectionnez-la et faites-la glisser vers le
concepteur. Puis double-cliquez sur la tâche, ou cliquez avec le bouton droit et
sélectionnez Modifierpour visualiser la boîte de dialogue Éditeur de tâches Pig Hadoop
.

Options
Configurez les options suivantes dans la boîte de dialogue Éditeur de tâches Pig
Hadoop .
Champ Description

Connexion Hadoop Spécifiez un gestionnaire de connexions Hadoop existant ou créez-en un.


Ce gestionnaire de connexions indique où le service WebHCat est
hébergé.

SourceType Spécifiez le type de source de la requête. Les valeurs disponibles sont


ScriptFile et DirectInput.

InlineScript Lorsque SourceType présente la valeur DirectInput, spécifiez le script


Pig.

HadoopScriptFilePath Lorsque SourceType présente la valeur ScriptFile, spécifiez le chemin


d’accès au fichier de script sur Hadoop.

TimeoutInMinutes Spécifiez une valeur de délai d’expiration en minutes. Le travail Hadoop


s’arrête s’il ne s’est pas terminé avant la fin du délai d’expiration.
Spécifiez 0 pour planifier une exécution asynchrone du travail Hadoop.

Voir aussi
Gestionnaire de connexions Hadoop
Tâche de nettoyage d'historique
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de nettoyage de l'historique supprime des entrées dans les tables d'historique
suivantes de la base de données msdb SQL Server.

backupfile

backupfilegroup

backupmediafamily

backupmediaset

backupset

restorefile

restorefilegroup

restorehistory

Grâce à la tâche de nettoyage de l'historique, un package peut supprimer des données


d'historique relatives aux activités de sauvegarde et de restauration, aux travaux SQL
Server Agent et aux plans de maintenance de bases de données.

Cette tâche encapsule la procédure stockée système sp_delete_backuphistory et lui


transmet la date spécifiée en guise d'argument. Pour plus d’informations, consultez
sp_delete_backuphistory (Transact-SQL).

Configuration de la tâche de nettoyage


d'historique
La tâche possède une propriété qui permet de spécifier la plus ancienne date des
données conservées dans les tables d'historique. Vous pouvez indiquer la date en
nombre de jours, de semaines, de mois ou d'années par rapport au jour actuel ; la tâche
convertit automatiquement l'intervalle en une date.

Vous pouvez définir les propriétés par le biais du concepteur SSIS . Cette tâche se trouve
dans la section Tâches du plan de maintenance de la boîte à outils du concepteur SSIS .
Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Tâche de nettoyage d'historique (Plan de maintenance)

Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Voir aussi
Tâches Integration Services
Flux de contrôle
Tâche de nettoyage de maintenance
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de nettoyage de maintenance supprime les fichiers associés aux plans de


maintenance, notamment des fichiers de sauvegarde de base de données et des
rapports créés par les plans de maintenance. Pour plus d’informations, consultez Plans
de maintenance et Sauvegarde et restauration des bases de données SQL Server.

En utilisant la tâche de nettoyage de maintenance, un package peut supprimer les


fichiers de sauvegarde ou les rapports de plan de maintenance sur le serveur spécifié. La
tâche de nettoyage de maintenance inclut une option permettant de supprimer un
fichier spécifique ou un groupe de fichiers dans un dossier. Vous pouvez facultativement
spécifier l'extension des fichiers à supprimer.

Lorsque vous configurez la tâche de nettoyage de maintenance pour supprimer des


fichiers de sauvegarde, l'extension de nom de fichier par défaut est BAK. Pour les fichiers
de rapport, l'extension de nom de fichier par défaut est TXT. Vous pouvez mettre à jour
les extensions en fonction de vos besoins à condition qu'elles ne comportent pas plus
de 256 caractères.

Il convient généralement de supprimer les anciens fichiers devenus inutiles, et la tâche


de nettoyage de maintenance peut être configurée pour supprimer les fichiers ayant
atteint un âge spécifié. Par exemple, la tâche peut être configurée pour supprimer les
fichiers datant de plus de quatre semaines. Vous pouvez spécifier l'âge des fichiers à
supprimer en indiquant des jours, des semaines, des mois ou des années. Si vous ne
spécifiez pas l'âge minimal des fichiers à supprimer, tous les fichiers du type spécifié
sont supprimés.

Contrairement aux versions antérieures de la tâche de nettoyage de maintenance, la


version SQL Server ne supprime pas automatiquement les fichiers dans les sous-
répertoires du répertoire spécifié. Cette contrainte réduit la surface d'exposition d'une
attaque pouvant exploiter la fonctionnalité de la tâche de nettoyage de maintenance
pour supprimer des fichiers par malveillance. Pour supprimer les sous-dossiers de
premier niveau, vous devez choisir de le faire de manière explicite en activant l’option
Inclure les sous-dossiers de premier niveau dans la boîte de dialogue Tâche de
nettoyage de maintenance .
Configuration de la tâche de nettoyage de
maintenance
Vous pouvez définir les propriétés par le biais du concepteur SSIS . Cette tâche se trouve
dans la section Tâches du plan de maintenance de la boîte à outils du concepteur SSIS .

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Tâche de nettoyage de maintenance (Plan de maintenance)

Tâches associées
Pour plus d’informations sur la définition de ces propriétés dans le concepteur SSIS,
consultez Définir les propriétés d’une tâche ou d’un conteneur.

Voir aussi
Tâches Integration Services
Flux de contrôle
Message Queue Task
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche MSMQ vous permet d’utiliser Message Queuing (MSMQ) pour envoyer et
recevoir des messages entre des packages SQL Server Integration Services ou pour
envoyer des messages à une file d’attente d’application traitée par une application
personnalisée. Ces messages peuvent être composés de texte brut, de fichiers ou de
variables et leurs valeurs.

L'utilisation de la tâche MSMQ vous permet de coordonner des opérations à l'échelle de


votre entreprise. Les messages peuvent être placés dans la file d'attente et remis
ultérieurement si la destination est indisponible ou occupée ; par exemple, la tâche peut
mettre en file d'attente les messages destinés à l'ordinateur portable hors connexion
des représentants commerciaux, qui reçoivent leurs messages lorsqu'ils se connectent
au réseau. Vous pouvez utiliser la tâche MSMQ pour effectuer les opérations suivantes :

Retarder l'exécution d'une tâche jusqu'à la validation d'autres packages. Par


exemple, sur chacun de vos sites de vente au détail, après une maintenance
nocturne, une tâche MSMQ envoie un message à l'ordinateur de l'entreprise. Un
package s'exécutant sur cet ordinateur contient des tâches MSMQ, chacune
attendant le message d'un site de vente au détail spécifique. Lorsqu'un message
d'un site arrive, une tâche télécharge des données à partir de ce site. Une fois tous
les sites validés, le package calcule les totaux récapitulatifs.

Envoyer des fichiers de données à l'ordinateur qui les traite. Par exemple, le
résultat de la caisse enregistreuse d'un restaurant peut être envoyé dans un
message de fichier de données au système du paiement des salaires de
l'entreprise, où sont extraites les données liées aux pourboires des serveurs.

Distribuer des fichiers à l'intérieur de votre entreprise. Par exemple, un package


peut utiliser une tâche MSMQ pour envoyer un fichier de package à un autre
ordinateur. Un package s'exécutant sur l'ordinateur de destination utilise alors une
tâche MSMQ pour récupérer et enregistrer le package localement.

Lors de l'envoi ou de la réception de messages, la tâche MSMQ utilise l'un des quatre
types de messages suivants : fichier de données, chaîne, message de type chaîne pour la
variable ou variable. Le type de message « message de type chaîne pour la variable »
peut être utilisé uniquement lors de la réception de messages.
La tâche utilise un gestionnaire de connexions MSMQ pour se connecter à une file
d'attente de messages. Pour plus d’informations, consultez Gestionnaire de connexions
MSMQ. Pour plus d’informations sur Message Queuing (MSMQ), consultez MSDN
Library.

La tâche MSMQ exige que le service Integration Services soit installé. Parmi les
composants SQL Server que vous pouvez sélectionner dans la page Composants à
installer ou Sélection de fonctionnalités de l’Assistant Installation de SQL Server ,
certains n’installent qu’un sous-ensemble partiel des composants Integration Services .
Ces composants sont utiles pour des tâches spécifiques, mais les fonctionnalités de
Integration Services s'en trouvent limitées. Par exemple, l'option SQL Server Data Tools
(SSDT) installe les composants Integration Services nécessaires pour concevoir un
package mais le service Integration Services n'est pas installé, par conséquent la tâche
MSMQ ne fonctionne pas. Pour garantir une installation complète de Integration
Services, vous devez sélectionner Integration Services dans la page Composants à
installer . Pour plus d’informations sur l’installation et l’exécution de la tâche MSMQ,
consultez Installer Integration Services.

7 Notes

La tâche MSMQ ne parvient pas à assurer la conformité avec le standard FIPS


(Federal Information Processing Standard) 140-2 lorsque le système d'exploitation
de l'ordinateur est configuré en mode FIPS et que la tâche utilise le chiffrement. Si
la tâche MSMQ n'utilise pas le chiffrement, elle peut s'exécuter correctement.

Types de messages
Vous pouvez configurer les types de messages fournis par la tâche MSMQ des manières
suivantes :

Message de type fichier de données spécifie que le message est contenu dans un
fichier. Lors de la réception de messages, vous pouvez configurer la tâche de façon
à enregistrer le fichier, remplacer un fichier existant et spécifier le package à partir
duquel la tâche peut recevoir des messages.

Message de type chaîne spécifie le message en tant que chaîne. Lors de la


réception de messages, vous pouvez configurer la tâche de façon à comparer la
chaîne reçue avec une chaîne définie par l'utilisateur et exécuter une action en
fonction du résultat de la comparaison. La comparaison de chaînes peut être
exacte, sensible ou non à la casse, ou utiliser une sous-chaîne.
Message de type chaîne pour la variable spécifie le message source en tant que
chaîne envoyée à une variable de destination. Vous pouvez configurer la tâche de
façon à comparer la chaîne reçue avec une chaîne définie par l'utilisateur à l'aide
d'une comparaison exacte, non sensible à la casse ou de sous-chaîne. Ce type de
message est disponible uniquement lorsque la tâche reçoit des messages.

Variable spécifie que le message contient une ou plusieurs variables. Vous pouvez
configurer la tâche de façon à spécifier les noms des variables contenues dans le
message. Lors de la réception de messages, vous pouvez configurer la tâche de
façon à spécifier à la fois le package à partir duquel elle peut recevoir des
messages et la variable qui est la destination du message.

sending messages
Lorsque vous configurez la tâche MSMQ pour envoyer des messages, vous pouvez
utiliser l'un des algorithmes de chiffrement actuellement pris en charge par la
technologie Message Queuing, RC2 et RC4, pour chiffrer le message. Ces deux
algorithmes de chiffrement sont aujourd'hui considérés comme faibles d'un point de
vue du chiffrement par rapport aux algorithmes plus récents, non encore pris en charge
par la technologie Microsoft Message Queuing. Par conséquent, vous devez
minutieusement évaluer vos besoins en matière de chiffrement si vous souhaitez
envoyer des messages à l'aide de la tâche MSMQ.

réception de messages
Lors de la réception de messages, la tâche MSMQ peut être configurée des manières
suivantes :

Contournement du message ou suppression du message de la file d'attente.

Spécification d'un délai d'attente.

Échec en cas d'expiration du délai d'attente.

Remplacement d’un fichier existant si le message est stocké dans un fichier de


données.

Enregistrement du fichier de message sous un nom de fichier différent si le


message utilise le type Message de type fichier de données .
Messages de journalisation personnalisés
disponibles dans la tâche MSMQ
Le tableau suivant répertorie les entrées de journal personnalisées de la tâche MSMQ.
Pour plus d’informations, consultez Journalisation d’Integration Services (SSIS).

Entrée du journal Description

MSMQAfterOpen Indique que la tâche a fini d'ouvrir la file d'attente des messages.

MSMQBeforeOpen Indique que la tâche a commencé l'ouverture de la file d'attente des


messages.

MSMQBeginReceive Indique que la tâche a commencé la réception d'un message.

MSMQBeginSend Indique que la tâche a commencé l'envoi d'un message.

MSMQEndReceive Indique que la tâche a terminé la réception d'un message.

MSMQEndSend Indique que la tâche a terminé l'envoi d'un message.

MSMQTaskInfo Fournit des informations détaillées concernant la tâche.

MSMQTaskTimeOut Indique que le délai de la tâche a expiré.

Configuration de la tâche MSMQ


Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation. Pour plus d'informations sur les propriétés définissables dans le
concepteur SSIS , cliquez sur la rubrique suivante :

Page Expressions

Pour plus d’informations sur la définition par programmation de ces propriétés,


consultez la documentation relative à la classe
Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.MessageQueueTask dans le Guide
du développeur.

Tâches associées
Pour plus d’informations sur la façon de définir ces propriétés dans le concepteur SSIS ,
consultez Définir les propriétés d’une tâche ou d’un conteneur.
Éditeur de tâche MSMQ (page Général)
Utilisez la page Général de la boîte de dialogue Éditeur de tâche MSMQ pour nommer
et décrire la tâche MSMQ, pour spécifier le format du message et indiquer si la tâche
envoie ou reçoit des messages.

Options
Nom
Attribuez un nom unique à la tâche MSMQ. Ce nom sert d'étiquette à l'icône de la
tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Tapez la description de la tâche MSMQ.

Use2000Format
Indiquez si le format 2000 de Message Queuing (ou MSMQ) doit être utilisé. La valeur
par défaut est False.

MSMQConnection
Sélectionnez un gestionnaire de connexions MSMQ existant ou cliquez sur <Nouvelle
connexion...> pour en créer un.

Rubriques connexes :Gestionnaire de connexions MSMQ, Éditeur du gestionnaire de


connexions MSMQ

Message
Spécifiez si la tâche MSMQ envoie ou reçoit des messages. Si vous sélectionnez l’option
Envoyer un message, la page Envoyer est répertoriée dans le volet gauche de la boîte
de dialogue ; si vous sélectionnez l’option Recevoir un message, la page Recevoir est
répertoriée. Par défaut, cette valeur est définie sur Envoyer un message.

Éditeur de tâche MSMQ (page Envoyer)


Utilisez la page Envoyer de la boîte de dialogue Éditeur de tâche MSMQ pour
configurer une tâche MSMQ afin d’envoyer des messages depuis un package Microsoft
SQL Server Integration Services.
Options
UseEncryption
Indiquez si le message doit être chiffré. La valeur par défaut est False.

EncryptionAlgorithm
Si vous utilisez le chiffrement, définissez le nom de l'algorithme de chiffrement à utiliser.
La tâche MSMQ peut utiliser les algorithmes RC2 et RC4. La valeur par défaut est RC2.

7 Notes

L'algorithme RC4 est uniquement pris en charge pour des raisons de compatibilité
descendante. Le nouveau matériel ne peut être chiffré à l'aide de RC4 ou de
RC4_128 que lorsque la base de données se trouve dans le niveau de
compatibilité 90 ou 100. (Non recommandé.) Utilisez à la place un algorithme plus
récent, tel qu'un des algorithmes AES. Dans la version actuelle de SQL Server, le
matériel chiffré à l'aide de RC4 ou de RC4_128 peut être déchiffré dans n'importe
quel niveau de compatibilité.

) Important

Il s'agit des algorithmes de chiffrement que la technologie Message Queuing (ou


MSMQ) prend en charge. Ces deux algorithmes de chiffrement sont aujourd'hui
considérés comme faibles du point de vue du chiffrement par rapport aux
algorithmes plus récents, non encore pris en charge par la technologie Microsoft
Message Queuing. Par conséquent, vous devez minutieusement évaluer vos
besoins en matière de chiffrement si vous souhaitez envoyer des messages à l'aide
de la tâche MSMQ.

MessageType
Sélectionnez le type de message : Cette propriété dispose des options répertoriées dans
le tableau suivant.

Valeur Description

Message de fichiers Le message est stocké dans un fichier. La sélection de cette valeur affiche
de données l'option dynamique DataFileMessage.

Message de type Le message est stocké dans une variable. Cette valeur affiche l'option
variable dynamique VariableMessage.
Valeur Description

Message de type Le message est stocké dans la tâche MSMQ. Cette valeur affiche l'option
chaîne dynamique StringMessage.

Options dynamiques MessageType

MessageType = Message de fichiers de données


DataFileMessage
Tapez le chemin du fichier de données ou cliquez sur le bouton avec les points de
suspension (...) et recherchez le fichier.

MessageType = Message de type variable

VariableMessage
Tapez les noms de variables ou cliquez sur les points de suspension (...) et sélectionnez
les variables. Les variables sont séparées par des virgules.

Rubriques connexes : Sélectionner des variables

MessageType = Message de type chaîne

StringMessage
Tapez le message de type chaîne ou cliquez sur les points de suspension (...) et entrez le
message dans la boîte de dialogue Entrer le message de type chaîne .

Éditeur de tâche MSMQ (page Recevoir)


La page Recevoir de la boîte de dialogue Éditeur de tâche MSMQ permet de configurer
une tâche MSMQ pour recevoir des messages MSMQ (Message Queuing) Microsoft .

Options
RemoveFromMessageQueue
Indiquez si vous voulez supprimer le message de la file d'attente après sa réception. La
valeur par défaut est False.

ErrorIfMessageTimeOut
Indiquez si la tâche échoue lorsque le message expire, en affichant un message d'erreur.
La valeur par défaut est False.

TimeoutAfter
Si vous choisissez d'afficher un message d'erreur sur l'échec de la tâche, définissez le
nombre de secondes qui précèdent le message d'expiration.

MessageType
Sélectionnez le type de message : Cette propriété dispose des options répertoriées dans
le tableau suivant.

Valeur Description

Message de fichiers de Le message est stocké dans un fichier. La sélection de cette valeur
données affiche l'option dynamique DataFileMessage.

Message de type Le message est stocké dans une variable. Cette valeur affiche l'option
variable dynamique VariableMessage.

Message de type chaîne Le message est stocké dans la tâche MSMQ. Cette valeur affiche
l'option dynamique StringMessage.

Message de type chaîne Le message


pour la variable
Cette valeur affiche l'option dynamique StringMessage.

Options dynamiques MessageType

MessageType = Message de fichiers de données


SaveFileAs
Tapez le chemin du fichier à utiliser ou cliquez sur le bouton avec des points de
suspension (...) et recherchez le fichier.

Remplacer
Indiquez si vous voulez remplacer les données dans un fichier existant lors de
l'enregistrement du contenu d'un message de fichiers de données. La valeur par défaut
est False.

Filter
Indiquez si vous voulez appliquer un filtre au message. Cette propriété dispose des
options répertoriées dans le tableau suivant.

Valeur Description
Valeur Description

Aucun filtre La tâche ne filtre pas les messages. Cette valeur affiche l’option dynamique
IdentifierReadOnly.

À partir du Le message reçoit uniquement les messages du package spécifié. Cette valeur
package affiche l’option dynamique Identifier.

Options dynamiques de filtrage

Filtrer = Aucun filtre

IdentifierReadOnly
Cette option est en lecture seule. Elle peut être vide ou contenir le GUID d'un package
lorsque la propriété Filtrer a été définie.

Filtrer = À partir du package

Identificateur
Si vous choisissez d’appliquer un filtre, tapez l’identificateur unique du package à partir
duquel les messages peuvent être reçus, ou cliquez sur le bouton de sélection (...) et
spécifiez le package.

Rubriques connexes :Sélectionner un package

MessageType = Message de type variable


Filter
Indiquez si vous voulez appliquer un filtre aux messages. Cette propriété dispose des
options répertoriées dans le tableau suivant.

Valeur Description

Aucun filtre La tâche ne filtre pas les messages. Cette valeur affiche l’option dynamique
IdentifierReadOnly.

À partir du Le message reçoit uniquement les messages du package spécifié. Cette valeur
package affiche l’option dynamique Identifier.

Variable
Tapez le nom de la variable ou cliquez sur <Nouvelle variable...>, puis configurez une
nouvelle variable.
Rubriques connexes :Ajouter une variable

Options dynamiques de filtrage

Filtrer = Aucun filtre

IdentifierReadOnly
Cette option est vide.

Filtrer = À partir du package

Identificateur
Si vous choisissez d’appliquer un filtre, tapez l’identificateur unique du package à partir
duquel les messages peuvent être reçus, ou cliquez sur le bouton de sélection (...) et
spécifiez le package.

Rubriques connexes :Sélectionner un package

MessageType = Message de type chaîne

Compare
Indiquez si vous voulez appliquer un filtre aux messages. Cette propriété dispose des
options répertoriées dans le tableau suivant.

Valeur Description

Aucun Les messages ne sont pas comparés.

Correspondance Les messages doivent correspondre exactement à la chaîne figurant dans


exacte l’option CompareString .

Ignorer la casse Le message doit correspondre à la chaîne figurant dans l’option


CompareString , mais la comparaison ne tient pas compte de la casse.

Contenant Le message doit contenir la chaîne figurant dans l’option CompareString .

CompareString
Si l’option Comparer n’est pas définie sur Aucun, indiquez la chaîne à laquelle le
message doit être comparé.

MessageType = Message de type chaîne pour la variable


Compare
Indiquez si vous voulez appliquer un filtre aux messages. Cette propriété dispose des
options répertoriées dans le tableau suivant.

Valeur Description

Aucun Les messages ne sont pas comparés.

Correspondance Le message doit correspondre exactement à la chaîne figurant dans l’option


exacte CompareString .

Ignorer la casse Le message doit correspondre à la chaîne figurant dans l’option


CompareString , mais la comparaison ne tient pas compte de la casse.

Contenant Le message doit contenir la chaîne figurant dans l’option CompareString .

CompareString
Si l’option Comparer n’est pas définie sur Aucun, indiquez la chaîne à laquelle le
message doit être comparé.

Variable
Tapez le nom de la variable qui doit contenir le message reçu ou cliquez sur <Nouvelle
variable...>, puis configurez une nouvelle variable.

Rubriques connexes :Ajouter une variable

Sélectionner des variables


Utilisez la boîte de dialogue Sélectionner des variables pour spécifier les variables à
utiliser dans une opération d'envoi de message de la tâche MSMQ. La liste Variables
disponibles contient les variables système et définies par l’utilisateur exploitables par la
tâche MSMQ ou son conteneur parent. La tâche utilise des variables de la liste Variables
sélectionnées .

Options
Variables disponibles
Sélectionnez une ou plusieurs variables.

Variables sélectionnées
Sélectionnez une ou plusieurs variables.

Flèches vers la droite


Déplacez les variables sélectionnées dans la liste Variables sélectionnées .
Flèches vers la gauche
Replacez les variables sélectionnées dans la liste Variables disponibles .

Nouvelle variable
Créez une nouvelle variable.

Rubriques connexes :Ajouter une variable

Voir aussi
Tâches Integration Services
Flux de contrôle
Message Queue Task
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche MSMQ vous permet d’utiliser Message Queuing (MSMQ) pour envoyer et
recevoir des messages entre des packages SQL Server Integration Services ou pour
envoyer des messages à une file d’attente d’application traitée par une application
personnalisée. Ces messages peuvent être composés de texte brut, de fichiers ou de
variables et leurs valeurs.

L'utilisation de la tâche MSMQ vous permet de coordonner des opérations à l'échelle de


votre entreprise. Les messages peuvent être placés dans la file d'attente et remis
ultérieurement si la destination est indisponible ou occupée ; par exemple, la tâche peut
mettre en file d'attente les messages destinés à l'ordinateur portable hors connexion
des représentants commerciaux, qui reçoivent leurs messages lorsqu'ils se connectent
au réseau. Vous pouvez utiliser la tâche MSMQ pour effectuer les opérations suivantes :

Retarder l'exécution d'une tâche jusqu'à la validation d'autres packages. Par


exemple, sur chacun de vos sites de vente au détail, après une maintenance
nocturne, une tâche MSMQ envoie un message à l'ordinateur de l'entreprise. Un
package s'exécutant sur cet ordinateur contient des tâches MSMQ, chacune
attendant le message d'un site de vente au détail spécifique. Lorsqu'un message
d'un site arrive, une tâche télécharge des données à partir de ce site. Une fois tous
les sites validés, le package calcule les totaux récapitulatifs.

Envoyer des fichiers de données à l'ordinateur qui les traite. Par exemple, le
résultat de la caisse enregistreuse d'un restaurant peut être envoyé dans un
message de fichier de données au système du paiement des salaires de
l'entreprise, où sont extraites les données liées aux pourboires des serveurs.

Distribuer des fichiers à l'intérieur de votre entreprise. Par exemple, un package


peut utiliser une tâche MSMQ pour envoyer un fichier de package à un autre
ordinateur. Un package s'exécutant sur l'ordinateur de destination utilise alors une
tâche MSMQ pour récupérer et enregistrer le package localement.

Lors de l'envoi ou de la réception de messages, la tâche MSMQ utilise l'un des quatre
types de messages suivants : fichier de données, chaîne, message de type chaîne pour la
variable ou variable. Le type de message « message de type chaîne pour la variable »
peut être utilisé uniquement lors de la réception de messages.
La tâche utilise un gestionnaire de connexions MSMQ pour se connecter à une file
d'attente de messages. Pour plus d’informations, consultez Gestionnaire de connexions
MSMQ. Pour plus d’informations sur Message Queuing (MSMQ), consultez MSDN
Library.

La tâche MSMQ exige que le service Integration Services soit installé. Parmi les
composants SQL Server que vous pouvez sélectionner dans la page Composants à
installer ou Sélection de fonctionnalités de l’Assistant Installation de SQL Server ,
certains n’installent qu’un sous-ensemble partiel des composants Integration Services .
Ces composants sont utiles pour des tâches spécifiques, mais les fonctionnalités de
Integration Services s'en trouvent limitées. Par exemple, l'option SQL Server Data Tools
(SSDT) installe les composants Integration Services nécessaires pour concevoir un
package mais le service Integration Services n'est pas installé, par conséquent la tâche
MSMQ ne fonctionne pas. Pour garantir une installation complète de Integration
Services, vous devez sélectionner Integration Services dans la page Composants à
installer . Pour plus d’informations sur l’installation et l’exécution de la tâche MSMQ,
consultez Installer Integration Services.

7 Notes

La tâche MSMQ ne parvient pas à assurer la conformité avec le standard FIPS


(Federal Information Processing Standard) 140-2 lorsque le système d'exploitation
de l'ordinateur est configuré en mode FIPS et que la tâche utilise le chiffrement. Si
la tâche MSMQ n'utilise pas le chiffrement, elle peut s'exécuter correctement.

Types de messages
Vous pouvez configurer les types de messages fournis par la tâche MSMQ des manières
suivantes :

Message de type fichier de données spécifie que le message est contenu dans un
fichier. Lors de la réception de messages, vous pouvez configurer la tâche de façon
à enregistrer le fichier, remplacer un fichier existant et spécifier le package à partir
duquel la tâche peut recevoir des messages.

Message de type chaîne spécifie le message en tant que chaîne. Lors de la


réception de messages, vous pouvez configurer la tâche de façon à comparer la
chaîne reçue avec une chaîne définie par l'utilisateur et exécuter une action en
fonction du résultat de la comparaison. La comparaison de chaînes peut être
exacte, sensible ou non à la casse, ou utiliser une sous-chaîne.
Message de type chaîne pour la variable spécifie le message source en tant que
chaîne envoyée à une variable de destination. Vous pouvez configurer la tâche de
façon à comparer la chaîne reçue avec une chaîne définie par l'utilisateur à l'aide
d'une comparaison exacte, non sensible à la casse ou de sous-chaîne. Ce type de
message est disponible uniquement lorsque la tâche reçoit des messages.

Variable spécifie que le message contient une ou plusieurs variables. Vous pouvez
configurer la tâche de façon à spécifier les noms des variables contenues dans le
message. Lors de la réception de messages, vous pouvez configurer la tâche de
façon à spécifier à la fois le package à partir duquel elle peut recevoir des
messages et la variable qui est la destination du message.

sending messages
Lorsque vous configurez la tâche MSMQ pour envoyer des messages, vous pouvez
utiliser l'un des algorithmes de chiffrement actuellement pris en charge par la
technologie Message Queuing, RC2 et RC4, pour chiffrer le message. Ces deux
algorithmes de chiffrement sont aujourd'hui considérés comme faibles d'un point de
vue du chiffrement par rapport aux algorithmes plus récents, non encore pris en charge
par la technologie Microsoft Message Queuing. Par conséquent, vous devez
minutieusement évaluer vos besoins en matière de chiffrement si vous souhaitez
envoyer des messages à l'aide de la tâche MSMQ.

réception de messages
Lors de la réception de messages, la tâche MSMQ peut être configurée des manières
suivantes :

Contournement du message ou suppression du message de la file d'attente.

Spécification d'un délai d'attente.

Échec en cas d'expiration du délai d'attente.

Remplacement d’un fichier existant si le message est stocké dans un fichier de


données.

Enregistrement du fichier de message sous un nom de fichier différent si le


message utilise le type Message de type fichier de données .
Messages de journalisation personnalisés
disponibles dans la tâche MSMQ
Le tableau suivant répertorie les entrées de journal personnalisées de la tâche MSMQ.
Pour plus d’informations, consultez Journalisation d’Integration Services (SSIS).

Entrée du journal Description

MSMQAfterOpen Indique que la tâche a fini d'ouvrir la file d'attente des messages.

MSMQBeforeOpen Indique que la tâche a commencé l'ouverture de la file d'attente des


messages.

MSMQBeginReceive Indique que la tâche a commencé la réception d'un message.

MSMQBeginSend Indique que la tâche a commencé l'envoi d'un message.

MSMQEndReceive Indique que la tâche a terminé la réception d'un message.

MSMQEndSend Indique que la tâche a terminé l'envoi d'un message.

MSMQTaskInfo Fournit des informations détaillées concernant la tâche.

MSMQTaskTimeOut Indique que le délai de la tâche a expiré.

Configuration de la tâche MSMQ


Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation. Pour plus d'informations sur les propriétés définissables dans le
concepteur SSIS , cliquez sur la rubrique suivante :

Page Expressions

Pour plus d’informations sur la définition par programmation de ces propriétés,


consultez la documentation relative à la classe
Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.MessageQueueTask dans le Guide
du développeur.

Tâches associées
Pour plus d’informations sur la façon de définir ces propriétés dans le concepteur SSIS ,
consultez Définir les propriétés d’une tâche ou d’un conteneur.
Éditeur de tâche MSMQ (page Général)
Utilisez la page Général de la boîte de dialogue Éditeur de tâche MSMQ pour nommer
et décrire la tâche MSMQ, pour spécifier le format du message et indiquer si la tâche
envoie ou reçoit des messages.

Options
Nom
Attribuez un nom unique à la tâche MSMQ. Ce nom sert d'étiquette à l'icône de la
tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Tapez la description de la tâche MSMQ.

Use2000Format
Indiquez si le format 2000 de Message Queuing (ou MSMQ) doit être utilisé. La valeur
par défaut est False.

MSMQConnection
Sélectionnez un gestionnaire de connexions MSMQ existant ou cliquez sur <Nouvelle
connexion...> pour en créer un.

Rubriques connexes :Gestionnaire de connexions MSMQ, Éditeur du gestionnaire de


connexions MSMQ

Message
Spécifiez si la tâche MSMQ envoie ou reçoit des messages. Si vous sélectionnez l’option
Envoyer un message, la page Envoyer est répertoriée dans le volet gauche de la boîte
de dialogue ; si vous sélectionnez l’option Recevoir un message, la page Recevoir est
répertoriée. Par défaut, cette valeur est définie sur Envoyer un message.

Éditeur de tâche MSMQ (page Envoyer)


Utilisez la page Envoyer de la boîte de dialogue Éditeur de tâche MSMQ pour
configurer une tâche MSMQ afin d’envoyer des messages depuis un package Microsoft
SQL Server Integration Services.
Options
UseEncryption
Indiquez si le message doit être chiffré. La valeur par défaut est False.

EncryptionAlgorithm
Si vous utilisez le chiffrement, définissez le nom de l'algorithme de chiffrement à utiliser.
La tâche MSMQ peut utiliser les algorithmes RC2 et RC4. La valeur par défaut est RC2.

7 Notes

L'algorithme RC4 est uniquement pris en charge pour des raisons de compatibilité
descendante. Le nouveau matériel ne peut être chiffré à l'aide de RC4 ou de
RC4_128 que lorsque la base de données se trouve dans le niveau de
compatibilité 90 ou 100. (Non recommandé.) Utilisez à la place un algorithme plus
récent, tel qu'un des algorithmes AES. Dans la version actuelle de SQL Server, le
matériel chiffré à l'aide de RC4 ou de RC4_128 peut être déchiffré dans n'importe
quel niveau de compatibilité.

) Important

Il s'agit des algorithmes de chiffrement que la technologie Message Queuing (ou


MSMQ) prend en charge. Ces deux algorithmes de chiffrement sont aujourd'hui
considérés comme faibles du point de vue du chiffrement par rapport aux
algorithmes plus récents, non encore pris en charge par la technologie Microsoft
Message Queuing. Par conséquent, vous devez minutieusement évaluer vos
besoins en matière de chiffrement si vous souhaitez envoyer des messages à l'aide
de la tâche MSMQ.

MessageType
Sélectionnez le type de message : Cette propriété dispose des options répertoriées dans
le tableau suivant.

Valeur Description

Message de fichiers Le message est stocké dans un fichier. La sélection de cette valeur affiche
de données l'option dynamique DataFileMessage.

Message de type Le message est stocké dans une variable. Cette valeur affiche l'option
variable dynamique VariableMessage.
Valeur Description

Message de type Le message est stocké dans la tâche MSMQ. Cette valeur affiche l'option
chaîne dynamique StringMessage.

Options dynamiques MessageType

MessageType = Message de fichiers de données


DataFileMessage
Tapez le chemin du fichier de données ou cliquez sur le bouton avec les points de
suspension (...) et recherchez le fichier.

MessageType = Message de type variable

VariableMessage
Tapez les noms de variables ou cliquez sur les points de suspension (...) et sélectionnez
les variables. Les variables sont séparées par des virgules.

Rubriques connexes : Sélectionner des variables

MessageType = Message de type chaîne

StringMessage
Tapez le message de type chaîne ou cliquez sur les points de suspension (...) et entrez le
message dans la boîte de dialogue Entrer le message de type chaîne .

Éditeur de tâche MSMQ (page Recevoir)


La page Recevoir de la boîte de dialogue Éditeur de tâche MSMQ permet de configurer
une tâche MSMQ pour recevoir des messages MSMQ (Message Queuing) Microsoft .

Options
RemoveFromMessageQueue
Indiquez si vous voulez supprimer le message de la file d'attente après sa réception. La
valeur par défaut est False.

ErrorIfMessageTimeOut
Indiquez si la tâche échoue lorsque le message expire, en affichant un message d'erreur.
La valeur par défaut est False.

TimeoutAfter
Si vous choisissez d'afficher un message d'erreur sur l'échec de la tâche, définissez le
nombre de secondes qui précèdent le message d'expiration.

MessageType
Sélectionnez le type de message : Cette propriété dispose des options répertoriées dans
le tableau suivant.

Valeur Description

Message de fichiers de Le message est stocké dans un fichier. La sélection de cette valeur
données affiche l'option dynamique DataFileMessage.

Message de type Le message est stocké dans une variable. Cette valeur affiche l'option
variable dynamique VariableMessage.

Message de type chaîne Le message est stocké dans la tâche MSMQ. Cette valeur affiche
l'option dynamique StringMessage.

Message de type chaîne Le message


pour la variable
Cette valeur affiche l'option dynamique StringMessage.

Options dynamiques MessageType

MessageType = Message de fichiers de données


SaveFileAs
Tapez le chemin du fichier à utiliser ou cliquez sur le bouton avec des points de
suspension (...) et recherchez le fichier.

Remplacer
Indiquez si vous voulez remplacer les données dans un fichier existant lors de
l'enregistrement du contenu d'un message de fichiers de données. La valeur par défaut
est False.

Filter
Indiquez si vous voulez appliquer un filtre au message. Cette propriété dispose des
options répertoriées dans le tableau suivant.

Valeur Description
Valeur Description

Aucun filtre La tâche ne filtre pas les messages. Cette valeur affiche l’option dynamique
IdentifierReadOnly.

À partir du Le message reçoit uniquement les messages du package spécifié. Cette valeur
package affiche l’option dynamique Identifier.

Options dynamiques de filtrage

Filtrer = Aucun filtre

IdentifierReadOnly
Cette option est en lecture seule. Elle peut être vide ou contenir le GUID d'un package
lorsque la propriété Filtrer a été définie.

Filtrer = À partir du package

Identificateur
Si vous choisissez d’appliquer un filtre, tapez l’identificateur unique du package à partir
duquel les messages peuvent être reçus, ou cliquez sur le bouton de sélection (...) et
spécifiez le package.

Rubriques connexes :Sélectionner un package

MessageType = Message de type variable


Filter
Indiquez si vous voulez appliquer un filtre aux messages. Cette propriété dispose des
options répertoriées dans le tableau suivant.

Valeur Description

Aucun filtre La tâche ne filtre pas les messages. Cette valeur affiche l’option dynamique
IdentifierReadOnly.

À partir du Le message reçoit uniquement les messages du package spécifié. Cette valeur
package affiche l’option dynamique Identifier.

Variable
Tapez le nom de la variable ou cliquez sur <Nouvelle variable...>, puis configurez une
nouvelle variable.
Rubriques connexes :Ajouter une variable

Options dynamiques de filtrage

Filtrer = Aucun filtre

IdentifierReadOnly
Cette option est vide.

Filtrer = À partir du package

Identificateur
Si vous choisissez d’appliquer un filtre, tapez l’identificateur unique du package à partir
duquel les messages peuvent être reçus, ou cliquez sur le bouton de sélection (...) et
spécifiez le package.

Rubriques connexes :Sélectionner un package

MessageType = Message de type chaîne

Compare
Indiquez si vous voulez appliquer un filtre aux messages. Cette propriété dispose des
options répertoriées dans le tableau suivant.

Valeur Description

Aucun Les messages ne sont pas comparés.

Correspondance Les messages doivent correspondre exactement à la chaîne figurant dans


exacte l’option CompareString .

Ignorer la casse Le message doit correspondre à la chaîne figurant dans l’option


CompareString , mais la comparaison ne tient pas compte de la casse.

Contenant Le message doit contenir la chaîne figurant dans l’option CompareString .

CompareString
Si l’option Comparer n’est pas définie sur Aucun, indiquez la chaîne à laquelle le
message doit être comparé.

MessageType = Message de type chaîne pour la variable


Compare
Indiquez si vous voulez appliquer un filtre aux messages. Cette propriété dispose des
options répertoriées dans le tableau suivant.

Valeur Description

Aucun Les messages ne sont pas comparés.

Correspondance Le message doit correspondre exactement à la chaîne figurant dans l’option


exacte CompareString .

Ignorer la casse Le message doit correspondre à la chaîne figurant dans l’option


CompareString , mais la comparaison ne tient pas compte de la casse.

Contenant Le message doit contenir la chaîne figurant dans l’option CompareString .

CompareString
Si l’option Comparer n’est pas définie sur Aucun, indiquez la chaîne à laquelle le
message doit être comparé.

Variable
Tapez le nom de la variable qui doit contenir le message reçu ou cliquez sur <Nouvelle
variable...>, puis configurez une nouvelle variable.

Rubriques connexes :Ajouter une variable

Sélectionner des variables


Utilisez la boîte de dialogue Sélectionner des variables pour spécifier les variables à
utiliser dans une opération d'envoi de message de la tâche MSMQ. La liste Variables
disponibles contient les variables système et définies par l’utilisateur exploitables par la
tâche MSMQ ou son conteneur parent. La tâche utilise des variables de la liste Variables
sélectionnées .

Options
Variables disponibles
Sélectionnez une ou plusieurs variables.

Variables sélectionnées
Sélectionnez une ou plusieurs variables.

Flèches vers la droite


Déplacez les variables sélectionnées dans la liste Variables sélectionnées .
Flèches vers la gauche
Replacez les variables sélectionnées dans la liste Variables disponibles .

Nouvelle variable
Créez une nouvelle variable.

Rubriques connexes :Ajouter une variable

Voir aussi
Tâches Integration Services
Flux de contrôle
Sélectionner un package
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Sélectionner un package pour spécifier le package à partir


duquel la tâche MSMQ peut recevoir des messages.

Options statiques
Emplacement
Spécifiez l'emplacement du package. Cette propriété dispose des options répertoriées
dans le tableau suivant.

Valeur Description

SQL Définissez l'emplacement d'une instance de SQL Server. La sélection de cette valeur
Server affiche les options dynamiques, Serveur, Utiliser l'authentification Windows, Utiliser
l'authentification SQL Server, Nom d'utilisateuret Mot de passe.

Fichier Définissez l'emplacement d'un fichier DTSX. La sélection de cette valeur affiche l'option
DTSX dynamique Nom de fichier.

Options dynamiques pour la définition de


l'emplacement

Emplacement = SQL Server


Nom du package
Sélectionnez un package stocké sur le serveur spécifié.

Serveur
Tapez le nom d'un serveur ou sélectionnez-en un dans la liste.

Utiliser l'authentification Windows


Cliquez pour utiliser l'authentification Windows.

Utiliser l’authentification SQL Server


Cliquez pour utiliser l’authentification SQL Server .
Nom d’utilisateur
Si vous utilisez l’authentification SQL Server , fournissez un nom d’utilisateur à utiliser
pour ouvrir une session sur le serveur.

Mot de passe
Si vous utilisez l’authentification SQL Server , entrez un mot de passe.

Emplacement = Fichier DTSX


Nom de fichier
Indiquez le chemin d’un package ou cliquez sur le bouton Parcourir (...) pour rechercher
le package.

Voir aussi
Tâche MSMQ
tâche de notification d'opérateur
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche Notifier l'opérateur envoie des messages de notification aux opérateurs


d'Agent SQL Server . Un opérateur d'Agent SQL Server est un alias d'une personne ou
d'un groupe qui peut recevoir des notifications électroniques. Pour plus d'informations
sur les opérateurs SQL Server , consultez Opérateurs.

La tâche Notifier l’opérateur permet à un package de notifier un ou plusieurs opérateurs


par e-mail, radiomessagerie ou envoi réseau. Chaque opérateur peut être notifié par
différentes méthodes. Par exemple, l’opérateur A est notifié par e-mail et
radiomessagerie, tandis que l’opérateur B est notifié par radiomessagerie et envoi
réseau. Les opérateurs qui reçoivent des notifications depuis la tâche de notification
d'opérateur doivent être membres de sa collection OperatorNotify .

La tâche Notifier l'opérateur est la seule tâche de maintenance de base de données qui
n'encapsule pas d'instruction Transact-SQL ou de commande DBCC.

Configuration de la tâche Notifier l'opérateur


Vous pouvez définir les propriétés par le biais du concepteur SSIS . Cette tâche se trouve
dans la section Tâches du plan de maintenance de la boîte à outils du concepteur SSIS .

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Tâche Notifier l'opérateur (Plan de maintenance)

Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur


tâche Reconstruire l'index
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche Reconstruire l'index reconstruit les index dans les vues et les tables de base de
données SQL Server . Pour plus d’informations sur la gestion des index, consultez
Réorganiser et reconstruire des index.

La tâche Reconstruire l'index permet à un package de reconstruire les index dans une ou
plusieurs bases de données. Si la tâche reconstruit uniquement les index d'une base de
données, vous pouvez choisir les vues et les tables dont la tâche reconstruit les index.

Cette tâche encapsule une instruction ALTER INDEX REBUILD avec les options de
reconstruction d'index suivantes :

Spécifiez un pourcentage FILLFACTOR ou utilisez la quantité d'origine de


FILLFACTOR.

Attribuez au paramètre SORT_IN_TEMPDB la valeur ON afin de stocker dans


tempdb le résultat intermédiaire du tri utilisé pour reconstruire l'index. Lorsque le
résultat intermédiaire du tri a pour valeur OFF, il est stocké dans la même base de
données que l'index.

Attribuez au paramètre PAD_INDEX la valeur ON afin d'allouer l'espace disponible


spécifié par FILLFACTOR aux pages de niveau intermédiaire de l'index.

Attribuez au paramètre IGNORE_DUP_KEY la valeur ON pour permettre une


opération d'insertion de plusieurs lignes incluant les enregistrements qui violent
des contraintes uniques afin d'insérer les enregistrements qui ne violent pas les
contraintes uniques.

Attribuez au paramètre ONLINE la valeur ON pour ne pas appliquer de verrous de


table, afin que les requêtes ou les mises à jour portant sur la table sous-jacente
puissent être exécutées pendant la réindexation.

7 Notes

Les opérations d’index en ligne ne sont pas disponibles dans toutes les
éditions de Microsoft SQL Server. Pour obtenir la liste des fonctionnalités
prises en charge par les éditions de SQL Server, consultez Fonctionnalités
prise en charge par les éditions de SQL Server 2016.
Affectez une valeur à MAXDOP pour limiter le nombre de processeurs utilisés dans
une exécution de plans parallèles.

Spécifiez WAIT_AT_LOW_PRIORITY, MAX_DURATION et ABORT_AFTER_WAIT pour


contrôler la durée pendant laquelle l’opération d’index attend des verrous de
basse priorité.

Pour plus d’informations sur l’instruction ALTER INDEX et sur les options de
reconstruction d’index, consultez ALTER INDEX (Transact-SQL).

) Important

Le temps que prend la tâche pour créer l'instruction Transact-SQL qu'elle exécute
est proportionnel au nombre d'index qu'elle reconstruit. Si la tâche est configurée
de manière à reconstruire les index dans toutes les tables et vues d'une base de
données possédant de nombreux index ou à reconstruire les index de plusieurs
bases de données, elle peut prendre un temps considérable pour générer
l'instruction Transact-SQL.

Configuration de la tâche Reconstruire l'index


Vous pouvez définir les propriétés par le biais du concepteur SSIS . Cette tâche se trouve
dans la section Tâches du plan de maintenance de la boîte à outils du concepteur SSIS .

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Tâche Reconstruire l'index (Plan de maintenance)

Tâches associées
Pour plus d’informations sur la définition de ces propriétés dans le concepteur SSIS ,
consultez Définir les propriétés d’une tâche ou d’un conteneur.

Voir aussi
Tâches Integration Services
Flux de contrôle
Tâche Réorganiser l'index
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche Réorganiser l'index réorganise les index dans les vues et les tables de base de
données SQL Server . Pour plus d’informations sur la gestion des index, consultez
Réorganiser et reconstruire des index.

La tâche Réorganiser l'index permet à un package de réorganiser les index dans une ou
plusieurs bases de données. Si la tâche réorganise uniquement les index d'une base de
données, vous pouvez choisir les vues ou les tables dont les index sont à réorganiser. En
outre, la tâche Réorganiser l'index comprend une option qui permet de compacter les
données d'objets volumineux. Les données d’objets volumineux peuvent avoir les types
de données suivants : image, text, ntext, varchar(max), nvarchar(max),
varbinary(max)ou xml . Pour plus d’informations, consultez Types de données (Transact-
SQL).

La tâche Réorganiser l'index encapsule l'instruction Transact-SQL ALTER INDEX. Si vous


choisissez de compacter les données d'objet volumineux, l'instruction utilise la clause
REORGANIZE WITH (LOB_COMPACTION = ON), sinon l'option LOB_COMPACTION a
pour valeur OFF. Pour plus d’informations, consultez ALTER INDEX (Transact-SQL).

) Important

Le temps que prend la tâche à créer l'instruction Transact-SQL qu'elle exécute est
proportionnel au nombre d'index qu'elle réorganise. Si la tâche est configurée de
manière à réorganiser les index dans toutes les tables et vues d'une base de
données avec de nombreux index ou à réorganiser les index de plusieurs bases de
données, elle peut prendre beaucoup de temps pour générer l'instruction Transact-
SQL.

Configuration de la tâche Réorganiser l'index


Vous pouvez définir les propriétés par le biais du concepteur SSIS . Cette tâche se trouve
dans la section Tâches du plan de maintenance de la boîte à outils du concepteur SSIS .

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :
Tâche Réorganiser l'index (Plan de maintenance)

Tâches associées
Pour plus d’informations sur la façon de définir ces propriétés dans le concepteur SSIS ,
consultez Définir les propriétés d’une tâche ou d’un conteneur.

Voir aussi
Tâches Integration Services
Flux de contrôle
Tâche de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de script fournit du code permettant d’exécuter des fonctions qui ne sont pas
disponibles dans les tâches et transformations intégrées de SQL Server Integration
Services. La tâche de script peut également combiner des fonctions dans un même
script au lieu d'utiliser plusieurs tâches et transformations. Utilisez la tâche de script
pour le travail devant être effectué une fois dans un package (ou une fois par objet
énuméré), et non une fois par ligne de données.

Vous pouvez utiliser la tâche de script aux fins suivantes :

Accéder aux données à l'aide d'autres technologies non prises en charge par les
types de connexion intégrés. Par exemple, un script peut utiliser des interfaces
ADSI (Active Directory Service Interfaces) pour accéder aux noms d'utilisateur et les
extraire d'Active Directory.

Créer un compteur de performances spécifique au package. Par exemple, un script


peut créer un compteur de performances mis à jour pendant l'exécution d'une
tâche complexe ou peu performante.

Déterminez si les fichiers spécifiés sont vides ou combien de lignes ils contiennent,
puis en fonction de ces informations, affectez le flux de contrôle dans un package.
Par exemple, si un fichier ne contient aucune ligne, la valeur 0 d'une variable et une
contrainte de précédence qui évalue la valeur empêchent une tâche de système de
fichiers de copier le fichier.

Si vous devez utiliser le script afin d'effectuer le même travail pour chaque ligne de
données d'un ensemble, vous devriez utiliser le composant Script à la place de la tâche
de script. Par exemple, si vous souhaitez évaluer un montant de frais de port raisonnable
et ignorer les lignes de données présentant des montants extrêmement élevés ou bas, il
convient d'utiliser un composant Script. Pour plus d’informations, voir Script
Component.

Si plusieurs packages utilisent un script, envisagez l'écriture d'une tâche personnalisée


plutôt que de recourir à la tâche de script. Pour plus d’informations, consultez
Développement d’une tâche personnalisée.

Si vous choisissez la tâche de script pour votre package, vous devez développer le script
utilisé par la tâche et configurer cette dernière.
Écriture et exécution du script utilisé par la
tâche
La tâche de script utilise Microsoft Visual Studio Tools for Applications (VSTA) comme
environnement d’écriture des scripts et moteur d’exécution de ces derniers.

VSTA fournit l’ensemble des fonctionnalités standard de l’environnement Visual Studio ,


telles que l’éditeur Visual Studio à code de couleur, IntelliSense et l’Explorateur d’objets.
VSTA utilise également le même débogueur que les autres outils de développement
Microsoft . Les points d'arrêt dans le script fonctionnent de façon transparente avec
ceux des tâches et des conteneurs Integration Services . VSTA prend en charge les
langages de programmation Microsoft Visual Basic et Microsoft Visual C#.

Vous ne pouvez lancer un script que si VSTA est installé sur l'ordinateur où le package
est exécuté. Lorsque le package s'exécute, la tâche charge le moteur de script puis
exécute le script. Vous pouvez accéder aux assemblys .NET externes dans les scripts en
ajoutant des références aux assemblys du projet. Actuellement, nous ne prenons pas en
charge les références d’assembly standard .NET Core et .NET.

7 Notes

Contrairement aux versions antérieures pour lesquelles il était possible d’indiquer si


les scripts étaient précompilés, tous les scripts de SQL Server 2008 Integration
Services (SSIS) et des versions ultérieures sont précompilés. Lorsqu'un script est
précompilé, le moteur de langage n'est pas chargé au moment de l'exécution et le
package s'exécute plus rapidement. Toutefois, les fichiers binaires précompilés
occupent un espace disque important.

Configuration de la tâche de script


Vous pouvez configurer la tâche de script comme suit :

Fournissez le script personnalisé que la tâche exécute.

Spécifiez la méthode dans le projet VSTA utilisée au moment de l’exécution de


Integration Services comme point d’entrée du code de tâche de script.

Spécifiez le langage de script

Éventuellement, fournissez les listes des variables en lecture seule et en lecture/


écriture à utiliser dans le script.
Vous pouvez définir ces propriétés via le concepteur SSIS ou par programme.

Configuration de la tâche de script dans le concepteur


Le tableau suivant décrit l’événement ScriptTaskLogEntry pouvant être consigné pour la
tâche de script. L’événement ScriptTaskLogEntry est sélectionné pour se connecter à
l’onglet Détails de la boîte de dialogue Configurer les journaux SSIS . Pour plus
d’informations, consultez Journalisation d’Integration Services (SSIS).

Entrée du journal Description

ScriptTaskLogEntry Indique les résultats de l'implémentation de la journalisation dans le script.


La tâche écrit une entrée de journal pour chaque appel de la méthode Log
de l’objet Dts . La tâche écrit ces entrées lorsque le code est exécuté. Pour
plus d’informations, consultez Journalisation dans la tâche de script.

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
consultez les rubriques suivantes :

Éditeur de tâche de script (page Général)

Éditeur de tâche de script (page Script)

Page Expressions

Pour plus d’informations sur la définition de ces propriétés dans le concepteur SSIS ,
consultez la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Configuration par programme de la tâche de script


Pour plus d’informations sur la définition par programmation de ces propriétés,
consultez sur la rubrique suivante :

ScriptTask

Éditeur de tâche de script (page Général)


Utilisez la page Général de la boîte de dialogue Éditeur de tâche de script pour donner
un nom et une description à la tâche de script.

Pour en savoir plus sur la tâche de script, consultez Script Task et Configuration de la
tâche de script dans l'éditeur de tâche de script. Pour en savoir plus sur la
programmation de la tâche de script, consultez Extension du package à l'aide de la
tâche de script.

Options
Nom
Attribuez un nom unique à la tâche de script. Ce nom sert d'étiquette à l'icône de la
tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Tapez la description de la tâche de script.

Éditeur de tâche de script (page Script)


Utilisez la page Script de la boîte de dialogue Éditeur de tâche de script pour définir les
propriétés du script et vérifier les variables auxquelles le script peut accéder.

7 Notes

Dans SQL Server 2008 Integration Services (SSIS) et les versions ultérieures, tous les
scripts sont précompilés. Dans les versions antérieures, vous définissez une
propriété PrecompileScriptIntoBinaryCode pour spécifier que le script a été
précompilé.

Pour en savoir plus sur la tâche de script, consultez Script Task et Configuration de la
tâche de script dans l'éditeur de tâche de script. Pour en savoir plus sur la
programmation de la tâche de script, consultez Extension du package à l'aide de la
tâche de script.

Options
ScriptLanguage
Sélectionnez le langage de script pour la tâche, Microsoft Visual Basic ou Microsoft
Visual C#.
Après avoir créé un script pour la tâche, vous ne pouvez pas modifier la valeur de la
propriété ScriptLanguage .

Pour définir le langage de script par défaut pour la tâche de script, utilisez l'option
Langage de script dans la page Général de la boîte de dialogue Options . Pour plus
d'informations, consultez General Page.

EntryPoint
Spécifiez la méthode que le runtime Integration Services appelle comme point d’entrée
dans le code de la tâche de script. La méthode spécifiée doit se trouver dans la classe
ScriptMain (classe par défaut générée par les modèles de script) du projet Microsoft
Visual Studio Tools for Applications (VSTA).

Si vous modifiez le nom de la méthode dans le projet VSTA, vous devez modifier la
valeur de la propriété EntryPoint .

ReadOnlyVariables
Tapez une liste séparée par des virgules des variables en lecture seule accessibles au
script ou cliquez sur le bouton de sélection (...) et sélectionnez les variables dans la boîte
de dialogue Sélectionner des variables .

7 Notes

Les noms des variables tiennent compte de la casse.

ReadWriteVariables
Tapez une liste séparée par des virgules des variables en lecture/écriture accessibles au
script ou cliquez sur le bouton de sélection (...) et sélectionnez les variables dans la boîte
de dialogue Sélectionner des variables .

7 Notes

Les noms des variables tiennent compte de la casse.

Modifier le script
Ouvre l'environnement de développement intégré VSTA dans lequel vous pouvez créer
ou modifier le script.

Contenu associé
Article technique Procédure d'envoi de courrier électronique avec notification de
remise en C# (Procédure d’envoi d’e-mail avec notification de remise en C#) sur
shareourideas.com
Page Sélectionner des variables
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Sélectionner des variables pour sélectionner une ou


plusieurs variables pour les propriétés ReadOnlyVariables et ReadWriteVariables quand
vous configurez une tâche de script ou un composant Script.

Pour ouvrir la boîte de dialogue Sélectionner des variables , dans la page Script de la
boîte de dialogue Éditeur de transformation de script, sous Propriétés personnalisées,
recherchez la propriété ReadOnlyVariables ou ReadWriteVariables, puis cliquez sur les
points de suspension (...) en regard de cette propriété.

Options
Zone Sélectionner
Sélectionne une variable spécifique, sélectionne toutes les variables ou désactive la
sélection de toutes les variables.

Nom
Spécifie le nom d'une variable.

Type
Spécifie le type de données d'une variable.

Voir aussi
Éditeur de tâche de script (page Script)
tache Envoyer un message
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche Envoyer un message envoie un message électronique. La tâche Envoyer un


message permet à un package d'envoyer des messages en cas de réussite ou d'échec
des tâches du flux de travail du package, ou d'envoyer des messages en réponse à un
événement déclenché par le package au moment de l'exécution. Par exemple, la tâche
peut notifier à un administrateur de base de données la réussite ou l'échec de la tâche
de sauvegarde de base de données.

Vous pouvez configurer la tâche Envoyer un message comme suit :

Fournissez le texte du message électronique.

Indiquez une ligne d'objet pour le message électronique.

Définissez le niveau de priorité du message. La tâche prend en charge trois niveaux


de priorité : normale, basse et haute.

Indiquez les destinataires dans les lignes À, Cc et Cci. Si la tâche spécifie plusieurs
destinataires, ceux-ci sont séparés par des points-virgules.

7 Notes

Les lignes À, Cc et Cci sont limitées chacune à 256 caractères conformément


aux normes Internet.

Incluez les pièces jointes. Si la tâche spécifie plusieurs pièces jointes, celles-ci sont
séparées par la barre verticale ( | ).

7 Notes

Si un fichier de pièce jointe n'existe pas lors de l'exécution du package, une


erreur se produit.

Spécifiez le gestionnaire de connexions SMTP à utiliser.

) Important
Le gestionnaire de connexions SMTP prend en charge uniquement
l'authentification anonyme et l'authentification Windows. Il ne prend pas en
charge l'authentification de base.

Le texte du message peut être une chaîne indiquée par vos soins, ou bien une
connexion à un fichier, ou le nom d'une variable qui contient le texte. La tâche utilise un
gestionnaire de connexions de fichiers pour se connecter à un fichier. Pour plus
d'informations, consultez Flat File Connection Manager.

La tâche utilise un gestionnaire de connexions SMTP pour se connecter à un serveur de


messagerie. Pour plus d’informations, consultez Gestionnaire de connexions SMTP.

Messages de journalisation personnalisés


disponibles dans la tâche Envoyer un message
Le tableau suivant répertorie les entrées de journal personnalisées pour la tâche Envoyer
un message. Pour plus d’informations, consultez Journalisation d’Integration Services
(SSIS).

Entrée du journal Description

SendMailTaskBegin Indique que la tâche a commencé l'envoi d'un message électronique.

SendMailTaskEnd Indique que la tâche a terminé l'envoi d'un message électronique.

SendMailTaskInfo Fournit des informations détaillées concernant la tâche.

Configuration de la tâche Envoyer un message


Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Page Expressions

Pour plus d'informations sur la définition par programmation de ces propriétés, cliquez
sur la rubrique suivante :

SendMailTask
Tâches associées
Pour obtenir des informations sur la définition de ces propriétés dans le concepteur SSIS
, cliquez sur Définir les propriétés d’une tâche ou d’un conteneur.

Contenu associé
Article technique Procédure d'envoi de courrier électronique avec notification de
remise en C# (Procédure d’envoi d’e-mail avec notification de remise en C#) sur
shareourideas.com

Éditeur de tâche Envoyer un message (page


Général)
Utilisez la page Général de la boîte de dialogue Éditeur de tâche Envoyer un message
pour définir le nom de la tâche d'envoi d'un message et décrire la tâche.

Options
Nom
Fournissez un nom unique pour la tâche d'envoi de message. Ce nom sert d'étiquette à
l'icône de la tâche.

Remarque Les noms de tâches doivent être uniques dans un package.

Description
Entrez une description de la tâche d'envoi d'un message.

Éditeur de tâche Envoyer un message (page


Courrier)
Utilisez la page Courrier de la boîte de dialogue Éditeur de tâche Envoyer un message
pour indiquer les destinataires d'un message, son type et sa priorité. Vous pouvez
également joindre des fichiers au message. Le texte de ce courrier peut se présenter
sous la forme d'une chaîne que vous précisez, d'une connexion à un fichier comportant
le texte voulu ou le nom d'une variable contenant le texte en question.

Options
SMTPConnection
Sélectionnez un gestionnaire de connexions SMTP dans la liste ou cliquez sur <Nouvelle
connexion...> pour en créer un.

) Important

Le gestionnaire de connexions SMTP prend en charge uniquement


l'authentification anonyme et l'authentification Windows. Il ne prend pas en charge
l'authentification de base.

Rubriques connexes :Gestionnaire de connexions SMTP

From
Indique l'adresse électronique de l'expéditeur.

To
Fournit les adresses de messagerie des destinataires séparées par un point-virgule.

Cc
Fournit les adresses de messagerie des individus destinés à recevoir une copie du
message, séparées par un point-virgule.

Cci
Fournit les adresses de messagerie des individus destinés à recevoir une copie carbone
invisible (Cci) du message, séparées par un point-virgule.

Subject
Permet de spécifier l'objet du message électronique.

MessageSourceType
Permet de sélectionner le type de source du message. Cette propriété dispose des
options répertoriées dans le tableau suivant.

Valeur Description

Entrée Permet de définir la source du texte du message. Si cette valeur est sélectionnée, les
directe options dynamiques incluses dans MessageSources'affichent alors.

Connexion Permet de définir la source du fichier contenant le texte du message. Si cette valeur
de fichiers est sélectionnée, les options dynamiques incluses dans MessageSources'affichent
alors.

Variable Permet d'attribuer à la source une variable contenant le texte du message. Si cette
valeur est sélectionnée, les options dynamiques incluses dans
MessageSources'affichent alors.
Priorité
Permet d'indiquer la priorité à appliquer au message.

Pièces jointes
Indique le nom des fichiers joints au message électronique, séparés par le caractère
Barre verticale (|).

7 Notes

Les lignes À, Cc et Cci sont limitées à 256 caractères, conformément aux Internet
standards.

Options dynamiques de MessageSourceType

MessageSourceType = Entrée directe


MessageSource
Permet d’entrer le texte du message ou de cliquer sur le bouton d’exploration
représenté par les points de suspension (...), puis de taper le message dans la boîte de
dialogue Source du message.

MessageSourceType = Connexion de fichiers

MessageSource
Sélectionnez un gestionnaire de connexions de fichiers dans la liste ou cliquez sur
<Nouvelle connexion...> pour en créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

MessageSourceType = Variable

MessageSource
Sélectionnez une variable dans la liste ou cliquez sur <Nouvelle variable...> pour en
créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable

Voir aussi
Tâches Integration Services
Flux de contrôle
tâche Réduire la base de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche Réduire la base de données réduit la taille des fichiers journaux et de données
de bases de données SQL Server .

La tâche Réduire la base de données permet à un package de réduire les fichiers d'une
ou plusieurs bases de données.

La réduction des fichiers de données permet de récupérer de l'espace en déplaçant des


pages de données de la fin du fichier vers un espace inoccupé plus proche de l'avant du
fichier. Lorsqu'une quantité d'espace libre suffisante est créée à la fin du fichier, des
pages de données à la fin du fichier peuvent être désallouées et retournées au système
de fichiers.

2 Avertissement

Les données qui sont déplacées pour réduire un fichier peuvent être dispersées à
n'importe quel emplacement disponible dans le fichier. Cela provoque la
fragmentation de l'index et peut ralentir les performances des requêtes qui
recherchent une plage de l'index. Pour éliminer la fragmentation, reconstruisez les
index dans le fichier après réduction.

Commandes
La tâche Réduire la base de données encapsule une commande DBCC
SHRINKDATABASE, avec les options et les arguments suivants :

database_name

target_percent

NOTRUNCATE ou TRUNCATEONLY.

Si la tâche de réduction de base de données réduit plusieurs bases de données, la tâche


exécute plusieurs commandes SHRINKDATABASE, une pour chaque base de données.
Toutes les instances de la commande SHRINKDATABASE utilisent les mêmes valeurs
d’argument, sauf pour l’argument database_name . Pour plus d’informations, consultez
DBCC SHRINKDATABASE (Transact-SQL).
Configuration de la tâche Réduire la base de
données
Vous pouvez définir les propriétés par le biais du concepteur SSIS . Cette tâche se trouve
dans la section Tâches du plan de maintenance de la boîte à outils du concepteur SSIS .

Pour plus d’informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Tâche Réduire la base de données (Plan de maintenance)

Pour plus d’informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur


Tâche de transfert de bases de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de transfert de bases de données transfère une base de données SQL Server
entre deux instances de SQL Server. Contrairement aux autres tâches qui ne transfèrent
les objets SQL Server qu'en les copiant, la tâche de transfert de base de données peut
copier ou déplacer une base de données. Cette tâche peut également servir à copier
une base de données sur le même serveur.

Modes en ligne et hors connexion


La base de données peut être transférée à l'aide du mode en ligne ou hors connexion.
Lorsque vous utilisez le mode en ligne, la base de données reste attachée et est
transférée à l'aide de SMO (SQL Management Object) pour copier les objets de base de
données. Lorsque vous utilisez le mode hors connexion, la base de données est
détachée, les fichiers de base de données sont copiés ou déplacés, et la base de
données est attachée à la destination après que le transfert se soit terminé avec succès.
Si la base de données est copiée, elle est automatiquement rattachée à la source si la
copie a réussi. En mode hors connexion, la base de données est copiée plus rapidement,
mais elle n'est pas disponible aux utilisateurs pendant le transfert.

Le mode hors connexion requiert la spécification des partages de fichiers réseau sur les
serveurs source et destination contenant les fichiers de base de données. Si le dossier
est partagé et est accessible à l'utilisateur, vous pouvez référencer le partage réseau à
l'aide de la syntaxe \\nomordinateur\Program Files\mondossier\. Sinon, vous devez
utiliser la syntaxe \\nomordinateur\c$\Program Files\mondossier\. Pour utiliser la
dernière syntaxe, l'utilisateur doit avoir un accès en écriture vers les partages réseau
source et destination.

Transférer des bases de données entre des


versions de SQL Server
La tâche de transfert de bases de données peut transférer une base de données entre
des instances de différentes versions de SQL Server.

Événements
La tâche de transfert de bases de données n'indique pas les stades intermédiaires de
l'avancement du transfert des messages d'erreur : elle signale la tâche comme réalisée à
0 % ou à 100 %.

Valeur d'exécution
La valeur d'exécution, définie dans la propriété ExecutionValue de la tâche, renvoie la
valeur 1, car contrairement aux autres tâches de transfert, la tâche de transfert de bases
de données ne peut transférer qu'une seule base de données.

En affectant une variable définie par l’utilisateur à la propriété ExecValueVariable de la


tâche de transfert de bases de données, les informations sur le transfert de messages
d’erreur peuvent être rendues disponibles aux autres objets du package. Pour plus
d’informations, consultez Variables Integration Services (SSIS) et Utiliser des variables
dans des packages.

Entrées du journal
La tâche de transfert de bases de données comporte les entrées de journal
personnalisées suivantes :

SourceSQLServer Cette entrée du journal indique le nom du serveur source.

DestSQLServer Cette entrée du journal indique le nom du serveur de destination.

SourceDB Cette entrée du journal indique le nom de la base de données


transférée.

En outre, une entrée de journal pour l'événement OnInformation est écrite lorsque la
base de données de destination est remplacée.

Sécurité et autorisations
Pour transférer une base de données à l'aide du mode hors connexion, l'utilisateur qui
exécute le package doit être un membre du rôle de serveur sysadmin.

Pour transférer une base de données à l'aide du mode en ligne, l'utilisateur qui exécute
le package doit être un membre du rôle de serveur sysadmin ou le propriétaire (dbo) de
la base de données sélectionnée.
Configuration de la tâche de transfert de bases
de données
Vous pouvez spécifier si la tâche doit tenter de rattacher la base de données source
lorsque le transfert de base de données échoue.

La tâche de transfert de base de données peut également être configurée afin de


permettre le remplacement d'une base de données de destination portant le même
nom.

La base de données source peut également être renommée lors du processus de


transfert. Si vous voulez transférer une base de données vers une instance de
destination de SQL Server contenant déjà une base de données portant le même nom,
le changement de nom de la base de données source permet le transfert de cette base
de données. Cependant, les noms de fichiers de base de données doivent également
être différents. Si des fichiers de base de données portant le même nom existent déjà
sur la destination, la tâche échoue.

Lorsque vous copiez une base de données, sa taille ne peut pas être inférieure à la taille
de la base de données model sur le serveur de destination. Vous pouvez soit augmenter
la taille de la base de données à copier, soit réduire la taille de la base de données
model.

À l'exécution, la tâche de transfert de base de données se connecte aux serveurs source


et destination en utilisant un ou deux gestionnaires de connexions SMO. Lorsque vous
créez une copie de base de données sur le même serveur, un seul gestionnaire de
connexions SMO est requis. Les gestionnaires de connexions SMO sont configurés
indépendamment de la tâche de transfert de bases de données, puis sont référencés
dans cette tâche. Les gestionnaires de connexions SMO spécifient le serveur et le mode
d'authentification à utiliser lorsque la tâche accède au serveur. Pour plus d'informations,
consultez SMO Connection Manager.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Page Expressions

Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :
Définir les propriétés d'une tâche ou d'un conteneur

Configuration par programmation de la tâche


de transfert de bases de données
Pour plus d'informations sur la définition par programme de ces propriétés, cliquez sur
la rubrique suivante :

TransferDatabaseTask

Éditeur de tâche de transfert de bases de


données (page Général)
Utilisez la page Général de la boîte de dialogue Éditeur de tâche de transfert de bases
de données pour donner un nom et une description à la tâche de transfert de base de
données. La tâche de transfert de bases de données copie ou déplace une base de
données SQL Server entre deux instances de SQL Server. Cette tâche peut également
servir à copier une base de données sur le même serveur.

Options
Nom
Donnez un nom unique à la tâche de transfert de bases de données. Ce nom sert
d'étiquette à l'icône de la tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Entrez une description de la tâche de transfert de bases de données.

Éditeur de tâche de transfert de bases de


données (page Bases de données)
Utilisez la page Bases de données de la boîte de dialogue Éditeur de tâche de transfert
de bases de données pour spécifier les propriétés des bases de données source et de
destination concernées par la tâche de transfert de bases de données. La tâche de
transfert de bases de données copie ou déplace une base de données SQL Server entre
deux instances de SQL Server. Cette tâche peut également servir à copier une base de
données sur le même serveur.

Options
SourceConnection
Sélectionnez un gestionnaire de connexions SMO dans la liste ou cliquez sur <Nouvelle
connexion...> pour créer une connexion au serveur source.

DestinationConnection
Sélectionnez un gestionnaire de connexions SMO dans la liste ou cliquez sur <Nouvelle
connexion...> pour créer une connexion au serveur de destination.

DestinationDatabaseName
Spécifiez le nom de la base de données SQL Server sur le serveur de destination.

Pour remplir automatiquement ce champ avec le nom de la base de données source,


spécifiez d’abord SourceConnection et SourceDatabaseName .

Pour renommer la base de données sur le serveur de destination, tapez son nouveau
nom dans ce champ.

DestinationDatabaseFiles
Spécifiez le nom et l'emplacement des fichiers de base de données sur le serveur de
destination.

Pour remplir automatiquement ce champ avec le nom de la base de données source,


spécifiez d’abord SourceConnection, SourceDatabaseNameet SourceDatabaseFiles .

Pour renommer les fichiers de base de données ou pour spécifier les nouveaux
emplacements sur le serveur de destination, remplissez ce champ avec les informations
sur la base de données source, puis cliquez sur le bouton Parcourir. Dans la boîte de
dialogue Fichiers de la base de données de destination , modifiez Fichier de
destination, Dossier de destinationou Partage de fichiers réseau.

7 Notes

Si vous trouvez l'emplacement des fichiers de la base de données à l'aide du


bouton Parcourir, l'emplacement des fichiers est entré en utilisant la notation de
lecteur local : par exemple, c:\. Vous devez remplacer cette notation par la notation
de partage réseau, qui comporte le nom de l'ordinateur et le nom du partage. Si le
partage administratif par défaut est utilisé, vous devez utiliser la notation $ et
disposer d'un accès administratif au partage.

DestinationOverwrite
Spécifiez si la base de données sur le serveur de destination peut être remplacée.

Cette propriété dispose des options répertoriées dans le tableau suivant :

Valeur Description

True Remplace la base de données du serveur de destination.

False Ne remplace pas la base de données du serveur de destination.

U Attention

Les données de la base de données du serveur de destination seront remplacées si


vous spécifiez True pour DestinationOverwrite, ce qui peut provoquer la perte de
données. Pour l'éviter, sauvegardez la base de données du serveur de destination
dans un autre emplacement avant d'exécuter la tâche de transfert de bases de
données.

Action
Spécifiez si la tâche doit Copier ou Déplacer la base de données sur le serveur de
destination.

Méthode
Spécifiez si la tâche est exécutée pendant que la base de données sur le serveur source
est en ligne ou en mode hors connexion.

Pour transférer une base de données en mode hors connexion, l’utilisateur qui exécute
le package doit être membre du rôle serveur fixe sysadmin .

Pour transférer une base de données en mode en ligne, l’utilisateur qui exécute le
package doit être membre du rôle serveur fixe sysadmin ou propriétaire de la base de
données sélectionnée (dbo).

SourceDatabaseName
Sélectionnez le nom de la base de données à copier ou à déplacer.

SourceDatabaseFiles
Cliquez sur le bouton Parcourir pour sélectionner les fichiers de base de données.
ReattachSourceDatabase
Spécifiez si la tâche va tenter de rattacher la base de données source en cas d'échec.

Cette propriété dispose des options répertoriées dans le tableau suivant :

Valeur Description

True Rattache la base de données source.

False Ne rattache pas la base de données source.

Fichiers de la base de données source


Utilisez la boîte de dialogue Fichiers de la base de données source pour afficher le nom
et l'emplacement des fichiers de la base de données sur le serveur source ou pour
spécifier un emplacement de partage de fichiers réseau pour la tâche de transfert de
bases de données.

Pour remplir cette boîte de dialogue avec le nom et l'emplacement des fichiers de base
de données sur le serveur source, spécifiez d'abord SourceConnection et
SourceDatabaseName dans la page Bases de données de la boîte de dialogue Éditeur
de tâche de transfert de bases de données .

Options
Source File
Nom des fichiers de base de données sur le serveur source qui seront transférés.
LeFichier source est en lecture seule.

Dossier source
Dossier du serveur source où se trouvent les fichiers de base de données à transférer.
LeDossier source est en lecture seule.

Partage de fichiers réseau


Dossier réseau partagé du serveur source à partir duquel les fichiers de base de données
seront transférés. Utilisez le Partage de fichiers réseau lors du transfert d'une base de
données en mode hors connexion en spécifiant DatabaseOffline pour Méthode dans la
page Bases de données de la boîte de dialogue Éditeur de tâche de transfert de bases
de données .

Entrez l’emplacement du partage de fichiers réseau ou cliquez sur le bouton Parcourir


(...) pour le rechercher.
Lors du transfert d'une base de données en mode hors connexion, les fichiers de base
de données sont copiés dans l'emplacement du Partage de fichiers réseau sur le
serveur source avant d'être transférés sur le serveur de destination.

Fichiers de la base de données de destination


Utilisez la boîte de dialogue Fichiers de la base de données de destination pour afficher
ou modifier le nom et l'emplacement des fichiers de la base de données sur le serveur
de destination ou pour spécifier un emplacement de fichier réseau pour la tâche de
transfert de bases de données.

Pour remplir automatiquement cette boîte de dialogue avec le nom et l'emplacement


des fichiers de base de données sur le serveur source, spécifiez d'abord
SourceConnection, SourceDatabaseNameet SourceDatabaseFiles dans la page Bases
de données de la boîte de dialogue Éditeur de tâche de transfert de bases de données
.

Options
Fichier de destination
Nom des fichiers de la base de données transférés sur le serveur de destination.

Entrez le nom du fichier ou cliquez dessus pour le modifier.

Dossier de destination
Dossier du serveur de destination où les fichiers de la base de données seront
transférés.

Entrez le chemin d'accès au dossier, cliquez dessus pour le modifier ou cliquez sur
Parcourir pour rechercher le dossier dans lequel transférer les fichiers de la base de
données sur le serveur de destination.

Partage de fichiers réseau


Dossier réseau partagé du serveur de destination où les fichiers de la base de données
seront transférés. Utilisez le Partage de fichiers réseau lors du transfert d'une base de
données en mode hors connexion en spécifiant DatabaseOffline pour Méthode dans la
page Bases de données de la boîte de dialogue Éditeur de tâche de transfert de bases
de données .

Entrez l'emplacement du partage de fichiers réseau ou cliquez sur le bouton Parcourir


pour le rechercher.
Lors du transfert d'une base de données en mode hors connexion, les fichiers de base
de données sont copiés dans l'emplacement du Partage de fichiers réseau avant d'être
transférés dans l'emplacement Dossier de destination .
Tâche de transfert de messages d'erreur
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de transfert de messages d’erreur transfère un ou plusieurs messages d’erreur


SQL Server définis par l’utilisateur entre des instances de SQL Server. Les messages
définis par l'utilisateur sont des messages avec un identificateur supérieur ou égal à 50
000. Les messages dont l'identificateur est inférieur à 50 000 sont des messages d'erreur
système qui ne peuvent pas être transférés à l'aide de la tâche de transfert de messages
d'erreur.

La tâche de transfert de messages d'erreur peut être configurée pour transférer tous les
messages d'erreur ou uniquement les messages d'erreur spécifiés. Les messages
d'erreur définis par l'utilisateur peuvent être disponibles en différentes langues et la
tâche peut être configurée pour ne transférer que les messages dans des langues
sélectionnées. Une version us_english du message qui utilise la page de codes 1033 doit
exister sur le serveur de destination avant que vous ne puissiez transférer d'autres
versions linguistiques du message vers ce serveur.

La table sysmessages dans la base de données master contient tous les messages
d’erreur (système et définis par l’utilisateur) utilisés par SQL Server.

Les messages définis par l'utilisateur à transférer peuvent déjà exister à l'emplacement
de destination. Un message d'erreur est défini comme message d'erreur dupliqué si
l'identificateur et la langue sont identiques. La tâche de transfert de messages d'erreur
peut être configurée pour traiter les messages d'erreur existants de différentes manières
:

Remplacer les messages d'erreur existants.

Provoquer l'échec de la tâche lorsque des messages dupliqués existent.

Ignorer les messages d'erreur dupliqués.

À l'exécution, la tâche de transfert de messages d'erreur se connecte aux serveurs


source et destination en utilisant un ou deux gestionnaires de connexions SMO. Le
gestionnaire de connexions SMO est configuré indépendamment de la tâche de
transfert de messages d'erreur, puis il est référencé dans celle-ci. Le gestionnaire de
connexions SMO spécifie le serveur et le mode d'authentification à utiliser lors de l'accès
au serveur. Pour plus d'informations, consultez SMO Connection Manager.
La tâche de transfert de messages d’erreur prend en charge une source et une
destination SQL Server . Chacune des versions peut être utilisée indifféremment comme
source ou comme destination.

Événements
La tâche génère un événement d'information qui indique le nombre de messages
d'erreur transférés.

La tâche de transfert de messages d'erreur n'indique pas les stades intermédiaires de


l'avancement du transfert des messages d'erreur : elle signale la tâche comme réalisée à
0 % ou à 100 %.

Valeur d'exécution
La valeur d’exécution, définie dans la propriété ExecutionValue de la tâche, retourne le
nombre de messages d’erreur ayant été transférés. En affectant une variable définie par
l’utilisateur à la propriété ExecValueVariable de la tâche de transfert de messages
d’erreur, les informations sur le transfert de messages d’erreur peuvent être rendues
disponibles aux autres objets du package. Pour plus d’informations, consultez Variables
Integration Services (SSIS) et Utiliser des variables dans des packages.

Entrées du journal
La tâche de transfert de messages d'erreur comporte les entrées de journal
personnalisées suivantes :

TransferErrorMessagesTaskStartTransferringObjects Cette entrée du journal indique


que le transfert a commencé. L'entrée du journal inclut l'heure de début.

TransferErrorMessagesTaskFinishedTransferringObjects Cette entrée du journal


indique que le transfert est terminé. L'entrée du journal inclut l'heure de fin.

De plus, une entrée de journal pour l’événement OnInformation indique le nombre de


messages d’erreur qui ont été transférés, et une entrée de journal pour l’événement
OnWarning est générée pour chaque message d’erreur remplacé à l’emplacement de
destination.

Sécurité et autorisations
Pour créer de nouveaux messages d'erreur, l'utilisateur qui exécute le package doit être
un membre du rôle de serveur sysadmin ou serveradmin sur le serveur de destination.

Configuration de la tâche de transfert de


messages d'erreur
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Page Expressions

Pour plus d'informations sur la définition par programmation de ces propriétés, cliquez
sur la rubrique suivante :

TransferErrorMessagesTask

Tâches associées
Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Éditeur de tâche de transfert de messages


d'erreur (page Général)
Utilisez la page Général de la boîte de dialogue Éditeur de tâche de transfert de
messages d'erreur pour donner un nom et une description à la tâche de transfert de
messages d'erreur. La tâche de transfert de messages d’erreur transfère un ou plusieurs
messages d’erreur SQL Server définis par l’utilisateur entre des instances de SQL Server.

Options
Nom
Donnez un nom unique à la tâche de transfert de messages d'erreur. Ce nom sert
d'étiquette à l'icône de la tâche.
7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Entrez une description de la tâche de transfert de messages d'erreur.

Éditeur de tâche de transfert de messages


d'erreur (page Messages)
Utilisez la page Messages de la boîte de dialogue Éditeur de tâche de transfert de
messages d’erreur pour spécifier les propriétés de copie d’un ou plusieurs messages
d’erreur SQL Server définis par l’utilisateur d’une instance de SQL Server à une autre.

Options
SourceConnection
Sélectionnez un gestionnaire de connexions SMO dans la liste ou cliquez sur <Nouvelle
connexion...> pour créer une connexion au serveur source.

DestinationConnection
Sélectionnez un gestionnaire de connexions SMO dans la liste, ou cliquez sur <Nouvelle
connexion...> pour créer une connexion au serveur de destination.

IfObjectExists
Déterminez si la tâche doit remplacer les messages d'erreur définis par l'utilisateur
existants, ignorer les messages existants ou échouer si des messages d'erreur du même
nom existent déjà sur le serveur de destination.

TransferAllErrorMessages
Déterminez si la tâche doit copier du serveur source au serveur de destination tous les
messages définis par l'utilisateur ou seulement ceux spécifiés.

Cette propriété dispose des options répertoriées dans le tableau suivant :

Valeur Description

True Copie tous les messages définis par l'utilisateur.

False Copie uniquement les messages définis par l'utilisateur spécifiés.


ErrorMessagesList
Cliquez sur le bouton Parcourir (...) pour sélectionner les messages d’erreur à copier.

7 Notes

Vous devez spécifier SourceConnection avant de pouvoir sélectionner les messages


d’erreur à copier.

ErrorMessageLanguagesList
Cliquez sur le bouton Parcourir (...) pour sélectionner les langues pour lesquelles copier
les messages d’erreur définis par l’utilisateur sur le serveur de destination. Une version
us_english (page de codes 1033) du message doit exister sur le serveur de destination
avant de pouvoir transférer vers ce serveur d'autres versions de langue du message.

7 Notes

Vous devez spécifier SourceConnection avant de pouvoir sélectionner les messages


d’erreur à copier.

Voir aussi
Tâches Integration Services
Flux de contrôle
Tâche de transfert de travaux
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de transfert de travaux transfère un ou plusieurs travaux de l'Agent SQL Server


entre des instances de SQL Server.

La tâche de transfert de travaux peut être configurée pour transférer tous les travaux ou
seulement certains travaux spécifiés. Vous pouvez également spécifier si les travaux
transférés sont activés lorsqu'ils arrivent à destination.

Les travaux à transférer peuvent déjà exister à l'emplacement de destination. La tâche de


transfert de travaux peut être configurée pour traiter les travaux existants de différentes
manières :

Remplacer les travaux existants.

Provoquer l'échec de la tâche lorsque des travaux dupliqués existent.

Ignorer les travaux dupliqués.

À l'exécution, la tâche de transfert de travaux se connecte aux serveurs source et


destination en utilisant un ou deux gestionnaires de connexions SMO. Le gestionnaire
de connexions SMO est configuré indépendamment de la tâche de transfert de travaux,
puis il est référencé dans celle-ci. Le gestionnaire de connexions SMO spécifie le serveur
et le mode d'authentification à utiliser lors de l'accès au serveur. Pour plus
d'informations, consultez SMO Connection Manager.

Transfert de travaux entre des instances de SQL


Server
La tâche de transfert de travaux prend en charge une source et une destination SQL
Server . Chacune des versions peut être utilisée indifféremment comme source ou
comme destination.

Événements
La tâche de transfert de travaux génère un événement d'information qui indique le
nombre de travaux transférés et un événement d'avertissement quand un travail est
remplacé. La tâche n'indique pas les stades intermédiaires de l'avancement du transfert
de travaux ; elle ne signale qu'une réalisation à 0 % ou à 100 %.

Valeur d'exécution
La valeur d'exécution, définie dans la propriété ExecutionValue de la tâche, renvoie le
nombre de travaux transférés. En affectant une variable définie par l’utilisateur à la
propriété ExecValueVariable de la tâche de transfert de travaux, les informations sur le
transfert de travaux deviennent accessibles aux autres objets du package. Pour plus
d’informations, consultez Variables Integration Services (SSIS) et Utiliser des variables
dans des packages.

Entrées du journal
La tâche de transfert de travaux comporte les entrées du journal personnalisées
suivantes :

TransferJobsTaskStarTransferringObjects Cette entrée de journal indique que le


transfert a démarré. L'entrée du journal inclut l'heure de début.

TransferJobsTaskFinishedTransferringObjects Cette entrée de journal indique que le


transfert est terminé. L'entrée du journal inclut l'heure de fin.

En outre, une entrée de journal pour l'événement OnInformation indique le nombre de


travaux qui ont été transférés et une entrée de journal pour l'événement OnWarning est
générée pour chaque travail remplacé à l'emplacement de destination.

Sécurité et autorisations
Pour transférer des travaux, l'utilisateur doit être un membre du rôle serveur fixe
sysadmin ou de l'un des rôles de base de données fixes de l'Agent SQL Server sur la
base de données msdb à la fois sur les instances source et destination de SQL Server.

Configuration de la tâche de transfert de


travaux
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.
Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Page Expressions

Pour plus d'informations sur la définition par programmation de ces propriétés, cliquez
sur l'une des rubriques suivantes :

TransferJobsTask

Tâches associées
Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Éditeur de tâche de transfert de travaux (page


Général)
Utilisez la page Général de la boîte de dialogue Éditeur de tâche de transfert de
travaux pour donner un nom et une description à la tâche de transfert de travaux.

7 Notes

Seuls les membres du rôle serveur fixe sysadmin ou l'un des rôles de base de
données fixe de l'Agent SQL Server sur le serveur de destination peuvent y créer
des travaux. Pour accéder à des travaux sur le serveur source, les utilisateurs
doivent au moins y être membres du rôle de base de données fixe
SQLAgentUserRole . Pour plus d’informations sur les rôles de base de données fixe
de SQL Server Agent et leurs autorisations, consultez Rôles de base de données
fixe de l’Agent SQL Server.

Options
Nom
Donnez un nom unique à la tâche de transfert de travaux. Ce nom sert d'étiquette à
l'icône de la tâche.

7 Notes
Les noms de tâche doivent être uniques dans un package.

Description
Entrez une description de la tâche de transfert de travaux.

Éditeur de tâche de transfert de travaux (page


Travaux)
Utilisez la page Travaux de la boîte de dialogue Éditeur de tâche de transfert de
travaux pour spécifier les propriétés de copie d’un ou plusieurs travaux SQL Server
Agent d’une instance de SQL Server à une autre.

7 Notes

Pour accéder à des travaux sur le serveur source, les utilisateurs doivent au moins y
être membres du rôle de base de données fixe SQLAgentUserRole . Pour créer des
travaux sur le serveur de destination, l’utilisateur doit être membre du rôle serveur
fixe sysadmin ou de l’un des rôles de base de données fixe de SQL Server Agent.
Pour plus d’informations sur les rôles de base de données fixe de SQL Server Agent
et leurs autorisations, consultez Rôles de base de données fixe de l’Agent SQL
Server.

Options
SourceConnection
Sélectionnez un gestionnaire de connexions SMO dans la liste ou cliquez sur <Nouvelle
connexion...> pour créer une connexion au serveur source.

DestinationConnection
Sélectionnez un gestionnaire de connexions SMO dans la liste ou cliquez sur <Nouvelle
connexion...> pour créer une connexion au serveur de destination.

TransferAllJobs
Déterminez si la tâche doit copier du serveur source au serveur de destination tous les
travaux de l'Agent SQL Server ou seulement ceux spécifiés.

Cette propriété dispose des options répertoriées dans le tableau suivant :

Valeur Description
Valeur Description

True Copie tous les travaux.

False Copie uniquement les travaux spécifiés.

JobsList
Cliquez sur le bouton Parcourir (...) pour sélectionner les travaux à copier. Un travail au
moins doit être sélectionné.

7 Notes

Spécifiez SourceConnection avant de sélectionner les travaux à copier.

L’option JobsList n’est pas disponible quand TransferAllJobs a la valeur True.

IfObjectExists
Sélectionnez la façon dont la tâche doit gérer les travaux de même nom que ceux
existant sur le serveur de destination.

Cette propriété dispose des options répertoriées dans le tableau suivant :

Valeur Description

FailTask La tâche échoue si des travaux de même nom existent déjà sur le serveur de
destination.

Remplacer La tâche remplace les travaux de même nom sur le serveur de destination.

Skip La tâche ignore les travaux de même nom qui existent sur le serveur de destination.

EnableJobsAtDestination
Déterminez si les travaux copiés sur le serveur de destination doivent être activés.

Cette propriété dispose des options répertoriées dans le tableau suivant :

Valeur Description

True Active les travaux sur le serveur de destination.

False Désactive les travaux sur le serveur de destination.

Voir aussi
Tâches Integration Services
Flux de contrôle
Tâche de transfert de connexions
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de transfert de connexions transfère une ou plusieurs connexions entre des


instances de SQL Server.

Transférer des connexions entre des instances


de SQL Server
La tâche de transfert de connexions prend en charge une source et une destination SQL
Server .

Événements
La tâche génère un événement d'information qui indique le nombre de connexions
transférées et un événement d'avertissement quand une connexion est remplacée.

La tâche de transfert des connexions n'indique pas les stades intermédiaires de


l'avancement du transfert des connexions : elle signale la tâche comme réalisée à 0 % ou
à 100 %.

Valeur d'exécution
La valeur d’exécution, définie dans la propriété ExecutionValue de la tâche, retourne le
nombre de connexions transférées. En affectant une variable définie par l’utilisateur à la
propriété ExecValueVariable de la tâche de transfert de connexions, les informations sur
le transfert des connexions peuvent être rendues disponibles pour d’autres objets du
package. Pour plus d’informations, consultez Variables Integration Services (SSIS) et
Utiliser des variables dans des packages.

Entrées du journal
La tâche de transfert des connexions comporte les entrées du journal personnalisées
suivantes :

TransferLoginsTaskStarTransferringObjects Cette entrée de journal indique que le


transfert a commencé. L'entrée du journal inclut l'heure de début.
TransferLoginsTaskFinishedTransferringObjects Cette entrée de journal indique que
le transfert est terminé. L'entrée du journal inclut l'heure de fin.

De plus, une entrée de journal pour l’événement OnInformation indique le nombre de


connexions qui ont été transférées, et une entrée de journal pour l’événement
OnWarning est générée pour chaque connexion remplacée à l’emplacement de
destination.

Sécurité et autorisations
Pour parcourir les connexions sur le serveur source et créer des connexions sur le
serveur de destination, l'utilisateur doit être un membre du rôle de serveur sysadmin sur
les deux serveurs.

Configuration de la tâche de transfert des


connexions
La tâche de transfert de connexions peut être configurée pour transférer toutes les
connexions, seulement les connexions spécifiées ou toutes les connexions ayant accès à
une base de données spécifiée. La connexion sa ne peut pas être transférée. La
connexion sa peut être renommée ; cependant, la connexion sa renommée ne peut pas
être transférée non plus.

Vous pouvez également indiquer si la tâche copie les identificateurs de sécurité (SID)
associés aux connexions. Si la tâche de transfert des connexions est utilisée en
conjonction avec la tâche de transfert des bases de données, les SID doivent être copiés
à l'emplacement de destination ; si ce n'est pas le cas, les connexions transférées ne sont
pas reconnues par la base de données de destination.

À l'emplacement de destination, les connexions transférées sont désactivées et des mots


de passe aléatoires leur sont affectés. Un membre du rôle sysadmin sur le serveur de
destination doit modifier les mots de passe et activer les connexions avant que ces
dernières puissent être utilisées.

Les connexions à transférer peuvent déjà exister à l'emplacement de destination. La


tâche de transfert des connexions peut être configurée pour traiter les connexions
existantes de différentes manières :

Remplacer les connexions existantes

Provoquer l'échec de la tâche lorsque des connexions dupliquées existent.


Ignorer les connexions dupliquées

À l'exécution, la tâche de transfert des connexions se connecte aux serveurs source et


destination en utilisant deux gestionnaires de connexions SMO. Les gestionnaires de
connexions SMO sont configurés indépendamment de la tâche de transfert des
connexions, puis référencés dans celle-ci. Les gestionnaires de connexions SMO
spécifient le serveur et le mode d'authentification à utiliser lors de l'accès au serveur.
Pour plus d'informations, consultez SMO Connection Manager.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Page Expressions

Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Configuration de la tâche de transfert des


connexions par programme
Pour plus d'informations sur la définition par programme de ces propriétés, cliquez sur
la rubrique suivante :

TransferLoginsTask

Éditeur de tâche de transfert de connexions


(page Général)
Utilisez la page Général de la boîte de dialogue Éditeur de tâche de transfert de
connexions pour donner un nom et une description à la tâche de transfert de
connexions.

Options
Nom
Donnez un nom unique à la tâche de transfert de connexions. Ce nom sert d'étiquette à
l'icône de la tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Entrez une description de la tâche de transfert de connexions.

Éditeur de tâche de transfert de connexions


(page Connexions)
Utilisez la page Connexions de la boîte de dialogue Éditeur de tâche de transfert de
connexions pour spécifier les propriétés de copie d'une ou plusieurs connexions SQL
Server d'une instance de SQL Server à une autre.

) Important

Lors de l'exécution de la tâche de transfert de connexions, les connexions sont


créées sur le serveur de destination avec des mots de passe aléatoires qui sont
désactivés. Pour utiliser ces connexions, un membre du rôle serveur fixe sysadmin
doit changer les mots de passe et les activer. La connexion sa ne peut pas être
transférée.

Options
SourceConnection
Sélectionnez un gestionnaire de connexions SMO dans la liste ou cliquez sur <Nouvelle
connexion...> pour créer une connexion au serveur source.

DestinationConnection
Sélectionnez un gestionnaire de connexions SMO dans la liste ou cliquez sur <Nouvelle
connexion...> pour créer une connexion au serveur de destination.

LoginsToTransfer
Sélectionnez les connexions SQL Server à copier du serveur source au serveur de
destination. Cette propriété dispose des options répertoriées dans le tableau suivant :

Valeur Description
Valeur Description

AllLogins Toutes les connexions SQL Server sur le serveur source seront
copiées sur le serveur de destination.

SelectedLogins Seules les connexions spécifiées dans LoginsList seront


copiées sur le serveur de destination.

AllLoginsFromSelectedDatabases Toutes les connexions des bases de données spécifiées dans


DatabasesList seront copiées sur le serveur de destination.

LoginsList
Sélectionnez les connexions sur le serveur source à copier sur le serveur de destination.
Cette option est disponible uniquement lorsque SelectedLogins est sélectionné pour
LoginsToTransfer.

DatabasesList
Sélectionnez les bases de données du serveur source qui contiennent les connexions à
copier sur le serveur de destination. Cette option est disponible uniquement lorsque
AllLoginsFromSelectedDatabases est sélectionné pour LoginsToTransfer.

IfObjectExists
Sélectionnez la façon dont la tâche doit gérer les connexions de même nom que celles
existant sur le serveur de destination.

Cette propriété dispose des options répertoriées dans le tableau suivant :

Valeur Description

FailTask La tâche échoue si des connexions de même nom existent déjà sur le serveur de
destination.

Remplacer La tâche remplace les connexions de même nom sur le serveur de destination.

Skip La tâche ignore les connexions de même nom qui existent sur le serveur de
destination.

CopySids
Déterminez si les identificateurs de sécurité associés aux connexions doivent être copiés
sur le serveur de destination. CopySids doit prendre la valeur True si la tâche de
transfert de connexions est utilisée en parallèle à la tâche de transfert de bases de
données. Dans le cas contraire, les connexions copiées ne seront pas reconnues par la
base de données transférée.
Tâche de transfert de procédures
stockées de master
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de transfert de procédures stockées de master transfère une ou plusieurs


procédures stockées définies par l’utilisateur entre les bases de données master sur des
instances de SQL Server. Pour transférer une procédure stockée à partir de la base de
données master , le propriétaire de la procédure doit être dbo.

La tâche de transfert de procédures stockées de master peut être configurée pour


transférer toutes les procédures stockées ou seulement des procédures spécifiées. Cette
tâche ne copie pas les procédures stockées système.

Les procédures stockées de master à transférer peuvent déjà exister à l'emplacement de


destination. La tâche de transfert de procédures stockées de master peut être
configurée pour traiter les procédures stockées existantes de différentes façons :

Remplacer les procédures stockées existantes.

Provoquer l'échec de la tâche lorsque des procédures stockées dupliquées existent.

Ignorer les procédures stockées dupliquées.

À l'exécution, la tâche de transfert des procédures stockées de master se connecte aux


serveurs source et destination en utilisant deux gestionnaires de connexions SMO. Les
gestionnaires de connexions SMO sont configurés indépendamment de la tâche de
transfert des procédures stockées de master, puis référencés dans celle-ci. Les
gestionnaires de connexions SMO spécifient le serveur et le mode d'authentification à
utiliser lors de l'accès au serveur. Pour plus d'informations, consultez SMO Connection
Manager.

Transfert de procédures stockées entre des


instances de SQL Server
La tâche de transfert de procédures stockées de master prend en charge une source et
une destination SQL Server .

Événements
La tâche génère un événement d'information qui indique le nombre de procédures
stockées transférées et un événement d'avertissement lorsque qu'une procédure
stockée est remplacée.

La tâche de transfert des procédures stockées de master n'indique pas les stades
intermédiaires de l'avancement du transfert des connexions : elle signale la tâche
comme réalisée à 0 % ou à 100 %.

Valeur d'exécution
La valeur d’exécution, définie dans la propriété ExecutionValue de la tâche, renvoie le
nombre de procédures stockées transférées. En affectant une variable définie par
l’utilisateur à la propriété ExecValueVariable de la tâche de transfert des procédures
stockées de master, les informations sur le transfert des procédures stockées peuvent
être rendues disponibles aux autres objets du package. Pour plus d’informations,
consultez Variables Integration Services (SSIS) et Utiliser des variables dans des
packages.

Entrées du journal
La tâche de transfert des procédures stockées comporte les entrées de journal
personnalisées suivantes :

TransferStoredProceduresTaskStartTransferringObjects Cette entrée du journal


indique que le transfert a commencé. L'entrée du journal inclut l'heure de début.

TransferSStoredProceduresTaskFinishedTransferringObjects Cette entrée du journal


indique que le transfert est terminé. L'entrée du journal inclut l'heure de fin.

En outre, une entrée de journal pour l’événement OnInformation indique le nombre de


procédures stockées qui ont été transférées et une entrée de journal pour l’événement
OnWarning est générée pour chaque procédure stockée remplacée à l’emplacement de
destination.

Sécurité et autorisations
L’utilisateur doit avoir l’autorisation d’afficher la liste des procédures stockées dans la
base de données master sur la source et doit être un membre du rôle serveur sysadmin
ou disposer de l’autorisation de créer des procédures stockées dans la base de données
master sur le serveur de destination.
Configuration de la tâche de transfert de
procédures stockées de master
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Page Expressions

Pour plus d'informations sur la définition par programmation de ces propriétés, cliquez
sur la rubrique suivante :

TransferStoredProceduresTask

Configuration par programmation de la tâche de


transfert de procédures stockées de master

Tâches associées
Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Éditeur de tâche de transfert de procédures


stockées de master (page Général)
Utilisez la page Général de la boîte de dialogue Éditeur de tâche de transfert de
procédures stockées de master pour nommer et décrire la tâche de transfert de
procédures stockées de master.

7 Notes

Cette tâche transfère seulement les procédures stockées définies par l’utilisateur
appartenant à dbo d’une base de données MASTER sur le serveur source vers une
base de données MASTER sur le serveur de destination. Les utilisateurs doivent
disposer de l’autorisation Créer une procédure dans la base de données MASTER
du serveur de destination ou être membres du rôle serveur fixe sysadmin sur le
serveur de destination pour y créer des procédures stockées.

Options
Nom
Donnez un nom unique à la tâche de transfert de procédures stockées de master. Ce
nom sert d'étiquette à l'icône de la tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Entrez une description de la tâche de transfert de procédures stockées de master.

Éditeur de tâche de transfert de procédures


stockées de master (page Procédures stockées)
La page Procédures stockées de la boîte de dialogue Éditeur de tâche de transfert de
procédures stockées de master permet de spécifier les propriétés de copie d’une ou
plusieurs procédures stockées définies par l’utilisateur de la base de données MASTER
d’une instance de SQL Server vers une base de données MASTER d’une autre instance
de SQL Server.

7 Notes

Cette tâche transfère seulement les procédures stockées définies par l’utilisateur
appartenant à dbo d’une base de données MASTER sur le serveur source vers une
base de données MASTER sur le serveur de destination. Les utilisateurs doivent
disposer de l’autorisation Créer une procédure dans la base de données MASTER
du serveur de destination ou être membres du rôle serveur fixe sysadmin sur le
serveur de destination pour y créer des procédures stockées.

Options
SourceConnection
Sélectionnez un gestionnaire de connexions SMO dans la liste ou cliquez sur <Nouvelle
connexion...> pour créer une connexion au serveur source.

DestinationConnection
Sélectionnez un gestionnaire de connexions SMO dans la liste, ou cliquez sur <Nouvelle
connexion...> pour créer une connexion au serveur de destination.

IfObjectExists
Sélectionnez la façon dont la tâche doit traiter les procédures stockées définies par
l’utilisateur qui existent déjà sous le même nom dans la base de données MASTER du
serveur de destination.

Cette propriété dispose des options répertoriées dans le tableau suivant :

Valeur Description

FailTask La tâche échoue si des procédures stockées du même nom existent déjà dans la
base de données MASTER du serveur de destination.

Remplacer La tâche remplace les procédures stockées du même nom dans la base de données
MASTER du serveur de destination.

Skip La tâche ignore les procédures stockées qui existent sous le même nom dans la base
de données MASTER du serveur de destination.

TransferAllStoredProcedures
Indiquez si toutes les procédures stockées définies par l’utilisateur dans la base de
données MASTER sur le serveur source doivent être copiées sur le serveur de
destination.

Valeur Description

True Copie toutes les procédures stockées définies par l’utilisateur dans la base de données
MASTER .

False Copie uniquement les procédures stockées spécifiées.

StoredProceduresList
Sélectionnez les procédures stockées définies par l’utilisateur dans la base de données
MASTER du serveur source qui doivent être copiées dans la base de données MASTER
de destination. Cette option est disponible uniquement lorsque
TransferAllStoredProcedures a la valeur False.

Voir aussi
Tâche de transfert d’objets SQL Server
Tâches Integration Services
Flux de contrôle
Tâche de transfert d'objets SQL Server
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de transfert d’objets SQL Server transfère un ou plusieurs types d’objets d’une
base de données SQL Server entre des instances de SQL Server. Par exemple, la tâche
peut copier des tables et des procédures stockées. Selon la version de SQL Server
utilisée comme source, différents types d’objets sont disponibles pour la copie. Par
exemple, seule une base de données SQL Server inclut des schémas et des agrégats
définis par l’utilisateur.

Objets à transférer
Les rôles de serveur, les rôles et les utilisateurs de la base de données spécifiée peuvent
être copiés, ainsi que les autorisations pour les objets transférés. En copiant les
utilisateurs, les rôles et les autorisations associés avec les objets, les objets transférés
peuvent être opérationnels immédiatement sur le serveur de destination.

Le tableau suivant présente la liste des types d'objets qui peuvent être copiés.

Object

Tables

Les vues

Procédures stockées

Fonctions définies par l'utilisateur

Valeurs par défaut

Types de données définis par l’utilisateur

Fonctions de partition

Schémas de partition

Schémas

Assemblys

Agrégats définis par l'utilisateur

Types définis par l'utilisateur


Object

Collection de schémas XML

Les types définis par l'utilisateur (UDT) qui ont été créés dans une instance de SQL
Server possèdent des dépendances avec les assemblys CLR (Common Language
Runtime). Si vous utilisez la tâche de transfert d'objets SQL Server pour transférer des
types UDT, vous devez également configurer la tâche de transfert d'objets dépendants.
Pour transférer des objets dépendants, définissez la propriété
IncludeDependentObjects sur True.

Options des tables


Lors de la copie de tables, vous pouvez indiquer les types des éléments associés aux
tables à inclure dans le processus de copie. Les types d'éléments suivants peuvent être
copiés avec la table associée :

Index

Déclencheurs

Index de texte intégral

Clés primaires

Clés étrangères

Vous pouvez également indiquer si le script généré par la tâche est au format Unicode.

Options de destination
Vous pouvez configurer la tâche de transfert d'objets SQL Server pour qu'elle inclue des
noms de schéma, des données, des propriétés étendues d'objets transférés et des objets
dépendants dans le transfert. Si des données sont copiées, la tâche peut remplacer les
données existantes ou les conserver.

Certaines options ne s'appliquent qu'à SQL Server. Par exemple, seul SQL Server prend
en charge les schémas.

Options de sécurité
La tâche de transfert d’objets SQL Server peut inclure des utilisateurs et rôles au niveau
de la base de données SQL Server de la source, des connexions SQL Server , ainsi que
les autorisations pour les objets transférés. Par exemple, le transfert peut inclure les
autorisations sur les tables transférées.

Transférer des objets entre des instances de


SQL Server
La tâche de transfert d'objets SQL Server prend en charge une source et une destination
SQL Server .

Événements
La tâche génère un événement d'information qui indique l'objet transféré et un
événement d'avertissement lorsque qu'un objet est remplacé. Un événement
d'information est également généré pour les actions telles que la troncation des tables
de base de données.

La tâche de transfert d’objets SQL Server n’indique pas les stades intermédiaires de
l’avancement du transfert des objets : elle signale uniquement la tâche comme réalisée à
0 % ou à 100 %.

Valeur d'exécution
La valeur d’exécution, stockée dans la propriété ExecutionValue de la tâche, retourne le
nombre d’objets transférés. En affectant une variable définie par l’utilisateur à la
propriété ExecValueVariable de la tâche de transfert d’objets SQL Server, les
informations sur le transfert d’objets peuvent être mises à la disposition d’autres objets
du package. Pour plus d’informations, consultez Variables Integration Services (SSIS) et
Utiliser des variables dans des packages.

Entrées du journal
La tâche de transfert d'objets SQL Server comporte les entrées de journal personnalisées
suivantes :

TransferSqlServerObjectsTaskStartTransferringObjects Cette entrée du journal


indique que le transfert a commencé. L'entrée du journal inclut l'heure de début.

TransferSqlServerObjectsTaskFinishedTransferringObjects Cette entrée du journal


indique que le transfert est terminé. L'entrée du journal inclut l'heure de fin.
En outre, une entrée de journal pour l’événement OnInformation indique le nombre
d’objets pour les types d’objet qui ont été sélectionnés pour le transfert, le nombre
d’objets transférés, ainsi que les actions telles que la troncation de tables lorsque des
données sont transférées avec les tables. Une entrée de journal pour l’événement
OnWarning est écrite pour chaque objet de destination remplacé.

Sécurité et autorisations
L'utilisateur doit avoir l'autorisation de parcourir les objets sur le serveur source et de
supprimer ou de créer des objets sur le serveur de destination. L'utilisateur doit en outre
avoir accès à la base de données spécifiée et aux objets de base de données.

Configuration de la tâche de transfert d'objets


SQL Server
La tâche de transfert d'objets SQL Server peut être configurée pour transférer tous les
objets, tous les objets d'un certain type, ou seulement les objets spécifiés d'un type. Par
exemple, vous pouvez choisir de ne copier que les tables sélectionnées dans la base de
données AdventureWorks.

Si la tâche de transfert d’objets SQL Server transfère des tables, vous pouvez spécifier les
types des objets associés aux tables à copier avec les tables. Par exemple, vous pouvez
spécifier que les clés primaires sont copiées avec les tables.

Pour améliorer la fonctionnalité des objets transférés, vous pouvez configurer la tâche
de transfert d'objets SQL Server pour qu'elle inclue des noms de schéma, des données,
des propriétés étendues d'objets transférés et des objets dépendants dans le transfert.
Lors de la copie de données, vous pouvez spécifier s'il faut remplacer ou ajouter les
données existantes.

À l’exécution, la tâche de transfert d’objets SQL Server se connecte aux serveurs source
et de destination en utilisant deux gestionnaires de connexions SMO. Les gestionnaires
de connexions SMO sont configurés indépendamment de la tâche de transfert d’objets
SQL Server , puis référencés dans la tâche de transfert d’objets SQL Server . Les
gestionnaires de connexions SMO spécifient le serveur et le mode d'authentification à
utiliser lors de l'accès au serveur. Pour plus d'informations, consultez SMO Connection
Manager.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.
Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Page Expressions

Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Configuration par programmation de la tâche


de transfert d'objets SQL Server
Pour plus d'informations sur la définition par programme de ces propriétés, cliquez sur
la rubrique suivante :

TransferSqlServerObjectsTask

Éditeur de tâche de transfert d'objets SQL


(page Général)
Utilisez la page Général de la boîte de dialogue Éditeur de tâche de transfert d'objets
SQL pour donner un nom et une description à la tâche de transfert d'objets SQL Server .

7 Notes

L’utilisateur qui crée la tâche de transfert d’objets SQL Server doit avoir les
autorisations suffisantes sur les objets du serveur source pour pouvoir les
sélectionner pour la copie, ainsi que l’autorisation d’accéder à la base de données
du serveur de destination où les objets seront transférés.

Options
Nom
Donnez un nom unique à la tâche de transfert d'objets SQL Server . Ce nom sert
d'étiquette à l'icône de la tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.


Description
Entrez une description de la tâche de transfert d'objets SQL Server .

Éditeur de tâche de transfert d'objets SQL


(page Objets)
Utilisez la page Objets de la boîte de dialogue Éditeur de tâche de transfert d’objets
SQL pour spécifier les propriétés de copie d’un ou plusieurs objets SQL Server d’une
instance de SQL Server à une autre. Les tables, les vues, les procédures stockées et les
fonctions définies par l’utilisateur représentent quelques exemples des objets SQL
Server que vous pouvez copier.

7 Notes

L’utilisateur qui crée la tâche de transfert d’objets SQL Server doit disposer des
autorisations suffisantes sur les objets du serveur source pour les sélectionner pour
la copie, ainsi que de l’autorisation d’accéder à la base de données du serveur de
destination où les objets seront transférés.

Options statiques
SourceConnection
Sélectionnez un gestionnaire de connexions SMO dans la liste ou cliquez sur <Nouvelle
connexion...> pour créer une connexion au serveur source.

SourceDatabase
Sélectionnez une base de données sur le serveur source à partir duquel les objets seront
copiés.

DestinationConnection
Sélectionnez un gestionnaire de connexions SMO dans la liste ou cliquez sur <Nouvelle
connexion...> pour créer une connexion au serveur de destination.

DestinationDatabase
Sélectionnez une base de données sur le serveur de destination dans lequel les objets
seront copiés.

DropObjectsFirst
Déterminez si les objets sélectionnés sont d'abord supprimés du serveur de destination
avant la copie.
IncludeExtendedProperties
Déterminez si les propriétés étendues sont incluses lorsque les objets sont copiés du
serveur source au serveur de destination.

CopyData
Déterminez si les données sont incluses lorsque les objets sont copiés du serveur source
au serveur de destination.

ExistingData
Spécifiez comment les données seront copiées sur le serveur de destination. Cette
propriété dispose des options répertoriées dans le tableau suivant :

Valeur Description

Replace Les données du serveur de destination seront remplacées.

Append Les données copiées à partir du serveur source seront ajoutées aux données existantes
sur le serveur de destination.

7 Notes

L’option ExistingData est disponible uniquement quand CopyData a la valeur True.

CopySchema
Déterminez si le schéma est copié pendant la tâche de transfert d’objets SQL Server .

7 Notes

CopySchema est disponible uniquement pour SQL Server.

UseCollation
Déterminez si le transfert des objets doit inclure le classement spécifié sur le serveur
source.

IncludeDependentObjects
Déterminez si la copie des objets sélectionnés inclut en cascade les autres objets qui
dépendent de ces objets sélectionnés pour la copie.

CopyAllObjects
Déterminez si la tâche copie tous les objets de la base de données source spécifiée ou
uniquement les objets sélectionnés. Si cette option a la valeur False, vous pouvez
sélectionner les objets à transférer et afficher les options dynamiques dans la section
CopyAllObjects.
ObjectsToCopy
Développez ObjectsToCopy pour spécifier les objets qui doivent être copiés de la base
de données source dans la base de données de destination.

7 Notes

ObjectsToCopy est disponible uniquement quand CopyAllObjects a la valeur False.

Les options de copie des types d’objets suivants sont prises en charge uniquement sur
SQL Server:

Assemblys

Fonctions de partition

Schémas de partition

Schémas

Fonctions d'agrégation définies par l'utilisateur

Types définis par l'utilisateur

Collections de schémas XML

CopyDatabaseUsers
Déterminez si les utilisateurs de la base de données doivent être inclus dans le transfert.

CopyDatabaseRoles
Déterminez si les rôles de la base de données doivent être inclus dans le transfert.

CopySqlServerLogins
Déterminez si les connexions SQL Server doivent être incluses dans le transfert.

CopyObjectLevelPermissions
Déterminez si les autorisations au niveau objet doivent être incluses dans le transfert.

CopyIndexes
Déterminez si les index doivent être inclus dans le transfert.

CopyTriggers
Déterminez si les déclencheurs doivent être inclus dans le transfert.

CopyFullTextIndexes
Déterminez si les index de texte intégral doivent être inclus dans le transfert.
CopyPrimaryKeys
Déterminez si les clés primaires doivent être incluses dans le transfert.

CopyForeignKeys
Déterminez si les clés étrangères doivent être incluses dans le transfert.

GenerateScriptsInUnicode
Déterminez si les scripts de transfert créés sont au format Unicode.

Options dynamiques

CopyAllObjects = False

CopyAllTables
Déterminez si la tâche copie toutes les tables de la base de données source spécifiée ou
uniquement les tables sélectionnées.

TablesList
Cliquez pour ouvrir la boîte de dialogue Sélectionner des tables .

CopyAllViews
Déterminez si la tâche copie toutes les vues de la base de données source spécifiée ou
uniquement les vues sélectionnées.

ViewsList
Cliquez pour ouvrir la boîte de dialogue Sélectionner des vues .

CopyAllStoredProcedures
Déterminez si la tâche copie toutes les procédures stockées définies par l'utilisateur
dans la base de données source spécifiée ou uniquement celles sélectionnées.

StoredProceduresList
Cliquez pour ouvrir la boîte de dialogue Sélectionner des procédures stockées .

CopyAllUserDefinedFunctions
Déterminez si la tâche copie toutes les fonctions définies par l'utilisateur dans la base de
données source spécifiée ou uniquement celles sélectionnées.

UserDefinedFunctionsList
Cliquez pour ouvrir la boîte de dialogue Sélectionner les fonctions définies par
l’utilisateur .

CopyAllDefaults
Déterminez si la tâche copie toutes les valeurs par défaut de la base de données source
spécifiée ou uniquement les valeurs par défaut sélectionnées.

DefaultsList
Cliquez pour ouvrir la boîte de dialogue Sélectionner les valeurs par défaut .

CopyAllUserDefinedDataTypes
Déterminez si la tâche copie tous les types de données définis par l'utilisateur dans la
base de données source spécifiée ou uniquement ceux sélectionnés.

UserDefinedDataTypesList
Cliquez pour ouvrir la boîte de dialogue Sélectionner les types de données définis par
l’utilisateur .

CopyAllPartitionFunctions
Déterminez si la tâche copie toutes les fonctions de partition définies par l'utilisateur
dans la base de données source spécifiée ou uniquement celles sélectionnées. Cette
option est prise en charge uniquement sur SQL Server.

PartitionFunctionsList
Cliquez pour ouvrir la boîte de dialogue Sélectionner les fonctions de partition .

CopyAllPartitionSchemes
Déterminez si la tâche copie tous les schémas de partition de la base de données source
spécifiée ou uniquement ceux sélectionnés. Cette option est prise en charge
uniquement sur SQL Server.

PartitionSchemesList
Cliquez pour ouvrir la boîte de dialogue Sélectionner les schémas de partition .

CopyAllSchemas
Déterminez si la tâche copie tous les schémas de la base de données source spécifiée ou
uniquement les schémas sélectionnés. Cette option est prise en charge uniquement sur
SQL Server.

SchemasList
Cliquez pour ouvrir la boîte de dialogue Sélectionner les schémas .

CopyAllSqlAssemblies
Déterminez si la tâche copie tous les assemblys SQL de la base de données source
spécifiée ou uniquement les assemblys SQL sélectionnés. Cette option est prise en
charge uniquement sur SQL Server.

SqlAssembliesList
Cliquez pour ouvrir la boîte de dialogue Sélectionner les assemblys SQL .
CopyAllUserDefinedAggregates
Déterminez si la tâche copie toutes les fonctions d'agrégation définies par l'utilisateur
dans la base de données source spécifiée ou uniquement celles sélectionnées. Cette
option est prise en charge uniquement sur SQL Server.

UserDefinedAggregatesList
Cliquez pour ouvrir la boîte de dialogue Sélectionner les fonctions d’agrégation
définies par l’utilisateur .

CopyAllUserDefinedTypes
Déterminez si la tâche copie tous les types définis par l'utilisateur dans la base de
données source spécifiée ou uniquement ceux sélectionnés. Cette option est prise en
charge uniquement sur SQL Server.

UserDefinedTypes
Cliquez pour ouvrir la boîte de dialogue Sélectionner les types définis par l’utilisateur .

CopyAllXmlSchemaCollections
Déterminez si la tâche copie toutes les collections de schémas XML de la base de
données source spécifiée ou uniquement celles sélectionnées. Cette option est prise en
charge uniquement sur SQL Server.

XmlSchemaCollectionsList
Cliquez pour ouvrir la boîte de dialogue Sélectionner les collections du schéma XML .

Voir aussi
Guide de référence des erreurs et des messages propres à Integration Services
Tâches Integration Services
Éditeur de tâche de transfert d'objets SQL (page Général)
Page Expressions
Formats de données pour l'importation en bloc ou l'exportation en bloc (SQL Server)
Considérations sur la sécurité pour une installation SQL Server
Sélectionner les objets à transférer
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez cette boîte de dialogue pour sélectionner les objets à transférer d'une instance
de SQL Server à une autre à l'aide d'une tâche de transfert Integration Services .

Pour spécifier le transfert de tous les objets, activez la case à cocher dans la ligne de titre
de la grille d'objets.

Pour choisir des objets spécifiques à transférer, activez la case à cocher dans la première
colonne de la ligne de la grille où l'objet est répertorié.

Voir aussi
Guide de référence des erreurs et des messages propres à Integration Services
Éditeur de tâche de transfert de travaux (page Général)
Éditeur de tâche de transfert de connexions (page Connexions)
Éditeur de tâche de transfert d'objets SQL (page Objets)
Éditeur de tâche de transfert de procédures stockées de master (page Procédures
stockées)
Éditeur de tâche de transfert de messages d'erreur (page Messages)
Tâche Mettre à jour les statistiques
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche Mettre à jour les statistiques met à jour les informations sur la distribution des
valeurs de clé pour un ou plusieurs groupes de statistiques (collections) dans la table ou
la vue indexée spécifiées. Pour plus d’informations, consultez Statistiques.

La tâche Mettre à jour les statistiques permet à un package de mettre à jour les
statistiques d'une ou plusieurs bases de données. Si la tâche met à jour uniquement les
statistiques d'une base de données, vous pouvez choisir les vues ou les tables
concernées par cette mise à jour. Vous pouvez configurer la mise à jour de manière à
actualiser toutes les statistiques ou uniquement celles des colonnes ou des index.

Cette tâche encapsule une instruction UPDATE STATISTICS, qui comprend les clauses et
les arguments suivants :

Argument nom_table ou nom_vue .

Si la mise à jour s'applique à toutes les statistiques, la clause WITH ALL est
implicite.

Si la mise à jour s'applique uniquement aux colonnes, la clause WITH COLUMN est
incluse.

Si la mise à jour s'applique uniquement aux index, la clause WITH INDEX est
incluse.

Si la tâche Mettre à jour les statistiques met à jour les statistiques dans plusieurs bases
de données, elle exécute plusieurs instructions UPDATE STATISTICS, à raison d'une pour
chaque table ou vue. Toutes les instances de l’instruction UPDATE STATISTICS utilisent la
même clause, mais différentes valeurs pour nom_table ou pour nom_vue . Pour plus
d’informations, consultez CREATE STATISTICS (Transact-SQL) et UPDATE STATISTICS
(Transact-SQL).

) Important

Le temps que prend la tâche à créer l'instruction Transact-SQL qu'elle exécute est
proportionnel au nombre de statistiques qu'elle met à jour. Si la tâche est
configurée de manière à mettre à jour les statistiques de toutes les tables et vues
d'une base de données avec un grand nombre d'index ou à mettre à jour les
statistiques de plusieurs bases de données, elle peut prendre beaucoup de temps
pour générer l'instruction Transact-SQL.

Configuration de la tâche Mettre à jour les


statistiques
Vous pouvez définir les propriétés par le biais du concepteur SSIS . Cette tâche se trouve
dans la section Tâches du plan de maintenance de la boîte à outils du concepteur SSIS .

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Tâche Mettre à jour les statistiques (Plan de maintenance)

Tâches associées
Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Voir aussi
Tâches Integration Services
Flux de contrôle
Tâche de service Web
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de service Web exécute une méthode de service Web. Vous pouvez utiliser la
tâche de service Web pour :

Écrire dans une variable les valeurs renvoyées par une méthode de service Web.
Vous pouvez par exemple obtenir la température la plus élevée de la journée à
partir d'une méthode de service Web, puis utiliser cette valeur pour mettre à jour
une variable utilisée dans une expression qui définit une valeur de colonne.

Écrire dans un fichier les valeurs renvoyées par une méthode de service Web. Une
liste de clients potentiels peut par exemple être enregistrée dans un fichier qui est
ensuite utilisé comme source de données dans un package qui nettoie les données
avant de les écrire dans une base de données.

Fichier WSDL
La tâche de service Web utilise un gestionnaire de connexions HTTP pour se connecter
au service Web. Ce gestionnaire est configuré séparément de la tâche de service Web et
est référencé dans la tâche. Le gestionnaire de connexions HTTP spécifie les paramètres
proxy du serveur comme l'URL du serveur, les informations d'identification permettant
d'accéder au serveur de services Web et la durée du délai d'attente. Pour plus
d’informations, consultez Gestionnaire de connexions HTTP.

) Important

Le gestionnaire de connexions HTTP prend en charge uniquement l'authentification


anonyme et l'authentification de base. Il ne prend pas en charge l'authentification
Windows.

Le gestionnaire de connexions HTTP peut pointer vers un site Web ou un fichier WSDL
(Web Service Description Language). L'URL du gestionnaire de connexions HTTP qui
pointe vers un fichier WSDL contient le paramètre ?WSDL , par exemple
https://MyServer/MyWebService/MyPage.asmx?WSDL .

Le fichier WSDL doit être disponible localement pour pouvoir configurer la tâche de
service web à l’aide de la boîte de dialogue Éditeur de tâche de service Web du
concepteur SSIS .

Si le gestionnaire de connexions HTTP pointe vers un site Web, le fichier WSDL doit
être copié manuellement sur un ordinateur local.

Si le gestionnaire de connexions HTTP pointe vers un fichier WSDL, ce fichier peut


être téléchargé à partir du site Web vers un fichier local par la tâche de service
Web.

Le fichier WSDL énumère les méthodes offertes par le service Web, les paramètres
d'entrée requis par les méthodes, les réponses renvoyées par les méthodes et la
manière de communiquer avec le service Web.

Si la méthode utilise des paramètres d'entrée, la tâche de service Web requiert des
valeurs de paramètres. Par exemple, une méthode de service Web qui recommande la
longueur des skis que vous devez acheter en fonction de votre taille exige que votre
taille soit soumise dans un paramètre d'entrée. Les valeurs de paramètres peuvent être
fournies par des chaînes définies dans la tâche ou par des variables définies dans
l'étendue de la tâche ou un conteneur parent. L'avantage d'utiliser des variables est de
vous permettre de mettre à jour dynamiquement les valeurs de paramètres en utilisant
des scripts ou des configurations de package. Pour plus d’informations, consultez
Variables Integration Services (SSIS) et Configurations de package.

De nombreuses méthodes de service Web n'utilisent pas de paramètres d'entrée. Par


exemple, une méthode de service Web qui obtient le nom des présidents dont le mois
de naissance correspond au mois en cours ne requiert pas de paramètre d'entrée car le
service Web peut déterminer le mois en cours localement.

Les résultats de la méthode de service Web peuvent être écrits dans une variable ou
dans un fichier. Vous pouvez utiliser le gestionnaire de connexions de fichiers pour
spécifier le fichier ou indiquer le nom de la variable dans laquelle écrire les résultats.
Pour plus d’informations, consultez Gestionnaire de connexions de fichier et Variables
Integration Services (SSIS).

Messages de journalisation personnalisés


disponibles dans la tâche de service Web
Le tableau suivant répertorie les entrées de journal personnalisées de la tâche de service
Web. Pour plus d’informations, consultez Journalisation d’Integration Services (SSIS).

Entrée du journal Description


Entrée du journal Description

WSTaskBegin La tâche a commencé à accéder à un service Web.

WSTaskEnd La tâche a terminé une méthode de service Web.

WSTaskInfo Donne des informations détaillées relatives à la tâche.

Configuration de la tâche de service Web


Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Page Expressions

Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Configuration par programmation de la tâche


de service web
Pour plus d'informations sur la définition par programmation de ces propriétés, cliquez
sur l'une des rubriques suivantes :

WebServiceTask

Éditeur de tâche de service Web (page Général)


Utilisez la page Général de la boîte de dialogue Éditeur de tâche de service Web pour
définir un gestionnaire de connexions HTTP, spécifier l’emplacement du fichier WSDL
(Web Services Description Language) qu’utilise la tâche de service web, décrire la tâche
de service web et télécharger le fichier WSDL.

Options
HTTPConnection
Sélectionnez un gestionnaire de connexions dans la liste ou cliquez sur <Nouvelle
connexion...> pour en créer un.

) Important

Le gestionnaire de connexions HTTP prend en charge uniquement l'authentification


anonyme et l'authentification de base. Il ne prend pas en charge l'authentification
Windows.

Rubriques connexes : Gestionnaire de connexions HTTP, Éditeur du gestionnaire de


connexions HTTP (Page Serveur)

WSDLFile
Tapez le chemin d’accès qualifié complet d’un fichier WSDL qui est en local sur
l’ordinateur ou cliquez sur le bouton Parcourir (...) et recherchez ce fichier.

Si vous avez déjà téléchargé manuellement le fichier WSDL sur l'ordinateur,


sélectionnez-le. Toutefois, si le fichier WSDL n'a pas encore été téléchargé, procédez
comme suit :

Créez un fichier vide ayant l'extension de nom de fichier .wsdl.

Sélectionnez ce fichier vide pour l’option WSDLFile .

Affectez à OverwriteWSDLFile la valeur True pour permettre le remplacement du


fichier vide par le fichier WSDL réel.

Cliquez sur Télécharger WSDL pour télécharger le fichier WSDL réel et remplacer le
fichier vide.

7 Notes

L’option Télécharger WSDL n’est pas activée tant que vous n’avez pas indiqué
le nom d’un fichier local existant dans la zone WSDLFile .

OverwriteWSDLFile
Indiquez si le fichier WSDL de la tâche de service Web peut être remplacé.

Si vous projetez de télécharger le fichier WSDL à l’aide du bouton Télécharger WSDL ,


définissez cette valeur sur True.

Nom
Fournissez un nom unique pour la tâche de service Web. Ce nom sert d'étiquette à
l'icône de la tâche.
7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Entrez une description de la tâche de service Web.

Télécharger WSDL
Téléchargez le fichier WSDL.

Ce bouton n’est pas activé tant que vous n’avez pas indiqué le nom d’un fichier local
existant dans la zone WSDLFile .

Éditeur de tâche de service Web (page Entrée)


Utilisez la page Entrée de l' Éditeur de tâche de service Web pour définir le service
Web, la méthode Web et les valeurs à fournir à la méthode Web comme entrée. Vous
pouvez fournir les valeurs en tapant des chaînes directement dans la colonne Valeur ou
en y sélectionnant des variables.

Options
Service
Sélectionnez un service Web dans la liste pour l'utiliser afin d'exécuter la méthode Web.

Méthode
Dans la liste, sélectionnez la méthode Web que doit exécuter la tâche.

WebMethodDocumentation
Entrez la description de la méthode web ou cliquez sur le bouton Parcourir (...) et entrez
la description dans la boîte de dialogue Documentation de la méthode Web.

Nom
Contient la liste des noms des entrées dans la méthode Web.

Type
Indique le type des données des entrées.

7 Notes

La tâche de service Web prend uniquement en charge les paramètres des types de
données suivants : les types de primitives tels que les entiers et les chaînes ; les
tableaux et séquences de types de primitives, ainsi que les énumérations.

Variable
Activez les cases à cocher afin d'utiliser des variables pour fournir les entrées.

Valeur
Si les cases Variable sont cochées, sélectionnez les variables dans la liste pour fournir les
entrées ; sinon, tapez les valeurs à utiliser en guise d’entrées.

Éditeur de tâche de service Web (page Sortie)


Utilisez la page Sortie de la boîte de dialogue Éditeur de tâche de service Web pour
définir l’emplacement de stockage du résultat retourné par la méthode web.

Options statiques
OutputType
Sélectionnez le type de stockage à utiliser pour stocker le résultat. Cette propriété
dispose des options répertoriées dans le tableau suivant.

Valeur Description

Connexion de Stocke le résultat dans un fichier. Cette valeur affiche l’option dynamique
fichiers Fichier.

Variable Stocke le résultat dans une variable. Cette valeur affiche l’option dynamique
Variable.

Options dynamiques OutputType

OutputType = Connexion de fichiers


File
Sélectionnez un gestionnaire de connexions de fichiers dans la liste ou cliquez sur
<Nouvelle connexion...> pour en créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

OutputType = Variable
Variable
Sélectionnez une variable dans la liste ou cliquez sur <Nouvelle variable...> pour en
créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable

Contenu associé
Vidéo, Guide pratique pour appeler un service web à l’aide de la tâche Service web
(vidéo liée à SQL Server) sur technet.microsoft.com.
Tâche Lecteur de données WMI
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche Lecteur de données WMI exécute des requêtes au moyen du langage de


requête WMI (Windows Management Instrumentation) qui retournent des informations
à partir de WMI sur un système informatique. Vous pouvez utiliser la tâche Lecteur de
données WMI pour effectuer les opérations suivantes :

Interrogation des journaux des événements Windows sur un ordinateur local ou


distant et écriture des informations dans un fichier ou une variable.

Obtention d'informations sur la présence, l'état ou les propriétés de composants


matériels, puis utilisation de ces informations pour déterminer si d'autres tâches du
flux de contrôle doivent être exécutées.

Obtention d'une liste d'applications et détermination de la version de chaque


application installée.

Vous pouvez configurer la tâche Lecteur de données WMI de plusieurs manières :

Spécifiez le gestionnaire de connexions WMI à utiliser.

Spécifiez la source de la requête WQL. La requête peut être stockée dans une
propriété de tâche ou en dehors de la tâche, dans une variable ou un fichier.

Définissez le format des résultats de requêtes WQL. La tâche prend en charge un


format de table, de paire nom/valeur de propriété ou de valeur de propriété.

Spécifiez la destination de la requête. La destination peut être une variable ou un


fichier.

Indiquez si les résultats sont ajoutés à la destination de la requête ou si celle-ci est


remplacée ou conservée.

Si la source ou la destination est un fichier, la tâche Lecteur de données WMI utilise un


gestionnaire de connexions de fichiers pour se connecter au fichier. Pour plus
d'informations, consultez Flat File Connection Manager.

La tâche Lecteur de données WMI utilise un gestionnaire de connexions WMI pour se


connecter au serveur à partir duquel elle lit les informations WMI. Pour plus
d'informations, consultez WMI Connection Manager.
Requête WQL
WQL est un dialecte de SQL avec des extensions qui permettent de prendre en charge la
notification d'événement WMI et d'autres fonctionnalités spécifiques à WMI. Pour plus
d'informations sur WQL, consultez la documentation Windows Management
Instrumentation dans MSDN Library.

7 Notes

Les classes WMI varient d'une version de Windows à l'autre.

La requête WQL suivante retourne des entrées dans le journal des événements
d'application.

SELECT * FROM Win32_NTLogEvent WHERE LogFile = 'Application' AND


(SourceName='SQLISService' OR SourceName='SQLISPackage') AND TimeGenerated >
'20050117'

La requête WQL suivante retourne des informations sur les disques logiques.

SELECT FreeSpace, DeviceId, Size, SystemName, Description FROM


Win32_LlogicalDisk

La requête WQL suivante retourne une liste des mises à jour QFE (Quick Fix Engineering)
du système d'exploitation.

Select * FROM Win32_QuickFixEngineering

Messages de journalisation personnalisés


disponibles dans la tâche Lecteur de données
WMI
Le tableau suivant répertorie les entrées de journal personnalisées de la tâche Lecteur
de données WMI. Pour plus d’informations, consultez Journalisation d’Integration
Services (SSIS).

Entrée du journal Description

WMIDataReaderGettingWMIData Indique que la tâche a commencé la lecture des données


WMI.

WMIDataReaderOperation Indique la requête WQL que la tâche a exécutée.

Configuration de la tâche Lecteur de données


WMI
Vous pouvez définir les propriétés par programmation ou par le biais du concepteur
SSIS .

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Page Expressions

Pour plus d'informations sur la définition par programmation de ces propriétés, cliquez
sur la rubrique suivante :

WmiDataReaderTask

Tâches associées
Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Éditeur de tâche Lecteur de données WMI


(page Général)
La page Général de la boîte de dialogue Éditeur de tâche Lecteur de données WMI
permet de nommer et décrire la tâche Lecteur de données WMI.

Pour plus d’informations sur le langage de requêtes WMI (WQL), consultez la rubrique
Requêtes avec WQLdans la documentation Windows Management Instrumentation de
la bibliothèque MSDN.
Options
Nom
Fournit un nom unique pour la tâche Lecteur de données WMI. Ce nom sert d'étiquette
à l'icône de la tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Tapez une description de la tâche Lecteur de données WMI.

Éditeur de tâche Lecteur de données WMI


(page Options WMI)
Utilisez la page Options WMI de la boîte de dialogue Éditeur de tâche Lecteur de
données WMI pour définir la source de la requête WQL (Windows Management
Instrumentation Query Language) et la destination du résultat de la requête.

Pour plus d’informations sur le langage de requêtes WMI (WQL), consultez la rubrique
Requêtes avec WQLdans la documentation Windows Management Instrumentation de
la bibliothèque MSDN.

Options statiques
WMIConnectionName
Sélectionnez un gestionnaire de connexions WMI dans la liste ou cliquez sur <Nouvelle
connexion WMI...> pour en créer un.

Rubriques connexes :Gestionnaire de connexions WMI, Éditeur du gestionnaire de


connexions WMI

WQLQuerySourceType
Sélectionnez le type de la source de la requête WQL que la tâche exécute. Cette
propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Entrée Définit la source d'une requête WQL. Si vous sélectionnez cette valeur, l'option
directe dynamique WQLQuerySourceTypes'affiche.
Valeur Description

Connexion Sélectionnez un fichier qui contient la requête WQL. Si vous sélectionnez cette
de fichiers valeur, l'option dynamique WQLQuerySourceTypes'affiche.

Variable Définissez la source dans une variable qui définit la requête WQL. Si vous
sélectionnez cette valeur, l'option dynamique WQLQuerySourceTypes'affiche.

OutputType
Indiquez si la sortie doit être une table de données, une valeur de propriété ou un nom
et une valeur de propriété.

OverwriteDestination
Indique s'il faut conserver ou remplacer les données d'origine dans le fichier ou la
variable de destination, ou leur ajouter des données.

DestinationType
Sélectionnez le type de la destination de la requête WQL que la tâche exécute. Cette
propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Connexion Sélectionnez un fichier pour y enregistrer le résultat de la requête WQL. Cette


de fichiers valeur affiche l'option dynamique DestinationType.

Variable Définissez la variable de stockage du résultat de la requête WQL. Cette valeur


affiche l'option dynamique DestinationType.

Options dynamiques WQLQuerySourceType

WQLQuerySourceType = Entrée directe

WQLQuerySource
Fournissez une requête ou cliquez sur le bouton de sélection (...) et entrez une requête
en utilisant la boîte de dialogue Requête WQL.

WQLQuerySourceType = Connexion de fichiers


WQLQuerySource
Sélectionnez un gestionnaire de connexions de fichier dans la liste ou cliquez sur
<Nouvelle connexion WMI...> pour en créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor


WQLQuerySourceType = Variable
WQLQuerySource
Sélectionnez une variable dans la liste ou cliquez sur <Nouvelle variable...> pour en
créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable

Options dynamiques DestinationType

DestinationType = Connexion de fichiers


Destination
Sélectionnez un gestionnaire de connexions de fichiers dans la liste ou cliquez sur
<Nouvelle connexion...> pour en créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

DestinationType = Variable
Destination
Sélectionnez une variable dans la liste ou cliquez sur <Nouvelle variable...> pour en
créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable

Voir aussi
Tâches Integration Services
Flux de contrôle
Tâche Observateur d'événement WMI
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche Observateur d'événement WMI observe les événements WMI (Windows


Management Instrumentation) à l'aide d'une requête d'événement WQL (Windows
Management Instrumentation Query Language) pour spécifier les événements dignes
d'intérêt. Vous pouvez utiliser la tâche Observateur d'événement WMI pour effectuer les
opérations suivantes :

Attendre la notification signalant que des fichiers ont été ajoutés à un dossier, puis
initier le traitement du fichier.

Exécuter un package qui supprime des fichiers lorsque la mémoire disponible sur
un serveur tombe en deçà d'un pourcentage spécifique.

Observer l'installation d'une application, puis exécuter un package qui utilise cette
application.

Integration Services inclut une tâche qui lit les informations WMI.

Pour plus d'informations sur cette tâche, cliquez sur la rubrique suivante :

Tâche Lecteur de données WMI

Requêtes WQL
WQL est un dialecte de SQL avec des extensions qui permettent de prendre en charge la
notification d'événement WMI et d'autres fonctionnalités spécifiques à WMI. Pour plus
d’informations sur WQL, consultez la documentation Windows Management
Instrumentation.

7 Notes

Les classes WMI varient d'une version de Windows à l'autre.

La requête suivante observe la notification signalant que l'utilisation du processeur est


supérieure à 40 %.

SQL
SELECT * from __InstanceModificationEvent WITHIN 2 WHERE TargetInstance ISA
'Win32_Processor' and TargetInstance.LoadPercentage > 40

La requête suivante observe la notification signalant qu'un fichier a été ajouté à un


dossier.

SQL

SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE TargetInstance ISA


"CIM_DirectoryContainsFile" and TargetInstance.GroupComponent=
"Win32_Directory.Name=\"c:\\\\WMIFileWatcher\""

Messages de journalisation personnalisés


disponibles dans la tâche Observateur
d'événement WMI
Le tableau suivant répertorie les entrées de journal personnalisées de la tâche
Observateur d'événement WMI. Pour plus d’informations, consultez Journalisation
d’Integration Services (SSIS).

Entrée du journal Description

WMIEventWatcherEventOccurred Indique qu'un événement surveillé par la tâche


s'est produit.

WMIEventWatcherTimedout Indique que le délai de la tâche a expiré.

WMIEventWatcherWatchingForWMIEvents Indique que la tâche a commencé l'exécution de la


requête WQL. L'entrée inclut la requête.

Configuration de la tâche Observateur


d'événement WMI
Vous pouvez configurer la tâche Lecteur de données WMI de plusieurs manières :

Spécifiez le gestionnaire de connexions WMI à utiliser.

Spécifiez la source de la requête WQL. Celle-ci peut être externe à la tâche, une
variable ou un fichier, ou la requête peut être stockée dans une propriété de tâche.
Spécifiez l'action exécutée par la tâche lorsque l'événement WMI se produit. Vous
pouvez enregistrer la notification d'événement et l'état après l'événement ou
déclencher des événements Integration Services personnalisés qui fournissent des
informations associées à l'événement WMI, à la notification et à l'état après
l'événement.

Définissez la manière dont la tâche répond à l'événement. La tâche peut être


configurée de façon à réussir ou à échouer, selon l'événement, ou elle peut
simplement observer encore l'événement.

Spécifiez l'action exécutée par la tâche lorsque le délai d'attente de requête WMI
arrive à expiration. Vous pouvez enregistrer le délai d’attente et l’état après le délai
d’attente ou bien déclencher un événement Integration Services personnalisé,
indiquant que l’événement WMI a dépassé le délai d’attente, et enregistrant le
délai d’attente et l’état après le délai d’attente.

Définissez la manière dont la tâche répond au délai d'attente. La tâche peut être
configurée de façon à réussir ou à échouer, ou elle peut simplement observer
encore l'événement.

Spécifiez le nombre de fois où la tâche observe l'événement.

Spécifiez le délai d'attente.

Si la source est un fichier, la tâche Observateur d'événement WMI utilise un gestionnaire


de connexions de fichiers pour se connecter au fichier. Pour plus d'informations,
consultez Flat File Connection Manager.

La tâche Observateur d'événement WMI utilise un gestionnaire de connexions WMI


pour se connecter au serveur à partir duquel elle lit les informations WMI. Pour plus
d'informations, consultez WMI Connection Manager.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Page Expressions

Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur


Configuration par programmation de la tâche
Observateur d'événement WMI
Pour plus d'informations sur la définition par programme de ces propriétés, cliquez sur
la rubrique suivante :

WmiEventWatcherTask

Éditeur de tâche Observateur d'événement


WMI (page Général)
Utilisez la page Général de la boîte de dialogue Éditeur de tâche Observateur
d'événement WMI pour nommer et décrire la tâche Observateur d'événement WMI.

Pour plus d’informations sur le langage de requêtes WMI (WQL), consultez la rubrique
Requêtes avec WQLdans la documentation Windows Management Instrumentation de
la bibliothèque MSDN.

Options
Nom
Fournissez un nom unique pour la tâche Observateur d'événement WMI. Ce nom sert
d'étiquette à l'icône de la tâche.

7 Notes

Les noms de tâche doivent être uniques dans un package.

Description
Entrez une description de la tâche Observateur d'événement WMI.

Éditeur de tâche Observateur d'événement


WMI (page Options WMI)
Utilisez la page Options WMI de la boîte de dialogue Éditeur de tâche Observateur
d'événement WMI pour définir la source de la requête WQL (Windows Management
Instrumentation Query Language) et le mode de réponse de la tâche Observateur
d'événement WMI aux événements WMI (Microsoft Windows Instrumentation).
Pour plus d’informations sur le langage de requêtes WMI (WQL), consultez la rubrique
Requêtes avec WQLdans la documentation Windows Management Instrumentation de
la bibliothèque MSDN.

Options statiques
WMIConnectionName
Sélectionnez un gestionnaire de connexions WMI dans la liste ou cliquez sur <Nouvelle
connexion WMI...> pour en créer un.

Rubriques connexes :Gestionnaire de connexions WMI, Éditeur du gestionnaire de


connexions WMI

WQLQuerySourceType
Sélectionnez le type de la source de la requête WQL que la tâche exécute. Cette
propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Entrée directe Définit la source d'une requête WQL. Cette valeur affiche l'option dynamique
WQLQuerySource.

Connexion de Sélectionnez un fichier qui contient la requête WQL. Cette valeur affiche l'option
fichiers dynamique WQLQuerySource.

Variable Définit la source dans une variable qui définit la requête WQL. Cette valeur
affiche l'option dynamique WQLQuerySource.

ActionAtEvent
Indiquez si l’événement WMI consigne l’événement et lance l’action SSIS , ou consigne
uniquement l’événement.

AfterEvent
Indiquez si la tâche aboutit ou échoue lorsqu'elle reçoit l'événement WMI, ou si elle
continue d'observer l'occurrence de l'événement.

ActionAtTimeout
Indiquez si la tâche consigne la temporisation d'une requête WMI et déclenche un
événement SSIS en réponse, ou si elle consigne uniquement la temporisation.

AfterTimeout
Indiquez si la tâche aboutit ou échoue en réponse à une temporisation, ou si elle
continue d'observer l'occurrence d'une temporisation.
NumberOfEvents
Indiquez le nombre d'événements à observer.

Délai d'expiration
Indiquez le délai en secondes avant l'occurrence de l'événement. La valeur 0 indique
qu'aucun délai n'a lieu.

Options dynamiques WQLQuerySource

WQLQuerySource = Entrée directe


WQLQuerySource
Fournissez une requête ou cliquez sur les points de suspension (...) et entrez une requête
en utilisant la boîte de dialogue Requête WQL.

WQLQuerySource = Connexion de fichiers

WQLQuerySource
Sélectionnez un gestionnaire de connexions de fichier dans la liste ou cliquez sur
<Nouvelle connexion WMI...> pour en créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

WQLQuerySource = Variable
WQLQuerySource
Sélectionnez une variable dans la liste ou cliquez sur <Nouvelle variable...> pour en
créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable


Tâche XML
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche XML est utilisée pour travailler avec des données XML. À l'aide de cette tâche,
un package peut extraire des documents XML, appliquer des opérations aux documents
en utilisant des feuilles de style XSLT (Extensible Stylesheet Language Transformations)
et des expressions XPath, fusionner plusieurs documents, ou bien valider, comparer et
enregistrer les documents mis à jour dans des fichiers et des variables.

Cette tâche permet à un package Integration Services de modifier de manière


dynamique des documents XML au moment de l'exécution. Vous pouvez utiliser la tâche
XML pour :

remettre en forme un document XML. Cette tâche peut ainsi accéder à un rapport
se trouvant dans un fichier XML et appliquer de manière dynamique une feuille de
style XSLT afin de personnaliser la présentation du document ;

sélectionner des sections d'un document XML. Cette tâche peut ainsi accéder à un
rapport se trouvant dans un fichier XML et appliquer de manière dynamique une
expression XPath afin de sélectionner une section du document. Cette opération
peut également permettre d'obtenir et de traiter des valeurs dans un document ;

fusionner des documents provenant de différentes sources. Cette tâche peut par
exemple télécharger des rapports à partir de sources multiples et les fusionner de
manière dynamique dans un document XML global unique.

valider un document XML et éventuellement obtenir une sortie d’erreur détaillée.


Pour plus d’informations, consultez Validate XML with the XML Task.

Vous pouvez inclure des données XML dans un flux de données en utilisant une source
XML pour extraire des valeurs d'un document XML. Pour plus d'informations, consultez
XML Source.

Opérations XML
La première action de la tâche XML consiste à extraire un document XML spécifique.
Cette action est intégrée à la tâche XML et est effectuée automatiquement. Le
document XML récupéré est utilisé comme source de données de l'opération réalisée
par la tâche XML.
Les opérations XML Diff, Merge et Patch requièrent deux opérandes. Le premier
opérande spécifie le document XML source. Le second opérande spécifie également un
document XML, dont le contenu dépend de ce dont l'opération a besoin. Par exemple,
l'opération Diff compare deux documents. Le second opérande spécifie donc un autre
document XML similaire auquel le document XML source est comparé.

La tâche XML peut utiliser une variable ou un gestionnaire de connexions de fichiers


comme source ou inclure les données XML dans une propriété de tâche.

Si la source est une variable, la variable spécifiée contient le chemin d'accès du


document XML.

Si la source est un gestionnaire de connexions de fichiers, ce gestionnaire fournit les


informations sources. Le gestionnaire de connexions de fichiers est configuré
séparément de la tâche XML et est référencé dans la tâche XML. La chaîne de connexion
du gestionnaire de connexions de fichiers spécifie le chemin d'accès du fichier XML.
Pour plus d’informations, consultez File Connection Manager.

La tâche XML peut être configurée pour enregistrer les résultats de l'opération dans une
variable ou un fichier. En cas d'enregistrement dans un fichier, la tâche XML utilise un
gestionnaire de connexions de fichiers pour accéder au fichier. Vous pouvez également
enregistrer les résultats du Diffgram généré par l'opération Diff dans des fichiers et des
variables.

Opérations XML prédéfinies


La tâche XML comprend un ensemble prédéfini d'opérations permettant de travailler
avec des documents XML. Le tableau suivant décrit ces opérations.

Opération Description

Diff Permet de comparer deux documents XML. Si le document XML source est utilisé
comme document de base, l'opération Diff la compare à un second document XML,
détecte leurs différences et écrit ces différences dans un document XML Diffgram.
Cette opération inclut des propriétés permettant de personnaliser la comparaison.

Fusionner Permet de fusionner deux documents XML. Si le document XML source est utilisé
comme document de base, l'opération Merge ajoute le contenu d'un second
document dans le document de base. Cette opération peut spécifier un
emplacement de fusion dans le document de base.

Correctif Applique la sortie de l'opération Diff, appelée document Diffgram, à un document


XML afin de créer un document parent qui inclut le contenu du document Diffgram.
Opération Description

Valider Permet de valider le document XML en utilisant un DTD (Document Type Definition)
ou un schéma XSD (XML Schema definition).

XPath Lance les requêtes et les évaluations XPath.

XSLT Effectue les transformations XSL sur les documents XML.

Opération Diff
L'opération Diff peut être configurée pour utiliser un algorithme de comparaison
différent selon que la comparaison doive être rapide ou précise. Elle peut également
être configurée pour sélectionner automatiquement une comparaison rapide ou précise
en fonction de la taille des documents comparés.

L'opération Diff comprend un ensemble d'options permettant de personnaliser la


comparaison XML. Le tableau ci-dessous décrit les options disponibles.

Option Description

IgnoreComments Valeur indiquant si les nœuds de commentaires sont comparés.

IgnoreNamespaces Valeur indiquant si les URI (Uniform Resource Identifier) d'espace


de noms des noms d'un élément et de son attribut sont
comparés. Si cette option a pour valeur true, deux éléments
ayant le même nom local mais un espace de noms différent sont
considérés comme identiques.

IgnorePrefixes Valeur indiquant si les préfixes des noms d'élément et d'attribut


sont comparés. Si cette option a pour valeur true, deux éléments
ayant le même nom local mais des URI d'espaces de noms et des
préfixes différents sont considérés comme identiques.

IgnoreXMLDeclaration Valeur indiquant si les déclarations XML sont comparées.

IgnoreOrderOfChildElements Valeur indiquant si l'ordre des éléments enfants est comparé. Si


cette option a pour valeur true, les éléments enfants qui diffèrent
uniquement par leur position dans la liste des frères sont
considérés comme identiques.

IgnoreWhiteSpaces Valeur indiquant si les espaces blancs sont comparés.

IgnoreProcessingInstructions Valeur indiquant si les instructions de traitement sont comparées.

IgnoreDTD Valeur indiquant si le schéma DTD est ignoré.


Opération de fusion
Lorsque vous utilisez une instruction XPath pour identifier l'emplacement de fusion dans
le document source, cette instruction est supposée retourner un nœud unique. Si elle
retourne plusieurs nœuds, seul le premier est utilisé. Le contenu du deuxième document
est fusionné sous le premier nœud que la requête XPath retourne.

Opération XPath
L'opération XPath peut être configurée pour utiliser différents types de fonctionnalités
XPath.

Sélectionnez l’option Évaluation pour implémenter des fonctions XPath telles que
sum().

Sélectionnez l'option Liste de nœuds pour renvoyer les nœuds sélectionnés sous
forme de fragment XML.

Sélectionnez l'option Valeurs pour renvoyer les valeurs de texte de tous les nœuds
sélectionnés, concaténées en une chaîne.

Opération de validation
L'opération de validation peut être configurée pour utiliser un schéma DTD (Document
Type Definition) ou XSD (XML Schema definition).

Activez ValidationDetails pour obtenir une sortie d’erreur détaillée. Pour plus
d’informations, consultez Validate XML with the XML Task.

Encodage de document XML


La tâche XML prend en charge la fusion de documents Unicode uniquement. Cela
signifie que la tâche peut appliquer l'opération de fusion uniquement aux documents
ayant un encodage Unicode. L'utilisation d'autres encodages provoquera l'échec de la
tâche XML.

7 Notes

Les opérations Diff et Patch comprennent une option qui ignore la déclaration XML
dans les données XML du deuxième opérande, ce qui permet d'utiliser des
documents avec d'autres encodages dans ces opérations.
Pour vérifier que le document XML peut être utilisé, vérifiez la déclaration XML. Celle-ci
doit explicitement indiquer UTF-8, qui représente l'encodage unicode sur 8 bits.

La balise suivante montre l'encodage Unicode sur 8 bits.

<?xml version="1.0" encoding="UTF-8"?>

Messages de journalisation personnalisés


disponibles dans la tâche XML
Le tableau suivant décrit l'entrée de journal personnalisée de la tâche XML. Pour plus
d’informations, consultez Journalisation d’Integration Services (SSIS).

Entrée du journal Description

XMLOperation Fournit des informations sur l'opération que la tâche effectue.

Configuration de la tâche XML


Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS ,
cliquez sur l'une des rubriques suivantes :

Effectuer une validation XML avec la tâche XML

Page Expressions

Pour plus d'informations sur la définition des propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d'une tâche ou d'un conteneur

Configuration par programme de la tâche XML


Pour plus d'informations sur la définition par programme de ces propriétés, cliquez sur
la rubrique suivante :

XMLTask

Tâches associées
Définir les propriétés d'une tâche ou d'un conteneur

XML Task Editor (General Page)


Utilisez le nœud Général de la boîte de dialogue Éditeur de tâche XML pour préciser le
type d'opération à effectuer, puis la configurer.

Pour en savoir plus sur cette tâche, consultez Effectuer une validation XML avec la tâche
XML. Pour plus d'informations sur l'utilisation de documents et de données XML,
consultez «Employing XML in the .NET Framework» (en anglais) dans MSDN Library.

Options statiques
OperationType
Permet de sélectionner le type d'opération dans la liste. Cette propriété dispose des
options répertoriées dans le tableau suivant.

Valeur Description

Procéder Permet de valider le document XML en utilisant un DTD (Document Type Definition)
à la ou un schéma XSD (XML Schema definition). Si cette valeur est sélectionnée, les
validation options dynamiques incluses dans la section Validers'affichent alors.

XSLT Effectue les transformations XSL sur les documents XML. Si cette valeur est
sélectionnée, les options dynamiques incluses dans la section XSLTs'affichent alors.

XPATH Lance les requêtes et les évaluations XPath. Si cette valeur est sélectionnée, les
options dynamiques incluses dans la section XPATHs'affichent alors.

Fusionner Permet de fusionner deux documents XML. Si cette valeur est sélectionnée, les
options dynamiques incluses dans la section Fusionners'affichent alors.

Diff Permet de comparer deux documents XML. Si cette valeur est sélectionnée, les
options dynamiques incluses dans la section Diffs'affichent alors.

Patch Permet d'appliquer la sortie de l'opération Diff afin de créer un document. Si cette
valeur est sélectionnée, les options dynamiques incluses dans la section
Patchs'affichent alors.

SourceType
Permet de sélectionner le type de source correspondant au document XML. Cette
propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Entrée directe Permet de définir la source sur un document XML.


Valeur Description

Connexion de fichiers Permet de sélectionner un fichier contenant le document XML.

Variable Permet de définir la source sur une variable contenant le document XML.

Source
Si Source a la valeur Entrée directe, indiquez le code XML ou cliquez sur le bouton de
sélection (...) pour fournir le code XML nécessaire dans la boîte de dialogue Éditeur de
source de document.

Si Source est défini sur Connexion de fichiers, sélectionnez un gestionnaire de


connexions de fichiers existant ou cliquez sur <Nouvelle connexion...> pour en créer
un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

Si Source a la valeur Variable, sélectionnez une variable existante ou cliquez sur <
<Nouvelle variable...> > pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable.

Options dynamiques OperationType

OperationType = Validate
Permet d'indiquer les options de l'opération Validate.

SaveOperationResult
Indique si la tâche XML enregistre ou non la sortie produite par l'opération Validate.

OverwriteDestination
Permet de spécifier si le fichier ou la variable de destination doit être remplacé.

Destination
Sélectionnez un gestionnaire de connexions de fichiers existant ou cliquez sur
<Nouvelle connexion...> pour en créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

DestinationType
Permet de sélectionner le type de destination correspondant au document XML. Cette
propriété dispose des options répertoriées dans le tableau suivant.
Valeur Description

Connexion de fichiers Permet de sélectionner un fichier contenant le document XML.

Variable Permet de définir la source sur une variable contenant le document XML.

ValidationType
Permet de sélectionner le type de validation. Cette propriété dispose des options
répertoriées dans le tableau suivant.

Valeur Description

DTD Permet d'utiliser un DTD (Document Type Definition).

XSD Permet d'utiliser un schéma XSD (XML Schema Definition Language). Si cette valeur est
sélectionnée, les options dynamiques incluses dans la section ValidationTypes'affichent.

FailOnValidationFail
Permet d'indiquer si le document doit ne pas être validé si l'opération échoue.

ValidationDetails
Fournit une sortie d’erreur détaillée quand la valeur de cette propriété est true. Pour
plus d’informations, consultez Validate XML with the XML Task.

Options dynamiques de ValidationType

ValidationType = XSD

SecondOperandType
Permet de sélectionner le type de source correspondant au deuxième document XML.
Cette propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Entrée directe Permet de définir la source sur un document XML.

Connexion de fichiers Permet de sélectionner un fichier contenant le document XML.

Variable Permet de définir la source sur une variable contenant le document XML.

SecondOperand
Si SecondOperandType a la valeur Entrée directe, indiquez le code XML ou cliquez sur
le bouton de sélection (...) pour fournir le code XML nécessaire dans la boîte de
dialogue Éditeur de source.
Si SecondOperandType a la valeur Connexion de fichiers, sélectionnez un gestionnaire
de connexions de fichiers existant ou cliquez sur <<Nouvelle connexion...> pour en
créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

Si XPathStringSourceType a la valeur Variable, sélectionnez une variable existante ou


cliquez sur < <Nouvelle variable...> > pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable.

OperationType = XSLT

Permet d'indiquer les options relatives à l'opération de transformation XSLT.

SaveOperationResult
Indique si la tâche XML enregistre ou non la sortie produite par l'opération XSLT.

OverwriteDestination
Permet de spécifier si le fichier ou la variable de destination doit être remplacé.

Destination
Si DestinationType est défini sur Connexion de fichiers, sélectionnez un gestionnaire de
connexions de fichiers existant ou cliquez sur <Nouvelle connexion...> pour en créer
un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

Si DestinationType a la valeur Variable, sélectionnez une variable existante ou cliquez


sur < <Nouvelle variable...> > pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable.

DestinationType
Permet de sélectionner le type de destination correspondant au document XML. Cette
propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Connexion de fichiers Permet de sélectionner un fichier contenant le document XML.

Variable Permet de définir la source sur une variable contenant le document XML.

SecondOperandType
Permet de sélectionner le type de source correspondant au deuxième document XML.
Cette propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Entrée directe Permet de définir la source sur un document XML.

Connexion de fichiers Permet de sélectionner un fichier contenant le document XML.

Variable Permet de définir la source sur une variable contenant le document XML.

SecondOperand
Si SecondOperandType a la valeur Entrée directe, indiquez le code XML ou cliquez sur
le bouton de sélection (...) pour fournir le code XML nécessaire dans la boîte de
dialogue Éditeur de source.

Si SecondOperandType a la valeur Connexion de fichiers, sélectionnez un gestionnaire


de connexions de fichiers existant ou cliquez sur <<Nouvelle connexion...> pour en
créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

Si XPathStringSourceType a la valeur Variable, sélectionnez une variable existante ou


cliquez sur < <Nouvelle variable...> > pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable.

OperationType = XPATH

Permet de spécifier les options relatives à l'opération XPath.

SaveOperationResult
Indique si la tâche XML enregistre ou non la sortie de l'opération XPath.

OverwriteDestination
Permet de spécifier si le fichier ou la variable de destination doit être remplacé.

Destination
Si DestinationType est défini sur Connexion de fichiers, sélectionnez un gestionnaire de
connexions de fichiers existant ou cliquez sur <Nouvelle connexion...> pour en créer
un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

Si DestinationType a la valeur Variable, sélectionnez une variable existante ou cliquez


sur < <Nouvelle variable...> > pour en créer une.
Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable.

DestinationType
Permet de sélectionner le type de destination correspondant au document XML. Cette
propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Connexion de fichiers Permet de sélectionner un fichier contenant le document XML.

Variable Permet de définir la source sur une variable contenant le document XML.

SecondOperandType
Permet de sélectionner le type de source correspondant au deuxième document XML.
Cette propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Entrée directe Permet de définir la source sur un document XML.

Connexion de fichiers Permet de sélectionner un fichier contenant le document XML.

Variable Permet de définir la source sur une variable contenant le document XML.

SecondOperand
Si SecondOperandType a la valeur Entrée directe, indiquez le code XML ou cliquez sur
le bouton de sélection (...) pour fournir le code XML nécessaire dans la boîte de
dialogue Éditeur de source.

Si SecondOperandType a la valeur Connexion de fichiers, sélectionnez un gestionnaire


de connexions de fichiers existant ou cliquez sur <<Nouvelle connexion...> pour en
créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

Si XPathStringSourceType a la valeur Variable, sélectionnez une variable existante ou


cliquez sur < <Nouvelle variable...> > pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable.

PutResultInOneNode
Permet de spécifier si le résultat doit être écrit dans un seul nœud.

XPathOperation
Permet d'indiquer le type de résultat XPath. Cette propriété dispose des options
répertoriées dans le tableau suivant.
Valeur Description

Evaluation Permet de retourner les résultats d'une fonction XPath.

Liste de Permet de retourner les nœuds sélectionnés en tant que fragment XML.
nœuds

Valeurs Permet de retourner la valeur interne du texte correspondant à tous les nœuds
sélectionnés, sous forme de chaîne concaténée.

OperationType = Fusionner
Permet d'indiquer les différentes options de l'opération Fusionner.

XPathStringSourceType
Permet de sélectionner le type de source correspondant au document XML. Cette
propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Entrée directe Permet de définir la source sur un document XML.

Connexion de fichiers Permet de sélectionner un fichier contenant le document XML.

Variable Permet de définir la source sur une variable contenant le document XML.

XPathStringSource
Si XPathStringSourceType a la valeur Entrée directe, indiquez le code XML ou cliquez
sur le bouton de sélection (...) pour fournir le code XML nécessaire dans la boîte de
dialogue Éditeur de source de document.

Si XPathStringSourceType a la valeur Connexion de fichiers, sélectionnez un


gestionnaire de connexions de fichiers existant ou cliquez sur <Nouvelle connexion...>
pour en créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

Si XPathStringSourceType a la valeur Variable, sélectionnez une variable existante ou


cliquez sur < <Nouvelle variable...> > pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable

Lorsque vous utilisez une instruction XPath pour identifier l'emplacement de fusion dans
le document source, cette instruction est supposée retourner un nœud unique. Si elle
retourne plusieurs nœuds, seul le premier est utilisé. Le contenu du deuxième document
est fusionné sous le premier nœud que la requête XPath retourne.
SaveOperationResult
Indique si la tâche XML enregistre ou non la sortie produite par l'opération Fusionner.

OverwriteDestination
Permet de spécifier si le fichier ou la variable de destination doit être remplacé.

Destination
Si DestinationType est défini sur Connexion de fichiers, sélectionnez un gestionnaire de
connexions de fichiers existant ou cliquez sur <Nouvelle connexion...> pour en créer
un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

Si DestinationType a la valeur Variable, sélectionnez une variable existante ou cliquez


sur < <Nouvelle variable...> > pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable.

DestinationType
Permet de sélectionner le type de destination correspondant au document XML. Cette
propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Connexion de fichiers Permet de sélectionner un fichier contenant le document XML.

Variable Permet de définir la source sur une variable contenant le document XML.

SecondOperandType
Permet de sélectionner le type de destination correspondant au deuxième document
XML. Cette propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Entrée directe Permet de définir la source sur un document XML.

Connexion de fichiers Permet de sélectionner un fichier contenant le document XML.

Variable Permet de définir la source sur une variable contenant le document XML.

SecondOperand
Si SecondOperandType a la valeur Entrée directe, indiquez le code XML ou cliquez sur
le bouton de sélection (...) pour fournir le code XML nécessaire dans la boîte de
dialogue Éditeur de source de document .
Si SecondOperandType a la valeur Connexion de fichiers, sélectionnez un gestionnaire
de connexions de fichiers existant ou cliquez sur <<Nouvelle connexion...> pour en
créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

Si SecondOperandType a la valeur Variable, sélectionnez une variable existante ou


cliquez sur < <Nouvelle variable...> > pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable

OperationType = Diff

Permet d'indiquer les différentes options de l'opération Diff.

DiffAlgorithm
Permet de sélectionner l'algorithme Diff à utiliser pour la comparaison de documents.
Cette propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Automatique Laisse la tâche XML déterminer si l'algorithme à utiliser est l'algorithme rapide ou
l'algorithme précis.

Rapide L'algorithme de comparaison utilisé est le plus rapide des deux, mais aussi le
moins précis.

Précise L'algorithme de comparaison utilisé est le plus précis des deux.

Options Diff
Permet de définir les options de comparaison s'appliquant à l'opération Diff. Ces
fonctions sont répertoriées dans le tableau suivant.

Valeur Description

IgnoreXMLDeclaration Permet d'indiquer si la déclaration XML doit être comparée.

IgnoreDTD Permet d'ignorer le DTD (Document Type Definition).

IgnoreWhite Spaces Spécifie s'il faut ignorer les différences dans le nombre d'espaces
vides lorsque des documents sont comparés.
Valeur Description

IgnoreNamespaces Permet d'indiquer si la comparaison doit aussi porter sur l'URI


(Uniform Resource Identifier) d'espace de nom relatif à un
élément ainsi que sur les noms d'attribut de ce même élément.

Remarque : Si cette option a la valeur True, deux éléments


possédant le même nom local, mais des espaces de nom distincts
sont considérés comme identiques.

IgnoreProcessingInstructions Permet d'indiquer si les instructions de traitement doivent être


comparées.

IgnoreOrderOf Permet d'indiquer si l'ordre des éléments enfants doit être


ChildElements comparé.

Remarque : Si cette option a la valeur True, les éléments enfants


qui diffèrent uniquement par leur position dans une liste de
frères sont considérés comme identiques.

IgnoreComments Permet d'indiquer si les nœuds de commentaires doivent être


comparés.

IgnorePrefixes Permet d'indiquer si les préfixes d'un élément et ses noms


d'attribut doivent être comparés.

Remarque : Si vous définissez cette option sur True, deux


éléments possédant le même nom local, mais des URI et des
préfixes d’espace de nom distincts sont considérés comme
identiques.

FailOnDifference
Permet d'indiquer si la tâche échoue si l'opération Diff échoue.

SaveDiffGram
Permet d'enregistrer ou non le résultat de comparaison sous forme de document
DiffGram.

SaveOperationResult
Indique si la tâche XML enregistre ou non la sortie produite par l'opération Diff.

OverwriteDestination
Permet de spécifier si le fichier ou la variable de destination doit être remplacé.

Destination
Si DestinationType est défini sur Connexion de fichiers, sélectionnez un gestionnaire de
connexions de fichiers existant ou cliquez sur <Nouvelle connexion...> pour en créer
un.
Rubriques connexes :File Connection Manager, File Connection Manager Editor

Si DestinationType a la valeur Variable, sélectionnez une variable existante ou cliquez


sur < <Nouvelle variable...> > pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable.

DestinationType
Permet de sélectionner le type de destination correspondant au document XML. Cette
propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Connexion de fichiers Permet de sélectionner un fichier contenant le document XML.

Variable Permet de définir la source sur une variable contenant le document XML.

SecondOperandType
Permet de sélectionner le type de destination correspondant au document XML. Cette
propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Entrée directe Permet de définir la source sur un document XML.

Connexion de fichiers Permet de sélectionner un fichier contenant le document XML.

Variable Permet de définir la source sur une variable contenant le document XML.

SecondOperand
Si SecondOperandType a la valeur Entrée directe, indiquez le code XML ou cliquez sur
le bouton de sélection (...) pour fournir le code XML nécessaire dans la boîte de
dialogue Éditeur de source de document .

Si SecondOperandType a la valeur Connexion de fichiers, sélectionnez un gestionnaire


de connexions de fichiers existant ou cliquez sur <<Nouvelle connexion...> pour en
créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

Si SecondOperandType a la valeur Variable, sélectionnez une variable existante ou


cliquez sur < <Nouvelle variable...> > pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable

OperationType = Patch
Permet d'indiquer les différentes options de l'opération Patch.

SaveOperationResult
Indique si la tâche XML enregistre ou non la sortie produite par l'opération Patch.

OverwriteDestination
Permet de spécifier si le fichier ou la variable de destination doit être remplacé.

Destination
Si DestinationType est défini sur Connexion de fichiers, sélectionnez un gestionnaire de
connexions de fichiers existant ou cliquez sur <Nouvelle connexion...> pour en créer
un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

Si DestinationType a la valeur Variable, sélectionnez une variable existante ou cliquez


sur < <Nouvelle variable...> > pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable.

DestinationType
Permet de sélectionner le type de destination correspondant au document XML. Cette
propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Connexion de fichiers Permet de sélectionner un fichier contenant le document XML.

Variable Permet de définir la source sur une variable contenant le document XML.

SecondOperandType
Permet de sélectionner le type de destination correspondant au document XML. Cette
propriété dispose des options répertoriées dans le tableau suivant.

Valeur Description

Entrée directe Permet de définir la source sur un document XML.

Connexion de fichiers Permet de sélectionner un fichier contenant le document XML.

Variable Permet de définir la source sur une variable contenant le document XML.

SecondOperand
Si SecondOperandType a la valeur Entrée directe, indiquez le code XML ou cliquez sur
le bouton de sélection (...) pour fournir le code XML nécessaire dans la boîte de
dialogue Éditeur de source de document .
Si SecondOperandType a la valeur Connexion de fichiers, sélectionnez un gestionnaire
de connexions de fichiers existant ou cliquez sur <<Nouvelle connexion...> pour en
créer un.

Rubriques connexes :File Connection Manager, File Connection Manager Editor

Si SecondOperandType a la valeur Variable, sélectionnez une variable existante ou


cliquez sur < <Nouvelle variable...> > pour en créer une.

Rubriques connexes :Variables Integration Services (SSIS), Ajouter une variable


Validate XML with the XML Task
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Validez des documents XML et obtenez une sortie d’erreur détaillée en activant la
propriété ValidationDetails de la tâche XML.

La capture d’écran ci-après affiche l’Éditeur de tâche XML avec les paramètres requis
pour la validation XML avec une sortie d’erreur détaillée.

Avant que la propriété ValidationDetails ne soit disponible, la validation XML par la


tâche XML ne renvoyait qu’un résultat true ou false, sans aucune information sur les
erreurs ou leur emplacement. À présent, quand vous définissez ValidationDetails sur
True, le fichier de sortie contient des informations détaillées sur chaque erreur,
notamment le numéro de ligne et la position. Vous pouvez utiliser ces informations pour
comprendre, localiser et corriger les erreurs dans les documents XML.

La fonctionnalité de validation XML s’adapte aisément aux documents XML volumineux


et aux nombres d’erreurs élevés. Étant donné que le fichier de sortie proprement dit
présente le format XML, vous pouvez exécuter des requêtes sur la sortie et analyser
cette dernière. Par exemple, si la sortie contient un grand nombre d’erreurs, vous
pouvez regrouper les erreurs en exécutant une requête Transact-SQL, comme décrit
dans cette rubrique.

7 Notes

SQL Server Integration Services ( SSIS) a introduit la propriété ValidationDetails


dans SQL Server 2012 (11.x) Service Pack 2. Cette propriété est également
disponible dans SQL Server 2014 (12.x) et dans SQL Server 2016 (13.x).

Exemple de sortie pour XML valide


Voici un exemple de fichier de sortie présentant les résultats de validation d’un fichier
XML valide.

XML

<root xmlns:ns="https://schemas.microsoft.com/xmltools/2002/xmlvalidation">
<metadata>
<result>true</result>
<errors>0</errors>
<warnings>0</warnings>
<startTime>2015-05-28T10:27:22.087</startTime>
<endTime>2015-05-28T10:29:07.007</endTime>
<xmlFile>d:\Temp\TestData.xml</xmlFile>
<xsdFile>d:\Temp\TestSchema.xsd</xsdFile>
</metadata>
<messages />
</root>

Exemple de sortie pour XML non valide


Voici un exemple de fichier de sortie présentant les résultats de validation d’un fichier
XML contenant un petit nombre d’erreurs. Le texte des éléments <error> a été
encapsulé pour améliorer la lisibilité.

XML

<root xmlns:ns="https://schemas.microsoft.com/xmltools/2002/xmlvalidation">
<metadata>
<result>false</result>
<errors>2</errors>
<warnings>0</warnings>
<startTime>2015-05-28T10:45:09.538</startTime>
<endTime>2015-05-28T10:45:09.558</endTime>
<xmlFile>C:\Temp\TestData.xml</xmlFile>
<xsdFile>C:\Temp\TestSchema.xsd</xsdFile>
</metadata>
<messages>
<error line="5" position="26">The 'ApplicantRole' element is invalid
- The value 'wer3' is invalid
according to its datatype 'ApplicantRoleType' - The Enumeration
constraint failed.</error>
<error line="16" position="28">The 'Phone' element is invalid - The
value 'we3056666666' is invalid
according to its datatype 'phone' - The Pattern constraint failed.
</error>
</messages>
</root>

Analyser la sortie de validation XML avec une


requête Transact-SQL
Si le résultat de la validation XML contient un grand nombre d’erreurs, vous pouvez
utiliser une requête Transact-SQL pour charger la sortie dans SQL Server Management
Studio. Vous pouvez ensuite analyser la liste d’erreurs avec toutes les fonctionnalités du
langage T-SQL, notamment WHERE, GROUP BY, ORDER BY, JOIN, et ainsi de suite.

SQL

DECLARE @xml XML;

SELECT @xml = XmlDoc


FROM OPENROWSET (BULK N'C:\Temp\XMLValidation_2016-02-212T10-41-00.xml',
SINGLE_BLOB) AS Tab(XmlDoc);

-- Query # 1, flat list of errors


-- convert to relational/rectangular
;WITH XMLNAMESPACES
('https://schemas.microsoft.com/xmltools/2002/xmlvalidation' AS ns), rs AS
(
SELECT col.value('@line','INT') AS line
, col.value('@position','INT') AS position
, col.value('.','VARCHAR(1024)') AS error
FROM @XML.nodes('/root/messages/error') AS tab(col)
)
SELECT * FROM rs;
-- WHERE error LIKE '%whatever_string%'

-- Query # 2, count of errors grouped by the error message


-- convert to relational/rectangular
;WITH XMLNAMESPACES
('https://schemas.microsoft.com/xmltools/2002/xmlvalidation' AS ns), rs AS
(
SELECT col.value('@line','INT') AS line
, col.value('@position','INT') AS position
, col.value('.','VARCHAR(1024)') AS error
FROM @XML.nodes('/root/messages/error') AS tab(col)
)
SELECT COALESCE(error,'Total # of errors:') AS [error], COUNT(*) AS
[counter]
FROM rs
GROUP BY GROUPING SETS ((error), ())
ORDER BY 2 DESC, COALESCE(error, 'Z');

Voici le résultat dans Management Studio du second exemple de requête figurant dans
le texte précédent.

Voir aussi
Tâche XML
XML Task Editor (General Page)
Contraintes de précédence
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les contraintes de précédence lient les exécutables, les conteneurs et les tâches des
packages dans un flux de contrôle et spécifient les conditions qui déterminent si les
exécutables s'exécutent. Un exécutable peut être une boucle For, une boucle Foreach,
un conteneur de séquence, une tâche ou un gestionnaire d'événement. Les
gestionnaires d'événements utilisent également les contraintes de précédence pour lier
leurs exécutables dans un flux de contrôle.

Une contrainte de précédence lie deux exécutables : l'exécutable de précédence et


l'exécutable contraint. L'exécutable de précédence s'exécute avant l'exécutable contraint
et le résultat de l'exécution de l'exécutable de précédence peut déterminer si
l'exécutable contraint s'exécute. Le schéma suivant illustre deux exécutables liés par une
contrainte de précédence.

Dans un flux de contrôle linéaire, c'est-à-dire sans branchement, les contraintes de


précédence déterminent à elles seules la séquence d'exécution des tâches. Dans un flux
de contrôle avec branchements, le moteur d'exécution Integration Services détermine
l'ordre d'exécution des tâches et des conteneurs qui suivent immédiatement le
branchement. Le moteur d'exécution détermine également l'ordre d'exécution des flux
de travail non connectés dans un flux de contrôle.

L'architecture à conteneurs imbriqués d' Integration Services permet à tous les


conteneurs (à l'exception du conteneur d'hôte de tâche qui encapsule une seule tâche)
d'inclure d'autres conteneurs, chacun avec son propre flux de contrôle. Les conteneurs
de boucles For, de boucles Foreach et de séquence peuvent inclure plusieurs tâches et
d'autres conteneurs, qui à leur tour peuvent inclure plusieurs tâches et conteneurs. Par
exemple, un package avec une tâche de script et un conteneur de séquence possède
une contrainte de précédence qui lie la tâche de script et le conteneur de séquence. Le
conteneur de séquence contient trois tâches de script et ses contraintes de précédence
lient les trois tâches de script dans un flux de contrôle. Le schéma suivant illustre les
contraintes de précédence dans un package avec deux niveaux d'imbrication.
Le package étant situé au sommet de la hiérarchie de conteneurs SSIS , plusieurs
packages ne peuvent pas être liés par des contraintes de précédence ; toutefois, vous
pouvez ajouter une tâche d’exécution de package à un package et lier indirectement un
autre package au flux de contrôle.

Vous pouvez configurer des contraintes de précédence de plusieurs manières :

Spécifiez une opération d'évaluation. La contrainte d'évaluation utilise une valeur


de contrainte, une expression ou les deux pour déterminer si l'exécutable contraint
s'exécute.

Si la contrainte de précédence utilise un résultat d'exécution, vous pouvez spécifier


le résultat d'exécution comme étant un succès, un échec ou à l'achèvement.

Si la contrainte de précédence utilise un résultat d'évaluation, vous pouvez fournir


une expression qui correspond à une valeur booléenne.

Spécifiez si la contrainte de précédence est évaluée seule ou avec d'autres


contraintes qui s'appliquent à l'exécutable contraint.

Opérations d'évaluation
Integration Services offre les opérations d’évaluation suivantes :

Une contrainte qui utilise uniquement le résultat d'exécution de l'exécutable de


précédence pour déterminer si l'exécutable contraint s'exécute. Le résultat
d'exécution de l'exécutable de précédence peut être achèvement, réussite ou
échec. Il s'agit de l'opération par défaut.

Une expression qui est évaluée pour déterminer si l'exécutable contraint s'exécute.
Si le résultat de l'évaluation est true, l'exécutable contraint s'exécute.

Une expression et une contrainte qui allient les exigences des résultats d'exécution
de l'exécutable de précédence et les résultats de retour de l'évaluation de
l'expression.
Une expression ou une contrainte qui utilisent les résultats d'exécution de
l'exécutable de précédence ou les résultats de retour de l'évaluation de
l'expression.

SSIS Le Concepteur utilise une couleur pour identifier le type de contrainte de


précédence. La contrainte Success (réussite) est verte, la contrainte Failure (échec) est
rouge et la contrainte Completion (fin) est bleue. Pour afficher les étiquettes de texte
indiquant le type de contrainte dans le concepteur SSIS , vous devez configurer les
fonctionnalités d’accessibilité du Concepteur SSIS .

L’expression doit être une expression SSIS valide et elle peut inclure des fonctions, des
opérateurs, et des variables système et personnalisées. Pour plus d’informations,
consultez Expressions Integration Services (SSIS) et Variables Integration Services (SSIS).

Résultats d'exécution
La contrainte de précédence peut utiliser les résultats d'exécution suivants seuls ou avec
une expression.

L'achèvement requiert uniquement que l'exécutable de précédence soit terminé,


quel que soit le résultat, pour que l'exécutable contraint s'exécute.

Le succès requiert que l'exécutable de précédence se termine avec succès pour


que l'exécutable contraint s'exécute.

L'échec requiert que l'exécutable de précédence échoue pour que l'exécutable


contraint s'exécute.

7 Notes

Seules les contraintes de précédence membres de la même collection Contrainte


de précédence peuvent être groupées dans une condition AND logique. Par
exemple, vous ne pouvez pas combiner des contraintes de précédence à partir de
deux conteneurs de boucles Foreach.

Définir les propriétés d’une contrainte de


précédence à l’aide de l’Éditeur de contrainte
de précédence
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l'onglet Flux de contrôle .

4. Double-cliquez sur la contrainte de précédence.

L’Éditeur de contrainte de précédence s’ouvre.

5. Dans la liste déroulante Opération d’évaluation , sélectionnez une opération


d’évaluation.

6. Dans la liste déroulante Valeur , sélectionnez le résultat d’exécution de l’exécutable


de précédence.

7. Si l’opération d’évaluation utilise une expression, dans la zone Expression , tapez


une expression, puis cliquez sur Tester pour évaluer l’expression.

7 Notes

Les noms de variable respectent la casse.

8. Si plusieurs tâches ou conteneurs sont connectés à l’exécutable contraint,


sélectionnez Opérateur logique AND pour spécifier que les résultats d’exécution
de tous les exécutables précédents doivent avoir la valeur true. Sélectionnez
Opérateur logique OR pour spécifier qu’un seul résultat d’exécution doit avoir la
valeur true.

9. Cliquez sur OK pour fermer la boîte de dialogue Éditeur de contrainte de


précédence.

10. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Éditeur de contrainte de précédence


Utilisez la boîte de dialogue Éditeur de contrainte de précédence pour configurer les
contraintes de précédence.

Options
Opération d’évaluation
Spécifiez l'opération d'évaluation utilisée par la contrainte de précédence. Ces
opérations sont : Contrainte, Expression, Expression et contrainte et Expression ou
contrainte.

Valeur
Spécifiez la valeur de contrainte : Réussite, Échec ou À l'achèvement.

7 Notes

La ligne de contrainte de précédence est verte pour Réussite, mise en surbrillance


pour Échecet bleue pour À l'achèvement.

Expression
Si vous utilisez les opérations Expression, Expression et contrainteou Expression ou
contrainte, tapez une expression ou lancez le Générateur d’expressions pour créer
l’expression. L'expression doit prendre une valeur de type Boolean.

Test
Validez l'expression.

ET logique
Sélectionnez cette option pour spécifier que plusieurs contraintes de précédence sur le
même exécutable doivent être évaluées ensemble. Toutes les contraintes doivent
prendre la valeur True.

7 Notes

Ce type de contrainte de précédence s'affiche sous forme de ligne pleine verte,


mise en surbrillance ou bleue.

OU logique
Sélectionnez cette option pour spécifier que plusieurs contraintes de précédence sur le
même exécutable doivent être évaluées ensemble. Une contrainte au moins doit
prendre la valeur True.

7 Notes

Ce type de contrainte de précédence s'affiche sous forme de ligne pointillée verte,


mise en surbrillance ou bleue.
Définir les propriétés d’une contrainte de
précédence à l’aide de la fenêtre Propriétés
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package à modifier.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l'onglet Flux de contrôle . Sur l’aire de conception de l’onglet Flux de
contrôle , cliquez avec le bouton droit sur la contrainte de précédence, puis cliquez
sur Propriétés. Dans la fenêtre Propriétés, modifiez les valeurs des propriétés.

4. Dans la fenêtre Propriétés , configurez les propriétés de lecture/écriture suivantes


pour les contraintes de précédence :

Propriété Action de configuration


Lecture/
écriture

Description Fournissez une description.

EvalOp Sélectionnez une opération d'évaluation. Si l’opération Expression,


ExpressionAndConstantou ExpressionOrConstant est sélectionnée, vous
pouvez spécifier une expression.

Expression Si l'opération d'évaluation inclut une expression, fournissez une


expression. L'expression doit prendre une valeur de type Boolean. Pour
plus d’informations sur le langage des expressions, consultez
Expressions Integration Services (SSIS).

LogicalAnd Définissez LogicalAnd pour spécifier si la contrainte de précédence est


évaluée en accord avec d’autres contraintes de précédence quand
plusieurs exécutables précèdent l’exécutable contraint et lui sont liés

Nom Mettez à jour le nom de la contrainte de précédence.

ShowAnnotation Spécifiez le type d'annotation à utiliser. Sélectionnez Never pour


désactiver les annotations, AsNeeded pour activer l’annotation à la
demande, ConstraintName pour annoter automatiquement en utilisant
la valeur de la propriété Name, ConstraintDescription pour annoter
automatiquement en utilisant la valeur de la propriété Description et
ConstraintOptions pour annoter automatiquement en utilisant les
valeurs des propriétés Value et Expression.

Valeur Si l’opération d’évaluation spécifiée dans la propriété EvalOP inclut une


contrainte, sélectionnez le résultat d’exécution de l’exécutable de
contrainte.
5. Fermez la fenêtre Propriétés.

6. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Définir la valeur d’une contrainte de


précédence à l’aide du menu contextuel
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l'onglet Flux de contrôle .

4. Sur la surface de dessin de l’onglet Flux de contrôle , cliquez avec le bouton droit
sur la contrainte de précédence, puis cliquez sur Succès, Échec de l’opérationou
Dernière étape.

5. Pour enregistrer le package mis à jour, cliquez sur Enregistrer l’élément


sélectionné dans le menu Fichier .

Ajouter des expressions aux contraintes de


précédence
Une contrainte de précédence peut utiliser une expression pour définir la contrainte
entre deux exécutables : l'exécutable de précédence et l'exécutable contraint. Les
exécutables peuvent être des tâches ou des conteneurs. L'expression peut être utilisée
seule ou en combinaison avec le résultat d'exécution de l'exécutable de précédence. Le
résultat d'exécution d'un exécutable est soit succès, soit échec. Quand vous configurez
le résultat d’exécution d’une contrainte de précédence, vous pouvez lui affecter la valeur
Succès, Échecou Achèvement. Succès exige que l’exécutable de précédence réussisse,
Échec exige que l’exécutable de précédence échoue et Achèvement indique que
l’exécutable contraint doit s’exécuter, que la tâche de précédence réussisse ou échoue.
Pour plus d’informations, consultez Contraintes de précédence.

Le résultat d’évaluation de l’expression doit être True ou False et l’expression doit être
une expression Integration Services valide. L'expression peut utiliser des littéraux, des
variables système et personnalisées, ainsi que les fonctions et opérateurs fournis par la
grammaire des expressions SSIS . Par exemple, l’expression @Count == SQRT(144) + 10
utilise la variable Count, la fonction SQRT, ainsi que les opérateurs égal à (==) et ajouter
(+). Pour plus d’informations, consultez Expressions Integration Services (SSIS).

Dans l'illustration qui suit, la tâche A et la tâche B sont liées par une contrainte de
précédence qui utilise un résultat d'exécution et une expression. La valeur de la
contrainte est définie sur Success et l’expression est @X >== @Z . La tâche B, la tâche
contrainte, s’exécute uniquement si la tâche A se termine avec succès et si la valeur de la
variable X est supérieure ou égale à la valeur de la variable Z.

Les exécutables peuvent également être liés par plusieurs contraintes de précédence
contenant des expressions différentes. Par exemple, dans l'illustration qui suit, les tâches
B et C sont liées à la tâche A par des contraintes de précédence qui utilisent des
résultats d'exécution et des expressions. Les deux valeurs de contrainte sont définies sur
Success. Une contrainte de précédence comprend l’expression @X >== @Z , et l’autre
contrainte de précédence comprend l’expression @X < @Z . En fonction des valeurs de la
variable X et de la variable Z, la tâche C ou la tâche B s’exécute.

Vous pouvez ajouter ou modifier une expression à l’aide de l’Éditeur de contrainte de


précédence dans le concepteur SSIS et la fenêtre Propriétés fournie par SQL Server Data
Tools (SSDT) . Cependant, la fenêtre Propriétés ne propose aucune vérification de la
syntaxe de l'expression.

Si une contrainte de précédence inclut une expression, une icône s’affiche sur la surface
de dessin de l’onglet Flux de contrôle , en regard de la contrainte de précédence et
l’info-bulle de l’icône affiche l’expression.

Ajouter une expression à une contrainte de précédence


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l'onglet Flux de contrôle .


4. Dans l’aire de conception de l’onglet Flux de contrôle , double-cliquez sur la
contrainte de précédence. L’Éditeur de contrainte de précédence s’ouvre.

5. Sélectionnez Expression, Expression et contrainteou Expression ou contrainte


dans la liste Opération d’évaluation .

6. Tapez une expression dans la zone de texte Expression ou lancez le Générateur


d’expressions pour créer une expression.

7. Pour valider la syntaxe de l’expression, cliquez sur Tester.

8. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Combinaison de valeurs d’exécution et d’expressions


Le tableau qui suit décrit les effets de la combinaison d'une contrainte de valeur
d'exécution et d'une expression dans une contrainte de précédence.

Opération Résultat d'évaluation de Résultat d'évaluation L'exécutable


d'évaluation la contrainte de l'expression contraint s'exécute

Contrainte Vrai N/A Vrai

Contrainte Faux N/A Faux

Expression N/A True True

Expression N/A False False

Contrainte et True True True


expression

Contrainte et True False False


expression

Contrainte et False True False


expression

Contrainte et False False False


expression

Contrainte ou True True True


expression

Contrainte ou True False True


expression
Opération Résultat d'évaluation de Résultat d'évaluation L'exécutable
d'évaluation la contrainte de l'expression contraint s'exécute

Contrainte ou False True True


expression

Contrainte ou False False False


expression

Scénarios de contraintes complexes avec


plusieurs contraintes de précédence
Une contrainte de précédence connecte deux exécutables : deux tâches, deux
conteneurs, ou un de chaque. Ils sont connus sous le nom d'exécutable de précédence
et d'exécutable contraint. Un exécutable contraint peut comprendre plusieurs
contraintes de précédence. Pour plus d’informations, consultez Contraintes de
précédence.

Assembler des scénarios de contraintes complexes par regroupement de contraintes


permet d'implémenter un flux de contrôle complexe dans les packages. Par exemple,
dans l’illustration qui suit, la tâche D est liée à la tâche A par une contrainte Success , la
tâche D est liée à la tâche B par une contrainte Failure , et la tâche D est liée à la tâche C
par une contrainte Success . Les contraintes de précédence entre la tâche D et la tâche
A, entre la tâche D et la tâche B, et entre la tâche D et la tâche C participent à une
relation et logique. Par conséquent, pour que la tâche D s'exécute, la tâche A doit
s'exécuter avec succès, la tâche B doit échouer et la tâche C doit s'exécuter avec succès.

Propriété LogicalAnd
Si une tâche ou un conteneur comporte plusieurs contraintes, la propriété LogicalAnd
indique si une contrainte de précédence est évaluée seule ou de concert avec les autres
contraintes.
Vous pouvez définir la propriété LogicalAnd à l’aide de l’Éditeur de contrainte de
précédence dans le concepteur SSIS ou dans la fenêtre Propriétés fournie par SQL
Server Data Tools (SSDT) .

Définir la valeur par défaut des contraintes de


précédence
Pendant la première utilisation du concepteur SSIS , la valeur par défaut d’une
contrainte de précédence est Success. Suivez les étapes ci-dessous pour configurer le
concepteur SSIS de sorte qu'il utilise une valeur par défaut différente pour les
contraintes de précédence.

1. Ouvrez SQL Server Data Tools (SSDT).

2. Dans le menu Outils , cliquez sur Options.

3. Dans la boîte de dialogue Options , développez Concepteurs Business


Intelligence , puis Concepteurs de services d’intégration.

4. Cliquez sur Connexion automatique flux de contrôle , puis sélectionnez


Connecter une nouvelle forme sur la forme sélectionnée par défaut.

5. Dans la liste déroulante, choisissez Utiliser une contrainte Failure (échec) pour la
nouvelle forme ou Utiliser une contrainte Completion (fin) pour la nouvelle
forme.

6. Cliquez sur OK.

Créer une contrainte de précédence par défaut


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l'onglet Flux de contrôle .

4. Sur la surface de dessin de l’onglet Flux de contrôle , cliquez sur la tâche ou le


conteneur et faites glisser son connecteur vers l’exécutable auquel vous voulez que
la contrainte de précédence s’applique.

5. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .
Data Flow
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

SQL Server Integration Services fournit trois types différents de composants de flux de
données : les sources, les transformations et les destinations. Les sources extraient les
données des banques de données qui peuvent être des tables et des vues de bases de
données relationnelles, des fichiers et des bases de données Analysis Services . Les
transformations modifient, synthétisent et nettoient les données. Les destinations
chargent les données dans des banques de données ou créent des datasets en
mémoire.

7 Notes

Lorsque vous créez des fournisseurs personnalisés, vous devez mettre à jour le
dossier ProviderDescriptors.xml avec les valeurs de la colonne de métadonnées.

Par ailleurs, Integration Services propose des chemins qui connectent la sortie d’un
composant à l’entrée d’un autre. Les chemins d'accès définissent la séquence des
composants et vous permettent d'ajouter des annotations au flux de données ou
d'afficher la source de la colonne.

Les composants du flux de données sont connectés en connectant la sortie des sources
et des destinations à l'entrée des transformations et des destinations. Lors de la
construction d'un flux de données, vous connectez généralement le second composant
et les suivants au moment où vous les ajoutez au flux de données. Après avoir connecté
le composant, les colonnes d'entrée peuvent être utilisées pour configurer le
composant. Lorsqu'aucune colonne d'entrée n'est disponible, vous devez configurer le
composant une fois celui-ci connecté au flux de données. Pour plus d’informations,
consultez Chemins d’accès d’Integration Services et Connecter des composants avec des
chemins d’accès.

Le diagramme qui suit montre un flux de données composé d'une source, d'une
transformation avec une entrée et une sortie et d'une destination. Ce diagramme
indique les entrées, les sorties et les sorties d'erreurs, de même que les colonnes
d'entrée, de sortie et externes.
Implémentation des flux de données
L'ajout d'une tâche de flux de données au flux de contrôle d'un package constitue la
première étape de l'implémentation d'un flux de données dans un package. Un package
peut inclure plusieurs tâches de flux de données, chacune possédant son propre flux de
données. Par exemple, si un package requiert que des flux de données soient exécutés
dans un ordre spécifique ou que d'autres tâches soient exécutées entre les flux de
données, vous devez utiliser une tâche de flux de données distincte pour chaque flux de
données.

Une fois que le flux de contrôle contient une tâche de flux de données, vous pouvez
commencer à générer le flux de données utilisé par un package. Pour plus
d’informations, consultez Tâche de flux de données.

La création d'un flux de données comprend les étapes suivantes :

ajout d'une ou de plusieurs sources pour extraire les données des fichiers et des
bases de données, et ajout de gestionnaires de connexions permettant de se
connecter aux sources ;

ajout des transformations qui répondent aux besoins métier du package. Un flux
de données ne doit pas obligatoirement inclure des transformations.
Certaines transformations requièrent un gestionnaire de connexions. Par exemple,
la transformation de recherche utilise un gestionnaire de connexions pour se
connecter à la base de données contenant les données de recherche.

connexion des composants du flux de données en connectant la sortie des sources


et des transformations à l'entrée des transformations et des destinations ;

ajout d'une ou de plusieurs destinations pour charger les données dans des
magasins de données tels que des fichiers et des bases de données, et ajout de
gestionnaires de connexions permettant de se connecter aux sources de données ;

configuration des sorties d'erreurs sur les composants afin de résoudre les
problèmes.

Au moment de l'exécution, des erreurs au niveau des lignes peuvent se produire


lorsque des composants de flux de données convertissent des données, effectuent
des recherches ou évaluent des expressions. Par exemple, une colonne de données
avec une valeur de chaîne ne peut pas être convertie en entier ou une expression
tente de diviser par zéro. Ces deux opérations provoquent des erreurs et les lignes
contenant ces erreurs peuvent être traitées séparément à l'aide d'un flux d'erreur.
Pour plus d’informations sur l’utilisation de flux d’erreurs dans un flux de données
de package, consultez Gestion des erreurs dans les données.

Incluez des annotations afin que le flux de données s'auto-documente. Pour plus
d’informations, consultez Utiliser des annotations dans les packages.

7 Notes

Lorsque vous créez un nouveau package, vous pouvez également utiliser un


Assistant pour vous aider à configurer correctement des gestionnaires de
connexions, des sources et des destinations. Pour plus d'informations, consultez
Create Packages in SQL Server Data Tools.

Quand l’onglet Flux de données est actif, la boîte à outils contient les sources, les
transformations et les destinations que vous pouvez ajouter au flux de données.

Expressions
Plusieurs composants de flux de données, notamment les sources, les transformations et
les destinations, prennent en charge l’usage d’expressions de propriété dans certaines
de leurs propriétés. Une expression de propriété est une expression qui remplace la
valeur de la propriété lors du chargement du package. Au moment de l'exécution, le
package utilise les valeurs de propriétés mises à jour. Les expressions sont construites
avec la syntaxe d’expression Integration Services et peuvent inclure des fonctions,
opérateurs, identificateurs et variables Integration Services. Pour plus d’informations,
consultez Expressions Integration Services (SSIS), Expressions Integration Services (SSIS)
et Utiliser des expressions de propriété dans des packages.

Si vous construisez un package dans SQL Server Data Tools (SSDT), les propriétés de
tous les composants de flux de données prenant en charge des expressions de propriété
sont exposées dans la tâche de flux de données à laquelle elles appartiennent. Pour
ajouter, modifier et supprimer les expressions de propriété des composants de flux de
données, cliquez sur la tâche de flux de données, puis utilisez la fenêtre Propriétés ou
l'éditeur de la tâche pour ajouter, modifier ou supprimer les expressions de propriété.
Les expressions de propriété de la tâche de flux de données même sont gérées dans la
fenêtre Propriétés.

Si le flux de données renferme des composants qui utilisent des expressions, celles-ci
apparaissent également dans la fenêtre Propriétés. Pour visualiser les expressions,
sélectionnez la tâche de flux de données à laquelle le composant appartient. Vous
pouvez visualiser les propriétés par catégories ou par ordre alphabétique. Si vous optez
pour l’affichage par catégories dans la fenêtre Propriétés, toutes les expressions non
utilisées dans une propriété spécifique sont répertoriées dans la catégorie Divers . Si
vous choisissez l'affichage par ordre alphabétique, les expressions s'affichent dans
l'ordre du nom du composant de flux de données.

Sources
Dans Integration Services, une source est le composant du flux de données qui met à
disposition des autres composants du flux de données les données de différentes
sources externes. Vous pouvez extraire des données de fichiers plats, de fichiers XML, de
classeurs Microsoft Excel et de fichiers contenant des données brutes. Vous pouvez
également extraire des données en accédant à des tables et des vues dans des bases de
données et en exécutant des requêtes.

Un flux de données peut inclure une ou plusieurs sources.

La source d'un flux de données comporte généralement une sortie normale. La sortie
normale contient des colonnes de sortie, qui sont les colonnes ajoutées par la source au
flux de données.

La sortie normale référence des colonnes externes. Une colonne externe est une colonne
de la source. Par exemple, la colonne MadeFlag de la table Product de la base de
données AdventureWorks est une colonne externe qui peut être ajoutée à la sortie
normale. Les métadonnées des colonnes externes incluent des informations comme le
nom, le type de données et la longueur de la colonne source.

La sortie d'erreur d'une source contient les mêmes colonnes que la sortie normale plus
deux colonnes supplémentaires contenant des informations sur les erreurs. Le modèle
objet Integration Services ne limite pas le nombre de sorties normales et de sorties
d'erreurs des sources. La plupart des sources incluses dans Integration Services , à
l'exception du composant Script, comportent une sortie normale et de nombreuses
sources comportent une sortie d'erreur. Des sources personnalisées peuvent être codées
afin d'implémenter plusieurs sorties normales et sorties d'erreurs.

Toutes les colonnes de sortie sont disponibles comme colonnes d'entrée pour le
composant suivant du flux de données.

Vous pouvez également écrire des sources personnalisées. Pour plus d’informations,
consultez Développement d’un composant de flux de données personnalisé et
Développement de types spécifiques de composants de flux de données.

Les sources suivantes ont des propriétés pouvant être mises à jour par des expressions
de propriété :

Source ADO NET

Source XML

Sources pouvant être téléchargées


Le tableau suivant répertorie d'autres sources que vous pouvez télécharger à partir du
site Web de Microsoft .

Source Description

Source La source Oracle est le composant source du Connecteur Microsoft pour Oracle par
Oracle Attunity. Le Connecteur Microsoft pour Oracle par Attunity inclut aussi un gestionnaire
de connexions et une destination. Pour plus d'informations, consultez la page de
téléchargement Microsoft Connectors for Oracle and Teradata by Attunity (en
anglais).

Source La source SAP BI est le composant source du Connecteur Microsoft for SAP BI. Le
SAP BI Connecteur Microsoft for SAP BI inclut aussi un gestionnaire de connexions et une
destination. Pour plus d’informations, consultez la page de téléchargement Feature
Pack Microsoft SQL Server 2008 .
Source Description

Source La source Teradata est le composant source du Connecteur Microsoft pour Teradata
Teradata par Attunity. Le Connecteur Microsoft pour Teradata par Attunity inclut aussi un
gestionnaire de connexions et une destination. Pour plus d'informations, consultez la
page de téléchargement Microsoft Connectors for Oracle and Teradata by
Attunity (en anglais).

Pour obtenir une démonstration de la manière d’exploiter les gains de performances du


Connecteur Microsoft pour Oracle par Attunity, consultez Performance of Microsoft
Connector for Oracle by Attunity (vidéo SQL Server).

Transformations
Les fonctionnalités des transformations peuvent être très différentes. Elles peuvent
réaliser des tâches comme la mise à jour, la synthèse, le nettoyage, la fusion ou encore
la distribution de données. Vous pouvez modifier les valeurs des colonnes, rechercher
des valeurs dans des tables, nettoyer des données et agréger les valeurs de colonnes.

Les entrées et sorties d'une transformation définissent les colonnes des données
entrantes et sortantes. En fonction de l'opération réalisée sur les données, certaines
transformations comportent une seule entrée et plusieurs sorties, alors que d'autres
auront plusieurs entrées et une seule sortie. Les transformations peuvent également
inclure des sorties d'erreurs, qui fournissent des informations sur l'erreur qui s'est
produite et indiquent les données ayant échoué, par exemple des données de type
String qui n'ont pas pu être converties en données de type Integer. Le modèle objet
Integration Services ne limite pas le nombre d'entrées, de sorties normales et de sorties
d'erreurs des transformations. Vous pouvez créer des transformations personnalisées qui
implémentent une combinaison de plusieurs entrées, sorties normales et sorties
d'erreurs.

L'entrée d'une transformation est définie comme une ou plusieurs colonnes d'entrée.
Certaines transformations Integration Services peuvent aussi avoir comme entrée des
colonnes externes référencées. Par exemple, l'entrée de la transformation de commande
OLE DB comprend des colonnes externes. Une colonne de sortie est une colonne que la
transformation ajoute au flux de données. Les sorties normales et les sorties d'erreurs
contiennent des colonnes de sortie. Ces colonnes de sortie sont à leur tour disponibles
comme colonnes d'entrées par le composant suivant du flux de données qui peut être
une autre transformation ou une destination.

Les transformations suivantes ont des propriétés pouvant être mises à jour par des
expressions de propriété :
Transformation de fractionnement conditionnel

Transformation de colonne dérivée

Transformation de regroupement probable

Transformation de recherche floue

Transformation de commande OLE DB

Transformation d’échantillonnage par pourcentage

Transformation de tableau croisé dynamique

Transformation d'échantillonnage de lignes

Transformation de tri

Transformation de suppression de tableau croisé dynamique

Pour plus d’informations, consultez Transformations Integration Services.

Destinations
Une destination est le composant de flux de données qui écrit les données d'un flux de
données dans une banque de données spécifique ou crée un dataset en mémoire. Vous
pouvez charger des données dans des fichiers plats, traiter des objets analytiques et
fournir des données à d'autres processus. Vous pouvez également charger des données
en accédant à des tables et des vues dans des bases de données et en exécutant des
requêtes.

Un flux de données peut inclure plusieurs destinations qui chargent les données dans
différentes banques de données.

Une destination Integration Services doit comporter au moins une entrée. L'entrée
contient des colonnes d'entrée provenant d'un autre composant du flux de données. Les
colonnes d'entrée sont mappées aux colonnes de la destination.

De nombreuses destinations comportent également une sortie d'erreur. La sortie


d'erreur d'une destination comporte des colonnes de sortie qui contiennent
généralement des informations sur les erreurs qui se produisent lors de l'écriture de
données dans la banque de données de destination. Ces erreurs peuvent se produire
pour de nombreuses raisons différentes. Par exemple, une colonne peut contenir une
valeur null, alors que la colonne de destination ne peut pas être définie sur null.
Le modèle objet Integration Services ne limite pas le nombre d'entrées normales et de
sorties d'erreurs des destinations. Vous pouvez créer des destinations personnalisées qui
implémentent plusieurs entrées et sorties d'erreurs.

Vous pouvez également écrire des destinations personnalisées. Pour plus d’informations,
consultez Développement d’un composant de flux de données personnalisé et
Développement de types spécifiques de composants de flux de données.

Les destinations suivantes ont des propriétés pouvant être mises à jour par des
expressions de la propriété :

Destination de fichier plat

Destination SQL Server Compact Edition

Destinations pouvant être téléchargées


Le tableau suivant répertorie d’autres destinations que vous pouvez télécharger à partir
du site web Microsoft .

Source Description

Destination La destination Oracle est le composant de destination du Connecteur Microsoft


Oracle pour Oracle par Attunity. Le Connecteur Microsoft pour Oracle par Attunity inclut
aussi un gestionnaire de connexions et une source. Pour plus d'informations,
consultez la page de téléchargement Microsoft Connectors for Oracle and Teradata
by Attunity (en anglais).

Destination La destination SAP BI est le composant de destination du Connecteur Microsoft for


SAP BI SAP BI. Le Connecteur Microsoft for SAP BI inclut aussi un gestionnaire de
connexions et une source. Pour plus d’informations, consultez la page de
téléchargement Feature Pack Microsoft SQL Server 2008 .

Destination La destination Teradata est le composant de destination du Connecteur Microsoft


Teradata pour Teradata par Attunity. Le Connecteur Microsoft pour Teradata par Attunity
inclut aussi un gestionnaire de connexions et une source. Pour plus d'informations,
consultez la page de téléchargement Microsoft Connectors for Oracle and Teradata
by Attunity (en anglais).

Pour obtenir une démonstration de la manière d’exploiter les gains de performances du


Connecteur Microsoft pour Oracle par Attunity, consultez Performance of Microsoft
Connector for Oracle by Attunity (vidéo SQL Server).

Gestionnaires de connexions
De nombreux composants de flux de données se connectent à des sources de données.
Vous devez ajouter au package les gestionnaires de connexions requis par les
composants avant de pouvoir configurer correctement le composant. Vous pouvez
ajouter les gestionnaires de connexions au moment de la construction du flux de
données ou avant de commencer à le construire. Pour plus d’informations, consultez
Connexions Integration Services (SSIS) et Créer des gestionnaires de connexions.

Métadonnées externes
Lorsque vous créez un flux de données dans un package à l'aide du concepteur SSIS , les
métadonnées des sources et des destinations sont copiées dans les colonnes externes
des sources et des destinations et servent d'instantané du schéma. Quand Integration
Services valide le package, le concepteur SSIS compare cet instantané au schéma de la
source ou de la destination et publie des erreurs et des avertissements en fonction des
disparités constatées.

Le projet Integration Services peut être utilisé en mode hors connexion. Aucune
connexion aux sources et aux destinations utilisées par le package n'est alors établie et
les métadonnées des colonnes externes ne sont pas mises à jour.

Entrées et sorties
Les sources comportent des sorties, les destinations des entrées et les transformations
des entrées et des sorties. Par ailleurs, de nombreux composants de flux de données
peuvent être configurés pour utiliser une sortie d'erreur.

Entrées
Les destinations et les transformations comportent des entrées. Une entrée contient une
ou plusieurs colonnes d'entrée qui peuvent faire référence à des colonnes externes si le
composant de flux de données a été configuré pour cela. Les entrées peuvent être
configurées pour analyser et contrôler le flux de données. Vous pouvez ainsi spécifier si
le composant doit échouer en réponse à une erreur, ignorer les erreurs ou rediriger les
lignes d'erreur vers la sortie d'erreur. Vous pouvez également donner une description de
l'entrée ou mettre à jour le nom de l'entrée. Dans le concepteur SSIS , les entrées sont
configurées via la boîte de dialogue Éditeur avancé . Pour plus d’informations sur
l’Éditeur avancé , consultez Interface utilisateur d’Integration Services.

Sorties
Les sources et les transformations comportent toujours des sorties. Une sortie contient
une ou plusieurs colonnes de sortie qui peuvent faire référence à des colonnes externes
si le composant de flux de données a été configuré pour cela. Les sorties peuvent être
configurées de manière à fournir des informations utiles pour le traitement en aval des
données. Par exemple, vous pouvez indiquer si la sortie est triée. Vous pouvez
également donner une description de la sortie ou mettre à jour le nom de la sortie. Dans
le concepteur SSIS , les sorties sont configurées via la boîte de dialogue Éditeur avancé .

Sorties d'erreurs
Les sources, les destinations et les transformations peuvent inclure des sorties d'erreurs.
Vous pouvez indiquer de quelle manière le composant de flux de données répond aux
erreurs dans chaque entrée ou colonne via la boîte de dialogue Configurer la sortie
d’erreur . En cas d'erreur ou de troncation des données lors de l'exécution, si le
composant du flux de données est configuré pour rediriger les lignes, les lignes de
données contenant l'erreur sont envoyées vers la sortie d'erreur. Le sortie d'erreur peut
être connectée à des transformations qui appliquent des transformations
supplémentaires ou dirigent les données vers une destination différente. Par défaut, une
sortie d’erreur contient les colonnes de sortie et deux colonnes d’erreur : ErrorCode et
ErrorColumn. Les colonnes de sortie contiennent les données de la ligne contenant
l’erreur, ErrorCode indique le code d’erreur et ErrorColumn identifie la colonne
contenant l’erreur.

Pour plus d’informations, consultez Gestion des erreurs dans les données.

Colonnes
Les entrées, les sorties et les sorties d'erreurs sont des collections de colonnes. Chaque
colonne peut être configurée, et les propriétés proposées par Integration Services
varient en fonction du type de colonne (entrée, sortie ou externe). Integration Services
permet de définir les propriétés des colonnes selon trois méthodes différentes : par
programmation, en utilisant les boîtes de dialogue spécifiques aux composants ou via la
boîte de dialogue Éditeur avancé.

Chemins d'accès
Les chemins d'accès connectent les composants des flux de données. Dans le
concepteur SSIS , vous pouvez afficher et modifier les propriétés des chemins, afficher
les métadonnées de sortie du point de départ du chemin et attacher des visionneuses
de données à un chemin.
Pour plus d’informations, consultez Chemins d’accès d’Integration Services et Débogage
d’un flux de données.

Configuration des composants de flux de


données
Les composants de flux de données peuvent être configurés au niveau du composant,
au niveau de l'entrée, de la sortie et de la sortie d'erreur et au niveau de la colonne.

Au niveau du composant, vous définissez les propriétés qui sont communes à tous
les composants, ainsi que les propriétés personnalisées du composant.

Au niveau de l'entrée, de la sortie et de la sortie d'erreur, vous définissez les


propriétés communes des entrées, des sorties et de la sortie d'erreur. Si le
composant prend en charge plusieurs sorties, vous pouvez ajouter des sorties.

Au niveau de la colonne, vous définissez les propriétés communes à toutes les


colonnes, qui viennent s'ajouter aux propriétés personnalisées fournies par le
composant pour les colonnes. Si le composant prend en charge l'ajout de colonnes
de sortie, vous pouvez ajouter des colonnes aux sorties.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation. Dans le concepteur SSIS , vous pouvez définir les propriétés des
éléments via les boîtes de dialogue personnalisées fournies pour chaque type d’élément
ou encore au moyen de la fenêtre Propriétés ou de la boîte de dialogue Éditeur avancé .

Pour plus d’informations sur la définition des propriétés à l’aide du concepteur SSIS ,
consultez Définir les propriétés d’un composant de flux de données.

Tâches associées
Ajouter ou supprimer un composant dans un flux de données

Connecter des composants dans un flux de données

Contenu associé
Vidéo, Performance of Microsoft Connector for Oracle by Attunity (SQL Server Video)
(Performances de Microsoft Connector pour Oracle par Attunity), sur le site web
technet.microsoft.com.
Données dans des flux de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Integration Services propose un ensemble de types de données qui sont utilisés dans les
flux de données.

Conversion de type de données


La source que vous ajoutez à un flux de données convertit les données sources en types
de données Integration Services . Les transformations effectuées par la suite peuvent
convertir les données en types de données Integration Services différents et selon le
type de banque de données dans lequel les données sont chargées, les destinations
peuvent convertir le type de données Integration Services final dans le type requis par la
banque de données de destination. Pour plus d’informations, consultez Types de
données Integration Services.

Pour convertir les données en un type de données Integration Services , un composant


de flux de données analyse les données. Integration Services propose deux types
d’analyses des données : l’analyse rapide et l’analyse standard. La plupart des
composants de flux de données ne peuvent utiliser que l'analyse standard. Cependant la
source de fichier plat et la transformation de conversion de données peuvent utiliser
l'analyse rapide ou l'analyse standard. Pour plus d’informations, consultez Analyse des
données.

Comparaison des types de données


De nombreuses transformations comparent les valeurs de données. Par exemple, la
transformation d'agrégation compare les valeurs dans le but d'agréger les valeurs dans
un ensemble de lignes de données ; la transformation de tri compare les valeurs afin de
les trier et la transformation de recherche compare les valeurs à celles d'une table de
référence distincte. Pour spécifier la manière dont les chaînes doivent être comparées, la
transformation inclut un ensemble d'options de comparaison qui déterminent par
exemple si la casse doit être ignorée, si les espaces doivent être ignorés dans les chaînes
et comment gérer les caractères Kana dans les textes japonais. Pour plus d'informations,
voir Comparing String Data.

L'évaluateur d'expression compare également les valeurs de données lorsqu'il évalue les
expressions utilisées par les variables, les contraintes de précédence et les
transformations.

Dépannage du flux de données


Une fois que vous avez déployé un package sur le catalogue Integration Services , vous
pouvez analyser le flux de données dans le package au moment de l’exécution pour
vérifier les performances ou pour détecter d’autres problèmes. Des rapports standard
sont disponibles et vous permettent de consulter l'état et l'historique du package. Vous
pouvez interroger les vues de base de données qui fournissent des informations
détaillées sur l'exécution du package. De plus, vous pouvez ajouter et supprimer
dynamiquement des drainages de données au moment de l'exécution pour cibler des
éléments spécifiques de votre package. Pour plus d’informations, consultez Débogage
d’un flux de données.
Types de données d'Integration Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Quand des données entrent dans un flux de données dans un package, la source qui extrait les données les
convertit en type Integration Services . Les données numériques se voient attribuer le type de données numeric,
les données chaînes le type de données character et les dates le type de données date. Le type de données
Integration Services approprié est également affecté aux autres données, comme les GUID et les BLOB (Binary
Large Object Blocks). Si le type des données ne peut pas être converti en un type de données Integration Services
, une erreur se produit.

Certains composants de flux de données convertissent les types de données entre les types de données
Integration Services et les types de données managées de Microsoft .NET Framework. Pour plus d’informations sur
le mappage entre Integration Services et les types de données managées, consultez Utilisation de types de
données dans le flux de données.

Le tableau suivant énumère les types de données Integration Services . Des informations de précision et d'échelle
s'appliquent à certains types de données du tableau. Pour plus d’informations sur la précision et l’échelle,
consultez Précision, échelle et longueur (Transact-SQL).

Type de données Description

DT_BOOL Valeur booléenne.

DT_BYTES Valeur de données binaires. La longueur est variable et ne peut pas dépasser 8 000 octets.

DT_CY Valeur de devise. Ce type de données est un entier signé de 8 octets avec une échelle de 4 et une
précision maximale de 19 chiffres.

DT_DATE Structure de date comprenant l'année, le mois, le jour, les heures, les minutes, les secondes et les
fractions de seconde. Les fractions de seconde ont une échelle fixe de 7 chiffres.

Le type de données DT_DATE est implémenté à l'aide d'un nombre à virgule flottante à 8 octets.
Les jours sont représentés par des incréments de nombres entiers, commençant le 30 décembre
1899, minuit correspondant à l'heure zéro. Les valeurs d'heure sont exprimées sous la forme de la
valeur absolue de la partie fractionnaire du nombre. Cependant, une valeur à virgule flottante ne
peut pas représenter toutes les valeurs réelles ; des restrictions sont par conséquent imposées
quant à la plage des dates pouvant être représentées dans DT_DATE.

D'autre part, DT_DBTIMESTAMP est représenté par une structure comportant en interne des
champs individuels pour l'année, le mois, le jour, les heures, les minutes, les secondes et les
millisecondes. Ce type de données a des limites plus étendues quant aux plages de dates qu'il peut
représenter.

DT_DBDATE Structure de date comprenant l'année, le mois et le jour.

DT_DBTIME Structure d'heure comprenant les heures, les minutes et les secondes.

DT_DBTIME2 Structure d'heure comprenant les heures, les minutes, les secondes et les fractions de seconde. Les
fractions de seconde ont une échelle maximale de 7 chiffres.

DT_DBTIMESTAMP Structure d'horodateur comprenant l'année, le mois, le jour, les heures, les minutes, les secondes et
les fractions de seconde. Les fractions de seconde ont une échelle maximale de 3 chiffres.

DT_DBTIMESTAMP2 Structure d'horodateur comprenant l'année, le mois, le jour, les heures, les minutes, les secondes et
les fractions de seconde. Les fractions de seconde ont une échelle maximale de 7 chiffres.
Type de données Description

DT_DBTIMESTAMPOFFSET Structure d'horodateur comprenant l'année, le mois, le jour, les heures, les minutes, les secondes et
les fractions de seconde. Les fractions de seconde ont une échelle maximale de 7 chiffres.

Contrairement aux types de données DT_DBTIMESTAMP et DT_DBTIMESTAMP2, le type de données


DT_DBTIMESTAMPOFFSET a un décalage de fuseau horaire. Ce décalage spécifie le nombre
d'heures et de minutes de décalage de l'heure par rapport au temps universel coordonné (UTC). Le
décalage de fuseau horaire est utilisé par le système pour obtenir l'heure locale.

Le décalage de fuseau horaire doit inclure un signe (plus ou moins) pour indiquer si le décalage est
ajouté au temps universel coordonné ou en est soustrait. Le nombre valide de décalage d'heures
est compris entre -14 et +14. Le signe du décalage de minutes dépend du signe du décalage
d'heures :

Si le signe du décalage d'heures est négatif, le décalage de minutes doit être négatif ou zéro.

Si le signe du décalage d'heures est positif, le décalage de minutes doit être positif ou zéro.

Si le signe du décalage d'heures est zéro, le décalage de minutes peut être n'importe quelle valeur
comprise entre -0,59 et + 0,59.

DT_DECIMAL Valeur numérique exacte avec une précision et une échelle fixes. Ce type de données est un entier
non signé de 12 octets avec un signe séparé, une échelle comprise entre 0 et 28 et une précision
maximale de 29.

DT_FILETIME Valeur 64 bits représentant le nombre d'intervalles de 100 nanosecondes depuis le 1er janvier
1601. Les fractions de seconde ont une échelle maximale de 3 chiffres.

DT_GUID Identificateur global unique (GUID).

DT_I1 Entier signé de 1 octet.

DT_I2 Entier signé de 2 octets.

DT_I4 Entier signé de 4 octets.

DT_I8 Entier signé de 8 octets.

DT_NUMERIC Valeur numérique exacte avec une précision et une échelle fixes. Ce type de données est un entier
non signé de 16 octets avec un signe séparé, une échelle comprise entre 0 et 38 et une précision
maximale de 38.

DT_R4 Valeur à virgule flottante simple précision.

DT_R8 Valeur à virgule flottante double précision.

DT_STR Chaîne de caractères ANSI/MBCS se terminant par une valeur Null, d’une longueur maximale de 8
000 caractères. (Si une valeur de colonne contient des indicateurs de fin Null, la chaîne apparaît
tronquée dès la première valeur Null.)

DT_UI1 Entier non signé de 1 octet.

DT_UI2 Entier non signé de 2 octets.

DT_UI4 Entier non signé de 4 octets.

DT_UI8 Entier non signé de 8 octets.

DT_WSTR Chaîne de caractères Unicode se terminant par une valeur Null avec une longueur maximale de 4
000 caractères. (Si une valeur de colonne contient des indicateurs de fin Null, la chaîne apparaît
tronquée dès la première valeur Null.)

DT_IMAGE Valeur binaire avec une taille maximale de 2^31-1 (2 147 483 647) octets. .
Type de données Description

DT_NTEXT Chaîne de caractères Unicode avec une longueur maximale de 2^30-1 (1 073 741 823) caractères.

DT_TEXT Chaîne de caractères ANSI/MBCS d’une longueur maximale de 2^31-1 (2 147 483 647) caractères.

Conversion de types de données


Si les données d'une colonne n'ont pas besoin de toute la largeur qui leur est allouée par le type de données
source, vous voudrez peut-être changer le type de données de la colonne. La réduction de la longueur de chaque
ligne de données permet d'optimiser les performances lors du transfert de données car plus la ligne est courte,
plus les données sont transférées rapidement de la source vers la destination.

Integration Services propose un jeu complet de types de données numeric afin que vous puissiez faire
correspondre le type de données et la taille des données. Par exemple, si les valeurs d'une colonne dont le type
de données est DT_UI8 sont toujours des entiers compris entre 0 et 3000, vous pouvez opter pour le type de
données DT_UI2. De même, si une colonne dont le type de données est DT_CY pourrait se satisfaire d'un type de
données integer aux vues des données du package, vous pouvez opter pour le type de données DT_I4.

Vous pouvez modifier les types de données d'une colonne de l'une des manières suivantes :

Utilisez une expression pour convertir des types de données de façon implicite. Pour plus d’informations,
consultez Types de données Integration Services dans les expressions, Types de données Integration Services
dans les expressions et Expressions Integration Services (SSIS).

Utilisez l'opérateur de conversion pour convertir des types de données. Pour plus d’informations, consultez
Cast (expression SSIS).

Utilisez la transformation de conversion de données pour convertir le type de données d'une colonne en un
type différent. Pour plus d’informations, voir Data Conversion Transformation.

Utilisez la transformation de colonne dérivée pour créer une copie d'une colonne ayant un type de données
différent de celui de la colonne d'origine. Pour plus d'informations, consultez Transformation de colonne
dérivée.

Conversion entre les chaînes et les types de données de date et d'heure


Le tableau suivant répertorie les résultats de la conversion entre des chaînes et des types de données de date et
d'heure :

Lorsque vous utilisez l'opérateur de conversion ou la transformation de conversion des données, le type de
données de date ou d'heure est converti au format chaîne correspondant. Par exemple, le type de données
DT_DBTIME sera converti en une chaîne au format "hh:mm:ss".

Lorsque vous souhaitez convertir à partir d'une chaîne vers un type de données de date ou d'heure, la
chaîne doit utiliser le format de chaîne qui correspond au type de données de date ou d'heure approprié.
Par exemple, pour convertir correctement certaines chaînes de date en type de données DT_DBDATE, ces
chaînes de date doivent être au format, "yyyy-mm-dd".

Type de données Format chaîne

DT_DBDATE aaaa-mm-jj

DT_FILETIME aaaa-mm-jj hh:mm:ss:fff


Type de données Format chaîne

DT_DBTIME hh:mm:ss

DT_DBTIME2 hh:mm:ss[.fffffff]

DT_DBTIMESTAMP aaaa-mm-jj hh:mm:ss[.fff]

DT_DBTIMESTAMP2 aaaa-mm-jj hh:mm:ss[.fffffff]

DT_DBTIMESTAMPOFFSET aaaa-mm-jj hh:mm:ss[.fffffff] [{+|-} hh:mm]

Dans le format de DT_FILETIME et DT_DBTIMESTAMP, « fff » est une valeur comprise entre 0 et 999 représentant
les fractions de seconde.

Dans le format de date de DT_DBTIMESTAMP2, DT_DBTIME2 et DT_DBTIMESTAMPOFFSET, « fffffff » est une valeur
comprise entre 0 et 9 999 999 représentant les fractions de seconde.

Le format de date de DT_DBTIMESTAMPOFFSET inclut également un élément de fuseau horaire. Un espace est
présent entre l'élément d'heure et l'élément de fuseau horaire.

Conversion des types de données de date/heure


Vous pouvez changer le type de données d'une colonne contenant des données de date/heure afin d'extraire la
partie date ou heure des données. Les tableaux suivants répertorient les résultats du changement d'un type de
données de date/heure en un autre type de données de date/heure.

Conversion à partir de DT_FILETIME

Conversion de Résultats
DT_FILETIME en

DT_FILETIME Aucune modification.

DT_DATE Convertit le type de données.

DT_DBDATE Supprime la valeur d'heure.

DT_DBTIME Supprime la valeur de date.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres fractionnaires que le type de données DT_DBTIME peut contenir. Après la suppression de la
valeur de fraction de seconde, un rapport est généré sur cette troncation de données. Pour plus
d’informations, consultez Gestion des erreurs dans les données.

DT_DBTIME2 Supprime la valeur de date représentée par le type de données DT_FILETIME.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIME2 peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DBTIMESTAMP Convertit le type de données.

DT_DBTIMESTAMP2 Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIMESTAMP2 peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.
Conversion de Résultats
DT_FILETIME en

DT_DBTIMESTAMPOFFSET Définit zéro pour le champ de fuseau horaire dans le type de données DT_DBTIMESTAMPOFFSET.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIMESTAMPOFFSET peut contenir.
Après la suppression de la valeur de fraction de seconde, un rapport est généré sur cette
troncation de données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

Conversion à partir de DT_DATE

Conversion de DT_DATE Résultats


en

DT_FILETIME Convertit le type de données.

DT_DATE Aucune modification.

DT_DBDATE Supprime la valeur d'heure représentée par le type de données DT_DATA.

DT_DBTIME Supprime la valeur de date représentée par le type de données DT_DATE.

DT_DBTIME2 Supprime la valeur de date représentée par le type de données DT_DATE.

DT_DBTIMESTAMP Convertit le type de données.

DT_DBTIMESTAMP2 Convertit le type de données.

DT_DBTIMESTAMPOFFSET Définit zéro pour le champ de fuseau horaire dans le type de données
DT_DBTIMESTAMPOFFSET.

Conversion à partir de DT_DBDATE

Conversion de Résultats
DT_DBDATE en

DT_FILETIME Définit zéro pour les champs d'heure dans le type de données DT_FILETIME.

DT_DATE Définit zéro pour les champs d'heure dans le type de données DT_DATE.

DT_DBDATE Aucune modification.

DT_DBTIME Définit zéro pour les champs d'heure dans le type de données DT_DBTIME.

DT_DBTIME2 Définit zéro pour les champs d'heure dans le type de données DT_DBTIME2.

DT_DBTIMESTAMP Définit zéro pour les champs d'heure dans le type de données DT_DBTIMESTAMP.

DT_DBTIMESTAMP2 Définit zéro pour les champs d'heure dans le type de données DT_DBTIMESTAMP.

DT_DBTIMESTAMPOFFSET Définit zéro pour les champs d'heure et de fuseau horaire dans le type de données
DT_DBTIMESTAMPOFFSET.

Conversion à partir de DT_DBTIME

Conversion de Résultats
DT_DBTIME en

DT_FILETIME Définit la date actuelle pour le champ de date dans le type de données DT_FILETIME.
Conversion de Résultats
DT_DBTIME en

DT_DATE Définit la date actuelle pour le champ de date dans le type de données DT_DATE.

DT_DBDATE Définit la date actuelle pour le champ de date dans le type de données DT_DBDATE.

DT_DBTIME Aucune modification.

DT_DBTIME2 Convertit le type de données.

DT_DBTIMESTAMP Définit la date actuelle pour le champ de date dans le type de données DT_DBTIMESTAMP.

DT_DBTIMESTAMP2 Définit la date actuelle pour le champ de date dans le type de données DT_DBTIMESTAMP2.

DT_DBTIMESTAMPOFFSET Définit respectivement la date actuelle et zéro pour les champs de date et de fuseau horaire dans
le type de données DT_DBTIMESTAMPOFFSET.

Conversion à partir de DT_DBTIME2

Conversion de Résultats
DT_DBTIME2 en

DT_FILETIME Définit la date actuelle pour le champ de date dans le type de données DT_FILETIME.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_FILETIME peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DATE Définit la date actuelle pour le champ de date du type de données DT_DATE.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DATE peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DBDATE Définit la date actuelle pour le champ de date du type de données DT_DBDATE.

DT_DBTIME Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIME peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DBTIME2 Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIME2 de destination peut contenir.
Après la suppression de la valeur de fraction de seconde, un rapport est généré sur cette
troncation de données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DBTIMESTAMP Définit la date actuelle pour le champ de date dans le type de données DT_DBTIMESTAMP.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIMESTAMP peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DBTIMESTAMP2 Définit la date actuelle pour le champ de date dans le type de données DT_DBTIMESTAMP2.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIMESTAMP2 peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.
Conversion de Résultats
DT_DBTIME2 en

DT_DBTIMESTAMPOFFSET Définit respectivement la date actuelle et zéro pour les champs de date et de fuseau horaire dans
le type de données DT_DBTIMESTAMPOFFSET.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIMESTAMPOFFSET peut contenir.
Après la suppression de la valeur de fraction de seconde, un rapport est généré sur cette
troncation de données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

Conversion à partir de DT_DBTIMESTAMP

Conversion de Résultats
DT_DBTIMESTAMP en

DT_FILETIME Convertit le type de données.

DT_DATE Si une valeur représentée par le type de données DT_DBTIMESTAMP dépasse la plage du type de
données DT_DATE, l'erreur DB_E_DATAOVERFLOW est retournée. Pour plus d’informations,
consultez Gestion des erreurs dans les données.

DT_DBDATE Supprime la valeur d'heure représentée par le type de données DT_DBTIMESTAMP.

DT_DBTIME Supprime la valeur de date représentée par le type de données DT_DBTIMESTAMP.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIME peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DBTIME2 Supprime la valeur de date représentée par le type de données DT_DBTIMESTAMP.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIME2 peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DBTIMESTAMP Aucune modification.

DT_DBTIMESTAMP2 Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIMESTAMP2 peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DBTIMESTAMPOFFSET Définit zéro pour le champ de fuseau horaire dans le type de données DT_DBTIMESTAMPOFFSET.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIMESTAMPOFFSET peut contenir.
Après la suppression de la valeur de fraction de seconde, un rapport est généré sur cette
troncation de données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

Conversion à partir de DT_DBTIMESTAMP2

Conversion de Résultats
DT_DBTIMESTAMP2 en
Conversion de Résultats
DT_DBTIMESTAMP2 en

DT_FILETIME Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_FILETIME peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DATE Si une valeur représentée par le type de données DT_DBTIMESTAMP2 dépasse la plage du type de
données DT_DATE, l'erreur DB_E_DATAOVERFLOW est retournée. Pour plus d’informations,
consultez Gestion des erreurs dans les données.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DATE peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DBDATE Supprime la valeur d'heure représentée par le type de données DT_DBTIMESTAMP2.

DT_DBTIME Supprime la valeur de date représentée par le type de données DT_DBTIMESTAMP2.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIME peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DBTIME2 Supprime la valeur de date représentée par le type de données DT_DBTIMESTAMP2.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIME2 peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DBTIMESTAMP Si une valeur représentée par le type de données DT_DBTIMESTAMP2 dépasse la plage du type de
données DT_DBTIMESTAMP, l'erreur DB_E_DATAOVERFLOW est retournée.

DT_DBTIMESTAMP2 est mappé en type de données datetime2 SQL Server avec une plage comprise
entre le 1er janvier de l'an 1 et le 31 décembre 9999. DT_DBTIMESTAMP est mappé en type de
données datetime SQL Server, avec une plage plus restreinte comprise entre le 1er janvier 1753 et
le 31 décembre 9999.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIMESTAMP peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données.

Pour plus d’informations sur les erreurs, consultez Gestion des erreurs dans les données.

DT_DBTIMESTAMP2 Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIMESTAMP2 de destination peut
contenir. Après la suppression de la valeur de fraction de seconde, un rapport est généré sur cette
troncation de données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DBTIMESTAMPOFFSET Définit zéro pour le champ de fuseau horaire dans le type de données DT_DBTIMESTAMPOFFSET.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIMESTAMPOFFSET peut contenir.
Après la suppression de la valeur de fraction de seconde, un rapport est généré sur cette
troncation de données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

Conversion à partir de DT_DBTIMESTAMPOFFSET


Conversion de Résultats
DT_DBTIMESTAMPOFFSET
en

DT_FILETIME Change la valeur d'heure représentée par le type de données DT_DBTIMESTAMPOFFSET en


temps universel coordonné (UTC).

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_FILETIME peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DATE Change la valeur d’heure représentée par le type de données DT_DBTIMESTAMPOFFSET en


temps universel coordonné (UTC).

Si une valeur représentée par le type de données DT_DBTIMESTAMPOFFSET dépasse la plage du


type de données DT_DATE, l'erreur DB_E_DATAOVERFLOW est retournée.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DATE peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données.

Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DBDATE Change la valeur d'heure représentée par le type de données DT_DBTIMESTAMPOFFSET en


temps universel coordonné (UTC), qui peut affecter la valeur de date. La valeur d'heure est
ensuite supprimée.

DT_DBTIME Change la valeur d’heure représentée par le type de données DT_DBTIMESTAMPOFFSET en


temps universel coordonné (UTC).

Supprime la valeur de date représentée par le type de données DT_DBTIMESTAMPEOFFSET.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIME peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DBTIME2 Change la valeur d’heure représentée par le type de données DT_DBTIMESTAMPOFFSET en


temps universel coordonné (UTC).

Supprime la valeur de date représentée par le type de données DT_DBTIMESTAMPOFFSET.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIME2 peut contenir. Après la
suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DBTIMESTAMP Change la valeur d’heure représentée par le type de données DT_DBTIMESTAMPOFFSET en


temps universel coordonné (UTC).

Si une valeur représentée par le type de données DT_DBTIMESTAMPOFFSET dépasse la plage du


type de données DT_DBTIMESTAMP, l'erreur DB_E_DATAOVERFLOW est retournée.

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIMESTAMP peut contenir. Après
la suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données.

Pour plus d’informations, consultez Gestion des erreurs dans les données.
Conversion de Résultats
DT_DBTIMESTAMPOFFSET
en

DT_DBTIMESTAMP2 Change la valeur d’heure représentée par le type de données DT_DBTIMESTAMPOFFSET en


temps universel coordonné (UTC).

Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIMESTAMP2 peut contenir. Après
la suppression de la valeur de fraction de seconde, un rapport est généré sur cette troncation de
données. Pour plus d’informations, consultez Gestion des erreurs dans les données.

DT_DBTIMESTAMPOFFSET Supprime la valeur de fraction de seconde lorsque son échelle est supérieure au nombre de
chiffres de fraction de seconde que le type de données DT_DBTIMESTAMPOFFSET de destination
peut contenir. Après la suppression de la valeur de fraction de seconde, un rapport est généré
sur cette troncation de données. Pour plus d’informations, consultez Gestion des erreurs dans les
données.

Mappage des types de données Integration Services en types


de données de base de données
Le tableau ci-dessous fournit des directives pour le mappage des types de données employés par certaines bases
de données avec des types de données Integration Services . Ces mappages sont résumés à partir des fichiers de
mappage qu'utilise l'Assistant Importation et Exportation SQL Server lorsqu'il importe des données depuis ces
sources. Pour plus d’informations sur ces fichiers de mappage, consultez Assistant Importation et Exportation SQL
Server.

) Important

Ces mappages n'ont pas pour but de proposer une équivalence stricte. Ils sont fournis uniquement à titre
d'indication. Dans certaines situations, vous devrez peut-être utiliser un type de données différent de celui
utilisé dans ce tableau.

7 Notes

Vous pouvez utiliser les types de données SQL Server pour estimer la taille des types de données date et
heure Integration Services correspondants.

Type de données SQL Server SQL Server Jet Oracle DB2 DB2
(SqlClient)
(SQLOLEDB; (OracleClient) (DB2OLEDB) (IBMDADB2)
SQLNCLI10)

DT_BOOL bit bit bit

DT_BYTES binary, varbinary, binary, varbinary, BigBinary, RAW


timestamp timestamp VarBinary

DT_CY smallmoney, smallmoney, Devise


money money

DT_DATE

DT_DBDATE date (Transact- date (Transact- Date Date Date


SQL) SQL)
Type de données SQL Server SQL Server Jet Oracle DB2 DB2
(SqlClient)
(SQLOLEDB; (OracleClient) (DB2OLEDB) (IBMDADB2)
SQLNCLI10)

DT_DBTIME timestamp time time

DT_DBTIME2 time (Transact- time (Transact-


SQL)(p) SQL) (p)

DT_DBTIMESTAMP datetime (Transact- datetime (Transact- DateTime TIMESTAMP, TIME, TIME,


SQL), SQL), DATE, INTERVAL TIMESTAMP, TIMESTAMP,
smalldatetime smalldatetime DATE DATE
(Transact-SQL) (Transact-SQL)

DT_DBTIMESTAMP2 datetime2 datetime2 timestamp timestamp timestamp


(Transact-SQL) (Transact-SQL)

DT_DBTIMESTAMPOFFSET datetimeoffset datetimeoffset timestampoffset timestamp, timestamp,


(Transact-SQL)(p) (Transact-SQL) (p)
varchar varchar

DT_DECIMAL

DT_FILETIME

DT_GUID UNIQUEIDENTIFIER UNIQUEIDENTIFIER GUID

DT_I1

DT_I2 SMALLINT SMALLINT Court SMALLINT SMALLINT

DT_I4 int int Long INTEGER ENTIER

DT_I8 bigint bigint bigint bigint

DT_NUMERIC decimal, numeric decimal, numeric Décimal NUMBER, INT decimal, decimal,
numeric numeric

DT_R4 real real Unique real RÉEL

DT_R8 float float Double FLOAT, REAL FLOAT, FLOAT,


DOUBLE DOUBLE

DT_STR char, varchar VarChar char, varchar char, varchar

DT_UI1 TINYINT TINYINT Byte

DT_UI2

DT_UI4

DT_UI8

DT_WSTR nchar, nvarchar, char, varchar, LongText CHAR, ROWID, GRAPHIC, GRAPHIC,
sql_variant, xml nchar, nvarchar, VARCHAR2, VARGRAPHIC VARGRAPHIC
sql_variant, xml NVARCHAR2,
NCHAR
Type de données SQL Server SQL Server Jet Oracle DB2 DB2
(SqlClient)
(SQLOLEDB; (OracleClient) (DB2OLEDB) (IBMDADB2)
SQLNCLI10)

DT_IMAGE image image LongBinary LONG RAW, CHAR () FOR CHAR () FOR
BLOB, BIT DATA, BIT DATA,
LOBLOCATOR, VARCHAR () VARCHAR ()
BFILE, FOR BIT FOR BIT
VARGRAPHIC, DATA DATA, BLOB
LONG
VARGRAPHIC,
défini par
l'utilisateur

DT_NTEXT ntext text, ntext LONG, CLOB, LONG LONG


NCLOB, VARCHAR, VARCHAR,
NVARCHAR, NCHAR, DBCLOB,
TEXT NVARCHAR, NCHAR,
TEXT NVARCHAR,
TEXT

DT_TEXT text LONG LONG


VARCHAR VARCHAR
FOR BIT FOR BIT
DATA DATA, CLOB

Pour plus d’informations sur le mappage des types de données dans le flux de données, consultez Utilisation de
types de données dans le flux de données.

Contenu associé
Entrée de blog, Comparaison des performances des différentes techniques de conversion de type de données
dans SSIS 2008 , sur blogs.msdn.com.

Voir aussi
Données dans des flux de données
Analyse de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les flux de données des packages extraient et chargent des données à partir de
banques de données hétérogènes qui peuvent utiliser différents types de données
standard et personnalisés. Dans un flux de données, les sources Integration Services
sont chargées d’extraire les données, d’analyser les données de type string et de les
convertir en données de type Integration Services . Les transformations effectuées par la
suite peuvent analyser les données afin de les convertir en un type distinct ou créer des
copies de colonnes avec d'autres types de données. Les expressions utilisées dans les
composants peuvent également convertir les arguments et opérandes en d'autres types
de données. Enfin, lorsque les données sont chargées dans une banque de données, la
destination peut analyser les données afin de les convertir en un type de données utilisé
par la destination. Pour plus d’informations, consultez Types de données Integration
Services.

Deux types d’analyses


Integration Services propose deux types d’analyses en vue de convertir les données :
l’analyse rapide et l’analyse standard.

L'analyse rapide est un ensemble de routines simple et rapide d'analyse des


données. Elle ne prend pas en charge la conversion des données présentant des
spécificités régionales et accepte uniquement les formats de date et d'heure les
plus courants.

L'analyse standard est un ensemble complet de routines d'analyse qui prend en


charge la conversion de tous les types de données fournis par les API de
conversion de type de données Automation disponibles dans Oleaut32.dll et
Ole2dsip.dll.

Analyse rapide
L'analyse rapide propose un ensemble de routines simples et rapides d'analyse des
données. Ces routines ne tiennent pas compte des paramètres régionaux et prennent en
charge uniquement un sous-ensemble de formats de date, d'heure et d'entier.

Conditions requises et limitations :


En implémentant l'analyse rapide, un package perd sa capacité d'interpréter les données
de type date, heure et nombre dans des formats régionaux et dans de nombreux
formats de base et étendus ISO 9601 couramment utilisés, mais il améliore ses
performances. Par exemple, l'analyse rapide prend uniquement en charge les formats de
date les plus courants, tels que AAAAMMJJ et AAAA-MM-JJ, n'effectue aucune analyse
des spécificités régionales, ne reconnaît pas les caractères spéciaux dans les devises et
ne peut pas convertir les représentations hexadécimales ou scientifiques des entiers.

L'analyse rapide est disponible uniquement lorsque vous utilisez la source de fichier plat
ou la transformation de conversion de données. L'amélioration des performances
pouvant être significative, pensez à utiliser si possible l'analyse rapide dans ces
composants de flux de données.

Si le flux de données du package requiert une analyse des spécificités régionales, il est
préférable d'utiliser l'analyse standard. Par exemple, l'analyse rapide ne reconnaît pas les
données qui incluent des symboles décimaux comme la virgule, les formats de date
autres que année-mois-jour ou encore les symboles de devises.

Les représentations tronquées qui laissent supposer une ou plusieurs parties de la date,
comme un siècle, une année ou un mois, ne sont pas reconnues par l'analyse rapide. Par
exemple, l’analyse rapide ne reconnaît pas le format '-AAMM', qui indique une année et
un mois dans un siècle implicite, ni le format '--MM', qui spécifie un mois dans une
année implicite. Cependant, certaines représentations avec une précision réduite sont
reconnues. Ainsi, l'analyse rapide reconnaît le format 'hhmm', qui indique les heures et
les minutes uniquement, et 'AAAA', qui indique l'année uniquement.

L'analyse rapide est spécifiée au niveau de la colonne. Dans la source de fichier plat et la
transformation de conversion de données, vous pouvez spécifier l'analyse rapide sur les
colonnes de sortie. Les entrées et les sorties peuvent inclure des colonnes respectant
des spécificités régionales et des colonnes n'en respectant pas.

Formats de données numériques (Analyse


rapide)
L'analyse rapide fournit un ensemble de routines simple, rapide et insensible aux
paramètres régionaux pour l'analyse des données. Elle prend en charge uniquement un
ensemble limité de formats pour les types de données integer.

Type de données Integer


Les types de données integer fournis par Integration Services sont DT_I1, DT_UI1, DT_I2,
DT_UI2, DT_I4, DT_UI4, DT_I8 et DT_UI8. Pour plus d’informations, consultez Types de
données Integration Services.

L'analyse rapide prend en charge les formats suivants pour les types de données integer
:

Zéro ou plusieurs espaces de début et de fin ou taquets de tabulation. Par


exemple, la valeur « 123 » est valide. Une valeur composée uniquement d'espaces
est évaluée comme zéro.

Un signe plus ou signe moins de début, ou ni l'un ni l'autre. Par exemple, les
valeurs +123, -123 et 123 sont valides.

Un ou plusieurs chiffres hindou-arabe (0-9). Par exemple, la valeur 345 est valide.
Aucun autre chiffre linguistique n'est pris en charge.

Les formats de données non pris en charge sont les suivants :

Caractères spéciaux. Par exemple, le symbole monétaire $ n'est pas pris en charge
et la valeur $20 ne peut pas être analysée.

Les caractères d'espaces blancs tels que les sauts de ligne, les retours chariot et les
espaces insécables. Par exemple, la valeur « 123» ne peut pas être analysée.

Les représentations hexadécimales d'entiers. Par exemple, la valeur 2EE ne peut pas
être analysée.

La représentation en notation scientifique d'entiers. Par exemple, la valeur 1E+10


ne peut pas être analysée.

Les formats suivants sont des formats de données de sortie pour les entiers :

Un signe moins pour les nombres négatifs et rien pour les nombres positifs.

Aucun espace blanc.

Un ou plusieurs chiffres hindou-arabe (0-9).

Formats de date et d’heure (Analyse rapide)


L'analyse rapide propose un ensemble de routines simples et rapides d'analyse des
données. L'analyse rapide prend en charge les formats suivants de types de données de
date et d'heure.
Type de données Date
L'analyse rapide prend en charge les formats de chaîne suivants pour les données de
date :

Formats de date qui incluent des espaces de début. Par exemple, la valeur « 2004-
02-03 » est valide.

Formats ISO 8601 répertoriés dans le tableau suivant :

Format Description

AAAAMMJJ Formats de base et étendus pour une année à quatre chiffres, un mois à deux
chiffres et un jour à deux chiffres. Dans le format étendu, les parties de la date
AAAA- sont séparées par un tiret (-).
MM-JJ

AAAA-MM Formats à précision réduite de base et étendus pour une année à quatre
chiffres et un mois à deux chiffres. Dans le format étendu, les parties de la
date sont séparées par un tiret (-).

YYYY Le format à précision réduite est une année à quatre chiffres.

L'analyse rapide ne prend pas en charge les formats suivants pour les données de date :

Valeurs de mois alphabétiques. Par exemple, le format de date Oct-31-2003 n'est


pas valide.

Les formats ambigus tels que JJ-MM-AAAA et MM-JJ-AAAA. Par exemple, les dates
03-04-1995 et 04-03-1995 ne sont pas valides.

Formats tronqués de base et étendus pour une année civile à quatre chiffres et un
jour à trois chiffres dans une année, AAAAJJJ et AAAA-JJJ.

Formats de base et étendus pour une année à quatre chiffres, un nombre à deux
chiffres pour la semaine de l'année et un nombre à un chiffre pour le jour de la
semaine, AAAASssJ et AAAA-Sss-J.

Les formats tronqués de base et étendus pour une date comportant l'année et la
semaine sont une année à quatre chiffres et un nombre à deux chiffres pour la
semaine, AAASss et AAA-Sss.

L'analyse rapide génère en sortie des données sous la forme DT_DBDATE. Les valeurs de
date aux formats tronqués sont complétées. Par exemple, AAA devient AAAA0101.

Pour plus d’informations, consultez Types de données Integration Services.


Type de données Time
L'analyse rapide prend en charge les formats de chaîne suivants pour les données
d'heure :

Formats d'heure qui incluent des espaces de début. Par exemple, la valeur « 10:24»
est valide.

Format 24 heures. L'analyse rapide ne prend pas en charge la notation AM et PM.

Formats d'heure ISO 8601 répertoriés dans le tableau suivant :

Format Description

HHMISS Formats de base et étendus pour une heure à deux chiffres, une minute à deux
chiffres et une seconde à deux chiffres. Dans le format étendu, les parties de
HH:MI:SS l'heure sont séparées par deux points (:).

HHMI Format tronqué de base et étendu pour une heure à deux chiffres et une
minute à deux chiffres. Dans le format étendu, les parties de l'heure sont
HH:MI séparées par deux points (:).

HH Format tronqué pour une heure à deux chiffres.

00:00:00 Format pour minuit.

000000

0000

00

240000

24:00:00

2 400

24

Formats d'heure qui spécifient un fuseau horaire, répertoriés dans le tableau


suivant :

Format Description

+HH:MI Formats de base et étendus qui indiquent le nombre d'heures et de minutes


ajoutées au temps universel coordonné (UTC) pour obtenir l'heure locale.
+HHMI
Format Description

-HH:MI Formats de base et étendus qui indiquent le nombre d'heures et de minutes


soustraites du temps universel coordonné (UTC) pour obtenir l'heure locale.
-HHMI

+HH Format tronqué qui indique le nombre d'heures ajoutées au temps universel
coordonné (UTC) pour obtenir l'heure locale.

-HH Format tronqué qui indique le nombre d'heures soustraites du temps universel
coordonné (UTC) pour obtenir l'heure locale.

Z Valeur 0 qui indique que l'heure est représentée au format UTC.

Les formats de toutes les données d'heure et de date/heure peuvent inclure un


élément de fuseau horaire. Toutefois, le système ignore la valeur de fuseau horaire,
sauf lorsque les données sont de type DT_DBTIMESTAMPOFFSET. Pour plus
d’informations, consultez Types de données Integration Services.

Dans les formats qui incluent un élément de fuseau horaire, aucun espace ne
figure entre l'élément d'heure et l'élément de fuseau horaire, comme le montre
l'exemple suivant :

HH:MI:SS[+HH:MI]

Dans l'exemple précédent, les crochets indiquent que la valeur de fuseau horaire
est facultative.

Formats d'heure qui incluent une fraction décimale, répertoriés dans le tableau
suivant :

Format Description

HH[.nnnnnnn] n est une valeur comprise entre 0 et 9 999 999 qui représente une
fraction d'heures. Les crochets indiquent que cette valeur est
facultative.

Par exemple, la valeur 12.750 signifie 12:45.

HHMI[.nnnnnnn] n est une valeur comprise entre 0 et 9 999 999 qui représente une
fraction de minutes. Les crochets indiquent que cette valeur est
HH:MI[.nnnnnnn] facultative.

Par exemple, la valeur 1220.500 signifie 12:20:30.


Format Description

HHMISS[.nnnnnnn] n est une valeur comprise entre 0 et 9 999 999 qui représente une
fraction de secondes. Les crochets indiquent que cette valeur est
HH:MI:SS[.nnnnnnn] facultative.

Par exemple, la valeur 122040.250 signifie 12:20:40.15.

7 Notes

Dans le tableau précédent, le séparateur de fraction pour les formats d'heure


peut être une décimale ou une virgule.

Valeurs d'heure qui incluent un saut de seconde, comme le montrent les exemples
suivants :

23:59:60[.0000000]

235960[.0000000]

L'analyse rapide génère en sortie des chaînes sous la forme DT_DBTIME et DT_DBTIME2.
Les valeurs d'heure aux formats tronqués sont complétées. Par exemple, HH:MI devient
HH:MM:00.000.

Pour plus d’informations, consultez Types de données Integration Services.

Type de données de date/heure


L'analyse rapide prend en charge les formats de chaîne suivants pour les données de
date/heure :

Formats qui incluent des espaces de début. Par exemple, la valeur « 2003-01-
10T203910 » est valide.

Combinaisons de formats de date valides et de formats d'heure valides séparés par


un T majuscule, ainsi que de formats de fuseau horaire valides, par exemple
YYYYMMDDT[HHMISS][+HH:MI]. Les valeurs d'heure et de fuseau horaire ne sont
pas requises. Par exemple, « 2003-10-14 » est valide.

L'analyse rapide ne prend pas en charge les intervalles de temps. Par exemple, un
intervalle de temps identifié par une date et une heure de début et de fin au format
AAAAMMJJThhmmss/AAAAMMJJThhmmss ne peut pas être analysé.
L'analyse rapide génère en sortie des chaînes sous la forme DT_DATE,
DT_DBTIMESTAMP, DT_DBTIMESTAMP2 et DT_DBTIMESTAMPOFFSET. Les valeurs de
date/heure aux formats tronqués sont complétées. Le tableau suivant répertorie les
valeurs ajoutées pour les parties des date et heure manquantes.

Partie de date/heure Remplissage

Secondes Ajout de 00.

Minutes Ajouter 00:00.

Heure Ajout de 00:00:00.

Jour Ajout de 01 pour le jour du mois.

Month (Mois) Ajout de 01 pour le mois de l'année.

Pour plus d’informations, consultez Types de données Integration Services.

Activer l’analyse rapide


La propriété d'analyse rapide doit être définie pour chaque colonne de la source ou de
la transformation utilisant l'analyse rapide. Pour définir cette propriété, faites appel à
l'éditeur avancé de la source de fichier plat et de la transformation de conversion de
données.

1. Cliquez avec le bouton droit sur la source de fichier plat ou sur la transformation
de conversion de données, puis cliquez sur Afficher l’éditeur avancé.

2. Dans la boîte de dialogue Éditeur avancé , cliquez sur l'onglet Propriétés d'entrée
et de sortie .

3. Dans le volet Entrées et sorties , cliquez sur la colonne pour laquelle vous
souhaitez activer l'analyse rapide.

4. Dans la fenêtre Propriétés, développez le nœud Propriétés personnalisées , puis


définissez la propriété FastParse à True.

5. Cliquez sur OK.

Analyse standard
L'analyse standard est un ensemble de routines d'analyse spécifique à un pays qui prend
en charge toutes les conversions de type de données fournies par les API de conversion
de type de données Automation disponibles dans Oleaut32.dll et Ole2dsip.dll. Elle est
équivalente aux API d'analyse OLE DB.

L'analyse standard assure la prise en charge de la conversion de type de données pour


les données internationales et doit être utilisée si le format de données n'est pas pris en
charge par l'analyse rapide.
comparaison de données de chaînes
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les comparaisons de chaînes représentent une partie importante des transformations


réalisées par Integration Serviceset peuvent également être utilisées pour l'évaluation
d'expressions dans des variables et des expressions de propriétés. Ainsi, la
transformation de tri peut comparer les valeurs d'un dataset afin de trier les données
dans l'ordre croissant ou décroissant.

Configuration des transformations pour les


comparaisons de chaînes
Les transformations de tri, d'agrégation, de regroupement probable et de recherche
floue peuvent être personnalisées afin de changer le mode de comparaison des chaînes
au niveau de la colonne. Par exemple, vous pouvez spécifier qu'une comparaison ignore
la casse, ce qui signifie que les caractères minuscules et majuscules sont considérés
comme identiques.

Les transformations suivantes utilisent des expressions contenant des comparaisons de


chaînes.

La transformation de fractionnement conditionnel peut utiliser des comparaisons


de chaînes dans des expressions afin de déterminer à quelle sortie envoyer la ligne
de données. Pour plus d'informations, consultez Conditional Split Transformation.

La transformation de colonne dérivée peut utiliser des comparaisons de chaînes


dans des expressions afin de générer de nouvelles valeurs de colonnes. Pour plus
d'informations, consultez Transformation de colonne dérivée.

Les variables, les mappages de variables et les contraintes de précédence utilisent


également des expressions qui peuvent inclure des comparaisons de chaînes. Pour plus
d’informations sur les expressions, consultez Expressions Integration Services (SSIS).

Traitement pendant la comparaison de chaînes


En fonction des données et de la configuration de la transformation, le traitement
suivant peut être réalisé au cours de la comparaison de données chaînes :
conversion des données au format Unicode. Si les données sources ne sont pas au
format Unicode, elles sont automatiquement converties dans ce format avant la
comparaison ;

utilisation de paramètres régionaux afin d'appliquer des règles spécifiques à un


pays pour interpréter la date, l'heure, les données décimales et l'ordre de tri ;

application d'options de comparaison au niveau de la colonne afin de changer la


sensibilité des comparaisons.

Conversion de données de chaîne au format


Unicode
En fonction des opérations réalisées par la transformation et de sa configuration, les
données de chaîne peuvent être converties en type de données DT_WSTR, qui est une
représentation Unicode des caractères.

Les données de chaîne de type DT_STR sont converties en chaînes Unicode à l'aide de la
page de codes de la colonne. Integration Services prend en charge les pages de codes
au niveau de la colonne et chaque colonne peut être convertie à l'aide d'une page de
codes différente.

Dans la plupart des cas, Integration Services peut identifier la page de codes correcte à
partir de la source de données. Par exemple, dans SQL Server , vous pouvez définir un
classement au niveau de la base de données et de la colonne. La page de codes
provient d'un classement SQL Server , qui peut être un classement Windows ou SQL.

Si Integration Services propose une page de codes non attendue ou si le package


accède à une source de données à l'aide d'un fournisseur ne donnant pas suffisamment
d'informations pour déterminer la page de codes correcte, vous pouvez spécifier une
page de codes par défaut dans la source ou la destination OLE DB. Les pages de codes
par défaut sont utilisées à la place des pages de codes fournies par Integration Services .

Les fichiers n'ont pas de pages de codes. À la place, les gestionnaires de connexions de
fichiers plats et de fichiers plats multiples utilisés par un package pour se connecter aux
données du fichier utilisent une propriété permettant de spécifier la page de codes du
fichier. Cette page de codes peut être définie au niveau du fichier uniquement, pas au
niveau de la colonne.

Définition des paramètres régionaux


Integration Services n’utilise pas la page de codes pour déduire les règles spécifiques à
un pays servant à trier les données ou à interpréter la date, l’heure et les données
décimales. Au lieu de cela, la transformation lit les paramètres régionaux définis par la
propriété LocaleId au niveau du composant de flux de données, de la tâche de flux de
données, du conteneur ou du package. Par défaut, les paramètres régionaux d'une
transformation sont hérités de sa tâche de flux de données, qui elle-même les héritent
du package. Si la tâche de flux de données se trouve dans un conteneur comme le
conteneur de boucles For, elle hérite ses paramètres régionaux du conteneur.

Vous pouvez également spécifier des paramètres régionaux pour un gestionnaire de


connexions de fichiers plats et un gestionnaire de connexions de fichiers plats multiples.

Définition des options de comparaison


Les paramètres régionaux déterminent les règles de base pour la comparaison de
données chaînes. Ils indiquent par exemple la position de tri de chaque lettre dans
l'alphabet. Cependant, ces règles ne suffisent pas toujours dans les comparaisons
réalisées par certaines transformations et Integration Services prend en charge un
ensemble d'options de comparaison avancées extrapolant les règles de comparaison
des paramètres régionaux. Ces options de comparaison sont définies au niveau de la
colonne. Une de ces options de comparaison permet par exemple d'ignorer les
caractères sans espace. Les signes diacritiques comme l'accent sont alors ignorés avec
cette option, ce qui conduit à considérer « a » et « á » comme identiques dans les
comparaisons.

Le tableau qui suit décrit les options de comparaison et un style de tri.

Option de Description
comparaison

Ignorer la Indique si la comparaison fait la distinction entre les lettres majuscules et


casse minuscules. Si cette option est définie, la comparaison de chaînes ignore la casse.
Par exemple, « ABC » est alors identique à « abc ».

Ignorer le Indique si la comparaison fait la distinction entre les deux types de caractères
type de japonais Kana : Hiragana et Katakana. Si cette option est définie, la comparaison
caractères de chaînes ignore le type Kana.
Kana

Ignorer la Indique si la comparaison fait la distinction entre un caractère sur un octet et le


largeur des même caractère représenté sur deux octets. Si cette option est définie, la
caractères comparaison de chaînes traite les représentations sur un octet et sur deux octets
du même caractère comme identiques.
Option de Description
comparaison

Ignorer les Indique si la comparaison fait la distinction entre les caractères avec espace et les
caractères caractères diacritiques. Si cette option est définie, la comparaison ignore les
sans espace caractères diacritiques. Par exemple, « à » est identique à « a ».

Ignorer les Indique si la comparaison fait la distinction entre les lettres et les symboles
symboles comme les espaces blancs, la ponctuation, les symboles de devise et les symboles
mathématiques. Si cette option est définie, la comparaison de chaînes ignore les
symboles. Par exemple, « New York »" est identique à « New York » et « *ABC »
est identique à « ABC ».

Trier la Indique si la comparaison trie tous les symboles de ponctuation, à l'exception du


ponctuation tiret et de l'apostrophe, avant les caractères alphanumériques. Par exemple, si
comme des cette option est définie ; « .ABC » arrive avant « ABC » dans le tri.
symboles

Les transformations de tri, d'agrégation, de regroupement probable et de recherche


floue incluent ces options pour la comparaison de données.

La balise de comparaison FullySensitive s'affiche dans la boîte de dialogue Éditeur


avancé pour les transformations de regroupement probable et de recherche floue. Le
fait de sélectionner l'indicateur de comparaison FullySensitive signifie que toutes les
options de comparaison s'appliquent.

Voir aussi
Types de données d’Integration Services
Analyse rapide
Analyse standard
Ajouter ou supprimer un composant
dans un flux de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les composants de flux de données sont des sources, des destinations et des
transformations dans un flux de données. Pour que vous puissiez ajouter des
composants à un flux de données, le flux de contrôle du package doit inclure une tâche
de flux de données.

Les procédures ci-dessous montrent comment ajouter ou supprimer un composant dans


le flux de données d'un package.

Pour ajouter un composant à un flux de données


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Flux de contrôle , puis double-cliquez sur la tâche de flux de
données qui contient le flux de données auquel vous voulez ajouter un composant.

4. Dans la boîte à outils, développez Sources de flux de données, Transformations


du flux de donnéesou Destinations du flux de données, puis faites glisser un
élément de flux de données sur l’aire de conception de l’onglet Flux de données .

5. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Pour supprimer un composant d'un flux de données


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Flux de contrôle , puis double-cliquez sur la tâche de flux de
données contenant le flux de données duquel vous voulez supprimer un
composant.
4. Cliquez avec le bouton droit sur le composant du flux de données, puis cliquez sur
Supprimer.

5. Confirmez la suppression.

6. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Connecter des composants dans un flux de données
Débogage d’un flux de données
Flux de données
Définir les propriétés d’un composant
de flux de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour définir les propriétés de composants de flux de données, qui incluent des sources,
des destinations et des transformations, utilisez l'une des fonctionnalités suivantes :

Les éditeurs de composants fournis par Integration Services . Ces éditeurs ne


peuvent être utilisés que pour définir les propriétés personnalisées de chaque
composant de flux de données.

La fenêtre Propriétés énumère les propriétés personnalisées définies au niveau du


composant pour chaque élément, ainsi que les propriétés communes à tous les
éléments du flux de données.

La boîte de dialogue Éditeur avancé permet d’accéder aux propriétés


personnalisées pour chaque composant. La boîte de dialogue Éditeur avancé
permet aussi d’accéder aux propriétés communes à l’ensemble des composants de
flux de données, à savoir les propriétés des entrées, des sorties, des sorties
d’erreurs, des colonnes et des colonnes externes.

Définir les propriétés d’un composant de flux


de données à l’aide d’un éditeur de composant
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Flux de contrôle , puis double-cliquez sur la tâche de flux de
données qui contient le flux de données et le composant dont vous voulez afficher
ou modifier les propriétés.

4. Double-cliquez sur le composant du flux de données.

5. Dans l'éditeur de composant, affichez ou modifiez les valeurs des propriétés, puis
fermez l'éditeur.
6. Pour enregistrer le package mis à jour, dans le menu Fichier , cliquez sur
Enregistrer les éléments sélectionnés.

Définir les propriétés d’un composant de flux


de données dans la fenêtre Propriétés
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Flux de contrôle , puis double-cliquez sur la tâche de flux de
données qui contient le composant dont vous voulez afficher ou modifier les
propriétés.

4. Cliquez avec le bouton droit sur le composant du flux de données, puis cliquez sur
Propriétés.

5. Affichez ou modifiez les valeurs des propriétés, puis fermez la fenêtre Propriétés .

7 Notes

De nombreuses propriétés sont en lecture seule et ne peuvent donc pas être


modifiées.

6. Pour enregistrer le package mis à jour, dans le menu Fichier , cliquez sur
Enregistrer les éléments sélectionnés.

Définir les propriétés d’un composant de flux


de données à l’aide de l’Éditeur avancé
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Flux de contrôle , puis double-cliquez sur la tâche de flux de
données qui contient le composant à afficher ou à modifier.

4. Dans le concepteur de flux de données, cliquez avec le bouton droit sur le


composant du flux de données, puis cliquez sur Afficher l’éditeur avancé.
7 Notes

Dans SQL Server, les composants de flux de données qui prennent en charge
plusieurs entrées ne peuvent pas utiliser l’éditeur avancé.

5. Dans la boîte de dialogue Éditeur avancé , procédez de l’une des façons suivantes :

Pour afficher et spécifier la connexion utilisée par le composant, cliquez sur


l’onglet Gestionnaires de connexions .

7 Notes

L’onglet Gestionnaire de connexions est accessible uniquement aux


composants de flux de données qui utilisent des gestionnaires de
connexions pour se connecter à des sources de données telles que des
fichiers et des bases de données.

Pour afficher et modifier les propriétés au niveau du composant, cliquez sur


l’onglet Propriétés du composant .

Pour afficher et modifier les mappages entre des colonnes externes et la


sortie disponible, cliquez sur l’onglet Mappage de colonnes .

7 Notes

L’onglet Mappage de colonnes est disponible uniquement pendant


l’affichage ou la modification des sources et des destinations.

Pour afficher la liste des colonnes d’entrée disponibles et mettre à jour le


nom des colonnes de sortie, cliquez sur l’onglet Colonnes d’entrée .

7 Notes

L'onglet Colonnes d'entrée est disponible uniquement en cas


d'utilisation de transformations ou de destinations. Pour plus
d’informations, consultez Transformations Integration Services.

Pour afficher et modifier les propriétés des entrées, des sorties, des sorties
d’erreur et les propriétés des colonnes qu’elles contiennent, cliquez sur
l’onglet Propriétés d’entrée et de sortie .
7 Notes

Les sources ne comportent pas d'entrées. Les destinations ne


comportent pas de sorties, sauf pour une sortie d'erreur facultative.

6. Affichez ou modifiez les valeurs des propriétés.

7. Cliquez sur OK.

8. Pour enregistrer le package mis à jour, dans le menu Fichier , cliquez sur
Enregistrer les éléments sélectionnés.

Propriétés communes des composants de flux


de données
Les objets de flux de données dans le modèle objet Microsoft SQL Server Integration
Services présentent des propriétés communes et personnalisées au niveau des
composants, des entrées et sorties, et des colonnes d'entrée et de sortie. De
nombreuses propriétés ont des valeurs en lecture seule qui sont assignées au moment
de l'exécution par le moteur de flux de données.

Cette rubrique répertorie et décrit les propriétés communes des objets de flux de
données.

Composants

Entrées

Input columns

Sorties

Colonnes de sortie

Component properties
Dans le modèle objet Integration Services, un composant dans le flux de données
implémente l'interface IDTSComponentMetaData100.

Le tableau suivant décrit les propriétés des composants dans un flux de données.
Certaines propriétés ont des valeurs en lecture seule qui sont assignées au moment de
l'exécution par le moteur de flux de données.
Propriété Type de Description
données

ComponentClassID String CLSID du composant.

ContactInfo String Informations de contact pour le développeur d'un


composant.

Description String Description du composant de flux de données. La valeur


par défaut de cette propriété est le nom du composant de
flux de données.

id Integer Valeur qui identifie de manière unique cette instance du


composant.

IdentificationString String Identifie le composant.

IsDefaultLocale Booléen Indique si le composant utilise les paramètres régionaux


de la tâche de flux de données à laquelle il appartient.

LocaleID Integer Paramètres régionaux utilisés par le composant de flux de


données lors de l'exécution du package. Tous les
paramètres régionaux Windows sont disponibles dans les
composants de flux de données.

Nom String Nom du composant de flux de données.

PipelineVersion Integer Version de la tâche de flux de données dans laquelle un


composant est destiné à être exécuté.

UsesDispositions Booléen Indique si un composant a une sortie d'erreur.

ValidateExternalMetadata Boolean Indique si les métadonnées des colonnes externes sont


validées. La valeur par défaut de cette propriété est True.

Version Integer Version d'un composant.

Propriétés d’entrée
Dans le modèle objet Integration Services , les transformations et destinations ont des
sorties. Une entrée d'un composant dans le flux de données implémente l'interface
IDTSInput100.

Le tableau suivant décrit les propriétés des entrées de composants dans un flux de
données. Certaines propriétés ont des valeurs en lecture seule qui sont assignées au
moment de l'exécution par le moteur de flux de données.

Propriété Type de données Description


Propriété Type de données Description

Description String Description de l'entrée.

ErrorOrTruncationOperation String Chaîne facultative qui spécifie les types


d'erreurs ou troncations qui peuvent se
produire lors du traitement d'une ligne.

ErrorRowDisposition DTSRowDisposition Valeur qui spécifie la gestion des erreurs. Ces


valeurs sont Fail component, Ignore failureet
Redirect row.

HasSideEffects Booléen Indique si un composant peut être supprimé


du plan d'exécution du flux de données
lorsqu'il n'est pas attaché à un composant en
aval et lorsque la propriété
RunInOptimizedMode a la valeur true.

id Integer Valeur qui identifie l'entrée de façon unique.

IdentificationString String Chaîne qui identifie l'entrée.

IsSorted Booléen Indique si les données dans l'entrée sont


triées.

Nom String Nom de l'entrée.

SourceLocale Integer ID de paramètres régionaux (LCID) des


données d'entrée.

TruncationRowDisposition DTSRowDisposition Valeur qui détermine la façon dont le


composant gère les troncations qui se
produisent lors du traitement des lignes. .
Ces valeurs sont Fail component, Ignore
failureet Redirect row.

Les destinations et certaines transformations ne prennent pas en charge les sorties


d’erreur, et les propriétés ErrorRowDisposition et TruncationRowDisposition de ces
composants sont en lecture seule.

Propriétés des colonnes d’entrée


Dans le modèle objet Integration Services , une entrée contient une collection de
colonnes d'entrée. Une colonne d'entrée d'un composant dans le flux de données
implémente l'interface IDTSInputColumn100.

Le tableau suivant décrit les propriétés des colonnes d'entrée de composants dans un
flux de données. Certaines propriétés ont des valeurs en lecture seule qui sont assignées
au moment de l'exécution par le moteur de flux de données.

Propriété Type de données Description

ComparisonFlags Integer Ensemble d'indicateurs qui


spécifient la comparaison des
colonnes ayant un type de
données character. Pour plus
d'informations, voir Comparing
String Data.

Description String Décrit la colonne d'entrée.

ErrorOrTruncationOperation String Chaîne facultative qui spécifie


les types d'erreurs ou
troncations qui peuvent se
produire lors du traitement
d'une ligne.

ErrorRowDisposition DTSRowDisposition Valeur qui spécifie la gestion


des erreurs. Ces valeurs sont
Fail component, Ignore
failureet Redirect row.

ExternalMetadataColumnID IDTSExternalMetadataColumn100 ID de la colonne de


métadonnées externe assigné
à une colonne d'entrée.

id Integer Valeur qui identifie la colonne


d'entrée de façon unique.

IdentificationString String Chaîne qui identifie la colonne


d'entrée.

LineageID Integer ID de la colonne en amont.

LineageIdentificationString String Chaîne d’identification qui


inclut le nom de la colonne en
amont.

Nom String Nom de la colonne d'entrée.


Propriété Type de données Description

SortKeyPosition Integer Valeur qui indique si une


colonne est triée, son ordre de
tri et l'ordre dans lequel
plusieurs colonnes sont triées.
La valeur 0 indique que la
colonne n'est pas triée. Pour
plus d’informations, consultez
Trier des données pour les
transformations de fusion et de
jointure de fusion.

TruncationRowDisposition DTSRowDisposition Valeur qui détermine la façon


dont le composant gère les
troncations qui se produisent
lors du traitement des lignes.
Ces valeurs sont Fail
component, Ignore failureet
Redirect row.

UpstreamComponentName String Nom du composant en amont.

UsageType DTSUsageType Valeur qui détermine la façon


dont une colonne d'entrée est
utilisée par le composant.

Les propriétés de type de données des colonnes d'entrée sont également décrites sous
« Propriétés du type de données ».

Propriétés de sortie
Dans le modèle objet Integration Services , les sources et les transformations ont des
sorties. Une sortie d'un composant dans le flux de données implémente l'interface
IDTSOutput100.

Le tableau suivant décrit les propriétés des sorties de composants dans un flux de
données. Certaines propriétés ont des valeurs en lecture seule qui sont assignées au
moment de l'exécution par le moteur de flux de données.

Propriété Type de données Description

DeleteOutputOnPathDetached Booléen Valeur qui détermine si le moteur de flux


de données supprime la sortie lorsqu'elle
est détachée d'un chemin d'accès.

Description String Décrit la sortie.


Propriété Type de données Description

ErrorOrTruncationOperation String Chaîne facultative qui spécifie les types


d'erreurs ou troncations qui peuvent se
produire lors du traitement d'une ligne.

ErrorRowDisposition DTSRowDisposition Valeur qui spécifie la gestion des erreurs.


Ces valeurs sont Fail component, Ignore
failureet Redirect row.

ExclusionGroup Integer Valeur qui identifie un groupe de sorties


s'excluant mutuellement.

HasSideEffects Booléen Valeur qui indique si un composant peut


être supprimé du plan d'exécution du flux
de données lorsqu'il n'est pas attaché à un
composant en amont et lorsque la
propriété RunInOptimizedMode a la
valeur true.

id Integer Valeur qui identifie la sortie de façon


unique.

IdentificationString String Chaîne qui identifie la sortie.

IsErrorOut Booléen Indique si la sortie est une sortie d'erreur.

IsSorted Booléen Indique si la sortie est triée. La valeur par


défaut est False.

** Important ** La définition de la valeur


de la propriété IsSorted sur True ne trie
pas les données. Cette propriété indique
uniquement aux composants en aval que
les données ont été précédemment triées.
Pour plus d’informations, consultez Trier
des données pour les transformations de
fusion et de jointure de fusion.

Nom String Nom de la sortie.

SynchronousInputID Integer ID d'une entrée synchrone avec la sortie.

TruncationRowDisposition DTSRowDisposition Valeur qui détermine la façon dont le


composant gère les troncations qui se
produisent lors du traitement des lignes.
Ces valeurs sont Fail component, Ignore
failureet Redirect row.

Propriétés des colonnes de sortie


Dans le modèle objet Integration Services , une sortie contient une collection de
colonnes de sortie. Une colonne de sortie d'un composant dans le flux de données
implémente l'interface IDTSOutputColumn100.

Le tableau suivant décrit les propriétés des colonnes de sortie de composants dans un
flux de données. Certaines propriétés ont des valeurs en lecture seule qui sont assignées
au moment de l'exécution par le moteur de flux de données.

Propriété Type de données Description

ComparisonFlags Integer Ensemble d'indicateurs qui spécifient la


comparaison des colonnes ayant un type de
données character. Pour plus d'informations,
voir Comparing String Data.

Description String Décrit la colonne de sortie.

ErrorOrTruncationOperation String Chaîne facultative qui spécifie les types


d'erreurs ou troncations qui peuvent se
produire lors du traitement d'une ligne.

ErrorRowDisposition DTSRowDisposition Valeur qui spécifie la gestion des erreurs. Ces


valeurs sont Fail component, Ignore failureet
Redirect row. La valeur par défaut est
Composant défaillant.

ExternalMetadataColumnID Integer ID de la colonne de métadonnées externe


assigné à une colonne d'entrée.

id Integer Valeur qui identifie la colonne de sortie de


façon unique.

IdentificationString String Chaîne qui identifie la colonne de sortie.

LineageID Integer ID de la colonne de sortie. Les composants


en aval font référence à la colonne à l'aide de
cette valeur.

LineageIdentificationString String Chaîne d’identification qui inclut le nom de la


colonne.

Nom String Nom de la colonne de sortie.

SortKeyPosition Integer Valeur qui indique si une colonne est triée,


son ordre de tri et l'ordre dans lequel
plusieurs colonnes sont triées. La valeur 0
indique que la colonne n'est pas triée. Pour
plus d’informations, consultez Trier des
données pour les transformations de fusion
et de jointure de fusion.
Propriété Type de données Description

SpecialFlags Integer Valeur qui contient les indicateurs spéciaux


de la colonne de sortie.

TruncationRowDisposition DTSRowDisposition Valeur qui détermine la façon dont le


composant gère les troncations qui se
produisent lors du traitement des lignes. Ces
valeurs sont Fail component, Ignore failureet
Redirect row. La valeur par défaut est
Composant défaillant.

Les colonnes de sortie incluent également un jeu de propriétés de type de données.

Propriétés des colonnes de métadonnées externes


Dans le modèle objet Integration Services , les entrées et sorties peuvent contenir une
collection de colonnes de métadonnées externes. Une colonne de métadonnées externe
d'un composant dans le flux de données implémente l'interface
IDTSExternalMetadataColumn100.

Le tableau suivant décrit les propriétés des colonnes de métadonnées externes de


composants dans un flux de données. Certaines propriétés ont des valeurs en lecture
seule qui sont assignées au moment de l'exécution par le moteur de flux de données.

Propriété Type de données Description

Description String Décrit la colonne externe.

id Integer Valeur qui identifie la colonne de façon unique.

IdentificationString String Chaîne qui identifie la colonne.

Nom String Nom de la colonne externe.

Les colonnes de métadonnées externes incluent également un jeu de propriétés de type


de données.

Propriétés de type de données


Les colonnes de sortie et les colonnes de métadonnées externes incluent un jeu de
propriétés de type de données. Selon le type de données de la colonne, les propriétés
peuvent être en lecture/écriture ou en lecture seule.
Le tableau suivant décrit les propriétés de type de données des colonnes de sortie et
des colonnes de métadonnées externes.

Propriété Type de Description


données

CodePage Integer Spécifie la page de codes pour les données de chaîne qui ne sont
pas Unicode.

DataType Integer Type de données Integration Services de la colonne. Pour plus


(énumération) d’informations, consultez Types de données Integration Services.

Longueur Integer Longueur d'une colonne en caractères.

Precision Integer Précision d'une colonne numérique.

Scale Integer Échelle d'une colonne numérique.

Propriétés personnalisées des composants de


flux de données
Pour plus d’informations sur les propriétés personnalisées, consultez les rubriques
suivantes :

Propriétés personnalisées ADO NET

Propriétés personnalisées de la tâche de contrôle de capture de données


modifiées

Propriétés personnalisées des sources CDC

Propriétés personnalisées de la destination d'apprentissage du modèle


d'exploration de données

Propriétés personnalisées de la destination DataReader

Propriétés personnalisées de la destination de traitement de dimension

Propriétés personnalisées d'Excel

Propriétés personnalisées des fichiers plats

Propriétés personnalisées des destinations ODBC

Propriétés personnalisées des sources ODBC

OLE DB Custom PropertiesPropriétés personnalisées OLE DB


Propriétés personnalisées de la destination de traitement de partition

Propriétés personnalisées des fichiers bruts

Propriétés personnalisées de la destination du jeu d'enregistrements

Propriétés personnalisées de la destination SQL Server Compact Edition

Propriétés personnalisées de la destination SQL Server

Propriétés personnalisées des transformations

Propriétés personnalisées des sources XML

Utiliser une expression dans un composant de


flux de données
Cette procédure permet d'ajouter une expression à la transformation de fractionnement
conditionnel ou à la transformation de colonne dérivée. La transformation de
fractionnement conditionnel utilise des expressions pour définir les conditions qui
dirigent les lignes de données vers une sortie de transformation et la transformation de
colonne dérivée utilise des expressions pour définir les valeurs affectées aux colonnes.

Pour implémenter une expression dans une transformation, le package doit déjà inclure
au moins une tâche de flux de données et une source.

1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Dans le concepteur SSIS , cliquez sur l’onglet Flux de contrôle , puis cliquez sur la
tâche de flux de données contenant le flux de données dans lequel vous voulez
implémenter une expression.

4. Cliquez sur l’onglet Flux de données , et faites glisser une transformation de


fractionnement conditionnel ou de colonne dérivée de la Boîte à outils jusqu’à
l’aire de conception.

5. Faites glisser le connecteur vert de la source ou d'une transformation vers la


transformation de fractionnement conditionnel ou de colonne dérivée.

6. Double-cliquez sur la transformation pour ouvrir sa boîte de dialogue.


7. Dans le volet gauche, développez Variables pour afficher les variables système et
définies par l’utilisateur, et développez Colonnes pour afficher les colonnes
d’entrée de transformation.

8. Dans le volet droit, développez Fonctions mathématiques, Fonctions de chaîne,


Fonctions de date et d’heure, Fonctions NULL, Casts de typeet Opérateurs pour
accéder aux fonctions, conversions et opérateurs fournis par la grammaire
d’expression.

9. Selon la transformation, effectuez l'une des opérations suivantes pour générer une
expression :

Dans la boîte de dialogue Éditeur de transformation de fractionnement


conditionnel , faites glisser les variables, colonnes, fonctions, conversions et
opérateurs vers la colonne Condition . Vous pouvez également aussi taper
une expression directement dans la colonne Condition .

Dans la boîte de dialogue Éditeur de transformation de colonne dérivée ,


faites glisser les variables, colonnes, fonctions, conversions et opérateurs vers
la colonne Expression . Vous pouvez également taper une expression
directement dans la colonne Expression .

7 Notes

Quand la colonne Condition ou Expression n’est plus active, le texte de


l’expression peut être mis en surbrillance, ce qui indique que la syntaxe
de l’expression est incorrecte.

10. Cliquez sur OK pour quitter la boîte de dialogue.

7 Notes

Si l'expression n'est pas valide, une alerte apparaît et décrit les erreurs de
syntaxe de l'expression.

Propriétés de flux de données que vous pouvez


définir avec une expression
Les valeurs de certaines propriétés d'objets de flux de données peuvent être spécifiées à
l'aide d'expressions de propriété disponibles sur le conteneur de tâche de flux de
données.

Pour plus d’informations sur l’utilisation d’expressions de propriété, consultez


Expressions de propriété dans des packages.

Vous pouvez utiliser des expressions de propriété pour personnaliser les configurations
de chaque instance déployée d'un package. Vous pouvez également utiliser des
expressions de propriété pour spécifier des contraintes d’exécution pour un package à
l’aide de l’option /set avec l’utilitaire d’invite de commandes dtexec . Par exemple, vous
pouvez limiter le nombre maximal de threads ( MaximumThreads ) utilisés par la
transformation de tri ou l’utilisation maximale de la mémoire ( MaxMemoryUsage des
transformations de regroupement probable et de recherche floue. Si elles sont libres,
ces transformations peuvent mettre en cache de grandes quantités de données en
mémoire.

Pour spécifier une expression de propriété pour une des propriétés d’objets de flux de
données répertoriées dans cette rubrique, affichez la fenêtre Propriétés pour la tâche de
flux de données en la sélectionnant sur l’aire Flux de contrôle du concepteur ou en
sélectionnant l’onglet Flux de données du concepteur sans sélectionner de composant
ou de chemin individuel. Sélectionnez la propriété Expressions , puis cliquez sur les
points de suspension (...) pour afficher la boîte de dialogue de l’Éditeur d’expressions de
la propriété . Déroulez la liste Propriété pour sélectionner une propriété, puis entrez
une expression dans la zone de texte Expression ou cliquez sur les points de suspension
(...) pour afficher la boîte de dialogue Générateur d’expressions .

La liste Propriété affiche les propriétés disponibles uniquement pour les objets de flux
de données que vous avez déjà placés sur l’aire Flux de données du concepteur. Par
conséquent, vous ne pouvez pas utiliser la liste Propriété pour consulter toutes les
propriétés possibles des objets de flux de données qui prennent en charge les
expressions de propriété. Par exemple, si vous avez placé une source ADO.NET sur l’aire
du concepteur, la liste Propriété contient une entrée pour la propriété [ADO NET
Source].[SqlCommand] . La liste affiche également de nombreuses propriétés de la
tâche de flux de données elle-même.

Les valeurs des propriétés de la liste suivante peuvent être spécifiées à l'aide
d'expressions de propriété.

Sources de flux de données

Objet de flux de données Property


Objet de flux de données Property

Source ADO NET Propriété TableOrViewName

Propriété SQLCommand

Source XML Propriété XMLData

Propriété XMLSchemaDefinition

Transformations de flux de données


Pour plus d’informations sur ces propriétés personnalisées, consultez Propriétés
personnalisées des transformations.

Objet de flux de données Property

transformation de fractionnement conditionnel Propriété FriendlyExpression

Transformation de colonnes dérivées Propriété FriendlyExpression

Transformation de regroupement approximatif Propriété MaxMemoryUsage

transformation de recherche floue Propriété MaxMemoryUsage

Transformation de recherche Propriété SQLCommand

Propriété SqlCommandParam

transformation de commande OLE DB Propriété SQLCommand

transformation de l'échantillonnage du pourcentage Propriété SamplingValue

transformation de tableau croisé dynamique Propriété PivotKeyValue

transformation d'échantillonnage de lignes Propriété SamplingValue

transformation de tri Propriété MaximumThreads

Transformation Unpivot Propriété PivotKeyValue

Destinations du flux de données

Objet de flux de données Property


Objet de flux de données Property

Destination ADO NET Propriété TableOrViewName

Propriété BatchSize

Propriété CommandTimeout

Destination de fichier plat Propriété Header

Destination SQL Server Compact Propriété TableName

Destination SQL Server Propriété BulkInsertTableName

Propriété BulkInsertFirstRow

Propriété BulkInsertLastRow

Propriété BulkInsertOrder

Propriété Timeout
Connecter des composants dans un flux
de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette procédure décrit comment connecter la sortie de composants d'un flux de


données à d'autres composants du même flux de données.
Le flux de données d’un package est construit sur la surface de conception de l’onglet
Flux de données du concepteur SSIS . Si un flux de données contient deux composants
de flux de données, vous pouvez les relier en connectant la sortie d'une source ou d'une
transformation à l'entrée d'une transformation ou d'une destination. Le connecteur
entre ces deux composants de flux de données porte le nom de chemin d'accès.

Le diagramme qui suit montre un flux de données simple formé d'un composant source,
de deux transformations, d'un composant de destination et des chemins d'accès les
connectant.

Une fois deux composants connectés, vous pouvez afficher les métadonnées des
données empruntant le chemin et les propriétés du chemin dans l’Éditeur du chemin
d’accès au flux de données. Pour plus d’informations, consultez Chemins d’accès
d’Integration Services.

Vous pouvez également ajouter des visionneuses de données aux chemins d'accès. Une
visionneuse de données permet d'afficher les données circulant entre les composants
du flux de données lors de l'exécution du package.

Connecter des composants dans un flux de données


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.


3. Cliquez sur l’onglet Flux de contrôle , puis double-cliquez sur la tâche de flux de
données qui contient le flux de données dans lequel vous voulez connecter des
composants.

4. Dans l’aire de conception de l’onglet Flux de données , sélectionnez la


transformation ou la source à connecter.

5. Faites glisser la flèche de sortie verte d'une transformation ou d'une source vers
une transformation ou une destination. Certains composants de flux de données
comportent des sorties d'erreurs, que vous pouvez connecter de la même manière.

7 Notes

Certains composants de flux de données peuvent avoir plusieurs sorties. Vous


pouvez connecter chaque sortie à une transformation ou une destination
différente.

6. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Ajouter ou supprimer un composant dans un flux de données
Débogage d’un flux de donnéesFlux de données
Chemins d'accès d'Integration Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un chemin d'accès connecte deux composants d'un flux de données en reliant la sortie
d'un composant à l'entrée d'un autre composant. Un chemin d'accès comporte une
source et une destination. Par exemple, si un chemin d'accès connecte une source OLE
DB et une transformation de tri, la source OLE DB est la source du chemin d'accès,
tandis que la transformation de tri est la destination du chemin d'accès. La source est le
composant où débute le chemin d'accès et la destination, le composant où il se termine.

Si vous exécutez un package dans le concepteur SSIS, vous pouvez voir les données
dans un flux de données en attachant des visionneuses de données à un chemin. Une
visionneuse de données peut être configurée pour afficher des données dans une grille.
Une visionneuse de données est un outil de débogage très utile. Pour plus
d’informations, consultez Débogage d’un flux de données.

Configurer le chemin
Le concepteur SSIS fournit la boîte de dialogue Éditeur du chemin de flux de données
pour définir les propriétés du chemin, voir les métadonnées des colonnes de données
qui passent par le chemin et configurer les visionneuses de données.

Le nom, la description et l'annotation du chemin d'accès sont des propriétés que vous
pouvez configurer. Vous pouvez également configurer les chemins d'accès par
programme. Pour plus d’informations, consultez Connexion de composants de flux de
données par programme.

Une annotation de chemin affiche le nom de la source du chemin ou le nom du chemin


sur l’aire de conception de l’onglet Flux de données du concepteur SSIS. Les
annotations de chemins d'accès sont similaires aux annotations ajoutées aux flux de
données, aux flux de contrôles et aux gestionnaires d'événements. La seule différence
est qu’une annotation de chemin est attachée à un chemin, alors que les autres
annotations apparaissent sous les onglets Flux de données, Flux de contrôleet
Gestionnaires d’événements du concepteur SSIS.

Les métadonnées indiquent le nom, le type de données, la précision, l'échelle, la


longueur, la page de codes et le composant source de chaque colonne dans la sortie du
composant précédent. Le composant source est le composant du flux de données ayant
créé la colonne. Il peut ou non s'agir du premier composant du flux de données. Par
exemple, les transformations d'union totale et de tri créent leurs propres colonnes et
sont les sources de leurs colonnes de sortie. À l'inverse, une transformation de copie de
colonne peut transmettre des colonnes sans les modifier ou créer des colonnes en
copiant les colonnes d'entrée. La transformation de copie de colonne est le composant
source des nouvelles colonnes uniquement.

Définir les propriétés d’un chemin à l’aide de


l’Éditeur du chemin d’accès au flux de données
Les chemins d'accès connectent deux composants de flux de données. Pour pouvoir
définir les propriétés des chemins d'accès, le flux de données doit contenir au moins
deux composants de flux de données connectés.

1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Flux de données , puis double-cliquez sur un chemin.

4. Dans Éditeur du chemin d’accès au flux de données, cliquez sur Général. Vous
pouvez ensuite modifier le nom par défaut du chemin d'accès et fournir une
description. Vous pouvez également modifier la propriété PathAnnotation.

5. Cliquez sur OK.

6. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Page Général - Éditeur du chemin d’accès au


flux de données
Utilisez la boîte de dialogue Éditeur du chemin d'accès au flux de données pour définir
les propriétés du chemin d'accès, afficher les métadonnées de la colonne et gérer les
visionneuses de données liées à ce chemin d'accès.

Utilisez le nœud Général de la boîte de dialogue Éditeur du chemin d'accès au flux de


données pour nommer et décrire le chemin d'accès et pour spécifier ses options
d'annotation.

Options
Nom
Donnez un nom unique au chemin d'accès.

Identifiant
Identificateur de lignage du chemin d'accès. Cette propriété est en lecture seule.

IdentificationString
Chaîne identifiant le chemin d'accès. Généré automatiquement à partir du nom entré
précédemment.

Description
Décrivez le chemin d'accès.

PathAnnotation
Spécifiez le type d'annotation à utiliser. Choisissez Never pour désactiver les
annotations, AsNeeded pour activer l'annotation à la demande, SourceName pour
annoter automatiquement en utilisant la valeur de l'option SourceName et PathName
pour annoter automatiquement en utilisant la valeur de la propriété Nom .

DestinationName
Affiche l'entrée qui représente l'issue du chemin d'accès.

SourceName
Affiche la sortie qui représente le début du chemin d'accès.

Page Métadonnées - Éditeur du chemin d’accès


au flux de données
Utilisez la page Métadonnées de la boîte de dialogue Éditeur du chemin d'accès au
flux de données pour afficher les métadonnées des colonnes du chemin d'accès.

Options
Path metadata
Affiche la liste des métadonnées des colonnes. Cliquez sur les en-têtes de colonne pour
trier les données des colonnes.

Nom
Donne le nom de la colonne.

Type de données
Affiche le type de données de la colonne.
Précision
Affiche le nombre de chiffres d'une valeur numérique.

Mise à l’échelle
Affiche le nombre de chiffres à droite du séparateur décimal d'une valeur numérique.

Longueur
Affiche la longueur actuelle de la colonne.

Page de codes
Affiche la page de codes de la colonne. La valeur 0 indique que la colonne d'utilise pas
de page de codes. Cette situation se produit lorsque les données sont au format
Unicode ou de type numérique, date ou heure.

Position de la clé de tri


Affiche la position de la clé de tri de la colonne. La valeur 0 indique que la colonne n'est
pas triée.

7 Notes

Un signe moins (-) comme préfixe indique que la colonne est triée dans l'ordre
décroissant.

Indicateurs de comparaison
Affiche la liste des indicateurs de comparaison qui s'appliquent à la colonne.

Composant source
Affiche le composant du flux de données qui représente la source de la colonne.

Copier dans le Presse-papiers


Copie les données de la colonne dans le Presse-papiers. Par défaut, toutes les lignes de
métadonnées sont copiées dans l'ordre de tri actuellement affiché.

Page Visionneuses de données - Éditeur du


chemin d’accès au flux de données
Utilisez la page Visionneuses de données de la boîte de dialogue Éditeur du chemin
d'accès au flux de données pour gérer les visionneuses de données liées au chemin
d'accès.

Options
Nom
Affiche la liste des visionneuses de données.

Type de Visionneuse de données


Affiche le type de la visionneuse de données.

Ajouter
Cliquez sur ce bouton pour ajouter une visionneuse de données à l’aide de la boîte de
dialogue Configurer la Visionneuse de données .

Supprimer
Cliquez sur cette option pour supprimer la Visionneuse de données sélectionnée.

Configurer
Cliquez sur ce bouton pour configurer la visionneuse de données sélectionnée à l’aide
de la boîte de dialogue Configurer la Visionneuse de données .

Propriétés du chemin d’accès


Les objets de flux de données dans le modèle objet Microsoft SQL Server Integration
Services ont des propriétés communes et des propriétés personnalisées au niveau du
composant, des entrées et sorties, et des colonnes d’entrée et colonnes de sortie. De
nombreuses propriétés ont des valeurs en lecture seule qui sont assignées au moment
de l'exécution par le moteur de flux de données.

Cette rubrique répertorie et décrit les propriétés personnalisées des chemins d'accès qui
connectent des objets de flux de données.

Propriétés personnalisées d’un chemin


Dans le modèle objet Integration Services, un chemin qui connecte des composants
dans le flux de données implémente l’interface IDTSPath100.

Le tableau suivant décrit les propriétés configurables des chemins d'accès dans un flux
de données. Le moteur de flux de données assigne également des valeurs à d'autres
propriétés en lecture seule qui ne sont pas répertoriées ici.

Nom de la Type de Description


propriété données
Nom de la Type de Description
propriété données

PathAnnotation Integer Valeur qui indique si une annotation doit être affichée avec
(énumération) le chemin d'accès sur l'aire du concepteur. Les valeurs
possibles sont AsNeeded, SourceName, PathNameet
Never. La valeur par défaut est AsNeeded.

DestinationName IDTSInput100 Entrée associée au chemin d'accès.

SourceName IDTSOutput100 Sortie associée au chemin d'accès.


Éditeur de restauration de références de
colonnes
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Lorsqu'un chemin d'accès d'entrée est déconnecté ou s'il existe des colonnes non
mappées dans le chemin d'accès, une icône d'erreur s'affiche en regard du chemin
d'accès aux données correspondant. Pour simplifier la résolution des erreurs de
référence de colonne, l’éditeur de résolution des références vous permet de lier des
colonnes de sortie non mappées avec des colonnes d’entrée non mappées pour tous les
chemins d’accès de l’arborescence d’exécution. L'éditeur de résolution des références
met également en surbrillance les chemins d'accès pour indiquer ceux qui sont résolus.

7 Notes

Il est possible de modifier un composant même lorsque son chemin d’entrée est
déconnecté.

Une fois toutes les références de colonnes résolues, s'il n'y a pas d'autres erreurs de
chemin d'accès aux données, aucune icône d'erreur ne s'affiche en regard des chemins
d'accès aux données.

Options
Colonnes de sortie non mappées (source)
Colonnes du chemin d'accès en amont qui ne sont pas mappées

Colonnes mappées (source)


Colonnes du chemin d'accès en amont qui sont mappées à des colonnes du chemin
d'accès en aval

Colonnes mappées (destination)


Colonnes du chemin d'accès en amont qui sont mappées à des colonnes du chemin
d'accès en aval

Colonnes d’entrée non mappées (destination)


Colonnes du chemin d'accès en aval qui ne sont pas mappées
Supprimer les colonnes d'entrée non mappées
Activez Supprimer les colonnes d'entrée non mappées pour ignorer les colonnes non
mappées au niveau de la destination du chemin d'accès aux données. Le bouton Aperçu
des modifications affiche la liste des modifications qui se produiront lorsque vous
appuierez sur le bouton OK.
Visionneuse de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Si un chemin d'accès est configuré pour utiliser une visionneuse de données, la


visionneuse affiche les données tampon par tampon à mesure qu'elles se déplacent
entre deux composants de flux de données.

Options
Flèche verte
Cliquez sur cette option pour afficher les données du tampon suivant. Si les données
peuvent être déplacées dans un tampon unique, cette option n'est pas disponible.

Détacher
Détachez la visionneuse de données.

Remarque Le détachement d'une visionneuse de données ne la supprime pas. Si la


visionneuse de données est détachée, les données continuent de circuler sur le chemin
mais les données de la visionneuse ne sont pas mises à jour pour refléter les données de
chaque tampon.

Attacher
Attachez une visionneuse de données.

Remarque Lorsque la visionneuse de données est attachée, elle affiche les informations
de chaque tampon du flux de données, puis s'arrête. Vous pouvez progresser dans les
tampons à l'aide de la flèche verte.

Copier les données


Copiez les données du tampon actuel dans le Presse-papiers.

Voir aussi
Débogage d’un flux de données
Gestion des erreurs dans les données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Lorsqu'un composant de flux de données applique une transformation à des données


de colonne, extrait des données à partir de sources ou charge des données dans des
destinations, des erreurs peuvent se produire. Les erreurs sont fréquemment dues à des
valeurs de données inattendues. Par exemple, une conversion de données échoue car
une colonne contient une chaîne au lieu d'un nombre, une insertion dans une colonne
de base de données échoue car les données sont une date et que la colonne a un type
de données numérique, ou l'évaluation d'une expression échoue car la valeur d'une
colonne est nulle, ce qui engendre une opération mathématique non valide.

Les erreurs appartiennent en général à l'une des catégories suivantes :

Erreurs de conversion de données, qui se produisent si une conversion provoque la


perte de chiffres significatifs, la perte de chiffres non significatifs et la troncation de
chaînes. Les erreurs de conversion de données se produisent également si la
conversion demandée n'est pas prise en charge.

Erreurs d'évaluation d'expression, qui se produisent si des expressions évaluées au


moment de l'exécution effectuent des opérations non valides ou deviennent
syntaxiquement incorrectes à cause de valeurs de données manquantes ou
incorrectes.

Erreurs de recherche, qui se produisent si une opération de recherche ne trouve


pas de correspondance dans la table de recherche.

Pour obtenir une liste d'erreurs, d'avertissements et d'autres messages Integration


Services, consultez Integration Services Error and Message Reference.

Utiliser les sorties d’erreur pour capturer les


erreurs au niveau des lignes
De nombreux composants de flux de données prennent en charge les sorties d'erreur,
qui vous permettent de contrôler la manière dont le composant gère les erreurs de
lignes dans les données entrantes et sortantes. Vous pouvez spécifier le comportement
du composant lorsqu'une troncation ou une erreur se produit en définissant des options
sur des colonnes dans l'entrée ou la sortie. Par exemple, vous pouvez faire en sorte que
le composant échoue si les données de noms des clients sont tronquées, mais qu'il
ignore les erreurs sur une autre colonne qui contient des données moins importantes.

La sortie d'erreur peut être connectée à l'entrée d'une autre transformation ou chargée
dans une destination différente de la sortie sans erreur. Par exemple, la sortie d'erreur
peut être connectée à une transformation de colonne dérivée qui fournit une chaîne
pour une colonne vide.

Le schéma suivant illustre un flux de données simple incluant une sortie d'erreur.

Pour plus d’informations, consultez Flux de données et Chemins d’accès d’Integration


Services.

Boîte de dialogue Configurer la sortie d’erreur


Utilisez la boîte de dialogue Configurer l'affichage des erreurs pour définir les options
de gestion des transformations de flux de données qui prennent en charge une sortie
d'erreur.

Pour en savoir plus sur l’utilisation des sorties d’erreur, consultez Gestion des erreurs
dans les données.

Options
Entrée ou Sortie
Affiche le nom de la sortie.

Colonne
Affiche les colonnes de sortie que vous avez sélectionnées dans la boîte de dialogue
Éditeur de transformation.

Error
Le cas échéant, indiquez ce qui doit se passer en cas d'erreur : ignorer l'échec, rediriger
la ligne ou faire échouer le composant.

Rubriques connexes :Gestion des erreurs dans les données

Troncation
Le cas échéant, indiquez ce qui doit se passer en cas de troncation : ignorer l'échec,
rediriger la ligne ou faire échouer le composant.

Rubriques connexes :Gestion des erreurs dans les données

Description
Affichez la description de l'opération.

Définir cette valeur sur les cellules sélectionnées


Indiquez ce qui doit se produire pour l'ensemble des cellules sélectionnées lorsqu'une
erreur ou une troncation se produit : ignorer l'échec, rediriger la ligne ou faire échouer
le composant.

Appliquer
Appliquez l'option de gestion des erreurs aux cellules sélectionnées.

Erreurs de type échecs ou troncations


Les erreurs appartiennent à l'une des deux catégories suivantes : erreurs ou troncations.

Erreurs. Une erreur indique un échec non équivoque et génère un résultat NULL. Il peut
s'agir par exemple d'erreurs de conversion de données ou d'évaluation d'expression,
telles qu'une tentative de conversion d'une chaîne contenant des caractères
alphabétiques en nombre. Les conversions de données, les évaluations d'expression et
les affectations de résultats d'expression aux variables, propriétés et colonnes de
données peuvent échouer en raison de casts non conformes et de types de données
incompatibles. Pour plus d’informations, consultez Cast (expression SSIS), Types de
données Integration Services dans les expressions et Types de données Integration
Services.

Troncations. Une troncation est une erreur moins grave. Elle génère des résultats qui
peuvent être utilisables, voire même souhaitables. Vous pouvez faire en sorte de traiter
les troncations comme des erreurs ou comme des conditions acceptables. Par exemple,
si vous insérez une chaîne de 15 caractères dans une colonne qui ne fait qu'un seul
caractère de large, vous pouvez choisir de tronquer la chaîne.

Sélectionner une option de gestion des erreurs


Vous pouvez configurer la manière dont les sources, les transformations et les
destinations gèrent les erreurs et les troncations. Le tableau ci-dessous décrit les options
disponibles.

Option Description

Composant La tâche de flux de données échoue lorsqu'une erreur ou une troncation a lieu.
défaillant L'échec est l'option par défaut pour une erreur et une troncation.

Ignorer L'erreur ou la troncation est ignorée et la ligne de données est dirigée vers la
l'échec sortie de la transformation ou de la source.

Réacheminer La ligne de données d'erreur ou de troncation est dirigée vers la sortie d'erreur de
la ligne la source, de la transformation ou de la destination.

Obtenir des informations supplémentaires sur


l’erreur
Outre les colonnes de données, la sortie d'erreur contient les colonnes ErrorCode et
ErrorColumn . La colonne ErrorCode identifie l'erreur, tandis que la colonne
ErrorColumn contient l'identificateur de lignage de la colonne d'erreur.

Dans certaines circonstances, la colonne ErrorColumn prend la valeur zéro. Cela se


produit lorsque la condition d'erreur affecte toute la ligne et non une seule colonne. Par
exemple, lorsqu'une recherche échoue dans la transformation de recherche.

Ces deux valeurs numériques peuvent se révéler d’une utilité limitée en l’absence de la
description d’erreur et du nom de colonne correspondants. Voici quelques méthodes
vous permettant d’obtenir la description de l’erreur et le nom de la colonne.

Vous pouvez visualiser à la fois les descriptions d’erreur et les noms de colonne en
attachant une Visionneuse de données à la sortie d’erreur. Dans le concepteur
SSIS, cliquez avec le bouton droit sur la flèche rouge conduisant à une sortie
d’erreur et sélectionnez Activer la visionneuse de données.

Vous pouvez rechercher des noms de colonne en activant la journalisation et en


sélectionnant l’événement DiagnosticEx . Cet événement consigne un mappage de
colonnes de flux de données dans le journal. Vous pouvez ensuite rechercher le
nom de colonne à partir de son identificateur dans ce mappage de colonnes.
Notez que l’événement DiagnosticEx ne conserve pas l’espace blanc dans sa sortie
XML afin réduire la taille du journal. Pour améliorer la lisibilité, copiez le journal
dans un éditeur XML (dans Visual Studio, par exemple) prenant en charge la mise
en forme XML et la mise en surbrillance de la syntaxe. Pour plus d’informations sur
la journalisation, consultez Journalisation Integration Services (SSIS).

Voici un exemple de mappage de colonnes de flux de données.

XML

\<DTS:PipelineColumnMap xmlns:DTS="www.microsoft.com/SqlServer/Dts">
\<DTS:Pipeline DTS:Path="\Package\Data Flow Task">
\<DTS:Column DTS:ID="11" DTS:IdentificationString="ADO NET
Source.Outputs[ADO NET Source Output].Columns[Customer]"/>
\<DTS:Column DTS:ID="12" DTS:IdentificationString="ADO NET
Source.Outputs[ADO NET Source Output].Columns[Product]"/>
\<DTS:Column DTS:ID="13" DTS:IdentificationString="ADO NET
Source.Outputs[ADO NET Source Output].Columns[Price]"/>
\<DTS:Column DTS:ID="14" DTS:IdentificationString="ADO NET
Source.Outputs[ADO NET Source Output].Columns[Timestamp]"/>
\<DTS:Column DTS:ID="20" DTS:IdentificationString="ADO NET
Source.Outputs[ADO NET Source Error Output].Columns[Customer]"/>
\<DTS:Column DTS:ID="21" DTS:IdentificationString="ADO NET
Source.Outputs[ADO NET Source Error Output].Columns[Product]"/>
\<DTS:Column DTS:ID="22" DTS:IdentificationString="ADO NET
Source.Outputs[ADO NET Source Error Output].Columns[Price]"/>
\<DTS:Column DTS:ID="23" DTS:IdentificationString="ADO NET
Source.Outputs[ADO NET Source Error Output].Columns[Timestamp]"/>
\<DTS:Column DTS:ID="24" DTS:IdentificationString="ADO NET
Source.Outputs[ADO NET Source Error Output].Columns[ErrorCode]"/>
\<DTS:Column DTS:ID="25" DTS:IdentificationString="ADO NET
Source.Outputs[ADO NET Source Error Output].Columns[ErrorColumn]"/>
\<DTS:Column DTS:ID="31" DTS:IdentificationString="Flat File
Destination.Inputs[Flat File Destination Input].Columns[Customer]"/>
\<DTS:Column DTS:ID="32" DTS:IdentificationString="Flat File
Destination.Inputs[Flat File Destination Input].Columns[Product]"/>
\<DTS:Column DTS:ID="33" DTS:IdentificationString="Flat File
Destination.Inputs[Flat File Destination Input].Columns[Price]"/>
\<DTS:Column DTS:ID="34" DTS:IdentificationString="Flat File
Destination.Inputs[Flat File Destination Input].Columns[Timestamp]"/>
\</DTS:Pipeline>
\</DTS:PipelineColumnMap>

Vous pouvez également utiliser le composant Script pour inclure la description


d’erreur et le nom de colonne dans des colonnes supplémentaires de la sortie
d’erreur. Pour obtenir un exemple, consultez Amélioration d’une sortie d’erreur à
l’aide du composant Script.

Incluez la description d’erreur dans une colonne supplémentaire en utilisant une


ligne unique de script pour appeler la méthode GetErrorDescription de
l’interface IDTSComponentMetaData100 .
Incluez le nom de colonne dans une colonne supplémentaire en utilisant une
ligne de script pour appeler la méthode
[Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100.GetIden
tificationStringByID*] (/previous-versions/sql/sql-server-
2016/mt657629(v=sql.130)) de l’interface IDTSComponentMetaData100.

Vous pouvez ajouter le composant Script au segment d’erreur du flux de données


n’importe où en aval des composants de flux de données dont vous souhaitez
capturer les erreurs. En règle générale, vous placez le composant Script
immédiatement avant l’écriture des lignes d’erreur dans une destination. De cette
manière, le script recherche uniquement les descriptions des lignes d’erreur écrites.
Le segment d’erreur du flux de données peut corriger certaines erreurs sans écrire
ces lignes dans une destination d’erreur.

Voir aussi
Flux de données
Transformer des données avec des transformations
Connecter des composants avec des chemins
tâche de flux de données
Flux de données
Fonctionnalités de performances de flux
de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette rubrique offre des suggestions pour éviter les problèmes de performances les plus
fréquents lors de la conception de packages Integration Services . Cette rubrique fournit
également des informations sur les fonctionnalités et les outils que vous pouvez utiliser
pour résoudre des problèmes liés aux performances des packages.

Configuration du flux de données


Pour configurer la tâche de flux de données afin d'obtenir de meilleures performances,
vous pouvez configurer les propriétés de la tâche, régler la taille du tampon et
configurer le package pour une exécution parallèle.

Configuration des propriétés de la tâche de flux de


données

7 Notes

Les propriétés abordées dans cette section doivent être définies séparément pour
chaque tâche de flux de données d'un package.

Vous pouvez configurer les propriétés suivantes de la tâche de flux de données qui
affectent toutes les performances :

Spécifiez les emplacements de stockage provisoires des données de la mémoire


tampon (propriété BufferTempStoragePath) et des colonnes contenant des
données d’objets BLOB (propriété BLOBTempStoragePath). Par défaut, ces
propriétés contiennent les valeurs des variables d'environnement TEMP et TMP.
Vous pouvez préciser d'autres dossiers pour placer les fichiers temporaires sur un
autre lecteur de disque dur ou un lecteur plus rapide, ou bien les répartir sur
plusieurs lecteurs. Vous pouvez spécifier plusieurs répertoires en séparant leurs
noms par un point-virgule.

Définissez la taille par défaut de la mémoire tampon utilisée par la tâche en


définissant la propriété DefaultBufferSize, puis le nombre maximal de lignes dans
chaque mémoire tampon en définissant la propriété DefaultBufferMaxRows.
Définissez la propriété AutoAdjustBufferSize pour indiquer si la taille par défaut de
la mémoire tampon est calculée automatiquement à partir de la valeur de la
propriété DefaultBufferMaxRows. La taille par défaut de la mémoire tampon est de
10 mégaoctets (Mo), avec une taille maximale de 2^31-1 octets. Le nombre
maximal de lignes par défaut est 10 000.

Définissez le nombre de threads que la tâche peut utiliser pendant l’exécution en


définissant la propriété EngineThreads. Cette propriété donne une indication au
moteur de flux de données sur le nombre de threads à utiliser. La valeur par défaut
est 10 et la valeur minimale 3. Néanmoins, le moteur n'utilise pas plus de threads
qu'il n'en faut, quelle que soit la valeur de cette propriété. Si besoin est, pour éviter
des problèmes de concurrence, le moteur peut également utiliser plus de threads
que le nombre spécifié dans cette propriété.

Indiquez si la tâche de flux de données s’exécute en mode optimisé (propriété


RunInOptimizedMode). Le mode optimisé améliore les performances en
supprimant les colonnes, les sorties et les composants inutilisés du flux de
données.

7 Notes

Une propriété du même nom, RunInOptimizedMode, peut être définie au


niveau du projet dans SQL Server Data Tools (SSDT) pour indiquer que la
tâche de flux de données fonctionne en mode optimisé lors du débogage. La
propriété du projet remplace la propriété RunInOptimizedMode des tâches de
flux de données au moment de la conception.

Régler la taille des tampons


Le moteur de flux de données entame le processus de redimensionnement de ses
tampons en calculant la taille estimée pour une seule ligne de données. Il multiplie
ensuite la taille estimée d’une ligne par la valeur de DefaultBufferMaxRows pour obtenir
une valeur de travail préliminaire pour la taille de la mémoire tampon.

Si AutoAdjustBufferSize est défini sur true, le moteur de flux de données utilise la


valeur calculée comme taille de mémoire tampon, et la valeur de DefaultBufferSize
est ignorée.

Si AutoAdjustBufferSize est défini sur false, le moteur de flux de données utilise les
règles suivantes pour déterminer la taille de la mémoire tampon.
Si le résultat est supérieur à la valeur de DefaultBufferSize, le moteur réduit le
nombre de lignes.

Si le résultat est inférieur à la taille de tampon minimale calculée en interne, le


moteur augmente le nombre de lignes.

Si le résultat obtenu se situe entre la taille de tampon minimale et la valeur de


DefaultBufferSize, le moteur redimensionne la mémoire tampon le plus près
possible de la taille de ligne estimée multipliée par la valeur de
DefaultBufferMaxRows.

Quand vous commencez à tester les performances de vos tâches de flux de données,
utilisez les valeurs par défaut de DefaultBufferSize et DefaultBufferMaxRows. Activez la
journalisation dans la tâche de flux de données et sélectionnez l'événement
BufferSizeTuning pour connaître le nombre de lignes figurant dans chaque tampon.

Avant de régler la taille des tampons, l'amélioration la plus importante à apporter est de
réduire la taille de chaque ligne de données en supprimant les colonnes inutiles et en
configurant comme il se doit les types de données.

Pour déterminer la quantité optimale de mémoires tampon et leur taille, faites un essai
avec les valeurs de DefaultBufferSize et DefaultBufferMaxRows, tout en surveillant les
performances et les informations signalées par l’événement BufferSizeTuning.

N'augmentez pas la taille du tampon au point de déclencher la pagination sur le disque.


Cela aurait des effets plus néfastes sur les performances que la non-optimisation de la
taille du tampon. Pour déterminer si la pagination est en cours, surveillez le compteur de
performances « Mémoires tampon spoulées » dans le composant logiciel enfichable
Performance de la console MMC ( Microsoft Management Console).

Configurer le package pour une exécution parallèle


L'exécution parallèle améliore les performances sur les ordinateurs dotés de plusieurs
processeurs physiques ou logiques. Pour prendre en charge l’exécution parallèle de
différentes tâches dans le package, Integration Services utilise deux propriétés :
MaxConcurrentExecutables et EngineThreads.

La propriété MaxConcurrentExcecutables
La propriété MaxConcurrentExecutables est une propriété du package lui-même. Cette
propriété définit le nombre de tâches pouvant s'exécuter simultanément. La valeur par
défaut est -1, ce qui correspond au nombre de processeurs physiques ou logiques plus
2.
Pour comprendre comment cette propriété fonctionne, imaginez un package composé
de trois tâches de flux de données. Si vous attribuez à MaxConcurrentExecutables la
valeur 3, les trois tâches de flux de données peuvent s'exécuter simultanément.
Toutefois, supposez que chaque tâche de flux de données comporte 10 arborescences
d'exécution de la source vers la destination. Le fait d'attribuer à
MaxConcurrentExecutables la valeur 3 ne garantit pas que les arborescences
d'exécution à l'intérieur de chaque tâche de flux de données s'exécuteront en parallèle.

La propriété EngineThreads

La propriété EngineThreads est une propriété de chaque tâche de flux de données.


Cette propriété définit le nombre de threads que le moteur de flux de données peut
créer et exécuter en parallèle. La propriété EngineThreads s'applique aussi bien aux
threads sources que le moteur de flux de données crée pour les sources qu'aux threads
de travail que le moteur crée pour les transformations et les destinations. Par
conséquent, si vous attribuez à EngineThreads la valeur 10, le moteur pourra créer
jusqu'à dix threads sources et dix threads de travail.

Pour comprendre comment cette propriété fonctionne, reprenez l'exemple de package


composé de trois tâches de flux de données. Chaque tâche de flux de données contient
dix arborescences d'exécution de la source vers la destination. Si vous attribuez à
EngineThreads la valeur 10 sur chaque tâche de flux de données, les 30 arborescences
d'exécution pourront potentiellement s'exécuter simultanément.

7 Notes

Les threads ne sont pas traités dans cette rubrique. Toutefois, la règle générale
consiste à ne pas exécuter plus de threads en parallèle que le nombre de
processeurs disponibles. Si vous exécutez plus de threads que le nombre de
processeurs disponibles, le changement de contexte fréquent entre les threads
peut nuire aux performances.

Configuration de composants de flux de


données individuels
Pour configurer des composants de flux de données individuels afin d'obtenir de
meilleures performances, il y a plusieurs règles générales que vous pouvez suivre.
D'autres règles spécifiques s'appliquent également à chaque type de composant de flux
de données : source, transformation et destination.
Instructions générales
Indépendamment du composant de flux de données, deux règles générales sont à
suivre pour améliorer les performances : optimiser les requêtes et éviter les chaînes
inutiles.

Optimisation des requêtes


De nombreux composants de flux de données utilisent des requêtes, soit au cours de
l'extraction de données à partir de sources, soit au cours d'opérations de recherche dans
le but de créer des tables de référence. La requête par défaut utilise la syntaxe SELECT *
FROM <nom_table>. Ce type de requête retourne toutes les colonnes dans la table
source. Le fait de disposer de toutes les colonnes au moment de la conception permet
de choisir n'importe quelle colonne comme colonne de recherche, comme colonne SQL
directe ou comme colonne source. Cependant, après avoir sélectionné les colonnes à
utiliser, vous devez vérifier la requête et vous assurer qu'elle contient uniquement les
colonnes utilisées. La suppression de colonnes superflues permet de créer une ligne plus
petite et donc d'accroître l'efficacité du flux de données dans un package. Avec des
lignes plus petites, vous pouvez faire tenir plus de lignes dans un tampon et, de ce fait,
réduire la charge de travail nécessaire pour traiter toutes les lignes dans le dataset.

Pour construire une requête, vous pouvez taper la requête ou utiliser le générateur de
requêtes.

7 Notes

Lorsque vous exécutez un package dans SQL Server Data Tools (SSDT), l'onglet
Progression du concepteur SSIS affiche une liste d'avertissements, y compris un
avertissement pour toutes les colonnes de données qu'une source met à la
disposition du flux de données mais qui ne sont pas utilisées ensuite par les
composants de flux de données en aval. Vous pouvez faire appel à la propriété
RunInOptimizedMode pour supprimer automatiquement ces colonnes.

Suppression des tris non nécessaires


Le tri est, par essence, une opération lente et la décision d'éviter un tri inutile peut
améliorer les performances du flux de données du package.

Parfois, les données sources ont déjà été triées avant d'être utilisées par un composant
en aval. Ce pré-triage peut avoir lieu soit parce que la requête SELECT utilise une clause
ORDER BY, soit parce que les données ont été insérées dans la source par ordre de tri.
Pour de telles données sources pré-triées, vous pouvez fournir un indicateur qui précise
que les données sont triées afin d'éviter l'utilisation d'une transformation de tri pour
satisfaire aux spécifications de tri de certaines transformations en aval. (Par exemple, les
transformations de fusion et de jointure de fusion nécessitent des entrées triées). Pour
fournir un indicateur qui précise que les données sont triées, vous devez effectuer les
tâches suivantes :

attribuer à la propriété IsSorted sur la sortie d'un composant de flux de données


en amont la valeur True;

spécifier les colonnes clés de tri sur lesquelles les données sont triées.

Pour plus d’informations, consultez Trier des données pour les transformations de fusion
et de jointure de fusion.

Si vous devez trier les données dans le flux de données, vous pouvez améliorer les
performances en concevant le flux de données de façon à utiliser aussi peu d'opérations
de tri que possible. Par exemple, le flux de données utilise une transformation de
multidiffusion pour copier le dataset. Triez le dataset une fois avant que la
transformation de multidiffusion ne s'exécute au lieu de trier plusieurs sorties après la
transformation.

Pour plus d'informations, consultez Sort Transformation, Merge Transformation, Merge


Join Transformationet Multicast Transformation.

Sources

Source OLE DB

Lorsque vous utilisez une source OLE DB pour extraire les données d'une vue,
sélectionnez « Commande SQL » comme mode d'accès aux données et entrez une
instruction SELECT. L'utilisation d'une instruction SELECT pour accéder aux données offre
de meilleures performances que le mode d'accès aux données « Table ou vue ».

Transformations
Utilisez les suggestions de cette section pour améliorer les performances des
transformations d'agrégation, de recherche floue, de regroupement probable, de
recherche, de jointure de fusion et de dimension à variation lente.

Transformation d'agrégation
La transformation d'agrégation inclut les propriétés Keys, KeysScale,
CountDistinctKeyset CountDistinctScale . Ces propriétés améliorent les performances
en permettant à la transformation de préallouer la quantité de mémoire dont la
transformation a besoin pour les données que la transformation met en cache. Si vous
savez le nombre exact ou approximatif des groupes attendus d'une opération Group by
, définissez les propriétés Keys et KeysScale , respectivement. Si vous savez le nombre
exact ou approximatif des valeurs distinctes attendues d'une opération Comptage de
valeurs , définissez les propriétés CountDistinctKeys et CountDistinctScale ,
respectivement.

Si vous devez créer plusieurs agrégations dans un flux de données, songez à créer
plusieurs agrégations qui utilisent une transformation d'agrégation au lieu de créer
plusieurs transformations. Cette approche améliore les performances lorsqu'une
agrégation est un sous-ensemble d'une autre agrégation, car la transformation peut
optimiser le stockage interne et analyser une seule fois les données entrantes. Par
exemple, si une agrégation utilise une clause GROUP BY et une agrégation AVG, le fait
de les combiner en une seule transformation peut améliorer les performances. Toutefois,
du fait que la réalisation de plusieurs agrégations au sein d'une transformation
d'agrégation sérialise les opérations d'agrégation, il est possible que les performances
ne s'améliorent pas lorsque plusieurs agrégations doivent être calculées
indépendamment.

Transformations de recherche floue et de regroupement probable


Pour plus d'informations sur l'optimisation des performances des transformations de
recherche floue et de regroupement probable, consultez le livre blanc Présentation des
transformations Fuzzy Lookup (recherche approximative) et Fuzzy Grouping
(regroupement approximatif) dans les services DTS (Data Transformation Services) de
SQL Server 2005.

Transformation de recherche

Réduisez la taille des données de référence en mémoire en entrant une instruction


SELECT qui recherche uniquement les colonnes dont vous avez besoin. Cette approche
est plus performante que la sélection d'une table ou d'une vue entière qui retourne une
quantité importante de données inutiles.

transformation de jointure de fusion

Vous n'avez plus à configurer la valeur de la propriété MaxBuffersPerInput car Microsoft


a apporté des modifications qui réduisent le risque que la transformation de jointure de
fusion consomme de la mémoire en excès. Ce problème s'est quelquefois produit
lorsque plusieurs entrées de jointure de fusion produisaient des données à des taux
irréguliers.

Transformation de dimension à variation lente


L'Assistant Dimension à variation lente et la transformation de dimension à variation
lente sont des outils à caractère général qui répondent aux besoins de la plupart des
utilisateurs. Toutefois, le flux de données généré par l'Assistant n'est pas optimisé en
termes de performances.

En général, les composants les plus lents de la transformation de dimension à variation


lente sont les transformations de commande OLE DB qui effectuent des mises à jour sur
une ligne à la fois. Par conséquent, le moyen le plus efficace pour améliorer les
performances de la transformation de dimension à variation lente consiste à remplacer
les transformations de commande OLE DB. Vous pouvez remplacer ces transformations
par des composants de destination qui enregistrent toutes les lignes à mettre à jour
dans une table de transit. Ensuite, vous pouvez ajouter une tâche d'exécution SQL qui
effectue une opération UPDATE Transact-SQL basée sur un jeu unique sur toutes les
lignes en même temps.

Les utilisateurs expérimentés peuvent concevoir un flux de données personnalisé pour le


traitement des dimensions à variation lente qui est optimisé pour les grandes
dimensions. Pour en savoir plus et obtenir un exemple de cette approche, consultez la
section « Scénario de dimension Unique » dans le livre blanc Projet REAL: Pratiques de
conception ETL Business Intelligence .

Destinations
Pour obtenir de meilleures performances avec les destinations, songez à utiliser une
destination SQL Server et à tester les performances de la destination.

Destination SQL Server


Lorsqu'un package charge des données dans une instance de SQL Server sur le même
ordinateur, utilisez une destination SQL Server . Cette destination est optimisée pour les
chargements en masse à haute vitesse.

Test des performances des destinations


L'enregistrement des données sur les destinations peut être plus long que prévu. Pour
déterminer si la lenteur provient de l'incapacité de la destination à traiter rapidement
des données, vous pouvez provisoirement remplacer la destination par une
transformation de calcul du nombre de lignes. Si le débit en sortie s'améliore
significativement, il est probable que la destination chargeant les données est la cause
du ralentissement.

Vérification des informations de l'onglet Progression


SSIS fournit des informations sur le flux de contrôle et le flux de données lorsque vous
exécutez un package dans SQL Server Data Tools (SSDT). L'onglet Progression énumère
les tâches et les conteneurs par ordre d'exécution et indique les heures de début et de
fin, les avertissements et les messages d'erreur pour chaque tâche et chaque conteneur,
y compris le package lui-même. Il répertorie également les composants de flux de
données par ordre d'exécution et dévoile des informations sur la progression (sous
forme de pourcentage) et le nombre de lignes traitées.

Pour activer ou désactiver l'affichage de messages sous l'onglet Progression , basculez


l'option Création de rapports de progression de débogage dans le menu SSIS . La
désactivation du rapport de progression peut aider à améliorer les performances lors de
l'exécution d'un package complexe dans SQL Server Data Tools.

Tâches associées
Trier des données pour les transformations de fusion et de jointure de fusion

Contenu associé
Articles et publications de blog

Article technique, SQL Server 2005 Integration Services : une stratégie pour de
meilleures performances, sur le site technet.microsoft.com

Article technique, Integration Services : techniques de réglage des performances,


sur le site technet.microsoft.com

Article technique Increasing Throughput of Pipelines by Splitting Synchronous


Transformations into Multiple Tasks dans SQLCAT's Guide to BI and Analytics

Article technique, Guide des performances de chargement des données, sur le site
msdn.microsoft.com.
Article technique, Nous avons chargé 1 To en 30 minutes avec SSIS, vous le pouvez
aussi, sur le site msdn.microsoft.com.

Article technique, Les 10 meilleures pratiques pour SQL Server Integration


Services , sur le site sqlcat.com.

Article technique et exemple, « Distributeur de données équilibrées » pour SSIS ,


sur le site sqlcat.com.

Publication de blog Résolution des problèmes de performances des packages


SSIS sur blogs.msdn.com.

Vidéos

Série de vidéos, Conception et optimisation des performances de vos packages


SSIS en entreprise (Série de vidéos SQL)

Vidéo, Optimisation du flux de données de votre package SSIS en entreprise


(Vidéo SQL Server), sur technet.microsoft.com

Vidéo, Présentation des mémoires tampon de flux de données SSIS (Vidéo SQL
Server), sur technet.microsoft.com

Présentation, Exploitation par Microsoft IT des améliorations apportées au moteur


de flux de données SQL Server 2008 SSIS , sur le site sqlcat.com.

Vidéo, Distributeur de données équilibrées, sur technet.microsoft.com.

Voir aussi
Outils de dépannage pour le développement des packages
Outils de dépannage pour l’exécution des packages
Assistant source
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le composant Assistant Source permet de créer un composant source et un


gestionnaire de connexions. Le composant se trouve dans la section Favoris de la boîte
à outils SSIS.

7 Notes

L'Assistant Source remplace le projet de connexions Integration Services et


l'Assistant correspondant.

Ajouter une source à l’aide de l’Assistant Source


Cette section présente les étapes à suivre pour ajouter une nouvelle source à l’aide de
l’Assistant Source. En outre, elle répertorie les options disponibles dans la boîte de
dialogue Ajouter une nouvelle source, qui s’affiche quand vous effectuez un glisser-
déplacer de l’Assistant Source vers le concepteur SSIS.

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services auquel
vous voulez ajouter un composant source.

2. Faites glisser le composant Assistant Source de la boîte à outils SSIS vers l'onglet
Flux de données . Vous devez voir s'afficher la boîte de dialogue Ajouter une
nouvelle source . La section suivante fournit des détails sur les options disponibles
dans la boîte de dialogue.

3. Sélectionnez le type de la destination dans la liste Types .

4. Sélectionnez un gestionnaire de connexions existant dans la liste Gestionnaires de


connexions ou sélectionnez <Nouveau> pour en créer un.

5. Si vous sélectionnez un gestionnaire de connexions existant, cliquez sur OK pour


fermer la boîte de dialogue Ajouter une nouvelle destination . Vous devez
constater que la destination et les gestionnaires de connexions ont été ajoutés au
flux de données.

6. Si vous cliquez sur <Nouveau> pour créer un gestionnaire de connexions, vous


devez voir une boîte de dialogue Gestionnaire de connexions qui vous permet de
spécifier les paramètres de la connexion. Une fois que vous avez fini de créer le
gestionnaire de connexions, vous constatez que la destination et le gestionnaire de
connexions figurent dans le concepteur SSIS.

Boîte de dialogue Ajouter une nouvelle source


Le tableau suivant répertorie les options disponibles dans la boîte de dialogue Ajouter
une nouvelle source.

Option Description

Types Sélectionnez le type de source auquel vous voulez vous connecter.

Gestionnaires de Sélectionnez un gestionnaire de connexions existant ou cliquez sur


connexions <Nouveau> pour en créer un.

Afficher les éléments Spécifiez s'il faut afficher uniquement les sources installées.
installés uniquement

OK Cliquez pour enregistrer vos modifications et ouvrir les boîtes de dialogue


suivantes permettant de configurer des options supplémentaires.
Assistant de destination
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le composant Assistant Destination permet de créer un composant de destination et un


gestionnaire de connexions. Le composant se trouve dans la section Favoris de la boîte
à outils SSIS.

7 Notes

L'Assistant Destination remplace le projet de connexions Integration Services et


l'Assistant correspondant.

Ajouter une destination à l’aide de l’Assistant


Destination
Cette rubrique indique les étapes à suivre pour ajouter une nouvelle destination via
l’Assistant Destination. En outre, elle recense les options disponibles dans la boîte de
dialogue Ajouter une nouvelle destination , qui s’affiche quand vous effectuez un
glisser-déplacer de l’Assistant Destination vers le concepteur SSIS.

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services auquel
vous voulez ajouter un composant destination.

2. Faites glisser le composant Assistant Destination de la boîte à outils SSIS vers


l'onglet Flux de données . Vous devez voir s'afficher la boîte de dialogue Ajouter
une nouvelle destination . La section suivante fournit des détails sur les options
disponibles dans la boîte de dialogue.

3. Sélectionnez le type de la destination dans la liste Types .

4. Sélectionnez un gestionnaire de connexions existant dans la liste Gestionnaires de


connexions ou sélectionnez <Nouveau> pour en créer un.

5. Si vous sélectionnez un gestionnaire de connexions existant, cliquez sur OK pour


fermer la boîte de dialogue Ajouter une nouvelle destination . Vous devez
constater que la destination et les gestionnaires de connexions ont été ajoutés au
flux de données.
6. Si vous cliquez sur <Nouveau> pour créer un gestionnaire de connexions, vous
devez voir une boîte de dialogue Gestionnaire de connexions qui vous permet de
spécifier les paramètres de la connexion. Une fois que vous avez fini de créer le
gestionnaire de connexions, vous constatez que la destination et le gestionnaire de
connexions figurent dans le concepteur SSIS.

Boîte de dialogue Ajouter une nouvelle


destination
Le tableau suivant répertorie les options disponibles dans la boîte de dialogue Ajouter
une nouvelle destination.

Option Description

Types Sélectionnez le type de destination auquel vous voulez vous connecter.

Gestionnaires de Sélectionnez un gestionnaire de connexions existant ou cliquez sur


connexions <Nouveau> pour en créer un.

Afficher les éléments Spécifiez s'il faut afficher uniquement les destinations installées.
installés uniquement

OK Cliquez pour enregistrer vos modifications et ouvrir les boîtes de dialogue


suivantes permettant de configurer des options supplémentaires.
Source ADO NET
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La source ADO .NET exploite des données issues d'un fournisseur .NET et les met à la
disposition du flux de données.

Vous pouvez utiliser la source ADO .NET. pour vous connecter à Microsoft Azure SQL
Database. La connexion à SQL Database via OLE DB n'est pas prise en charge. Pour plus
d’informations sur SQL Database, consultez Recommandations générales et limitations
(Azure SQL Database).

Prise en charge du type de données


La source convertit tout type de données qui ne mappe pas à un type de données
Integration Services spécifique en un type de données Integration Services DT_NTEXT.
Cette conversion se produit même si le type de données est System.Object.

Vous pouvez remplacer le type de données DT_NTEXT par le type de données DT_WSTR,
et inversement. Pour modifier les types de données, définissez la propriété DataType
dans la boîte de dialogue Éditeur avancé de la source ADO .NET. Pour plus
d’informations, consultez Propriétés communes.

Le type de données DT_NTEXT peut également être converti en type de données


DT_BYTES ou DT_STR en utilisant une transformation de conversion de données après la
source ADO .NET. Pour plus d’informations, voir Data Conversion Transformation.

Dans Integration Services, les types de données de date, DT_DBDATE, DT_DBTIME2,


DT_DBTIMESTAMP2 et DT_DBTIMESTAMPOFFSET, mappent à certains types de données
de date de SQL Server. Vous pouvez configurer la source ADO .NET pour convertir les
types de données de date utilisés par SQL Server en types de données de date utilisés
par Integration Services . Pour configurer la source ADO .NET pour convertir ces types
de données de date, affectez à la propriété Type System Version du gestionnaire de
connexions ADO.NET la valeur Dernière. (La propriété Type System Version se trouve
dans la page Tous de la boîte de dialogue Gestionnaire de connexions. Pour ouvrir la
boîte de dialogue Gestionnaire de connexions, cliquez avec le bouton droit sur le
gestionnaire de connexions ADO.NET, puis cliquez sur Modifier.)

7 Notes
Si la propriété Type System Version du gestionnaire de connexions ADO.NET a la
valeur SQL Server 2005, le système convertit les types de données de date SQL
Server en DT_WSTR.

Le système convertit les types de données définis par l’utilisateur (UDT) en objets blob
(Binary Large Object) Integration Services quand le gestionnaire de connexions
ADO.NET spécifie le fournisseur en tant que fournisseur de données .NET pour SQL
Server (SqlClient). Le système applique les règles suivantes quand il convertit le type de
données UDT :

Si les données sont un UDT non volumineux, le système convertit les données en
DT_BYTES.

Si les données sont un type UDT non volumineux et que la propriété Length de la
colonne sur la base de données a la valeur -1 ou une valeur supérieure à 8 000
octets, le système convertit les données en DT_IMAGE.

Si les données sont un UDT volumineux, le système convertit les données en


DT_IMAGE.

7 Notes

Si la source ADO .NET n'est pas configurée pour utiliser la sortie d'erreur, le
système transmet les données à la colonne DT_IMAGE par segments de 8 000
octets. Si la source ADO .NET est configurée pour utiliser la sortie d'erreur, le
système passe la totalité du tableau d'octets à la colonne DT_IMAGE. Pour
plus d’informations sur la configuration des composants pour utiliser la sortie
d’erreur, consultez Gestion des erreurs dans les données.

Pour plus d’informations sur les types de données Integration Services , les conversions
de types de données prises en charge et le mappage de types de données entre
certaines bases de données incluant SQL Server, consultez Types de données
d’Integration Services.

Pour plus d’informations sur le mappage entre les types de données Integration Services
et les types de données managés, consultez Utilisation de types de données dans le flux
de données.

Résolution des problèmes liés à la source ADO


.NET
Vous pouvez consigner les appels que la source ADO .NET effectue vers des fournisseurs
de données externes. Cette fonctionnalité de journalisation permet de résoudre des
problèmes liés au chargement de données qu'effectue la source ADO .NET à partir de
sources de données externes. Pour consigner les appels que la source ADO .NET
effectue vers des fournisseurs de données externes, activez la journalisation de package
et sélectionnez l’événement Diagnostic au niveau du package. Pour plus d’informations,
consultez Outils de dépannage pour l’exécution des packages.

Configuration de la source ADO .NET


Vous configurez la source ADO .NET en fournissant l'instruction SQL qui définit le jeu de
résultats. Par exemple, une source ADO .NET qui se connecte à la base de données
AdventureWorks2012 et utilise l’instruction SQL SELECT * FROM Production.Product
extrait toutes les lignes de la table Production.Product et fournit le dataset à un
composant en aval.

7 Notes

Lorsque vous utilisez une instruction SQL pour appeler une procédure stockée qui
retourne des résultats à partir d'une table temporaire, utilisez l'option WITH RESULT
SETS afin de définir les métadonnées du jeu de résultats.

7 Notes

Si vous utilisez une instruction SQL pour exécuter une procédure stockées et que le
package échoue avec l’erreur suivante, vous pouvez résoudre l’erreur en ajoutant
l’instruction SET FMTONLY OFF avant l’instruction exec.

La colonne <nom_colonne> est introuvable dans la source de données.

La source ADO .NET utilise un gestionnaire de connexions ADO.NET pour se connecter à


une source de données, et le gestionnaire de connexions spécifie le fournisseur .NET.
Pour plus d’informations, consultez Gestionnaire de connexions ADO.NET.

La source ADO .NET a une sortie normale et une sortie d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans la boîte de dialogue
Éditeur avancé ou par programmation, cliquez sur l'une des rubriques suivantes :
Propriétés communes

Propriétés personnalisées ADO NET

Pour plus d’informations sur la façon de définir les propriétés, consultez Définir les
propriétés d’un composant de flux de données.

Éditeur de source ADO NET (page Gestionnaire


de connexions)
La page Gestionnaire de connexions de la boîte de dialogue Éditeur de source ADO
NET permet de sélectionner le gestionnaire de connexions ADO.NET pour la source.
Cette page vous permet également de sélectionner une table ou une vue à partir de la
base de données.

Pour en savoir plus sur la source ADO NET, consultez ADO NET Source.

Pour ouvrir la page Gestionnaire de connexions

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
possède la source ADO NET.

2. Sous l’onglet Flux de données , double-cliquez sur la source ADO NET.

3. Dans l’Éditeur de source ADO NET, cliquez sur Gestionnaire de connexions.

Options statiques
Gestionnaire de connexions ADO.NET
Sélectionnez un gestionnaire de connexions existant dans la liste ou créez une nouvelle
connexion en cliquant sur Nouveau.

Nouveau
Créez un gestionnaire de connexions à partir de la boîte de dialogue Configurer le
gestionnaire de connexions ADO.NET .

Mode d'accès aux données


Spécifiez la méthode de sélection des données dans la source.

Option Description

Table ou vue Permet de récupérer les données d’une table ou d’une vue dans la source de
données ADO.NET .
Option Description

Commande Permet de récupérer les données auprès de la source de données ADO.NET à l’aide
SQL d’une requête SQL.

Préversion
Affichez un aperçu des résultats à l’aide de la boîte de dialogue Vue de données . Le
modeAperçu peut afficher jusqu’à 200 lignes.

7 Notes

Lorsque vous affichez l'aperçu des données, les colonnes ayant un type CLR défini
par l'utilisateur ne contiennent pas de données. Les valeurs <valeur trop grande
pour être affichée> ou System.Byte[] s’affichent à la place. La première s'affiche
lorsque le fournisseur ADO.NET accède à la source de données ; la seconde lorsque
vous utilisez le fournisseur SQL Server .

Options dynamiques du mode d'accès aux données

Mode d'accès aux données = Table ou vue

Nom de la table ou de la vue


Sélectionnez le nom de la table ou de la vue dans la liste de celles qui sont disponibles
dans la source de données.

Mode d'accès aux données = Commande SQL

Texte de la commande SQL


Entrez le texte d’une requête SQL, générez la requête en cliquant sur Générer une
requêteou recherchez le fichier qui contient le texte de la requête en cliquant sur
Parcourir.

Construire une requête


Utilisez la boîte de dialogue Générateur de requêtes pour construire la requête SQL
visuellement.

Parcourir
Dans la boîte de dialogue Ouvrir , localisez le fichier qui contient le texte de la requête
SQL.
Éditeur de source ADO NET (page Colonnes)
Utilisez la page Colonnes de la boîte de dialogue Éditeur de source ADO NET pour
mapper une colonne de sortie à chaque colonne externe (source).

Pour en savoir plus sur la source ADO NET, consultez ADO NET Source.

Pour ouvrir la page Colonnes

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
possède la source ADO NET.

2. Sous l’onglet Flux de données , double-cliquez sur la source ADO NET.

3. Dans l' Éditeur de source ADO NET, cliquez sur Colonnes.

Options
Colonnes externes disponibles
Affiche la liste des colonnes externes disponibles dans la source de données. Vous ne
pouvez pas ajouter ou supprimer des colonnes à l'aide de cette table.

Colonne externe
Affiche les colonnes externes (sources) selon l'ordre dans lequel vous les visualisez
lorsque vous configurez des composants qui consomment des données à partir de cette
source.

Colonne de sortie
Spécifiez un nom unique pour chaque colonne de sortie. Le nom par défaut est celui de
la colonne externe (source) sélectionnée ; vous pouvez néanmoins choisir n'importe quel
nom unique et significatif. Le nom fourni s'affichera dans le Concepteur SSIS .

Éditeur de source ADO NET (page Sortie


d'erreur)
Utilisez la page Sortie d'erreur de la boîte de dialogue Éditeur de source ADO NET
pour sélectionner les options de gestion des erreurs et pour définir les propriétés des
colonnes de sortie d'erreur.

Pour en savoir plus sur la source ADO NET, consultez ADO NET Source.

Pour ouvrir la page Sortie d'erreur


1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
possède la source ADO NET.

2. Sous l’onglet Flux de données , double-cliquez sur la source ADO NET.

3. Dans l' Éditeur de source ADO NET, cliquez sur Sortie d'erreur.

Options
Entrée/sortie
Affichez le nom de la source de données.

Colonne
Affichez les colonnes externes (sources) que vous avez sélectionnées dans la page
Gestionnaire de connexions de la boîte de dialogue Éditeur de source ADO NET .

Error
Indiquez ce qui doit se produire lorsqu'une erreur se produit : ignorer l'échec, rediriger
la ligne ou faire échouer le composant.

Rubriques connexes :Gestion des erreurs dans les données

Troncation
Indiquez ce qui doit se produire lorsqu'une troncation se produit : ignorer l'échec,
rediriger la ligne ou faire échouer le composant.

Description
Affiche la description de l'erreur.

Définir cette valeur sur les cellules sélectionnées


Indiquez ce qui doit se produire pour l'ensemble des cellules sélectionnées lorsqu'une
erreur ou une troncation se produit : ignorer l'échec, rediriger la ligne ou faire échouer
le composant.

Appliquer
Appliquez l'option de gestion des erreurs aux cellules sélectionnées.

Voir aussi
Destination DataReader
Destination ADO NET
Flux de données
Destination ADO NET
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination ADO NET charge des données dans différentes bases de données
compatibles ADO.NETqui utilisent une table ou une vue de base de données. Vous
pouvez charger ces données dans une table ou une vue existante ou créer une table et y
charger les données.

Vous pouvez utiliser la destination ADO .NET. pour vous connecter à Microsoft Azure
SQL Database. La connexion à SQL Database via OLE DB n'est pas prise en charge. Pour
plus d’informations sur SQL Database, consultez Recommandations générales et
limitations (Azure SQL Database).

Résolution des problèmes liés à la destination


ADO NET
Vous pouvez consigner les appels que la destination ADO NET effectue auprès de
fournisseurs de données externes. Cette fonctionnalité de journalisation permet de
résoudre des problèmes liés à l'enregistrement de données vers des sources de données
externes que réalise la destination ADO NET. Pour consigner les appels aux fournisseurs
de données externes effectués par la destination ADO.NET, activez la journalisation du
package et sélectionnez l’événement Diagnostic au niveau du package. Pour plus
d’informations, consultez Outils de dépannage pour l’exécution des packages.

Configuration de la destination ADO NET


Cette destination utilise un gestionnaire de connexions ADO.NET pour se connecter à
une source de données. Il indique quel fournisseur ADO.NET utiliser. Pour plus
d’informations, consultez Gestionnaire de connexions ADO.NET.

Une destination ADO NET inclut des mappages entre les colonnes d'entrée et les
colonnes de la source de données de destination. Vous n'avez pas besoin de mapper les
colonnes d'entrée à toutes les colonnes de destination. Toutefois, les propriétés de
certaines colonnes de destination peuvent requérir le mappage de colonnes d'entrée.
Sinon, des erreurs peuvent se produire. Par exemple, si une colonne de destination
n'autorise pas les valeurs Null, vous devez mapper une colonne d'entrée à cette
colonne. Par ailleurs, les types de données des colonnes mappées doivent être
compatibles. Par exemple, vous ne pouvez pas mapper une colonne d’entrée avec un
type de données chaîne à une colonne de destination avec un type de données
numérique si le fournisseur ADO.NET ne prend pas en charge ce mappage.

7 Notes

SQL Server ne prend pas en charge l’insertion de texte dans des colonnes dont le
type de données est défini sur image. Pour plus d’informations sur les types de
données SQL Server, consultez Types de données (Transact-SQL).

7 Notes

La destination ADO NET ne prend pas en charge le mappage d'une colonne


d'entrée dont le type a la valeur DT_DBTIME avec une colonne de base de données
dont le type a la valeur datetime. Pour plus d’informations sur les types de données
Integration Services , consultez Types de données d’Integration Services.

La destination ADO NET comporte une entrée standard et une sortie d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées ADO NET

Pour plus d’informations sur la façon de définir les propriétés, consultez Définir les
propriétés d’un composant de flux de données.

Éditeur de destination ADO NET (page


Gestionnaire de connexions)
Utilisez la page Gestionnaire de connexions de la boîte de dialogue Éditeur de
destination ADO NET pour sélectionner la connexion ADO.NET de la destination. Cette
page vous permet également de sélectionner une table ou une vue à partir de la base
de données.
Pour ouvrir la page Gestionnaire de connexions

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
possède la destination ADO NET.

2. Sous l’onglet Flux de données , double-cliquez sur la destination ADO NET.

3. Dans l’Éditeur de destination ADO NET, cliquez sur Gestionnaire de connexions.

Options statiques
Connection manager
Sélectionnez un gestionnaire de connexions existant dans la liste ou créez une nouvelle
connexion en cliquant sur Nouveau.

Nouveau
Créez un gestionnaire de connexions à partir de la boîte de dialogue Configurer le
gestionnaire de connexions ADO.NET .

Utiliser une table ou une vue


Sélectionnez une table ou une vue existante dans la liste ou créez une table en cliquant
sur Nouvelle.

Nouveau
Créez une table ou vue à l’aide de la boîte de dialogue Créer une table .

7 Notes

Quand vous cliquez sur Nouvelle, Integration Services génère une instruction
CREATE TABLE par défaut, basée sur la source de données connectée. Cette
instruction CREATE TABLE par défaut n'inclut pas l'attribut FILESTREAM, même si la
table source inclut une colonne dans laquelle l'attribut FILESTREAM est déclaré.
Pour exécuter un composant Integration Services avec l'attribut FILESTREAM,
implémentez d'abord le stockage FILESTREAM sur la base de données de
destination. Ajoutez ensuite l’attribut FILESTREAM à l’instruction CREATE TABLE
dans la boîte de dialogue Créer une table . Pour plus d’informations, consultez
Données BLOB (Binary Large Object) (SQL Server).

Préversion
Affichez un aperçu des résultats à l’aide de la boîte de dialogue Visualiser les résultats
de la requête . L'aperçu peut afficher jusqu'à 200 lignes.
Utiliser l'insertion en bloc le cas échéant
Spécifiez s’il convient d’utiliser l’interface SqlBulkCopy pour améliorer les performances
des opérations d’insertion en bloc.

Seuls les fournisseurs ADO.NET qui retournent un objet SqlConnection prennent en


charge l’utilisation de l’interface SqlBulkCopy . Le fournisseur de données .NET pour SQL
Server (SqlClient) retourne un objet SqlConnection , et un fournisseur personnalisé peut
retourner un objet SqlConnection .

Vous pouvez utiliser le fournisseur de données .NET pour SQL Server (SqlClient) pour
vous connecter à Microsoft Azure SQL Database.

Si vous sélectionnez Utiliser l’insertion en bloc le cas échéantet affectez à l’option


Erreur la valeur Rediriger la ligne, le lot de données que la destination redirige vers la
sortie d’erreur peut inclure des lignes correctes. Pour plus d’informations sur la gestion
des erreurs dans les opérations en bloc, consultez Gestion des erreurs dans les données.
Pour plus d’informations sur l’option Erreur , consultez Éditeur de destination ADO NET
(page Sortie d’erreur).

7 Notes

Si une table source SQL Server ou Sybase inclut une colonne d’identité, vous devez
utiliser les tâches d’exécution de requêtes SQL pour activer IDENTITY_INSERT avant
la destination ADO NET et le désactiver après. (La propriété de colonne d’identité
spécifie une valeur incrémentielle pour la colonne. L’instruction SET
IDENTITY_INSERT permet aux valeurs explicites de la table source d’être insérées
dans la colonne d’identité de la table de destination.)

Pour exécuter avec succès les instructions SET IDENTITY_INSERT et le chargement


des données, vous devez effectuer les opérations suivantes.
1. Utilisez le même gestionnaire de connexions ADO.NET pour les tâches
d’exécution de requêtes SQL et la destination ADO NET.
2. Dans le gestionnaire de connexions, définissez la propriété
RetainSameConnection et la propriété MultipleActiveResultSets sur True.
3. Sur la destination ADO.NET, définissez la propriété UseBulkInsertWhenPossible
sur False.

Pour plus d’informations, consultez SET IDENTITY_INSERT (Transact-SQL) et


IDENTITY (Propriété) (Transact-SQL).

Ressources externes
Article technique sur sqlcat.com, traitant du chargement rapide de données sur Azure
SQL Database

Éditeur de destination ADO NET (page


Mappages)
Utilisez la page Mappages de la boîte de dialogue Éditeur de destination ADO NET
pour mapper des colonnes d’entrée à des colonnes de destination.

Pour ouvrir la page Mappages

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
possède la destination ADO NET.

2. Sous l’onglet Flux de données , double-cliquez sur la destination ADO NET.

3. Dans l’Éditeur de destination ADO NET, cliquez sur Mappages.

Options
Colonnes d'entrée disponibles
Affichez la liste des colonnes d'entrée disponibles. Au moyen du glisser-déplacer,
mappez les colonnes d'entrée disponibles dans la table sur des colonnes de destination.

Colonnes de destination disponibles


Affichez la liste des colonnes de destination disponibles. Utilisez une opération de
glisser-déplacer pour mapper les colonnes de destination disponibles dans la table aux
colonnes d'entrée.

Colonne d'entrée
Affichez les colonnes d’entrée que vous avez sélectionnées. Vous pouvez supprimer des
mappages en sélectionnant <ignorer> de manière à exclure des colonnes de la sortie.

Colonne de destination
Indique chaque colonne de destination disponible, qu'elle soit mappée ou non.

Éditeur de destination ADO NET (page Sortie


d'erreur)
Utilisez la page Sortie d'erreur de la boîte de dialogue Éditeur de destination ADO NET
pour spécifier les options de gestion des erreurs.
Pour ouvrir la page Sortie d'erreur

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
possède la destination ADO NET.

2. Sous l’onglet Flux de données , double-cliquez sur la destination ADO NET.

3. Dans l’Éditeur de destination ADO NET, cliquez sur Sortie d’erreur.

Options
Entrée ou Sortie
Affichez le nom de l'entrée.

Colonne
Non utilisé.

Error
Indiquez ce qui doit se produire lorsqu'une erreur se produit : ignorer l'échec, rediriger
la ligne ou faire échouer le composant.

Rubriques connexes :Gestion des erreurs dans les données

Troncation
Non utilisé.

Description
Affichez la description de l'opération.

Définir cette valeur sur les cellules sélectionnées


Indiquez ce qui doit se produire pour l'ensemble des cellules sélectionnées lorsqu'une
erreur ou une troncation se produit : ignorer l'échec, rediriger la ligne ou faire échouer
le composant.

Appliquer
Appliquez l'option de gestion des erreurs aux cellules sélectionnées.
Propriétés personnalisées ADO NET
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Propriétés personnalisées des sources

La source ADO NET comporte des propriétés personnalisées et les propriétés


communes à l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la source ADO NET. Toutes les
propriétés sont en lecture/écriture.

Nom de la propriété Type de Description


données

CommandTimeout String Valeur qui spécifie le nombre de secondes accordées


comme délai d'exécution de la commande SQL. La
valeur égale à 0 indique que la commande n'arrive
jamais à expiration.

SqlCommand String Instruction SQL que la source ADO NET utilise pour
extraire des données.

Lorsque le package se charge, vous pouvez mettre à


jour cette propriété de manière dynamique avec
l'instruction SQL que la source ADO NET utilisera.
Pour plus d’informations, consultez Expressions
Integration Services (SSIS) et Utiliser des expressions
de propriété dans des packages.
Nom de la propriété Type de Description
données

AllowImplicitStringConversion Booléen Valeur qui indique si les cas de figure suivants se


présentent :

-Il n’y a aucune génération d’erreur de validation s’il


existe une discordance entre les types de
métadonnées externes et les types de colonnes de
sortie qui sont des chaînes (DT_WSTR ou DT_NTEXT).

-Il y a une conversion implicite des types de


métadonnées externes vers le type de données String
que la colonne de sortie utilise.

La valeur par défaut est TRUE.

Pour plus d’informations, consultez Source ADO NET.

La sortie et les colonnes de sortie de la source ADO NET ne disposent pas de propriétés
personnalisées.

Pour plus d’informations, consultez Source ADO NET.

Propriétés personnalisées des destinations

La destination ADO.NET dispose à la fois de propriétés personnalisées et des propriétés


communes à tous les composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la destination ADO.NET .


Toutes les propriétés sont en lecture/écriture. Ces propriétés ne sont pas disponibles
dans l’Éditeur de destination ADO NETmais peuvent être définies à l’aide de l’Éditeur
avancé.

Propriété Type de Description


données

BatchSize Integer Nombre de lignes d'un lot envoyé au serveur. Une valeur égale à
0 indique que la taille du lot correspond à la taille du tampon
interne. La valeur par défaut de cette propriété est 0.

CommandTimeout Integer Nombre maximal de secondes pendant lesquelles la commande


SQL peut être exécutée avant d'arriver à expiration. Une valeur
égale à 0 indique une durée illimitée. La valeur par défaut de
cette propriété est 0.
Propriété Type de Description
données

TableOrViewName String Nom de la table ou vue de destination.

Pour plus d’informations, consultez Destination ADO NET.

Voir aussi
Propriétés communes
Azure Blob Source
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le composant Azure Blob Source permet à un package SSIS de lire les données
provenant d’un blob Azure. Les formats de fichier pris en charge sont CSV et AVRO.

Pour afficher l’éditeur d’Azure Bloc Source, faites glisser Azure Blob Source sur le
concepteur de flux de données et double-cliquez dessus pour ouvrir l’éditeur.

Source des objets blob Azure est un composant de SQL Server Integration Services
(SSIS) Feature Pack pour Azure.

1. Dans le champ Gestionnaire de connexions du Stockage Azure, spécifiez un


gestionnaire de connexions du Stockage Azure existant ou créez-en un qui fera
référence à un compte de Stockage Azure.

2. Dans le champ Nom du conteneur d’objets blob , spécifiez le nom du conteneur


d’objets blob qui contient les fichiers sources.

3. Dans le champ Nom de l’objet blob , indiquez le chemin d’accès à l’objet blob.

4. Dans le champ Format de fichier blob, sélectionnez le format blob à utiliser : Texte
ou Avro.

5. Si le format de fichier est Texte, vous devrez renseigner la valeur Délimiteur de


colonne. (Les délimiteurs multicaractères ne sont pas pris en charge.)

Sélectionnez également l’option Noms de colonne dans la première ligne de


données si la première ligne du fichier contient des noms de colonne.

6. Si le fichier est compressé, sélectionnez Décompresser le fichier.

7. Si le fichier est compressé, sélectionnez le Type de compression : GZIP, DEFLATE


ou BZIP2. Notez que le format ZIP n’est pas pris en charge.

8. Après avoir spécifié les informations de connexion, basculez vers la page Colonnes
pour mapper les colonnes sources sur les colonnes de destination du flux de
données SSIS.
Destination d’objet blob Azure
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le composant Destination d’objet blob Azure permet à un package SSIS d’écrire des
données dans un objet blob Azure. Les formats de fichier pris en charge sont CSV et
AVRO.

Faites glisser le composant Destination d’objet blob Azure vers le concepteur de flux de
données et double-cliquez dessus pour visualiser l’éditeur.

Destination d’objet Blob Azure est un composant de SQL Server Integration Services
(SSIS) Feature Pack pour Azure.

1. Dans le champ Gestionnaire de connexions du Stockage Azure, spécifiez un


gestionnaire de connexions du Stockage Azure existant ou créez-en un qui fera
référence à un compte de Stockage Azure.

2. Dans le champ Nom du conteneur d’objets blob , spécifiez le nom du conteneur


d’objets blob qui contient les fichiers sources.

3. Dans le champ Nom de l’objet blob , indiquez le chemin d’accès à l’objet blob.

4. Dans le champ Format de fichier d’objet blob , spécifiez le format d’objet blob à
utiliser.

5. Si le format de fichier est CSV, vous devez renseigner le champ Caractère


séparateur de colonnes . Sélectionnez également l’option Noms de colonne dans
la première ligne de données si la première ligne du fichier contient des noms de
colonne.

6. Après avoir spécifié les informations de connexion, basculez vers la page Colonnes
pour mapper les colonnes sources sur les colonnes de destination du flux de
données SSIS.
Source Azure Data Lake Store
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le composant Source Azure Data Lake Store permet à un package SSIS de lire des
données dans Azure Data Lake Store. Les formats de fichier pris en charge sont le
format texte et Avro.

Source Azure Data Lake Store est un composant de SQL Server Integration Services
(SSIS) Feature Pack pour Azure.

7 Notes

Pour que le gestionnaire de connexions Azure Data Lake Store et les composants
qui l’utilisent, notamment la source Azure Data Lake Store et la destination Azure
Data Lake Store, puissent se connecter aux services, veillez à télécharger la dernière
version du Feature Pack Azure ici .

Configurer la source Azure Data Lake Store


1. Pour afficher l’éditeur de la source Azure Data Lake Store, faites glisser Source
Azure Data Lake Store sur le concepteur de flux de données et double-cliquez
dessus pour ouvrir l’éditeur.

2. Dans le champ Gestionnaire de connexions Azure Data Lake Store , spécifiez un


gestionnaire de connexions Azure Data Lake Store existant ou créez-en un qui fait
référence à un service Azure Data Lake Store.

a. Dans le champ Chemin d’accès au fichier , spécifiez le chemin du fichier source


dans Azure Data Lake Store.

b. Dans le champ Format de fichier , spécifiez le format du fichier source.

Si le format de fichier est le format texte, vous devez renseigner le champ


Délimiteur de colonne . Sélectionnez également l’option Noms de colonne
dans la première ligne de données si la première ligne du fichier contient des
noms de colonne.

3. Après avoir spécifié les informations de connexion, basculez vers la page Colonnes
pour mapper les colonnes sources sur les colonnes de destination du flux de
données SSIS.

Qualificateur de texte
La source Azure Data Lake Store ne prend pas en charge les qualificateurs de texte. Si
vous devez spécifier un qualificateur de texte pour traiter vos fichiers correctement,
téléchargez les fichiers sur votre ordinateur local et traitez les fichiers avec la Source du
fichier plat. La Source du fichier plat vous permet de spécifier un qualificateur de texte.
Pour plus d’informations, consultez Source du fichier plat.
Destination Azure Data Lake Store
Article • 15/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le composant Destination Azure Data Lake Store permet à un package SSIS d’écrire des
données dans Azure Data Lake Store. Les formats de fichier pris en charge sont : Text,
Avro et ORC.

Destination Azure Data Lake Store est un composant de SQL Server Integration
Services (SSIS) Feature Pack pour Azure.

7 Notes

Pour que le gestionnaire de connexions Azure Data Lake Store et les composants
qui l’utilisent, notamment la source Azure Data Lake Store et la destination Azure
Data Lake Store, puissent se connecter aux services, veillez à télécharger la dernière
version du Feature Pack Azure ici .

Configurer la destination Azure Data Lake Store

1. Faites glisser le composant Destination Azure Data Lake Store vers le concepteur
de flux de données et double-cliquez dessus pour visualiser l’éditeur.

2. Dans le champ Gestionnaire de connexions Azure Data Lake Store , spécifiez un


gestionnaire de connexions Azure Data Lake Store existant ou créez-en un qui fait
référence à un service Azure Data Lake Store.

a. Dans le champ Chemin du fichier , spécifiez le nom du fichier où vous souhaitez


écrire des données. Si ce fichier existe déjà, son contenu est remplacé.

b. Dans le champ Format de fichier , spécifiez le format de fichier à utiliser.

Si le format de fichier est le format texte, vous devez renseigner le champ


Délimiteur de colonne . Sélectionnez également l’option Noms de colonne dans
la première ligne de données si la première ligne du fichier contient des noms de
colonne.

Si le format de fichier est ORC, Java est nécessaire. Cliquez ici pour obtenir des
détails.

3. Après avoir spécifié les informations de connexion, basculez vers la page Colonnes
pour mapper les colonnes sources sur les colonnes de destination du flux de
données SSIS.
Source de fichier flexible
Article • 15/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le composant Flexible File Source permet à un package SSIS de lire des données à
partir de divers services de stockage pris en charge. Les services de stockage
actuellement pris en charge sont :

Stockage Blob Azure


Azure Data Lake Storage Gen2

Pour afficher l’éditeur Flexible File Source, faites glisser Flexible File Source sur le
concepteur de flux de données et double-cliquez dessus pour ouvrir l’éditeur.

Flexible File Source est un composant du Feature Pack SQL Server Integration Services
(SSIS) pour Azure.

Les propriétés suivantes sont disponibles sur l’éditeur Flexible File Source.

File Connection Manager Type (Type du gestionnaire de connexions) : spécifie le


type de gestionnaire de connexions source. Choisissez ensuite un gestionnaire
existant du type spécifié ou créez-en un.
Folder Path (Chemin du dossier) : spécifie le chemin du dossier source.
Nom de fichier : spécifie le nom du fichier source.
File Format (Format du fichier) : spécifie le format du fichier source. Les formats
pris en charge sont Text, Avro, ORC et Parquet. Vous devez utiliser Java pour
ORC/Parquet. Cliquez ici pour obtenir des détails.
Column delimiter character (Caractère séparateur de colonnes) : spécifie le
caractère utilisé comme séparateur de colonnes (les délimiteurs à plusieurs
caractères ne sont pas pris en charge).
First row as the column name (Première ligne comme nom de colonne) : spécifie
s’il faut considérer la première ligne comme un nom de colonne.
Decompress the file (Décompresser le fichier) : spécifie s’il faut décompresser le
fichier source.
Compression Type (Type de compression) : spécifie le format de compression du
fichier source. Les formats pris en charge sont GZIP, DEFLATE et BZIP2.

Les propriétés suivantes sont disponibles sur l’éditeur avancé.

rowDelimiter : caractère utilisé pour séparer les lignes dans un fichier. Un seul
caractère est autorisé. La valeur par défaut est \r\n.
escapeChar : caractère spécial utilisé pour échapper un délimiteur de colonne dans
le contenu du fichier d’entrée. Vous ne pouvez pas spécifier à la fois escapeChar et
quoteChar pour une table. Un seul caractère est autorisé. Pas de valeur par défaut.
quoteChar : caractère utilisé pour mettre entre guillemets une valeur de chaîne.
Les délimiteurs de colonnes et de lignes à l’intérieur des guillemets seraient
considérés comme faisant partie de la valeur de chaîne. Cette propriété s’applique
aux jeux de données d’entrée et de sortie. Vous ne pouvez pas spécifier à la fois
escapeChar et quoteChar pour une table. Un seul caractère est autorisé. Pas de
valeur par défaut.
nullValue : un ou plusieurs caractères utilisés pour représenter une valeur Null. La
valeur par défaut est \N.
encodingName : spécifiez le nom du codage. Voir la propriété
Encoding.EncodingName.
skipLineCount : indique le nombre de lignes non vides à ignorer pendant la lecture
des données des fichiers d’entrée. Si skipLineCount et firstRowAsHeader sont
spécifiés, les lignes sont d’abord ignorées, puis les informations d’en-têtes sont
lues à partir du fichier d’entrée.
treatEmptyAsNull : spécifie s’il faut traiter une chaîne Null ou vide comme une
valeur Null lors de la lecture des données à partir d’un fichier d’entrée. La valeur
par défaut est True.

Après avoir spécifié les informations de connexion, basculez vers la page Colonnes pour
mapper les colonnes sources sur les colonnes de destination du flux de données SSIS.

Remarques sur la configuration des autorisations du principal de service

Pour que la connexion de test fonctionne (soit le stockage d’objets blob, soit Data Lake
Storage Gen2), le principal de service doit disposer au moins du rôle Lecteur des
données Blob du stockage pour le compte de stockage. Cette opération s’effectue à
l’aide de RBAC.

Pour le stockage d’objets blob, l’autorisation de lecture est accordée en affectant au


moins le rôle Lecteur des données Blob du stockage.

Pour Data Lake Storage Gen2, l’autorisation est déterminée à la fois par RBAC et par des
listes des contrôles d’accès (ACL). Faites attention à ce que les listes de contrôle d’accès
soient configurées à l’aide de l’ID d’objet (OID) du principal de service pour l’inscription
d’application, comme indiqué ici. Cet ID diffère de l’ID d’application (client) utilisé avec
la configuration RBAC. Quand un principal de sécurité reçoit des autorisations sur les
données RBAC par le biais d’un rôle intégré ou personnalisé, ces autorisations sont
évaluées en premier lors de l’autorisation d’une demande. Si l’opération demandée est
autorisée par les attributions RBAC du principal de sécurité, l’autorisation est
immédiatement résolue et aucune vérification de liste de contrôle d’accès
supplémentaire n’est effectuée. Sinon, si le principal de sécurité n’a pas d’attribution
RBAC ou si l’opération de la demande ne correspond pas à l’autorisation affectée, les
vérifications de liste de contrôle d’accès sont effectuées pour déterminer si le principal
de sécurité est autorisé à effectuer l’opération demandée. Pour l’autorisation de lecture,
accordez au moins l’autorisation d’Exécution à partir du système de fichiers source, ainsi
que l’autorisation de Lecture pour les fichiers à lire. Vous pouvez également accorder au
moins le rôle Lecteur des données Blob du stockage avec RBAC. Pour plus
d’informations, consultez cet article.
Destination de fichier flexible
Article • 15/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le composant Flexible File Destination permet à un package SSIS d’écrire des données
vers divers services de stockage pris en charge.

Les services de stockage actuellement pris en charge sont :

Stockage Blob Azure


Azure Data Lake Storage Gen2

Faites glisser le composant Flexible File Destination vers le concepteur de flux de


données et double-cliquez dessus pour visualiser l’éditeur.

Flexible File Destination est un composant du Feature Pack SQL Server Integration
Services (SSIS) pour Azure.

Les propriétés suivantes sont disponibles sur l’éditeur Flexible File Destination.

File Connection Manager Type (Type du gestionnaire de connexions) : spécifie le


type de gestionnaire de connexions source. Choisissez ensuite un gestionnaire
existant du type spécifié ou créez-en un.
Folder Path (Chemin du dossier) : spécifie le chemin du dossier de destination.
Nom de fichier : spécifie le nom du fichier de destination.
File Format (Format du fichier) : spécifie le format du fichier de destination. Les
formats pris en charge sont Text, Avro, ORC et Parquet. Vous devez utiliser Java
pour ORC/Parquet. Cliquez ici pour obtenir des détails.
Column delimiter character (Caractère séparateur de colonnes) : spécifie le
caractère à utiliser comme séparateur de colonnes (les délimiteurs à plusieurs
caractères ne sont pas pris en charge).
First row as the column name (Première ligne comme nom de colonne) : spécifie
s’il faut écrire des noms de colonnes sur la première ligne.
Compress the file (Compresser le fichier) : spécifie s’il faut compresser le fichier.
Compression Type (Type de compression) : spécifie le format de compression à
utiliser. Les formats pris en charge sont GZIP, DEFLATE et BZIP2.
Compression Level (Niveau de compression) : spécifie le niveau de compression à
utiliser.

Les propriétés suivantes sont disponibles sur l’éditeur avancé.


rowDelimiter : caractère utilisé pour séparer les lignes dans un fichier. Un seul
caractère est autorisé. La valeur par défaut est \r\n.
escapeChar : caractère spécial utilisé pour échapper un délimiteur de colonne dans
le contenu du fichier d’entrée. Vous ne pouvez pas spécifier à la fois escapeChar et
quoteChar pour une table. Un seul caractère est autorisé. Pas de valeur par défaut.
quoteChar : caractère utilisé pour mettre entre guillemets une valeur de chaîne.
Les délimiteurs de colonnes et de lignes à l’intérieur des guillemets seraient
considérés comme faisant partie de la valeur de chaîne. Cette propriété s’applique
aux jeux de données d’entrée et de sortie. Vous ne pouvez pas spécifier à la fois
escapeChar et quoteChar pour une table. Un seul caractère est autorisé. Pas de
valeur par défaut.
nullValue : un ou plusieurs caractères utilisés pour représenter une valeur Null. La
valeur par défaut est \N.
encodingName : spécifiez le nom du codage. Voir la propriété
Encoding.EncodingName.
skipLineCount : indique le nombre de lignes non vides à ignorer pendant la lecture
des données des fichiers d’entrée. Si skipLineCount et firstRowAsHeader sont
spécifiés, les lignes sont d’abord ignorées, puis les informations d’en-têtes sont
lues à partir du fichier d’entrée.
treatEmptyAsNull : spécifie s’il faut traiter une chaîne Null ou vide comme une
valeur Null lors de la lecture des données à partir d’un fichier d’entrée. La valeur
par défaut est True.

Après avoir spécifié les informations de connexion, basculez vers la page Colonnes pour
mapper les colonnes sources sur les colonnes de destination du flux de données SSIS.

Remarques sur la configuration des autorisations du principal de service

Pour que la connexion de test fonctionne (soit le stockage d’objets blob, soit Data Lake
Storage Gen2), le principal de service doit disposer au moins du rôle Lecteur des
données Blob du stockage pour le compte de stockage. Cette opération s’effectue à
l’aide de RBAC.

Pour le stockage d’objets blob, l’autorisation d’écriture est accordée en affectant au


moins le rôle Contributeur aux données Blob du stockage .

Pour Data Lake Storage Gen2, l’autorisation est déterminée à la fois par RBAC et par des
listes des contrôles d’accès (ACL). Faites attention à ce que les listes de contrôle d’accès
soient configurées à l’aide de l’ID d’objet (OID) du principal de service pour l’inscription
d’application, comme indiqué ici. Cet ID diffère de l’ID d’application (client) utilisé avec
la configuration RBAC. Quand un principal de sécurité reçoit des autorisations sur les
données RBAC par le biais d’un rôle intégré ou personnalisé, ces autorisations sont
évaluées en premier lors de l’autorisation d’une demande. Si l’opération demandée est
autorisée par les attributions RBAC du principal de sécurité, l’autorisation est
immédiatement résolue et aucune vérification de liste de contrôle d’accès
supplémentaire n’est effectuée. Sinon, si le principal de sécurité n’a pas d’attribution
RBAC ou si l’opération de la demande ne correspond pas à l’autorisation affectée, les
vérifications de liste de contrôle d’accès sont effectuées pour déterminer si le principal
de sécurité est autorisé à effectuer l’opération demandée. Pour l’autorisation d’écriture,
accordez au moins l’autorisation d’Exécution à partir du système de fichiers récepteur,
ainsi que l’autorisation d’Écriture pour le dossier récepteur. Vous pouvez également
accorder au moins le rôle Contributeur aux données Blob du stockage avec RBAC. Pour
plus d’informations, consultez cet article.
Composants de flux CDC
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les composants CDC par Attunity destinés aux développeurs SSIS d'aide Microsoft SQL
Server 2019 Integration Services (SSIS) fonctionnent avec la capture de données
modifiées (CDC) et réduisent la complexité des packages CDC.

Les composants CDC SSIS sont conçus pour fonctionner avec la fonctionnalité CDC de
SQL Server où les tables sources sont soit la même base de données SQL Server , soit
une base de données Oracle (quand le service CDC d’Oracle pour SQL Serverest utilisé).
Les tables partitionnées sont prises en charge.

Ils comprennent le contrôle et le flux de données qui rationalisent l'expérience de la


lecture et du traitement des données modifiées dans les packages SSIS. Ils peuvent être
ajoutés à la bibliothèque des composants dans Microsoft SQL Server, mais sont installés
séparément.

Voici les composants de capture de données modifiées (CDC) par Attunity :

Composant de flux de contrôle CDC:

Tâche de contrôle de capture de données modifiées

Composants de flux de données CDC:

Source CDC

Séparateur de capture de données modifiées

Installation
Cette section décrit les procédures d'installation des composants CDC pour Microsoft
SQL Server 2019 Integration Services (SSIS).

Les composants CDC pour SSIS font partie du package avec le concepteur et le service
de capture des changements de données Microsoft® pour Oracle par Attunity pour
Microsoft SQL Server®. Ce téléchargement fait partie du Feature pack SQL Server 2016.
Téléchargez les composants du Feature Pack à partir de la page web SQL Server 2016
Feature Pack .

Prise en charge de la version


Versions de SQL Server prises en charge
Les composants CDC pour SSIS sont pris en charge sur toutes les versions prises en
charge de Microsoft SQL Server. Actuellement, les versions SQL Server 2012 à
SQL Server 2017 sont prises en charge.

Versions du système d’exploitation prises en charge

Les composants CDC pour SSIS sont pris en charge sur les systèmes d’exploitation et
plateformes suivants :

Windows 8 et 8.1
Windows 10
Windows Server 2012 et 2012 R2
Windows Server 2016

Exécution du programme d'installation


Avant d’exécuter l’Assistant Installation, assurez-vous que SQL Server SQL Server Data
Tools est fermé. Suivez les instructions dans l'assistant d'installation.

Redémarrer le service SSIS


Après avoir installé les composants CDC, vous devez redémarrer le service SSIS pour
être sûr que les composants fonctionnent correctement lors du développement des
packages dans SQL Server Data Tools.

Un message s'affiche après avoir installé les composants. Cliquez sur Oui lorsque vous y
êtes invité.

Désinstallation des composants CDC Microsoft


Vous désinstallez la source CDC, le séparateur CDC ou la tâche de contrôle CDC à l'aide
de l'assistant de désinstallation. Si vous utilisez SQL Server SQL Server Data Tools pour le
développement de packages, vérifiez que SQL Server Data Tools est fermé avant
d’exécuter l’Assistant Désinstallation.

Avantages
Les composants CDC pour les composants de SQL Server Integration Services
permettent aux développeurs SSIS de construire facilement des packages SSIS traitant
les données modifiées. Ils aident les développeurs SSIS à traiter la capture des données
modifiées (CDC) et à réduire la complexité des packages CDC.

Les composants CDC SSIS servent à fournir les données modifiées de façon à faciliter
leur traitement ultérieur pour la réplication, la charge d'un entrepôt de données, la mise
à jour des dimensions à variation lente pour OLAP, les modifications d'audit ou pour
d'autres utilisations possibles. Le type de traitement ultérieur utilisé est déterminé par le
développeur SSIS.

Les composants CDC SSIS sont conçus pour fonctionner avec la fonction CDC de SQL
Server avec des tables de modifications se trouvant dans la même base de données SQL
Server .

Mise en route avec les composants de capture


de données modifiées (CDC)
Un package CDC classique traite des modifications sur un groupe de tables. La partie
relative au flux de contrôle de base de ce type de package CDC est illustrée dans la
figure ci-dessous. Ce package est appelé un package de traitement à flux progressif.

Ce flux de contrôle SQL Server Integration Services contient deux tâches de contrôle
CDC et la tâche de flux de données. La première tâche appelée Obtenir la plage de
traitement CDC définit la plage des numéros séquentiels dans le journal (LSN) pour les
modifications traitées dans la tâche de flux de données appelée Modifications des
processus. Cette plage est établie en fonction de ce qui a été traité pendant la dernière
exécution de package et de ce qui a été enregistré dans un magasin persistant.
Pour plus d'informations sur l'utilisation de la tâche de contrôle CDC, consultez CDC
Control Task et CDC Control Task Editor.

L'illustration suivante montre le flux de données Modifications des processus qui


indique sur le plan conceptuel la façon dont les modifications sont traitées.

Les étapes illustrées sont les suivantes :

Modifications pour la table X est une source CDC qui lit les modifications
apportées à la table X dans la plage de traitement CDC déterminée dans le flux de
contrôle parent.

Séparateur CDC X est utilisé pour fractionner les modifications en insertions,


suppressions et mises à jour. Dans ce scénario, on suppose que la source CDC est
configurée pour produire des modifications nettes afin que des types de
modifications différents puissent être traités en parallèle.

Les modifications spécifiques sont traitées en aval par la suite. Dans cette
illustration, les modifications sont insérées dans des tables utilisant plusieurs
destinations ODBC mais dans des cas réels, le traitement peut être différent.

Pour plus d'informations sur la source CDC, consultez :

Source CDC

Éditeur de source CDC (page Gestionnaire de connexions)

Éditeur de source CDC (page Colonnes)

Éditeur de source CDC (page Sortie d'erreur)

Pour plus d'informations sur le séparateur CDC, consultez :


Séparateur de capture de données modifiées

L'un des problèmes de base qui requièrent une attention lors de la génération de
packages CDC est la façon dont le traitement des modifications interagit avec la charge
initiale (ou le traitement initial) des données.

Les composants CDC prennent en charge trois scénarios de charge et de traitement des
modifications initiaux :

Charge initiale effectuée avec un instantané de base de données. Dans ce cas, le


traitement des modifications démarre avec le numéro séquentiel dans le journal
(LSN) de l'événement instantané.

Charge initiale d'une base de données inactive. Dans ce cas, aucune modification
n'est apportée pendant la charge initiale de sorte que le numéro LSN est
échantillonné occasionnellement lors de la charge initiale et le traitement des
modifications démarre avec ce numéro LSN.

Charge initiale d'une base de données active. Dans ce cas, puisque la charge
initiale est en cours, les modifications sont apportées à la base de données et il n'y
a aucun numéro LSN à partir duquel le traitement des modifications peut
précisément commencer. Dans ce cas, le développeur du package de charge
initiale peut échantillonner le numéro LSN actuel de la base de données source
avant et après la charge initiale. Ensuite, lors du traitement des modifications, il
convient d'être attentif si celui-ci concerne des modifications effectuées en
parallèle à la charge initiale car certaines modifications traitées sont déjà visibles
dans celle-ci (par exemple, une modification d'insertion peut échouer avec une
erreur de clé double car la ligne insérée était déjà lue par le processus de charge
initiale).

L'illustration suivante montre un package SSIS qui peut gérer les deux premiers
scénarios :

L'illustration suivante montre un package SSIS qui peut gérer le troisième scénario :
Après le package de charge initiale, un package de mise à jour à flux progressif est
exécuté à plusieurs reprises selon une planification donnée, de façon à traiter les
modifications au fur et à mesure qu'elles sont disponibles pour la consommation.

Le passage de l'état du traitement CDC du package de charge initiale vers le package à


flux progressif et entre les différentes tâches au sein de chaque package se produit au
moyen d'une variable de chaîne de package SSIS spéciale. La valeur de cette variable est
appelée « état CDC » et reflète l'état actuel du traitement CDC pour les groupes de
tables gérés par les packages de charge initiale et à flux progressif.

La valeur de la variable d’état CDC doit être conservée dans un stockage persistant. Elle
doit être lue avant de commencer le traitement CDC et doit être enregistrée avec l’état
actuel une fois le traitement terminé. La tâche de charge et de stockage de l'état CDC
peut être gérée par le développeur SSIS mais le composant de contrôle CDC peut
l'automatiser en conservant la valeur de l'état CDC dans une table de base de données.

Considérations relatives à la sécurité


Cette section contient un certain nombre de considérations de sécurité pour l'utilisation
des composants CDC dans SSIS.

Autorisation d'accès aux données modifiées


Les packages de mise à jour à flux progressif ont besoin d’accéder aux fonctions CDC de
SQL Server . Cet accès est accordé, par défaut, aux membres du rôle de base de
données fixe db_owner . Sachant que le rôle db_owner jouit de prérogatives
importantes, quand vous définissez des instances de capture dans SQL Server , il est
recommandé d’associer un rôle de régulation de sécurité à chaque instance de capture
de sorte que le package CDC SSIS fasse appel à un utilisateur ayant des autorisations
beaucoup plus restreintes pour traiter les modifications.

Access au numéro LSN actuel de la base de données CDC


Les opérations de la tâche de contrôle CDC qui permettent de marquer le numéro LSN
de départ pour le traitement des modifications doivent être en mesure de trouver le
numéro LSN actuel de la base de données CDC. Les composants trouvent le numéro
LSN à l’aide de la procédure sp_replincrementlsn de la base de données MASTER.
L'autorisation EXECUTE sur cette procédure doit être fournie à la connexion utilisée pour
se connecter à la base de données CDC SQL Server .

Accès à la table des états CDC


La table des états CDC est utilisée pour conserver automatiquement les états CDC qui
ont besoin d'être mis à jour par la connexion utilisée pour se connecter à la base de
données SQL Server . Étant donné que cette table est créée par le développeur SSIS,
définissez l'administrateur système de SQL Server en tant qu'utilisateur autorisé à créer
des bases de données SQL Server et à effectuer des tâches d'administration et de
maintenance. En outre, un administrateur système SQL Server qui travaille avec des
bases de données activées CDC doit être bien informé sur la technologie et
l'implémentation CDC dans SQL Server .

Regroupement de tables pour le traitement


CDC
Les projets de base de données peuvent inclure un petit nombre ou plusieurs milliers de
tables. Lorsque vous concevez la charge initiale et les packages CDC, il est préférable de
regrouper les tables en petits groupes pour une gestion plus efficace et simple. Cette
section décrit un certain nombre d'éléments qui ont un impact sur le tri des tables en
petits groupes, lorsque les tables de chaque groupe sont initialement chargées puis
mises à jour en tant que groupe.

Les modèles CDC pris en charge par les composants CDC supposent que ce
regroupement est déjà déterminé. Chaque groupe définit un contexte CDC distinct qui
est maintenu séparément des autres groupes. Pour chaque groupe, des packages de
mise à jour de charge initiale et à flux progressif sont créés. Les mises à jour à flux
progressif sont planifiées périodiquement en fonction des contraintes de traitement des
modifications (par exemple, la consommation de l'UC et des E/S, l'impact sur d'autres
systèmes) et de la latence désirée.
Les tables sont regroupées en fonction des considérations suivantes :

1. En fonction de la base de données cible. Toutes les tables écrites dans des bases
de données cibles différentes ou entraînant un traitement différent doivent être
affectées à des groupes CDC différents.

2. Les tables liées à des contraintes d'intégrité référentielle doivent être attribuées au
même groupe pour éviter les problèmes d'intégrité référentielle au niveau de la
cible.

3. Les tables pour lesquelles une latence plus élevée peut être tolérée peuvent être
regroupées afin d'être traitées moins fréquemment et de réduire la charge système
globale.

4. Les tables dont le taux de modification est élevé doivent être attribuées à des
groupes plus petits et les tables avec un faible taux de modification peuvent être
regroupées dans des groupes plus volumineux.

Les deux packages suivants sont créés pour chaque groupe CDC :

Un package de charge initiale, qui lit la plage complète des données des tables
sources et l'applique aux tables cibles.

Une mise à jour à flux progressif qui lit les modifications apportées aux tables
sources et les applique aux tables cibles. Ce package doit être exécuté de façon
régulière.

État CDC
À chaque groupe CDC correspond un état associé qui est représenté par une chaîne
avec un format spécifique. Pour plus d'informations, consultez CDC Control Task. Le
tableau suivant répertorie les valeurs d'état CDC possibles.

State Description

0-(INITIAL) État qui existe avant que tous les packages soient exécutés sur le groupe CDC en
cours. Il s'agit également de l'état correspondant à une capture de données
modifiées vide.

Pour plus d'informations sur les opérations de la tâche de contrôle CDC,


consultez CDC Control Task.
State Description

1-ILSTART Il s'agit de l'état qui existe lorsque le package de la charge initiale démarre. Il est
(Initial-Load- constaté après l'appel de l'opération MarkInitialLoadStart à la tâche de contrôle
Started) CDC.

Pour plus d'informations sur les opérations de la tâche de contrôle CDC,


consultez CDC Control Task.

2- ILEND Il s'agit de l'état qui existe lorsque le package de la charge initiale se termine
(Initial-Load- avec succès. Il est constaté après l'appel de l'opération MarkInitialLoadEnd à la
Ended) tâche de contrôle CDC.

Pour plus d'informations sur les opérations de la tâche de contrôle CDC,


consultez CDC Control Task.

3-ILUPDATE C'est l'état existant après la première exécution du package de mise à jour, après
(Initial Load la charge initiale, alors que le traitement de la plage initiale est encore en cours.
Update) Il est constaté après l'appel de l'opération GetProcessingRange à la tâche de
contrôle CDC.

Si vous utilisez la colonne _$reprocessing , elle contient la valeur 1 pour indiquer


que le package peut retraiter des lignes qui se trouvent déjà au niveau de la
cible.

Pour plus d'informations sur les opérations de la tâche de contrôle CDC,


consultez CDC Control Task.

4-TFEND Il s'agit de l'état attendu pour une exécution CDC normale. Il indique que
(Trickle-Feed- l'exécution précédente a réussi et qu'une nouvelle exécution avec une nouvelle
Update- plage de traitement peut démarrer.
Ended)

5-TFSTART Il s'agit de l'état constaté pour les exécutions ultérieures du package de mise à
(Trickle-Feed- jour après l'appel de l'opération GetProcessingRange à la tâche de contrôle
Update- CDC.
Started)
Il indique qu’une exécution CDC normale a démarré mais n’est pas terminée ou
ne s’est pas encore terminée correctement (MarkProcessedRange).

Pour plus d'informations sur les opérations de la tâche de contrôle CDC,


consultez CDC Control Task.

6-TFREDO Il s'agit de l'état d'un GetProcessingRange qui se produit après TFSTART. Il


(Reprocessing- indique que l'exécution précédente ne s'est pas terminée avec succès.
Trickle-Feed-
Updates) Si vous utilisez la colonne _$reprocessing, elle contient la valeur 1 pour indiquer
que le package peut retraiter des lignes qui sont déjà au niveau de la cible.

7-ERROR Le groupe CDC est dans un état ERROR.


Voici le diagramme d’état des composants CDC. Un état ERROR est constaté lorsqu'un
état qui n'est pas prévu est atteint. Les états attendus sont illustrés dans le diagramme
ci-dessous. Toutefois, l’état ERROR ne figure pas dans ce diagramme.

Par exemple, à la fin d'un package de charge initiale, lorsque le système tente de définir
l'état sur ILEND, si l'état est TFSTART, alors le groupe CDC est dans un état d'erreur et le
package de mise à jour à flux progressif ne s'exécute pas (le package de charge initiale
s'exécute).

Une fois le package de charge initiale exécuté avec succès, le package de mise à jour à
flux progressif s'exécute de façon répétée selon une planification prédéterminée pour
traiter les modifications apportées aux tables sources. Chaque exécution du package de
mise à jour à flux progressif est une exécution CDC.

Dans cette section


Source CDC

Séparateur de capture de données modifiées

Tâches associées
Diriger le flux de capture de données modifiées en fonction du type de
modification

Définir une variable d’état

Contenu associé
Entrée de blog sur l'installation du service de capture de données modifiées CDC
pour Oracle dans SQL Server 2012 , sur blogs.msdn.com

Article technique, Installation du service de capture de données modifiées


Microsoft SQL Server 2012 pour Oracle par Attunity , sur
social.technet.microsoft.com.

Article technique, Résolution des problèmes de configuration dans le service de


capture de données modifiées Microsoft SQL Server pour Oracle par Attunity ,
sur social.technet.microsoft.com.

Article technique, Dépannage des erreurs d'instance du service de capture de


données modifiées Microsoft SQL Server pour Oracle par Attunity , sur
social.technet.microsoft.com.

Video, CDC for Oracle Databases using SQL Server Integration Services 2012 (SQL
Server Video), on technet.microsoft.com.

Voir aussi
Tâche de contrôle de capture de données modifiées
Source CDC
Article • 29/03/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La source CDC lit une plage de données modifiées dans les tables de modifications de
SQL Server et apporte les modifications en aval aux autres composants SSIS.

La plage de données modifiées lue par la source CDC est appelée « plage de traitement
de capture de données modifiées » et est déterminée par la tâche de contrôle de
capture de données modifiées exécutée avant le démarrage du flux de données actuel.
La plage de traitement de capture de données modifiées est dérivée de la valeur d'une
variable de package qui gère l'état du traitement de capture de données modifiées pour
un groupe de tables.

La source CDC extrait les données d’une base de données SQL Server à l’aide d’une
table de base de données, d’une vue ou d’une instruction SQL.

La source CDC utilise les configurations suivantes :

Un gestionnaire de connexions ADO.NET SQL Server pour accéder à la base de


données CDC SQL Server . Pour plus d’informations sur la configuration de la
connexion à la source de capture des changements de données, consultez Éditeur
de source de capture des changements de données (page Gestionnaire de
connexions).

Une table pour laquelle la capture de données modifiées est activée.

Le nom de l'instance de capture de la table sélectionnée (s'il en existe plusieurs).

Le mode de traitement des modifications.

Le nom de la variable de package d'état de capture de données modifiées à partir


de laquelle la plage de traitement de capture de données modifiées est
déterminée. La source CDC ne modifie pas cette variable.

Les données retournées par la source de capture des changements de données sont les
mêmes que celles retournées par les fonctions de capture des changements de données
SQL Server cdc.fn_cdc_get_all_changes_<nom-instance-capture> et
cdc.fn_cdc_get_net_changes_<nom-instance-capture> (si elles sont disponibles). Le
seul ajout facultatif est la colonne __$initial_processing qui indique si la plage de
traitement actuelle peut chevaucher une charge initiale de la table. Pour plus
d’informations sur la traitement initial, consultez Tâche de contrôle de capture de
données modifiées.

La source CDC a une sortie normale et une sortie d'erreur.

Gestion des erreurs


la source CDC a une sortie d'erreur. La sortie d'erreur du composant contient les
colonnes de sortie suivantes :

Code d’erreur: la valeur est toujours -1.

Colonne d’erreur: colonne source à l’origine de l’erreur (pour les erreurs de


conversion).

Colonnes de ligne d’erreur: données d’enregistrement à l’origine de l’erreur.

Selon le comportement paramétré pour les erreurs, la source CDC prend en charge les
erreurs de retour (conversion de données, troncation) qui se produisent pendant le
processus d'extraction dans la sortie d'erreur.

Prise en charge du type de données


Le composant source CDC pour Microsoft prend en charge tous les types de données
SQL Server qui sont mappés à des types de données SSIS appropriés.

Résolution des problèmes liés à la source CDC


Les éléments suivants contiennent des informations utiles à la résolution des problèmes
liés à la source CDC.

Utilisez ce script pour isoler les problèmes et les


reproduire dans SQL Server Management Studio
L'opération de la source CDC est régie par l'opération de la tâche de contrôle de capture
de données modifiées exécutée avant d'appeler la source CDC. La tâche de contrôle de
capture de données modifiées prépare la valeur de la variable de package d'état de
capture de données modifiées de sorte qu'elle contienne le NSE de début et le NSE de
fin. Elle exécute une fonction équivalente au script suivant :

SQL
use <cdc-enabled-database-name>
declare @start_lsn binary(10), @end_lsn binary(10)
set @start_lsn = sys.fn_cdc_increment_lsn(
convert(binary(10),'0x' + '<value-from-state-cs>',
1))
set @end_lsn =
convert(binary(10),'0x' + '<value-from-state-ce>', 1)
select * from
cdc.fn_cdc_get_net_changes_dbo_Table1(@start_lsn,
@end_lsn, '<mode>')

où :

<cdc-enabled-database-name> est le nom de la base de données SQL Server


contenant les tables de modifications.

<value-from-state-cs> est la valeur affichée dans la variable d’état de capture des


changements de données sous la forme CS/<value-from-state-cs>/ (CS
correspondant à Current-processing-range-Start, début de la plage de traitement
actuelle).

<value-from-state-ce> est la valeur affichée dans la variable d’état de capture des


changements de données sous la forme CE/<value-from-state-cs>/ (CE
correspondant à Current-processing-range-End, fin de la plage de traitement
actuelle).

<mode> correspond aux modes de traitement de capture des changements de


données. Les modes de traitement ont l’une des valeurs suivantes : Tout, Tout avec
les anciennes valeurs, NET, Net avec masque de mise à jouret Net avec fusion.

Ce script aide à isoler les problèmes en les reproduisant dans SQL Server Management
Studio, où il est facile de reproduire et d'identifier des erreurs.

Message d'erreur SQL Server

Le message suivant peut être retourné par SQL Server:

Nombre d’arguments fournis insuffisant pour la procédure ou la fonction


cdc.fn_cdc_get_net_changes_<..>.

Cette erreur n'indique pas qu'un argument est manquant. Elle signifie que les valeurs du
NSE de début ou du NSE de fin dans la variable d'état de capture de données modifiées
ne sont pas valides.
Configuration de la source CDC
Vous pouvez configurer la source CDC par programme ou par le biais du concepteur
SSIS.

Pour plus d’informations, consultez l’une des rubriques suivantes :

Éditeur de source CDC (page Gestionnaire de connexions)

Éditeur de source CDC (page Colonnes)

Éditeur de source CDC (page Sortie d'erreur)

La boîte de dialogue Éditeur avancé contient les propriétés qui peuvent être définies
par programme.

Pour ouvrir la boîte de dialogue Éditeur avancé :

Sur l’écran Flux de données de votre projet SQL Server 2019 Integration Services
(SSIS) , cliquez avec le bouton droit sur la source CDC, puis sélectionnez Afficher
l’éditeur avancé.

Pour plus d’informations sur les propriétés que vous pouvez définir dans la boîte de
dialogue Éditeur avancé , consultez Propriétés personnalisées des sources CDC.

Dans cette section


Propriétés personnalisées des sources CDC

Extraire des données modifiées à l’aide de la source de capture de données


modifiées

Éditeur de source CDC (page Gestionnaire de


connexions)
Utilisez la page Gestionnaire de connexions de la boîte de dialogue Éditeur de source
CDC pour sélectionner le gestionnaire de connexions ADO.NET de la base de données
SQL Server à partir de laquelle la source CDC lit les lignes modifiées (la base de données
CDC). Une fois la base de données CDC sélectionnée, vous devez sélectionner une table
capturée dans la base de données.

Pour plus d'informations sur la source CDC, consultez CDC Source.


Liste des tâches
Pour ouvrir l'Éditeur de source CDC (page Gestionnaire de connexions)

1. Dans SQL Server Data Tools, ouvrez le package SQL Server 2019 Integration
Services (SSIS) qui possède la source CDC.

2. Sous l’onglet Flux de données , double-cliquez sur la source CDC.

3. Dans l’Éditeur de source CDC, cliquez sur Gestionnaire de connexions.

Options
Gestionnaire de connexions ADO.NET
Sélectionnez un gestionnaire de connexions existant dans la liste ou cliquez sur
Nouveau pour créer une connexion. La connexion doit être établie avec une base de
données SQL Server activée pour la capture de données modifiées et dans laquelle la
table de modifications sélectionnée est localisée.

Nouveau
Cliquez sur Nouveau. La boîte de dialogue Configurer l’Éditeur du gestionnaire de
connexions ADO.NET s’ouvre et vous permet de créer un gestionnaire de connexions.

Table CDC
Sélectionnez la table source CDC qui contient les modifications capturées que vous
souhaitez lire et envoyer aux composants SSIS en aval pour le traitement.

Instance de capture
Sélectionnez ou tapez le nom de l'instance de capture CDC avec la table CDC à lire.

Une table source capturée peut contenir une ou deux instances capturées pour gérer la
transition transparente de la définition de table lors des modifications de schéma. Si
plusieurs instances de capture sont définies pour la table source qui est capturée,
sélectionnez l'instance de capture à utiliser ici. Le nom par défaut de l’instance de
capture pour une table [schema].[table] est <schema>_<table>, mais le nom réel utilisé
pour cette instance de capture peut être différent. La table réelle dans laquelle les
données sont lues est la table CDC cdc .<instance-capture>_CT.

Mode de traitement CDC


Sélectionnez le mode de traitement le plus adapté pour la gestion de vos besoins de
traitement. Les options possibles sont les suivantes :

Tout: retourne les modifications apportées à la plage de capture de données


modifiées actuelle sans les valeurs Avant la mise à jour .
Tout avec les anciennes valeurs: retourne les modifications apportées à la plage
de traitement de capture de données modifiées actuelle, dont les anciennes
valeurs (Avant la mise à jour). Chaque opération de mise à jour utilise deux lignes,
une avec les valeurs avant la mise à jour et une avec la valeur après la mise à jour.

Net: retourne une seule ligne de modification par ligne source modifiée dans la
plage de capture de données modifiées actuelle. Si une ligne source a été mise à
jour plusieurs fois, la modification associée est appliquée (par exemple, l'insertion
et la mise à jour sont considérées comme une mise à jour unique, et la mise à jour
et la suppression sont considérées comme une suppression unique). Lorsque vous
travaillez dans le mode de traitement de modifications Net, il est possible de
fractionner les modifications apportées aux sorties de suppression, d'insertion et
de mise à jour et de les traiter en parallèle car la ligne source apparaît dans
plusieurs sorties.

Réseau avec masque de mise à jour : ce mode est semblable au mode Réseau
standard, mais il ajoute aussi des colonnes booléennes au modèle de nom
__$<column-name>__Changed qui indique les colonnes changées dans la ligne de
changement active.

Net avec fusion: ce mode est semblable au mode Net standard, à ceci près que les
opérations d’insertion et de mise à jour sont fusionnées en une seule opération de
fusion (UPSERT).

7 Notes

Pour toutes les options de modifications Net, la table source doit avoir une clé
primaire ou un index unique. Pour les tables sans clé primaire ou sans index unique,
vous devez utiliser l’option Tout .

Variable contenant l'état CDC


Sélectionnez la variable de package de chaîne SSIS qui gère l'état de capture de
données modifiées pour le contexte de capture de données modifiées actuel. Pour plus
d’informations sur la variable d’état CDC, consultez Définir une variable d’état.

Inclure la colonne de l'indicateur de retraitement


Cochez cette case pour créer une colonne spéciale de sortie nommée __$reprocessing.

Cette colonne a la valeur true quand la plage de traitement CDC chevauche la plage de
traitement initiale (la plage de NSE correspondant à la période de charge initiale) ou
lorsqu’une plage de traitement CDC est retraitée suite à une erreur lors d’une exécution
précédente. Cette colonne d'indicateur permet au développeur SSIS de gérer les erreurs
différemment lors du retraitement des modifications (par exemple, les actions telles que
la suppression d'une ligne inexistante et une insertion ayant échoué sur une clé
dupliquée peuvent être ignorées).

Pour plus d’informations, consultez Propriétés personnalisées des sources CDC.

Éditeur de source CDC (page Colonnes)


Utilisez la page Colonnes de la boîte de dialogue Éditeur de source CDC pour mapper
une colonne de sortie à chaque colonne externe (source).

Liste des tâches


Pour ouvrir l'Éditeur de source CDC (page Colonnes)

1. Dans SQL Server Data Tools, ouvrez le package SQL Server 2019 Integration
Services (SSIS) qui possède la source CDC.

2. Sous l’onglet Flux de données , double-cliquez sur la source CDC.

3. Dans l' Éditeur de source CDC, cliquez sur Colonnes.

Options
Colonnes externes disponibles
Liste des colonnes externes disponibles dans la source de données. Vous ne pouvez pas
ajouter ou supprimer des colonnes à l'aide de cette table. Sélectionnez les colonnes à
utiliser dans la source. Les colonnes sélectionnées sont ajoutées à la liste Colonne
externe dans l'ordre de leur sélection.

Colonne externe
Vue des colonnes externes (sources) selon l'ordre dans lequel vous les visualisez lorsque
vous configurez des composants qui consomment des données à partir de la source
CDC. Vous pouvez modifier cet ordre en supprimant d'abord les colonnes sélectionnées
dans la liste Colonnes externes disponibles , puis en choisissant des colonnes externes
dans la liste selon un ordre différent. Les colonnes sélectionnées sont ajoutées à la liste
Colonne externe dans l'ordre de leur sélection.

Colonne de sortie
Spécifiez un nom unique pour chaque colonne de sortie. Le nom par défaut est celui de
la colonne externe (source) sélectionnée ; toutefois, vous pouvez choisir n'importe quel
nom unique et descriptif. Le nom entré est affiché dans le concepteur SSIS.
Éditeur de source CDC (page Sortie d'erreur)
Utilisez la page Sortie d'erreur de la boîte de dialogue Éditeur de source CDC pour
sélectionner les options de gestion des erreurs.

Liste des tâches


Pour ouvrir l'Éditeur de source CDC (page Sortie d'erreur)

1. Dans SQL Server Data Tools, ouvrez le package SQL Server 2019 Integration
Services (SSIS) qui possède la source CDC.

2. Sous l’onglet Flux de données , double-cliquez sur la source CDC.

3. Dans l' Éditeur de source CDC, cliquez sur Sortie d'erreur.

Options
Entrée/sortie
Affichez le nom de la source de données.

Colonne
Affichez les colonnes externes (sources) que vous avez sélectionnées dans la page
Gestionnaire de connexions de la boîte de dialogue Éditeur de source CDC .

Error
Sélectionnez la façon dont la source CDC doit gérer les erreurs dans un flux : ignorer
l'échec, rediriger la ligne ou faire échouer le composant.

Troncation
Sélectionnez la façon dont la source CDC doit gérer la troncation dans un flux : ignorer
l'échec, rediriger la ligne ou faire échouer le composant.

Description
Non utilisé.

Définir cette valeur sur les cellules sélectionnées


Sélectionnez la façon dont la source CDC gère l'ensemble des cellules sélectionnées
lorsqu'une erreur ou une troncation se produit : ignorer l'échec, rediriger la ligne ou
faire échouer le composant.

Appliquer
Appliquez les options de gestion des erreurs aux cellules sélectionnées.
Options de gestion des erreurs
Vous pouvez utiliser les options suivantes pour configurer la façon dont la source CDC
gère les erreurs et les troncations.

Composant défaillant
La tâche de flux de données échoue lorsqu'une erreur ou une troncation a lieu. Il s'agit
du comportement par défaut.

Ignorer l'échec
L'erreur ou la troncation est ignorée et la ligne de données est dirigée vers la sortie de la
source CDC.

Rediriger le flux
La ligne de données qui présente l'erreur ou la troncation est dirigée vers la sortie
d'erreur de la source CDC. Dans ce cas, la gestion des erreurs de la source CDC est
utilisée. Pour plus d'informations, consultez CDC Source.
Propriétés personnalisées des sources
CDC
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le tableau suivant décrit les propriétés personnalisées de la source CDC. Toutes les
propriétés sont en lecture/écriture.

Nom de la propriété Type de Description


données

Connexion Connexion Connexion ADO.NET à la base de données CDC SQL


ADO.NET Server pour l'accès aux tables de modifications.

StateVariable String Variable de package de chaîne SSIS qui gère l'état de


capture de données modifiées de l'exécution de capture
de données modifiées actuelle.

CdcProcessingMode Integer Ce mode détermine le mode de gestion du traitement.


(énumération) Les options possibles sont : Tout, Tout avec les
anciennes valeurs, NET, Net avec masque de mise à
jouret Net avec fusion.

Modes qui commencent par Tout (retourner toutes les


modifications) et modes qui commencent par Net
(retourner les modifications Net uniquement).

Les tables sans clé primaire peuvent uniquement


accepter les valeurs ALL.

Réseau avec masque de mise à jour ajoute des


colonnes booléennes avec le modèle de nom __$<nom-
colonne>__Changed qui indique les colonnes changées
dans la ligne de changement actuelle.

Pour plus d’informations sur les valeurs de cette


propriété, consultez Éditeur de source CDC (page
Gestionnaire de connexions).
Nom de la propriété Type de Description
données

CaptureInstance String Nom de l'instance de capture de données contenant la


table CDC à lire. Une table source capturée peut
contenir une ou deux instances capturées pour gérer la
transition transparente de la définition de table lors des
modifications de schéma. Si plusieurs instances de
capture sont définies pour la table source qui est
capturée, sélectionnez l'instance de capture à utiliser ici.
Le nom par défaut de l’instance de capture pour une
table [schema].[table] est <schema>_<table>, mais le
nom réel utilisé pour cette instance de capture peut être
différent. La table réelle dans laquelle les données sont
lues est la table CDC cdc .<instance-capture>_CT.

ReprocessingIndicator Boolean Valeur qui spécifie s’il faut ajouter la colonne


__$reprocessing . Cette colonne de sortie spéciale
permet au développeur SSIS de gérer différemment les
erreurs de cohérence lorsqu'il travaille sur la plage de
traitement initiale.

Si la valeur est true, la colonne __$reprocessing est


ajoutée.

Cette colonne a la valeur true quand la plage de


traitement CDC chevauche la plage de traitement initiale
(plage de NSE correspondant à la période de charge
initiale) ou quand une plage de traitement CDC est
retraitée suite à une erreur lors d’une exécution
précédente. Cette colonne d'indicateur permet au
développeur SSIS de gérer les erreurs différemment lors
du retraitement des modifications (par exemple, les
actions telles que la suppression d'une ligne inexistante
et une insertion ayant échoué sur une clé dupliquée
peuvent être ignorées).

La valeur par défaut est false.

CommandTimeout Integer Cette valeur indique le délai d’attente (en secondes) à


utiliser pour communiquer avec la base de données SQL
Server . Cette valeur est utilisée lorsque le temps de
réponse de la base de données est très lent et que la
valeur par défaut (30 secondes) n'est pas suffisante.

Pour plus d'informations sur la source CDC, consultez CDC Source.


Extraire des données modifiées à l'aide
de la source de capture de données
modifiées
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour pouvoir ajouter et configurer une source CDC, le package doit inclure au moins
une tâche de flux de données et une tache de contrôle de capture de données
modifiées.

Pour plus d’informations sur la tâche de contrôle de capture de données modifiées,


consultez Tâche de contrôle de capture de données modifiées.

Pour plus d'informations sur la source CDC, consultez CDC Source.

Pour extraire des données modifiées à l'aide d'une source


CDC
1. Dans SQL Server Data Tools, ouvrez le projet SQL Server 2019 Integration Services
(SSIS) contenant le package souhaité.

2. Dans l’Explorateur de solutions, double-cliquez sur le package pour l’ouvrir.

3. Cliquez sur l’onglet Flux de données puis, dans la Boîte à outils, faites glisser la
source CDC vers l’aire de conception.

4. Double-cliquez sur la source CDC.

5. Dans la boîte de dialogue Éditeur de source CDC , dans la page Gestionnaire de


connexions , sélectionnez un gestionnaire de connexions ADO.NET existant dans la
liste ou cliquez sur Nouveau pour créer un gestionnaire de connexions. La
connexion doit être établie avec une base de données SQL Server qui contient les
tables de changements à lire.

6. Sélectionnez la table CDC dans laquelle vous souhaitez traiter les modifications.

7. Sélectionnez ou tapez le nom de l’instance de capture de données modifiées


contenant la table CDC à lire.

Une table source capturée peut contenir une ou deux instances capturées pour
gérer la transition transparente de la définition de table lors des modifications de
schéma. Si plusieurs instances de capture sont définies pour la table source qui est
capturée, sélectionnez l'instance de capture à utiliser ici. Le nom par défaut de
l’instance de capture pour une table [schema].[table] est <schema>_<table>, mais
le nom réel utilisé pour cette instance de capture peut être différent. La table réelle
dans laquelle les données sont lues est la table CDC cdc .<instance-capture>_CT.

8. Sélectionnez le mode de traitement le plus adapté pour la gestion de vos besoins


de traitement. Les options possibles sont les suivantes :

Tout: retourne les modifications apportées à la plage de capture de données


modifiées actuelle sans les valeurs Avant la mise à jour .

Tout avec les anciennes valeurs: retourne les modifications apportées à la


plage de traitement de capture de données modifiées actuelle, dont les
anciennes valeurs (Avant la mise à jour). Chaque opération de mise à jour
utilise deux lignes, une avec les valeurs avant la mise à jour et une avec la
valeur après la mise à jour.

Net: retourne une seule ligne de modification par ligne source modifiée dans
la plage de capture de données modifiées actuelle. Si une ligne source a été
mise à jour plusieurs fois, la modification associée est appliquée (par
exemple, l'insertion et la mise à jour sont considérées comme une mise à jour
unique, et la mise à jour et la suppression sont considérées comme une
suppression unique). Lorsque vous travaillez dans le mode de traitement de
modifications Net, il est possible de fractionner les modifications apportées
aux sorties de suppression, d'insertion et de mise à jour et de les traiter en
parallèle car la ligne source apparaît dans plusieurs sorties.

Réseau avec masque de mise à jour : ce mode est semblable au mode


Réseau standard, mais il ajoute aussi des colonnes booléennes au modèle de
nom __$<column-name>__Changed qui indique les colonnes changées dans
la ligne de changement active.

Net avec fusion: ce mode est semblable au mode Net standard, à ceci près
que les opérations d’insertion et de mise à jour sont fusionnées en une seule
opération de fusion (UPSERT).

9. Sélectionnez la variable de package de chaîne SSIS qui gère l'état de capture de


données modifiées pour le contexte de capture de données modifiées actuel. Pour
plus d’informations sur la variable d’état CDC, consultez Définir une variable d’état.

10. Cochez la case Inclure la colonne de l’indicateur de retraitement pour créer une
colonne de sortie spéciale appelée __$reprocessing. Cette colonne a la valeur true
quand la plage de traitement CDC chevauche la plage de traitement initiale (la
plage de NSE correspondant à la période de charge initiale) ou lorsqu’une plage
de traitement CDC est retraitée suite à une erreur lors d’une exécution précédente.
Cette colonne d'indicateur permet au développeur SSIS de gérer les erreurs
différemment lors du retraitement des modifications (par exemple, les actions
telles que la suppression d'une ligne inexistante et une insertion ayant échoué sur
une clé dupliquée peuvent être ignorées).

Pour plus d’informations, consultez Propriétés personnalisées des sources CDC.

11. Pour mettre à jour le mappage entre les colonnes externes et les colonnes de
sortie, cliquez sur Colonnes et sélectionnez des colonnes dans la liste Colonne
externe .

12. Si vous le souhaitez, mettez à jour les valeurs des colonnes de sortie en supprimant
les valeurs dans la liste Colonne de sortie .

13. Pour configurer l'affichage des erreurs, cliquez sur Sortie d'erreur.

14. Vous pouvez cliquer sur Aperçu pour afficher jusqu’à 200 lignes de données
extraites par la source CDC.

15. Cliquez sur OK.

Voir aussi
Éditeur de source CDC (page Gestionnaire de connexions)
Éditeur de source CDC (page Colonnes)
Éditeur de source CDC (page Sortie d'erreur)
Séparateur de capture de données
modifiées
Article • 29/03/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le séparateur de capture de données modifiées fractionne un flux de lignes de


modification d'un flux de données de source CDC en flux de données distincts pour les
opérations d'insertion, de mise à jour et de suppression. Le flux de données est
fractionné en fonction de la colonne requise __$operation et de ses valeurs standard
dans les tables de modification de SQL Server .

Valeur de Output Description


l'opération

1 Supprimer Ligne supprimée

2 Insérer Ligne insérée (non disponible en cas d’utilisation du mode de capture


de données modifiées Net avec fusion )

3 Update Ligne avant la mise à jour (disponible uniquement en cas d’utilisation


du mode de capture de données modifiées Tout avec les anciennes
valeurs )

4 Update Ligne après la mise à jour (suit avant la mise à jour)

5 Update Ligne de fusion (disponible uniquement en cas d’utilisation du mode


de capture de données modifiées Net avec fusion )

Autres Error

Vous pouvez utiliser le séparateur pour vous connecter aux sorties INSERT, DELETE et
UPDATE afin d'effectuer d'autres opérations de traitement.

La transformation de séparateur de capture de données modifiées a une sortie standard


et une sortie d'erreur.

Gestion des erreurs


La transformation de séparateur de capture de données modifiées a une sortie d'erreur.
Les lignes d'entrée avec une valeur de colonne $operation non valide sont considérées
comme incorrectes et sont gérées conformément à la propriété ErrorRowDisposition de
l'entrée.
La sortie d'erreur du composant contient les colonnes de sortie suivantes :

Code d'erreur: la valeur est 1.

Colonne d’erreur: colonne source à l’origine de l’erreur (pour les erreurs de


conversion).

Colonnes de ligne d'erreur: colonnes d'entrée de la ligne à l'origine de l'erreur.

Configuration du séparateur de capture de


données modifiées
Le séparateur de capture de données modifiées ne comporte aucune propriété
configurable.

Pour plus d'informations sur l'utilisation du séparateur de capture de données


modifiées, consultez Composants de capture de données modifiées pour Microsoft SQL
Server Integration Services.

La boîte de dialogue Éditeur avancé contient les propriétés qui peuvent être définies
par programme.

Pour ouvrir la boîte de dialogue Éditeur avancé :

Sur l’écran Flux de données de votre projet SQL Server 2019 Integration Services
(SSIS), cliquez avec le bouton droit sur le séparateur CDC, puis sélectionnez
Afficher l’éditeur avancé.

Voir aussi
Diriger le flux de capture de données modifiées en fonction du type de modification
Diriger le flux de capture de données
modifiées en fonction du type de
modification
Article • 29/03/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour pouvoir ajouter et configurer une transformation de séparateur de capture de


données modifiées, le package doit contenir au moins une tâche de flux de données et
une source CDC.

La source CDC ajoutée au package doit avoir un mode de traitement NetCDC


sélectionné. Pour plus d’informations sur la sélection des modes de traitement,
consultez Éditeur de source CDC (page Gestionnaire de connexions).

Pour diriger le flux de données de capture de données


modifiées en fonction du type de modification
1. Dans SQL Server Data Tools, ouvrez le projet SQL Server 2019 Integration Services
(SSIS) contenant le package souhaité.

2. Dans l’Explorateur de solutions, double-cliquez sur le package pour l’ouvrir.

3. Cliquez sur l'onglet Flux de données , puis dans la Boîte à outils, faites glisser le
séparateur de capture de données modifiées sur l'aire de conception.

4. Connectez la source CDC incluse dans le package au séparateur de capture de


données modifiées.

5. Connectez le séparateur de capture de données modifiées à une ou plusieurs


destinations. vous pouvez connecter jusqu'à trois sorties différentes.

6. Sélectionnez l'une des sorties suivantes :

Sortie de suppression : sortie vers laquelle les lignes de modification DELETE


sont dirigées.

Sortie d'insertion : sortie vers laquelle les lignes de modification INSERT sont
dirigées.

Sortie de mise à jour : sortie vers laquelle les lignes de modification


avant/après UPDATE et les lignes de modification MERGE sont dirigées.
7. Éventuellement, vous pouvez configurer les propriétés avancées à l'aide de la boîte
de dialogue Éditeur avancé .

La boîte de dialogue Éditeur avancé contient les propriétés qui peuvent être
définies par programme.

Pour ouvrir la boîte de dialogue Éditeur avancé :

Sur l’écran Flux de données de votre projet SQL Server 2019 Integration
Services (SSIS), cliquez avec le bouton droit sur le séparateur CDC, puis
sélectionnez Afficher l’éditeur avancé.

Pour plus d'informations sur l'utilisation du séparateur de capture de données


modifiées, consultez Composants de capture de données modifiées pour Microsoft
SQL Server Integration Services.

Voir aussi
Séparateur de capture de données modifiées
Définir une variable d’état
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette procédure explique comment définir une variable de package dans laquelle l'état
de capture de données modifiées est stocké.

La variable d'état de capture de données modifiées est chargée, initialisée et mise à jour
par la tâche de contrôle de capture de données modifiées et est utilisée par le
composant de flux de données de la source CDC pour déterminer la plage de traitement
actuelle des enregistrements de modification. La variable d'état de capture de données
modifiées peut être définie sur n'importe quel conteneur commun à la tache de contrôle
de capture de données modifiées et à la source CDC. La définition peut être effectuée
au niveau du package mais également sur d'autres conteneurs, tel qu'un conteneur de
boucles.

Il est déconseillé de modifier manuellement la valeur d'une variable d'état de capture de


données modifiées. Toutefois, cela peut être utile pour comprendre son contenu.

Le tableau suivant fournit une description globale des composants de la valeur de


variable d'état de capture de données modifiées.

Composant Description

<nom_état> Il s'agit du nom de l'état de capture de données modifiées actuel.

CS Cela marque le point de départ de la plage de traitement actuelle (début


actuel).

<da-lsn> Il s'agit du dernier numéro séquentiel dans le journal (NSE) traité dans
l'exécution de capture de données modifiées précédente.

CE Cela marque le point d'arrivée de la plage de traitement actuelle (fin


actuelle). La présence du composant CE dans l'état de capture de
données modifiées indique qu'un package de capture de données
modifiées est actuellement en cours de traitement ou qu'un package de
capture de données modifiées a échoué avant la fin du traitement
complet de sa plage de traitement de capture de données modifiées.

<fa-lsn> Il s'agit du dernier numéro séquentiel dans le journal à traiter dans


l'exécution de capture de données modifiées actuelle. On part du
principe que le dernier numéro de séquence à traiter correspond au
maximum (0xFFF...).

IR Cela marque la plage de traitement initiale.


Composant Description

<début_pi> Il s'agit d'un numéro séquentiel dans le journal d'un changement juste
avant le début de la charge initiale.

<fin_pi> Il s'agit d'un numéro séquentiel dans le journal d'un changement juste
après la fin de la charge initiale.

TS Cela marque l'horodateur pour la dernière mise à jour de l'état de


capture de données modifiées.

<timestamp> Il s'agit d'une représentation décimale de la propriété de 64 bits,


System.DateTime.UtcNow.

ER Ce message apparaît lorsque la dernière opération a échoué et il inclut


une brève description de la cause de l'erreur. Si ce composant est
présent, il apparaît toujours en dernier.

<texte_erreur_court> Il s'agit de la brève description de l'erreur.

Les numéros séquentiels dans le journal et les numéros de séquence sont tous encodés
sous forme de chaîne hexadécimale comportant jusqu'à 20 chiffres représentant la
valeur du numéro séquentiel dans le journal de Binary(10).

Le tableau suivant décrit les valeurs possibles d'état de capture de données modifiées.

State Description

(INITIAL) Il s'agit de l'état initial avant l'exécution d'un package sur le groupe CDC actuel.
Il s'agit également de l'état correspondant à une capture de données modifiées
vide.

ILSTART Il s'agit de l'état au démarrage du package de charge initiale, après l'appel de


(charge initiale l'opération MarkInitialLoadStart à la tâche de contrôle CDC.
démarrée)

ILEND (fin de la Il s'agit de l'état à la fin du package de charge initiale, après l'appel de
charge initiale) l'opération MarkInitialLoadEnd à la tâche de contrôle CDC.

ILUPDATE (mise Il s'agit de l'état lors des exécutions du package de mise à jour à flux progressif,
à jour de la suivant la charge initiale, alors que le traitement de la plage initiale est encore
charge initiale) en cours. Il est constaté après l'appel de l'opération GetProcessingRange à la
tâche de contrôle CDC.

Si vous utilisez la colonne __$reprocessing, elle contient la valeur 1 pour


indiquer que le package peut retraiter des lignes qui sont déjà au niveau de la
cible.
State Description

TFEND (fin de Il s'agit de l'état attendu pour une exécution CDC normale. Il indique que
la mise à jour à l'exécution précédente a réussi et qu'une nouvelle exécution avec une nouvelle
flux progressif) plage de traitement peut démarrer.

TFSTART Il s’agit de l’état sur une exécution non initiale du package de mise à jour à flux
progressif, après l’appel de l’opération GetProcessingRange à la tâche de
contrôle CDC.

Il indique qu’une exécution CDC normale a démarré mais n’est pas terminée ou
ne s’est pas encore terminée correctement (MarkProcessedRange).

TFREDO Il s'agit de l'état d'un GetProcessingRange qui se produit après TFSTART. Il


(Retraitement indique que l'exécution précédente ne s'est pas terminée avec succès.
des mises à
jour à flux Si vous utilisez la colonne __$reprocessing, elle contient la valeur 1 pour
progressif) indiquer que le package peut retraiter des lignes qui sont déjà au niveau de la
cible.

ERROR Le groupe CDC est dans un état ERROR.

Voici des exemples de valeurs de variable d'état de capture de données modifiées.

ILSTART/IR/0x0000162B158700000000//TS/2011-08-07T17:10:43.0031645/

ILSTART/IR/0x0000162B158700000000//TS/2011-08-07T17:10:43.0031645/

TFEND/CS/0x0000025B000001BC0003/TS/2011-07-17T12:05:58.1001145/

TFSTART/CS/0x0000030D000000AE0003/CE/0x0000159D1E0F01000000/TS/2011-
08-09T05:30:43.9344900/

TFREDO/CS/0x0000030D000000AE0003/CE/0x0000159D1E0F01000000/TS/2011-
08-09T05:30:59.5544900/

Pour définir une variable d'état de capture de données


modifiées
1. Dans SQL Server Data Tools, ouvrez le package SQL Server 2019 Integration
Services (SSIS) contenant le flux de données de capture de données modifiées
dans lequel vous devez définir la variable.

2. Cliquez sur l'onglet Explorateur de package , puis ajoutez une nouvelle variable.

3. Attribuez à la variable un nom que vous pouvez identifier en tant que variable
d'état.
4. Attribuez à la variable le type de données Chaîne .

N'attribuez pas une valeur à la variable dans le cadre de sa définition. La valeur doit être
définie par la tâche de contrôle de capture de données modifiées.

Si vous envisagez d'utiliser la tâche de contrôle de capture de données modifiées avec


Permanence d'état automatique, la variable d'état de capture de données modifiées
sera lue dans la table d'état de la base de données que vous spécifiez et sera remise à
jour dans cette même table lorsque sa valeur sera modifiée. Pour plus d'informations sur
la table d'état, consultez CDC Control Tasket CDC Control Task Editor.

Si vous n'utilisez pas la tâche de contrôle de capture de données modifiées avec


Permanence d'état automatique, vous devez charger la valeur de la variable depuis le
stockage permanent dans lequel sa valeur a été enregistrée lors la dernière exécution du
package, puis la réécrire dans le stockage permanent une fois le traitement de la plage
de traitement actuelle terminé.

Voir aussi
Tâche de contrôle de capture de données modifiées
Éditeur de tâche de contrôle CDC
Destination d’apprentissage du modèle
d’exploration de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

) Important

L’exploration de données a été dépréciée dans SQL Server 2017 (14.x) Analysis
Services et est à présent abandonnée dans SQL Server 2022 (16.x) Analysis Services.
La documentation n’est pas mise à jour pour les fonctionnalités déconseillées et
abandonnées. Pour en savoir plus, consultez Compatibilité descendante d’Analysis
Services.

La destination d'apprentissage du modèle d'exploration de données exerce les modèles


d'exploration de données en transmettant les données que la destination reçoit par le
biais des algorithmes de modèles d'exploration de données. Plusieurs modèles
d'exploration de données peuvent faire l'objet d'un apprentissage par une même
destination si les modèles sont construits sur la même structure d'exploration des
données. Pour plus d’informations, consultez Colonnes de structure d’exploration de
données et Colonnes d’un modèle d’exploration de données.

Configuration de la destination d'apprentissage


du modèle d'exploration de données
Si une colonne de niveau de cas de la structure cible et les modèles créés sur cette
structure ont un contenu de type KEY TIME ou KEY SEQUENCE, les données d'entrée
doivent être triées sur cette colonne. Par exemple, les modèles créés à l'aide de
l'algorithme Microsoft Time Series utilisent le type de contenu KEY TIME. Si les données
d'entrée ne sont pas triées, le traitement du modèle risque d'échouer. Si les données
doivent être triées, vous pouvez utiliser une transformation de tri plus haut dans le flux
de données afin de trier les données. Ceci ne s'applique pas aux colonnes dont le type
de contenu est KEY. Pour plus d’informations, consultez Types de contenu (Exploration
de données) et Transformation de tri.

7 Notes
L'entrée de la destination d'apprentissage du modèle d'exploration de données
doit être triée. Pour trier les données, vous pouvez inclure une destination de tri en
amont de la destination d'apprentissage du modèle d'exploration de données dans
le flux de données. Pour plus d’informations, voir Sort Transformation.

La destination comporte une entrée et aucune sortie.

La destination d’apprentissage du modèle d’exploration de données utilise un


gestionnaire de connexions SQL Server Analysis Services pour se connecter au projet
Analysis Services ou à l’instance de Analysis Services qui contient la structure et les
modèles d’exploration de données dont la destination assure l’apprentissage. Pour plus
d'informations, consultez Analysis Services Connection Manager.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées de la destination d'apprentissage du modèle


d'exploration de données

Pour plus d’informations sur la façon de définir les propriétés, consultez Définir les
propriétés d’un composant de flux de données.

Éditeur d'apprentissage du modèle


d'exploration de données (onglet Connexion)
Utilisez la page Connexion de la boîte de dialogue Éditeur d'apprentissage du modèle
d'exploration de données pour sélectionner un modèle d'exploration de données pour
l'apprentissage.

Options
Connection manager
Sélectionnez une connexion dans la liste des connexions Analysis Services existantes ou
créez une nouvelle connexion Analysis Services à l’aide du bouton Nouveau décrit ci-
après.
Nouveau
Créez une connexion à l’aide de la boîte de dialogue Ajout d’un gestionnaire de
connexions Analysis Services .

Structure d'exploration de données


Sélectionnez une structure dans la liste de structures d’exploration de données
disponibles ou créez une nouvelle structure en cliquant sur Nouveau.

Nouveau
Créez une structure d’exploration de données et un modèle d’exploration de données à
l’aide de l’Assistant Exploration de données.

Modèles d'exploration de données


Affiche la liste des modèles d'exploration de données associés à la structure
d'exploration de données sélectionnée.

Éditeur d'apprentissage du modèle


d'exploration de données (onglet Colonnes)
Utilisez la page Colonnes de la boîte de dialogue Éditeur d'apprentissage du modèle
d'exploration de données pour établir une correspondance entre les colonnes d'entrée
et les colonnes de la structure d'exploration de données.

Options
Colonnes d'entrée disponibles
Affichez la liste des colonnes d'entrée disponibles. Faites glisser les colonnes d'entrée
pour les mapper sur les colonnes de la structure d'exploration de données.

Colonnes de structure d'exploration de données


Affiche la liste des colonnes de la structure d'exploration de données. Faites glisser les
colonnes de la structure d'exploration de données pour les mapper sur les colonnes
d'entrée disponibles.

Colonne d'entrée
Affiche les colonnes d'entrée sélectionnées dans le tableau ci-dessus. Pour modifier ou
supprimer une sélection de mappage, utilisez la liste Colonnes d'entrée disponibles.

Colonnes de structure d'exploration de données


Affiche chaque colonne de destination disponible, qu’elle soit mappée ou non.
Propriétés personnalisées de la
destination d'apprentissage du modèle
d'exploration de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

) Important

L’exploration de données a été dépréciée dans SQL Server 2017 (14.x) Analysis
Services et est à présent abandonnée dans SQL Server 2022 (16.x) Analysis Services.
La documentation n’est pas mise à jour pour les fonctionnalités déconseillées et
abandonnées. Pour en savoir plus, consultez Compatibilité descendante d’Analysis
Services.

La destination d'apprentissage du modèle d'exploration de données comporte à la fois


des propriétés personnalisées et les propriétés communes à l'ensemble des composants
de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la destination d'apprentissage


du modèle d'exploration de données. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

ASConnectionId String Identificateur unique du gestionnaire de connexions.

ASConnectionString String Chaîne de connexion d'une instance de Analysis Services ou


d'un projet Analysis Services .

ObjectRef String Balise XML qui identifie la structure d'exploration de données


utilisée par la transformation.

L'entrée et les colonnes d'entrée de la destination d'apprentissage du modèle


d'exploration de données ne disposent pas de propriétés personnalisées.

Pour plus d’informations, consultez Destination d’apprentissage du modèle


d’exploration de données.

Voir aussi
Propriétés communes
Data Streaming Destination
Article • 29/03/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Data Streaming Destination est un composant de destination SQL Server Integration


Services (SSIS) qui permet au fournisseur OLE DB pour SSIS de consommer la sortie
d’un package SSIS sous la forme d’un jeu de résultats tabulaire. Vous pouvez créer un
serveur lié qui utilise le fournisseur OLE DB pour SSIS, puis exécuter une requête SQL sur
le serveur lié pour afficher les données retournées par le package SSIS.

Dans l’exemple suivant, la requête suivante retourne une sortie du package Package.dtsx
dans le projet SSISPackagePublishing dans le dossier Power BI du catalogue SSIS. Cette
requête utilise le serveur lié nommé [serveur lié par défaut pour Integration Services] qui
à son tour utilise le nouveau fournisseur OLE DB pour SSIS. La requête inclut le nom du
dossier, le nom du projet et le nom du package dans le catalogue SSIS. Le fournisseur
OLE DB pour SSIS exécute le package que vous avez spécifié dans la requête et retourne
le jeu de résultats tabulaire.

SQL

SELECT * FROM OPENQUERY([Default Linked Server for Integration Services],


N'Folder=Power BI;Project=SSISPackagePublishing;Package=Package.dtsx')

Composants de publication du flux de données


Les composants de publication du flux de données incluent les éléments suivants :
fournisseur OLE DB pour SSIS, Data Streaming Destination et Assistant Publication du
package SSIS. L’Assistant vous permet de publier un package SSIS sous la forme d’une
vue SQL dans une instance de base de données SQL Server . L’Assistant vous aide à
créer un serveur lié qui utilise le fournisseur OLE DB pour SSIS et une vue SQL qui
représente une requête sur le serveur lié. Vous exécutez la vue pour interroger les
résultats du package SSIS comme un jeu de données tabulaire.

Pour vérifier que le fournisseur SSISOLEDB est installé, dans SQL Server Management
Studio, développez Objets serveur, Serveurs liés, Fournisseurset vérifiez que le
fournisseur SSISOLEDB est affiché. Double-cliquez sur SSISOLEDB, activez Autoriser
Inprocess si ce n’est pas déjà fait, puis cliquez sur OK.
Publication d’un package SSIS sous la forme
d’une vue SQL
La procédure suivante décrit les étapes pour publier un package SSIS sous la forme
d’une vue SQL.

1. Créez un package SSIS avec un composant Data Streaming Destination et


déployez le package dans le catalogue SSIS.

2. Exécutez l’Assistant Publication du package SSIS en exécutant


ISDataFeedPublishingWizard.exe à partir de C:\Program Files\Microsoft SQL
Server\130\DTS\Binn ou en exécutant l’Assistant Publication de flux de données à
partir du menu Démarrer.

L’Assistant crée un serveur lié à l’aide du fournisseur OLE DB pour SSIS


(SSISOLEDB), puis crée une vue SQL qui se compose d’une requête sur le serveur
lié. Cette requête inclut le nom du dossier, le nom du projet et le nom du package
dans le catalogue SSIS.

3. Exécutez la vue SQL dans SQL Server Management Studio et examinez les résultats
à partir du package SSIS. La vue envoie une requête au fournisseur OLE DB pour
SSIS à l’aide du serveur lié que vous avez créé. Le fournisseur OLE DB pour SSIS
exécute le package que vous avez spécifié dans la requête et retourne le jeu de
résultats tabulaire.

) Important

Pour des instructions détaillées, consultez la page Walkthrough: Publish an SSIS


Package as a SQL View.

Configurer Data Streaming Destination


Configurez Data Streaming Destination à l’aide de la boîte de dialogue Éditeur avancé
pour Data Streaming Destination . Pour ouvrir cette boîte de dialogue, double-cliquez
sur le composant ou cliquez avec le bouton droit sur le composant dans le concepteur
de flux de données, puis cliquez sur Modifier.

Cette boîte de dialogue comporte trois onglets : Propriétés du composant, Colonnes


d’entréeet Propriétés d’entrée et de sortie.
Onglet Propriétés du composant
Cet onglet comprend les champs modifiables suivants :

Champ Description

Nom Nom du composant Data Streaming Destination dans le package.

ValidateExternalMetadata Indique si le composant est validé à l’aide de sources de données


externes au moment de la conception. Si la propriété est définie sur
false, la validation avec des sources de données externes est différée
jusqu’au moment de l’exécution.

IDColumnName La vue générée par l’Assistant Publication des flux de données


contient cette colonne d’ID supplémentaire. La colonne d’ID est
utilisée comme valeur EntityKey pour les données de sortie du flux de
données lorsque les données sont consommées comme flux OData
par d’autres applications.

Le nom par défaut de cette colonne est _ID. Vous pouvez spécifier un
autre nom pour la colonne d’ID.

Onglet Colonnes d’entrée


Toutes les colonnes d’entrée disponibles s’affichent dans le volet supérieur de cet
onglet. Sélectionnez les colonnes que vous souhaitez inclure dans la sortie de ce
composant. Les colonnes sélectionnées sont affichées sous forme de liste dans le volet
inférieur. Vous pouvez modifier le nom de la colonne de sortie en tapant le nouveau
nom du champ Alias de sortie dans la liste.

Onglet Propriétés d’entrée et de sortie


Cet onglet est similaire à l’onglet Colonnes d’entrée. Vous pouvez modifier les noms des
colonnes de sortie dans cet onglet. Dans l’arborescence à gauche, développez Entrée de
Data Streaming Destination , puis Colonnes d’entrée. Cliquez sur le nom de la colonne
d’entrée et modifiez le nom de la colonne de sortie dans le volet droit.
Procédure pas à pas : Publication d’un
package SSIS sous la forme d’une vue
SQL
Article • 29/03/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette procédure pas à pas fournit des étapes détaillées pour la publication d’un package
SSIS en tant que vue SQL dans une base de données SQL Server.

Conditions préalables requises


Pour pouvoir effectuer cette procédure pas à pas, vous devez disposer des logiciels
suivants installés sur votre ordinateur.

1. SQL Server avec SQL Server Integration Services

2. SQL Server Data Tools.

Étape 1 : créer et déployer le projet SSIS dans le


catalogue SSIS
Dans cette étape, vous créez un package SSIS qui extrait les données d’une source de
données SSIS prise en charge (dans cet exemple, nous utilisons une base de données
SQL Server) et qui produit les données en sortie en utilisant un composant Data
Streaming Destination. Vous générez et déployez ensuite le projet SSIS dans le
catalogue SSIS.

1. Lancez SQL Server Data Tools. Dans le menu Démarrer , pointez sur Tous les
programmes, puis sur Microsoft SQL Serveret cliquez sur SQL Server Data Tools.

2. Créez un projet Integration Services

a. Dans la barre de menus, cliquez sur Fichier , pointez sur Nouveau, puis cliquez
sur Projet.

b. Développez Business Intelligence dans le volet gauche, puis cliquez sur


Integration Services dans l’arborescence.
c. Sélectionnez Projet Integration Services , si cette option n’est pas déjà
sélectionnée.

d. Spécifiez SSISPackagePublishing comme nom de projet.

e. Spécifiez un emplacement pour le projet.

f. Cliquez sur OK pour fermer la boîte de dialogue Nouveau projet .

3. Faites glisser le composant Flux de données de la Boîte à outils SSIS vers l’aire de
conception de l’onglet Flux de contrôle .

4. Double-cliquez sur le composant Flux de données dans Flux de contrôle pour


ouvrir le Concepteur de flux de données.

5. Faites glisser un composant source de la boîte à outils vers le Concepteur de flux


de données , puis configurez-le pour extraire les données d’une source de
données.

a. Pour les besoins de la procédure pas à pas, créez une base de données de test :
TestDB avec une table : Employee. Créez la table avec trois colonnes, ID,
FirstName et LastName.

b. Définissez ID en tant que clé primaire.

c. Insérez deux enregistrements avec les données suivantes.

id FIRSTNAME LASTNAME

1 John Doe

2 Jane Doe

d. Faites glisser le composant Source OLE DB de la Boîte à outils SSIS vers le


Concepteur de flux de données.

e. Configurez le composant pour extraire les données de la table Employee dans


la base de données TestDB . Sélectionnez (local).TestDB pour le Gestionnaire
de connexions OLE DB, Table ou vue pour le Mode d’accès aux données, et
[dbo].[Employee] pour Nom de la table ou de la vue.
6. À présent, faites glisser Data Streaming Destination de la boîte à outils vers le flux
de données. Vous trouverez ce composant dans la section Commun de la boîte à
outils.

7. Connectez le composant Source OLE DB du flux de données au composant Data


Streaming Destination .

8. Créez et déployez le projet SSIS dans le catalogue SSIS.

a. Dans la barre de menus, cliquez sur Projet , puis sur Déployer.

b. Suivez les instructions de l’Assistant pour déployer le projet dans le catalogue


SSIS sur le serveur de base de données local. L’exemple suivant utilise Power BI
comme nom de dossier et SSISPackagePublishing comme nom de projet dans
le catalogue SSIS.

Étape 2 : utiliser l’Assistant Publication de flux


de données SSIS pour publier le package SSIS
en tant que vue SQL
Au cours de cette étape, vous utilisez l’Assistant Publication de flux de données SQL
Server Integration Services (SSIS) pour publier le package SSIS en tant que vue dans une
base de données SQL Server. Les données de sortie du package peuvent être
consommées par l’interrogation de cette vue.

L’Assistant Publication de flux de données SSIS crée un serveur lié à l’aide du fournisseur
OLE DB pour SSIS (SSISOLEDB), puis crée une vue SQL qui se compose d’une requête sur
le serveur lié. Cette requête inclut le nom du dossier, le nom du projet et le nom du
package dans le catalogue SSIS.

Au moment de l’exécution, la vue envoie la requête au fournisseur OLE DB pour SSIS à


l’aide du serveur lié que vous avez créé. Le fournisseur OLE DB pour SSIS exécute le
package que vous avez spécifié dans la requête, puis retourne le jeu de résultats
tabulaire à la requête.

1. Lancez l’Assistant Publication de flux de données SSIS en exécutant


ISDataFeedPublishingWizard.exe depuis C:\Program Files\Microsoft SQL
Server\130\DTS\Binn ou en cliquant sur Microsoft SQL Server 2016\Assistant
Publication de flux de données de SQL Server 2016 sous Démarrer\Tous les
programmes.

2. Cliquez sur Suivant dans la page Introduction .

3. Dans la page Paramètres du package , effectuez les tâches suivantes :

a. Tapez le nom de l’instance SQL Server qui contient le catalogue SSIS, ou cliquez
sur Parcourir pour sélectionner le serveur.
b. Cliquez sur Parcourir en regard du champ Chemin, parcourez le catalogue SSIS,
sélectionnez le packages SSIS à publier (par exemple : SSISDB-
>SSISPackagePublishing->Package.dtsx), puis cliquez sur OK.
c. À l’aide des onglets Paramètres du package, Paramètres du projet et
Gestionnaires de connexions situés au bas de la page, entrez les valeurs
appropriées pour les paramètres de package, les paramètres de projet ou les
paramètres de gestionnaires de connexions du package. Vous pouvez
également indiquer une référence d’environnement à utiliser pour l’exécution
du package, et lier les paramètres de package/projet aux variables
d’environnement.

Nous vous recommandons de lier les paramètres sensibles aux variables


d’environnement. Cela vous permet de vous assurer que la valeur d’un
paramètre sensible n’est pas stockée au format texte brut dans la vue SQL créée
par l’Assistant.

d. Cliquez sur Suivant pour passer à la page Paramètres de publication .

4. Dans la page Paramètres de publication , effectuez les tâches suivantes :

a. Sélectionnez la base de données correspondant à la vue à créer.

b. Tapez un nom pour la vue. Vous pouvez également sélectionner une vue
existante dans la liste déroulante.
c. Dans la liste Paramètres , spécifiez le nom du serveur lié à associer à la vue. S’il
n’existe pas déjà de serveur lié, l’Assistant le crée avant de créer la vue. Vous
pouvez également définir ici des valeurs pour User32BitRuntime et Timeout .

d. Cliquez sur le bouton Avancé . Vous devez voir la boîte de dialogue Paramètres
avancés .

e. Dans la boîte de dialogue Paramètres avancés , procédez comme suit :

i. Spécifiez le schéma de la base de données dans lequel vous souhaitez créer


la vue (champ Schéma).

ii. Spécifiez si les données doivent être chiffrées avant d’être envoyées sur le
réseau (champ Chiffrer). Consultez la rubrique Utilisation du chiffrement sans
validation pour plus d’informations sur ce paramètre et sur le paramètre
TrustServerCertificate.

iii. Spécifiez si un certificat de serveur auto-signé peut être utilisé quand le


paramètre de chiffrement est activé (champTrustServerCertificate ).

iv. Cliquez sur OK pour fermer la boîte de dialogue Paramètres avancés .

f. Cliquez sur Suivant pour passer à la page Validation .

5. Dans la page Validation , passez en revue les résultats de la validation des valeurs
pour tous les paramètres. Dans l’exemple suivant, vous voyez un avertissement
concernant l’existence d’un serveur lié, car celui-ci n’existe pas sur l’instance SQL
Server sélectionnée. Si vous voyez Erreur pour Résultat, pointez sur Erreur pour
voir les détails de l’erreur. Par exemple, si vous n’avez pas activé l’option Autoriser
inprocess pour le fournisseur SSISOLEDB, vous obtenez une erreur pour l’action de
configuration du serveur lié.
6. Pour enregistrer ce rapport en tant que fichier XML, cliquez sur Enregistrer le
rapport.

7. Cliquez sur Suivant dans la page Validation pour passer à la page Résumé .

8. Vérifiez votre sélection dans la page Résumé , puis cliquez sur Publier pour
démarrer le processus de publication. Celui-ci permet de créer le serveur lié, s’il
n’existe pas déjà, puis de créer la vue à l’aide du serveur lié.
Vous pouvez désormais interroger les données de sortie du package en exécutant
l’instruction SQL suivante sur la base de données TestDB : SELECT * FROM
[SSISPackageView].

9. Pour enregistrer ce rapport en tant que fichier XML, cliquez sur Enregistrer le
rapport.

10. Passez en revue les résultats du processus de publication, puis cliquez sur Terminer
pour fermer l’Assistant.

7 Notes

Les types de données suivants ne sont pas pris en charge : text, ntext, image,
nvarchar(max), varchar(max) et varbinary(max).

Étape 3 : tester la vue SQL


Au cours de cette étape, vous allez exécuter la vue SQL créée par l’Assistant Publication
de flux de données SSIS.

1. Lancez SQL Server Management Studio.

2. Développez <nom de machine>, Bases de données, <base de données


sélectionnée dans l’Assistant>, et Vues.

3. Cliquez avec le bouton droit sur la <vue créée par l’Assistant>, puis cliquez sur
Sélectionner les 1 000 premières lignes.

4. Vérifiez que vous voyez bien les résultats du package SSIS.

Étape 4 : vérifier l’exécution du Package SSIS


Au cours de cette étape, vous allez vérifier que le package SSIS s’est bien exécuté.

1. Dans SQL Server Management Studio, développez Catalogues Integration


Services, développez SSISDB, développez le dossier où se trouve votre projet SSIS,
développez Projets, développez votre nœud de projet, puis développez Packages.

2. Cliquez avec le bouton droit sur le package SSIS, pointez sur Rapports, pointez sur
Rapports standard, puis cliquez sur Toutes les exécutions.

3. Vous devez voir l’exécution du package SSIS dans le rapport.

7 Notes

Sur un ordinateur doté de Windows Vista Service Pack 2, vous pouvez


éventuellement voir deux exécutions de package SSIS dans le rapport, l’une
réussie, l’autre non. Ignorez l’échec d’exécution, car il est provoqué par un
problème connu dans cette version.

En savoir plus
L’Assistant Publication de flux de données effectue les étapes importantes suivantes :

1. Il crée un serveur lié et le configure pour utiliser le fournisseur OLE DB pour SSIS.

2. Il crée une vue SQL dans la base de données spécifiée, qui interroge le serveur lié
sur les informations de catalogue du package sélectionné.
Cette section contient les procédures nécessaires pour la création d’un serveur lié et
d’une vue SQL sans l’aide de l’Assistant Publication de flux de données. Elle contient
également des informations supplémentaires sur l’utilisation de la fonction OPENQUERY
avec le fournisseur OLE DB pour SSIS.

Créer un serveur lié à l’aide du fournisseur OLE DB pour


SSIS
Créez un serveur lié à l’aide du fournisseur OLE DB pour SSIS (SSISOLEDB) en exécutant
la requête suivante dans SQL Server Management Studio.

SQL

USE [master]
GO

EXEC sp_addlinkedserver
@server = N'SSISFeedServer',
@srvproduct = N'Microsoft',
@provider = N'SSISOLEDB',
@datasrc = N'.'
GO

Créer une vue à l’aide du serveur lié et des informations


du catalogue SSIS
Au cours de cette étape, vous allez créer une vue SQL qui exécute une requête sur le
serveur lié que vous avez créé dans la section précédente. La requête inclut le nom du
dossier, le nom du projet et le nom du package dans le catalogue SSIS.

Au moment de l’exécution, quand la vue est exécutée, la requête de serveur lié définie
dans la vue démarre le package SSIS spécifié dans la requête, puis reçoit la sortie du
package sous forme de jeu de résultats tabulaire.

1. Avant de créer la vue, tapez et exécutez la requête suivante dans la nouvelle


fenêtre de requête. OPENQUERY est une fonction d’ensemble de lignes prise en
charge par SQL Server. Elle exécute la requête directe indiquée sur le serveur lié
spécifié à l’aide du fournisseur OLE DB associé au serveur lié. Il est possible de
référencer OPENQUERY dans la clause FROM d’une requête SELECT comme s’il
s’agissait du nom d’une table. Consultez la documentation OPENQUERY sur MSDN
Library pour plus d’informations.
SQL

SELECT * FROM
OPENQUERY(SSISFeedServer,N'Folder=Eldorado;Project=SSISPackagePublishin
g;Package=Package.dtsx')
GO

) Important

Mettez à jour le nom du dossier, le nom du projet et le nom du package, le


cas échéant. En cas d’échec de la fonction OPENQUERY, dans SQL Server
Management Studio, développez Objets serveur, développez Serveurs liés,
développez Fournisseurs, double-cliquez sur le fournisseur SSISOLEDB, puis
assurez-vous que l’option Autoriser inprocess est activée.

2. Créez une vue dans la base de données TestDB pour les besoins de cette
procédure pas à pas en exécutant la requête suivante.

SQL

USE [TestDB]
GO

CREATE VIEW SSISPackageView AS


SELECT * FROM OPENQUERY(SSISFeedServer,
'Folder=Eldorado;Project=SSISPackagePublishing;Package=Package.dtsx')
GO

3. Testez la vue en exécutant la requête suivante.

SQL

SELECT * FROM SSISPackageView

Fonction OPENQUERY
Syntaxe de la fonction OPENQUERY :

SQL

SELECT * FROM OPENQUERY(<LinkedServer Name>, N'Folder=<Folder Name from SSIS


Catalog>; Project=<SSIS Project Name>; Package=<SSIS Package Name>;
Use32BitRuntime=[True | False];Parameters="<parameter_name_1>=<value1>;
parameter_name_2=<value2>";Timeout=<Number of Seconds>;')

Les paramètres Folder, Project et Package sont obligatoires. Use32BitRuntime, Timeout


et Parameters sont facultatifs.

Use32BitRuntime peut avoir la valeur 0, 1, true ou false. Il indique si le package doit être
exécuté avec le runtime 32 bits (1 ou true) quand la plateforme de SQL Server est de
type 64 bits.

Timeout indique le délai d’attente en secondes du fournisseur OLE DB pour SSIS avant
l’arrivée de nouvelles données en provenance du package SSIS. Par défaut, le délai
d’expiration est de 60 secondes. Vous pouvez spécifier une valeur entière pour indiquer
un délai d’attente compris entre 20 et 32 000.

Parameters contient la valeur des paramètres du package et des paramètres du projet.


Les règles des paramètres sont les mêmes que celles des paramètres dans DTExec.

La liste suivante indique les caractères spéciaux autorisés dans la clause de requête :

Guillemet simple (') - Pris en charge par la fonction OPENQUERY standard. Si vous
souhaitez utiliser le guillemet simple dans la clause de requête, utilisez deux
guillemets simples ('').

Guillemet (") - La partie relative aux paramètres de la requête est placée entre
guillemets. Si une valeur de paramètre contient elle-même un guillemet, utilisez le
caractère d’échappement. Par exemple : ".

Crochets gauche et droit ([ et ]) - Ces caractères sont utilisés pour indiquer les
espaces de début/de fin. Par exemple, « [ des espaces ] » représente la chaîne
« des espaces » avec un espace de début et un espace de fin. Si ces caractères sont
eux-mêmes utilisés dans la clause de requête, ils doivent faire l’objet d’une
séquence d’échappement. Exemple : \[ et \].

Barre oblique inverse (\) - Chaque caractère \ utilisé dans la clause de la requête
doit être précédé du caractère d’échappement. Par exemple, \\ est évalué en tant
que \ dans la clause de requête.

Voir aussi
Data Streaming Destination
Configurer Data Streaming Destination
destination DataReader
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination DataReader expose les données d’un flux à l’aide de l’interface


DataReader ADO.NET. Les données peuvent ensuite être utilisées par d'autres
applications. Vous pouvez par exemple configurer la source de données d’un rapport
Reporting Services de sorte qu’elle utilise le résultat d’exécution d’un package Microsoft
SQL Server Integration Services. Pour ce faire, vous devez créer un flux qui implémente
la destination DataReader.

Pour plus d’informations sur l’accès aux valeurs de la destination DataReader et sur leur
lecture par programmation, consultez Chargement de la sortie d’un package local.

Configuration de la destination DataReader


Vous pouvez spécifier une valeur de délai d'attente de la destination DataReader et
indiquer si la destination doit échouer en cas de dépassement de délai. Un délai
d'attente est dépassé si l'application ne demande aucune donnée dans le délai spécifié.

La destination DataReader possède une entrée. Elle ne prend pas en charge de sortie
d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans la boîte de dialogue
Éditeur avancé ou par programmation, cliquez sur l'une des rubriques suivantes :

Propriétés communes

Propriétés personnalisées de la destination DataReader

Pour plus d’informations sur la façon de définir les propriétés, consultez Définir les
propriétés d’un composant de flux de données.
Propriétés personnalisées de la
destination DataReader
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination DataReader comporte à la fois des propriétés personnalisées et les


propriétés communes à l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la destination DataReader.


Toutes les propriétés sont en lecture/écriture, à l’exception de DataReader .

Nom de la Type de Description


propriété données

DataReader String Nom de classe de la destination DataReader.

FailOnTimeout Boolean Indique s’il faut faire échouer l’opération ou non quand un
ReadTimeout se produit. La valeur par défaut de cette propriété est
False.

ReadTimeout Integer Nombre de millisecondes devant s'écouler avant l'expiration du délai


d'attente. La valeur par défaut de cette propriété est 30000 (30
secondes).

L'entrée et les colonnes d'entrée de la destination DataReader ne disposent pas de


propriétés personnalisées.

Pour plus d’informations, consultez Destination DataReader.

Voir aussi
Propriétés communes
Destination de traitement de dimension
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination de traitement de dimension charge et traite une dimension SQL Server


Analysis Services. Pour plus d’informations sur les dimensions, consultez Dimensions
(Analysis Services - Données multidimensionnelles).

La destination de traitement de dimension regroupe les fonctionnalités suivantes :

options permettant de choisir entre un traitement incrémentiel, un traitement


complet ou un traitement de mise à jour ;

configuration d'erreur, permettant de spécifier si le traitement de dimension


ignore les erreurs ou s'arrête après un nombre spécifique d'erreurs ;

mappage des colonnes d'entrée aux colonnes des tables de dimension.

Pour plus d’informations sur le traitement des objets Analysis Services, consultez
Options et paramètres de traitement (Analysis Services).

Configuration de la destination de traitement


de dimension
La destination de traitement de dimension utilise un gestionnaire de connexions
Analysis Services pour se connecter au projet Analysis Services ou à l'instance de
Analysis Services qui contient les dimensions traitées par la destination. Pour plus
d'informations, consultez Analysis Services Connection Manager.

Cette destination comporte une entrée. Elle ne prend pas en charge de sortie d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d’informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l’une des rubriques
suivantes :

Propriétés communes
Pour plus d’informations sur la façon de définir des propriétés, consultez Définir les
propriétés d’un composant de flux de données.

Éditeur de destination de traitement de


dimension (page Gestionnaire de connexions)
La page Gestionnaire de connexions de la boîte de dialogue Éditeur de destination de
traitement de dimension vous permet de spécifier une connexion à un projet SQL
Server Analysis Services ou à une instance de Analysis Services.

Options
Connection manager
Sélectionnez un gestionnaire de connexions existant dans la liste ou cliquez sur
Nouveau pour créer un gestionnaire de connexions.

Nouveau
Créez une connexion à l’aide de la boîte de dialogue Ajout d’un gestionnaire de
connexions Analysis Services .

Liste des dimensions disponibles


Sélectionnez la dimension à traiter.

Méthode de traitement
Sélectionnez la méthode de traitement à appliquer à la dimension sélectionnée dans la
liste. La valeur par défaut de cette option est Complète.

Value Description

Ajouter (incrémentiel) Permet d'effectuer un traitement incrémentiel de la dimension.

Complète Permet d'effectuer un traitement complet de la dimension.

Mettre à jour Permet d'effectuer un traitement de mise à jour de la dimension.

Éditeur de destination de traitement de


dimension (page Mappages)
Utilisez la page Mappages de la boîte de dialogue Éditeur de destination de traitement
de dimension pour mapper des colonnes d'entrée à des colonnes de dimension.
Options
Colonnes d'entrée disponibles
Affichez la liste des colonnes d'entrée disponibles. Au moyen du glisser-déplacer,
mappez les colonnes d'entrée disponibles dans la table sur des colonnes de destination.

Colonnes de destination disponibles


Affichez la liste des colonnes de destination disponibles. Utilisez une opération de
glisser-déplacer pour mapper les colonnes de destination disponibles dans la table aux
colonnes d'entrée.

Colonne d'entrée
Affiche les colonnes d'entrée sélectionnées dans le tableau ci-dessus. Vous pouvez
modifier les mappages au moyen de la liste Colonnes d'entrée disponibles.

Colonne de destination
Affiche chaque colonne de destination disponible et indique si elle est mappée ou non.

Éditeur de destination de traitement de


dimension (page Avancé)
Utilisez la page Avancé de la boîte de dialogue Éditeur de destination de traitement de
dimension pour configurer la gestion des erreurs.

Options
Utiliser la configuration d'erreur par défaut
Indiquez si vous voulez utiliser la gestion des erreurs par défaut d' Analysis Services . Par
défaut, cette valeur est définie sur True.

Action pour l'erreur de clé


Indiquez comment traiter les enregistrements dont les valeurs de clé ne sont pas
acceptables.

Value Description

ConvertToUnknown Convertir la valeur de clé non acceptable en valeur inconnue (


UnknownMember ).

DiscardRecord Ignorer l'enregistrement.

Ignorer les erreurs


Spécifiez que les erreurs doivent être ignorées.
Arrêter en cas d'erreur
Spécifiez que le traitement doit s'arrêter lorsqu'une erreur se produit.

Nombre d’erreurs
Spécifiez le seuil d’erreurs au-delà duquel le traitement doit s’arrêter, si vous avez
sélectionné Arrêter en cas d’erreur.

Action pour l'erreur


Indiquez l’action à appliquer quand le seuil d’erreurs est atteint, si vous avez sélectionné
Arrêter en cas d’erreur.

Value Description

StopProcessing Arrêter le traitement.

StopLogging Arrêter d'enregistrer les erreurs.

Clé introuvable
Indiquez l'action à appliquer en cas d'erreur de clé introuvable. Par défaut, cette valeur
est définie sur ReportAndContinue.

Value Description

IgnoreError Ignorer l'erreur et continuer le traitement.

ReportAndContinue Signaler l'erreur et continuer le traitement.

ReportAndStop Signaler l'erreur et arrêter le traitement.

Clé dupliquée
Indiquez l'action à appliquer en cas d'erreur de clé dupliquée. Par défaut, cette valeur
est définie sur IgnoreError.

Value Description

IgnoreError Ignorer l'erreur et continuer le traitement.

ReportAndContinue Signaler l'erreur et continuer le traitement.

ReportAndStop Signaler l'erreur et arrêter le traitement.

Clé NULL convertie en clé inconnue


Indiquez l’action à appliquer quand une clé NULL a été convertie en clé inconnue (
UnknownMember ). Par défaut, cette valeur est définie sur IgnoreError.

Value Description
Value Description

IgnoreError Ignorer l'erreur et continuer le traitement.

ReportAndContinue Signaler l'erreur et continuer le traitement.

ReportAndStop Signaler l'erreur et arrêter le traitement.

Clé NULL non autorisée


Indiquez l'action à appliquer si une clé NULL est trouvée alors que les clés NULL ne sont
pas autorisées. Par défaut, cette valeur est définie sur ReportAndContinue.

Value Description

IgnoreError Ignorer l'erreur et continuer le traitement.

ReportAndContinue Signaler l'erreur et continuer le traitement.

ReportAndStop Signaler l'erreur et arrêter le traitement.

Chemin d'accès du journal des erreurs


Tapez le chemin du journal des erreurs ou cliquez sur le bouton Parcourir (...) pour
sélectionner une destination.

Parcourir (...)
Sélectionnez le chemin d'accès du journal des erreurs.

Voir aussi
Flux de données
Transformations Integration Services
Propriétés personnalisées de la
destination de traitement de dimension
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination de traitement de dimension comporte à la fois des propriétés


personnalisées et les propriétés communes à l'ensemble des composants de flux de
données.

Le tableau suivant décrit les propriétés personnalisées de la destination de traitement de


dimension. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

ASConnectionString String Chaîne de connexion d'une instance de Analysis


Services ou d'un projet Analysis Services .

KeyDuplicate Integer Quand UseDefaultConfiguration a la valeur


(énumération) False, valeur qui indique comment gérer les
erreurs de clé en double. Les valeurs possibles
sont IgnoreError (0), ReportAndContinue (1) et
ReportAndStop (2). La valeur par défaut de
cette propriété est IgnoreError (0).

KeyErrorAction Integer Quand UseDefaultConfiguration a la valeur


(énumération) False, valeur qui indique comment gérer les
erreurs de clé. Les valeurs possibles sont
ConvertToUnknown (0) et DiscardRecord (1). La
valeur par défaut de cette propriété est
ConvertToUnknown (0).

KeyErrorLimit Integer Quand UseDefaultConfiguration a la valeur


False, limite supérieure des erreurs de clé
activées.

KeyErrorLimitAction Integer Quand UseDefaultConfiguration a la valeur


(énumération) False, valeur qui indique l’action à entreprendre
quand la limite KeyErrorLimit est atteinte. Les
valeurs possibles sont StopLogging (1) et
StopProcessing (0). La valeur par défaut de cette
propriété est StopProcessing (0).
Propriété Type de Description
données

KeyErrorLogFile String Quand UseDefaultConfiguration a la valeur


False, chemin et nom du fichier journal des
erreurs.

KeyNotFound Integer Quand UseDefaultConfiguration a la valeur


(énumération) False, valeur qui indique comment gérer les
erreurs de clé manquante. Les valeurs possibles
sont IgnoreError (0), ReportAndContinue (1) et
ReportAndStop (2). La valeur par défaut de
cette propriété est IgnoreError (0).

NullKeyConvertedToUnknown Integer Quand UseDefaultConfiguration a la valeur


(énumération) False, valeur qui indique comment gérer les clés
null converties en valeur inconnue. Les valeurs
possibles sont IgnoreError (0),
ReportAndContinue (1) et ReportAndStop (2).
La valeur par défaut de cette propriété est
IgnoreError (0).

NullKeyNotAllowed Integer Quand UseDefaultConfiguration a la valeur


(énumération) False, valeur qui indique comment gérer les clés
null non autorisées. Les valeurs possibles sont
IgnoreError (0), ReportAndContinue (1) et
ReportAndStop (2). La valeur par défaut de
cette propriété est IgnoreError (0).

ProcessType Integer Type de traitement de dimension que la


(énumération) transformation utilise. Les valeurs sont
ProcessAdd (1) (incrémentiel), ProcessFull (0) et
ProcessUpdate (2).

UseDefaultConfiguration Booléen Valeur qui spécifie si la transformation utilise la


configuration d'erreur par défaut. Si cette
propriété a la valeur False, la transformation
inclut des informations sur le traitement des
erreurs.

L'entrée et les colonnes d'entrée de la destination de traitement de dimension ne


disposent pas de propriétés personnalisées.

Pour plus d’informations, consultez Destination de traitement de dimension.

Voir aussi
Propriétés communes
Source Excel
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La source Excel extrait des données de feuilles de calcul ou de plages dans des classeurs
Microsoft Excel.

) Important

Pour obtenir des informations détaillées sur la connexion à des fichiers Excel, et sur
les limitations et les problèmes connus liés au chargement de données depuis ou
vers des fichiers Excel, consultez Charger des données depuis ou vers Excel avec
SQL Server Integration Services (SSIS).

Modes d'accès
La source Excel fournit quatre modes d'accès aux données différents pour l'extraction
des données :

Une table ou une vue.

Une table ou une vue spécifiée dans une variable.

Les résultats d'une instruction SQL. La requête peut être une requête paramétrable.

Les résultats d'une instruction SQL stockée dans une variable.

La source Excel utilise à un gestionnaire de connexions Excel pour se connecter à une


source de données ; ce gestionnaire spécifie le classeur à utiliser. Pour plus
d'informations, consultez Excel Connection Manager.

La source Excel a une sortie normale et une sortie d'erreur.

Configuration d'une source Excel


Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète toutes les propriétés qui peuvent être
définies par programmation. Pour plus d'informations sur les propriétés définissables
dans la boîte de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des
rubriques suivantes :

Propriétés communes

Propriétés personnalisées d'Excel

Pour plus d’informations sur le bouclage dans un groupe de fichiers Excel, consultez
Effectuer une boucle dans des fichiers et des tables Excel en utilisant un conteneur de
boucles Foreach.

Éditeur de source Excel (page Gestionnaire de


connexions)
Le nœud Gestionnaire de connexions de la boîte de dialogue Éditeur de source Excel
vous permet de sélectionner le classeur Microsoft Excel de la source à utiliser. La source
Excel lit les données à partir d'une feuille de calcul ou d'une plage nommée dans un
classeur existant.

7 Notes

La propriété CommandTimeout de la source Excel n’est pas disponible dans


l’Éditeur de source Excel, mais peut être définie à l’aide de l’Éditeur avancé. Pour
plus d’informations sur cette propriété, consultez la section sur la source Excel dans
Propriétés personnalisées d’Excel.

Options statiques
Gestionnaire de connexions OLE DB
Sélectionnez un gestionnaire de connexions Excel existant dans la liste ou créez une
connexion en cliquant sur Nouveau.

Nouveau
Créez un gestionnaire de connexions à l’aide de la boîte de dialogue Gestionnaire de
connexions Excel .

Mode d'accès aux données


Spécifiez la méthode de sélection des données dans la source.

Valeur Description
Valeur Description

Table ou vue Récupérez des données à partir d'une feuille de calcul ou d'une
plage nommée dans le fichier Excel.

Variable de nom de table Spécifiez le nom de la feuille de calcul ou de la plage dans une
ou de vue variable.

Informations connexes :Utiliser des variables dans des packages

Commande SQL Récupérez des données à partir du fichier Excel à l'aide d'une
requête SQL.

Commande SQL à partir Spécifiez le texte de la requête SQL dans une variable.
d'une variable

Préversion
Affichez un aperçu des résultats à l’aide de la boîte de dialogue Vue de données .
L'aperçu peut afficher jusqu'à 200 lignes.

Options dynamiques du mode d'accès aux données

Mode d'accès aux données = Table ou vue


Nom de la feuille Excel
Sélectionnez le nom de la feuille de calcul ou de la plage nommée dans la liste des
éléments disponibles dans le classeur Excel.

Mode d'accès aux données = Variable de nom de table ou de vue


Nom de la variable
Sélectionnez la variable contenant le nom de la feuille de calcul ou de la plage nommée.

Mode d'accès aux données = Commande SQL


Texte de la commande SQL
Entrez le texte d’une requête SQL, créez la requête en cliquant sur Générer une
requêteou parcourez l’arborescence jusqu’au fichier qui contient le texte de la requête
en cliquant sur Parcourir.

Paramètres
Si vous avez entré une requête paramétrable en spécifiant ? comme espace réservé de
paramètre dans le texte de la requête, utilisez la boîte de dialogue Définition des
paramètres de la requête pour mapper des paramètres d’entrée de la requête à des
variables du package.

Construire une requête


Utilisez la boîte de dialogue Générateur de requêtes pour construire la requête SQL
visuellement.

Parcourir
Dans la boîte de dialogue Ouvrir , localisez le fichier qui contient le texte de la requête
SQL.

Analyser la requête
Vérifiez la syntaxe du texte de la requête.

Mode d'accès aux données = Commande SQL à partir d'une


variable

Nom de la variable
Sélectionnez la variable qui contient le texte de la requête SQL.

Éditeur de source Excel (page Colonnes)


La page Colonnes de la boîte de dialogue Éditeur de source Excel vous permet de
mapper une colonne de sortie à chaque colonne externe (source).

Options
Colonnes externes disponibles
Affiche la liste des colonnes externes disponibles dans la source de données. Vous ne
pouvez pas ajouter ou supprimer des colonnes à l'aide de cette table.

Colonne externe
Affiche les colonnes externes (sources) dans l'ordre de lecture de la tâche. Vous pouvez
modifier cet ordre en désactivant les colonnes sélectionnées dans la table mentionnée
ci-dessus, puis en sélectionnant les colonnes externes dans la liste, dans un ordre
différent.

Colonne de sortie
Spécifiez un nom unique pour chaque colonne de sortie. Le nom par défaut est celui de
la colonne externe (source) sélectionnée ; vous pouvez néanmoins choisir n'importe quel
nom unique et significatif. Le nom fourni sera affiché dans le concepteur SSIS .
Éditeur de source Excel (page Sortie d'erreur)
La page Sortie d’erreur de la boîte de dialogue Éditeur de source Excel vous permet de
sélectionner les options de gestion des erreurs et de définir les propriétés sur les
colonnes de sortie d’erreur.

Options
Entrée ou Sortie
Affichez le nom de la source de données.

Colonne
Indique les colonnes externes (source) que vous avez sélectionnées à la page
Gestionnaire de connexions de la boîte de dialogue Éditeur de source Excel.

Error
Indiquez ce qui doit se produire lorsqu'une erreur se produit : ignorer l'échec, rediriger
la ligne ou faire échouer le composant.

Rubriques connexes :Gestion des erreurs dans les données

Troncation
Indiquez ce qui doit se produire lorsqu'une troncation se produit : ignorer l'échec,
rediriger la ligne ou faire échouer le composant.

Description
Affiche la description de l'erreur.

Définir cette valeur sur les cellules sélectionnées


Indiquez ce qui doit se produire pour l'ensemble des cellules sélectionnées lorsqu'une
erreur ou une troncation se produit : ignorer l'échec, rediriger la ligne ou faire échouer
le composant.

Appliquer
Appliquez l'option de gestion des erreurs aux cellules sélectionnées.

Contenu associé
Charger des données depuis ou vers Excel avec SQL Server Integration Services (SSIS)
Destination Excel
Gestionnaire de connexions Excel
Destination Excel
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination Excel charge les données dans des feuilles de calcul ou des plages au sein
de classeurs Microsoft Excel.

) Important

Pour obtenir des informations détaillées sur la connexion à des fichiers Excel, et sur
les limitations et les problèmes connus liés au chargement de données depuis ou
vers des fichiers Excel, consultez Charger des données depuis ou vers Excel avec
SQL Server Integration Services (SSIS).

Modes d'accès
La destination Excel propose trois modes d'accès différents pour charger les données :

Une table ou une vue.

Une table ou une vue spécifiée dans une variable.

Les résultats d'une instruction SQL. La requête peut être une requête paramétrable.

Configurer la destination Excel


La destination Excel utilise un gestionnaire de connexions Excel pour se connecter à une
source de données et le gestionnaire de connexions indique le fichier de feuille de calcul
à utiliser. Pour plus d'informations, consultez Excel Connection Manager.

La destination Excel comporte une entrée normale et une sortie d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète toutes les propriétés qui peuvent être
définies par programmation. Pour plus d'informations sur les propriétés définissables
dans la boîte de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des
rubriques suivantes :
Propriétés communes

Propriétés personnalisées d'Excel

Pour plus d’informations sur la façon de définir les propriétés, consultez Définir les
propriétés d’un composant de flux de données.

Éditeur de destination Excel (page Gestionnaire


de connexions)
Utilisez la page Gestionnaire de connexions de la boîte de dialogue Éditeur de
destination Excel pour spécifier des informations sur la source de données et afficher un
aperçu des résultats. La destination Excel charge les données dans une feuille de calcul
ou dans une plage (de cellules) nommée d'un classeur Microsoft Excel .

7 Notes

La propriété CommandTimeout de la destination Excel n'est pas disponible dans l'


Éditeur de destination Excel, mais peut être définie à l'aide de l' Éditeur avancé. De
plus, certaines options de chargement rapide sont uniquement disponibles dans l'
Éditeur avancé. Pour plus d'informations sur ces propriétés, consultez la section sur
la destination Excel dans Excel Custom Properties.

Options statiques
Gestionnaire de connexions Excel
Sélectionnez un gestionnaire de connexions Excel existant dans la liste ou créez une
connexion en cliquant sur Nouveau.

Nouveau
Créez un gestionnaire de connexions à l’aide de la boîte de dialogue Gestionnaire de
connexions Excel .

Mode d'accès aux données


Spécifiez la méthode de sélection des données dans la source.

Option Description

Table ou vue Charge les données dans une feuille de calcul ou dans une plage
nommée de la source de données Excel.
Option Description

Variable de nom de Spécifiez le nom de la feuille de calcul ou de la plage dans une variable.
table ou de vue
Informations connexes : Utiliser des variables dans des packages

Commande SQL Charge les données dans la destination Excel à l'aide d'une requête
SQL.

Nom de la feuille Excel


Sélectionnez la destination Excel dans la liste déroulante. Si la liste est vide, cliquez sur
Nouveau.

Nouveau
Cliquez sur Nouveau pour ouvrir la boîte de dialogue Créer une table . Lorsque vous
cliquez sur OK, la boîte de dialogue crée le fichier Excel vers lequel le Gestionnaire de
connexions Excel pointe.

Afficher les données existantes


Affichez un aperçu des résultats à l’aide de la boîte de dialogue Visualiser les résultats
de la requête . L'aperçu peut afficher jusqu'à 200 lignes.

Options dynamiques du mode d'accès aux données

Mode d'accès aux données = Table ou vue


Nom de la feuille Excel
Sélectionnez le nom de la feuille de calcul ou de la plage nommée dans une liste des
feuilles ou plages disponibles dans la source de données.

Mode d'accès aux données = Variable de nom de table ou de vue


Nom de la variable
Sélectionnez la variable contenant le nom de la feuille de calcul ou de la plage nommée.

Mode d'accès aux données = Commande SQL


Texte de la commande SQL
Entrez le texte de la requête SQL, générez la requête en cliquant sur Générer la
requêteou cliquez sur Parcourirpour accéder au fichier contenant le texte de la requête.
Générer la requête
Utilisez la boîte de dialogue Générateur de requêtes pour construire la requête SQL
visuellement.

Parcourir
Dans la boîte de dialogue Ouvrir , localisez le fichier qui contient le texte de la requête
SQL.

Analyser la requête
Vérifiez la syntaxe du texte de la requête.

Éditeur de destination Excel (page Mappages)


Utilisez la page Mappages de la boîte de dialogue Éditeur de destination Excel pour
mapper des colonnes d'entrée à des colonnes de destination.

Options
Colonnes d'entrée disponibles
Affichez la liste des colonnes d'entrée disponibles. Au moyen du glisser-déplacer,
mappez les colonnes d'entrée disponibles dans la table sur des colonnes de destination.

Colonnes de destination disponibles


Affichez la liste des colonnes de destination disponibles. Utilisez une opération de
glisser-déplacer pour mapper les colonnes de destination disponibles dans la table aux
colonnes d'entrée.

Colonne d'entrée
Affiche les colonnes d'entrée sélectionnées dans le tableau ci-dessus. Vous pouvez
modifier les mappages au moyen de la liste Colonnes d'entrée disponibles.

Colonne de destination
Affiche chaque colonne de destination disponible, qu'elle soit mappée ou non.

Éditeur de destination Excel (page Sortie


d'erreur)
La page Avancé de la boîte de dialogue Éditeur de destination Excel vous permet de
spécifier les options de gestion des erreurs.

Options
Entrée ou Sortie
Affichez le nom de la source de données.

Colonne
Indique les colonnes (sources) externes que vous avez sélectionnées dans le nœud
Gestionnaire de connexions de la boîte de dialogue Éditeur de source Excel.

Error
Indiquez ce qui doit se produire lorsqu'une erreur se produit : ignorer l'échec, rediriger
la ligne ou faire échouer le composant.

Rubriques connexes :Gestion des erreurs dans les données

Troncation
Indiquez ce qui doit se produire lorsqu'une troncation se produit : ignorer l'échec,
rediriger la ligne ou faire échouer le composant.

Description
Affiche la description de l'erreur.

Définir cette valeur sur les cellules sélectionnées


Indiquez ce qui doit se produire pour l'ensemble des cellules sélectionnées lorsqu'une
erreur ou une troncation se produit : ignorer l'échec, rediriger la ligne ou faire échouer
le composant.

Appliquer
Appliquez l'option de gestion des erreurs aux cellules sélectionnées.

Voir aussi
Charger des données depuis ou vers Excel avec SQL Server Integration Services (SSIS)
Source Excel
Gestionnaire de connexions Excel
Propriétés personnalisées d'Excel
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Propriétés personnalisées des sources

La source Excel comporte des propriétés personnalisées et les propriétés communes à


l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la source Excel. Toutes les
propriétés sont en lecture/écriture.

Nom de la Type de Description


propriété données

AccessMode Integer Mode utilisé pour accéder à la base de données. Les valeurs
possibles sont Open Rowset, OpenRowset à partir de
Variable, Commande SQLet Commande SQL à partir d'une
variable. La valeur par défaut est Open Rowset.

CommandTimeout Integer Nombre de secondes accordées comme délai d'exécution


d'une commande. Une valeur égale à 0 indique un délai
illimité.

Remarque Cette propriété n’est pas disponible dans l’ Éditeur


de source Excel, mais elle peut être définie à l’aide de l’
Éditeur avancé.

OpenRowset String Nom de l'objet de base de données utilisé pour ouvrir un


ensemble de lignes.

OpenRowsetVariable String Variable qui contient le nom de l'objet de base de données


utilisé pour ouvrir un ensemble de lignes.

ParameterMapping String Mappage des paramètres de la commande SQL en variables.

SqlCommand String Commande SQL à exécuter.

SqlCommandVariable String Variable qui contient la commande SQL à exécuter.

La sortie et les colonnes de sortie de la source Excel ne disposent pas de propriétés


personnalisées.

Pour plus d’informations, consultez Source Excel.

Propriétés personnalisées des destinations


La destination Excel comporte à la fois des propriétés personnalisées et les propriétés
communes à l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la destination Excel. Toutes les
propriétés sont en lecture/écriture.

Nom de la propriété Type de Description


données

AccessMode Integer Valeur qui spécifie la manière dont la


(énumération) destination accède à sa base de données de
destination.

Cette propriété peut prendre les valeurs


suivantes :

OpenRowset (0) : vous devez fournir le nom


d’une table ou d’une vue.

OpenRowset à partir de Variable (1) : vous


devez fournir le nom d’une variable qui contient
le nom d’une table ou d’une vue.

OpenRowset à l’aide de FastLoad (3) : vous


devez fournir le nom d’une table ou d’une vue.

OpenRowset à l’aide de FastLoad à partir de


Variable (4) : vous devez fournir le nom d’une
variable qui contient le nom d’une table ou
d’une vue.

Commande SQL (2) : vous devez fournir une


instruction SQL.

CommandTimeout Integer Nombre maximal de secondes pendant


lesquelles la commande SQL peut être exécutée
avant d'arriver à expiration. Une valeur égale à
0 indique une durée illimitée. La valeur par
défaut de cette propriété est 0.

Remarque : Cette propriété n’est pas disponible


dans l’ Éditeur de destination Excel, mais peut
être définie à l’aide de l’ Éditeur avancé.
Nom de la propriété Type de Description
données

FastLoadKeepIdentity Booléen Valeur spécifiant si les valeurs d'identité doivent


être copiées lors du chargement des données.
Cette propriété est disponible uniquement
lorsque vous utilisez l'une des options de
chargement rapide. La valeur par défaut de
cette propriété est False.

FastLoadKeepNulls Booléen Valeur spécifiant si les valeurs NULL doivent


être copiées lors du chargement des données.
Cette propriété est disponible uniquement avec
l'une des options de chargement rapide. La
valeur par défaut de cette propriété est False.

FastLoadMaxInsertCommitSize Integer Valeur qui spécifie la taille du lot que la


destination Excel tente de valider au cours des
opérations de chargement rapide. La valeur par
défaut est 2147483647. La valeur 0 indique une
opération de validation simple après le
traitement de toutes les lignes.

FastLoadOptions String Collection d'options de chargement rapide. Les


options de chargement rapide incluent le
verrouillage des tables et la vérification des
contraintes. Vous pouvez spécifier une de ces
options, les deux ou ni l'une ni l'autre.

Remarque : certaines options de cette propriété


ne sont pas disponibles dans l’Éditeur de
destination Excel, mais vous pouvez les définir
à l’aide de l’éditeur avancé.

OpenRowset String Quand AccessMode a la valeur OpenRowset,


nom de la table ou de la vue à laquelle la
destination Excel a accès.

OpenRowsetVariable String Quand AccessMode a la valeur OpenRowset à


partir de Variable, nom de la variable contenant
le nom de la table ou de la vue à laquelle la
destination Excel a accès.

SqlCommand String Quand AccessMode a la valeur Commande


SQL, instruction Transact-SQL que la destination
Excel utilise pour spécifier les colonnes de
destination pour les données.

L'entrée et les colonnes d'entrée de la destination Excel ne disposent pas de propriétés


personnalisées.
Pour plus d’informations, consultez Destination Excel.

Voir aussi
Propriétés communes
Charger des données depuis ou vers Excel avec SQL Server Integration Services (SSIS)
Source de fichier plat
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La source de fichier plat lit des données figurant dans un fichier texte. Le fichier texte
peut être d'un format délimité, à largeur fixe ou mixte.

Le format délimité utilise des séparateurs de colonnes et de lignes pour définir les
colonnes et les lignes.

Le format de largeur fixe utilise la largeur pour définir les colonnes et les lignes. Ce
format comprend également un caractère qui permet de remplir les champs dans
la limite de leur largeur maximale.

Le format non justifié à droite utilise la largeur pour définir toutes les colonnes, à
l'exception de la dernière colonne, qui est délimitée par le séparateur de lignes.

Vous pouvez configurer la source de fichier plat comme suit :

Ajoutez une colonne à la sortie de transformation qui contient le nom du fichier


texte dont la source de fichier plat extrait les données.

Spécifiez si la source de fichier plat interprète les chaînes nulles dans les colonnes
en tant que valeurs NULL.

7 Notes

Le gestionnaire de connexions de fichiers plats utilisé par la source de fichier


plat doit être configuré de manière à utiliser un format délimité, afin qu'il
puisse interpréter les chaînes de longueur nulle en tant que valeurs NULL. Si le
gestionnaire de connexions utilise le format à largeur fixe ou non justifié à
droite, les données composées d'espaces ne peuvent pas être interprétées
comme des valeurs NULL.

Les colonnes de sortie dans la sortie de la source de fichier plat comportent la propriété
FastParse. FastParse indique si la colonne utilise les routines d’analyse de Integration
Services qui sont rapides, mais ne tiennent pas compte des paramètres régionaux, ou les
routines d’analyse standard qui tiennent compte des paramètres régionaux. Pour plus
d'informations, consultez Fast Parse et Standard Parse.
Les colonnes de sortie incluent également la propriété UseBinaryFormat. Cette propriété
vous permet d'implémenter la prise en charge de données binaires, par exemple des
données au format décimal compressé, dans des fichiers. Par défaut, UseBinaryFormat a
la valeur false. Si vous souhaitez utiliser un format binaire, affectez à UseBinaryFormat la
valeur true et au type de données sur la colonne de sortie la valeur DT_BYTES. De cette
manière, la source de fichier plat ignore la conversion des données et passe les données
telles quelles à la colonne de sortie. Vous pouvez ensuite utiliser une transformation,
telle que la conversion de données ou de colonne dérivée, pour convertir les données
DT_BYTES en un type de données différent, ou vous pouvez écrire un script personnalisé
dans une transformation de script pour interpréter les données. Vous pouvez également
écrire un composant de flux de données personnalisé pour interpréter les données. Pour
plus d’informations sur les types de données dans lesquels vous pouvez caster
DT_BYTES, consultez Cast (expression SSIS).

Cette source utilise un gestionnaire de connexions de fichiers plats pour accéder au


fichier texte. À l'aide des propriétés du gestionnaire de connexions de fichiers plats, vous
pouvez indiquer des informations relatives au fichier et à chacune de ses colonnes, ainsi
que définir la façon dont la source du fichier plat doit gérer les données figurant dans le
fichier texte. Par exemple, vous pouvez spécifier les caractères qui séparent les colonnes
et les lignes du fichier, ainsi que le type de données et la longueur de chaque colonne.
Pour plus d'informations, consultez Flat File Connection Manager.

Cette source comporte une sortie et une sortie d'erreur.

Configuration de la source de fichier plat


Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des fichiers plats

Tâches associées
Pour plus d’informations sur la définition des propriétés d’un composant de flux de
données, consultez Définir les propriétés d’un composant de flux de données.
Éditeur de source de fichier plat (page
Gestionnaire de connexions)
Utilisez la page Gestionnaire de connexions de la boîte de dialogue Éditeur de source
de fichier plat pour sélectionner le gestionnaire de connexions de fichiers plats qui sera
utilisé par la source de fichier plat. La source de fichier plat lit les données d'un fichier
texte qui peut être au format délimité, à largeur fixe ou mixte.

Une source de fichier plat peut utiliser l'un des types de gestionnaires de connexions
suivants :

Un gestionnaire de connexions de fichiers plats si la source est un fichier plat


unique. Pour plus d'informations, consultez Flat File Connection Manager.

Un gestionnaire de connexions de fichiers plats multiples si la source se compose


de fichiers plats multiples et si la tâche de flux de données se trouve dans un
conteneur de boucles (conteneur de boucles For, par exemple). Dans chaque
boucle du conteneur, la source de fichier plat charge les données à partir du nom
de fichier suivant fourni par le gestionnaire de connexions de fichiers plats
multiples. Pour plus d’informations, consultez Gestionnaire de connexion de
fichiers plats multiples.

Options
Flat file connection manager
Sélectionnez un gestionnaire de connexions existant dans la liste ou créez un
gestionnaire de connexions en cliquant sur Nouveau.

Nouveau
Créez un gestionnaire de connexions à l’aide de la boîte de dialogue Éditeur du
gestionnaire de connexions de fichiers plats .

Conserver les valeurs NULL de la source comme valeurs NULL dans le flux de données
Indique s'il faut conserver les valeurs NULL lorsque les données sont extraites. La valeur
par défaut de cette propriété est false. Quand cette propriété a la valeurfalse, la source
de fichier plat remplace les valeurs NULL des données sources par les valeurs par défaut
appropriées pour chaque colonne, par exemple des chaînes vides pour les colonnes de
chaînes et zéro pour les colonnes numériques.

Préversion
Affichez un aperçu des résultats à l’aide de la boîte de dialogue Vue de données .
L'aperçu peut afficher jusqu'à 200 lignes.
Éditeur de source de fichier plat (page
Colonnes)
Utilisez le nœud Colonnes de la boîte de dialogue Éditeur de source de fichier plat
pour mapper une colonne de sortie à chaque colonne externe (source).

7 Notes

La propriété FileNameColumnName de la source de fichier plat et la propriété


FastParse de ses colonnes de sortie ne sont pas disponibles dans l' Éditeur de
source de fichier plat, mais elles peuvent être définie à l'aide de l' Éditeur avancé.
Pour plus d'informations sur ces propriétés, consultez la section sur la source de
fichier plat de Flat File Custom Properties.

Options
Colonnes externes disponibles
Affiche la liste des colonnes externes disponibles dans la source de données. Vous ne
pouvez pas ajouter ou supprimer des colonnes à l'aide de cette table.

Colonne externe
Affiche les colonnes externes (sources) dans l'ordre de lecture de la tâche. Vous pouvez
modifier cet ordre en supprimant d'abord les colonnes sélectionnées dans la table, puis
en choisissant des colonnes externes dans la liste selon un ordre différent.

Colonne de sortie
Spécifiez un nom unique pour chaque colonne de sortie. Le nom par défaut est celui de
la colonne externe (source) sélectionnée ; vous pouvez néanmoins choisir n'importe quel
nom unique et significatif. Le nom fourni sera affiché dans le concepteur SSIS .

Éditeur de source de fichier plat (page Sortie


d'erreur)
Utilisez la page Sortie d’erreur de la boîte de dialogue Éditeur de source de fichier plat
pour sélectionner les options de gestion des erreurs et définir les propriétés des
colonnes de sortie d’erreur.\

Options
Entrée/sortie
Affichez le nom de la source de données.

Colonne
Affiche les colonnes externes (sources) que vous avez sélectionnées dans la page
Gestionnaire de connexions de la boîte de dialogue Éditeur de source de fichier plat.

Error
Indiquez ce qui doit se produire lorsqu'une erreur se produit : ignorer l'échec, rediriger
la ligne ou faire échouer le composant.

Rubriques connexes :Gestion des erreurs dans les données

Troncation
Indiquez ce qui doit se produire lorsqu'une troncation se produit : ignorer l'échec,
rediriger la ligne ou faire échouer le composant.

Description
Affiche la description de l'erreur.

Définir cette valeur sur les cellules sélectionnées


Indiquez ce qui doit se produire pour l'ensemble des cellules sélectionnées lorsqu'une
erreur ou une troncation se produit : ignorer l'échec, rediriger la ligne ou faire échouer
le composant.

Appliquer
Appliquez l'option de gestion des erreurs aux cellules sélectionnées.

Voir aussi
Destination de fichier plat
Flux de données
Destination de fichier plat
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination de fichier plat écrit des données dans un fichier texte. Le fichier texte peut
se présenter dans un format délimité, à largeur fixe, à largeur fixe avec séparateur de
ligne ou en drapeau à droite.

Vous pouvez configurer la destination de fichier plat de plusieurs manières :

Fournissez un bloc de texte qui est inséré dans le fichier avant l'écriture des
données. Le texte peut fournir des informations telles que des en-têtes de
colonnes.

Spécifiez s'il faut remplacer des données dans un fichier de destination qui porte le
même nom.

Cette destination utilise un gestionnaire de connexions de fichier plat pour accéder au


fichier texte. En définissant les propriétés du gestionnaire de connexions de fichier plat
utilisé par la destination de fichier plat, vous pouvez spécifier la façon dont elle met en
forme et écrit le fichier texte. Lors de la configuration du gestionnaire de connexions de
fichier plat, vous spécifiez des informations sur le fichier et sur chacune de ses colonnes.
Par exemple, vous spécifiez les caractères qui délimitent les colonnes et les lignes du
fichier, ainsi que le type de données et la longueur de chaque colonne. Pour plus
d'informations, consultez Flat File Connection Manager.

La destination de fichier plat inclut la propriété personnalisée Header. La propriété peut


être mise à jour par une expression de propriété lors du chargement du package. Pour
plus d’informations, consultez Expressions Integration Services (SSIS), Expressions de
propriété dans des packages et Propriétés personnalisées des fichiers plats.

Cette destination possède une sortie. Elle ne prend pas en charge de sortie d'erreur.

Configuration de la destination de fichier plat


Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des fichiers plats

Tâches associées
Pour plus d’informations sur la définition des propriétés d’un composant de flux de
données, consultez Définir les propriétés d’un composant de flux de données.

Éditeur de destination de fichier plat (page


Gestionnaire de connexions)
Utilisez la page Gestionnaire de connexions de la boîte de dialogue Éditeur de
destination de fichier plat pour sélectionner la connexion de fichier plat de la
destination et spécifier si elle doit remplacer le fichier de destination existant ou lui être
ajoutée. La destination de fichier plat écrit ses données dans un fichier texte. Ce fichier
texte peut être d'un format délimité, à largeur fixe avec séparateur de lignes, ou en
drapeau à droite.

Options
Gestionnaire de connexions de fichiers plats
Sélectionnez un gestionnaire de connexions existant dans la zone de liste ou créez une
connexion en cliquant sur Nouveau.

Nouveau
Créez une connexion à l’aide des boîtes de dialogue Format de fichier plat et Éditeur
du gestionnaire de connexions de fichiers plats .

En plus des formats de fichier plat standard (délimité, largeur fixe et en drapeau à
droite), la boîte de dialogue Format de fichier plat contient une quatrième option :
Largeur fixe avec séparateurs de lignes. Cette option représente un cas particulier du
format en drapeau à droite dans lequel Integration Services ajoute une colonne factice
comme dernière colonne de données. Cette colonne factice garantit que la dernière
colonne a une largeur fixe.

L'option Largeur fixe avec séparateurs de lignes n'est pas disponible dans l' éditeur du
gestionnaire de connexions de fichiers plats. Le cas échéant, vous pouvez émuler cette
option dans l'éditeur. Pour émuler cette option, dans la page Général de l' éditeur du
gestionnaire de connexions de fichiers plats, pour Format, sélectionnez En drapeau à
droite. Puis, dans la page Avancé de l'éditeur, ajoutez une colonne factice comme
dernière colonne de données.

Remplacer les données du fichier


Précisez si le fichier existant doit être remplacé ou si les données doivent lui être
ajoutées.

En-tête
Tapez un bloc de texte à insérer dans le fichier avant l'écriture des données. Utilisez
cette option pour inclure des informations supplémentaires, telles que des titres de
colonne.

Préversion
Affichez un aperçu des résultats à l’aide de la boîte de dialogue Vue de données .
L'aperçu peut afficher jusqu'à 200 lignes.

Éditeur de destination de fichier plat (page


Mappages)
La page Mappages de la boîte de dialogue Éditeur de destination de fichier plat
permet de mapper des colonnes d’entrée à des colonnes de destination.

Options
Colonnes d'entrée disponibles
Affichez la liste des colonnes d'entrée disponibles. Au moyen d'une opération glisser-
déplacer, mappez les colonnes d'entrée disponibles aux colonnes de destination.

Colonnes de destination disponibles


Affichez la liste des colonnes de destination disponibles. Au moyen d'une opération
glisser-déplacer, mappez les colonnes de destination disponibles aux colonnes d'entrée.

Colonne d'entrée
Affichez les colonnes d'entrée sélectionnées précédemment. Vous pouvez modifier les
mappages au moyen de la liste Colonnes d'entrée disponibles. Sélectionnez <ignorer>
pour exclure la colonne de la sortie.

Colonne de destination
Affiche chaque colonne de destination disponible, qu'elle soit mappée ou non.
Voir aussi
Source de fichier plat
Flux de données
HDFS File Source
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le composant HDFS File Source permet à un package SSIS de lire les données provenant
d’un fichier HDFS. Les formats de fichier pris en charge sont le format texte et Avro. (Les
sources ORC ne sont pas prises en charge.)

Pour configurer HDFS File Source, opérez un glisser-déplacer de HDFS File Source vers
le concepteur de flux de données, puis double-cliquez sur le composant pour ouvrir
l’éditeur.

Options
Configurez les options suivantes sur l’onglet Général de la boîte de dialogue Hadoop
File Source Editor .
Champ Description

Connexion Hadoop Spécifiez un gestionnaire de connexions Hadoop existant ou créez-en


un. Ce gestionnaire de connexions indique où sont hébergés les
fichiers HDFS.

Chemin d'accès au Spécifiez le nom du fichier HDFS.


fichier

Format de fichier Spécifiez le format du fichier HDFS. Les options disponibles sont Texte
et Avro. (Les sources ORC ne sont pas prises en charge.)

Caractère séparateur de Si vous avez sélectionné le format Texte, spécifiez le caractère


colonnes délimiteur de colonne.

Noms de colonnes dans Si vous avez sélectionné le format Texte, indiquez si la première ligne
la première ligne de du fichier contient les noms de colonnes.
données

Après avoir configuré ces options, sélectionnez l’onglet Colonnes pour mapper les
colonnes source aux colonnes de destination dans le flux de données.

Voir aussi
Gestionnaire de connexions Hadoop
Destination de fichier HDFS
HDFS File Destination
Article • 15/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le composant HDFS File Destination permet à un package SSIS d’écrire des données
dans un fichier HDFS. Les formats de fichier pris en charge sont les formats texte, Avro
et ORC.

Pour configurer HDFS File Destination, opérez un glisser-déplacer de HDFS File Source
vers le concepteur de flux de données, puis double-cliquez sur le composant pour ouvrir
l’éditeur.

Options
Configurez les options suivantes sur l’onglet General (Général) de la boîte de dialogue
Hadoop File Destination Editor (Éditeur de destination de fichiers Hadoop) .
Champ Description

Connexion Hadoop Spécifiez un gestionnaire de connexions Hadoop existant ou créez-en


un. Ce gestionnaire de connexions indique où sont hébergés les
fichiers HDFS.

Chemin d'accès au Spécifiez le nom du fichier HDFS.


fichier

Format de fichier Spécifiez le format du fichier HDFS. Les options disponibles sont Texte,
Avro et ORC.

Caractère séparateur de Si vous avez sélectionné le format Texte, spécifiez le caractère


colonnes délimiteur de colonne.

Noms de colonnes dans Si vous avez sélectionné le format Texte, indiquez si la première ligne
la première ligne de du fichier contient les noms de colonnes.
données

Après avoir configuré ces options, sélectionnez l’onglet Colonnes pour mapper les
colonnes source aux colonnes de destination dans le flux de données.

Prérequis pour le format de fichier ORC


Java est nécessaire pour utiliser le format de fichier ORC. L’architecture (32/64 bits) de la
build Java doit correspondre à celle du runtime SSIS à utiliser. Les builds Java suivantes
ont été testées.

Zulu OpenJDK 8u192


Oracle Java SE Runtime Environment 8u192

Configurer Zulu OpenJDK


1. Téléchargez et extrayez le package compressé d’installation.
2. À partir de l’invite de commandes, exécutez sysdm.cpl .
3. Sous l’onglet Avancé, sélectionnez Variables d’environnement.
4. Sous la section Variables système, sélectionnez Nouveau.
5. Entrez JAVA_HOME pour le Nom de la variable.
6. Sélectionnez Parcourir les répertoires, accédez au dossier extrait et sélectionnez le
sous-dossier jre . Sélectionnez ensuite OK et la valeur de la variable est
automatiquement renseignée.
7. Sélectionnez OK pour fermer la boîte de dialogue Nouvelle Variable système.
8. Sélectionnez OK pour fermer la boîte de dialogue Variables d’environnement.
9. Sélectionnez OK pour fermer la boîte de dialogue Propriétés du système.
Configurer Oracle Java SE Runtime Environment
1. Téléchargez et exécutez le programme d’installation.
2. Suivez les instructions du programme d’installation pour terminer l’installation.

Voir aussi
Gestionnaire de connexions Hadoop
Source de fichier HDFS
Propriétés personnalisées des fichiers
plats
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Propriétés personnalisées des sources

La source de fichier plat comporte des propriétés personnalisées et les propriétés


communes à l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la source de fichier plat. Toutes
les propriétés sont en lecture/écriture.

Nom de la propriété Type de Description


données

FileNameColumnName String Nom d'une colonne de sortie qui contient le nom de fichier.
Si le nom n'est pas spécifié, aucune colonne de sortie
contenant le nom de fichier ne sera générée.

Remarque : cette propriété n’est pas disponible dans


l’Éditeur de source de fichier plat, mais elle peut être
définie à l’aide de l’éditeur avancé.

RetainNulls Boolean Valeur qui spécifie si les valeurs NULL du fichier source
doivent être conservées comme valeurs NULL lorsque les
données sont traitées par le moteur du pipeline de
transformation des données. La valeur par défaut de cette
propriété est False.

La sortie de la source de fichier plat n'est pas dotée de propriétés personnalisées.

Le tableau suivant décrit les propriétés personnalisées des colonnes de sortie de la


source de fichier plat. Toutes les propriétés sont en lecture/écriture.

Nom de Type de Description


la données
propriété
Nom de Type de Description
la données
propriété

FastParse Boolean Valeur qui indique si la colonne utilise les routines d'analyse fournies par
DTS (routines plus rapides mais qui ne tiennent pas compte des
paramètres régionaux) ou les routines d'analyse standard qui tiennent
compte des paramètres régionaux. Pour plus d'informations, consultez
Fast Parse et Standard Parse. La valeur par défaut de cette propriété est
False.

Remarque : cette propriété n’est pas disponible dans l’Éditeur de source


de fichier plat, mais elle peut être définie à l’aide de l’éditeur avancé.

Pour plus d'informations, consultez Flat File Source.

Propriétés personnalisées des destinations

La destination de fichier plat comporte à la fois des propriétés personnalisées et les


propriétés communes à l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la destination de fichier plat.


Toutes les propriétés sont en lecture/écriture.

Nom de la Type de Description


propriété données

En-tête String Bloc de texte inséré dans le fichier avant l'écriture des données.

Il est possible de spécifier la valeur de cette propriété en utilisant


l'expression d'une propriété.

Remplacer Boolean Valeur qui spécifie s'il faut remplacer un fichier de destination
existant qui porte le même nom ou lui ajouter des données. La
valeur par défaut de cette propriété est True.

EscapeQualifier Boolean Quand le qualificateur de texte est activé, spécifie si le qualificateur


de texte dans les données écrites dans le fichier de destination va
être échappé ou non. La valeur par défaut de cette propriété est
False.

L'entrée et les colonnes d'entrée de la destination de fichier plat ne disposent pas de


propriétés personnalisées.

Pour plus d'informations, consultez Flat File Destination.

Voir aussi
Propriétés communes
Source OData
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez le composant source OData dans un package SSIS pour consommer les données
provenant d’un service OData (Open Data Protocol).

Protocoles et formats de données pris en


charge
Le composant prend en charge les protocoles OData v3 et v4.

Pour le protocole OData V3, le composant prend en charge les formats de


données JSON et ATOM.

Pour le protocole OData V4, le composant prend en charge le format de données


JSON.

Sources de données prises en charge


La source OData prend en charge les sources de données suivantes :

Microsoft Dynamics AX Online et Microsoft Dynamics CRM Online,


Listes SharePoint. Pour voir toutes les listes d’un serveur SharePoint, utilisez l’URL
suivante : https://<server>/_vti_bin/ListData.svc . Pour plus d'informations sur
les conventions d'URL SharePoint, consultez Interface REST de SharePoint
Foundation.

Types de données pris en charge


La source OData prend en charge les types de données simples suivants : int, byte[],
bool, byte, DateTime, DateTimeOffset, decimal, double, Guid, Int16, Int32, Int64, sbyte,
float, string et TimeSpan.

Pour découvrir les types de données des colonnes dans votre source de données,
consultez la page https://<OData feed endpoint>/$metadata .

Pour le type de données Decimal, la précision et l’échelle sont déterminées par les
métadonnées sources. Si les métadonnées sources ne spécifient pas les propriétés
Précision et Échelle, les données peuvent être tronquées.

) Important

Le composant Source OData ne prend pas en charge les types complexes, comme
les éléments à choix multiple, dans des listes SharePoint.

7 Notes

Si la source autorise uniquement une connexion TLS 1.2, vous avez besoin
d’appliquer TLS 1.2 sur votre machine par le biais des paramètres du Registre.
Exécutez les commandes suivantes dans une invite de commandes avec élévation
de privilèges :

reg add HKLM\SOFTWARE\Microsoft.NETFramework\v4.0.30319 /v


SchUseStrongCrypto /t REG_DWORD /d 1 /reg:64

reg add HKLM\SOFTWARE\Microsoft.NETFramework\v4.0.30319 /v


SchUseStrongCrypto /t REG_DWORD /d 1 /reg:32

Format OData et performances


La plupart des services OData retournent les résultats dans plusieurs formats. Vous
pouvez spécifier le format du jeu de résultats à l’aide de l’option de requête $format .
Les formats comme JSON et JSON Light sont plus efficaces qu’ATOM ou XML, et
peuvent offrir un gain de performances en cas de transfert d’un grand volume de
données. Le tableau suivant fournit les résultats des tests. Comme vous pouvez le voir, le
passage d’ATOM à JSON s’est traduit par un gain de performances de 30 à 53 %, et le
passage d’ATOM au nouveau format JSON Light (disponible dans WCF Data Services
5.1) a entraîné un gain de performances de 67 %.

Lignes ATOM JSON JSON (Light)

10000 113 secondes 74 secondes 68 secondes

1000000 1110 secondes 853 secondes 665 secondes

Rubriques connexes de cette section


Tutoriel : Utiliser la source OData
Modifier la requête de la source OData à l’exécution

Propriétés de la source OData

Éditeur de source OData (page Connexion)


La page Connexion de la boîte de dialogue Éditeur de source OData vous permet de
sélectionner le gestionnaire de connexions OData pour la source OData. Cette page
vous permet également de spécifier une collection ou un chemin d'accès de ressources
et toutes les options de requête permettant de spécifier quelles données doivent être
récupérées à partir de la source OData.

Options statiques
Gestionnaire de connexions OData
Sélectionnez un gestionnaire de connexions existant dans la liste ou créez une nouvelle
connexion en cliquant sur Nouveau.

Après la sélection ou la création d’un gestionnaire de connexions, la boîte de dialogue


affiche la version du protocole OData qui utilise le gestionnaire de connexions.

Nouveau
Créez un gestionnaire de connexions à l’aide de la boîte de dialogue Éditeur du
gestionnaire de connexions OData .

Utilisez une collection ou un chemin d'accès de ressource.


Spécifiez la méthode de sélection des données dans la source.

Option Description

Collection Extrayez les données de la source OData à l'aide d'un nom de


collection.

Chemin d'accès de Extrayez les données de la source OData à l'aide d'un chemin d'accès
ressource de ressource.

Options de requête
Permet d'indiquer les options de la requête. Par exemple : $top=5

URL du flux
Affiche l’URL du flux en lecture seule en fonction des options sélectionnées dans la boîte
de dialogue.
Préversion
Affichez un aperçu des résultats à l’aide de la boîte de dialogue Aperçu . L’Aperçu peut
afficher jusqu’à 20 lignes.

Options dynamiques

Utilisez une collection ou un chemin d'accès de ressource =


Collection.

Collection
Sélectionnez une collection dans la liste déroulante.

Utilisez une collection ou un chemin d'accès de ressource =


Resource Path.

Resource path
Type de chemin d'accès de ressource. Par exemple : Employees

Éditeur de source OData (page Colonnes)


Utilisez la page Colonnes de la boîte de dialogue Éditeur de source OData pour
sélectionner des colonnes externes (source) à inclure dans la sortie et pour les mapper
aux colonnes de la sortie.

Options
Colonnes externes disponibles
Affiche la liste des colonnes sources disponibles dans la source de données. Utilisez les
cases à cocher dans la liste pour ajouter ou supprimer des colonnes sur la table au bas
de la page. Les colonnes sélectionnées sont ajoutées à la sortie.

Colonne externe
Affichez les colonnes sources à inclure dans la sortie.

Colonne de sortie
Spécifiez un nom unique pour chaque colonne de sortie. Le nom par défaut est celui de
la colonne externe (source) sélectionnée ; vous pouvez néanmoins choisir n'importe quel
nom unique et significatif.

Éditeur de source OData (page Sortie d'erreur)


La page Sortie d'erreur de la boîte de dialogue Éditeur de source OData vous permet
de sélectionner les options de gestion des erreurs et de définir les propriétés sur les
colonnes de sortie d'erreur.

Options
Entrée/sortie
Affichez le nom de la source de données.

Colonne
Indique les colonnes externes (source) que vous avez sélectionnées dans la page
Gestionnaire de connexions de la boîte de dialogue Éditeur de source OData .

Error
Indiquez ce qui doit se produire lorsqu'une erreur se produit : ignorer l'échec, rediriger
la ligne ou faire échouer le composant.

Rubriques connexes :Gestion des erreurs dans les données

Troncation
Indiquez ce qui doit se produire lorsqu'une troncation se produit : ignorer l'échec,
rediriger la ligne ou faire échouer le composant.

Description
Affiche la description de l'erreur.

Définir cette valeur sur les cellules sélectionnées


Indiquez ce qui doit se produire pour l'ensemble des cellules sélectionnées lorsqu'une
erreur ou une troncation se produit : ignorer l'échec, rediriger la ligne ou faire échouer
le composant.

Appliquer
Appliquez l'option de gestion des erreurs aux cellules sélectionnées.

Voir aussi
Gestionnaire de connexions OData
Tutoriel : Utiliser la source OData
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Ce tutoriel vous guide dans le processus d’extraction de la collection Employees de


l’exemple de service OData Northwind
(https://services.odata.org/V3/Northwind/Northwind.svc/ ), puis son chargement dans
un fichier plat.

1. Créer un projet Integration Services


1. Lancez SQL Server Data Tools ou Visual Studio.

2. Cliquez sur Fichier, pointez le curseur de la souris sur Nouveau, puis cliquez sur
Projet.

3. Dans la boîte de dialogue Nouveau projet , développez Installé, puis Modèles,


Business Intelligence, et cliquez sur Integration Services.

4. Sélectionnez Projet Integration Services pour le type de projet.

5. Entrez un nom et sélectionnez un emplacement pour le projet, puis cliquez sur OK.

2. Ajouter et configurer une source OData


1. Glissez-déplacez une Tâche de flux de données de la Boîte à outil SSIS vers l’aire
de conception de flux de contrôle pour votre package SSIS.

2. Cliquez sur l’onglet Flux de données ou double-cliquez sur la tâche de flux de


données pour ouvrir l’aire de conception de flux de données.

3. Glissez-déplacez la Source OData du groupe Commun dans la Boîte à outil SSIS.

4. Double-cliquez sur le composant Source OData pour ouvrir la boîte de dialogue


Éditeur de source OData.

5. Cliquez sur Nouveau... pour ajouter un nouveau gestionnaire de connexions


OData.

6. Entrez l'URL du service OData pour l' Emplacement du document de service. Il


peut s’agir de l’URL qui renvoie au document de service, ou bien à un flux ou une
entité spécifique. Pour les besoins de ce tutoriel, entrez l’URL vers le document de
service : https://services.odata.org/V3/Northwind/Northwind.svc/ .

7. Assurez-vous que l' Authentification Windows est sélectionnée pour l'


authentification à utiliser pour accéder au service OData. L'Authentification
Windows est sélectionnée par défaut.

8. Cliquez sur Tester la connexion pour tester la connexion, puis cliquez sur OK pour
créer une instance du gestionnaire de connexions OData.

9. Dans la boîte de dialogue Éditeur de source OData , assurez-vous que Collection


est sélectionné pour l'option Utiliser la collection sur le chemin d'accès de la
ressource .

10. Dans la liste déroulante Collection, sélectionnez Employés.

11. Entrez toutes les options ou filtres de requête OData supplémentaires pour
Options de requête. Par exemple : $orderby=CompanyName&$top=100 . Pour les
besoins de ce didacticiel, entrez $top=5 .

12. Cliquez sur Aperçu pour afficher un aperçu des données.

13. Cliquez sur Colonnes dans le volet de navigation gauche pour basculer vers la
page Colonnes .

14. Sélectionnez EmployeeID, FirstName, LastName et Colonnes externes disponibles


en activant les cases à cocher.

15. Cliquez sur OK pour fermer la boîte de dialogue Éditeur de source OData .

3. Ajouter et configurer une destination de


fichier plat
1. Glissez-déplacez une Destination de fichier plat de la Boîte à outil SSIS vers l’aire
de conception du flux de données sous le composant Source OData .

2. Connectez le composant Source OData au composant Destination de fichier plat


avec la flèche bleue.

3. Double-cliquez sur Destination de fichier plat. Vous devez voir s'afficher la boîte
de dialogue Éditeur de destination de fichier plat .

4. Dans la boîte de dialogue Éditeur de destination de fichier plat , cliquez sur


Nouveau pour créer un nouveau gestionnaire de connexions de fichiers plats.
5. Dans la boîte de dialogue Format de fichier plat , sélectionnez Délimité. La boîte
de dialogue Éditeur du gestionnaire de connexions de fichiers plats s’affiche.

6. Dans la boîte de dialogue Éditeur du gestionnaire de connexions de fichiers plats,


entrez c:\Employees.txt dans Nom de fichier.

7. Cliquez sur Colonnesdans le volet de navigation gauche. Vous pouvez définir les
données de cette page.

8. Cliquez sur OK pour fermer la boîte de dialogue Éditeur du gestionnaire de


connexions de fichiers plats .

9. Dans la boîte de dialogue Éditeur de destination de fichier plat , cliquez sur


Mappages dans le volet de navigation gauche. Vérifiez les mappages.

10. Cliquez sur OK pour fermer la boîte de dialogue Éditeur de destination de fichier
plat .

4. Exécution du package
Exécutez le package SSIS. Vérifiez que le fichier de sortie est créé avec l’ID, le prénom et
le nom de cinq employés du flux OData.
Fournir une requête de source OData au
moment de l’exécution
Article • 29/03/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous pouvez modifier la requête de source OData au moment de l’exécution en ajoutant


une expression à la propriété [OData Source].[Query] de la tâche de flux de données.

Les colonnes retournées doivent être identiques aux colonnes retournées au moment du
design ; dans le cas contraire, vous obtenez une erreur à l’exécution du package. Veillez
à spécifier les mêmes colonnes (dans le même ordre) lorsque vous utilisez l'option de
requête $select. Une alternative plus sûre à l’utilisation de l’option $select est de
désélectionner les colonnes que vous ne souhaitez pas utiliser directement de l’interface
utilisateur du composant source.

Il existe d'autres méthodes de définition dynamique de la valeur de la requête à


l'exécution. Voici quelques-unes des méthodes les plus courantes.

Fournir la requête en tant que paramètre


La procédure suivante montre comment fournir la requête utilisée par un composant
source OData en tant que paramètre du package.

1. Cliquez avec le bouton droit sur Tâche de flux de données et sélectionnez l’option
Paramétriser....

2. Dans la boîte de dialogue Paramétrer, sélectionnez [<Nom du composant source


OData>].[Query] pour Propriété.

3. Vous pouvez soit créer un paramètre , soit utiliser un paramètre existant.

4. Si vous sélectionnez Créer un paramètre :

a. Entrez un nom et une description pour le paramètre.

b. Spécifiez la valeur par défaut du paramètre.

c. Spécifiez l’ étendue (package ou projet) du paramètre.

d. Spécifiez si le paramètre est obligatoire ou non.

5. Cliquez sur OK pour fermer la boîte de dialogue.


Fournir la requête avec une expression
Cette méthode est utile lorsque vous souhaitez construire dynamiquement la chaîne de
requête au moment de l’exécution.

1. Sélectionnez la tâche de flux de données qui contient votre source OData.

2. La fenêtre Propriétés met en surbrillance la propriété Expressions .

3. Cliquez sur les points de suspension (...) pour ouvrir l’Éditeur d’expressions de la
propriété.

4. Sélectionnez la propriété [OData Source].[Query] .

5. Cliquez sur les points de suspension (...) pour Expression.

6. Entrez l’ expression.

7. Cliquez sur OK.

7 Notes

En utilisant cette approche, vous devez vous assurer que les valeurs définies sont
codées correctement pour l’URL. Lorsque vous recevez des valeurs de l'entrée
utilisateur (par exemple, lorsque vous définissez des valeurs d'option de requête
individuelles), vous devez vous assurer que les valeurs sont validées pour éviter des
attaques potentielles par injection SQL.
Propriétés de la source OData
Article • 02/02/2024

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Quand vous cliquez avec le bouton droit sur Source OData dans le flux de données, puis
cliquez sur Propriétés, vous voyez les propriétés du composant Source OData dans la
fenêtre Propriétés.

Propriétés
ノ Agrandir le tableau

Property Description

CollectionName Nom de la collection à extraire du service OData. La propriété


CollectionName est utilisée quand UseResourcePath a la valeur false.

Cette propriété utilise des expressions, ce qui vous permet de définir la


valeur au moment de l’exécution. Cependant, si les métadonnées de la
collection ne correspondent pas aux métadonnées utilisées au moment de
la conception, une erreur de validation est générée et l’exécution du flux de
données échoue.

DefaultStringLength Cette valeur spécifie la longueur par défaut des colonnes de chaîne qui
n'ont pas de longueur maximale.

Valeur par défaut : 4000

Requête Paramètres de requête OData. Cette propriété utilise des expressions et


peut être définie au moment de l’exécution.

ResourcePath Utilisez cette propriété lorsque vous devez spécifier un chemin de


ressources complet, plutôt que de sélectionner un nom de collection. Cette
propriété est utilisée lorsque UseResourcePath a la valeur True.

UseResourcePath Lorsque la valeur est définie à True, la valeur ResourcePath est ajoutée à
l'URL de base pour déterminer l'emplacement du flux OData. Lorsque la
valeur est False, la valeur CollectionName est utilisée.

Par défaut : False

Voir aussi
Source OData

Commentaires
Cette page a-t-elle été utile ?  Yes  No

Indiquer des commentaires sur le produit | Obtenir de l’aide sur Microsoft Q&A
Composants de flux ODBC
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette rubrique décrit les concepts nécessaires pour créer un flux de données ODBC en
utilisant SQL Server 2019 Integration Services (SSIS)

Le connecteur d’Open Database Connectivity (ODBC) pour SQL Server 2019 Integration
Services (SSIS) aide les développeurs SSIS à créer facilement des packages qui chargent
et déchargent des données dans des bases de données ODBC.

Le connecteur ODBC est conçu pour des performances optimales pendant le


chargement ou le déchargement de données dans une base de données ODBC dans le
contexte de SQL Server 2019 Integration Services (SSIS).

Avantages
La source ODBC et la destination ODBC pour SQL Server 2019 Integration Services (SSIS)
fournissent un avantage concurrentiel à SSIS dans les projets impliquant le chargement
ou le déchargement de données dans des bases de données ODBC.

La source ODBC et la destination ODBC permettent d'intégrer des données hautes


performances dans les bases de données compatibles ODBC. Ces deux composants
peuvent être configurés de manière à utiliser des liaisons de table de paramètres selon
les lignes pour les fournisseurs ODBC hautement sollicités qui prennent en charge ce
mode de liaison, ainsi que des liaisons de paramètre de ligne unique pour les
fournisseurs ODBC peu sollicités.

Prise en main de la source et de la destination


ODBC
Avant de pouvoir configurer des packages qui utilisent SQL Server 2019 Integration
Services (SSIS), vous devez vérifier la disponibilité des éléments suivants.

Source ODBC

Destination ODBC

La source ODBC et la destination ODBC permettent de décharger et de charger


facilement des données et de les transférer d'une base de données source compatible
ODBC vers une base de données de destination compatible ODBC.

Pour utiliser la source ou la destination afin de charger ou décharger des données,


ouvrez un nouveau projet SQL Server 2019 Integration Services (SSIS) dans SQL Server
Data Tools. Faites glisser la source ou la destination sur l’aire de conception de SQL
Server Data Tools.

Le composant source ODBC lit les données dans la base de données source
compatible ODBC.

Vous pouvez connecter la source ODBC à n'importe quelle destination ou transformer le


composant pris en charge par SSIS.

Voir aussi :

Source ODBC

Éditeur de source ODBC (page Gestionnaire de connexions)

Éditeur de source ODBC (page Sortie d'erreur)

La destination ODBC charge les données dans une base de données compatible
ODBC. Vous connectez la destination à n'importe quelle source ou transformez le
composant pris en charge par SSIS.

Voir aussi :

Destination ODBC

Éditeur de destination ODBC (page Gestionnaire de connexions)

Éditeur de destination ODBC (page Sortie d'erreur)

Scénarios d'utilisation
Cette section décrit quelques-unes des principales utilisations des composants sources
et de destination ODBC.

Copie en bloc de données de tables SQL Server vers


n'importe quelle table de base de données compatible
ODBC
Vous pouvez utiliser les composants pour copier en bloc les données d’une ou de
plusieurs tables SQL Server dans une même table de base de données ODBC.
L’exemple suivant montre comment créer une tâche de flux de données SSIS qui extrait
des données d’une table SQL Server et les charge dans une table DB2.

Créez un projet SQL Server 2019 Integration Services (SSIS) dans SQL Server Data
Tools.

Créez un gestionnaire de connexions OLE DB qui se connecte à la base de données


SQL Server contenant les données à copier.

Créez un gestionnaire de connexions ODBC qui utilise un pilote ODBC DB2 installé
en local avec un DSN pointant vers une base de données DB2 locale ou distante.
Cette base de données contient les données chargées à partir de la base de
données SQL Server.

Faites glisser une source OLE DB sur l’aire de conception, puis configurez la source
pour obtenir les données de la base de données SQL server et la table avec les
données à extraire. Utilisez le gestionnaire de connexions OLE DB précédemment
créé.

Faites glisser une destination ODBC sur l’aire de conception, connectez la sortie de
la source à la destination ODBC, puis configurez la destination pour charger dans
la table DB2 les données que vous extrayez de la base de données SQL Server.
Utilisez le gestionnaire de connexions ODBC précédemment créé.

Copie en bloc de données de tables de base de données


compatibles ODBC vers n'importe quelle table SQL Server
Vous pouvez utiliser les composants pour copier en bloc les données d’une ou de
plusieurs tables de base de données ODBC dans une même table de base de données
SQL Server.

L’exemple suivant montre comment créer une tâche de flux de données SSIS qui extrait
des données d’une table de base de données Sybase et les charge dans une table de
base de données SQL Server.

Créez un projet SQL Server 2019 Integration Services (SSIS) dans SQL Server Data
Tools

Créez un gestionnaire de connexions ODBC qui utilise un pilote ODBC Sybase


installé en local avec un DSN pointant vers une base de données Sybase locale ou
distante. Cette base de données est l'emplacement auquel les données sont
extraites.
Créez un gestionnaire de connexions OLE DB qui se connecte à la base de données
SQL Server où charger les données.

Faites glisser une source ODBC dans l'aire de conception, puis configurez la source
de manière à obtenir les données de la base de données Sybase avec la table que
vous allez copier. Utilisez le gestionnaire de connexions ODBC précédemment créé.

Faites glisser une destination OLE DB sur l’aire de conception, connectez la sortie
de la source à la destination OLE DB, puis configurez la destination pour charger
dans la table SQL Server les données que vous extrayez de la base de données
Sybase. Utilisez le gestionnaire de connexions OLE DB précédemment créé.

Types de données pris en charge


Les composants SSIS ODBC en bloc prennent en charge tous les types de données
ODBC intégrés, notamment les objets volumineux (objets CLOB et BLOB).

Il n’existe aucune prise en charge des types de données pour les types C extensibles tels
que décrits dans les spécifications ODBC 3.8. Le tableau suivant décrit les types de
données SSIS utilisés pour chaque type SQL ODBC. Un développeur SSIS peut remplacer
le mappage par défaut et spécifier un autre type de données SSIS pour les colonnes
d'entrée/sortie sans nuire aux performances des conversions de données requises.

Type SQL ODBC Type de données Commentaires


SSIS

SQL_BIT DT_BOOL

SQL_TINYINT DT_I1 Les types de données SQL sont


mappés aux types non signés SSIS
DT_UI1 (DT_UI1, DT_UI2, DT_UI4, DT_UI8)
lorsque le pilote ODBC attribue à
UNSIGNED_ATTRIBUTE la valeur
SQL_TRUE pour ce type de données
SQL.

SQL_SMALLINT DT_I2 Les types de données SQL sont


mappés aux types non signés SSIS
DT_UI2 (DT_UI1, DT_UI2, DT_UI4, DT_UI8)
lorsque le pilote ODBC attribue à
UNSIGNED_ATTRIBUTE la valeur
SQL_TRUE pour ce type de données
SQL.
Type SQL ODBC Type de données Commentaires
SSIS

SQL_INTEGER DT_I4 Les types de données SQL sont


mappés aux types non signés SSIS
DTUI4 (DT_UI1, DT_UI2, DT_UI4, DT_UI8)
lorsque le pilote ODBC attribue à
UNSIGNED_ATTRIBUTE la valeur
SQL_TRUE pour ce type de données
SQL.

SQL_BIGINT DT_I8 Les types de données SQL sont


mappés aux types non signés SSIS
DT_UI8 (DT_UI1, DT_UI2, DT_UI4, DT_UI8)
lorsque le pilote ODBC attribue à
UNSIGNED_ATTRIBUTE la valeur
SQL_TRUE pour ce type de données
SQL.

SQL_DOUBLE DT_R8

SQL_FLOAT DT_R8

SQL_REAL DT_R4

SQL_NUMERIC (p,s) DT_NUMERIC (p,s) Le type de données numérique est


mappé à DT_NUMERIC lorsque P
est supérieur ou égal à 38, que S
est supérieur ou égal à 0 et que S
est inférieur ou égal à P.

DT_R8 Le type de données numérique est


mappé à DT_R8 lorsqu'au moins
une des conditions suivantes est
remplie :

La précision est supérieure à 38

L'échelle est inférieure à zéro

L'échelle est supérieure à 38

L'échelle est supérieure à la


précision

DT_CY Le type de données numérique est


mappé à DT_CY lorsqu'il est déclaré
comme type de données
monétaire.
Type SQL ODBC Type de données Commentaires
SSIS

SQL_DECIMAL (p,s) DT_NUMERIC (p,s) Le type de données décimal est


mappé à DT_NUMERIC lorsque P
est supérieur ou égal à 38, que S
est supérieur ou égal à 0 et que S
est inférieur ou égal à P.

DT_R8 Le type de données décimal est


mappé à DT_R8 lorsqu'au moins
une des conditions suivantes est
remplie :

La précision est supérieure à 38

L'échelle est inférieure à zéro

L'échelle est supérieure à 38

L'échelle est supérieure à la


précision

DT_CY Le type de données décimal est


mappé à DT_CY lorsqu'il est déclaré
comme type de données
monétaire.

SQL_DATE DT_DBDATE

SQL_TYPE_DATE

SQL_TIME DT_DBTIME

SQL_TYPE_TIME

SQL_TIMESTAMP DT_DBTIMESTAMP Les type de données


SQL_TIMESTAMP sont mappés à
SQL_TYPE_TIMESTAMP DT_DBTIMESTAMP2 DT_DBTIMESTAMP2 si l’échelle est
supérieure à 3. Dans tous les autres
cas, ils sont mappés à
DT_DBTIMESTAMP.
Type SQL ODBC Type de données Commentaires
SSIS

SQL_CHAR DT_STR DT_STR est utilisé si la longueur de


colonne est inférieure ou égale à 8
SQLVARCHAR DT_WSTR 000 et si la propriété
ExposeStringsAsUnicode a la
DT_TEXT valeur false.

DT_NTEXT DT_WSTR est utilisé si la longueur


de colonne est inférieure ou égale
à 8 000 et si la propriété
ExposeStringsAsUnicode a la
valeur true.

DT_TEXT est utilisé si la longueur de


colonne est supérieure à 8 000 et si
la propriété
ExposeStringsAsUnicode a la
valeur false.

DT_NTEXT est utilisé si la longueur


de colonne est supérieure à 8 000
et si la propriété
ExposeStringsAsUnicode a la
valeur true.

SQL_LONGVARCHAR DT_TEXT DT_NTEXT est utilisé si la propriété


ExposeStringsAsUnicode a la
DT_NTEXT valeur true.

SQL_WCHAR DT_WSTR DT_WSTR est utilisé si la longueur


de colonne est inférieure ou égale
SQL_WVARCHAR DT_NTEXT à 4000.

DT_NTEXT est utilisé si la longueur


de colonne est supérieure à 4000.

SQL_WLONGVARCHAR DT_NTEXT

SQL_BINARY DT_BYTE DT_BYTES est utilisé si la longueur


de colonne est inférieure ou égale
DT_IMAGE à 8000.

DT_IMAGE si la longueur de
colonne est supérieure à 8000.

SQL_LONGVARBINARY DT_IMAGE

SQL_GUID DT_GUID
Type SQL ODBC Type de données Commentaires
SSIS

SQL_INTERVAL_YEAR DT_WSTR

SQL_INTERVAL_MONTH

SQL_INTERVAL_DAY

SQL_INTERVAL_HOUR

SQL_INTERVAL_MINUTE

SQL_INTERVAL_SECOND

SQL_INTERVAL_YEAR_TO_MONTH

SQL_INTERVAL_DAY_TO_HOUR

SQL_INTERVAL_DAY_TO_MINUTE

SQL_INTERVAL_DAY_TO_SECOND

SQL_INTERVAL_HOUR_TO_MINUTE

SQL_INTERVAL_HOUR_TO_SECOND

SQL_INTERVAL_MINUTE_TO_SECOND

Types de données spécifiques au DT_BYTES DT_BYTES est utilisé si la longueur


fournisseur de colonne est inférieure ou égale
DT_IMAGE à 8000.

DT_IMAGE est utilisé si la longueur


de colonne est zéro ou supérieure
à 8000.

Dans cette section


Source ODBC

Destination ODBC
Destination ODBC
Article • 29/03/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination ODBC charge en masse les données dans les tables de base de données
compatibles ODBC. La destination ODBC utilise un gestionnaire de connexions ODBC
pour se connecter à la source de données.

Une destination ODBC inclut des mappages entre les colonnes d'entrée et les colonnes
de la source de données de destination. Vous n’avez pas besoin de mapper les colonnes
d’entrée à toutes les colonnes de destination, mais en fonction des propriétés des
colonnes de destination, des erreurs peuvent se produire si aucune colonne d’entrée
n’est mappée aux colonnes de destination. Par exemple, si une colonne de destination
n'autorise pas les valeurs null, une colonne d'entrée doit être mappée à cette colonne.
En outre, même si des colonnes de types différents peuvent être mappées, si les
données d'entrée ne sont pas compatibles pour le type de colonne de destination, une
erreur se produit au moment de l'exécution. En fonction du comportement des erreurs
configuré, l'erreur sera ignorée, entraînera un échec ou la ligne sera envoyée à la sortie
d'erreur.

La destination ODBC comporte une sortie standard et une sortie d'erreur.

Options de chargement
La destination ODBC peut utiliser l'un des deux modules de charge d'accès. Vous
définissez le mode dans l’Éditeur de source ODBC (page Gestionnaire de connexions).
Les deux modes sont :

Lot: dans ce mode, la destination ODBC tente d’utiliser la méthode d’insertion la


plus efficace en fonction des capacités perçues du fournisseur ODBC. Pour la
plupart des fournisseurs modernes ODBC, cela implique de préparer une
instruction INSERT avec des paramètres, puis d’utiliser une liaison de paramètre de
table selon les lignes (où la taille de la table est contrôlée par la propriété
BatchSize ). Si vous sélectionnez Lot et que le fournisseur ne prend pas en charge
cette méthode, la destination ODBC bascule automatiquement en mode Ligne par
ligne .

Ligne par ligne: dans ce mode, la destination ODBC prépare une instruction
INSERT avec des paramètres et utilise SQL Execute pour insérer les lignes une par
une.
Gestion des erreurs
La destination ODBC a une sortie d'erreur. La sortie d'erreur du composant contient les
colonnes de sortie suivantes :

Code d’erreur: numéro qui correspond à l’erreur actuelle. Consultez la


documentation de votre base de données source pour obtenir la liste des erreurs.
Pour obtenir la liste des codes d'erreur SSIS, consultez le Guide de référence des
erreurs et des événements SSIS.

Colonne d’erreur: colonne source à l’origine de l’erreur (pour les erreurs de


conversion).

Colonnes de données de sortie standard.

Selon le comportement paramétré pour les erreurs, la destination ODBC prend en


charge les erreurs de retour (conversion de données, troncation) qui se produisent
pendant le processus de récupération dans la sortie d'erreur. Pour plus d’informations,
consultez Éditeur de source ODBC (page Sortie d’erreur).

Parallélisme
Il n'existe aucune limitation quant au nombre de composants de destination ODBC
pouvant s'exécuter en parallèle sur la même table ou des tables différentes, sur le même
ordinateur ou sur des ordinateurs différents (autre que les limites de session globale
habituelles).

Toutefois, les limites du fournisseur ODBC utilisé peuvent limiter le nombre de


connexions simultanées par le fournisseur. Ces limites restreignent le nombre
d'instances parallèles prises en charge pour la destination ODBC. Le développeur SSIS
doit avoir connaissance des limites de tout fournisseur ODBC utilisé et en tenir compte
lors de la génération de packages SSIS.

Vous devez également savoir qu'un chargement simultané dans la même table peut
réduire les performances en raison du verrouillage des enregistrements standard. Cela
dépend des données chargées et de l'organisation de table.

Résolution des problèmes liés à la destination


ODBC
Vous pouvez consigner dans un journal les appels que la source ODBC effectue vers des
fournisseurs de données externes. Cette fonctionnalité de journalisation permet de
résoudre des problèmes liés à l'enregistrement de données vers des sources de données
externes que réalise la destination ODBC. Pour consigner les appels effectués par la
destination ODBC vers des fournisseurs ODBC externes, activez la trace du gestionnaire
de pilotes ODBC. Pour plus d’informations, consultez la documentation Microsoft sur la
génération d’une trace ODBC avec l’administrateur de sources de données ODBC.

Configuration de la destination ODBC


Vous pouvez configurer la destination ODBC par programmation ou par le biais du
concepteur SSIS

Pour plus d’informations, consultez l’une des rubriques suivantes :

Éditeur de destination ODBC (page Gestionnaire de connexions)

Éditeur de destination ODBC (page Mappages)

Éditeur de destination ODBC (page Sortie d'erreur)

La boîte de dialogue Éditeur avancé contient les propriétés qui peuvent être définies
par programme.

Pour ouvrir la boîte de dialogue Éditeur avancé :

Sur l’écran Flux de données de votre projet SQL Server 2019 Integration Services
(SSIS) , cliquez avec le bouton droit sur la destination ODBC, puis sélectionnez
Afficher l’éditeur avancé.

Pour plus d’informations sur les propriétés que vous pouvez définir dans la boîte de
dialogue Éditeur avancé, consultez Propriétés personnalisées des destinations ODBC.

Dans cette section


Charger des données à l’aide de la destination ODBC

Propriétés personnalisées des destinations ODBC

Éditeur de destination ODBC (page


Gestionnaire de connexions)
Utilisez la page Gestionnaire de connexions de la boîte de dialogue Éditeur de
destination ODBC pour sélectionner le gestionnaire de connexions ODBC de la
destination. Cette page vous permet également de sélectionner une table ou une vue à
partir de la base de données.

Pour ouvrir l'Éditeur de destination ODBC (page Gestionnaire de connexions)

Liste des tâches


Dans SQL Server Data Tools, ouvrez le package SQL Server 2019 Integration
Services (SSIS) qui possède la destination ODBC.

Sous l’onglet Flux de données , double-cliquez sur la destination ODBC.

Dans l' Éditeur de destination ODBC, cliquez sur Gestionnaire de connexions.

Options

Gestionnaire de connexions
Sélectionnez un gestionnaire de connexions ODBC existant dans la liste ou cliquez sur
Nouveau pour créer une nouvelle connexion. La connexion peut concerner n'importe
quelle base de données prise en charge par ODBC.

Nouveau

Cliquez sur Nouveau. La boîte de dialogue Configurer l'Éditeur du gestionnaire de


connexions ODBC s'ouvre et vous permet de créer un nouveau gestionnaire de
connexions.

Mode d'accès aux données

Spécifiez la méthode de chargement des données dans la destination. Ces fonctions


sont répertoriées dans le tableau suivant :

Option Description

Nom Sélectionnez cette option pour configurer la destination ODBC en mode par lot.
de la Lorsque vous sélectionnez cette option, les options suivantes sont disponibles :
table -
Lot
Option Description

Nom de la table ou de la vue: sélectionnez une table ou une vue disponible dans la
liste.

Cette liste contient les 1 000 premières tables uniquement. Si votre base de données
contient plus de 1 000 tables, vous pouvez taper le début du nom d'une table ou
utiliser le caractère générique (*) pour entrer une partie du nom afin d'afficher la table
ou les tables que vous souhaitez utiliser.

Taille du lot: entrez la taille du lot pour le chargement en bloc. Il s'agit du nombre de
lignes chargées dans un même lot.

Nom Sélectionnez cette option pour configurer la destination ODBC de manière à insérer les
de la lignes dans la table de destination une par une. Lorsque vous sélectionnez cette option,
table - l'option suivante est disponible :
Ligne
par
ligne

Nom de la table ou de la vue: sélectionnez dans la liste une table ou une vue
disponible dans la base de données.

Cette liste contient les 1 000 premières tables uniquement. Si votre base de données
contient plus de 1 000 tables, vous pouvez taper le début du nom d'une table ou
utiliser le caractère générique (*) pour entrer une partie du nom afin d'afficher la table
ou les tables que vous souhaitez utiliser.

PRÉVERSION
Cliquez sur Aperçu pour afficher jusqu'à 200 lignes de données pour la table
sélectionnée.

Éditeur de destination ODBC (page Mappages)


La page Mappages de la boîte de dialogue Éditeur de destination ODBC vous permet
de mapper les colonnes d’entrée aux colonnes de destination.

Options

Colonnes d’entrée disponibles

Liste des colonnes d'entrée disponibles. Par glisser-déplacer, mappez une colonne
d'entrée à une colonne de destination disponible.
Colonnes de destination disponibles
Liste des colonnes de destination disponibles. Par glisser-déplacer, mappez une colonne
de destination à une colonne d'entrée disponible.

Colonne d'entrée
Affichez les colonnes d’entrée que vous avez sélectionnées. Vous pouvez supprimer des
mappages en sélectionnant <ignorer> de manière à exclure des colonnes de la sortie.

Colonne de destination

Affiche toutes les colonnes de destination disponibles, mappées et non mappées.

Éditeur de destination ODBC (page Sortie


d'erreur)
Utilisez la page Sortie d'erreur de la boîte de dialogue Éditeur de destination ODBC
pour sélectionner les options de gestion des erreurs.

Pour ouvrir l'Éditeur de destination ODBC (page Sortie d'erreur)

Liste des tâches


Dans SQL Server Data Tools, ouvrez le package SQL Server 2019 Integration
Services (SSIS) qui possède la destination ODBC.

Sous l’onglet Flux de données , double-cliquez sur la destination ODBC.

Dans l' Éditeur de destination ODBC, cliquez sur Sortie d'erreur.

Options

Entrée/sortie

Affichez le nom de la source de données.

Colonne

Non utilisé.
Error
Sélectionnez la façon dont la destination ODBC doit gérer les erreurs dans un flux :
ignorer l'échec, rediriger la ligne ou faire échouer le composant.

Troncation
Sélectionnez la façon dont la destination ODBC doit gérer la troncation dans un flux :
ignorer l'échec, rediriger la ligne ou faire échouer le composant.

Description

Affichez la description d'une erreur.

Définir cette valeur sur les cellules sélectionnées

Sélectionnez la façon dont la destination ODBC gère l'ensemble des cellules


sélectionnées lorsqu'une erreur ou une troncation se produit : ignorer l'échec, rediriger
la ligne ou faire échouer le composant.

Appliquer
Appliquez les options de gestion des erreurs aux cellules sélectionnées.

Options de gestion des erreurs


Vous pouvez utiliser les options suivantes pour configurer la façon dont la destination
ODBC gère les erreurs et les troncations.

Composant défaillant
La tâche de flux de données échoue lorsqu'une erreur ou une troncation a lieu. Il s'agit
du comportement par défaut.

Ignorer l'échec

L'erreur ou la troncation est ignorée.

Rediriger le flux
La ligne qui provoque l'erreur ou la troncation est dirigée vers la sortie d'erreur de la
destination ODBC. Pour plus d'informations, consultez Destination ODBC.
Charger des données à l'aide de la
destination ODBC
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette procédure montre comment charger des données à l'aide de la destination ODBC.
Pour pouvoir ajouter et configurer une destination ODBC, le package doit inclure au
moins une tâche de flux de données et une source.

Pour charger des données à l'aide d'une destination


ODBC
1. Dans SQL Server Data Tools, ouvrez le package Integration Services souhaité.

2. Cliquez sur l'onglet Flux de données , puis dans la Boîte à outils, faites glisser la
destination ODBC sur l'aire de conception.

3. Faites glisser une sortie disponible d'un composant de flux de données dans
l'entrée de la destination ODBC.

4. Double-cliquez sur la destination ODBC.

5. Dans la boîte de dialogue Éditeur de destination ODBC , dans la page


Gestionnaire de connexions , sélectionnez un gestionnaire de connexions ODBC
existant ou cliquez sur Nouveau pour créer un gestionnaire de connexions.

6. Sélectionnez la méthode d'accès aux données.

Nom de la table - Lot: sélectionnez cette option pour configurer la


destination ODBC de manière à utiliser le mode de traitement par lots.
Lorsque vous sélectionnez cette option, vous pouvez définir Taille du lot.

Nom de la table - Ligne par ligne: sélectionnez cette option pour configurer
la destination ODBC de manière à insérer les lignes de la table de destination
une par une. Lorsque vous sélectionnez cette option, les données sont
chargées dans la table une ligne à la fois.

7. Dans le champ Nom de la table ou de la vue , sélectionnez une table ou une vue
disponible de la base de données dans la liste ou tapez une expression régulière
pour identifier la table. Cette liste contient les 1 000 premières tables uniquement.
Si votre base de données contient plus de 1 000 tables, vous pouvez taper le début
du nom d'une table ou utiliser le caractère générique (*) pour entrer une partie du
nom afin d'afficher la table ou les tables que vous souhaitez utiliser.

8. Vous pouvez cliquer sur Aperçu pour afficher jusqu'à 200 lignes de données de la
table sélectionnée dans la destination ODBC.

9. Cliquez sur Mappages , puis mappez les colonnes de la liste Colonnes d'entrée
disponibles aux colonnes de la liste Colonnes de destination disponibles en
faisant glisser les colonnes d'une liste à l'autre.

10. Pour configurer l'affichage des erreurs, cliquez sur Sortie d'erreur.

11. Cliquez sur OK.

12. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Éditeur de destination ODBC (page Gestionnaire de connexions)
Éditeur de destination ODBC (page Mappages)
Éditeur de source ODBC (page Sortie d'erreur)
Propriétés personnalisées des
destinations ODBC
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le tableau suivant décrit les propriétés personnalisées de la destination ODBC. Toutes


les propriétés peuvent être définies à partir des expressions de propriété SSIS.

Nom de la Type de Description


propriété données

Connexion Connexion Connexion ODBC utilisée pour accéder à la base de


ODBC données de destination.

BatchSize Integer Taille du lot pour le chargement en bloc. Il s’agit du


nombre de lignes chargées dans un même lot. Cette valeur
est valide uniquement si la liaison de paramètre selon les
lignes est prise en charge. Si la liaison de paramètre selon
les lignes n'est pas prise en charge, la taille de lot est 1.

BindCharColumnAs Integer Cette propriété détermine la manière dont la destination


(énumération) ODBC lie les colonnes avec des types chaîne à plusieurs
octets, tels que SQL_CHAR, SQL_VARCHAR ou
SQL_LONGVARCHAR.

Les valeurs possibles sont Unicode (0), qui lie les colonnes
en tant que SQL_C_WCHAR, et ANSI (1), qui lie les
colonnes en tant SQL_C_CHAR). La valeur par défaut est
Unicode (0).

Unicode est la meilleure solution pour la plupart des


fournisseurs ODBC 3.x et les fournisseurs ODBC 2.x qui
prennent en charge la liaison des paramètres CHAR en tant
que chaînes étendues. Lorsque vous sélectionnez Unicode
et que ExposeCharColumnsAsUnicode a la valeur True,
l'utilisateur n'a pas besoin de spécifier la page de codes
utilisée par la base de données source.

Remarque : Cette propriété n’est pas disponible dans


l’Éditeur de destination ODBCmais peut être définie à
l’aide de l’Éditeur avancé.
Nom de la Type de Description
propriété données

BindNumericAs Integer Cette propriété détermine la manière dont la destination


(énumération) ODBC lie les colonnes comportant des données
numériques avec les types de données
SQL_TYPE_NUMERIC et SQL_TYPE_DECIMAL.

Les valeurs possibles sont Char (0), qui lie les colonnes en
tant que SQL_C_CHAR et Numérique (1), qui lie les
colonnes en tant que SQL_C_NUMERIC. La valeur par
défaut est Char (0).

Remarque :Cette propriété n’est pas disponible dans


l’Éditeur de destination ODBCmais peut être définie à
l’aide de l’Éditeur avancé.

DefaultCodePage Integer Page de codes à utiliser pour les colonnes de chaîne.

Remarque :Cette propriété n’est pas disponible dans


l’Éditeur de destination ODBCmais peut être définie à
l’aide de l’Éditeur avancé.

InsertMethod Integer Méthode utilisée pour insérer les données. Les valeurs
(énumération) possibles sont Ligne par ligne (0) et Lot (1). La valeur par
défaut est Lot (1).

Pour plus d’informations sur ces options, consultez


« Options de chargement » dans la rubrique Destination
ODBC.

StatementTimeout Integer Nombre de secondes pendant lequel attendre l'exécution


d'une instruction SQL avant de la retourner à l'application
avec une erreur. La valeur par défaut est 120.

TableName String Nom de la table de destination dans laquelle les données


sont insérées.
Nom de la Type de Description
propriété données

TransactionSize Integer Nombre d'insertions dans une transaction unique. La


valeur par défaut est 0, ce qui signifie que la destination
ODBC fonctionne en mode de validation automatique.

Étant donné que le gestionnaire de connexions ODBC ne


prend pas en charge les transactions distribuées, il est
possible d'attribuer à cette propriété une valeur autre que
0. Toutefois, si la propriété RetainSameConnection du
gestionnaire de connexions a la valeur true , cette
propriété doit avoir la valeur 0.

Remarque :Cette propriété n’est pas disponible dans


l’Éditeur de destination ODBCmais peut être définie à
l’aide de l’Éditeur avancé.

LobChunkSize Integer Taille de segment allouée pour les colonnes LOB.


Source ODBC
Article • 29/03/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La source ODBC extrait les données d'une base de données compatible ODBC à l'aide
d'une table de base de données, d'une vue ou d'une instruction SQL.

La source ODBC utilise les modes d'accès aux données suivants pour extraire les
données :

Une table ou une vue.

Les résultats d'une instruction SQL.

La source utilise un gestionnaire de connexions ODBC qui spécifie le fournisseur à


utiliser.

Une source ODBC inclut les colonnes de sortie de données sources. Lorsque les
colonnes de sortie sont mappées dans la destination ODBC aux colonnes de destination,
des erreurs peuvent se produire si aucune colonne de sortie n'est mappée aux colonnes
de destination. Même si des colonnes de types différents peuvent être mappées, si les
données de sortie ne sont pas compatibles pour la destination, une erreur se produit au
moment de l'exécution. En fonction du comportement des erreurs, l'erreur sera ignorée,
entraînera un échec ou la ligne sera envoyée à la sortie d'erreur.

La source ODBC a une sortie normale et une sortie d'erreur.

Gestion des erreurs


La source ODBC a une sortie d'erreur. La sortie d'erreur du composant contient les
colonnes de sortie suivantes :

Code d’erreur: numéro qui correspond à l’erreur actuelle. Consultez la


documentation de la base de données ODBC que vous utilisez pour obtenir une
liste d'erreurs. Pour obtenir la liste des codes d'erreur SSIS, consultez le Guide de
référence des erreurs et des événements SSIS.

Colonne d’erreur: colonne source à l’origine de l’erreur (pour les erreurs de


conversion).

Colonnes de données de sortie standard.


Selon le comportement paramétré pour les erreurs, la source ODBC prend en charge les
erreurs de retour (conversion de données, troncation) qui se produisent pendant le
processus d'extraction dans la sortie d'erreur. Pour plus d’informations, consultez Éditeur
de destination ODBC (page Gestionnaire de connexions).

Prise en charge du type de données


Pour plus d’informations sur les types de données pris en charge par la source ODBC,
consultez le Connecteur pour Open Database Connectivity (ODBC).

Options d'extraction
La source ODBC s’exécute en mode Lot ou Ligne par ligne . Le mode utilisé est
déterminé par la propriété FetchMethod . La liste suivante décrit les différents modes.

Lot: les composants tentent d’utiliser la méthode de récupération la plus efficace


en fonction des capacités perçues du fournisseur ODBC. Pour la plupart des
fournisseurs ODBC modernes, il s’agit de SQLFetchScroll avec une liaison de table
(où la taille de la table est déterminée par la propriété BatchSize ). Si vous
sélectionnez Lot et que le fournisseur ne prend pas en charge cette méthode, la
destination ODBC bascule automatiquement en mode Ligne par ligne .

Ligne par ligne: le composant utilise SQLFetch pour extraire les lignes une par une.

Pour plus d’informations sur la propriété FetchMethod , consultez Propriétés


personnalisées des sources ODBC.

Parallélisme
Il n'existe aucune limitation quant au nombre de composants de source ODBC pouvant
s'exécuter en parallèle sur la même table ou des tables différentes, sur le même
ordinateur ou sur des ordinateurs différents (autre que les limites de session globale
habituelles).

Toutefois, les limites du fournisseur ODBC utilisé peuvent limiter le nombre de


connexions simultanées par le fournisseur. Ces limites restreignent le nombre
d'instances parallèles prises en charge pour la source ODBC. Le développeur SSIS doit
avoir connaissance des limites de tout fournisseur ODBC utilisé et en tenir compte lors
de la génération de packages SSIS.
Résolution des problèmes liés à la source ODBC
Vous pouvez consigner dans un journal les appels que la source ODBC effectue vers des
fournisseurs de données externes. Cette fonctionnalité de journalisation permet de
résoudre des problèmes liés au chargement de données qu'effectue la source ODBC à
partir de sources de données externes. Pour consigner les appels effectués par la source
ODBC à destination de fournisseurs de données externes, activez la trace du
gestionnaire de pilotes ODBC. Pour plus d’informations, consultez la documentation
Microsoft intitulée Génération d’une trace ODBC avec l’administrateur des source de
données ODBC.

Configuration de la source ODBC


Vous pouvez définir la source ODBC par programmation ou par le biais du concepteur
SSIS.

La boîte de dialogue Éditeur avancé contient les propriétés qui peuvent être définies
par programme.

Pour ouvrir la boîte de dialogue Éditeur avancé :

Sur l’écran Flux de données de votre projet SQL Server 2019 Integration Services
(SSIS) , cliquez avec le bouton droit sur la source ODBC, puis sélectionnez Afficher
l’éditeur avancé.

Pour plus d’informations sur les propriétés que vous pouvez définir dans la boîte de
dialogue Éditeur avancé, consultez Propriétés personnalisées des sources ODBC.

Dans cette section


Extraire des données à l'aide de la source ODBC

Propriétés personnalisées des sources ODBC

Éditeur de source ODBC (page Gestionnaire de


connexions)
Utilisez la page Gestionnaire de connexions de la boîte de dialogue Éditeur de source
ODBC pour sélectionner le gestionnaire de connexions ODBC pour la source. Cette page
vous permet également de sélectionner une table ou une vue à partir de la base de
données.
Liste des tâches
Pour ouvrir l'Éditeur de source ODBC (page Gestionnaire de connexions)

Dans SQL Server Data Tools, ouvrez le package SQL Server 2019 Integration
Services (SSIS) qui possède la source ODBC.

Sous l’onglet Flux de données , double-cliquez sur la source ODBC.

Options

Gestionnaire de connexions

Sélectionnez un gestionnaire de connexions ODBC existant dans la liste ou cliquez sur


Nouveau pour créer une nouvelle connexion. La connexion peut concerner n'importe
quelle base de données prise en charge par ODBC.

Nouveau

Cliquez sur Nouveau. La boîte de dialogue Configurer l'Éditeur du gestionnaire de


connexions ODBC s'ouvre et vous permet de créer un nouveau gestionnaire de
connexions ODBC.

Mode d'accès aux données


Spécifiez la méthode de sélection des données dans la source. Ces fonctions sont
répertoriées dans le tableau suivant :

Option Description

Nom de la Permet de récupérer les données d'une table ou d'une vue dans la source de
table données ODBC. Lorsque vous sélectionnez cette option, sélectionnez une valeur
parmi les suivantes dans la liste :

Nom de la table ou de la vue: sélectionnez une table ou une vue disponible dans la
liste ou tapez une expression régulière pour identifier la table.

Cette liste contient les 1 000 premières tables uniquement. Si votre base de
données contient plus de 1 000 tables, vous pouvez taper le début du nom d'une
table ou utiliser le caractère générique (*) pour entrer une partie du nom afin
d'afficher la table ou les tables que vous souhaitez utiliser.
Option Description

Commande Extrayez les données de la source de données ODBC à l'aide d'une requête SQL.
SQL Vous devez écrire la requête dans la syntaxe de la base de données source dans
laquelle vous travaillez. Lorsque vous sélectionnez cette option, entrez une requête
selon l'une des méthodes suivantes :

Entrez le texte de la requête SQL dans le champ Texte de la commande SQL .

Cliquez sur Parcourir pour charger la requête SQL à partir d'un fichier texte.

Pour vérifier la syntaxe du texte de la requête, cliquez sur Analyser .

PRÉVERSION

Cliquez sur Aperçu pour afficher les 200 premières lignes de données extraites de la
table ou de la vue sélectionnée.

Éditeur de source ODBC (page Colonnes)


Utilisez la page Colonnes de la boîte de dialogue Éditeur de source ODBC pour mapper
une colonne de sortie à chaque colonne externe (source).

Liste des tâches


Pour ouvrir l'Éditeur de source ODBC (page Colonnes)

1. Dans SQL Server Data Tools, ouvrez le package SQL Server 2019 Integration
Services (SSIS) qui possède la source ODBC.

2. Sous l’onglet Flux de données , double-cliquez sur la source ODBC.

3. Dans l' Éditeur de source ODBC, cliquez sur Colonnes.

Options

Colonnes externes disponibles

Liste des colonnes externes disponibles dans la source de données. Vous ne pouvez pas
ajouter ou supprimer des colonnes à l'aide de cette table. Sélectionnez les colonnes à
utiliser dans la source. Les colonnes sélectionnées sont ajoutées à la liste Colonne
externe dans l'ordre de leur sélection.
Activez la case à cocher Sélectionner tout pour sélectionner toutes les colonnes.

Colonne externe
Vue des colonnes externes (sources) selon l'ordre dans lequel vous les visualisez lorsque
vous configurez des composants qui consomment des données à partir de la source
ODBC.

Colonne de sortie
Spécifiez un nom unique pour chaque colonne de sortie. Le nom par défaut est celui de
la colonne externe (source) sélectionnée ; vous pouvez néanmoins choisir n'importe quel
nom unique et significatif. Le nom entré est affiché dans le concepteur SSIS.

Éditeur de source ODBC (page Sortie d'erreur)


Utilisez la page Sortie d'erreur de la boîte de dialogue Éditeur de source ODBC pour
sélectionner les options de gestion des erreurs.

Liste des tâches


Pour ouvrir l'Éditeur de source ODBC (page Sortie d'erreur)

Dans SQL Server Data Tools, ouvrez le package SQL Server 2019 Integration
Services (SSIS) qui possède la source ODBC.

Sous l’onglet Flux de données , double-cliquez sur la source ODBC.

Dans l' Éditeur de source ODBC, cliquez sur Sortie d'erreur.

Options

Entrée/sortie

Affichez le nom de la source de données.

Colonne
Non utilisé.
Error
Sélectionnez la façon dont la source ODBC doit gérer les erreurs dans un flux : ignorer
l'échec, rediriger la ligne ou faire échouer le composant.

Troncation
Sélectionnez la façon dont la source ODBC doit gérer la troncation dans un flux : ignorer
l'échec, rediriger la ligne ou faire échouer le composant.

Description

Non utilisé.

Définir cette valeur sur les cellules sélectionnées

Sélectionnez la façon dont la source ODBC gère l'ensemble des cellules sélectionnées
lorsqu'une erreur ou une troncation se produit : ignorer l'échec, rediriger la ligne ou
faire échouer le composant.

Appliquer
Appliquez les options de gestion des erreurs aux cellules sélectionnées.

Options de gestion des erreurs


Vous pouvez utiliser les options suivantes pour configurer la façon dont la source ODBC
gère les erreurs et les troncations.

Composant défaillant
La tâche de flux de données échoue lorsqu'une erreur ou une troncation a lieu. Il s'agit
du comportement par défaut.

Ignorer l'échec

L'erreur ou la troncation est ignorée.

Rediriger le flux
La ligne qui provoque l'erreur ou la troncation est dirigée vers la sortie d'erreur de la
source ODBC.
Extraire des données à l'aide de la
source ODBC
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette procédure explique comment extraire des données à l'aide d'une source ODBC.
Pour pouvoir ajouter et configurer une source ODBC, le package doit inclure au moins
une tâche de flux de données.

Pour extraire des données à l'aide d'une source ODBC


1. Dans SQL Server Data Tools, ouvrez le package SQL Server 2019 Integration
Services (SSIS) souhaité.

2. Cliquez sur l'onglet Flux de données , puis dans la Boîte à outils, faites glisser la
source ODBC sur l'aire de conception.

3. Double-cliquez sur la source ODBC.

4. Dans la boîte de dialogue Éditeur de source ODBC , dans la page Gestionnaire de


connexions , sélectionnez un gestionnaire de connexions ODBC existant ou cliquez
sur Nouveau pour créer un gestionnaire de connexions.

5. Sélectionnez la méthode d'accès aux données.

Nom de la table: sélectionnez une table ou une vue dans la base de données
ou tapez une expression régulière pour identifier la table à laquelle le
gestionnaire de connexions ODBC se connecte.

Cette liste contient les 1 000 premières tables uniquement. Si votre base de
données contient plus de 1 000 tables, vous pouvez taper le début du nom
d'une table ou utiliser le caractère générique (*) pour entrer une partie du
nom afin d'afficher la table ou les tables que vous souhaitez utiliser.

Commande SQL: tapez une commande SQL ou cliquez sur Parcourir pour
charger la requête SQL à partir d'un fichier texte.

6. Vous pouvez cliquer sur Aperçu pour afficher jusqu'à 200 lignes de données
extraites par la source ODBC.
7. Pour mettre à jour le mappage entre les colonnes externes et les colonnes de
sortie, cliquez sur Colonnes et sélectionnez des colonnes dans la liste Colonne
externe .

8. Si nécessaire, mettez à jour les noms des colonnes de sortie en modifiant les
valeurs dans la liste Colonne de sortie .

9. Pour configurer l'affichage des erreurs, cliquez sur Sortie d'erreur.

10. Cliquez sur OK.

11. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Éditeur de source ODBC (page Gestionnaire de connexions)
Éditeur de source ODBC (page Colonnes)
Éditeur de source ODBC (page Sortie d'erreur)
Propriétés personnalisées des sources
ODBC
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le tableau suivant décrit les propriétés personnalisées de la source ODBC. Toutes les
propriétés peuvent être définies à partir des expressions de propriété SSIS.

Nom de la propriété Type de Description


données

Connexion Connexion Connexion ODBC utilisée pour accéder à la


ODBC base de données source.

AccessMode Integer Mode utilisé pour accéder à la base de


(énumération) données. Les valeurs possibles sont Nom de la
table (0) et Commande SQL (1).

La valeur par défaut est Nom de la table (0).

BatchSize Integer Taille du lot pour l'extraction en bloc. Il s'agit


du nombre d'enregistrements extraits en tant
que table. Si le fournisseur ODBC sélectionné
ne prend pas en charge les tables, la taille de
lot est 1.

BindCharColumnAs Integer Cette propriété détermine la manière dont la


(énumération) source ODBC lie les colonnes avec des types
chaîne à plusieurs octets, telles que SQL_CHAR,
SQL_VARCHAR ou SQL_LONGVARCHAR.

Les valeurs possibles sont Unicode (0), qui lie


les colonnes en tant que SQL_C_WCHAR, et
ANSI (1), qui lie les colonnes en tant
SQL_C_CHAR). La valeur par défaut est Unicode
(0).

Remarque: Cette propriété n’est pas disponible


dans l’ Éditeur de source ODBC, mais peut être
définie à l’aide de l’ Éditeur avancé.
Nom de la propriété Type de Description
données

BindNumericAs Integer Cette propriété détermine la manière dont la


(énumération) source ODBC lie les colonnes comportant des
données numériques avec les types de
données SQL_TYPE_NUMERIC et
SQL_TYPE_DECIMAL.

Les options possibles sont Char (0), qui lie les


colonnes en tant que SQL_C_CHAR et
Numérique (1), qui lie les colonnes en tant que
SQL_C_NUMERIC. La valeur par défaut est Char
(0).

Remarque: Cette propriété n’est pas disponible


dans l’ Éditeur de source ODBC, mais peut être
définie à l’aide de l’ Éditeur avancé.

DefaultCodePage Integer Page de codes à utiliser pour les colonnes de


sortie de chaîne.

Remarque: Cette propriété n’est pas disponible


dans l’ Éditeur de source ODBC, mais peut être
définie à l’aide de l’ Éditeur avancé.

ExposeCharColumnsAsUnicode Booléen Cette propriété détermine la manière dont le


composant expose les colonnes CHAR. La
valeur par défaut est False, qui indique que les
colonnes CHAR sont exposées en tant que
chaînes à plusieurs octets (DT_STR). Si la valeur
est True, les colonnes CHAR sont exposées en
tant que chaînes étendues (DT_WSTR).

Remarque: Cette propriété n’est pas disponible


dans l’ Éditeur de source ODBC, mais peut être
définie à l’aide de l’ Éditeur avancé.

FetchMethod Integer Méthode utilisée pour obtenir les données. Les


(énumération) options possibles sont Ligne par ligne (0) et Lot
(1). La valeur par défaut est Lot (1).

Pour plus d’informations sur ces options,


consultez Source ODBC.

Remarque: Cette propriété n’est pas disponible


dans l’ Éditeur de source ODBC, mais peut être
définie à l’aide de l’ Éditeur avancé.
Nom de la propriété Type de Description
données

SqlCommand String Commande SQL à exécuter lorsque la valeur


d'AccessMode est Commande SQL.

StatementTimeout Integer Nombre de secondes pendant lequel attendre


l'exécution d'une instruction SQL avant de la
retourner à l'application avec une erreur. La
valeur par défaut est 0. La valeur 0 indique que
le système n'expire pas.

TableName String Nom de la table contenant les données


utilisées lorsqu'AccessMode a la valeur Nom de
la table.

LobChunckSize Integer Taille de segment allouée pour les colonnes


LOB.

Voir aussi
Source ODBC
Éditeur de source ODBC (page Gestionnaire de connexions)
Source OLE DB
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La source OLE DB extrait des données d'une série de bases de données relationnelles
compatibles OLE DB à l'aide d'une table de base de données, d'une vue ou d'une
commande SQL. Par exemple, la source OLE DB peut extraire des données de tables de
bases de données Microsoft Office Access ou SQL Server .

7 Notes

Si la source de données est Microsoft Office Excel 2007, la source de données


requiert un gestionnaire de connexions différent des versions antérieures d'Excel.
Pour plus d’informations, consultez Établir une connexion à un classeur Excel.

La source OLE DB fournit quatre modes d'accès aux données différents pour l'extraction
des données :

Une table ou une vue.

Une table ou une vue spécifiée dans une variable.

Les résultats d'une instruction SQL. La requête peut être une requête paramétrable.

Les résultats d'une instruction SQL stockée dans une variable.

7 Notes

Lorsque vous utilisez une instruction SQL pour appeler une procédure stockée qui
retourne des résultats à partir d'une table temporaire, utilisez l'option WITH RESULT
SETS afin de définir les métadonnées du jeu de résultats.

Si vous utilisez une requête paramétrable, vous pouvez mapper des variables à des
paramètres pour spécifier les valeurs de paramètres individuels dans les instructions
SQL.

Cette source utilise un gestionnaire de connexions OLE DB pour se connecter à une


source de données et le gestionnaire de connexions spécifie le fournisseur OLE DB à
utiliser. Pour plus d’informations, consultez OLE DB Connection Manager.
Un projet Integration Services fournit également l'objet de source de données à partir
duquel vous pouvez créer un gestionnaire de connexions OLE DB et rendre ainsi les
sources de données et les vues de source de données disponibles pour la source OLE
DB.

Selon le fournisseur OLE DB, certaines contraintes s'appliquent à la source OLE DB :

Le fournisseur Microsoft OLE DB pour Oracle ne prend pas en charge les types de
données Oracle BLOB, CLOB, NCLOB, BFILE ou UROWID et la source OLE DB ne
peut pas extraire de données des tables qui contiennent des colonnes de ces types
de données.

Le fournisseur IBM OLE DB DB2 et le fournisseur Microsoft OLE DB DB2 ne


prennent pas en charge l'utilisation d'une commande SQL qui appelle une
procédure stockée. Lorsque ce type de commande est utilisé, la source OLE DB ne
peut pas créer les métadonnées de colonne ; par conséquent, les composants de
flux de données qui suivent la source OLE DB dans le flux de données ne disposent
pas de données de colonnes et l'exécution du flux de données échoue.

La source OLE DB a une sortie normale et une sortie d'erreur.

Utilisation d'instructions SQL paramétrables


La source OLE DB peut utiliser une instruction SQL pour extraire des données.
L'instruction peut être une instruction SELECT ou EXEC.

La source OLE DB utilise un gestionnaire de connexions OLE DB pour établir une


connexion à la source de données à partir de laquelle elle extrait des données. Selon le
fournisseur que le gestionnaire de connexions OLE DB utilise et le système de gestion
de bases de données relationnelles (SGBDR) auquel le gestionnaire de connexions se
connecte, différentes règles s'appliquent à la dénomination des paramètres et à la
constitution de leur liste. Si les noms des paramètres sont retournés à partir du SGBDR,
vous pouvez utiliser des noms de paramètres pour mapper les paramètres d'une liste de
paramètres aux paramètres d'une instruction SQL ; sinon, les paramètres sont mappés
aux paramètres de l'instruction SQL en fonction de leur position ordinale dans la liste de
paramètres. Les types de noms de paramètres pris en charge varient selon le
fournisseur. Par exemple, certains fournisseurs imposent l'utilisation de noms de
variables ou de colonnes, d'autres exigent l'emploi de noms symboliques tels que 0 ou
Param0. Il convient de consulter la documentation spécifique du fournisseur pour
obtenir des informations sur les noms de paramètres à utiliser dans les instructions SQL.
Lorsque vous utilisez un gestionnaire de connexions OLE DB, vous ne pouvez pas utiliser
de sous-requêtes paramétrables, car la source OLE DB ne peut pas dériver
d'informations de paramètre par le biais du fournisseur OLE DB. Vous pouvez toutefois
utiliser une expression pour concaténer les valeurs de paramètre dans la chaîne de
requête et définir la propriété SqlCommand de la source. Dans le Concepteur SSIS , vous
configurez une source OLE DB à l’aide de la boîte de dialogue Éditeur de source OLE DB
et mappez les paramètres à des variables dans la boîte de dialogue Définition des
paramètres de la requête .

Spécifications de paramètres à l'aide de positions


ordinales
Si aucun nom de paramètre n’est retourné, l’ordre selon lequel les paramètres sont
répertoriés dans la liste Paramètres dans la boîte de dialogue Définition des
paramètres de la requête régit le marqueur de paramètre auquel ils sont mappés au
moment de l’exécution. Le premier paramètre de la liste est-il mappé sur le premier
dans l'instruction SQL, le deuxième sur le deuxième ?, etc.

L’instruction SQL suivante sélectionne des lignes dans la table Produit de la base de
données AdventureWorks2012. Le premier paramètre dans la liste Mappages est
mappé au premier paramètre de la colonne Color , le deuxième paramètre à la colonne
Size .

SELECT * FROM Production.Product WHERE Color = ? AND Size = ?

Les noms de paramètres n'ont aucune incidence. Par exemple, si un paramètre porte le
même nom que la colonne à laquelle il s’applique, mais qu’il n’est pas placé à la bonne
position ordinale dans la liste Paramètres , le mappage de paramètres effectué au
moment de l’exécution utilise la position ordinale du paramètre, pas le nom du
paramètre.

La commande EXEC impose généralement l'utilisation des noms des variables qui
fournissent des valeurs de paramètres dans la procédure comme noms de paramètres.

Spécification de paramètres à l'aide de noms


Si les noms de paramètres réels sont retournés à partir du SGBDR, les paramètres
utilisés par une instruction SELECT et EXEC sont mappés par nom. Les noms de
paramètres doivent correspondre aux noms que la procédure stockée, exécutée par
l'instruction SELECT ou l'instruction EXEC, attend.
L’instruction SQL suivante exécute la procédure stockée uspGetWhereUsedProductID,
disponible dans la base de données AdventureWorks2012.

EXEC uspGetWhereUsedProductID ?, ?

La procédure stockée attend les variables, @StartProductID et @CheckDate , pour fournir


des valeurs de paramètres. L’ordre dans lequel les paramètres apparaissent dans la liste
Mappages n’est pas pertinent. Le seul impératif est que les noms de paramètres
correspondent aux noms de variables dans la procédure stockée, notamment le signe
@.

Mappage de paramètres à des variables


Les paramètres sont mappés à des variables qui fournissent les valeurs de paramètres au
moment de l'exécution. Les variables sont généralement des variables définies par
l’utilisateur, bien que vous puissiez utiliser les variables système fournies par Integration
Services . Si vous utilisez des variables définies par l'utilisateur, assurez-vous que vous
choisissez un type de données compatible avec celui de la colonne référencée par le
paramètre mappé. Pour plus d’informations, consultez Variables Integration Services
(SSIS).

Résolution des problèmes liés à la source OLE


DB
Vous pouvez consigner les appels que la source OLE DB effectue vers des fournisseurs
de données externes. Cette fonctionnalité de journalisation permet de résoudre des
problèmes liés au chargement de données que réalise la source OLE DB depuis des
sources de données externes. Pour consigner les appels que la source OLE DB effectue
vers des fournisseurs de données externes, activez la journalisation de package et
sélectionnez l’événement Diagnostic au niveau du package. Pour plus d’informations,
consultez Outils de dépannage pour l’exécution des packages.

Configuration de la source OLE DB


Vous pouvez définir les propriétés par programmation ou par le biais du concepteur
SSIS .

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées OLE DB

Tâches associées
Extraire des données à l’aide de la source OLE DB

Mapper des paramètres de requête à des variables dans un composant de flux de


données

Définir les propriétés d’un composant de flux de données

Trier des données pour les transformations de fusion et de jointure de fusion

Contenu associé
Article Wiki, SSIS with Oracle Connectors (SSIS avec connecteurs Oracle) sur
social.technet.microsoft.com.

Éditeur de source OLE DB (page Gestionnaire


de connexions)
La page Gestionnaire de connexions de la boîte de dialogue Éditeur de source OLE DB
vous permet de sélectionner le gestionnaire de connexions OLE DB pour la source. Cette
page vous permet également de sélectionner une table ou une vue à partir de la base
de données.

7 Notes

Pour charger des données à partir d’une source de données qui utilise Microsoft
Office Excel 2007, utilisez une source OLE DB. Vous ne pouvez pas utiliser une
source Excel pour charger des données à partir d'une source de données Excel
2007. Pour plus d’informations, consultez Configurer le gestionnaire de
connexions OLE DB.

Pour charger des données à partir d'une source de données qui utilise Microsoft
Office Excel 2003 ou une version antérieure, utilisez une source Excel. Pour plus
d’informations, consultez Éditeur de source Excel (page Gestionnaire de
connexions).

7 Notes

La propriété CommandTimeout de la source OLE DB n’est pas disponible dans


l’Éditeur de source OLE DB, mais peut être définie à l’aide de l’Éditeur avancé. Pour
plus d’informations sur cette propriété, consultez la section sur la source Excel dans
Propriétés personnalisées OLE DB.

Ouvrir l’Éditeur de source OLE DB (page Gestionnaire de


connexions)
1. Ajoutez la source OLE DB au package Integration Services dans SQL Server Data
Tools (SSDT).

2. Cliquez avec le bouton droit sur le composant de la source, puis cliquez sur
Modifier.

3. Cliquez sur Gestionnaire de connexions.

Options statiques
Gestionnaire de connexions OLE DB
Sélectionnez un gestionnaire de connexions existant dans la liste ou créez une nouvelle
connexion en cliquant sur Nouveau.

Nouveau
Créez un gestionnaire de connexions à l’aide de la boîte de dialogue Configurer le
gestionnaire de connexions OLE DB .

Mode d'accès aux données


Spécifiez la méthode de sélection des données dans la source.

Option Description

Table ou vue Permet de récupérer les données d'une table ou d'une vue dans la
source de données OLE DB.

Variable de nom de table Spécifiez le nom de la table ou de la vue dans une variable.
ou de vue
Informations connexes :Utiliser des variables dans des packages
Option Description

Commande SQL Récupérez les données de la source de données OLE DB à l'aide


d'une requête SQL.

Commande SQL à partir Spécifiez le texte de la requête SQL dans une variable.
d'une variable

Préversion
Affichez un aperçu des résultats à l’aide de la boîte de dialogue Vue de données . Le
modeAperçu peut afficher jusqu’à 200 lignes.

7 Notes

Lorsque vous affichez l'aperçu des données, les colonnes ayant un type CLR défini
par l'utilisateur ne contiennent pas de données. Les valeurs <valeur trop grande
pour être affichée> ou System.Byte[] s’affichent à la place. La première s’affiche
lorsque le fournisseur SQL OLE DB accède à la source de données, la seconde
lorsque vous utilisez le fournisseur SQL Server Native Client.

Options dynamiques du mode d'accès aux données

Mode d'accès aux données = Table ou vue


Nom de la table ou de la vue
Sélectionnez le nom de la table ou de la vue dans la liste de celles qui sont disponibles
dans la source de données.

Mode d'accès aux données = Variable de nom de table ou de vue


Nom de la variable
Sélectionnez la variable qui contient le nom de la table ou de la vue.

Mode d'accès aux données = Commande SQL


Texte de la commande SQL
Entrez le texte d’une requête SQL, générez la requête en cliquant sur Générer une
requêteou recherchez le fichier qui contient le texte de la requête en cliquant sur
Parcourir.
Paramètres
Si vous avez entré une requête paramétrable en spécifiant ? comme espace réservé de
paramètre dans le texte de la requête, utilisez la boîte de dialogue Définition des
paramètres de la requête pour mapper des paramètres d’entrée de la requête à des
variables du package.

Construire une requête


Utilisez la boîte de dialogue Générateur de requêtes pour construire la requête SQL
visuellement.

Parcourir
Dans la boîte de dialogue Ouvrir , localisez le fichier qui contient le texte de la requête
SQL.

Analyser la requête
Vérifiez la syntaxe du texte de la requête.

Mode d'accès aux données = Commande SQL à partir d'une


variable

Nom de la variable
Sélectionnez la variable qui contient le texte de la requête SQL.

Éditeur de source OLE DB (page Colonnes)


Utilisez la page Colonnes de la boîte de dialogue Éditeur de source OLE DB pour
mapper une colonne de sortie à chaque colonne externe (source).

Options
Colonnes externes disponibles
Affiche la liste des colonnes externes disponibles dans la source de données. Vous ne
pouvez pas ajouter ou supprimer des colonnes à l'aide de cette table.

Colonne externe
Affiche les colonnes externes (sources) selon l'ordre dans lequel vous les visualisez
lorsque vous configurez des composants qui consomment des données à partir de cette
source. Vous pouvez modifier cet ordre en supprimant d'abord les colonnes
sélectionnées dans la table, puis en choisissant des colonnes externes dans la liste selon
un ordre différent.
Colonne de sortie
Spécifiez un nom unique pour chaque colonne de sortie. Le nom par défaut est celui de
la colonne externe (source) sélectionnée ; vous pouvez néanmoins choisir n'importe quel
nom unique et significatif. Le nom spécifié s'affiche dans le concepteur SSIS.

Éditeur de source OLE DB (page Sortie d'erreur)


La page Sortie d’erreur de la boîte de dialogue Éditeur de source OLE DB vous permet
de sélectionner les options de gestion des erreurs et de définir les propriétés sur les
colonnes de sortie d’erreur.

Options
Entrée/sortie
Affichez le nom de la source de données.

Colonne
Indique les colonnes (sources) externes que vous avez sélectionnées dans la page
Gestionnaire de connexions de la boîte de dialogue Éditeur de source OLE DB.

Error
Indiquez ce qui doit se produire lorsqu'une erreur se produit : ignorer l'échec, rediriger
la ligne ou faire échouer le composant.

Rubriques connexes :Gestion des erreurs dans les données

Troncation
Indiquez ce qui doit se produire lorsqu'une troncation se produit : ignorer l'échec,
rediriger la ligne ou faire échouer le composant.

Description
Affiche la description de l'erreur.

Définir cette valeur sur les cellules sélectionnées


Indiquez ce qui doit se produire pour l'ensemble des cellules sélectionnées lorsqu'une
erreur ou une troncation se produit : ignorer l'échec, rediriger la ligne ou faire échouer
le composant.

Appliquer
Appliquez l'option de gestion des erreurs aux cellules sélectionnées.

Voir aussi
Destination OLE DB
Variables Integration Services (SSIS)
Flux de données
Mapper des paramètres de requête à
des variables dans un composant de
flux de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Lorsque vous configurez la source OLE DB pour utiliser des requêtes paramétrables,
vous pouvez mapper les paramètres à des variables.

La source OLE DB utilise des requêtes paramétrables pour filtrer les données lorsqu'elle
se connecte à une source de données.

Pour mapper un paramètre de requête à une variable


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l'onglet Flux de données , puis dans la Boîte à outils, faites glisser la
source OLE DB sur l'aire de conception.

4. Cliquez avec le bouton droit sur la source OLE DB, puis cliquez sur Modifier.

5. Dans l' Éditeur de source OLE DB, choisissez un gestionnaire de connexions OLE
DB à utiliser pour se connecter à la source de données ou cliquez sur Nouveau
pour créer un gestionnaire de connexions OLE DB.

6. Sélectionnez l'option Commande SQL comme mode d'accès aux données, puis
tapez une requête paramétrable dans le volet Texte de la commande SQL .

7. Cliquez sur Paramètres.

8. Dans la boîte de dialogue Définition des paramètres de la requête, mappez


chaque paramètre de la liste Paramètres à une variable de la liste Variables ou
créez une variable en cliquant sur <Nouvelle variable>. Cliquez sur OK.

7 Notes
Seules les variables système et les variables définies par l'utilisateur qui se
trouvent dans l'étendue du package, dans un conteneur parent tel qu'une
boucle Foreach ou dans la tâche de flux de données contenant le composant
de flux de données, peuvent être mappées. La variable doit avoir un type de
données compatible avec la colonne de la clause WHERE à laquelle le
paramètre est affecté.

9. Vous pouvez cliquer sur Aperçu pour afficher jusqu'à 200 lignes de données
renvoyées par la requête.

10. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Source OLE DB
Transformation de recherche
Extraire des données à l'aide de la
source OLE DB
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour pouvoir ajouter et configurer une source OLE DB, le package doit inclure au moins
une tâche de flux de données.

Pour extraire des données à l'aide d'une source OLE DB


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l'onglet Flux de données , puis dans la Boîte à outils, faites glisser la
source OLE DB sur l'aire de conception.

4. Double-cliquez sur la source OLE DB.

5. Dans la boîte de dialogue Éditeur de source OLE DB , dans la page Gestionnaire


de connexions , sélectionnez un gestionnaire de connexions OLE DB existant ou
cliquez sur Nouveau pour créer un gestionnaire de connexions. Pour plus
d’informations, consultez OLE DB Connection Manager.

6. Sélectionnez la méthode d'accès aux données :

Table ou vue Sélectionnez une table ou une vue dans la base de données à
laquelle le gestionnaire de connexions OLE DB se connecte.

Variable de nom de table ou de vue Sélectionnez la variable définie par


l’utilisateur contenant le nom d’une table ou d’une vue dans la base de
données à laquelle le gestionnaire de connexions OLE DB se connecte.

Commande SQL Tapez une commande SQL ou cliquez sur Générer la


requête pour écrire une commande SQL à l’aide du Générateur de requêtes.

7 Notes

La commande peut inclure des paramètres. Pour plus d’informations,


consultez Mapper des paramètres de requête à des variables dans un
composant de flux de données.

Commande SQL à partir d’une variable Sélectionnez la variable définie par


l’utilisateur contenant la commande SQL.

7 Notes

Les variables doivent être définies dans la même étendue que la tâche
de flux de données qui contient la source OLE DB ou dans la même
étendue que le package. Par ailleurs, les données de la variable doivent
être de type string.

7. Pour mettre à jour le mappage entre les colonnes externes et les colonnes de
sortie, cliquez sur Colonnes et sélectionnez des colonnes dans la liste Colonne
externe .

8. Si vous le souhaitez, mettez à jour les noms des colonnes de sortie en modifiant
des valeurs dans la liste Colonne de sortie .

9. Pour configurer l'affichage des erreurs, cliquez sur Sortie d'erreur. Pour plus
d’informations, consultez Débogage d’un flux de données.

10. Vous pouvez cliquer sur Aperçu pour afficher jusqu’à 200 lignes de données
extraites par la source OLE DB.

11. Cliquez sur OK.

12. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Source OLE DB
Transformations Integration Services
Chemins Integration Services
tâche de flux de données
Destination OLE DB
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination OLE DB charge des données dans différentes bases de données


compatibles OLE DB à l'aide d'une table ou d'une vue de base de données ou d'une
commande SQL. Par exemple, la source OLE DB peut charger des données dans des
tables de bases de données Microsoft Office Access et SQL Server.

7 Notes

Si la source de données est Microsoft Office Excel 2007, la source de données


requiert un gestionnaire de connexions différent des versions antérieures d'Excel.
Pour plus d’informations, consultez Établir une connexion à un classeur Excel.

La destination OLE DB propose cinq modes d'accès différents pour charger les données :

Une table ou une vue. Vous pouvez indiquer une table ou une vue existante, ou
créer une table ;

une table ou une vue et des options de chargement rapide. Vous pouvez indiquer
une table existante ou en créer une ;

Une table ou une vue spécifiée dans une variable.

une table ou une vue spécifiée dans une variable et des options de chargement
rapide ;

Les résultats d'une instruction SQL.

7 Notes

La destination OLE DB ne prend pas en charge les paramètres. Si vous devez


exécuter une instruction INSERT paramétrable, envisagez d'utiliser la transformation
de commande OLE DB. Pour plus d’informations, consultez OLE DB Command
Transformation.

Lorsque la destination OLE DB charge des données qui utilisent un jeu de caractères
codés sur deux octets (DBCS), les données risquent d'être endommagées si le mode
d'accès aux données n'utilise pas l'option de chargement rapide et si le gestionnaire de
connexions OLE DB utilise le fournisseur Microsoft OLE DB pour SQL Server (SQLOLEDB).
Pour garantir l’intégrité des données DBCS, vous devez configurer le gestionnaire de
connexions OLE DB pour utiliser SQL Server Native Client ou l’un des modes d’accès
avec chargement rapide : Table ou vue - chargement rapide ou Variable de nom de
table ou de vue - chargement rapide. Ces deux options sont disponibles dans la boîte
de dialogue Éditeur de destination OLE DB . Quand vous programmez le modèle
d’objet SSIS, vous devez définir la propriété AccessMode sur OpenRowset à l’aide de
FastLoad ou OpenRowset à l’aide de FastLoad à partir de Variable.

7 Notes

Si vous utilisez la boîte de dialogue Éditeur de destination OLE DB dans le


concepteur SSIS pour créer la table de destination dans laquelle la destination OLE
DB insère des données, vous devrez peut-être sélectionner la table que vous venez
de créer manuellement. La sélection manuelle est nécessaire lorsqu'un fournisseur
OLE DB tel que le fournisseur OLE DB pour DB2, ajoute manuellement des
identificateurs de schéma au nom de la table.

7 Notes

L'instruction CREATE TABLE que la boîte de dialogue Éditeur de destination OLE DB


génère peut nécessiter une modification selon le type de destination. Par exemple,
certaines destinations ne prennent pas en charge les types de données que
l'instruction CREATE TABLE utilise.

Cette destination utilise un gestionnaire de connexions OLE DB pour se connecter à une


source de données et le gestionnaire de connexions indique le fournisseur OLE DB à
utiliser. Pour plus d’informations, consultez OLE DB Connection Manager.

Un projet Integration Services contient également l'objet de source de données à partir


duquel vous pouvez créer un gestionnaire de connexions OLE DB afin de rendre les
sources de données et les vues de sources de données disponibles pour la destination
OLE DB.

Une destination OLE DB inclut des mappages entre les colonnes d'entrée et les colonnes
de la source de données de destination. Vous n'avez pas besoin de mapper les colonnes
d'entrée à toutes les colonnes de destination, mais en fonction des propriétés des
colonnes de destination, des erreurs peuvent se produire si aucune colonne d'entrée
n'est mappée aux colonnes de destination. Par exemple, si une colonne de destination
n'autorise pas les valeurs null, une colonne d'entrée doit être mappée à cette colonne.
Par ailleurs, les types de données des colonnes mappées doivent être compatibles. Par
exemple, vous ne pouvez pas mapper une colonne d'entrée avec un type de données
string à une colonne de destination avec un type de données numeric.

La destination OLE DB comporte une entrée normale et une sortie d'erreur.

Pour plus d'informations sur les types de données, consultez Integration Services Data
Types.

Options de chargement rapide


Si la destination OLE DB utilise un mode d’accès aux données par chargement rapide,
vous pouvez spécifier les options de chargement rapide dans l’interface utilisateur,
Éditeur de destination OLE DB, pour la destination :

Conservez les valeurs d'identité du fichier de données importé ou utilisation de


valeurs uniques assignées par SQL Server.

Conserver une valeur null pendant l'opération de chargement en masse.

Vérifier les contraintes sur la table ou la vue cible au cours de l'opération


d'importation en masse.

Acquisition d'un verrou au niveau de la table pour la durée de l'opération de


chargement en masse.

Spécifier le nombre de lignes dans le traitement et la taille de validation.

Certaines options de chargement rapide sont stockées dans des propriétés spécifiques
de la destination OLE DB. Par exemple, FastLoadKeepIdentity spécifie s’il convient de
conserver des valeurs d’identification, FastLoadKeepNulls précise s’il faut conserver des
valeurs NULL et FastLoadMaxInsertCommitSize spécifie le nombre de lignes à valider en
tant que traitement. D’autres options de chargement rapide sont stockées dans une liste
séparée par des virgules dans la propriété FastLoadOptions. Si la destination OLE DB
utilise toutes les options de chargement rapide qui sont stockées dans FastLoadOptions
et répertoriées dans la boîte de dialogue Éditeur de destination OLE DB , la propriété
prend la valeur TABLOCK, CHECK_CONSTRAINTS, ROWS_PER_BATCH=1000. La valeur 1
000 indique que la destination est configurée pour utiliser des traitements de 1 000
lignes.

7 Notes
Tout échec de contrainte à la destination entraîne l’échec de la totalité du lot de
lignes définies par FastLoadMaxInsertCommitSize.

Outre les options de chargement rapide dévoilées dans la boîte de dialogue Éditeur de
destination OLE DB , vous pouvez configurer la destination OLE DB afin d’utiliser les
options de chargement en masse suivantes en tapant les options dans la propriété
FastLoadOptions, dans la boîte de dialogue Éditeur avancé .

Option de Description
chargement rapide

KILOBYTES_PER_BATCH Indique la taille à insérer en kilo-octets. L’option a la forme


KILOBYTES_PER_BATCH = <valeur entière positive>.

FIRE_TRIGGERS Spécifie si des déclencheurs sont activés sur la table d'insertion. L’option
a la forme FIRE_TRIGGERS. La présence de l'option indique que des
déclencheurs sont activés.

ORDER Spécifie comment les données d'entrée sont triées. L'option a la forme
ORDER <nom de colonne> ASC|DESC. Il n'y a pas de limite quant au
nombre de colonnes indiquées et la spécification de l'ordre de tri est
facultative. Si l'ordre de tri est omis, l'opération d'insertion part du
principe que les données ne sont pas triées.

Remarque : Les performances peuvent être améliorées si vous utilisez


l'option ORDER pour trier des données d'entrée selon l'index cluster de
la table.

Les mots clés Transact-SQL sont traditionnellement tapés en majuscules, mais ils ne
tiennent pas compte de la casse.

Pour en savoir plus sur les options de chargement rapide, consultez BULK INSERT
(Transact-SQL).

Résolution des problèmes liés à la destination


OLE DB
Vous pouvez consigner les appels que la destination OLE DB effectue vers des
fournisseurs de données externes. Cette fonctionnalité de journalisation permet de
résoudre des problèmes liés à l'enregistrement de données vers des sources de données
externes que réalise la destination OLE DB. Pour consigner les appels que la destination
OLE DB effectue vers des fournisseurs de données externes, activez la journalisation de
package et sélectionnez l'événement Diagnostic au niveau du package. Pour plus
d’informations, consultez Outils de dépannage pour l’exécution des packages.
Configuration de la destination OLE DB
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées OLE DB

Pour plus d'informations sur la définition des propriétés, cliquez sur l'une des rubriques
suivantes :

Charger des données à l’aide de la destination OLE DB

Définir les propriétés d’un composant de flux de données

Éditeur de destination OLE DB (page


Gestionnaire de connexions)
Utilisez la page Gestionnaire de connexions de la boîte de dialogue Éditeur de
destination OLE DB pour sélectionner la connexion OLE DB de la destination. Cette
page vous permet également de sélectionner une table ou une vue à partir de la base
de données.

7 Notes

Si la source de données est Microsoft Office Excel 2007, la source de données


requiert un gestionnaire de connexions différent des versions antérieures d'Excel.
Pour plus d’informations, consultez Établir une connexion à un classeur Excel.

7 Notes

La propriété CommandTimeout de la destination OLE DB n’est pas disponible dans


l’Éditeur de destination OLE DB, mais peut être définie à l’aide de l’Éditeur avancé.
De plus, certaines options de chargement rapide sont uniquement disponibles dans
l’Éditeur avancé. Pour plus d’informations sur ces propriétés, consultez la section
sur la destination OLE DB dans Propriétés personnalisées OLE DB.

La propriété CommandTimeout prend effet uniquement lorsque le mode d’accès


aux données est Commande SQL.

Options statiques
Gestionnaire de connexions OLE DB
Sélectionnez un gestionnaire de connexions existant dans la liste ou créez une nouvelle
connexion en cliquant sur Nouveau.

Nouveau
Créez un gestionnaire de connexions à l’aide de la boîte de dialogue Configurer le
gestionnaire de connexions OLE DB .

Mode d'accès aux données


Spécifiez la méthode de chargement des données dans la destination. Le chargement de
données du jeu de caractères codés sur deux octets (DBCS) nécessite l'utilisation d'une
des options de chargement rapide. Pour plus d’informations sur les modes d’accès aux
données à chargement rapide, qui sont optimisés pour les insertions en bloc, consultez
Destination OLE DB.

Option Description

Table ou vue Chargez les données dans une table ou une vue de la destination OLE DB.

Table ou vue - Chargez les données dans une table ou une vue de la destination OLE DB et
chargement utilisez l'option de chargement rapide. Pour plus d’informations sur les modes
rapide d’accès aux données à chargement rapide, qui sont optimisés pour les insertions
en bloc, consultez Destination OLE DB.

Variable de Spécifiez le nom de la table ou de la vue dans une variable.


nom de table
ou de vue Informations connexes : Utiliser des variables dans des packages

Variable de Spécifiez le nom de la table ou de la vue dans une variable et chargez les
nom de table données à l'aide de l'option de chargement rapide. Pour plus d’informations sur
ou de vue - les modes d’accès aux données à chargement rapide, qui sont optimisés pour les
chargement insertions en bloc, consultez Destination OLE DB.
rapide

Commande Chargez les données dans la destination OLE DB à l'aide d'une requête SQL.
SQL
Préversion
Affichez un aperçu des résultats à l’aide de la boîte de dialogue Visualiser les résultats
de la requête . L'aperçu peut afficher jusqu'à 200 lignes.

Options dynamiques du mode d'accès aux données


Chacun des paramètres Mode d’accès aux données affiche un jeu dynamique d’options
spécifiques au paramètre en question. Les sections suivantes décrivent chacune des
options dynamiques disponibles pour chaque paramètre Mode d’accès aux données .

Mode d'accès aux données = Table ou vue

Nom de la table ou de la vue


Sélectionnez le nom de la table ou de la vue dans la liste de celles qui sont disponibles
dans la source de données.

Nouveau
Utilisez la boîte de dialogue Créer une table pour créer une table.

7 Notes

Quand vous cliquez sur Nouvelle, Integration Services génère une instruction
CREATE TABLE par défaut, basée sur la source de données connectée. Cette
instruction CREATE TABLE par défaut n'inclut pas l'attribut FILESTREAM, même si la
table source inclut une colonne dans laquelle l'attribut FILESTREAM est déclaré.
Pour exécuter un composant Integration Services avec l'attribut FILESTREAM,
implémentez d'abord le stockage FILESTREAM sur la base de données de
destination. Ajoutez ensuite l’attribut FILESTREAM à l’instruction CREATE TABLE
dans la boîte de dialogue Créer une table . Pour plus d’informations, consultez
Données BLOB (Binary Large Object) (SQL Server).

Mode d’accès aux données = Table ou vue - chargement rapide


Nom de la table ou de la vue
Sélectionnez une table ou une vue dans la base de données à l’aide de cette liste, ou
créez une table en cliquant sur Nouveau.

Nouveau
Utilisez la boîte de dialogue Créer une table pour créer une table.
7 Notes

Quand vous cliquez sur Nouvelle, Integration Services génère une instruction
CREATE TABLE par défaut, basée sur la source de données connectée. Cette
instruction CREATE TABLE par défaut n'inclut pas l'attribut FILESTREAM, même si la
table source inclut une colonne dans laquelle l'attribut FILESTREAM est déclaré.
Pour exécuter un composant Integration Services avec l'attribut FILESTREAM,
implémentez d'abord le stockage FILESTREAM sur la base de données de
destination. Ajoutez ensuite l’attribut FILESTREAM à l’instruction CREATE TABLE
dans la boîte de dialogue Créer une table . Pour plus d’informations, consultez
Données BLOB (Binary Large Object) (SQL Server).

Conserver l'identité
Spécifiez si les valeurs d'identité doivent être copiées lors du chargement des données.
Cette propriété n'est disponible qu'avec l'option de chargement rapide. La valeur par
défaut de cette propriété est false.

Conserver les valeurs NULL


Spécifiez si les valeurs NULL doivent être copiées lors du chargement des données.
Cette propriété n'est disponible qu'avec l'option de chargement rapide. La valeur par
défaut de cette propriété est false.

Verrou de table
Spécifiez si la table est verrouillée pendant le chargement. La valeur par défaut de cette
propriété est true.

Contraintes de validation
Spécifiez si la destination vérifie les contraintes lors du chargement des données. La
valeur par défaut de cette propriété est true.

Lignes par lot


Permet d'indiquer le nombre de lignes contenues dans un traitement. La valeur par
défaut de cette propriété est -1, ce qui signifie qu’aucune valeur n’a été attribuée.

7 Notes

Effacez la zone de texte dans l’Éditeur de destination OLE DB pour indiquer que
vous ne voulez pas assigner de valeur personnalisée à cette propriété.

Taille de validation d'insertion maximale


Spécifiez la taille du lot que la destination OLE DB tente de valider pendant les
opérations de chargement rapide. La valeur 0 indique que toutes les données sont
validées dans un seul lot après traitement de toutes les lignes.

7 Notes

Une valeur de 0 peut faire en sorte que le package en cours d’exécution cesse de
répondre si la destination OLE DB et un autre composant de flux de données
mettent à jour la même table source. Pour empêcher que le package ne s’arrête,
affectez la valeur 2147483647 à l’option Taille de validation d’insertion maximale.

Si vous spécifiez une valeur pour cette propriété, la destination valide les lignes par lot
qui ont la plus petite taille entre (a) la Taille de validation d’insertion maximaleet (b) les
lignes restantes dans le tampon qui sont en cours de traitement.

7 Notes

Tout échec de contrainte à la destination entraîne l’échec de la totalité du lot de


lignes définies par la Taille de validation d’insertion maximale .

Mode d'accès aux données = Variable de nom de table ou de vue


Nom de la variable
Sélectionnez la variable qui contient le nom de la table ou de la vue.

Mode d’accès aux données = Variable de nom de table ou de vue -


chargement rapide
Nom de la variable
Sélectionnez la variable qui contient le nom de la table ou de la vue.

Nouveau
Utilisez la boîte de dialogue Créer une table pour créer une table.

7 Notes

Quand vous cliquez sur Nouvelle, Integration Services génère une instruction
CREATE TABLE par défaut, basée sur la source de données connectée. Cette
instruction CREATE TABLE par défaut n'inclut pas l'attribut FILESTREAM, même si la
table source inclut une colonne dans laquelle l'attribut FILESTREAM est déclaré.
Pour exécuter un composant Integration Services avec l'attribut FILESTREAM,
implémentez d'abord le stockage FILESTREAM sur la base de données de
destination. Ajoutez ensuite l’attribut FILESTREAM à l’instruction CREATE TABLE
dans la boîte de dialogue Créer une table . Pour plus d’informations, consultez
Données BLOB (Binary Large Object) (SQL Server).

Conserver l'identité
Spécifiez si les valeurs d'identité doivent être copiées lors du chargement des données.
Cette propriété n'est disponible qu'avec l'option de chargement rapide. La valeur par
défaut de cette propriété est false.

Conserver les valeurs NULL


Spécifiez si les valeurs NULL doivent être copiées lors du chargement des données.
Cette propriété n'est disponible qu'avec l'option de chargement rapide. La valeur par
défaut de cette propriété est false.

Verrou de table
Spécifiez si la table est verrouillée pendant le chargement. La valeur par défaut de cette
propriété est false.

Contraintes de validation
Spécifiez si la tâche vérifie les contraintes. La valeur par défaut de cette propriété est
false.

Lignes par lot


Permet d'indiquer le nombre de lignes contenues dans un traitement. La valeur par
défaut de cette propriété est -1, ce qui signifie qu’aucune valeur n’a été attribuée.

7 Notes

Effacez la zone de texte dans l’Éditeur de destination OLE DB pour indiquer que
vous ne voulez pas assigner de valeur personnalisée à cette propriété.

Taille de validation d'insertion maximale


Spécifiez la taille du lot que la destination OLE DB tente de valider pendant les
opérations de chargement rapide. La valeur par défaut, 2147483647 , indique que toutes
les données sont validées dans un seul lot après traitement de toutes les lignes.

7 Notes

Une valeur de 0 peut faire en sorte que le package en cours d’exécution cesse de
répondre si la destination OLE DB et un autre composant de flux de données
mettent à jour la même table source. Pour empêcher que le package ne s’arrête,
affectez la valeur 2147483647 à l’option Taille de validation d’insertion maximale.

Mode d'accès aux données = Commande SQL

Texte de la commande SQL


Entrez le texte d’une requête SQL, générez la requête en cliquant sur Générer une
requêteou recherchez le fichier qui contient le texte de la requête en cliquant sur
Parcourir.

7 Notes

La destination OLE DB ne prend pas en charge les paramètres. Si vous devez


exécuter une instruction INSERT paramétrable, envisagez d'utiliser la transformation
de commande OLE DB. Pour plus d’informations, consultez OLE DB Command
Transformation.

Construire une requête


Utilisez la boîte de dialogue Générateur de requêtes pour construire la requête SQL
visuellement.

Parcourir
Dans la boîte de dialogue Ouvrir , localisez le fichier qui contient le texte de la requête
SQL.

Analyser la requête
Vérifiez la syntaxe du texte de la requête.

Éditeur de destination OLE DB (page


Mappages)
La page Mappages de la boîte de dialogue Éditeur de destination OLE DB vous permet
de mapper les colonnes d’entrée aux colonnes de destination.

Options
Colonnes d'entrée disponibles
Affichez la liste des colonnes d'entrée disponibles. Au moyen du glisser-déplacer,
mappez les colonnes d'entrée disponibles dans la table sur des colonnes de destination.
Colonnes de destination disponibles
Affichez la liste des colonnes de destination disponibles. Utilisez une opération de
glisser-déplacer pour mapper les colonnes de destination disponibles dans la table aux
colonnes d'entrée.

Colonne d'entrée
Affichez les colonnes d’entrée que vous avez sélectionnées. Vous pouvez supprimer des
mappages en sélectionnant <ignorer> de manière à exclure des colonnes de la sortie.

Colonne de destination
Indique chaque colonne de destination disponible, qu'elle soit mappée ou non.

Éditeur de destination OLE DB (page Sortie


d'erreur)
Utilisez la page Sortie d'erreur de la boîte de dialogue Éditeur de destination OLE DB
pour définir les options de gestion des erreurs.

Options
Entrée/sortie
Affichez le nom de l'entrée.

Colonne
Non utilisé.

Error
Indiquez ce qui doit se produire lorsqu'une erreur se produit : ignorer l'échec, rediriger
la ligne ou faire échouer le composant.

Rubriques connexes :Gestion des erreurs dans les données

Troncation
Non utilisé.

Description
Affichez la description de l'opération.

Définir cette valeur sur les cellules sélectionnées


Indiquez ce qui doit se produire pour l'ensemble des cellules sélectionnées lorsqu'une
erreur ou une troncation se produit : ignorer l'échec, rediriger la ligne ou faire échouer
le composant.
Appliquer
Appliquez l'option de gestion des erreurs aux cellules sélectionnées.

Contenu associé
Source OLE DB

Variables Integration Services (SSIS)

Flux de données
Charger des données à l'aide de la
destination OLE DB
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour pouvoir ajouter et configurer une destination OLE DB, le package doit inclure au
moins une tâche de flux de données et une source.

Pour charger des données à l'aide d'une destination OLE


DB
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Flux de données puis, dans la Boîte à outils, faites glisser la
destination OLE DB vers l’aire de conception.

4. Connectez la destination OLE DB au flux de données en faisant glisser le


connecteur à partir d'une source de données ou d'une transformation précédente
vers la destination.

5. Double-cliquez sur la destination OLE DB.

6. Dans la boîte de dialogue Éditeur de destination OLE DB , dans la page


Gestionnaire de connexions , sélectionnez un gestionnaire de connexions OLE DB
existant ou cliquez sur Nouveau pour créer un gestionnaire de connexions. Pour
plus d’informations, consultez OLE DB Connection Manager.

7. Sélectionnez la méthode d'accès aux données :

Table ou vue : sélectionnez une table ou une vue dans la base de données
qui contient les données.

Table ou vue - chargement rapide : sélectionnez une table ou une vue dans
la base de données qui contient les données, puis définissez les options de
chargement rapide : Conserver l’identité, Conserver les valeurs NULL, Verrou
de table, Contrainte de validation, Lignes par lotou Taille de validation
d’insertion maximale.
Variable de nom de table ou de vue : sélectionnez la variable définie par
l’utilisateur qui contient le nom d’une table ou d’une vue dans la base de
données.

Variable de nom de table ou de vue - chargement rapide : sélectionnez une


variable définie par l’utilisateur qui contient le nom d’une table ou d’une vue
dans la base de données qui contient les données, puis définissez les options
de chargement rapide.

Commande SQL : tapez une commande SQL ou cliquez sur Générer la


requête pour écrire une commande SQL à l’aide du Générateur de requêtes.

8. Cliquez sur Mappages , puis mappez les colonnes de la liste Colonnes d'entrée
disponibles aux colonnes de la liste Colonnes de destination disponibles en
faisant glisser les colonnes d'une liste à l'autre.

7 Notes

La destination OLE DB mappe automatiquement les colonnes portant le


même nom.

9. Pour configurer l'affichage des erreurs, cliquez sur Sortie d'erreur. Pour plus
d’informations, consultez Débogage d’un flux de données.

10. Cliquez sur OK.

11. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Destination OLE DB
Transformations Integration Services
Chemins Integration Services
tâche de flux de données
Propriétés personnalisées OLE DB
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Propriétés personnalisées des sources

La source OLE DB comporte des propriétés personnalisées et les propriétés communes à


l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la source OLE DB. Toutes les
propriétés sont en lecture/écriture.

Nom de la propriété Type de Description


données

AccessMode Integer Mode utilisé pour accéder à la base de données. Les


valeurs possibles sont Open Rowset, OpenRowset à
partir de Variable, Commande SQLet Commande SQL
à partir d'une variable. La valeur par défaut est Open
Rowset.

AlwaysUseDefaultCodePage Booléen Valeur qui indique s'il faut utiliser la valeur de la


propriété DefaultCodePage pour chaque colonne ou
tenter de dériver la page de codes à partir des
paramètres régionaux de chaque colonne. La valeur par
défaut de cette propriété est False.

CommandTimeout Integer Nombre de secondes accordées comme délai


d'exécution d'une commande. Une valeur égale à 0
indique un délai illimité.

Remarque :
Cette propriété prend effet uniquement lorsque le
mode d’accès aux données est Commande SQL.
cette propriété n’est pas disponible dans l’Éditeur de
source OLE DB, mais elle peut être définie avec
l’Éditeur avancé.

DefaultCodePage Integer Page de codes à utiliser lorsque les informations de


page de codes ne sont pas disponibles depuis la source
de données.

OpenRowset String Nom de l'objet de base de données utilisé pour ouvrir


un ensemble de lignes.

OpenRowsetVariable String Variable qui contient le nom de l'objet de base de


données utilisé pour ouvrir un ensemble de lignes.
Nom de la propriété Type de Description
données

ParameterMapping String Mappage des paramètres de la commande SQL en


variables.

SqlCommand String Commande SQL à exécuter.

SqlCommandVariable String Variable qui contient la commande SQL à exécuter.

La sortie et les colonnes de sortie de la source OLE DB ne disposent pas de propriétés


personnalisées.

Pour plus d’informations, consultez OLE DB Source.

Propriétés personnalisées des destinations

La destination OLE DB comporte à la fois des propriétés personnalisées et les propriétés


communes à l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la destination OLE DB. Toutes
les propriétés sont en lecture/écriture.

7 Notes

Les options FastLoad répertoriées ici (FastLoadKeepIdentity, FastLoadKeepNulls et


FastLoadOptions) correspondent aux propriétés qui portent des noms similaires et
sont présentées dans l’interface IRowsetFastLoad implémentée par le fournisseur
Microsoft OLE DB pour SQL Server (SQLOLEDB). Pour plus d'informations, effectuez
une recherche sur IRowsetFastLoad dans MSDN Library.

Nom de la propriété Type de Description


données
Nom de la propriété Type de Description
données

AccessMode Integer Valeur qui spécifie la manière dont la


(énumération) destination accède à sa base de données de
destination.

Cette propriété peut prendre les valeurs


suivantes :

OpenRowset (0) : vous devez fournir le nom


d’une table ou d’une vue.

OpenRowset à partir de Variable (1) : vous


devez fournir le nom d’une variable qui contient
le nom d’une table ou d’une vue.

OpenRowset à l’aide de FastLoad (3) : vous


devez fournir le nom d’une table ou d’une vue.

OpenRowset à l’aide de FastLoad à partir de


Variable (4) : vous devez fournir le nom d’une
variable qui contient le nom d’une table ou
d’une vue.

Commande SQL (2) : vous devez fournir une


instruction SQL.

AlwaysUseDefaultCodePage Booléen Valeur qui indique s'il faut utiliser la valeur de la


propriété DefaultCodePage pour chaque
colonne ou tenter de dériver la page de codes à
partir des paramètres régionaux de chaque
colonne. La valeur par défaut de cette propriété
est False.

CommandTimeout Integer Nombre maximal de secondes pendant


lesquelles la commande SQL peut être exécutée
avant d'arriver à expiration. Une valeur égale à 0
indique une durée illimitée. La valeur par défaut
de cette propriété est 0.

Remarque : cette propriété n’est pas disponible


dans l’Éditeur de destination OLE DB, mais
vous pouvez la définir à l’aide de l’éditeur
avancé.
Nom de la propriété Type de Description
données

DefaultCodePage Integer Page de codes par défaut associée à la


destination OLE DB.

FastLoadKeepIdentity Booléen Valeur spécifiant si les valeurs d'identité doivent


être copiées lors du chargement des données.
Cette propriété est disponible uniquement avec
l'une des options de chargement rapide. La
valeur par défaut de cette propriété est False.
Cette propriété correspond à la propriété OLE
DB IRowsetFastLoad (OLE
DB)SSPROP_FASTLOADKEEPIDENTITY.

FastLoadKeepNulls Booléen Valeur spécifiant si les valeurs NULL doivent


être copiées lors du chargement des données.
Cette propriété est disponible uniquement avec
l'une des options de chargement rapide. La
valeur par défaut de cette propriété est False.
Cette propriété correspond à la propriété OLE
DB IRowsetFastLoad (OLE
DB)SSPROP_FASTLOADKEEPNULLS.

FastLoadMaxInsertCommitSize Integer Valeur qui spécifie la taille du lot que la


destination OLE DB tente de valider au cours
des opérations de chargement rapide. La valeur
par défaut ( 0) indique une opération de
validation simple après le traitement de toutes
les lignes.

FastLoadOptions String Collection d'options de chargement rapide. Les


options de chargement rapide incluent le
verrouillage des tables et la vérification des
contraintes. Vous pouvez spécifier une de ces
options, les deux ou ni l'une ni l'autre. Cette
propriété correspond à la propriété OLE DB
IRowsetFastLoad SSPROP_FASTLOADOPTIONS
et accepte les options de chaîne telles que
CHECK_CONSTRAINTS et TABLOCK.

Remarque : certaines options de cette propriété


ne sont pas disponibles dans l’Éditeur de
destination Excel, mais vous pouvez les définir
à l’aide de l’éditeur avancé.

OpenRowset String Quand AccessMode est défini sur OpenRowset,


nom de la table ou de la vue à laquelle la
destination OLE DB a accès.
Nom de la propriété Type de Description
données

OpenRowsetVariable String Quand AccessMode est défini sur OpenRowset


à partir de Variable, nom de la variable
contenant le nom de la table ou de la vue à
laquelle la destination OLE DB a accès.

SqlCommand String Quand AccessMode est défini sur Commande


SQL, instruction Transact-SQL que la destination
OLE DB utilise pour spécifier les colonnes de
destination pour les données.

L'entrée et les colonnes d'entrée de la destination OLE DB ne disposent pas de


propriétés personnalisées.

Pour plus d’informations, consultez OLE DB Destination.

Voir aussi
Propriétés communes
Destination de traitement de partition
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination de traitement de partition charge et traite une partition SQL Server


Analysis Services. Pour plus d’informations sur les partitions, consultez Partitions
(Analysis Services - Données multidimensionnelles).

La destination de traitement de partition regroupe les fonctionnalités suivantes :

options permettant de choisir entre un traitement incrémentiel, un traitement


complet ou un traitement de mise à jour ;

configuration d'erreur permettant de spécifier si le traitement ignore les erreurs ou


s'arrête après un nombre spécifique d'erreurs ;

mappage des colonnes d'entrée aux colonnes de partition.

Pour plus d’informations sur le traitement des objets Analysis Services, consultez
Options et paramètres de traitement (Analysis Services).

7 Notes

Les tâches décrites ici ne s’appliquent pas aux modèles tabulaires Analysis Services.
Vous ne pouvez pas mapper des colonnes d’entrée aux colonnes de partition pour
les modèles tabulaires. Vous pouvez en revanche utiliser la tâche DDL d'exécution
Analysis Services Execute DDL Task d'Analysis Services pour traiter la partition.

Configuration de la destination de traitement


de partition
La destination de traitement de partition utilise un gestionnaire de connexions Analysis
Services pour se connecter au projet Analysis Services ou à l’instance de Analysis
Services qui contient les cubes et partitions traités par la destination. Pour plus
d'informations, consultez Analysis Services Connection Manager.

Cette destination comporte une entrée. Elle ne prend pas en charge de sortie d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.
La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées de la destination de traitement de partition

Pour plus d’informations sur la façon de définir des propriétés, consultez Définir les
propriétés d’un composant de flux de données.

Éditeur de destination de traitement de


partition (page Gestionnaire de connexions)
La page Gestionnaire de connexions de la boîte de dialogue Éditeur de destination de
traitement de partition vous permet de spécifier une connexion à un projet SQL Server
Analysis Services ou à une instance de Analysis Services.

7 Notes

Les tâches décrites ici ne s’appliquent pas aux modèles tabulaires Analysis Services.
Vous ne pouvez pas mapper des colonnes d’entrée aux colonnes de partition pour
les modèles tabulaires. Vous pouvez en revanche utiliser la tâche DDL d'exécution
Analysis Services Execute DDL Task d'Analysis Services pour traiter la partition.

Options
Connection manager
Sélectionnez un gestionnaire de connexions existant dans la liste ou créez une nouvelle
connexion en cliquant sur Nouveau.

Nouveau
Créez une connexion à l’aide de la boîte de dialogue Ajout d’un gestionnaire de
connexions Analysis Services .

Liste des partitions disponibles


Sélectionnez la partition à traiter.

Méthode de traitement
Sélectionnez la méthode de traitement. La valeur par défaut de cette option est
Complète.

Value Description

Ajouter (incrémentiel) Permet d'effectuer un traitement incrémentiel de la partition.

Complète Permet d'effectuer un traitement complet de la partition.

Données seulement Permet d'effectuer un traitement de mise à jour de la partition.

Éditeur de destination de traitement de


partition (page Mappages)
Utilisez la page Mappages de la boîte de dialogue Éditeur de destination de traitement
de partition pour mapper des colonnes d'entrée sur des colonnes de partition.

7 Notes

Les tâches décrites ici ne s’appliquent pas aux modèles tabulaires Analysis Services.
Vous ne pouvez pas mapper des colonnes d’entrée aux colonnes de partition pour
les modèles tabulaires. Vous pouvez en revanche utiliser la tâche DDL d'exécution
Analysis Services Execute DDL Task d'Analysis Services pour traiter la partition.

Options
Colonnes d'entrée disponibles
Affichez la liste des colonnes d'entrée disponibles. Au moyen du glisser-déplacer,
mappez les colonnes d'entrée disponibles dans la table sur des colonnes de destination.

Colonnes de destination disponibles


Affichez la liste des colonnes de destination disponibles. Utilisez une opération de
glisser-déplacer pour mapper les colonnes de destination disponibles dans la table aux
colonnes d'entrée.

Colonne d'entrée
Affiche les colonnes d'entrée sélectionnées dans le tableau ci-dessus. Vous pouvez
modifier les mappages au moyen de la liste Colonnes d'entrée disponibles.

Colonne de destination
Affiche chaque colonne de destination disponible, qu'elle soit mappée ou non.
Éditeur de destination de traitement de
partition (page Avancé)
Utilisez la page Avancé de la boîte de dialogue Éditeur de destination de traitement de
partition pour configurer la gestion des erreurs.

7 Notes

Les tâches décrites ici ne s’appliquent pas aux modèles tabulaires Analysis Services.
Vous ne pouvez pas mapper des colonnes d’entrée aux colonnes de partition pour
les modèles tabulaires. Vous pouvez en revanche utiliser la tâche DDL d'exécution
Analysis Services Execute DDL Task d'Analysis Services pour traiter la partition.

Options
Utiliser la configuration d'erreur par défaut
Indiquez si vous voulez utiliser la gestion des erreurs par défaut d' Analysis Services . Par
défaut, cette valeur est définie sur True.

Action pour l'erreur de clé


Indiquez comment traiter les enregistrements dont les valeurs de clé ne sont pas
acceptables.

Value Description

ConvertToUnknown Convertir la valeur de clé non acceptable en valeur inconnue (Unknown).

DiscardRecord Ignorer l'enregistrement.

Ignorer les erreurs


Spécifiez que les erreurs doivent être ignorées.

Arrêter en cas d'erreur


Spécifiez que le traitement doit s'arrêter lorsqu'une erreur se produit.

Nombre d’erreurs
Spécifiez le nombre maximal d’erreurs au-delà duquel le traitement doit s’arrêter, si
vous avez sélectionné Arrêter en cas d’erreur.

Action pour l'erreur


Indiquez l’action à appliquer lorsque le nombre maximal d’erreurs est atteint, si vous
avez sélectionné Arrêter en cas d’erreur.
Value Description

StopProcessing Arrêter le traitement.

StopLogging Arrêter d'enregistrer les erreurs.

Clé introuvable
Indiquez l'action à appliquer en cas d'erreur de clé introuvable. Par défaut, cette valeur
est définie sur ReportAndContinue.

Value Description

IgnoreError Ignorer l'erreur et continuer le traitement.

ReportAndContinue Signaler l'erreur et continuer le traitement.

ReportAndStop Signaler l'erreur et arrêter le traitement.

Clé dupliquée
Indiquez l'action à appliquer en cas d'erreur de clé dupliquée. Par défaut, cette valeur
est définie sur IgnoreError.

Value Description

IgnoreError Ignorer l'erreur et continuer le traitement.

ReportAndContinue Signaler l'erreur et continuer le traitement.

ReportAndStop Signaler l'erreur et arrêter le traitement.

Clé NULL convertie en clé inconnue


Indiquez l'action à appliquer lorsqu'une clé NULL a été convertie en clé inconnue
(Unknown). Par défaut, cette valeur est définie sur IgnoreError.

Value Description

IgnoreError Ignorer l'erreur et continuer le traitement.

ReportAndContinue Signaler l'erreur et continuer le traitement.

ReportAndStop Signaler l'erreur et arrêter le traitement.

Clé NULL non autorisée


Indiquez l'action à appliquer si une clé NULL est trouvée alors que les clés NULL ne sont
pas autorisées. Par défaut, cette valeur est définie sur ReportAndContinue.

Value Description
Value Description

IgnoreError Ignorer l'erreur et continuer le traitement.

ReportAndContinue Signaler l'erreur et continuer le traitement.

ReportAndStop Signaler l'erreur et arrêter le traitement.

Chemin d'accès du journal des erreurs


Tapez le chemin du journal des erreurs ou sélectionnez une destination à l’aide du
bouton Parcourir (...) .

Parcourir (...)
Sélectionnez le chemin d'accès du journal des erreurs.

Voir aussi
Guide de référence des erreurs et des messages propres à Integration Services
Propriétés personnalisées de la
destination de traitement de partition
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination de traitement de partition comporte à la fois des propriétés


personnalisées et les propriétés communes à l'ensemble des composants de flux de
données.

Le tableau suivant décrit les propriétés personnalisées de la destination de traitement de


partition. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

ASConnectionString String Chaîne de connexion d'un projet Analysis


Services ou d'une instance de Analysis Services.

KeyDuplicate Integer Quand UseDefaultConfiguration a la valeur


(énumération) False, valeur qui indique comment gérer les
erreurs de clé en double. Les valeurs possibles
sont IgnoreError (0), ReportAndContinue (1) et
ReportAndStop (2). La valeur par défaut de
cette propriété est IgnoreError (0).

KeyErrorAction Integer Quand UseDefaultConfiguration a la valeur


(énumération) False, valeur qui indique comment gérer les
erreurs de clé. Les valeurs possibles sont
ConvertToUnknown (0) et DiscardRecord (1). La
valeur par défaut de cette propriété est
ConvertToUnknown (0).

KeyErrorLimit Integer Quand UseDefaultConfiguration a la valeur


False, limite supérieure des erreurs de clé
autorisées.

KeyErrorLimitAction Integer Quand UseDefaultConfiguration a la valeur


(énumération) False, valeur qui indique l’action à entreprendre
quand la limite KeyErrorLimit est atteinte. Les
valeurs possibles sont StopLogging (1) et
StopProcessing (0). La valeur par défaut de cette
propriété est StopProcessing (0).
Propriété Type de Description
données

KeyErrorLogFile String Quand UseDefaultConfiguration a la valeur


False, chemin et nom du fichier journal des
erreurs.

KeyNotFound Integer Quand UseDefaultConfiguration a la valeur


(énumération) False, valeur qui indique comment gérer les
erreurs de clé manquante. Les valeurs possibles
sont IgnoreError (0), ReportAndContinue (1) et
ReportAndStop (2). La valeur par défaut de
cette propriété est ReportAndContinue (1).

NullKeyConvertedToUnknown Integer Quand UseDefaultConfiguration a la valeur


(énumération) False, valeur qui indique comment gérer les clés
null converties en valeur inconnue. Les valeurs
possibles sont IgnoreError (0),
ReportAndContinue (1) et ReportAndStop (2).
La valeur par défaut de cette propriété est
IgnoreError (0).

NullKeyNotAllowed Integer Quand UseDefaultConfiguration a la valeur


(énumération) False, valeur qui indique comment gérer les clés
null non autorisées. Les valeurs possibles sont
IgnoreError (0), ReportAndContinue (1) et
ReportAndStop (2). La valeur par défaut de
cette propriété est ReportAndContinue (1).

ProcessType Integer Type de traitement de partition que la


(énumération) transformation utilise. Les valeurs possible sont
ProcessAdd (1) (incrémentiel), ProcessFull (0) et
ProcessUpdate (2).

UseDefaultConfiguration Booléen Valeur qui spécifie si la transformation utilise la


configuration d'erreur par défaut. Si cette
propriété a la valeur False, la transformation
utilise les propriétés personnalisées de
traitement des erreurs répertoriées dans ce
tableau, notamment KeyDuplicate,
KeyErrorAction, et ainsi de suite.

L'entrée et les colonnes d'entrée de la destination de traitement de partition ne


disposent pas de propriétés personnalisées.

Pour plus d’informations, consultez Destination de traitement de partition.

Voir aussi
Propriétés communes
Source Power Query (préversion)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cet article décrit comment configurer les propriétés de la source Power Query dans le
flux de données SQL Server Integration Services (SSIS). Power Query est une technologie
qui vous permet de vous connecter à diverses sources de données et de transformer des
données à l’aide d’Excel/Power BI Desktop. Pour plus d’informations, consultez l’article
Power Query - Présentation et formation . Le script généré par Power Query peut copié
et collé dans la source Power Query dans le flux de données SSIS pour le configurer.

7 Notes

Pour la préversion actuelle, Power Query Source ne peut être utilisé que sur SQL
Server 2017/2019/2022 et Azure-SSIS Integration Runtime (IR) dans Azure Data
Factory (ADF). Vous trouverez ici la dernière version de Power Query Source pour
SQL Server 2017/2019/2022 à télécharger et à installer. Power Query Source pour
Azure-SSIS IR est préinstallé. Pour provisionner un runtime d’intégration Azure-
SSIS, consultez l’article Provisionner SSIS dans ADF.

Configurer la source Power Query


Pour ouvrir l’éditeur de source Power Query dans SSDT, faites glisser et déposez Source
Power Query à partir de la boîte à outils SSIS vers le concepteur de flux de données et
double-cliquez dessus.

Trois onglets s’affichent sur le côté gauche. Dans l’onglet Queries (Requêtes), vous
pouvez sélectionner votre mode de requête dans le menu déroulant.

Le mode Single Query (Requête unique) vous permet de copier et coller un seul
script Power Query à partir d’Excel/Power BI Desktop.
Le mode Single Query from Variable (Requête unique à partir d’une variable) vous
permet de spécifier une variable de chaîne qui contient votre requête à exécuter.

Dans l’onglet Connection Managers (Gestionnaires de connexions), vous pouvez ajouter


ou supprimer des gestionnaires de connexions Power Query qui contiennent des
informations d’accès à la source de données. La sélection du bouton Detect Data
Source (Détecter la source de données) permet d’identifier les sources de données
référencées dans votre requête et les répertorie pour vous permettre d’attribuer les
gestionnaires de connexions Power Query existants appropriés ou d’en créer de
nouveaux.
Enfin, dans l’onglet Columns (Colonnes), vous pouvez modifier les informations de la
colonne de sortie.
Configurer le Gestionnaire de connexions
Power Query
Lorsque vous concevez votre flux de données avec la Source Power Query sur SSDT,
vous pouvez créer un nouveau Gestionnaire de connexions Power Query comme suit :

Créez-le indirectement dans l’onglet Gestionnaires de connexions de la source


Power Query après avoir sélectionné le bouton Ajouter/Détecter la source de
données et <Nouvelle connexion> dans le menu déroulant, comme décrit ci-
dessus.
Créez-le directement en cliquant sur le panneau Gestionnaires de connexions de
votre package et en sélectionnant Nouvelle connexion... dans le menu déroulant.
Dans la boîte de dialogue Ajout d'un gestionnaire de connexions SSIS, double-cliquez
sur PowerQuery dans la liste des types de gestionnaires de connexions.
Dans l’éditeur du Gestionnaire de connexion Power Query, vous devez spécifier le Type
de la source de données, le Chemin d’accès à la source de données et le Type
d’authentification, mais aussi attribuer les informations d’identification d’accès
appropriées. Pour Type de la source de données, vous pouvez actuellement choisir
entre 22 types dans le menu déroulant.
Certaines de ces sources (Oracle, DB2, MySQL, PostgreSQL, Teradata, Sybase)
nécessitent l’installation de pilotes ADO.NET supplémentaires qui peuvent être obtenus
à partir de l’article Prérequis pour Power Query. Vous pouvez utiliser l’interface de
configuration personnalisée pour les installer sur votre runtime d’intégration Azure-SSIS,
consultez l’article Personnalisation du runtime d’intégration Azure-SSIS.

Pour le Chemin d’accès à la source de données, vous pouvez entrer des propriétés
spécifiques à la source de données formant une chaîne de connexion sans les
informations d’authentification. Par exemple, le chemin d’accès à la source de données
SQL est <Server>;<Database> . Vous pouvez sélectionner le bouton Modifier pour
attribuer des valeurs aux propriétés spécifiques à la source de données qui forment le
chemin d’accès.

Enfin, pour le Type d’authentification, vous pouvez sélectionner


Anonyme/Authentification Windows/Mot de passe du nom d’utilisateur/Clé dans le
menu déroulant, entrez les informations d’identification d’accès appropriées, puis
sélectionnez le bouton Tester la connexion pour vous assurer que la source Power
Query a été configurée correctement.

Limites actuelles
La source de données Oracle n’est pas utilisable à l’heure actuelle sur Azure-SSIS
IR, car il n’est pas possible d’y installer le pilote ADO.NET Oracle. Pour l’instant,
installez le pilote ODBC Oracle et utilisez la source de données ODBC pour vous
connecter à Oracle. Voir l’exemple ORACLE STANDARD ODBC dans l’article
Personnaliser Azure-SSIS Integration Runtime.

La source de données Web n’est pas utilisable sur Azure-SSIS Integration Runtime
avec les installations personnalisées. Pour l’instant, utilisez-la sur Azure-SSIS
Integration Runtime sans les installations personnalisées.

Étapes suivantes
Découvrez comment exécuter des packages SSIS dans le runtime d’intégration Azure-
SSIS en tant qu’activités de première classe dans les pipelines ADF. Consultez l’article
Exécuter le runtime d’activité du package SSIS.
source de fichier brut
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La source de fichier brut lit des données brutes dans un fichier. La représentation des
données étant native pour la source, celles-ci ne nécessitent aucune traduction et
pratiquement aucune analyse. Par conséquent, la source de fichier brut peut lire les
données plus rapidement que les autres sources telles que la source du fichier plat et la
source OLE DB.

La source de fichier brut permet d'extraire des données brutes précédemment écrites
par la destination de fichier brut. Vous pouvez également faire pointer la source de
fichier brut vers un fichier brut vide qui contient uniquement les colonnes (fichier
réservé aux métadonnées). Utilisez la destination de fichier brut pour générer le fichier
réservé aux métadonnées sans avoir à exécuter le package. Pour plus d’informations,
consultez Destination de fichier brut.

Le format de fichier brut contient les informations de tri. La destination de fichier brut
enregistre toutes les informations de tri, y compris les indicateurs de comparaison des
colonnes de chaîne. La source de fichier brut lit et applique les informations de tri. Vous
avez la possibilité de configurer la source de fichier brut pour ignorer les indicateurs de
tri du fichier, à l'aide de l'éditeur avancé. Pour plus d’informations sur les indicateurs de
comparaison, consultez Comparaison de données de type chaîne.

Pour configurer le fichier brut, vous spécifiez le nom du fichier lu par la source de fichier
brut.

7 Notes

Cette source n'utilise pas de gestionnaire de connexions.

Cette source a une sortie. Elle ne prend pas en charge de sortie d'erreur.

Configuration de la source de fichier brut


Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des fichiers bruts

Tâches associées
Pour plus d’informations sur la définition des propriétés du composant, consultez Définir
les propriétés d’un composant de flux de données.

Contenu associé
Entrée de blog, Raw Files Are Awesome , sur sqlservercentral.com

Éditeur de source de fichier brut (page


Gestionnaire de connexions)
La source de fichier brut lit des données brutes dans un fichier. La représentation des
données étant native pour la source, celles-ci ne nécessitent aucune traduction et
pratiquement aucune analyse.

Éditeur de source de fichier brut (page


Colonnes)
La source de fichier brut lit des données brutes dans un fichier. La représentation des
données étant native pour la source, celles-ci ne nécessitent aucune traduction et
pratiquement aucune analyse.

Voir aussi
Destination de fichier brut
Flux de données
Destination de fichier brut
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination de fichier brut écrit des données brutes dans un fichier. Le format des
données étant natif pour la destination, les données ne requièrent aucune traduction et
peu d'analyse. Cela signifie que la destination de fichier brut peut écrire des données
plus rapidement que d'autres destinations telles que les destinations de fichier plat et
OLE DB.

Outre l'écriture de données brutes dans un fichier, vous pouvez également utiliser la
destination de fichier brut pour générer un fichier brut vide qui contient uniquement les
colonnes (fichier réservé aux métadonnées), sans avoir à exécuter le package. La source
de fichier brut vous permet de récupérer les données brutes précédemment écrites par
la destination. Vous pouvez également faire pointer la source de fichier brut vers le
fichier réservé aux métadonnées.

Le format de fichier brut contient les informations de tri. La destination de fichier brut
enregistre toutes les informations de tri, y compris les indicateurs de comparaison des
colonnes de chaîne. La source de fichier brut lit et applique les informations de tri. Vous
avez la possibilité de configurer la source de fichier brut pour ignorer les indicateurs de
tri du fichier, à l'aide de l'éditeur avancé. Pour plus d’informations sur les indicateurs de
comparaison, consultez Comparaison de données de type chaîne.

Vous pouvez configurer la destination de fichier brut de plusieurs manières :

Spécifiez un mode d'accès qui est soit le nom du fichier, soit une variable
contenant le nom du fichier dans lequel la destination de fichier brut écrit.

Indiquez si la destination de fichier brut ajoute des données à un fichier existant


qui possède le même nom ou si elle crée un fichier.

On utilise fréquemment la destination de fichier brut pour écrire des résultats


intermédiaires de données partiellement traitées entre des exécutions de packages. Le
stockage de données brutes signifie qu'elles peuvent être lues rapidement par une
source de fichier brut, puis davantage transformées avant d'être chargées dans leur
destination finale. Par exemple, un package peut s'exécuter à plusieurs reprises et à
chaque fois écrire des données brutes dans des fichiers. Ultérieurement, un package
différent peut utiliser la source de fichier brut pour lire à partir de chaque fichier, utiliser
une transformation d'union totale pour fusionner les données en un jeu de données,
puis appliquer des transformations supplémentaires qui résument les données avant de
les charger dans leur destination finale, telle qu'une table SQL Server.

7 Notes

La destination de fichier brut prend en charge les données nulles mais non les
données d'objets BLOB (Binary Large Objects).

7 Notes

La destination de fichier brut n'utilise pas de gestionnaire de connexions.

Cette source possède une entrée régulière. Elle ne prend pas en charge de sortie
d'erreur.

Options d'ajout et de nouveau fichier


La propriété WriteOption inclut des options permettant d’ajouter des données à un
fichier existant ou de créer un fichier.

Le tableau suivant décrit les options disponibles pour la propriété WriteOption.

Option Description

Ajouter Ajoute les données à un fichier existant. Les métadonnées des données ajoutées
(Append) doivent correspondre au format de fichier.

Toujours Crée toujours un nouveau fichier.


créer

Créer une Crée un nouveau fichier. Si le fichier existe, le composant échoue.


fois

Tronquer Tronque un fichier existant, puis écrit les données dans le fichier. Les métadonnées
et ajouter des données ajoutées doivent correspondre au format de fichier.

Voici des éléments importants relatifs à l'ajout de données :

L'ajout de données à un fichier brut existant n'entraîne pas un nouveau tri des
données.

Vous devez vous assurer que les clés triées restent dans le bon ordre.
L'ajout de données à un fichier brut existant n'entraîne pas de modification des
métadonnées du fichier (informations de tri).

Par exemple, un package lit les données triées sur ProductKey (PK). Le flux de données
du package ajoute les données à un fichier brut existant. Lors de la première exécution
du package, trois lignes sont reçues (PK 1000, 1100, 1200). Le fichier brut contient
désormais les données ci-après.

1000, productA

1100, productB

1200, productC

Lors de la seconde exécution du package, deux nouvelles lignes sont reçues (PK 1001,
1300). Le fichier brut contient désormais les données ci-après.

1000, productA

1100, productB

1200, productC

1001, productD

1300, productE

Les nouvelles données sont ajoutées à la fin du fichier brut et les clés triées (PK) ne sont
pas ordonnées. Par ailleurs, l’opération d’ajout n’a pas changé les métadonnées du
fichier (informations de tri). Si vous lisez le fichier à l'aide de la source de fichier brut, le
composant indique que le fichier est toujours trié sur PK même si les données du fichier
ne sont plus dans le bon ordre.

Pour conserver les clés triées dans le bon ordre lors de l'ajout de données, concevez le
flux de données du package comme suit :

1. Récupérez les nouvelles lignes via Source A.

2. Récupérez les lignes existantes de RawFile1 via Source B.

3. Combinez les entrées de Source A et Source B à l'aide de la transformation Union


All.

4. Triez sur PK.

5. Écrivez dans RawFile2 à l'aide de la destination de fichier brut.


RawFile1 est verrouillé, car il est lu dans le flux de données.

6. Remplacez RawFile1 par RawFile2.

Utilisation de la destination de fichier brut dans une


boucle
Si le flux de données qui utilise la destination de fichier brut est dans une boucle, vous
pouvez créer le fichier une fois puis ajouter les données au fichier lorsque la boucle se
répète. Pour ajouter des données au fichier, les données ajoutées doivent correspondre
au format du fichier existant.

Pour créer le fichier dans la première itération de la boucle puis ajouter des lignes dans
les itérations ultérieures de la boucle, procédez comme suit lors de la conception :

1. Définissez la propriété sur CreateOnce ou CreateAlways, et effectuez une itération


de la boucle. Le fichier est créé. Cette opération permet de s'assurer de la
correspondance entre les métadonnées des données ajoutées et le fichier.

2. Réinitialisez la propriété WriteOption à Append et définissez la propriété


ValidateExternalMetadata sur False.

Si vous utilisez l’option TruncateAppend au lieu de l’option Append , celle-ci tronque


les lignes ajoutées dans les itérations précédentes, puis ajoute de nouvelles lignes.
L’utilisation de l’option TruncateAppend nécessite également que les données
correspondent au format du fichier.

Configuration de la destination de fichier brut


Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des fichiers bruts

Tâches associées
Pour plus d’informations sur la définition des propriétés du composant, consultez Définir
les propriétés d’un composant de flux de données.

Contenu associé
Entrée de blog, Raw Files Are Awesome , sur sqlservercentral.com.

Éditeur de destination de fichier brut (page


Gestionnaire de connexions)
Utilisez l'Éditeur de destination de fichier brut pour configurer la destination de fichier
brut et écrire des données brutes dans un fichier.

Que voulez-vous faire ?

Ouvrir l'Éditeur de destination de fichier brut

Définir les options de l'onglet Gestionnaires de connexions

Définir les options de l'onglet Colonnes

Ouvrir l'Éditeur de destination de fichier brut


1. Ajoutez la destination de fichier brut à un package Integration Services, dans SQL
Server Data Tools (SSDT).

2. Cliquez avec le bouton droit sur le composant, puis cliquez sur Modifier.

Définir les options de l'onglet Gestionnaires de


connexions
Mode d’accès
Sélectionnez la façon dont le nom de fichier est spécifié. Sélectionnez Nom de fichier
pour entrer directement le nom de fichier et le chemin d'accès, ou bien Nom de fichier
à partir d'une variable pour spécifier une variable qui contient le nom de fichier.

Nom de fichier ou Nom de la variable


Entrez le nom et le chemin d'accès du fichier brut, ou sélectionnez la variable contenant
le nom du fichier.

Option d'écriture
Sélectionnez la méthode utilisée pour créer le fichier et y écrire.
Générer le fichier brut initial
Cliquez sur le bouton pour générer un fichier brut vide qui contient uniquement les
colonnes (fichier réservé aux métadonnées), sans avoir à exécuter le package. Le fichier
contient les colonnes sélectionnées à la page Colonnes de la boîte de dialogue Éditeur
de destination de fichier brut. Vous pouvez faire pointer la source de fichier brut vers ce
fichier réservé aux métadonnées.

Lorsque vous cliquez sur Générer le fichier brut initial, un message s'affiche. Cliquez sur
OK pour commencer la création du fichier. Cliquez sur Annuler pour sélectionner une
autre liste de colonnes sur la page Colonnes .

Définir les options de l'onglet Colonnes


Colonnes d'entrée disponibles
Sélectionnez une ou plusieurs colonnes d'entrée pour écrire dans le fichier brut.

Colonne d'entrée
Une colonne d’entrée est automatiquement ajoutée à cette table quand vous la
sélectionnez sous Colonnes d’entrée disponibles. Vous pouvez également sélectionner
directement la colonne d’entrée dans cette table.

Alias de sortie
Spécifiez un autre nom pour la colonne de sortie.

Éditeur de destination de fichier brut (page


Colonnes)
Utilisez l'Éditeur de destination de fichier brut pour configurer la destination de fichier
brut et écrire des données brutes dans un fichier.

Que voulez-vous faire ?

Ouvrir l'Éditeur de destination de fichier brut

Définir les options de l'onglet Gestionnaires de connexions

Définir les options de l'onglet Colonnes

Ouvrir l'Éditeur de destination de fichier brut


1. Ajoutez la destination de fichier brut à un package Integration Services, dans SQL
Server Data Tools (SSDT).
2. Cliquez avec le bouton droit sur le composant, puis cliquez sur Modifier.

Définir les options de l'onglet Gestionnaires de


connexions
Mode d’accès
Sélectionnez la façon dont le nom de fichier est spécifié. Sélectionnez Nom de fichier
pour entrer directement le nom de fichier et le chemin d'accès, ou bien Nom de fichier
à partir d'une variable pour spécifier une variable qui contient le nom de fichier.

Nom de fichier ou Nom de la variable


Entrez le nom et le chemin d'accès du fichier brut, ou sélectionnez la variable contenant
le nom du fichier.

Option d'écriture
Sélectionnez la méthode utilisée pour créer le fichier et y écrire.

Générer le fichier brut initial


Cliquez sur le bouton pour générer un fichier brut vide qui contient uniquement les
colonnes (fichier réservé aux métadonnées), sans avoir à exécuter le package. Vous
pouvez faire pointer la source de fichier brut vers le fichier réservé aux métadonnées.

Lorsque vous cliquez sur le bouton, la liste des colonnes s'affiche. Vous pouvez cliquer
sur Annuler et modifier les colonnes, ou vous pouvez cliquer sur OK pour continuer à
créer le fichier.

Définir les options de l'onglet Colonnes


Colonnes d'entrée disponibles
Sélectionnez une ou plusieurs colonnes d'entrée pour écrire dans le fichier brut.

Colonne d'entrée
Une colonne d’entrée est automatiquement ajoutée à cette table quand vous la
sélectionnez sous Colonnes d’entrée disponibles. Vous pouvez également sélectionner
directement la colonne d’entrée dans cette table.

Alias de sortie
Spécifiez un autre nom pour la colonne de sortie.

Voir aussi
Source de fichier brut
Flux de données
Propriétés personnalisées des fichiers
bruts
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Propriétés personnalisées des sources

La source de fichier brut comporte des propriétés personnalisées et les propriétés


communes à l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la source de fichier brut.


Toutes les propriétés sont en lecture/écriture.

Nom de la Type de Description


propriété données

AccessMode Integer Mode utilisé pour accéder aux données brutes. Les valeurs
(énumération) possibles sont Nom de fichier (0) et Nom de fichier à partir
d’une variable (1). La valeur par défaut est Nom de fichier (0).

FileName String Chemin d'accès et nom de fichier du fichier source.

La sortie et les colonnes de sortie de la source de fichier brut ne disposent pas de


propriétés personnalisées.

Pour plus d’informations, consultez Source de fichier brut.

Propriétés personnalisées des destinations

La destination de fichier brut comporte à la fois des propriétés personnalisées et les


propriétés communes à l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la destination de fichier brut.


Toutes les propriétés sont en lecture/écriture.

Nom de la Type de Description


propriété données

AccessMode Integer Valeur qui indique si la propriété FileName contient un nom de


(énumération) fichier ou le nom d’une variable qui contient un nom de fichier.
Les options proposées sont Nom de fichier (0) et Nom de fichier
à partir d’une variable (1).

FileName String Nom du fichier dans lequel la destination de fichier brut écrit.
Nom de la Type de Description
propriété données

WriteOption Integer Valeur qui spécifie si la destination de fichier brut supprime un


(énumération) fichier existant qui porte le même nom. Les options proposées
sont Toujours créer (0), Créer une fois (1), Tronquer et ajouter (3)
et Ajouter (2). La valeur par défaut de cette propriété est Toujours
créer (0).

7 Notes

Une opération d'ajout exige que les métadonnées des données ajoutées
correspondent à celles des données déjà présentes dans le fichier.

L'entrée et les colonnes d'entrée de la destination de fichier brut ne disposent pas de


propriétés personnalisées.

Pour plus d’informations, consultez Destination de fichier brut.

Voir aussi
Propriétés communes
Destination de l'ensemble
d'enregistrements
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination de l'ensemble d'enregistrements crée et remplit un ensemble


d'enregistrements ADO en mémoire. La forme de l'ensemble d'enregistrements est
définie par l'entrée de la destination d'ensemble d'enregistrements au moment de la
conception.

Configuration de la destination de l'ensemble


d'enregistrements
Pour configurer la destination de l'ensemble d'enregistrements,vous devez spécifier la
variable qui contient l'ensemble d'enregistrements ADO.

Au moment de l’exécution, un ensemble d’enregistrements ADO est écrit dans la


variable du type, Object, qui est spécifié dans la propriété VariableName de la
destination de l’ensemble d’enregistrements. La variable rend ensuite l'ensemble
d'enregistrements disponible en dehors du flux de données, où il peut être utilisé par
des scripts et d'autres éléments de package.

Cette source possède une entrée. Elle ne prend pas en charge de sortie d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées de la destination du jeu d'enregistrements

Pour plus d’informations sur la façon de définir des propriétés, consultez Définir les
propriétés d’un composant de flux de données.
Tâches associées
Utiliser une destination de jeu d'enregistrements
Utiliser une destination de jeu
d'enregistrements
Article • 12/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination d'ensemble d'enregistrements n'enregistre pas les données sur une


source de données externe. Elle enregistre les données en mémoire dans un ensemble
d’enregistrements stocké dans une variable de package Integration Services de type
Object. Une fois que la destination d'ensemble d'enregistrements a sauvegardé les
données, vous devez en général utiliser un conteneur de boucles Foreach avec
l'énumérateur ADO Foreach pour traiter une par une les lignes de l'ensemble
d'enregistrements. L'énumérateur ADO Foreach enregistre la valeur de chaque colonne
de la ligne actuelle dans une variable de package distincte. Ensuite, les tâches que vous
configurez à l'intérieur du conteneur de boucles Foreach lisent les valeurs contenues
dans ces variables et effectuent certaines actions sur ces valeurs.

Vous pouvez utiliser la destination d'ensemble d'enregistrements dans de nombreux


scénarios différents. Voici quelques exemples :

Vous pouvez utiliser une tâche Envoyer un message et le langage d’expression


Integration Services pour envoyer un message électronique personnalisé pour
chaque ligne de l’ensemble d’enregistrements.

Vous pouvez utiliser un composant Script configuré en tant que source à l'intérieur
d'une tâche de flux de données pour lire les valeurs de colonne dans les colonnes
du flux de données. Vous pouvez ensuite utiliser des transformations et des
destinations pour transformer et enregistrer la ligne. Dans cet exemple, la tâche de
flux de données s'exécute une fois pour chaque ligne.

Les sections suivantes décrivent tout d'abord le processus général d'utilisation de la


destination d'ensemble d'enregistrements et présentent ensuite un exemple spécifique
d'utilisation de la destination.

Étapes générales d'utilisation d'une destination


d'ensemble d'enregistrements
La procédure suivante résume les étapes requises pour enregistrer des données dans
une destination d'ensemble d'enregistrements, puis l'utilisation du conteneur de
boucles Foreach pour traiter chaque ligne.
Pour enregistrer des données dans une destination d'ensemble
d'enregistrements et traiter chaque ligne à l'aide du conteneur de
boucles Foreach
1. Dans SQL Server Data Tools (SSDT), créez ou ouvrez un package Integration
Services.

2. Créez une variable qui contiendra l'ensemble d'enregistrements enregistré en


mémoire par la destination d'ensemble d'enregistrements et définissez le type de
la variable sur Object.

3. Créez des variables supplémentaires avec les types appropriés pour contenir les
valeurs de chaque colonne de l'ensemble d'enregistrements que vous souhaitez
utiliser.

4. Ajoutez et configurez le gestionnaire de connexions requis par la source de


données que vous envisagez d'utiliser dans votre flux de données.

5. Ajoutez une tâche de flux de données au package et, sous l'onglet Flux de données
du concepteur SSIS, configurez des sources et des transformations pour le
chargement et la transformation des données.

6. Ajoutez une destination d'ensemble d'enregistrements au flux de données et


connectez-la aux transformations. Pour la propriété VariableName de la
destination d'ensemble d'enregistrements, entrez le nom de la variable que vous
avez créée pour contenir l'ensemble d'enregistrements.

7. Sous l'onglet Flux de contrôle du concepteur SSIS, ajoutez un conteneur de


boucles Foreach et connectez ce conteneur à la tâche de flux de données. Ouvrez
ensuite l' Éditeur de boucle Foreach pour configurer le conteneur avec les
paramètres suivants :

a. Dans la page Collection , sélectionnez l'énumérateur ADO Foreach. Puis, pour


Variable source de l'objet ADO, sélectionnez la variable qui contient l'ensemble
d'enregistrements.

b. Dans la page Mappage de variables , mappez l’index de base zéro de chaque


colonne que vous souhaitez utiliser à la variable appropriée.

Sur chaque itération de la boucle, l'énumérateur remplit les variables avec les
valeurs de colonne de la ligne actuelle.

8. À l'intérieur du conteneur de boucles Foreach, ajoutez et configurez des tâches


destinées à traiter une par une les lignes de l'ensemble d'enregistrements en lisant
les valeurs des variables.
Exemple d'utilisation de la destination
d'ensemble d'enregistrements
Dans l’exemple suivant, la tâche de flux de données charge des informations relatives
aux employés AdventureWorks2022 de la table Sales.SalesPerson dans une destination
d’ensemble d’enregistrements. Un conteneur de boucles Foreach lit ensuite les lignes de
données une par une et appelle une tâche Envoyer un message. Cette tâche utilise des
expressions pour envoyer un message électronique personnalisé à chaque vendeur au
sujet du montant de sa prime.

Pour créer le projet et configurer les variables


1. Dans SQL Server Data Tools (SSDT), créez un nouveau projet Integration Services.

2. Dans le menu SSIS , sélectionnez Variables.

3. Dans la fenêtre Variables , créez les variables qui contiendront l'ensemble


d'enregistrements et les valeurs de colonne de la ligne actuelle :

a. Créez une variable nommée BonusRecordsetet définissez son type sur Object.

La variable BonusRecordset contient le jeu d’enregistrements.

b. Créez une variable nommée EmailAddresset définissez son type sur String.

La variable EmailAddress contient l’adresse e-mail du vendeur.

c. Créez une variable nommée FirstNameet définissez son type sur String.

La variable FirstName contient le prénom du vendeur.

d. Créez une variable nommée Bonuset définissez son type sur Double.

La variable Bonus contient le montant de la prime du vendeur.

Pour configurer les gestionnaires de connexions

1. Dans la zone Gestionnaires de connexions du concepteur SSIS, ajoutez et


configurez un nouveau gestionnaire de connexions OLE DB qui se connecte à
l’exemple de base de données AdventureWorks2022.

La source OLE DB dans la tâche de flux de données utilisera ce gestionnaire de


connexions pour extraire les données.
2. Dans la zone Gestionnaires de connexions, ajoutez et configurez un nouveau
gestionnaire de connexions SMTP qui se connecte à un serveur SMTP disponible.

La tâche Envoyer un message à l'intérieur du conteneur de boucles Foreach


utilisera ce gestionnaire de connexions pour envoyer des courriers électroniques.

Pour configurer le flux de données et la destination d'ensemble


d'enregistrements
1. Sous l'onglet Flux de contrôle du concepteur SSIS, ajoutez une tâche de flux de
données à l'aire de conception.

2. Sous l'onglet Flux de données tab, add an OLE DB source to the Flux de données
task, and then open the Éditeur de source OLE DB.

3. Dans la page Gestionnaire de connexions de l'éditeur, configurez la source avec


les paramètres suivants :

a. Pour Gestionnaire de connexions OLE DB, sélectionnez le gestionnaire de


connexions OLE DB que vous venez de créer.

b. Pour Mode d'accès aux données, sélectionnez Commande SQL.

c. Pour Texte de la commande SQL, entrez la requête suivante :

SQL

SELECT Person.Contact.EmailAddress, Person.Contact.FirstName,


CONVERT(float, Sales.SalesPerson.Bonus) AS Bonus
FROM Sales.SalesPerson INNER JOIN
Person.Contact ON
Sales.SalesPerson.SalesPersonID = Person.Contact.ContactID

7 Notes

Vous devez remplacer la valeur currency de la colonne Bonus par float


pour pouvoir charger cette valeur dans une variable de package de type
Double.

4. Sous l'onglet Flux de données , ajoutez une destination d'ensemble


d'enregistrements et connectez-la à la source OLE DB.

5. Ouvrez l' Éditeur de destination d'ensemble d'enregistrementset configurez la


destination avec les paramètres suivants :
a. Dans l’onglet Propriétés du composant , pour la propriété VariableName ,
sélectionnez User::BonusRecordset.

b. Sous l'onglet Colonnes d'entrée , sélectionnez les trois colonnes disponibles.

Pour configurer le conteneur de boucles Foreach et exécuter le


package

1. Sous l'onglet Flux de contrôle du concepteur SSIS, ajoutez un conteneur de


boucles Foreach et connectez-le à la tâche de flux de données.

2. Ouvrez l' Éditeur de boucle Foreachet configurez le conteneur avec les paramètres
suivants :

a. Sur la page Collection , pour Énumérateur, sélectionnez Énumérateur ADO


Foreach, et pour Variable source de l’objet ADO, sélectionnez
User::BonusRecordset.

b. Sur la page Mappage de variables , mappez la variable User::EmailAddress à


l’index 0, la variable User::FirstName à l’index 1 et la variable User::Bonus à
l’index 2.

3. Sous l'onglet Flux de contrôle , à l'intérieur du conteneur de boucles Foreach,


ajoutez une tâche Envoyer un message.

4. Ouvrez l' Éditeur de tâche Envoyer un message, puis dans la page Courrier ,
configurez la tâche avec les paramètres suivants :

a. Pour SmtpConnection, sélectionnez le gestionnaire de connexions SMTP qui a


été préalablement configuré.

b. Pour De, entrez une adresse e-mail appropriée.

Si vous utilisez votre propre adresse de messagerie, vous pourrez vérifier que le
package s'est exécuté avec succès. Vous recevrez des accusés de non-remise
pour les messages envoyés par la tâche Envoyer un message aux vendeurs
fictifs d’AdventureWorks2022.

c. Pour À, entrez une adresse e-mail par défaut.

Cette valeur ne sera pas utilisée, mais sera remplacée au moment de l'exécution
par l'adresse de messagerie de chaque vendeur.

d. Pour Objet, entrez « Votre prime annuelle ».


e. Pour MessageSourceType, sélectionnez Entrée directe.

5. Dans la page Expressions de l’Éditeur de tâche Envoyer un message, cliquez sur le


bouton de sélection (...) pour ouvrir l’Éditeur d’expressions de la propriété.

6. Dans l' Éditeur d'expressions de la propriété, entrez les informations suivantes :

a. Pour ToLine, ajoutez l'expression suivante :

@[User::EmailAddress]

b. Pour la propriété MessageSource , ajoutez l'expression suivante :

"Dear " + @[User::FirstName] + ": The amount of your bonus for this
year is $" + (DT_WSTR, 12) @[User::Bonus] + ". Thank you!"

7. Exécutez le package.

Si vous avez spécifié un serveur SMTP valide et avez fourni votre propre adresse e-
mail, vous recevrez des accusés de non-remise pour les messages envoyés par la
tâche Envoyer un message aux vendeurs fictifs d’AdventureWorks2022.
Propriétés personnalisées de la
destination du jeu d'enregistrements
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination du jeu d'enregistrements comporte à la fois des propriétés


personnalisées et les propriétés communes à l'ensemble des composants de flux de
données.

Le tableau suivant décrit les propriétés personnalisées de la destination du jeu


d'enregistrements. Toutes les propriétés sont en lecture/écriture.

Nom de la Type de Description


propriété données

VariableName String Nom de la variable qui contient le jeu d'enregistrements


ADO.

L'entrée et les colonnes d'entrée de la destination du jeu d'enregistrements ne


disposent pas de propriétés personnalisées.

Pour plus d’informations, consultez Destination de l’ensemble d’enregistrements.

Voir aussi
Propriétés communes
Source SAP BW
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La source SAP BW est le composant source de Microsoft Connector 1.1 pour SAP BW.
Ainsi, la source SAP BW extrait des données d'un système SAP Netweaver BW version 7
et met ces données à la disposition du flux de données dans un package Microsoft
Integration Services.

Cette source comporte une sortie et une sortie d'erreur.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

) Important

Vous devez disposer d'une licence SAP supplémentaire pour extraire des données à
partir de SAP Netweaver BW. Vérifiez auprès de SAP.

Pour utiliser la source SAP BW, vous devez effectuer les tâches suivantes :

Préparer les objets SAP Netweaver BW

Établir une connexion au système SAP Netweaver BW

Configurer la source SAP BW

Préparation des objets SAP Netweaver BW


requis par la source
La source SAP BW nécessite la présence de certains objets dans le système SAP
Netweaver BW pour que la source puisse fonctionner. Si ces objets n'existent pas, vous
devez suivre ces étapes pour les créer et les configurer dans le système SAP Netweaver
BW.
7 Notes

Pour plus d'informations sur ces objets et ces étapes de configuration, consultez la
documentation de SAP Netweaver BW.

1. Connectez-vous à SAP Netweaver BW via l'interface GUI SAP, entrez le code de


transaction SM59, puis créez une destination RFC :

a. Pour Type de connexion, sélectionnez TCP/IP.

b. Pour Type d'activation, sélectionnez Programme de serveur inscrit.

c. Pour Type de communication avec le système cible, sélectionnez Non-Unicode


(Paramètres MDMP inactifs).

d. Attribuez un ID de programme approprié.

2. Créer une destination Open Hub :

a. Accédez à l’atelier de l’administrateur (code de transaction RSA1) puis, dans le


volet gauche, sélectionnez Destination Open Hub.

b. Dans le volet central, cliquez avec le bouton droit sur un InfoArea, puis
sélectionnez Créer une destination Open Hub.

c. Pour Type de destination, sélectionnez Outil tiers, puis entrez la destination


RFC créée précédemment.

d. Enregistrez et activez la nouvelle destination Open Hub.

3. Créer un processus de transfert de données (DTP) :

a. Dans le volet central de l’InfoArea, cliquez avec le bouton droit sur la


destination créée précédemment, puis sélectionnez Créer le processus de
transfert de données.

b. Configurez, enregistrez et activez le processus DTP.

c. Dans le menu, cliquez sur Atteindre, puis cliquez sur Paramètres pour le
gestionnaire de lots.

d. Mettez à jour Nombre de processus à 1 pour le traitement en série.

4. Créer une chaîne de processus :


a. Lors de la configuration de la chaîne de processus, sélectionnez Démarrer à
l'aide de la chaîne de métadonnées ou de l'API comme Options de
planification du Processus de démarrage, puis ajoutez le processus DTP créé
précédemment comme nœud suivant.

b. Enregistrez et activez la chaîne de processus.

La source SAP BW peut appeler la chaîne de processus pour activer le processus de


transfert de données.

Connexion au système SAP Netweaver BW


Pour la connexion au système SAP Netweaver BW version 7, la source SAP BW utilise le
gestionnaire de connexions SAP BW qui fait partie du package Microsoft Connector 1.1
pour SAP BW. Le gestionnaire de connexions SAP BW est le seul gestionnaire de
connexions Integration Services que la source SAP BW peut utiliser.

Pour plus d'informations sur le gestionnaire de connexions SAP BW, consultez SAP BW
Connection Manager.

Configuration de la source SAP BW


Vous pouvez configurer la source SAP BW comme suit :

Recherchez et sélectionnez la destination OHS (Open Hub Service) à utiliser pour


extraire des données.

Sélectionnez l'une des méthodes suivantes pour extraire des données :

Déclenchez une chaîne de processus. Dans ce cas, le package Integration


Services démarre le processus d'extraction.

Attendez la notification du système SAP Netweaver BW pour démarrer une


extraction. Dans ce cas, le système SAP Netweaver BW démarre le processus
d'extraction.

Récupérez les données associées à un ID de demande particulier. Dans ce cas, le


système SAP Netweaver BW a déjà extrait les données dans une table interne et
le package à Integration Services se contente de lire les données.

Selon la méthode sélectionnée pour extraire des données, fournissez les


informations supplémentaires suivantes :
Pour l’option P - Déclencher une chaîne de processus , fournissez le nom
d’hôte de passerelle, le nom du service de passerelle, l’ID de programme pour la
destination RFC et le nom de la chaîne de processus.

Pour l’option A - Attendre la notification , fournissez le nom d’hôte de


passerelle, le nom du serveur de passerelle et l’ID de programme pour la
destination RFC. Vous pouvez également spécifier le délai d'attente (en
secondes). Le délai d'attente représente la durée maximale pendant laquelle la
source attendra une notification.

Pour l’option E - Extraire uniquement , fournissez l’ID de demande.

Spécifiez les règles pour la conversion de chaînes. (Par exemple, convertissez


toutes les chaînes, selon que le système SAP Netweaver BW est Unicode ou non,
ou convertissez toutes les chaînes en varchar ou nvarchar).

Utilisez les options que vous avez sélectionnées pour afficher un aperçu des
données à extraire.

Vous pouvez également activer la journalisation des appels de fonction RFC par la
source. (Cette journalisation diffère de la journalisation facultative que vous pouvez
activer sur les packages Integration Services .) Vous activez la journalisation des appels
de fonction RFC lorsque vous configurez le gestionnaire de connexions SAP BW que la
source utilisera. Pour plus d'informations sur la configuration du gestionnaire de
connexions SAP BW, consultez SAP BW Connection Manager.

Si vous ne connaissez pas toutes les valeurs requises pour configurer la source,
adressez-vous à votre administrateur SAP.

Pour obtenir la procédure pas à pas qui montre comment configurer et utiliser le
gestionnaire de connexions, la source et la destination SAP BW, consultez le livre blanc
Utilisation de SQL Server 2008 Integration Services avec SAP BI 7.0. Ce livre blanc
explique également comment configurer les objets nécessaires dans SAP BW.

Utilisation du concepteur SSIS pour configurer la source


Pour plus d'informations sur les propriétés de la source SAP BW que vous pouvez définir
dans le Concepteur SSIS , cliquez sur l'une des rubriques suivantes :

Éditeur de source SAP BW (page Gestionnaire de connexions)

Éditeur de source SAP BW (page Colonnes)

Éditeur de source SAP BW (page Sortie d'erreur)


Éditeur de source SAP BW (page Avancé)

Pendant que vous configurez la source SAP BW, vous pouvez également utiliser
différentes boîtes de dialogue pour rechercher des objets SAP Netweaver BW ou pour
afficher un aperçu des données sources. Pour plus d'informations sur ces boîtes de
dialogue, cliquez sur l'une des rubriques suivantes :

Rechercher la destination RFC

Rechercher la chaîne de processus

Journal des requêtes

Préversion

Voir aussi
Composants Microsoft Connector 1.1 pour SAP BW
Éditeur de source SAP BW (page
Gestionnaire de connexions)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la page Gestionnaire de connexions de l’Éditeur de source SAP BW pour


sélectionner le gestionnaire de connexions SAP BW pour la source SAP BW. Sur cette
page, sélectionnez également le mode d'exécution et les paramètres pour extraire les
données du système SAP Netweaver BW.

Pour en savoir plus sur le composant source SAP BW de Microsoft Connector 1.1 pour
SAP BW, consultez SAP BW Source.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

) Important

Vous devez disposer d'une licence SAP supplémentaire pour extraire des données à
partir de SAP Netweaver BW. Vérifiez auprès de SAP.

Pour ouvrir la page Gestionnaire de connexions

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la source SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la source SAP BW.

3. Dans l' Éditeur de source SAP BW, cliquez sur Gestionnaire de connexions pour
ouvrir la page Gestionnaire de connexions de l'éditeur.

Options statiques

7 Notes
Si vous ne connaissez pas toutes les valeurs requises pour configurer la source,
adressez-vous à votre administrateur SAP.

Gestionnaire de connexions SAP BW


Sélectionnez un gestionnaire de connexions existant dans la liste ou créez une nouvelle
connexion en cliquant sur Nouveau.

Nouveau
Créez un gestionnaire de connexions à l’aide de la boîte de dialogue Gestionnaire de
connexions SAP BW .

Pour plus d’informations sur cette boîte de dialogue, consultez Éditeur du Gestionnaire
de connexions SAP BW.

Destination OHS
Sélectionnez la destination OHS (Open Hub Service) à utiliser pour extraire des données
de la source.

Mode d'exécution
Spécifiez la méthode d'extraction des données de la source.

Option Description

P- Déclenchez une chaîne de processus. Dans ce cas, le package Integration Services


Déclencher démarre le processus d'extraction.
une chaîne
de processus

A - Attendre Attendez la notification du système SAP Netweaver BW pour démarrer l'extraction


la des données. Dans ce cas, le système SAP Netweaver BW démarre le processus
notification d'extraction.

E - Extraire Récupérez les données associées à un ID de demande particulier. Dans ce cas, le


uniquement système SAP Netweaver BW a déjà extrait les données dans une table interne et le
package Integration Services se contente de lire les données.

Préversion
Ouvrez la boîte de dialogue Aperçu dans laquelle vous pouvez afficher un aperçu des
résultats. Pour plus d’informations, consultez Aperçu.

) Important

L’option Aperçu , disponible dans page Gestionnaire de connexions de l’Éditeur de


source SAP BW, extrait réellement des données. Si vous avez configuré le système
SAP Netweaver BW pour extraire uniquement les données qui ont été modifiées
depuis l'extraction précédente, la sélection d' Aperçu exclura les données de
l'aperçu de l'extraction suivante.

Quand vous cliquez sur Aperçu, vous ouvrez également la boîte de dialogue Journal des
requêtes . Vous pouvez utiliser cette boîte de dialogue pour afficher les événements qui
sont journalisés lors de la demande qui est effectuée au système SAP Netweaver BW
pour les exemples de données. Pour plus d’informations, consultez Journal des requêtes.

Options dynamiques du mode d'exécution

7 Notes

Si vous ne connaissez pas toutes les valeurs requises pour configurer la source,
adressez-vous à votre administrateur SAP.

Mode d'exécution = P - Déclencher une chaîne de


processus

Options de la destination RFC


Vous n'avez pas à connaître ni à entrer ces valeurs à l'avance. Utilisez le bouton
Rechercher pour rechercher et sélectionner la destination RFC appropriée. Après avoir
sélectionné une destination RFC, le composant entre les valeurs appropriées pour ces
options.

Hôte de passerelle
Entrez le nom du serveur ou l'adresse IP de l'hôte de passerelle. Généralement, le nom
ou l'adresse IP est identique au serveur d'applications SAP.

Service de passerelle
Entrez le nom du service de passerelle, au format sapgwNN, où NN représente le
numéro du système.

ID de programme
Entrez l'ID du programme qui est associé à la destination RFC.

Rechercher
Recherchez la destination RFC à l’aide de la boîte de dialogue Rechercher la destination
RFC . Pour plus d'informations sur cette boîte de dialogue, consultez Look Up RFC
Destination.
Options de chaîne de processus
Vous n'avez pas à connaître ni à entrer ces valeurs à l'avance. Utilisez le bouton
Rechercher pour rechercher et sélectionner la chaîne de processus appropriée. Après
avoir sélectionné une chaîne de processus, le composant entre la valeur appropriée pour
l'option.

Chaîne de processus
Entrez le nom de la chaîne de processus à déclencher par la source.

Rechercher
Recherchez la chaîne de processus à l’aide de la boîte de dialogue Rechercher la chaîne
de processus . Pour plus d’informations sur cette boîte de dialogue, consultez
Rechercher la chaîne de processus.

Mode d'exécution = A - Attendre la notification

Options de la destination RFC

Vous n'avez pas à connaître ni à entrer ces valeurs à l'avance. Utilisez le bouton
Rechercher pour rechercher et sélectionner la destination RFC appropriée. Une fois que
vous avez sélectionné une destination RFC, le composant entre les valeurs appropriées
pour les options.

Hôte de passerelle
Entrez le nom du serveur ou l'adresse IP de l'hôte de passerelle. Généralement, le nom
ou l'adresse IP est identique au serveur d'applications SAP.

Service de passerelle
Entrez le nom du service de passerelle, au format sapgwNN, où NN représente le
numéro du système.

ID de programme
Entrez l'ID du programme qui est associé à la destination RFC.

Rechercher
Recherchez la destination RFC à l’aide de la boîte de dialogue Rechercher la destination
RFC . Pour plus d'informations sur cette boîte de dialogue, consultez Look Up RFC
Destination.

Mode d'exécution - E = Extraire uniquement


ID de la demande
Entrez l'ID de demande qui est associé à l'extraction.

Voir aussi
Éditeur de source SAP BW (page Colonnes)
Éditeur de source SAP BW (page Sortie d'erreur)
Éditeur de source SAP BW (page Avancé)
Aide (F1) sur Microsoft Connector pour SAP BW
Éditeur de source SAP BW (page
Colonnes)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la page Colonnes de l’Éditeur de source SAP BW pour mapper une colonne de
sortie à chaque colonne (source) externe.

Pour en savoir plus sur le composant source SAP BW de Microsoft Connector 1.1 pour
SAP BW, consultez SAP BW Source.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

) Important

Vous devez disposer d'une licence SAP supplémentaire pour extraire des données à
partir de SAP Netweaver BW. Vérifiez auprès de SAP.

Pour ouvrir la page Colonnes

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la source SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la source SAP BW.

3. Dans l' Éditeur de source SAP BW, cliquez sur Colonnes pour ouvrir la page
Colonnes de l'éditeur.

Options

7 Notes
Si vous ne connaissez pas toutes les valeurs requises pour configurer la source,
adressez-vous à votre administrateur SAP.

Colonnes externes disponibles


Affichez la liste des colonnes externes disponibles dans la source de données, puis
sélectionnez les colonnes à inclure dans le flux de données.

Pour inclure une colonne dans le flux de données, activez la case à cocher
correspondant à cette colonne. L'ordre dans lequel vous sélectionnez les cases à cocher
détermine l'ordre dans lequel les colonnes sont générées. Autrement dit, la première
case à cocher que vous sélectionnez sera la première colonne de sortie, la deuxième
case à cocher correspondra à la deuxième colonne de sortie, etc.

Colonne externe
Affichez les colonnes externes (source) que vous avez sélectionnées. Les colonnes
sélectionnées apparaissent dans l'ordre dans lequel vous verrez les colonnes de sortie
correspondantes lorsque vous configurerez les composants en aval qui consomment
des données de cette source.

Pour modifier l'ordre des colonnes, dans la liste Colonnes externes disponibles ,
désactivez les cases à cocher de toutes les colonnes. Puis, sélectionnez les colonnes
dans l'ordre d'apparition souhaité.

Colonne de sortie
Spécifiez un nom unique pour chaque colonne de sortie. La valeur par défaut
correspond au nom de la colonne externe (source) sélectionnée. Toutefois, vous pouvez
entrer un nom descriptif unique. SSIS affiche les noms Colonne de sortie pour les
colonnes lorsque vous configurez les composants en aval qui consomment des données
de cette source.

Voir aussi
Éditeur de source SAP BW (page Gestionnaire de connexions)
Éditeur de source SAP BW (page Sortie d'erreur)
Éditeur de source SAP BW (page Avancé)
Aide (F1) sur Microsoft Connector pour SAP BW
Éditeur de source SAP BW (page Sortie
d'erreur)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la page Sortie d'erreur de l' Éditeur de source SAP BW pour sélectionner les
options de gestion des erreurs et pour définir les propriétés des colonnes de sortie
d'erreur.

Pour en savoir plus sur le composant source SAP BW de Microsoft Connector 1.1 pour
SAP BW, consultez SAP BW Source.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

) Important

Vous devez disposer d'une licence SAP supplémentaire pour extraire des données à
partir de SAP Netweaver BW. Vérifiez auprès de SAP.

Pour ouvrir la page Sortie d'erreur

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la source SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la source SAP BW.

3. Dans l' Éditeur de source SAP BW, cliquez sur Sortie d'erreur pour ouvrir la page
Sortie d'erreur de l'éditeur.

Options

7 Notes
Si vous ne connaissez pas toutes les valeurs requises pour configurer la source,
adressez-vous à votre administrateur SAP.

Entrée ou Sortie
Affichez le nom de la source de données.

Colonne
Affichez les colonnes externes (source) que vous avez sélectionnées dans la page
Colonnes de la boîte de dialogue Éditeur de source SAP BW . Pour plus d’informations
sur cette boîte de dialogue, consultez Éditeur de source SAP BW (Page Colonnes).

Error
Spécifiez ce que le composant source SAP BW doit faire en cas d'erreur : ignorer l'échec,
rediriger la ligne ou faire échouer le composant.

Troncation
Spécifiez ce que le composant source SAP BW doit faire en cas de troncation : ignorer
l'échec, rediriger la ligne ou faire échouer le composant.

Description
Affiche la description de l'erreur.

Définir cette valeur sur les cellules sélectionnées


Spécifiez ce que le composant source SAP BW doit faire pour l'ensemble des cellules
sélectionnées lorsqu'une erreur ou une troncation se produit : ignorer l'échec, rediriger
la ligne ou faire échouer le composant.

Appliquer
Appliquez l'option de gestion des erreurs aux cellules sélectionnées.

Voir aussi
Éditeur de source SAP BW (page Gestionnaire de connexions)
Éditeur de source SAP BW (page Colonnes)
Éditeur de source SAP BW (page Avancé)
Aide (F1) sur Microsoft Connector pour SAP BW
Éditeur de source SAP BW (page
Avancé)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la page Avancé de l’Éditeur de source SAP BW pour spécifier la règle de


conversion de chaînes et le délai d’attente, et également pour réinitialiser l’état d’un ID
de demande particulier.

Pour en savoir plus sur le composant source SAP BW de Microsoft Connector 1.1 pour
SAP BW, consultez SAP BW Source.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

) Important

Vous devez disposer d'une licence SAP supplémentaire pour extraire des données à
partir de SAP Netweaver BW. Vérifiez auprès de SAP.

Pour ouvrir la page Gestionnaire de connexions

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la source SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la source SAP BW.

3. Dans l’Éditeur de source SAP BW, cliquez sur Avancé pour ouvrir la page Avancé
de l’éditeur.

Options

7 Notes
Si vous ne connaissez pas toutes les valeurs requises pour configurer la source,
adressez-vous à votre administrateur SAP.

Conversion de chaîne
Spécifiez la règle à appliquer pour la conversion de chaîne.

Option Description

Conversion de Convertir toutes les chaînes en nvarchar quand le système SAP Netweaver
chaîne BW est un système Unicode. Sinon, convertir toutes les chaînes en varchar.
automatique

Convertir les Convertir toutes les chaînes en varchar.


chaînes en
varchar

Convertir les Convertir les chaînes en nvarchar.


chaînes en
nvarchar

Délai d'attente (secondes)


Spécifiez le nombre maximal de secondes pendant lesquelles la source doit attendre.

7 Notes

Cette option n’est valide que si vous avez sélectionné A - Attendre la notification
comme valeur du Mode d’exécution dans la page Gestionnaire de connexions de
l’éditeur. Pour plus d’informations, consultez Éditeur de source SAP BW (Page
Gestionnaire de connexions).

ID de la demande
Spécifiez l’ID de demande dont vous voulez réinitialiser l’état sur « V - Vert » quand vous
cliquez sur Réinitialiser.

Réinitialiser
Vous permet de réinitialiser l'état de l'ID de demande spécifié sur « V - Vert », après
l'invite de confirmation. Ce peut être utile lorsqu'un problème est survenu et que le
système SAP Netweaver BW a marqué la demande avec un état jaune ou rouge.

Voir aussi
Éditeur de source SAP BW (page Gestionnaire de connexions)
Éditeur de source SAP BW (page Colonnes)
Éditeur de source SAP BW (page Sortie d'erreur)
Aide (F1) sur Microsoft Connector pour SAP BW
Rechercher la destination RFC
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Rechercher la destination RFC pour rechercher une


destination RFC qui est définie dans le système SAP Netweaver BW. Lorsque la liste de
destinations RFC disponibles apparaît, sélectionnez la destination de votre choix. Le
composant remplira les options associées à l'aide des valeurs requises.

La source SAP BW et la destination SAP BW utilisent toutes les deux la boîte de dialogue
Rechercher la destination RFC . Pour plus d’informations sur ces composants de
Microsoft Connector 1.1 pour SAP BW, consultez Source SAP BW et Destination SAP BW.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

Pour ouvrir la boîte de dialogue Rechercher la destination RFC

1. Dans SQL Server Data Tools (SSDT), ouvrez le package à Integration Services qui
contient la source ou la destination SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la source ou la destination SAP


BW.

3. Dans l' Éditeur de source SAP BW ou dans l' Éditeur de destination SAP BW,
cliquez sur Gestionnaire de connexions pour ouvrir la page Gestionnaire de
connexions de l'éditeur.

4. Sur la page Gestionnaire de connexions , dans la zone de groupe Destination RFC


, cliquez sur Rechercher pour afficher la boîte de dialogue Rechercher la
destination RFC .

Dans l’Éditeur de source SAP BW, la zone de groupe Destination RFC s’affiche
uniquement si l’option Mode d’exécution a la valeur P - Déclencher une chaîne de
processus ou A - Attendre la notification.
Options
Destination
Affichez le nom de la destination RFC qui est définie dans le système SAP Netweaver
BW.

Hôte de passerelle
Affichez le nom du serveur ou l'adresse IP de l'hôte de passerelle. Généralement, le nom
ou l'adresse IP est identique au serveur d'applications SAP.

Service de passerelle
Affichez le nom du service de passerelle, au format sapgwNN, où NN représente le
numéro du système.

ID de programme
Affichez l'ID de programme associé à la destination RFC.

Voir aussi
Éditeur de source SAP BW (page Gestionnaire de connexions)
Éditeur de destination SAP BW (page Gestionnaire de connexions)
Aide (F1) sur Microsoft Connector pour SAP BW
Rechercher la chaîne de processus
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Rechercher la chaîne de processus pour rechercher une


chaîne de processus qui est définie dans le système SAP Netweaver BW. Lorsque la liste
de chaînes de processus disponibles apparaît, sélectionnez la chaîne de votre choix. La
source remplira les options associées à l'aide des valeurs requises.

La source SAP BW de Microsoft Connector 1.1 pour SAP BW utilise la boîte de dialogue
Rechercher la chaîne de processus . Pour en savoir plus sur la source SAP BW, consultez
SAP BW Source.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

Pour ouvrir la boîte de dialogue Rechercher la chaîne de processus

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la source SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la source SAP BW.

3. Dans l' Éditeur de source SAP BW, cliquez sur Gestionnaire de connexions pour
ouvrir la page Gestionnaire de connexions de l'éditeur.

4. Dans la zone de groupe Chaîne de processus , cliquez sur Rechercher pour


afficher la boîte de dialogue Rechercher la chaîne de processus .

La zone de groupe Chaîne de processus apparaît uniquement si la valeur de Mode


d’exécution est P - Déclencher une chaîne de processus.

Options de recherche
Dans les champs de recherche, vous pouvez filtrer les résultats à l'aide du caractère
générique astérisque (*), ou en utilisant une chaîne partielle conjointement avec le
caractère générique astérisque. Cependant, si vous laissez un champ de recherche vide,
l'opération de recherche mettra uniquement en correspondance les chaînes vides de ce
champ.

Chaîne de processus
Entrez le nom de la chaîne de processus à rechercher, ou entrez un nom partiel avec le
caractère générique astérisque (*). Sinon, utilisez le caractère générique astérisque seul
pour inclure toutes les chaînes de processus.

Rechercher
Recherchez des chaînes de processus correspondantes définies dans le système SAP
Netweaver BW.

Résultats de la recherche
Après avoir cliqué sur le bouton Rechercher, une liste de chaînes de processus dans le
système SAP Netweaver BW apparaît dans un tableau avec les en-têtes de colonnes
suivants :

Chaîne de processus
Affiche le nom de la chaîne de processus qui est définie dans le système SAP Netweaver
BW.

Description
Affiche la description de la chaîne de processus.

Lorsque la liste de chaînes de processus disponibles apparaît, sélectionnez la chaîne de


votre choix. La source remplira les options associées à l'aide des valeurs requises.

Voir aussi
Éditeur de source SAP BW (page Gestionnaire de connexions)
Aide (F1) sur Microsoft Connector pour SAP BW
Journal des requêtes
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Journal des requêtes pour afficher les événements
journalisés lors de la demande qui est effectuée au système SAP Netweaver BW pour les
exemples de données. Ces informations peuvent être utiles si vous devez dépanner
votre configuration de la source SAP BW.

Pour en savoir plus sur le composant source SAP BW de Microsoft Connector 1.1 pour
SAP BW, consultez SAP BW Source.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

) Important

Vous devez disposer d'une licence SAP supplémentaire pour extraire des données à
partir de SAP Netweaver BW. Vérifiez auprès de SAP.

Pour ouvrir la boîte de dialogue Journal des requêtes

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la source SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la source SAP BW.

3. Dans l' Éditeur de source SAP BW, cliquez sur Gestionnaire de connexions pour
ouvrir la page Gestionnaire de connexions de l'éditeur.

4. Après avoir configuré la source SAP BW, cliquez sur Aperçu pour afficher un
aperçu des événements dans la boîte de dialogue Journal des requêtes .

7 Notes
Cliquer sur Aperçu ouvre également la boîte de dialogue Aperçu . Pour plus
d'informations sur cette boîte de dialogue, consultez Preview.

Options
Time
Affiche l'heure à laquelle l'événement a été journalisé.

Type
Affiche le type de l'événement qui a été journalisé. Le tableau suivant répertorie les
types d'événements possibles.

Valeur Description

S Message de réussite.

E Message d’erreur

W Message d'avertissement.

I Message d’information.

Un L'opération a été abandonnée.

Message
Affiche le texte du message associé à l'événement journalisé.

Voir aussi
Éditeur de source SAP BW (page Gestionnaire de connexions)
Aide (F1) sur Microsoft Connector pour SAP BW
PRÉVERSION
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Aperçu pour afficher un aperçu des données que la source
SAP BW devra extraire.

) Important

L'option Aperçu , qui est disponible sur la page Gestionnaire de connexions de l'
Éditeur de source SAP BW, extrait réellement des données. Si vous avez configuré
le système SAP Netweaver BW pour extraire uniquement les données qui ont été
modifiées depuis l'extraction précédente, la sélection d' Aperçu exclura les données
de l'aperçu de l'extraction suivante.

Pour en savoir plus sur le composant source SAP BW de Microsoft Connector 1.1 pour
SAP BW, consultez SAP BW Source.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

) Important

Vous devez disposer d'une licence SAP supplémentaire pour extraire des données à
partir de SAP Netweaver BW. Vérifiez auprès de SAP.

Pour ouvrir la boîte de dialogue Aperçu

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la source SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la source SAP BW.

3. Dans l' Éditeur de source SAP BW, cliquez sur Gestionnaire de connexions pour
ouvrir la page Gestionnaire de connexions de l'éditeur.
4. Configurez la source SAP BW.

5. Après avoir configuré la source SAP BW, sur la page Gestionnaire de connexions ,
cliquez sur Aperçu pour afficher un aperçu des données dans la boîte de dialogue
Aperçu .

7 Notes

Cliquer sur Aperçu ouvre également la boîte de dialogue Journal des


requêtes . Pour plus d'informations sur cette boîte de dialogue, consultez
Request Log.

Options
La boîte de dialogue Aperçu affiche les lignes qui sont demandées par le système SAP
Netweaver BW. Les colonnes qui sont affichées sont les colonnes qui sont définies dans
les données sources.

Il n'existe aucune autre option dans cette boîte de dialogue.

Voir aussi
Éditeur de source SAP BW (page Gestionnaire de connexions)
Aide (F1) sur Microsoft Connector pour SAP BW
Destination SAP BW
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination SAP BW est le composant de destination de Microsoft Connector 1.1


pour SAP BW. Ainsi, la destination SAP BW charge les données du flux de données d'un
package Integration Services dans un système SAP Netweaver BW version 7.

Cette destination comporte une entrée et une sortie d'erreur.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

Pour utiliser la destination SAP BW, vous devez effectuer les tâches suivantes :

Préparer les objets SAP Netweaver BW

Établir une connexion au système SAP Netweaver BW

Configurer la destination SAP BW

Préparation des objets SAP Netweaver BW


requis par la destination
La destination SAP BW nécessite la présence de certains objets dans le système SAP
Netweaver BW pour que la destination puisse fonctionner. Si ces objets n'existent pas,
vous devez suivre ces étapes pour les créer et les configurer dans le système SAP
Netweaver BW.

7 Notes

Pour plus d'informations sur ces objets et ces étapes de configuration, consultez la
documentation de SAP Netweaver BW.

1. Créer un nouveau système source :


a. Sélectionnez le type « Interfaces BAPI intermédiaires/tierces ».

b. Pour Type de communication avec le système cible, sélectionnez Non-Unicode


(Paramètres MDMP inactifs).

c. Attribuez un ID de programme approprié.

2. Attribuez le système source à un InfoSource.

3. Créez un InfoPackage.

L'InfoPackage est l'objet le plus important requis par la destination SAP BW.

Vous pouvez aussi créer des InfoObjects, des InfoCubes, des InfoSources et des
InfoPackages supplémentaires, requis pour prendre en charge le chargement des
données dans le système SAP Netweaver BW.

Connexion au système SAP Netweaver BW


Pour la connexion au système SAP Netweaver BW version 7, la destination SAP BW
utilise le gestionnaire de connexions SAP BW qui fait partie du package Microsoft
Connector 1.1 pour SAP BW. Le gestionnaire de connexions SAP BW est le seul
gestionnaire de connexions Integration Services que la destination SAP BW peut utiliser.

Pour plus d'informations sur le gestionnaire de connexions SAP BW, consultez SAP BW
Connection Manager.

Configuration de la destination SAP BW


Vous pouvez configurer la destination SAP BW de plusieurs manières :

Recherchez et sélectionnez l'InfoPackage à utiliser pour charger les données.

Mappez chaque colonne du flux de données à l'InfoObject approprié dans


l'InfoPackage.

Spécifiez le nombre de lignes de données qui seront transférées à la fois en


configurant la propriété PackageSize .

Choisissez d'attendre la fin du chargement des données par le système SAP


Netweaver BW.

Choisissez de ne pas déclencher l'InfoPackage, mais d'attendre une notification


indiquant que le système SAP Netweaver BW a démarré le chargement des
données.

Déclenchez éventuellement une autre chaîne de processus une fois le chargement


des données terminé.

Créez éventuellement les objets SAP Netweaver BW requis par la destination. Cela
inclut la création d'InfoObjects, d'InfoCubes, d'InfoSources et d'InfoPackages.

Testez le chargement des données avec les options que vous avez sélectionnées.

Vous pouvez également activer la journalisation des appels de fonction RFC par la
destination. (Cette journalisation diffère de la journalisation facultative que vous pouvez
activer sur les packages Integration Services .) Activez la journalisation des appels de
fonction RFC lorsque vous configurez le gestionnaire de connexions SAP BW que la
destination utilisera. Pour plus d'informations sur la configuration du gestionnaire de
connexions SAP BW, consultez SAP BW Connection Manager.

Si vous ne connaissez pas toutes les valeurs requises pour configurer la destination,
adressez-vous à votre administrateur SAP.

Pour obtenir la procédure pas à pas qui montre comment configurer et utiliser le
gestionnaire de connexions, la source et la destination SAP BW, consultez le livre blanc
Utilisation de SQL Server 2008 Integration Services avec SAP BI 7.0. Ce livre blanc
explique également comment configurer les objets nécessaires dans SAP BW.

Utilisation du concepteur SSIS pour configurer la


destination
Pour plus d'informations sur les propriétés de la destination SAP BW que vous pouvez
définir dans le Concepteur SSIS , cliquez sur l'une des rubriques suivantes :

Éditeur de destination SAP BW (page Gestionnaire de connexions)

Éditeur de destination SAP BW (page Mappages)

Éditeur de destination SAP BW (page Sortie d'erreur)

Éditeur de destination SAP BW (page Avancé)

Lorsque vous configurez la destination SAP BW, vous pouvez également utiliser
différentes boîtes de dialogue pour rechercher ou pour créer des objets SAP Netweaver
BW. Pour plus d'informations sur ces boîtes de dialogue, cliquez sur l'une des rubriques
suivantes :

Rechercher un InfoPackage
Créer un nouvel InfoObject

Créer un InfoCube pour les données de transaction

Rechercher un InfoObject

Créer un InfoSource

Créer un InfoSource pour les données de transaction

Créer un InfoSource pour les données maîtres

Créer un InfoPackage

Voir aussi
Composants Microsoft Connector 1.1 pour SAP BW
Éditeur de destination SAP BW (page
Gestionnaire de connexions)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la page Gestionnaire de connexions de l' Éditeur de destination SAP BW pour


sélectionner le gestionnaire de connexions SAP BW qui sera utilisé par la destination
SAP BW. Sur cette page, sélectionnez également les paramètres pour charger les
données dans le système SAP Netweaver BW.

Pour en savoir plus sur la destination SAP BW de Microsoft Connector 1.1 pour SAP BW,
consultez Destination SAP BW.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

Pour ouvrir la page Gestionnaire de connexions

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la destination SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la destination SAP BW.

3. Dans l' Éditeur de destination SAP BW, cliquez sur Gestionnaire de connexions
pour ouvrir la page Gestionnaire de connexions de l'éditeur.

Options

7 Notes

Si vous ne connaissez pas toutes les valeurs requises pour configurer la destination,
adressez-vous à votre administrateur SAP.

Gestionnaire de connexions SAP BW


Sélectionnez un gestionnaire de connexions existant dans la liste ou créez une nouvelle
connexion en cliquant sur Nouveau.

Nouveau
Créez un gestionnaire de connexions à l’aide de la boîte de dialogue Gestionnaire de
connexions SAP BW .

Test de charge
Réalisez un test du processus de chargement qui utilise les paramètres que vous avez
sélectionnés et qui charge zéro ligne.

Options InfoPackage/InfoSource
Vous n'avez pas à connaître ni à entrer ces valeurs à l'avance. Utilisez le bouton
Rechercher pour rechercher et sélectionner l'InfoPackage approprié. Après avoir
sélectionné un InfoPackage, le composant entre les valeurs appropriées pour ces
options.

InfoPackage
Entrez le nom de l'InfoPackage.

InfoSource
Entrez le nom de l'InfoSource.

Type
Entrez le caractère unique qui identifie le type de l'InfoSource. Le tableau suivant
répertorie les valeurs à un seul caractère acceptables.

Valeur Description

D Données de transaction

M Données maîtres

T Textes

H Données de hiérarchie

Système logique
Entrez le nom du système logique qui est associé à l'InfoPackage.

Rechercher
Recherchez l’InfoPackage à l’aide de la boîte de dialogue Rechercher un InfoPackage .
Pour plus d'informations sur cette boîte de dialogue, consultez Look Up InfoPackage.

Options de la destination RFC


Vous n'avez pas à connaître ni à entrer ces valeurs à l'avance. Utilisez le bouton
Rechercher pour rechercher et sélectionner la destination RFC appropriée. Après avoir
sélectionné une destination RFC, le composant entre les valeurs appropriées pour ces
options.

Hôte de passerelle
Entrez le nom du serveur ou l'adresse IP de l'hôte de passerelle. Généralement, le nom
ou l'adresse IP est identique au serveur d'applications SAP.

Service de passerelle
Entrez le nom du service de passerelle, au format sapgwNN, où NN représente le
numéro du système.

ID de programme
Entrez l'ID du programme qui est associé à la destination RFC.

Rechercher
Recherchez la destination RFC à l’aide de la boîte de dialogue Rechercher la destination
RFC . Pour plus d'informations sur cette boîte de dialogue, consultez Look Up RFC
Destination.

Options de création d'objets SAP BW


Sélectionner type d'objet
Sélectionnez le type d'objet SAP Netweaver BW que vous souhaitez créer. Vous pouvez
sélectionner l'un des types suivants :

InfoObject

InfoCube

InfoSource

InfoPackage

Créer
Créez le type sélectionné d'objet SAP Netweaver BW.

Type Résultats
d'objet

InfoObject Créez un nouvel InfoObject à l'aide de la boîte de dialogue Créer un nouvel


InfoObject . Pour plus d'informations sur cette boîte de dialogue, consultez Create
New InfoObject.
Type Résultats
d'objet

InfoCube Créez un nouvel InfoCube à l'aide de la boîte de dialogue Créer un InfoCube pour
les données de transaction . Pour plus d'informations sur cette boîte de dialogue,
consultez Create InfoCube for Transaction Data.

InfoSource Créez un nouvel InfoSource à l'aide de la boîte de dialogue Créer un InfoSource ,


puis avec Créer un InfoSource pour les données de transaction ou la boîte de
dialogue Créer un InfoSource pour les données maîtres . Pour plus d'informations
sur ces boîtes de dialogue, consultez Create InfoSource, Create InfoSource for
Transaction Data et Create InfoSource for Master Data.

InfoPackage Créez un nouvel InfoPackage à l'aide de la boîte de dialogue Créer un InfoPackage


. Pour plus d'informations sur cette boîte de dialogue, consultez Create
InfoPackage.

Voir aussi
Éditeur de destination SAP BW (page Mappages)
Éditeur de destination SAP BW (page Sortie d'erreur)
Éditeur de destination SAP BW (page Avancé)
Aide (F1) sur Microsoft Connector pour SAP BW
Éditeur de destination SAP BW (page
Mappages)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La page Mappages de l’Éditeur de destination SAP BW vous permet de mapper les


colonnes d’entrée aux colonnes de destination.

Pour en savoir plus sur la destination SAP BW de Microsoft Connector 1.1 pour SAP BW,
consultez Destination SAP BW.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

Pour ouvrir la page Mappages

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la destination SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la destination SAP BW.

3. Dans l’Éditeur de destination SAP BW, cliquez sur Mappages pour ouvrir la page
Mappages de l’éditeur.

Options

7 Notes

Si vous ne connaissez pas toutes les valeurs requises pour configurer la destination,
adressez-vous à votre administrateur SAP.

La page Mappages de l’Éditeur de destination SAP BW contient deux sections :

La section supérieure montre les colonnes d'entrée et de destination disponibles et


vous permet de créer des mappages entre ces deux types de colonnes.
La section inférieure est un tableau qui indique quelles colonnes d'entrée ont été
mappées à quelles colonnes de sortie.

Options de la section supérieure


La section supérieure comporte les options suivantes :

Colonnes d'entrée disponibles


Affichez la liste des colonnes d'entrée disponibles.

Pour mapper une colonne d’entrée à une colonne de destination, faites glisser une
colonne de la liste Colonnes d’entrée disponibles et déposez-la sur une colonne de la
liste Colonnes de destination disponibles .

Colonnes de destination disponibles


Affichez la liste des colonnes de destination disponibles.

Pour mapper une colonne d’entrée à une colonne de destination, faites glisser une
colonne de la liste Colonnes d’entrée disponibles et déposez-la sur une colonne de la
liste Colonnes de destination disponibles .

La section supérieure comporte également un menu contextuel que vous pouvez ouvrir
en cliquant avec le bouton droit sur l'arrière-plan. Ce menu contextuel contient les
options suivantes :

Sélectionner tous les mappages

Supprimer les mappages sélectionnés

Mapper les éléments par noms correspondants

Colonnes de la section inférieure


La section inférieure est un tableau des mappages. Elle comporte les colonnes suivantes
:

Colonne d'entrée
Affichez les colonnes d'entrée que vous avez sélectionnées.

Pour mapper une colonne d'entrée différente à la même colonne de destination,


sélectionnez une colonne d'entrée différente dans la liste. Pour supprimer un mappage,
sélectionnez <ignorer> pour exclure la colonne d’entrée de la sortie.
Colonne de destination
Affichez chaque colonne de destination disponible, qu'elle soit mappée ou non.

Voir aussi
Éditeur de destination SAP BW (page Gestionnaire de connexions)
Éditeur de destination SAP BW (page Sortie d'erreur)
Éditeur de destination SAP BW (page Avancé)
Aide (F1) sur Microsoft Connector pour SAP BW
Éditeur de destination SAP BW (page
Sortie d'erreur)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la page Sortie d’erreur de l’Éditeur de destination SAP BW pour définir les
options de gestion des erreurs.

Pour en savoir plus sur la destination SAP BW de Microsoft Connector 1.1 pour SAP BW,
consultez Destination SAP BW.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

Pour ouvrir la page Sortie d'erreur

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la destination SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la destination SAP BW.

3. Dans l’Éditeur de destination SAP BW, cliquez sur Sortie d’erreur pour ouvrir la
page Sortie d’erreur de l’éditeur.

Options

7 Notes

Si vous ne connaissez pas toutes les valeurs requises pour configurer la destination,
adressez-vous à votre administrateur SAP.

Entrée ou Sortie
Affichez le nom de l'entrée.
Colonne
Cette option n'est pas utilisée.

Error
Spécifiez ce que la destination doit faire en cas d'erreur : ignorer l'échec, rediriger la
ligne ou faire échouer le composant.

Troncation
Cette option n'est pas utilisée.

Description
Affichez la description de l'opération.

Définir cette valeur sur les cellules sélectionnées


Spécifiez ce que la destination doit faire pour l'ensemble des cellules sélectionnées
lorsqu'une erreur ou une troncation se produit : ignorer l'échec, rediriger la ligne ou
faire échouer le composant.

Appliquer
Appliquez l'option de gestion des erreurs aux cellules sélectionnées.

Voir aussi
Éditeur de destination SAP BW (page Gestionnaire de connexions)
Éditeur de destination SAP BW (page Mappages)
Éditeur de destination SAP BW (page Avancé)
Aide (F1) sur Microsoft Connector pour SAP BW
Éditeur de destination SAP BW (page
Avancé)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la page Avancé de l’Éditeur de destination SAP BW pour définir les paramètres
avancés tels que la taille du package et les informations de temps d’attente.

Pour en savoir plus sur la destination SAP BW de Microsoft Connector 1.1 pour SAP BW,
consultez Destination SAP BW.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

Pour ouvrir la page Avancé

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la destination SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la destination SAP BW.

3. Dans l’Éditeur de destination SAP BW, cliquez sur Avancé pour ouvrir la page
Avancé de l’éditeur.

Options

7 Notes

Si vous ne connaissez pas toutes les valeurs requises pour configurer la destination,
adressez-vous à votre administrateur SAP.

Taille du package
Spécifiez combien de lignes de données seront transférées à la fois. La valeur optimale
de ce paramètre dépend du système SAP Netweaver BW et du traitement
supplémentaire des données qui peut avoir lieu. En général, des valeurs comprises entre
2 000 et 20 000 offrent les meilleures performances.

Déclencher la chaîne de processus


(Facultatif) Spécifiez le nom d'une chaîne de processus à déclencher une fois le
chargement des données terminé.

Délai d'attente d'InfoPackage


Spécifiez le nombre maximal de secondes pendant lesquelles la destination doit
attendre la fin de l'InfoPackage.

Attendre la fin du transfert de données


Spécifiez si la destination doit attendre que le système SAP Netweaver BW ait terminé
de charger les données.

Ne pas démarrer InfoPackage (attendre uniquement)


Spécifiez que la destination ne doit pas déclencher d'InfoPackage, mais attendre
uniquement la notification informant que le système SAP Netweaver BW a démarré le
chargement des données.

Voir aussi
Éditeur de destination SAP BW (page Gestionnaire de connexions)
Éditeur de destination SAP BW (page Mappages)
Éditeur de destination SAP BW (page Sortie d'erreur)
Aide (F1) sur Microsoft Connector pour SAP BW
Rechercher un InfoPackage
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Rechercher un InfoPackage pour rechercher un


InfoPackage qui est défini dans le système SAP Netweaver BW. Lorsque la liste
d'InfoPackages apparaît, sélectionnez l'InfoPackage de votre choix. La destination
remplira les options associées à l'aide des valeurs requises.

La destination SAP BW de Microsoft Connector 1.1 pour SAP BW utilise la boîte de


dialogue Rechercher la chaîne de processus . Pour en savoir plus sur la destination SAP
BW, consultez Destination SAP BW.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

Pour ouvrir la boîte de dialogue Rechercher un InfoPackage

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la destination SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la destination SAP BW.

3. Dans l' Éditeur de destination SAP BW, cliquez sur Gestionnaire de connexions
pour ouvrir la page Gestionnaire de connexions de l'éditeur.

4. Dans la page Gestionnaire de connexions , dans la zone de groupe


InfoPackage/InfoSource , cliquez sur Rechercher pour afficher la boîte de dialogue
Rechercher un InfoPackage .

Options de recherche
Dans les champs de recherche, vous pouvez filtrer les résultats à l'aide du caractère
générique astérisque (*), ou en utilisant une chaîne partielle conjointement avec le
caractère générique astérisque. Cependant, si vous laissez un champ de recherche vide,
l'opération de recherche mettra uniquement en correspondance les chaînes vides de ce
champ.

InfoPackage
Entrez le nom de l'InfoPackage à rechercher, ou un nom partiel avec le caractère
générique astérisque (*). Sinon, utilisez le caractère générique astérisque seul pour
inclure tous les InfoPackages.

InfoSource
Entrez le nom de l'InfoSource ou un nom partiel avec le caractère générique astérisque
(*). Sinon, utilisez le caractère générique astérisque seul pour inclure tous les
InfoPackages, indépendamment d'InfoSource.

Système source
Entrez le nom du système source ou un nom partiel avec le caractère générique
astérisque (*). Sinon, utilisez le caractère générique astérisque seul pour inclure tous les
InfoPackages, indépendamment des systèmes sources.

Rechercher
Recherchez les InfoPackages correspondants qui sont définis dans le système SAP
Netweaver BW.

Résultats de la recherche
Après avoir cliqué sur le bouton Rechercher, une liste des InfoPackages du système SAP
Netweaver BW apparaît dans un tableau avec les en-têtes de colonnes suivants.

InfoPackage
Affiche le nom de l'InfoPackage qui est défini dans le système SAP Netweaver BW.

Type
Affiche le type de l'InfoPackage. Le tableau suivant répertorie les valeurs possibles pour
le type.

Valeur Description

Trans. Données de transaction.

Attr. Données d'attribut.

Textes Textes.

Description
Affiche la description de l'InfoPackage.
InfoSource
Affiche le nom de l'InfoSource, le cas échéant, qui est associé à l'InfoPackage.

Source System
Affiche le nom du système source.

Lorsque la liste d'InfoPackages apparaît, sélectionnez l'InfoPackage de votre choix. La


destination remplira les options associées à l'aide des valeurs requises.

Voir aussi
Éditeur de destination SAP BW (page Gestionnaire de connexions)
Aide (F1) sur Microsoft Connector pour SAP BW
Créer un nouvel InfoObject
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Créer un nouvel InfoObject pour créer un InfoObject dans
le système SAP Netweaver BW.

Vous pouvez ouvrir la boîte de dialogue Créer un nouvel InfoObject à partir de la page
Gestionnaire de connexions de l’Éditeur de destination SAP BW. Pour en savoir plus
sur la destination SAP BW, consultez Destination SAP BW.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

Pour ouvrir la boîte de dialogue Créer un nouvel InfoObject

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la destination SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la destination SAP BW.

3. Dans l' Éditeur de destination SAP BW, cliquez sur Gestionnaire de connexions
pour ouvrir la page Gestionnaire de connexions de l'éditeur.

4. Dans la page Gestionnaire de connexions , dans la zone de groupe Créer des


objets SAP BW , procédez de l’une des façons suivantes pour créer un InfoObject :

a. Pour créer un InfoObject directement, sélectionnez InfoObject, puis cliquez sur


Créer pour ouvrir la boîte de dialogue Créer un nouvel InfoObject .

b. Pour créer un InfoObject lors de la création d’un InfoCube, sélectionnez


InfoCube, puis cliquez sur Créer. Dans la boîte de dialogue Créer un InfoCube
pour les données de transaction , dans la colonne IObject pour l’une des lignes
de la liste, sélectionnez Créer pour ouvrir la boîte de dialogue Créer un nouvel
InfoObject .

7 Notes
Chaque ligne de la table représente une colonne dans le flux de données
du package.

c. Pour créer un InfoObject lors de la création d’un InfoSouce pour les données
transactionnelles, sélectionnez InfoSource, puis cliquez sur Créer. Dans la boîte
de dialogue Créer un InfoSource , sélectionnez Données de transaction, puis
cliquez sur OK. Dans la boîte de dialogue Créer un InfoSource pour les
données de transaction , dans la colonne IObject pour l’une des lignes de la
liste, sélectionnez Créer pour ouvrir la boîte de dialogue Créer un nouvel
InfoObject .

7 Notes

Chaque ligne de la table représente une colonne dans le flux de données


du package.

d. Pour créer un InfoObject lors de la création d’un InfoSource pour les données
maîtres, sélectionnez InfoSource, puis cliquez sur Créer. Dans la boîte de
dialogue Créer un InfoSource , sélectionnez Données maîtres, puis cliquez sur
OK. Dans la boîte de dialogue Créer un InfoSource pour les données maîtres ,
cliquez sur Nouveau pour ouvrir la boîte de dialogue Créer un nouvel
InfoObject .

Vous pouvez également ouvrir la boîte de dialogue Créer un nouvel InfoObject en


cliquant sur Nouveau dans la section Attributs de la boîte de dialogue Créer un nouvel
InfoObject .

Options générales
Caractéristique
Créez un InfoObject qui représente des données de dimension.

Chiffre clé
Créez un InfoObject qui représente des données de faits.

Nom de l'InfoObject
Entrez le nom de l'InfoObject.

Brève description
Entrez une brève description pour l'InfoObject.
Description longue
Entrez une longue description pour l'InfoObject.

Comporte des données maîtres


Indique que l'InfoObject contient des données maîtres sous la forme d'attributs, de
textes ou de hiérarchies.

7 Notes

Sélectionnez cette option si l’InfoObject représente des données dimensionnelles


et que vous avez sélectionné l’option Caractéristique .

Autoriser les minuscules


Autorisez les minuscules dans les données de l'InfoObject.

Enregistrer et activer
Enregistrez et activez le nouvel InfoObject.

Options de type de données


CHAR - Chaîne de caractères
Indique que l'InfoObject contient des données caractères.

NUMC - Chaîne numérique


Indique que l'InfoObject contient des données numériques.

DATS - Date (AAAMMJJ)


Indique que l'InfoObject contient des données de date.

TIMS - Heure (HHMMSS)


Indique que l'InfoObject contient des données d'heure.

Longueur
Entrez la longueur des données.

Options de texte
Avec textes
Indique que l'InfoObject contient des textes.

Texte court
Indique que l'InfoObject contient des textes courts.
Texte moyen
Indique que l'InfoObject contient des textes moyens.

Texte long
Indique que l'InfoObject contient des textes longs.

Texte dépendant de la langue


Indique que les textes sont dépendants de la langue.

Texte dépendant de l'heure


Indique que les textes sont dépendants de l'heure.

Section Attributs
La section Attributs se compose d’une liste d’attributs pour l’InfoObject et des options
qui vous permettent d’ajouter et de supprimer des attributs dans la liste.

Liste des attributs


La liste Attributs affiche les attributs de l’InfoObject en cours de création. La liste
Attributs comporte les en-têtes de colonnes suivants :

InfoObject
Affichez le nom de l'InfoObject.

Description
Affichez la description de l'InfoObject.

Type d'InfoObject
Affichez le type de l'InfoObject. Le tableau suivant répertorie les valeurs possibles pour
le type.

Valeur Description

CHA Caractéristiques

KYF Chiffres clés

UNI Unités

TIM Caractéristiques de temps

Options des attributs


Utilisez les options suivantes pour ajouter et supprimer des attributs pour l'InfoObject
en cours de création :

Ajouter
Ajoutez un InfoObject existant comme attribut.

Pour ajouter un InfoObject existant, cliquez sur Ajouter, puis utilisez la boîte de dialogue
Rechercher un InfoObject pour trouver l’InfoObject. Pour plus d’informations sur cette
boîte de dialogue, consultez Rechercher un InfoObject.

Nouveau
Ajoutez un nouvel InfoObject comme attribut.

Pour créer et ajouter un nouvel InfoObject, cliquez sur Nouveau, puis utilisez une
nouvelle instance de la boîte de dialogue Créer un nouvel InfoObject pour créer
l’InfoObject.

Remove
Supprimez l’InfoObject sélectionné de la liste Attributs .

Voir aussi
Créer un InfoCube pour les données de transaction
Créer un InfoSource
Créer un InfoSource pour les données de transaction
Créer un InfoSource pour les données maîtres
Aide (F1) sur Microsoft Connector pour SAP BW
Créer un InfoCube pour les données de
transaction
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Créer un InfoCube pour les données de transaction pour
créer un InfoCube pour les données de transaction dans le système SAP Netweaver BW.

Vous pouvez ouvrir la boîte de dialogue Créer un InfoCube pour les données de
transaction depuis la page Gestionnaire de connexions de l’Éditeur de destination SAP
BW. Pour en savoir plus sur la destination SAP BW, consultez Destination SAP BW.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

Pour ouvrir la boîte de dialogue Créer un InfoCube pour les données de transaction

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la destination SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la destination SAP BW.

3. Dans l' Éditeur de destination SAP BW, cliquez sur Gestionnaire de connexions
pour ouvrir la page Gestionnaire de connexions de l'éditeur.

4. Dans la page Gestionnaire de connexions , dans la zone de groupe Créer des


objets SAP BW , sélectionnez InfoCube, puis cliquez sur Créer.

Options générales
Nom de l'InfoCube
Entrez le nom du nouvel InfoCube.

Description longue
Entrez une description pour le nouvel InfoCube.
Enregistrer et activer
Enregistrez et activez le nouvel InfoCube.

Options de structure de transfert de l'InfoCube


La section de structure de transfert de l'InfoCube vous permet d'associer les colonnes de
flux de données à des InfoObjects.

PipelineElement
Affiche la colonne dans la sortie du flux de données qui est connectée à la destination
SAP BW.

PipelineDataType
Affiche le type de données de la colonne de flux de données.

InfoObject
Affiche le nom de l'InfoObject qui est associé à la colonne de flux de données.

Type
Affiche le type de l'InfoObject qui est associé à la colonne de flux de données. Le
tableau suivant répertorie les valeurs possibles pour le type.

Valeur Description

CHA Caractéristiques

UNI Unités

KYF Chiffres clés

TIM Caractéristiques de temps

Iobject - Rechercher
Associez un InfoObject existant à la colonne de flux de données de la ligne actuelle.
Pour effectuer cette association, cliquez sur Rechercher, puis utilisez la boîte de
dialogue Rechercher un InfoObject pour sélectionner l’InfoObject existant. Pour plus
d’informations sur cette boîte de dialogue, consultez Rechercher un InfoObject.

Après avoir sélectionné un InfoObject existant, le composant remplit les colonnes


InfoObject et Type avec les valeurs sélectionnées.

Iobject - Nouveau
Créez un nouvel InfoObject et associez ce nouvel InfoObject à la colonne de flux de
données de la ligne actuelle. Pour créer l’InfoObject, cliquez sur Nouveau, puis utilisez la
boîte de dialogue Créer un nouvel InfoObject pour créer l’InfoObject. Pour plus
d'informations sur cette boîte de dialogue, consultez Create New InfoObject.

Après avoir créé un InfoObject, le composant remplit les colonnes InfoObject et Type
avec les nouvelles valeurs.

Iobject - Supprimer
Supprimez l'association entre l'InfoObject et la colonne de flux de données de la ligne
actuelle. Pour supprimer cette association, cliquez sur Supprimer.

Voir aussi
Aide (F1) sur Microsoft Connector pour SAP BW
Rechercher un InfoObject
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Rechercher un InfoObject pour rechercher un InfoObject


qui est défini dans le système SAP Netweaver BW. Lorsque la liste d'InfoObjects
disponibles apparaît, sélectionnez l'InfoObject de votre choix. La destination SAP BW
remplira les options associées à l'aide des valeurs requises.

La destination SAP BW de Microsoft Connector 1.1 pour SAP BW utilise la boîte de


dialogue Rechercher un InfoObject . Pour en savoir plus sur la destination SAP BW,
consultez Destination SAP BW.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

Pour ouvrir la boîte de dialogue Rechercher un InfoObject

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la destination SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la destination SAP BW.

3. Dans l' Éditeur de destination SAP BW, cliquez sur Gestionnaire de connexions
pour ouvrir la page Gestionnaire de connexions de l'éditeur.

4. Sur la page Gestionnaire de connexions , dans la zone de groupe Créer des objets
SAP BW , sélectionnez l'une des options suivantes :

a. Sélectionnez InfoCube. Ensuite, cliquez sur Créer. Dans la boîte de dialogue


Créer un InfoCube pour les données de transaction , cliquez sur Rechercher
dans la colonne IObject pour l'une des lignes de la liste. Chaque ligne
représente une colonne dans le flux de données du package.

b. Sélectionnez InfoSource. Cliquez ensuite sur Créer. Dans la boîte de dialogue


Créer un InfoSource , sélectionnez Données de transaction. Dans la boîte de
dialogue Créer un InfoSource pour les données de transaction , cliquez sur
Rechercher dans la colonne IObject pour l'une des lignes de la liste. Chaque
ligne représente une colonne dans le flux de données du package.

c. Sélectionnez InfoSource. Cliquez ensuite sur Créer. Dans la boîte de dialogue


Créer un InfoSource , sélectionnez Données maîtres. Dans la boîte de dialogue
Créer un InfoSource pour les données maîtres , cliquez sur Rechercher.

Vous pouvez également ouvrir la boîte de dialogue Rechercher un InfoObject en


cliquant sur Ajouter dans la section Attributs de la boîte de dialogue Créer un nouvel
InfoObject .

Options de recherche
Dans les zones de texte du champ de recherche, vous pouvez filtrer les résultats en
utilisant le caractère générique astérisque (*), ou en utilisant une chaîne partielle
conjointement avec le caractère générique astérisque. Cependant, si vous laissez un
champ de recherche vide, le processus de recherche mettra uniquement en
correspondance les chaînes vides de ce champ.

Caractéristiques
Recherchez des InfoObjects qui représentent des caractéristiques.

Unités
Recherchez des InfoObjects qui représentent des unités.

Chiffres clés
Recherchez des InfoObjects qui représentent des chiffres clés.

Caractéristiques de temps
Recherchez des InfoObjects qui représentent des caractéristiques de temps.

Nom
Entrez le nom de l'InfoObject à rechercher, ou un nom partiel avec le caractère
générique astérisque (*). Sinon, utilisez le caractère générique astérisque seul pour
inclure tous les InfoObjects.

Description
Entrez la description, ou une description partielle avec le caractère générique astérisque
(*). Sinon, utilisez le caractère générique astérisque seul pour inclure tous les
InfoObjects, quelle que soit la description.

Rechercher
Recherchez les InfoObjects correspondants qui sont définis dans le système SAP
Netweaver BW.
Résultats de la recherche
Après avoir cliqué sur le bouton Rechercher, une liste des InfoObjects du système SAP
Netweaver BW apparaît dans un tableau avec les en-têtes de colonnes suivants.

InfoObject
Affiche le nom de l'InfoObject qui est défini dans le système SAP Netweaver BW.

Texte (court)
Affiche le texte court associé à l'InfoObject.

Lorsque la liste d'InfoObjects disponibles apparaît, sélectionnez l'InfoObject de votre


choix. La destination remplira les options associées à l'aide des valeurs requises.

Voir aussi
Créer un InfoCube pour les données de transaction
Créer un InfoSource
Créer un InfoSource pour les données de transaction
Créer un InfoSource pour les données maîtres
Créer un nouvel InfoObject
Éditeur de destination SAP BW (page Gestionnaire de connexions)
Aide (F1) sur Microsoft Connector pour SAP BW
Créer un InfoSource
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Créer un InfoSource pour créer un InfoSource. Pour créer
l’InfoSource, utilisez la boîte de dialogue Créer un InfoSource pour les données de
transaction ou Créer un InfoSource pour les données maîtres .

Vous pouvez ouvrir la boîte de dialogue Créer un InfoSource à partir de la page


Gestionnaire de connexions de l’ Éditeur de destination SAP BW. Pour en savoir plus
sur la destination SAP BW, consultez Destination SAP BW.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

Pour ouvrir la boîte de dialogue Créer un InfoSource

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la destination SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la destination SAP BW.

3. Dans l' Éditeur de destination SAP BW, cliquez sur Gestionnaire de connexions
pour ouvrir la page Gestionnaire de connexions de l'éditeur.

4. Dans la page Gestionnaire de connexions , dans la zone de groupe Créer des


objets SAP BW , sélectionnez InfoSource, puis cliquez sur Créer.

Options
Données de transaction
Créez un InfoSource pour les données de transaction.

Si vous sélectionnez cette option, la boîte de dialogue Créer un InfoSource pour les
données de transaction s’affiche. Utilisez la boîte de dialogue Créer un InfoSource pour
les données de transaction pour créer l’InfoSource. Pour plus d’informations sur cette
boîte de dialogue, consultez Créer un InfoSource pour les données de transaction.
Données maîtres
Créez un InfoSource pour les données maîtres.

Si vous sélectionnez cette option, la boîte de dialogue Créer un InfoSource pour les
données maîtres s’affiche. Utilisez la boîte de dialogue Créer un InfoSource pour les
données maîtres pour créer l’InfoSource. Pour plus d’informations sur cette boîte de
dialogue, consultez Créer un Infosource pour les données maîtres.

Voir aussi
Aide (F1) sur Microsoft Connector pour SAP BW
Créer un InfoSource pour les données
de transaction
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Créer un InfoSource pour les données de transaction pour
créer un InfoSource pour les données de transaction dans le système SAP Netweaver
BW.

Vous pouvez ouvrir la boîte de dialogue Créer un InfoSource pour les données de
transaction depuis la page Gestionnaire de connexions de l’Éditeur de destination SAP
BW. Pour en savoir plus sur la destination SAP BW, consultez Destination SAP BW.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

Pour ouvrir la boîte de dialogue Créer un InfoSource pour les données de transaction

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la destination SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la destination SAP BW.

3. Dans l' Éditeur de destination SAP BW, cliquez sur Gestionnaire de connexions
pour ouvrir la page Gestionnaire de connexions de l'éditeur.

4. Dans la page Gestionnaire de connexions , dans la zone de groupe Créer des


objets SAP BW , sélectionnez InfoSource, puis cliquez sur Créer.

5. Dans la boîte de dialogue Créer un InfoSource , sélectionnez Données de


transaction, puis cliquez sur OK.

Options générales
Nom de l'InfoSource
Entrez un nom pour le nouvel InfoSource.
Brève description
Entrez une brève description pour le nouvel InfoSource.

Description longue
Entrez une longue description pour le nouvel InfoSource.

Système source
Sélectionnez le système source associé à InfoSource.

Enregistrer et activer
Enregistrez et activez le nouvel InfoSource.

Options de structure de transfert d'InfoSource


La structure de transfert d'InfoSource vous permet associer les colonnes de flux de
données à des InfoSources.

PipelineElement
Affiche la colonne dans la sortie du flux de données qui est connectée à la destination
SAP BW.

PipelineDataType
Affiche le type de données Integration Services de la colonne du flux de données.

Iobject - Rechercher
Associez un InfoObject existant à la colonne de flux de données dans la ligne actuelle.
Pour effectuer cette association, cliquez sur Rechercher, puis utilisez la boîte de
dialogue Rechercher un InfoObject pour sélectionner l’InfoObject existant. Pour plus
d’informations sur cette boîte de dialogue, consultez Rechercher un InfoObject.

Après avoir sélectionné un InfoObject existant, le composant remplit les colonnes


InfoObject et Type avec les valeurs sélectionnées.

Iobject - Nouveau
Créez un nouvel InfoObject et associez-le à la colonne de flux de données de la ligne
actuelle. Pour créer l’InfoObject, cliquez sur Nouveau, puis utilisez la boîte de dialogue
Créer un nouvel InfoObject pour créer l’InfoObject. Pour plus d'informations sur cette
boîte de dialogue, consultez Create New InfoObject.

Après avoir créé un InfoObject, le composant remplit les colonnes InfoObject et Type
avec les nouvelles valeurs.

Iobject - Supprimer
Supprimez l'association entre l'InfoObject et la colonne de flux de données de la ligne
actuelle. Pour supprimer cette association, cliquez sur Supprimer.

InfoObject
Affiche le nom de l'InfoObject qui est associé à la colonne de flux de données.

Type
Affiche le type de l'InfoObject qui est associé à la colonne de flux de données. Le
tableau suivant répertorie les valeurs possibles pour le type.

Valeur Description

CHA Caractéristiques

UNI Unités

KYF Chiffres clés

TIM Caractéristiques de temps

Champ d'unité
Spécifiez les unités que l'InfoObject va utiliser.

Voir aussi
Créer un InfoSource
Aide (F1) sur Microsoft Connector pour SAP BW
Créer un InfoSource pour les données
maîtres
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Créer un InfoSource pour les données maîtres pour créer
un nouvel InfoSource pour les données maîtres dans le système SAP Netweaver BW.

Vous pouvez ouvrir la boîte de dialogue Créer un InfoSource pour les données maîtres
à partir de la page Gestionnaire de connexions de l’Éditeur de destination SAP BW.
Pour en savoir plus sur la destination SAP BW, consultez Destination SAP BW.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

Pour ouvrir la boîte de dialogue Créer un InfoSource pour les données maîtres

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la destination SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la destination SAP BW.

3. Dans l' Éditeur de destination SAP BW, cliquez sur Gestionnaire de connexions
pour ouvrir la page Gestionnaire de connexions de l'éditeur.

4. Dans la page Gestionnaire de connexions , dans la zone de groupe Créer des


objets SAP BW , sélectionnez InfoSource, puis cliquez sur Créer.

5. Dans la boîte de dialogue Créer un InfoSource , sélectionnez Données maîtres,


puis cliquez sur OK.

Options
Nom de l'InfoObject
Entrez le nom de l'InfoObject sur lequel le nouvel InfoSource doit être basé.
Rechercher
Recherchez l'InfoObject. Cette option ouvre la boîte de dialogue Rechercher un
InfoObject dans laquelle vous pouvez sélectionner l’InfoObject. Pour plus d’informations
sur cette boîte de dialogue, consultez Rechercher un InfoObject.

Après avoir sélectionné un InfoObject, le composant remplit la zone de texte Nom de


l’InfoObject avec le nom de l’InfoObject sélectionné.

Nouveau
Créez un nouvel InfoObject. Cette option ouvre la boîte de dialogue Créer un nouvel
InfoObject dans laquelle vous pouvez créer l’InfoObject. Pour plus d'informations sur
cette boîte de dialogue, consultez Create New InfoObject.

Après avoir créé un InfoObject, le composant remplit la zone de texte Nom de


l’InfoObject avec le nom du nouvel InfoObject.

Brève description
Entrez une brève description pour le nouvel InfoSource.

Description longue
Entrez une longue description pour le nouvel InfoSource.

Système source
Sélectionnez le système source à associer au nouvel InfoSource.

Application
Entrez le nom de l'application à associer au nouvel InfoSource.

Attributs
Indique que les données maîtres sont des attributs.

Textes
Indique que les données maîtres sont des attributs.

Enregistrer et activer
Enregistrez et activez le nouvel InfoSource.

Voir aussi
Créer un InfoSource
Aide (F1) sur Microsoft Connector pour SAP BW
Créer un InfoPackage
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Créer un InfoPackage pour créer un InfoPackage dans le


système SAP Netweaver BW.

Vous pouvez ouvrir la boîte de dialogue Créer un InfoPackage depuis la page


Gestionnaire de connexions de l’Éditeur de destination SAP BW. Pour en savoir plus
sur la destination SAP BW, consultez Destination SAP BW.

) Important

La documentation de Microsoft Connector 1.1 pour SAP BW suppose que vous êtes
familiarisé avec l'environnement SAP Netweaver BW. Pour plus d'informations sur
SAP Netweaver BW, ou sur la configuration des objets et des processus SAP
Netweaver BW objets, consultez la documentation SAP.

Pour ouvrir la boîte de dialogue Créer un InfoPackage

1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services qui
contient la destination SAP BW.

2. Sous l’onglet Flux de données , double-cliquez sur la destination SAP BW.

3. Dans l' Éditeur de destination SAP BW, cliquez sur Gestionnaire de connexions
pour ouvrir la page Gestionnaire de connexions de l'éditeur.

4. Dans la page Gestionnaire de connexions , dans la zone de groupe Créer des


objets SAP BW , sélectionnez InfoPackage, puis cliquez sur Créer.

Options
InfoSource
Entrez le nom de l'InfoSource sur lequel le nouvel InfoPackage doit être basé.

Brève description
Entrez une description pour le nouvel InfoPackage.

Système source
Sélectionnez le système source auquel le nouvel InfoPackage doit être associé.
Attributs
Indique que l'InfoPackage chargera les données d'attribut.

Textes
Indique que l'InfoPackage chargera les données de texte.

Transaction
Indique que l'InfoPackage chargera les données de transaction.

Enregistrer et activer
Enregistrez et activez le nouvel InfoPackage.

Voir aussi
Aide (F1) sur Microsoft Connector pour SAP BW
Destination SQL Server Compact Edition
Article • 23/11/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination SQL Server Compact écrit des données dans des bases de données SQL
Server Compact.

7 Notes

Sur un ordinateur 64 bits, vous devez exécuter les packages qui se connectent à
des sources de données SQL Server Compact en mode 32 bits. Le fournisseur SQL
Server Compact utilisé par Integration Services pour se connecter à des sources de
données SQL Server Compact n’est disponible qu’en version 32 bits. La destination
SQL Server Compact n’est pas prise en charge à partir de VS2022. Les détails font
référence au cycle de vie Microsoft SQL Server Compact.

Vous configurez la destination SQL Server Compact en spécifiant le nom de la table dans
laquelle la destination SQL Server Compact insère les données. La propriété
personnalisée TableName de la destination SQL Server Compact contient le nom de la
table.

Cette destination utilise un gestionnaire de connexions SQL Server Compact pour se


connecter à une source de données et le gestionnaire de connexions indique le
fournisseur OLE DB à utiliser. Pour plus d’informations, consultez Gestionnaire de
connexions de SQL Server Compact Edition.

La destination SQL Server Compact comporte la propriété personnalisée TableName qui


peut être mise à jour par une expression de la propriété lors du chargement du package.
Pour plus d’informations, consultez Expressions Integration Services (SSIS), Utiliser des
expressions de propriété dans des packages et Propriétés personnalisées de la
destination SQL Server Compact Edition.

La destination SQL Server Compact comporte une entrée et ne prend pas en charge les
sorties d'erreurs.

Configuration de la destination SQL Server


Compact Edition
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées de la destination SQL Server

Tâches associées
Pour plus d’informations sur la définition des propriétés de ce composant, consultez
Définir les propriétés d’un composant de flux de données.

Voir aussi
Flux de données

Commentaires
Cette page a-t-elle été utile ?  Yes  No

Indiquer des commentaires sur le produit | Obtenir de l’aide sur Microsoft Q&A
Propriétés personnalisées de la
destination SQL Server Compact Edition
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination SQL Server Compact a des propriétés personnalisées ainsi que les
propriétés communes à l’ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la destination SQL Server


Compact. Toutes les propriétés sont en lecture/écriture.

Nom de la Type de Description


propriété données

TableName String Nom de la table de destination dans une base de données SQL
Server Compact.

Il est possible de spécifier la valeur de cette propriété en utilisant


l'expression d'une propriété.

Les entrées et les colonnes d’entrée de la destination SQL Server Compact n’ont pas de
propriétés personnalisées.

Pour plus d’informations, consultez Destination SQL Server Compact Edition.

Voir aussi
Propriétés communes
Destination SQL Server
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination SQL Server se connecte à une base de données SQL Server locale et
charge en masse des données dans des tables et des vues SQL Server . Vous ne pouvez
pas utiliser la destination SQL Server dans des packages ayant accès à une base de
données SQL Server sur un serveur distant. Les packages doivent plutôt utiliser la
destination OLE DB. Pour plus d’informations, consultez OLE DB Destination.

Autorisations
Les utilisateurs qui exécutent des packages incluant la destination SQL Server
nécessitent l'autorisation « Create global objects » (Créer des objets globaux). Vous
pouvez attribuer cette autorisation aux utilisateurs à l’aide de l’outil Stratégie de sécurité
locale accessible dans le menu Outils d’administration . Si vous recevez un message
d'erreur lors de l'exécution d'un package qui utilise la destination SQL Server, assurez-
vous que le compte exécutant le package a l'autorisation « Create global objects »
(Créer des objets globaux).

Insertions en bloc
Si vous tentez d'utiliser la destination SQL Server pour charger en masse des données
dans une base de données SQL Server distante, il est possible qu'un message d'erreur
semblable au message suivant s'affiche : « Un enregistrement OLE DB est disponible.
Source : « Microsoft SQL Server Native Client » Hresult : 0x80040E14 Description : «
Chargement en masse impossible, car l’objet de mappage de fichier SSIS
'Global\DTSQLIMPORT ' n’a pas pu être ouvert. Code d'erreur du système d'exploitation
2 (Le système ne trouve pas le fichier spécifié.). Vérifiez que vous accédez à un serveur
local par le biais de la sécurité Windows." »

La destination SQL Server offre la même insertion rapide de données SQL Server que la
tâche d’insertion en bloc ; toutefois, l’utilisation d’une destination SQL Server permet à
un package d’appliquer des transformations à des données de colonne avant que les
données ne soient chargées dans SQL Server.

Pour le chargement de données dans SQL Server, envisagez l'utilisation de la destination


SQL Server plutôt que la destination OLE DB.
Options d'insertion en bloc
Si la destination SQL Server utilise un mode d'accès aux données par chargement
rapide, vous pouvez spécifier les options de chargement rapide suivantes :

Conservation des valeurs d'identité du fichier de données importé ou utilisation de


valeurs uniques assignées par SQL Server.

Conservation des valeurs nulles durant l'opération de chargement en masse.

Vérification des contraintes sur la table ou la vue cible durant l'opération


d'importation en bloc.

Acquisition d'un verrou au niveau de la table pour la durée de l'opération de


chargement en masse.

Exécution de déclencheurs d'insertion définis sur la table de destination durant


l'opération de chargement en masse.

Spécification du numéro de la première ligne de l'entrée à charger durant


l'opération d'insertion en bloc.

Spécification du numéro de la dernière ligne de l'entrée à charger durant


l'opération d'insertion en bloc.

Spécification du nombre maximal d'erreurs tolérées avant l'annulation de


l'opération de chargement en masse. Chaque ligne ne pouvant pas être importée
est comptée comme une erreur.

Spécification des colonnes de l'entrée qui contiennent des données triées.

Pour plus d’informations sur les options de chargement en masse, consultez BULK
INSERT (Transact-SQL).

Amélioration des performances

Pour améliorer les performances d'une insertion en bloc et l'accès aux données de table
durant l'opération d'insertion en bloc, vous devez modifier les options par défaut
comme suit :

Ne pas vérifier les contraintes sur la table ou la vue cible durant l'opération
d'importation en bloc.

Ne pas exécuter de déclencheurs d'insertion définis sur la table de destination


durant l'opération de chargement en masse.
Ne pas appliquer de verrou sur la table. De cette manière, la table reste disponible
pour les autres utilisateurs et applications durant l'opération d'insertion en bloc.

Configuration de la destination SQL Server


Vous pouvez configurer la destination SQL Server de plusieurs manières :

Spécifiez la table ou la vue dans laquelle charger les données en masse.

Personnalisez l'opération de chargement en masse en spécifiant des options telles


que la vérification des contraintes.

Indiquez si toutes les lignes doivent être validées en un seul traitement ou


définissez le nombre maximum de lignes à valider en tant que traitement.

Spécifiez un délai d'expiration pour l'opération de chargement en masse.

Cette destination utilise un gestionnaire de connexions OLE DB pour se connecter à une


source de données et le gestionnaire de connexions spécifie le fournisseur OLE DB à
utiliser. Pour plus d’informations, consultez OLE DB Connection Manager.

Un projet Integration Services fournit également l'objet de source de données à partir


duquel vous pouvez créer un gestionnaire de connexions OLE DB. Les sources de
données et les vues de sources de données sont ainsi disponibles pour la destination
SQL Server.

La destination SQL Server possède une entrée. Elle ne prend pas en charge de sortie
d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées de la destination SQL Server

Pour plus d'informations sur la définition des propriétés, cliquez sur l'une des rubriques
suivantes :

Charger des données en masse à l'aide de la destination SQL Server


Définir les propriétés d’un composant de flux de données

Tâches associées
Charger des données en masse à l'aide de la destination SQL Server

Définir les propriétés d’un composant de flux de données

Contenu associé
Article technique, You may get "Unable to prepare the SSIS bulk insert for data
insertion" error on UAC enabled systems, sur support.microsoft.com.

Article technique, Guide des performances de chargement des données, sur le site
msdn.microsoft.com.

Article technique, Using SQL Server Integration Services to Bulk Load Data , sur le
site simple-talk.com.

Éditeur de destination SQL (page Gestionnaire


de connexions)
Utilisez la page Gestionnaire de connexions de la boîte de dialogue Éditeur de
destination SQL pour spécifier des informations sur la source de données et afficher un
aperçu des résultats. La destination SQL Server charge les données dans des tables ou
des vues, dans une base de données Microsoft SQL Server.

Options
Gestionnaire de connexions OLE DB
Sélectionnez un gestionnaire de connexions existant dans la liste ou créez une
connexion en cliquant sur Nouvelle.

Nouveau
Crée une connexion en utilisant la boîte de dialogue Configurer le gestionnaire de
connexions OLE DB .

Utiliser une table ou une vue


Sélectionnez une table ou une vue existante dans la liste, ou créez une connexion en
cliquant sur Nouvelle.
Nouveau
Utilisez la boîte de dialogue Créer une table pour créer une table.

7 Notes

Quand vous cliquez sur Nouvelle, Integration Services génère une instruction
CREATE TABLE par défaut, basée sur la source de données connectée. Cette
instruction CREATE TABLE par défaut n'inclut pas l'attribut FILESTREAM, même si la
table source inclut une colonne dans laquelle l'attribut FILESTREAM est déclaré.
Pour exécuter un composant Integration Services avec l'attribut FILESTREAM,
implémentez d'abord le stockage FILESTREAM sur la base de données de
destination. Ajoutez ensuite l’attribut FILESTREAM à l’instruction CREATE TABLE
dans la boîte de dialogue Créer une table . Pour plus d’informations, consultez
Données BLOB (Binary Large Object) (SQL Server).

Préversion
Affichez un aperçu des résultats à l’aide de la boîte de dialogue Visualiser les résultats
de la requête . L'aperçu peut afficher jusqu'à 200 lignes.

Éditeur de destination SQL (page Mappages)


La page Mappages de la boîte de dialogue Éditeur de destination SQL vous permet de
mapper les colonnes d'entrée aux colonnes de destination.

Options
Colonnes d'entrée disponibles
Affichez la liste des colonnes d'entrée disponibles. Au moyen du glisser-déplacer,
mappez les colonnes d'entrée disponibles dans la table sur des colonnes de destination.

Colonnes de destination disponibles


Affichez la liste des colonnes de destination disponibles. Utilisez une opération de
glisser-déplacer pour mapper les colonnes de destination disponibles dans la table aux
colonnes d'entrée.

Colonne d'entrée
Affiche les colonnes d'entrée sélectionnées dans le tableau ci-dessus. Vous pouvez
modifier les mappages au moyen de la liste Colonnes d'entrée disponibles.

Colonne de destination
Affiche chaque colonne de destination disponible, qu'elle soit mappée ou non.
Éditeur de destination SQL (page Avancé)
Utilisez la page Avancé de la boîte de dialogue Éditeur de destination SQL pour
spécifier les options avancées pour l’insertion en bloc.

Options
Conserver l'identité
Spécifie si la tâche doit insérer des valeurs dans les colonnes d'identité. La valeur par
défaut de cette propriété est False.

Conserver les valeurs NULL


Spécifie si la tâche doit conserver les valeurs NULL. La valeur par défaut de cette
propriété est False.

Verrou de table
Spécifie si la table est verrouillée lors du chargement des données. La valeur par défaut
de cette propriété est True.

Contraintes de validation
Spécifie si la tâche doit vérifier les contraintes. La valeur par défaut de cette propriété
est True.

Exécuter les déclencheurs


Spécifie si l'insertion en bloc doit exécuter les déclencheurs sur les tables. La valeur par
défaut de cette propriété est False.

Première ligne
Spécifie la première ligne à insérer. La valeur par défaut de cette propriété est -1, ce qui
signifie qu’aucune valeur ne lui a été assignée.

7 Notes

Effacez la zone de texte dans l’Éditeur de destination SQL pour indiquer que vous
ne voulez pas assigner de valeur à cette propriété. Utilisez -1 dans la fenêtre
Propriétés , l’Éditeur avancéet le modèle objet.

Dernière ligne
Spécifie la dernière ligne à insérer. La valeur par défaut de cette propriété est -1, ce qui
signifie qu’aucune valeur ne lui a été assignée.

7 Notes
Effacez la zone de texte dans l’Éditeur de destination SQL pour indiquer que vous
ne voulez pas assigner de valeur à cette propriété. Utilisez -1 dans la fenêtre
Propriétés , l’Éditeur avancéet le modèle objet.

Nombre maximum d'erreurs


Spécifie le nombre d'erreurs au-delà duquel l'insertion en bloc s'arrête. La valeur par
défaut de cette propriété est -1, ce qui signifie qu’aucune valeur ne lui a été assignée.

7 Notes

Effacez la zone de texte dans l’Éditeur de destination SQL pour indiquer que vous
ne voulez pas assigner de valeur à cette propriété. Utilisez -1 dans la fenêtre
Propriétés , l’Éditeur avancéet le modèle objet.

Délai d'expiration
Spécifie le nombre de secondes pouvant s'écouler avant l'expiration de l'insertion en
bloc.

Ordre des colonnes


Tapez le nom des colonnes de tri. Chaque colonne peut être triée par ordre croissant ou
décroissant. Si vous utilisez plusieurs colonnes de tri, délimitez la liste par des virgules.

Voir aussi
Flux de données
Charger des données en masse à l'aide
de la destination SQL Server
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour pouvoir ajouter et configurer une destination SQL Server , le package doit inclure
au moins une tâche de flux de données et une source de données.

Pour charger des données à l'aide d'une destination SQL


Server
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Flux de données , puis dans la Boîte à outils, faites glisser la
destination SQL Server sur l’aire de conception.

4. Connectez la destination à une source ou à une transformation précédente du flux


de données en faisant glisser un connecteur vers la destination.

5. Double-cliquez sur la destination.

6. Dans la boîte de dialogue Éditeur de destination SQL Server, dans la page


Gestionnaire de connexions , sélectionnez un gestionnaire de connexions OLE DB
existant ou cliquez sur Nouveau pour créer un gestionnaire de connexions. Pour
plus d’informations, consultez OLE DB Connection Manager.

7. Pour spécifier la table ou la vue dans laquelle charger les données, effectuez l'une
des opérations suivantes :

Sélectionnez une table ou une vue existante.

Cliquez sur Nouveau, puis, dans la boîte de dialogue Créer une table , écrivez
une instruction SQL qui crée une table ou une vue.

7 Notes

Integration Services génère une instruction CREATE TABLE par défaut


basée sur la source de données connectée. Cette instruction CREATE
TABLE par défaut n'inclut pas l'attribut FILESTREAM, même si la table
source inclut une colonne dans laquelle l'attribut FILESTREAM est
déclaré. Pour exécuter un composant Integration Services avec l'attribut
FILESTREAM, implémentez d'abord le stockage FILESTREAM sur la base
de données de destination. Ajoutez ensuite l’attribut FILESTREAM à
l’instruction CREATE TABLE dans la boîte de dialogue Créer une table .
Pour plus d’informations, consultez Données BLOB (Binary Large
Object) (SQL Server).

8. Cliquez sur Mappages et mappez les colonnes de la liste Colonnes d’entrée


disponibles aux colonnes de la liste Colonnes de destination disponibles en
faisant glisser les colonnes d’une liste à l’autre.

7 Notes

La destination mappe automatiquement les colonnes portant le même nom.

9. Cliquez sur Avancé et définissez les options de chargement en masse : Conserver


l’identité, Conserver les valeurs NULL, Verrou de table, Vérifier les contrainteset
Exécuter les déclencheurs.

Si vous le souhaitez, indiquez la première et la dernière ligne d'entrée à insérer, le


nombre maximal d'erreurs avant arrêt de l'opération d'insertion et les colonnes sur
lesquelles l'insertion est triée.

7 Notes

L'ordre de tri est déterminé par l'ordre dans lequel les colonnes apparaissent
dans la liste.

10. Cliquez sur OK.

11. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Destination SQL Server
Transformations Integration Services
Chemins Integration Services
tâche de flux de données
Propriétés personnalisées de la
destination SQL Server
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination SQL Server dispose à la fois de propriétés personnalisées et des


propriétés communes à tous les composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la destination SQL Server .


Toutes les propriétés sont en lecture/écriture.

Nom de la propriété Type de Description


données

AlwaysUseDefaultCodePage Booléen Impose l’utilisation de la valeur de propriété


DefaultCodePage. La valeur par défaut de cette
propriété est False.

BulkInsertCheckConstraints Booléen Valeur qui spécifie si l'insertion en bloc vérifie les


contraintes. La valeur par défaut de cette propriété est
True.

BulkInsertFireTriggers Booléen Valeur qui spécifie si l'insertion en bloc exécute des


déclencheurs dans les tables. La valeur par défaut de
cette propriété est False.

BulkInsertFirstRow Entier Valeur qui spécifie la première ligne à insérer. La valeur


par défaut de cette propriété est -1, ce qui signifie
qu’aucune valeur n’a été attribuée

BulkInsertKeepIdentity Booléen Valeur qui spécifie si les valeurs peuvent être insérées
dans des colonnes d'identité. La valeur par défaut de
cette propriété est False.

BulkInsertKeepNulls Booléen Valeur qui spécifie si l'insertion en bloc conserve les


valeurs NULL. La valeur par défaut de cette propriété
est False.

BulkInsertLastRow Entier Valeur qui spécifie la dernière ligne à insérer. La valeur


par défaut de cette propriété est -1, ce qui signifie
qu’aucune valeur n’a été attribuée.

BulkInsertMaxErrors Entier Valeur qui spécifie le nombre d'erreurs au-delà duquel


l'insertion en bloc s'arrête. La valeur par défaut de cette
propriété est -1, ce qui signifie qu’aucune valeur n’a été
attribuée.
Nom de la propriété Type de Description
données

BulkInsertOrder Chaîne Noms des colonnes de tri. Chaque colonne peut être
triée par ordre croissant ou décroissant. En cas
d'utilisation de plusieurs colonnes de tri, les noms des
colonnes sont séparés par des virgules.

BulkInsertTableName Chaîne Table ou vue SQL Server dans la base de données dans
laquelle les données sont copiées.

BulkInsertTablock Booléen Valeur qui spécifie si la table est verrouillée lors de


l'insertion en bloc. La valeur par défaut de cette
propriété est True.

DefaultCodePage Integer Page de codes à utiliser lorsque les informations de


page de codes ne sont pas disponibles à partir de la
source de données.

MaxInsertCommitSize Entier Valeur qui spécifie le nombre maximal de lignes à


insérer dans un lot. Lorsque la valeur est nulle, toutes
les lignes sont insérées dans un lot unique.

Délai d'expiration Entier Valeur qui spécifie le nombre de secondes pendant


lesquelles la destination SQL Server patiente avant de
s'arrêter si aucune donnée disponible ne peut être
insérée. Une valeur égale à 0 signifie que la destination
SQL Server n’expire pas. La valeur par défaut de cette
propriété est 30.

Les entrées et les colonnes d’entrée de la destination SQL Server n’ont pas de propriétés
personnalisées.

Pour plus d’informations, consultez Destination SQL Server.

Voir aussi
Propriétés communes
Transformations Integration Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les transformations SQL Server Integration Services sont les composants du flux de
données d’un package qui agrègent, fusionnent, distribuent et modifient des données.
Les transformations peuvent également effectuer des opérations de recherche et
générer des échantillons de dataset. Cette section décrit les transformations incluses
dans Integration Services et explique leur fonctionnement.

Transformations Business Intelligence


Les transformations suivantes effectuent des opérations décisionnelles telles que le
nettoyage de données, l'exploration de texte et l'exécution de requêtes de prédiction
d'exploration de données.

Transformation Description

Transformation de Transformation qui configure la mise à jour d'une dimension à


dimension à variation variation lente.
lente

Transformation de Transformation qui normalise les valeurs en données de colonne.


regroupement
approximatif

Transformation de Transformation qui recherche des valeurs dans une table de référence
recherche floue au moyen d'une correspondance approximative.

Transformation Transformation qui extrait des termes à partir du texte.


d'extraction de terme

Transformation de Transformation qui recherche des termes dans une table de référence
recherche de terme et compte les termes extraits à partir du texte.

Transformation de Transformation qui exécute des requêtes de prédictions d'exploration


requête d’exploration de de données.
données

Transformation de Transformation qui corrige des données d'une source de données


nettoyage DQS connectée en appliquant des règles créées pour la source de
données.
Transformations de lignes
Les transformations suivantes mettent à jour les valeurs de colonnes et créent de
nouvelles colonnes. La transformation est appliquée à chaque ligne de l'entrée de
transformation.

Transformation Description

Transformation de la table Transformation qui applique des fonctions de chaîne à des


de caractères données de caractères.

Transformation de copie de Transformation qui ajoute des copies de colonnes d'entrée à la


colonnes sortie de transformation.

Transformation de Transformation qui convertit le type de données d'une colonne en


conversion de données un type de données différent.

Transformation de colonne Transformation qui remplit des colonnes avec les résultats
dérivée d'expressions.

Transformation Transformation qui insère des données dans un fichier à partir d'un
d'exportation de colonne flux de données.

Transformation Transformation qui lit des données à partir d'un fichier et les
d'importation de colonne ajoute à un flux de données.

Composant Script Transformation qui utilise un script pour extraire, transformer ou


charger des données.

Transformation de Transformation qui exécute des commandes SQL pour chaque


commande OLE DB ligne d'un flux de données.

Transformations d'ensemble de lignes


Les transformations suivantes créent des ensembles de lignes. L'ensemble de lignes
peut inclure des valeurs agrégées et triées, des échantillons d'ensembles de lignes ou
des ensembles de lignes croisés dynamiques et non croisés dynamiques.

Transformation Description

Transformation d'agrégation Transformation qui effectue des agrégations telles que


AVERAGE, SUM et COUNT.

Transformation de tri Transformation qui trie des données.


Transformation Description

Transformation Transformation qui crée un échantillon de jeu de données avec


d’échantillonnage par un pourcentage spécifiant la taille d'échantillonnage.
pourcentage

Transformation Transformation qui crée un échantillon de jeu de données en


d'échantillonnage de lignes spécifiant le nombre de lignes de l'échantillon.

Transformation de tableau Transformation qui crée une version moins normalisée d'une
croisé dynamique table normalisée.

Transformation de suppression Transformation qui crée une version plus normalisée d'une
de tableau croisé dynamique table non normalisée.

Transformations de fractionnement et de
jointure
Les transformations suivantes distribuent des lignes vers différentes sorties, créent des
copies des entrées de transformation, joignent plusieurs entrées en une même entrée et
effectuent des opérations de recherche.

Transformation Description

Transformation Transformation qui achemine des lignes de données vers différentes sorties.
de
fractionnement
conditionnel

Transformation Transformation qui distribue des jeux de données vers différentes sorties.
de
multidiffusion

Transformation Transformation qui fusionne plusieurs jeux de données.


d'union totale

Transformation Transformation qui fusionne deux jeux de données triés.


de fusion

Transformation Transformation qui joint deux jeux de données à l'aide d'une jointure FULL,
de jointure de LEFT ou INNER.
fusion

Transformation Transformation qui recherche des valeurs dans une table de référence au
de recherche moyen d'une correspondance exacte.
Transformation Description

Transformation Transformation qui écrit les données d'une source de données connectée du
du cache flux de données dans un gestionnaire de connexions du cache qui enregistre
les données dans un fichier cache. La transformation de recherche effectue des
recherches sur les données dans le fichier cache.

Transformation La transformation distribue des tampons de lignes entrantes uniformément


du distributeur dans les sorties sur des threads distincts pour améliorer les performances des
de données packages SSIS en cours d'exécution sur des serveurs à plusieurs cœurs et
équilibrées plusieurs processeurs.
(BDD)

Audit des transformations


Integration Services inclut les transformations suivantes pour ajouter des informations
d’audit et compter le nombre de lignes.

Transformation Description

Transformation d'audit Transformation qui rend les informations sur l'environnement


accessibles au flux de données d'un package.

Transformation de calcul Transformation qui compte des lignes à mesure qu'elle les parcourt
du nombre de lignes et stocke le nombre final dans une variable.

Transformations personnalisées
Vous pouvez également écrire des transformations personnalisées. Pour plus
d’informations, consultez Développement d’un composant de transformation
personnalisé à sorties synchrones et Développement d’un composant de transformation
personnalisé à sorties asynchrones.
Transformation d'agrégation
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation d’agrégation applique des fonctions d’agrégation, comme Average,


aux valeurs des colonnes et copie les résultats dans la sortie de la transformation. Outre
les fonctions d'agrégation, cette transformation propose la clause GROUP BY qui permet
de spécifier des groupes auxquels appliquer l'agrégation.

Operations
La transformation d'agrégation prend en charge les opérations suivantes.

Opération Description

Regrouper Divise les datasets en groupes. Les colonnes contenant tout type de données
par peuvent être utilisées pour le regroupement. Pour plus d’informations, consultez
GROUP BY (Transact-SQL).

SUM Additionne les valeurs dans une colonne. Seules les colonnes dont les données sont
numériques peuvent être additionnées. Pour plus d’informations, consultez SUM
(Transact-SQL).

Average Retourne la moyenne des valeurs d'une colonne. La moyenne ne peut être calculée
que sur les colonnes dont les données sont numériques. Pour plus d’informations,
consultez AVG (Transact-SQL).

Nombre Retourne le nombre d'éléments figurant dans un groupe. Pour plus d’informations,
consultez COUNT (Transact-SQL).

Count Retourne le nombre de valeurs non NULL uniques d'un groupe.


distinct

Minimum Renvoie la valeur minimale figurant dans un groupe. Pour plus d’informations,
consultez MIN (Transact-SQL). À la différence de la fonction Transact-SQL MIN, cette
opération peut être utilisée uniquement avec des données de type numérique, date
et heure.

Maximale Renvoie la valeur maximale figurant dans un groupe. Pour plus d’informations,
consultez MAX (Transact-SQL). À la différence de la fonction Transact-SQL MAX,
cette opération peut être utilisée uniquement avec des données de type numérique,
date et heure.

La transformation d'agrégation traite les valeurs null de la même manière que le moteur
de base de données relationnelle SQL Server . Ce comportement est défini dans la
norme SQL-92. Les règles suivantes s’appliquent :

Dans une clause GROUP BY, les valeurs NULL sont traitées comme toute autre
valeur de colonne. Si la colonne de regroupement contient plusieurs valeurs null,
ces valeurs sont placées dans un seul groupe.

Dans les fonctions COUNT (nom de colonne) et COUNT (nom de colonne


DISTINCT), les valeurs NULL sont ignorées et le résultat ne tient pas compte des
lignes contenant des valeurs NULL dans la colonne nommée.

Dans la fonction COUNT (*), toutes les lignes sont comptées, y compris celles
contenant des valeurs NULL.

Nombres élevés dans les agrégats


Une colonne peut contenir des valeurs numériques nécessitant une attention
particulière en raison de leur grandeur ou de leur précision. La transformation
d’agrégation inclut la propriété IsBig que vous pouvez définir sur les colonnes de sortie
pour appeler un traitement spécial des nombres élevés ou de grande précision. Si la
valeur d’une colonne dépasse 4 milliards ou si une précision plus grande que le type de
données float est requise, vous devez affecter la valeur 1 à IsBig.

Le fait d’affecter la valeur 1 à IsBig affecte la sortie de la transformation d’agrégation de


la manière suivante :

Le type de données DT_R8 est utilisé à la place du type de données DT_R4.

Les résultats de l'opération Count sont stockés en tant que type de données
DT_UI8.

Les résultats de l'opération Comptage de valeurs sont stockés en tant que type de
données DT_UI4.

7 Notes

Vous ne pouvez pas affecter la valeur 1 à IsBig pour les colonnes utilisées avec les
opérations GROUP BY, Maximum ou Minimum.

Considérations relatives aux performances


La transformation d'agrégation comprend un ensemble de propriétés que vous pouvez
définir pour améliorer ses performances.
Quand vous effectuez une opération Group by , définissez les propriétés Keys ou
KeysScale du composant et les sorties du composant. Grâce à Keys, vous pouvez
spécifier le nombre exact de clés que la transformation doit normalement traiter.
(Dans ce contexte, Keys fait référence au nombre de groupes attendus d’une
opération Group by .) Grâce à KeysScale, vous pouvez spécifier un nombre
approximatif de clés. Quand vous spécifiez une valeur appropriée pour Keys ou
KeyScale, vous améliorez les performances car la transformation peut allouer la
mémoire adéquate pour les données mises en cache par la transformation.

Quand vous effectuez une opération Comptage de valeurs , définissez les


propriétés CountDistinctKeys ou CountDistinctScale du composant. Grâce à
CountDistinctKeys, vous pouvez indiquer le nombre exact de clés que la
transformation doit normalement traiter pour une opération Count Distinct. (Dans
ce contexte, CountDistinctKeys fait référence au nombre de valeurs distinctes
attendues d’une opération Comptage de valeurs .) La propriété CountDistinctScale
permet d’indiquer un nombre approximatif de clés pour une opération Count
Distinct. Quand vous spécifiez une valeur appropriée pour CountDistinctKeys ou
CountDistinctScale, vous améliorez les performances car la transformation peut
allouer la mémoire adéquate pour les données mises en cache par la
transformation.

Configuration de la transformation
d'agrégation
La transformation d'agrégation est configurée au niveau de la transformation, de la
sortie et de la colonne.

Au niveau de la transformation, vous configurez la transformation d'agrégation


pour les performances en spécifiant les valeurs suivantes :

Nombre de groupes attendus d’une opération Group by

Nombre de valeurs distinctes attendues d’une opération Count Distinct

Pourcentage par lequel la mémoire peut être étendue pendant l'agrégation.

La transformation d'agrégation peut également être configurée de manière à


générer un avertissement au lieu d'échouer lorsque la valeur d'un diviseur est zéro.

Au niveau de la sortie, vous configurez la transformation d’agrégation pour les


performances en spécifiant le nombre de groupes attendus d’une opération Group
by . La transformation d'agrégation prend en charge plusieurs sorties ; chacune
pouvant être configurée différemment.

Au niveau de la colonne, vous spécifiez les valeurs suivantes :

agrégation que la colonne effectue ;

options de comparaison de l'agrégation.

Vous pouvez également configurer la transformation d'agrégation pour les


performances en spécifiant les valeurs suivantes :

Nombre de groupes attendus d’une opération Group by dans la colonne

Nombre de valeurs distinctes attendues d’une opération Count Distinct dans la


colonne

Vous pouvez également identifier des colonnes en tant que IsBig si une colonne
contient des valeurs numériques élevées ou de grande précision.

La transformation d'agrégation est asynchrone, ce qui signifie qu'elle ne consomme pas


les données et ne les publie pas ligne par ligne. Au lieu de cela, elle consomme tout
l'ensemble de lignes, effectue les regroupements et les agrégations, puis publie les
résultats.

Cette transformation ne transmet aucune colonne, mais en crée de nouvelles dans le


flux de données pour les données qu'elle publie. Seules les colonnes d'entrée auxquelles
des fonctions d'agrégation s'appliquent ou les colonnes d'entrée que la transformation
utilise pour le regroupement sont copiées dans la sortie de la transformation. Par
exemple, l’entrée d’une transformation d’agrégation peut contenir trois colonnes :
PaysRegion, Villeet Population. La transformation effectue un regroupement à partir de
la colonne PaysRegion et applique la fonction Sum à la colonne Population . La sortie
n’inclut donc pas la colonne Ville .

Vous pouvez également ajouter plusieurs sorties à la transformation d'agrégation et


diriger chaque agrégation vers une sortie différente. Par exemple, si la transformation
d’agrégation applique les fonctions Sum et Average, chaque agrégation peut être
dirigée vers une sortie différente.

Vous pouvez appliquer plusieurs agrégations à une même colonne d'entrée. Par
exemple, si vous souhaitez calculer la somme et la moyenne d’une colonne d’entrée
nommée Ventes, vous pouvez configurer la transformation pour qu’elle applique les
fonctions Sum et Average à la colonne Ventes .
La transformation d'agrégation comporte une entrée et une ou plusieurs sorties. Elle ne
prend pas en charge de sortie d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Pour plus d'informations sur la définition des propriétés, cliquez sur l'une des rubriques
suivantes :

Agréger les valeurs dans un dataset à l'aide de la transformation d'agrégation

Définir les propriétés d’un composant de flux de données

Trier des données pour les transformations de fusion et de jointure de fusion

Tâches associées
Agréger les valeurs dans un dataset à l'aide de la transformation d'agrégation

Éditeur de transformation d'agrégation (onglet


Agrégations)
Utilisez l’onglet Agrégations de la boîte de dialogue Éditeur de transformation
d’agrégation pour spécifier les colonnes destinées à l’agrégation et les propriétés de
cette agrégation. Vous pouvez appliquer plusieurs agrégations. Ce type de
transformation ne génère pas d'erreur de sortie.

7 Notes

Les options concernant le nombre et l’échelle de clés d’une part, et le nombre et


l’échelle de clés distinctes d’autre part, s’appliquent au niveau du composant quand
ces options sont indiquées sous l’onglet Avancé , au niveau de la sortie quand elles
sont précisées dans l’affichage avancé de l’onglet Agrégations , ou encore au
niveau des colonnes quand elles sont spécifiées dans la liste de colonnes se
trouvant dans la partie inférieure de l’onglet Agrégations .

Dans la transformation d’agrégation, Clés et Échelle de clé font référence au


nombre de groupes attendus d’une opération Regrouper par . Nombre de clés
distinctes et Échelle de nombre des valeurs distinctes font référence au nombre
de valeurs distinctes attendues d’une opération Comptage de valeurs .

Options
Avancé / Simple
Permet d'afficher ou de masquer les options permettant de configurer plusieurs
agrégations dans le cas de sorties multiples. Par défaut, les options avancées sont
masquées.

Nom d'agrégation
Dans l'écran Avancé, permet d'attribuer un nom convivial à l'agrégation.

Grouper par colonnes


Dans l’écran Avancé, permet de sélectionner les colonnes afin de regrouper les éléments
d’après la liste Colonnes d’entrée disponibles , comme décrit ci-dessous.

Échelle de clé
Dans l'écran Avancé, permet de spécifier aussi éventuellement le nombre de clés
adéquat que l'agrégation peut écrire. Par défaut, la valeur de cette option est Non
spécifié. Si la valeur des propriétés Échelle de clé et Clés sont toutes deux définies, c’est
celle de la propriété Clés qui prévaut.

Valeur Description

Non spécifié La propriété Échelle de clé n'est pas utilisée.

Faible L’agrégation peut écrire environ 500 000 clés.

Moyenne L'agrégation peut écrire environ 5 000 000 clés.

Élevé L'agrégation peut écrire plus de 25 000 000 clés.

Clés
Dans l'écran Avancé, permet d'indiquer éventuellement le nombre exact de clés que
l'agrégation peut écrire. Si la valeur des propriétés Échelle de clé et Clés sont toutes
deux précisées, celle de la propriété Clés prévaut alors.
Colonnes d'entrée disponibles
Permet de sélectionner les colonnes dans la liste des colonnes d'entrée disponibles en
cochant ou décochant les cases du tableau.

Colonne d'entrée
Permet de sélectionner des colonnes dans la liste des colonnes d'entrée disponibles.

Alias de sortie
Permet de saisir un alias pour chaque colonne. Par défaut, il s'agit du nom de la colonne
d'entrée ; vous pouvez néanmoins choisir un nom unique et descriptif.

opération
Permet de choisir dans la liste parmi les opérations disponibles, d'après le tableau
suivant.

Opération Description

GroupBy Divise les datasets en groupes. Les colonnes incluant tout type de données
peuvent être utilisées pour le regroupement. Pour plus d'informations, consultez
GROUP BY.

Sum Additionne les valeurs dans une colonne. Seules les colonnes dont les données
sont numériques peuvent être additionnées. Pour plus d'informations, consultez
SUM.

Average Retourne la moyenne des valeurs d'une colonne. La moyenne ne peut être
calculée que sur les colonnes dont les données sont numériques. Pour plus
d'informations, consultez AVG.

Count Retourne le nombre d'éléments figurant dans un groupe. Pour plus


d'informations, consultez COUNT.

CountDistinct Retourne le nombre de valeurs non NULL uniques d'un groupe. Pour plus
d'informations, consultez COUNT et Distinct.

Minimum Renvoie la valeur minimale figurant dans un groupe. Cette opération se restreint
aux données numériques.

Maximum Renvoie la valeur maximale figurant dans un groupe. Cette opération se restreint
aux données numériques.

Indicateurs de comparaison
Si vous sélectionnez Group by, permet d’utiliser les cases à cocher afin de contrôler le
mode d’évaluation de la comparaison effectuée par la transformation. Pour plus
d’informations sur les options de comparaison de chaînes, consultez Comparaison des
données chaînes.
Count Distinct Scale
Permet éventuellement de spécifier le nombre approximatif de valeurs distinctes que
l'agrégation peut écrire. Par défaut, la valeur de cette option est Non spécifié. Si la
valeur des propriétés CountDistinctScale et CountDistinctKeys sont toutes deux
précisées, celle de la propriété CountDistinctKeys prévaut alors.

Valeur Description

Non spécifié La propriété CountDistinctScale n’est pas utilisée.

Faible L'agrégation peut écrire environ 500 000 valeurs distinctes.

Moyenne L’agrégation peut écrire environ 5 000 000 de valeurs distinctes.

Élevé L'agrégation peut écrire plus de 25 000 000 valeurs distinctes.

Count Distinct Keys


Permet de spécifier éventuellement le nombre exact de valeurs distinctes que
l'agrégation peut écrire. Si la valeur des propriétés CountDistinctScale et
CountDistinctKeys sont toutes deux précisées, celle de la propriété CountDistinctKeys
prévaut alors.

Éditeur de transformation d'agrégation (onglet


Avancé)
L’onglet Avancé de la boîte de dialogue Éditeur de transformation d’agrégation permet
de définir les propriétés des composants, de spécifier des agrégations et de définir les
propriétés des colonnes d’entrée et de sortie.

7 Notes

Les options concernant le nombre et l’échelle de clés d’une part, et le nombre et


l’échelle de clés distinctes d’autre part, s’appliquent au niveau du composant quand
ces options sont indiquées sous l’onglet Avancé , au niveau de la sortie quand elles
sont précisées dans l’affichage avancé de l’onglet Agrégations , ou encore au
niveau des colonnes quand elles sont spécifiées dans la liste de colonnes se
trouvant dans la partie inférieure de l’onglet Agrégations .

Dans la transformation d’agrégation, Clés et Échelle de clé font référence au


nombre de groupes attendus d’une opération Regrouper par . Nombre de clés
distinctes et Échelle de nombre des valeurs distinctes font référence au nombre
de valeurs distinctes attendues d’une opération Comptage de valeurs .
Options
Échelle de clé
Permet de spécifier le nombre approximatif de clés attendu par l'agrégation (facultatif).
La transformation utilise ces informations afin d'optimiser la taille initiale de son cache.
Par défaut, la valeur de cette option est Non spécifié. Si les deux options Échelle de clé
et Nombre de clés sont spécifiées, Nombre de clés est prioritaire.

Valeur Description

Non spécifié La propriété KeyScale n’est pas utilisée.

Faible L’agrégation peut écrire environ 500 000 clés.

Moyenne L'agrégation peut écrire environ 5 000 000 clés.

Élevé L'agrégation peut écrire plus de 25 000 000 clés.

Nombre de clés
Permet de spécifier le nombre exact de clés attendu par l'agrégation (facultatif). La
transformation utilise ces informations afin d'optimiser la taille initiale de son cache. Si
les deux options Échelle de clé et Nombre de clés sont spécifiées, Nombre de clés est
prioritaire.

Échelle de nombre des valeurs distinctes


Permet éventuellement de spécifier le nombre approximatif de valeurs distinctes que
l'agrégation peut écrire. Par défaut, la valeur de cette option est Non spécifié. Si les
deux options Échelle de nombre des valeurs distinctes et Nombre de clés distinctes
sont spécifiées, Nombre de clés distinctes est prioritaire.

Valeur Description

Non spécifié La propriété CountDistinctScale n'est pas utilisée.

Faible L'agrégation peut écrire environ 500 000 valeurs distinctes.

Moyenne L’agrégation peut écrire environ 5 000 000 de valeurs distinctes.

Élevé L'agrégation peut écrire plus de 25 000 000 valeurs distinctes.

Nombre de clés distinctes


Permet de spécifier éventuellement le nombre exact de valeurs distinctes que
l'agrégation peut écrire. Si les deux options Échelle de nombre des valeurs distinctes et
Nombre de clés distinctes sont spécifiées, Nombre de clés distinctes est prioritaire.
Facteur d'extension automatique
Utilisez une valeur comprise entre 1 et 100 afin de spécifier le pourcentage selon lequel
la mémoire peut être étendue pendant l'agrégation. Par défaut, la valeur de cette option
est 25 %.

Voir aussi
Flux de données
Transformations Integration Services
Agréger les valeurs dans un dataset
avec la transformation d’agrégation
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour pouvoir ajouter et configurer une transformation d'agrégation, le package doit


inclure au moins une tâche de flux de données et une source.

Pour agréger les valeurs dans un dataset


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Flux de données , puis dans la Boîte à outils, faites glisser la
transformation d’agrégation sur la surface de dessin.

4. Connectez la transformation d'agrégation au flux de données en faisant glisser un


connecteur à partir de la source ou de la transformation précédente vers la
transformation d'agrégation.

5. Double-cliquez sur la transformation.

6. Dans la boîte de dialogue Éditeur de transformation d’agrégation , cliquez sur


l’onglet Agrégations .

7. Dans la liste Colonnes d’entrée disponibles , cochez la case des colonnes dont
vous voulez agréger les valeurs. Les colonnes sélectionnées s'affichent dans la
table.

7 Notes

Vous pouvez sélectionner une colonne plusieurs fois afin de lui appliquer
plusieurs transformations. Pour identifier les agrégations de manière unique,
un numéro est ajouté au nom par défaut de l'alias de sortie de la colonne.

8. Si vous le souhaitez, modifiez la valeur des colonnes Alias de sortie .

9. Pour modifier l’opération d’agrégation par défaut, Group by, sélectionnez une
autre opération dans la liste Opération .
10. Pour modifier la comparaison par défaut, sélectionnez les indicateurs de
comparaison individuels répertoriés dans la colonne Indicateurs de comparaison .
Par défaut, une comparaison ignore la casse, les caractères de type Kana, les
caractères de non-espacement et la largeur des caractères.

11. Si vous le souhaitez, pour l’agrégation Count distinct , indiquez le nombre exact
de valeurs distinctes dans la colonne Nombre de clés distinctes ou sélectionnez un
nombre approximatif dans la colonne Échelle de nombre des valeurs distinctes .

7 Notes

La fourniture du nombre de valeurs distinctes, exact ou approximatif, optimise


les performances, car la transformation peut préallouer la quantité de
mémoire appropriée pour effectuer son travail.

12. Si vous le souhaitez, cliquez sur Avancé et mettez à jour le nom de la sortie de la
transformation d’agrégation. Si les agrégations contiennent une opération Group
By , vous pouvez sélectionner un nombre approximatif de valeurs de clés de
groupement dans la colonne Redéfinir le nombre de clés ou indiquer un nombre
exact de valeurs de clés de groupement dans la colonne Clés .

7 Notes

La fourniture du nombre de valeurs distinctes, exact ou approximatif, optimise


les performances, car la transformation peut préallouer la quantité de
mémoire appropriée pour effectuer son travail.

7 Notes

Les options Redéfinir le nombre de clés et Clés s’excluent mutuellement. Si


vous tapez des valeurs dans les deux colonnes, la valeur la plus grande de la
colonne Redéfinir le nombre de clés ou Clés est utilisée.

13. Si vous le souhaitez, cliquez sur l’onglet Avancé et définissez les attributs qui
s’appliquent à l’optimisation de toutes les opérations réalisées par la
transformation d’agrégation.

14. Cliquez sur OK.

15. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .
Voir aussi
Transformation d'agrégation
Transformations Integration Services
Chemins Integration Services
tâche de flux de données
transformation d'audit
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation d'audit permet au flux de données d'un package de contenir des


données relatives à l'environnement d'exécution du package. Par exemple, le nom du
package, de l'ordinateur et de l'opérateur peuvent être ajoutés au flux de données.
Microsoft SQL Server Integration Services comprend des variables système qui
fournissent ces informations.

Variables système
Le tableau suivant décrit les variables système utilisables par la transformation d'audit.

Variable système Index Description

ExecutionInstanceGUID 0 GUID identifiant l'instance d'exécution du package.

PackageID 1 Identificateur unique du package.

PackageName 2 Nom du package.

VersionID 3 Version du package.

ExecutionStartTime 4 Heure à laquelle l'exécution du package a commencé.

MachineName 5 Nom de l'ordinateur.

UserName 6 Nom de connexion de la personne qui a démarré le package.

TaskName 7 Nom de la tâche de flux de données à laquelle la


transformation d'audit est associée.

TaskId 8 Identificateur unique de la tâche de flux de données.

Configuration de la transformation d'audit


Pour configurer la transformation d'audit, vous devez indiquer le nom d'une nouvelle
colonne de sortie à ajouter à la sortie de la transformation, puis mapper la variable
système avec la colonne de sortie. Vous pouvez mapper une même variable système
avec plusieurs colonnes.
Cette transformation a une entrée et une sortie. Elle ne prend pas en charge de sortie
d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Pour plus d’informations sur la façon de définir les propriétés, consultez Définir les
propriétés d’un composant de flux de données.

Éditeur de transformation d'audit


La transformation d'audit permet au flux de données d'un package de contenir des
données relatives à l'environnement d'exécution du package. Par exemple, le nom du
package, de l'ordinateur et de l'opérateur peuvent être ajoutés au flux de données.
Integration Services comprend des variables système qui fournissent ces informations.

Options
Nom de colonne de sortie
Indique le nom de la nouvelle colonne de sortie qui va contenir les informations d'audit.

Type d'audit
Sélectionne une variable système disponible pour fournir les informations d'audit.

Value Description

GUID d'instance Insérez le GUID qui identifie de manière unique l'instance d'exécution du
d'exécution package.

ID du package Insérez le GUID qui identifie de manière unique le package.

Nom du package Insérez le nom du package.

ID de version Insérez le GUID qui identifie de manière unique la version du package.


Value Description

Heure de début de Insérez l'heure à laquelle l'exécution du package a commencé.


l'exécution

Nom de Insérez le nom de l'ordinateur sur lequel le package a été lancé.


l'ordinateur

Nom d’utilisateur Insérez le nom de connexion de l'utilisateur qui a lancé le package.

Nom de la tâche Insérez le nom de la tâche de flux de données à laquelle la transformation


d'audit est associée.

ID de la tâche Insérez le GUID qui identifie de manière unique le flux de données à


laquelle la transformation d'audit est associée.
Transformation du distributeur de
données équilibrées (BDD)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation du distributeur de données équilibrées (BDD) bénéficie de la fonction


de traitement simultané des unités centrales modernes. Elle distribue des tampons de
lignes entrantes uniformément dans les sorties sur des threads distincts. En utilisant des
threads distincts pour chaque chemin de sortie, le composant BDD améliore les
performances d'un package SSIS sur des ordinateurs à plusieurs cœurs ou plusieurs
processeurs.

Le schéma suivant montre un exemple simple d'utilisation de la transformation BDD.


Dans cet exemple, la transformation BDD sélectionne un tampon de pipeline à la fois
des données d'entrée d'une source de fichier plat et l'envoie à l'un des trois chemins de
sortie selon le principe du tourniquet. Dans SQL Server Data Tools, vérifiez les valeurs
d’une propriété DefaultBufferSize(taille par défaut du tampon de pipeline) et d’une
propriété DefaultBufferMaxRows(nombre maximal par défaut de lignes dans un tampon
de pipeline) dans la fenêtre Propriétés affichant les propriétés d’une tâche de flux de
données.

La transformation du distributeur de données équilibrées améliore les performances


d'un package dans un scénario qui remplit les conditions suivantes :
1. Il existe un nombre élevé de données entrantes dans la transformation BDD. Si la
taille des données est petite et un seul tampon contient des données, il n'y a
aucun raison d'utilise la transformation BDD. Si la taille des données est
importante et plusieurs tampons sont nécessaires pour contenir les données, BDD
traite efficacement les tampons de données en parallèle à l'aide de threads
distincts.

2. Les données peuvent être lues plus rapidement que le reste du flux de données ne
peut le traiter. Dans ce scénario, les transformations qui sont effectuées sur les
données s'exécutent lentement par rapport à la fréquence à laquelle les données
arrivent. Si le goulot d'étranglement est à la destination, la destination doit être
parallélisable.

3. Il n'est pas nécessaire de trier les données. Par exemple, si les données doivent
rester triées, vous ne devez pas les diviser à l'aide de la transformation BDD.

Notez que si le goulot d'étranglement d'un package SSIS est dû à la fréquence de


lecture des données de la source, le composant BDD ne permet pas d'améliorer les
performances. Si le goulot d'étranglement se trouve dans un package SSIS, car la
destination ne prend pas en charge le parallélisme, BDD ne change rien. Toutefois, vous
pouvez effectuer toutes les transformations en parallèle et utiliser la transformation
Union All pour combiner les données de sortie de différents chemins de sortie de la
transformation BDD avant d'envoyer les données à la destination.

) Important

Pour obtenir une présentation avec une démonstration de l'utilisation de la


transformation, consultez la vidéo Distributeur de données équilibrées dans la
bibliothèque TechNet.
Transformation de la table de caractères
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de la table de caractères applique des fonctions de chaîne, telles que


la conversion de minuscules en majuscules, à des données de type caractère. Cette
transformation fonctionne seulement sur les données de colonne de type de données
chaîne.

La transformation de la table de caractères peut convertir les données de colonne sur


place ou ajouter une colonne à la sortie de transformation et y insérer les données
converties. Vous pouvez appliquer différents ensembles d'opérations de mappage à la
même colonne d'entrée et placer les résultats dans des colonnes différentes. Par
exemple, vous pouvez convertir la même colonne en majuscules et en minuscules, puis
placer les résultats dans deux colonnes différentes.

Dans certaines circonstances, le mappage peut provoquer une troncation des données.
Par exemple, la troncation peut se produire lorsque des caractères codés sur un octet
sont mappés avec des caractères représentés sur plusieurs octets. La transformation de
la table de caractères comprend une sortie d'erreur, qui permet de diriger les données
tronquées vers une sortie distincte. Pour plus d’informations, consultez Gestion des
erreurs dans les données.

Cette transformation a une entrée, une sortie et une sortie d'erreur.

Opérations de mappage
Le tableau suivant décrit les opérations de mappage prises en charge par la
transformation de la table de caractères.

Opération Description

Inversion Inverse l'ordre des octets.


d'octet

Pleine Mappe des caractères à demi-chasse avec des caractères à pleine chasse.
chasse

Demi- Mappe des caractères à pleine chasse avec des caractères à demi-chasse.
chasse

Hiragana Mappe des caractères katakana avec des caractères hiragana.


Opération Description

Katakana Mappe des caractères hiragana avec des caractères katakana.

Casse Applique une casse linguistique à la place des règles système. La casse linguistique
linguistique fait référence aux fonctionnalités fournies par le mappage de casse simple API
Win32 pour Unicode du turc et d'autres paramètres régionaux.

Minuscules Convertit des caractères en minuscules.

Chinois Mappe des caractères en chinois traditionnel avec des caractères en chinois
simplifié simplifié.

Chinois Mappe des caractères en chinois simplifié avec des caractères en chinois
traditionnel traditionnel.

Majuscules Convertit des caractères en majuscules.

Opérations de mappage s'excluant


mutuellement
Plusieurs opérations peuvent être réalisées dans une transformation. Toutefois, certaines
opérations de mappage s'excluent mutuellement. Le tableau suivant décrit les
restrictions applicables à l'utilisation de plusieurs opérations sur la même colonne. Les
opérations dans les colonnes Opération A et Opération B s'excluent mutuellement.

Opération A Opération B

Minuscules Majuscules

Hiragana Katakana

Demi-chasse Pleine chasse

Chinois traditionnel Chinois simplifié

Minuscules Hiragana, katakana, demi-chasse, pleine chasse

Majuscules Hiragana, katakana, demi-chasse, pleine chasse

Configuration de la transformation de la table


de caractères
Vous pouvez configurer la transformation de la table de caractères comme suit :
Spécifiez les colonnes à convertir.

Spécifiez les opérations à appliquer à chaque colonne.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Pour plus d'informations sur la définition des propriétés, cliquez sur l'une des rubriques
suivantes :

Définir les propriétés d’un composant de flux de données

Trier des données pour les transformations de fusion et de jointure de fusion

Éditeur de transformation de la table des


caractères
Utilisez la boîte de dialogue Éditeur de transformation de la table des caractères pour
sélectionner les fonctions de chaîne à appliquer aux données de colonne, et indiquer si
le mappage est une modification sur place ou s’il est ajouté sous la forme d’une
nouvelle colonne.

Options
Colonnes d'entrée disponibles
Activez les cases à cocher pour sélectionner les colonnes à transformer en utilisant des
fonctions de chaîne. Vos sélections figurent dans le tableau ci-dessous.

Colonne d'entrée
Affiche les colonnes d'entrée sélectionnées dans le tableau ci-dessus. Vous pouvez
également changer ou supprimer une sélection en utilisant la liste des colonnes d'entrée
disponibles.
Destination
Indiquez si vous voulez enregistrer le résultat des opérations de chaîne sur place en
utilisant la colonne existante, ou enregistrer les données modifiées sous la forme d'une
nouvelle colonne.

Valeur Description

Nouvelle Enregistre les données dans une nouvelle colonne. Définissez le nom de la
colonne colonne sous Alias de sortie.

Modification sur Enregistre les données modifiées dans la colonne existante.


place

opération
Dans la liste, sélectionnez les fonctions de chaîne à appliquer aux données de la
colonne.

Valeur Description

Minuscules Convertit les caractères en minuscules.

Majuscules Convertit les caractères en majuscules

Inversion Convertit en inversant l'ordre d'octet.


d'octet

Hiragana Convertit les caractères japonais katakana en caractères hiragana.

Katakana Convertit les caractères japonais hiragana en caractères katakana.

Demi- Convertit les caractères pleine chasse en caractères demi-chasse.


chasse

Pleine Convertit les caractères demi-chasse en caractères pleine chasse.


chasse

Casse Applique des règles de casse linguistique (mappage de casse simple Unicode pour
linguistique le turc et d'autres paramètres locaux) à la place des règles système.

Chinois Convertit les caractères chinois traditionnels en caractères chinois simplifié.


simplifié

Chinois Convertit les caractères chinois simplifié en caractères chinois traditionnel.


traditionnel

Alias de sortie
Permet de saisir un alias pour chaque colonne de sortie. La valeur par défaut est Copie
de suivi du nom de la colonne d'entrée. Toutefois, vous pouvez choisir n'importe quel
nom descriptif unique.
Configurer la sortie d’erreur
Utilisez la boîte de dialogue Configurer la sortie d’erreur pour définir les options de
gestion des erreurs de cette transformation.
transformation de fractionnement
conditionnel
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de fractionnement conditionnel peut aiguiller les lignes de données


vers différentes sorties, suivant le contenu des données. L’implémentation de la
transformation du fractionnement conditionnel est similaire à une structure de décision
CASE dans un langage de programmation. La transformation évalue les expressions
puis, sur la base des résultats, dirige la ligne de données vers la sortie spécifiée. Cette
transformation offre également une sortie par défaut. Ainsi, si une ligne ne correspond à
aucune expression, elle est dirigée vers la sortie par défaut.

Configuration de la transformation de
fractionnement conditionnel
Vous pouvez configurer la transformation de fractionnement conditionnel comme suit :

Indiquez une expression renvoyant une valeur booléenne pour chaque condition
que la transformation doit tester.

Spécifiez l'ordre dans lequel les conditions sont évaluées. L'ordre est significatif car
une ligne est envoyée à la sortie correspondant à la première condition qui renvoie
True.

Spécifiez la sortie par défaut de la transformation. Il est nécessaire de spécifier une


sortie par défaut pour la transformation.

Chaque ligne d'entrée ne peut être envoyée qu'à une sortie, en l'occurrence celle
correspondant à la première condition qui renvoie True. Par exemple, les conditions
suivantes dirigent toutes les lignes de la colonne FirstName commençant par la lettre A
vers une sortie, celles commençant par la lettre B vers une autre sortie et toutes les
autres vers la sortie par défaut.

Sortie 1

SUBSTRING(FirstName,1,1) == "A"

Sortie 2
SUBSTRING(FirstName,1,1) == "B"

Integration Services comprend des fonctions et des opérateurs permettant de créer les
expressions qui évaluent les données d’entrée et dirigent les données de sortie. Pour
plus d’informations, consultez Expressions Integration Services (SSIS).

La transformation de fractionnement conditionnel inclut la propriété personnalisée


FriendlyExpression. La propriété peut être mise à jour par une expression de propriété
lors du chargement du package. Pour plus d’informations, consultez Expressions de
propriété dans des packages et Propriétés personnalisées des transformation.

Cette transformation possède une entrée, une ou plusieurs sorties et une sortie d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Pour plus d'informations sur la définition des propriétés, cliquez sur l'une des rubriques
suivantes :

Fractionner un dataset à l'aide de la transformation de fractionnement


conditionnel

Définir les propriétés d’un composant de flux de données

Tâches associées
Fractionner un dataset à l'aide de la transformation de fractionnement conditionnel

Éditeur de transformation de fractionnement


conditionnel
Utilisez la boîte de dialogue Éditeur de transformation de fractionnement conditionnel
pour créer des expressions, définir l'ordre dans lequel les expressions sont évaluées et
nommer les sorties d'un fractionnement conditionnel. Cette boîte de dialogue
comprend des fonctions mathématiques, de chaînes de caractères et de date/heure,
ainsi que des opérateurs utilisés pour créer des expressions. La première condition
évaluée comme vraie détermine la sortie vers laquelle une ligne est dirigée.

7 Notes

La transformation de fractionnement conditionnel dirige chaque ligne d'entrée vers


une seule sortie. Si vous entrez plusieurs conditions, la transformation envoie
chaque ligne à la première sortie pour laquelle la condition est remplie et ne tient
pas compte des conditions suivantes pour cette ligne. Si vous devez évaluer
successivement plusieurs conditions, vous devrez peut-être enchaîner plusieurs
transformations de fractionnement conditionnel dans le flux de données.

Options
Commande
Sélectionnez une ligne et utilisez les touches de direction à droite pour modifier l'ordre
dans lequel les expressions sont évaluées.

Nom de sortie
Donnez un nom à la sortie. Par défaut, il s'agit d'une liste de cas numérotée ; vous
pouvez néanmoins choisir un nom unique et illustratif.

Condition
Tapez une expression ou créez-en une en faisant glisser les colonnes, variables et
fonctions disponibles.

Il est possible de spécifier la valeur de cette propriété en utilisant l'expression d'une


propriété.

Rubriques connexes : Expressions Integration Services (SSIS), Opérateurs (Expression


SSIS) et Fonctions (Expression SSIS)

Nom de sortie par défaut


Tapez un nom pour la sortie par défaut ou utilisez le nom par défaut.

Configurer l'affichage des erreurs


Spécifiez comment gérer les erreurs dans la boîte de dialogue Configurer la sortie
d’erreur .

Voir aussi
Flux de données
Transformations Integration Services
Fractionner un dataset à l'aide de la
transformation de fractionnement
conditionnel
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour pouvoir ajouter et configurer une transformation de fractionnement conditionnel,


le package doit inclure au moins une tâche de flux de données et une source.

Pour fractionner un dataset de manière conditionnelle


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Flux de données puis, dans la Boîte à outils, faites glisser la
transformation de fractionnement conditionnel sur l’aire de conception.

4. Connectez la transformation de fractionnement conditionnel au flux de données


en faisant glisser le connecteur à partir de la source de données ou de la
transformation précédente vers la transformation de fractionnement conditionnel.

5. Double-cliquez sur la transformation de fractionnement conditionnel.

6. Dans l’Éditeur de transformation de fractionnement conditionnel, générez les


expressions à utiliser comme conditions en faisant glisser des variables, des
colonnes, des fonctions et des opérateurs dans la colonne Condition de la grille.
Vous pouvez également taper l’expression dans la colonne Condition .

7 Notes

Une variable ou une colonne peut être utilisée dans plusieurs expressions.

7 Notes

Si l'expression n'est pas valide, son texte est mis en surbrillance et une info-
bulle dans la colonne décrit les erreurs.
7. Si vous le souhaitez, modifiez les valeurs de la colonne Nom de la sortie . Les
noms par défaut sont Case 1, Case 2, etc.

8. Pour modifier la séquence dans laquelle les conditions sont évaluées, cliquez sur
les flèches haut ou bas.

7 Notes

Placez les conditions qui ont le plus de chances d'être rencontrées en haut de
la liste.

9. Si vous le souhaitez, modifiez le nom de la sortie par défaut des lignes de données
qui ne correspondent à aucune condition.

10. Pour configurer l’affichage des erreurs, cliquez sur Configurer l’affichage des
erreurs. Pour plus d’informations, consultez Débogage d’un flux de données.

11. Cliquez sur OK.

12. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Transformation de fractionnement conditionnel
Transformations Integration Services
Chemins Integration Services
Types de données d’Integration Services
tâche de flux de données
Expressions Integration Services (SSIS)
copie de colonnes (transformation)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de copie de colonne crée de nouvelles colonnes en copiant des


colonnes d'entrée et en ajoutant les nouvelles colonnes à la sortie de la transformation.
Ultérieurement dans le flux de données, différentes transformations peuvent être
appliquées aux copies de colonne. Par exemple, vous pouvez utiliser la transformation
de copie de colonne pour créer une copie d'une colonne, puis convertir les données
copiées en caractères majuscules à l'aide de la transformation de la table des caractères,
ou appliquer des agrégations à la nouvelle colonne à l'aide de la transformation
d'agrégation.

Configuration de la transformation de copie de


colonne
Vous configurez la transformation de copie de colonne en spécifiant les colonnes
d'entrée à copier. Vous pouvez créer plusieurs copies d'une colonne ou générer des
copies de plusieurs colonnes en une même opération.

Cette transformation a une entrée et une sortie. Elle ne prend pas en charge de sortie
d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par programme.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Pour plus d’informations sur la façon de définir les propriétés, consultez Définir les
propriétés d’un composant de flux de données.

Éditeur de transformation de copie de colonne


Utilisez la boîte de dialogue Éditeur de transformation de copie de colonne pour
sélectionner des colonnes à copier et attribuer des noms aux nouvelles colonnes de
sortie.

7 Notes

Si vous copiez simplement toutes vos données sources vers une destination,
l'utilisation de la transformation de copie de colonne peut ne pas être obligatoire.
Dans certains scénarios, vous pouvez connecter une source directement à une
destination, lorsque aucune transformation de données n'est requise. Dans ces
circonstances, il est souvent préférable d'utiliser l'Assistant Importation et
Exportation SQL Server pour créer votre package. Ultérieurement, vous pouvez
améliorer et reconfigurer le package selon les besoins. Pour plus d'informations,
consultez SQL Server Import and Export Wizard.

Options
Colonnes d'entrée disponibles
Utilisez les cases à cocher pour sélectionner les colonnes à copier. Les sélections
ajoutent des colonnes d'entrée à la table ci-dessous.

Colonne d'entrée
Sélectionnez dans la liste les colonnes d'entrée à copier. Vos sélections se reflètent dans
les sélections des cases à cocher de la table Colonnes d'entrée disponibles .

Alias de sortie
Tapez un alias pour chaque nouvelle colonne de sortie. Le nom par défaut est Copie
desuivi du nom de la colonne d'entrée ; vous pouvez néanmoins choisir un nom unique
et descriptif.

Voir aussi
Flux de données
Transformations Integration Services
transformation de conversion de
données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de conversion de données convertit les données d'une colonne


d'entrée en un type de données différent, puis les copie dans une nouvelle colonne de
sortie. Par exemple, un package peut extraire des données de plusieurs sources, puis
utiliser cette transformation pour convertir des colonnes vers le type de données requis
par la banque de données de destination. Vous pouvez appliquer plusieurs conversions
à une même colonne d'entrée.

Cette transformation permet à un package de réaliser les types de conversions de


données suivants :

Changer le type de données. Pour plus d’informations, consultez Types de données


Integration Services.

7 Notes

Si vous convertissez des données en un type de données date ou datetime, la


date de la colonne de sortie est exprimée dans le format ISO, bien que la
préférence des paramètres régionaux puisse spécifier un format différent.

Définir la longueur de colonne des données de chaîne ainsi que la précision et


l'échelle des données numériques. Pour plus d’informations, consultez Précision,
échelle et longueur (Transact-SQL).

Spécifier une page de codes. Pour plus d'informations, voir Comparing String Data.

7 Notes

Lors d'une copie entre deux colonnes de type de données chaîne, celles-ci
doivent utiliser la même page de codes.

Si une colonne de sortie de données de type chaîne est plus courte que la colonne
d'entrée correspondante, les données de sortie sont tronquées. Pour plus
d’informations, consultez Gestion des erreurs dans les données.
Cette transformation a une entrée, une sortie et une sortie d'erreur.

Tâches associées
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par programme.
Pour plus d’informations sur l’utilisation de la transformation de conversion de données
dans le Concepteur SSIS, consultez Convertir des données en un type différent à l’aide
de la transformation de conversion de données. Pour plus d’informations sur la
définition des propriétés de cette transformation par programmation, consultez
Propriétés courantes et Propriétés personnalisées des transformations.

Contenu associé
Entrée de blog, Comparaison des performances des différentes techniques de
conversion de type de données dans SSIS 2008 , sur blogs.msdn.com.

Éditeur de transformation de conversion de


données
Utilisez la boîte de dialogue Éditeur de transformation de conversion de données pour
sélectionner les colonnes à convertir, sélectionner le type de données de conversion des
colonnes et définir les attributs de conversion.

7 Notes

La propriété FastParse des colonnes de sortie de la transformation de conversion


de données n'est pas disponible dans l' Éditeur de transformation de conversion
de données, mais elle peut être définie à l'aide de l' Éditeur avancé. Pour plus
d'informations sur cette propriété, consultez la section Transformation de
conversion de données dans Transformation Custom Properties.

Options
Colonnes d'entrée disponibles
Sélectionnez les colonnes à convertir en activant les cases à cocher. Les sélections
ajoutent des colonnes d'entrée à la table ci-dessous.

Colonne d'entrée
Sélectionnez les colonnes à convertir dans la liste des colonnes d'entrée disponibles. Vos
sélections sont reflétées dans les sélections de cases à cocher ci-dessus.

Alias de sortie
Tapez un alias pour chaque nouvelle colonne. La valeur par défaut est Copie de suivi du
nom de la colonne d'entrée. Toutefois, vous pouvez choisir n'importe quel nom
descriptif unique.

Type de données
Sélectionnez un type de données dans la liste. Pour plus d’informations, consultez Types
de données Integration Services.

Longueur
Définissez la longueur de colonne pour les données de chaînes.

Précision
Définissez la précision des données numériques.

Mise à l’échelle
Définissez l'échelle des données numériques.

Page de codes
Sélectionnez la page de codes appropriée pour les colonnes de type DT_STR.

Configurer l'affichage des erreurs


Indiquez la façon dont les erreurs au niveau des lignes sont gérées via la boîte de
dialogue Configurer la sortie d’erreur .

Voir aussi
Analyse rapide
Flux de données
Transformations Integration Services
Convertir un type de données avec la
transformation de conversion de
données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour pouvoir ajouter et configurer une transformation de conversion de données, le


package doit inclure au moins une tâche de flux de données et une source.

Pour convertir des données en un type différent


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Flux de données et, dans la boîte à outils, faites glisser la
transformation de conversion de données sur l’aire de conception.

4. Connectez la transformation de conversion de données au flux de données en


faisant glisser un connecteur à partir de la source ou de la transformation
précédente vers la transformation de conversion de données.

5. Double-cliquez sur la transformation de conversion de données.

6. Dans la boîte de dialogue Éditeur de transformation de conversion de données ,


dans la table Colonnes d’entrée disponibles , cochez la case en regard des
colonnes dont vous voulez convertir le type de données.

7 Notes

Vous pouvez appliquer plusieurs conversions de données à une colonne


d'entrée.

7. Si vous le souhaitez, modifiez les valeurs par défaut de la colonne Alias de sortie .

8. Dans la liste Type de données , sélectionnez le nouveau type de données de la


colonne. Le type de données par défaut est celui de la colonne d'entrée.
9. Si vous le souhaitez et selon le type de données sélectionné, mettez à jour les
valeurs des colonnes Longueur, Précision, Échelleet Page de codes .

10. Pour configurer la sortie d’erreur, cliquez sur Configurer la sortie d’erreur. Pour
plus d’informations, consultez Débogage d’un flux de données.

11. Cliquez sur OK.

12. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Transformation de conversion de données
Transformations Integration Services
Chemins Integration Services
Types de données d’Integration Services
tâche de flux de données
transformation de requête d'exploration
de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

) Important

L’exploration de données a été déconseillée dans SQL Server 2017 Analysis Services
et est à présent abandonnée dans SQL Server 2022 Analysis Services. La
documentation n’est pas mise à jour pour les fonctionnalités déconseillées et
abandonnées. Pour en savoir plus, consultez Compatibilité descendante d’Analysis
Services.

La transformation de requête d'exploration de données effectue des requêtes de


prédiction par rapport aux modèles d'exploration de données. Cette transformation
contient un générateur de requêtes qui permet de créer des requêtes DMX (Data
Mining Extensions). Le générateur de requêtes vous permet de créer des instructions
personnalisées afin d'évaluer les données d'entrée de la transformation par rapport à un
modèle d'exploration de données existant à l'aide du langage DMX. Pour plus
d’informations, consultez Guide de référence du langage DMX (Data Mining Extensions).

Une transformation peut exécuter plusieurs requêtes de prédiction si les modèles sont
basés sur la même structure d'exploration de données. Pour plus d’informations,
consultez Outils de requête d’exploration de données.

Configuration de la transformation de requête


d’exploration de données
La transformation de requête d’exploration de données utilise un gestionnaire de
connexions Analysis Services pour se connecter au projet Analysis Services ou à
l’instance de Analysis Services qui contient la structure et les modèles d’exploration de
données. Pour plus d'informations, consultez Analysis Services Connection Manager.

Cette transformation a une entrée et une sortie. Elle ne prend pas en charge de sortie
d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.
La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Pour plus d’informations sur la façon de définir les propriétés, consultez Définir les
propriétés d’un composant de flux de données.

Éditeur de transformation de requête


d'exploration de données (onglet Modèle
d'exploration de données)
Utilisez l'onglet Modèle d'exploration de données de l' Éditeur de transformation de
requête d'exploration de données pour sélectionner la structure d'exploration de
données et ses modèles d'exploration de données.

Options
Connection
Sélectionnez une connexion Analysis Services en utilisant la zone de liste, ou créez une
connexion en utilisant le bouton Nouvelle comme indiqué ci-dessous.

Nouveau
Créez une connexion à l’aide de la boîte de dialogue Ajout d’un gestionnaire de
connexions Analysis Services .

Structure d'exploration de données


Sélectionnez dans la liste des structures de modèles d'exploration de données.

Modèles d'exploration de données


Affiche la liste des modèles d’exploration de données associés à la structure
d’exploration de données sélectionnée.

Éditeur de transformation de requête


d'exploration de données (onglet Requête)
Utilisez l'onglet Requête de la boîte de dialogue Éditeur de transformation de requête
d'exploration de données pour créer une requête de prédiction.

Options
Requête d'exploration de données
Tapez une requête DMX (Data Mining Extensions) directement dans la zone de texte.

Générer une nouvelle requête


Cliquez sur Générer une nouvelle requête pour créer une requête DMX (Data Mining
Extensions) à l’aide du générateur graphique de requêtes.
Transformation de nettoyage DQS
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de nettoyage DQS utilise les services Data Quality Services (DQS) pour
corriger des données provenant d'une source de données connectée en appliquant des
règles approuvées créées pour la source de données connectée ou une source de
données similaire. Pour plus d'informations sur les règles de correction des données,
consultez DQS Knowledge Bases and Domains. Pour plus d'informations sur DQS,
consultez Data Quality Services Concepts.

Pour déterminer si les données doivent être corrigée, la transformation de nettoyage


DQS traite les données d'une colonne d'entrée lorsque les conditions suivantes sont
remplies :

La colonne est sélectionnée pour la correction des données.

Le type de données de la colonne est pris en charge pour la correction des


données.

La colonne est mappée à un domaine dont le type de données est compatible.

La transformation inclut également une sortie d'erreur que vous configurez pour gérer
les erreurs au niveau des lignes. Pour configurer la sortie d'erreur, utilisez l' Éditeur de
transformation de nettoyage DQS.

Vous pouvez inclure la Fuzzy Grouping Transformation dans le flux de données pour
identifier les lignes de données susceptibles d'être en double.

Projets de qualité des données et valeurs


Lorsque vous traitez des données avec la transformation de nettoyage DQS, un projet
de nettoyage est créé sur le serveur de qualité des données. Vous utilisez le client de
qualité des données pour gérer le projet. En outre, vous pouvez utiliser le client de
qualité des données pour importer les valeurs du projet dans un domaine de base de
connaissances DQS. Vous pouvez importer les valeurs uniquement vers un domaine (ou
un domaine lié) configuré pour être utilisé par la transformation de nettoyage DQS.

Tâches associées
Ouvrir des projets Integration Services dans Data Quality Client

Importer des valeurs de projet de nettoyage dans un domaine

Appliquer des règles de qualité des données à la source de données

Contenu associé
Ouvrir, déverrouiller, renommer et supprimer un projet de qualité des données

Article Nettoyage de données complexes à l'aide des domaines composites , sur


social.technet.microsoft.com.

Éditeur de transformation de nettoyage DQS


(boîte de dialogue)
Utilisez la boîte de dialogue de l’Éditeur de transformation de nettoyage DQS pour
corriger les données à l’aide de DQS (Data Quality Services). Pour plus d’informations,
consultez Concepts Data Quality Services.

Que voulez-vous faire ?

Ouvrir l'Éditeur de transformation de nettoyage DQS

Définir les options de l'onglet Gestionnaires de connexions

Définir les options sur l'onglet mappage

Définir les options de l'onglet Avancé

Définir les options dans la boîte de dialogue Gestionnaire de connexions du


nettoyage DQS

Ouvrir l'Éditeur de transformation de nettoyage DQS


1. Ajoutez la transformation de nettoyage DQS au package Integration Services, dans
SQL Server Data Tools (SSDT).

2. Cliquez avec le bouton droit sur le composant, puis cliquez sur Modifier.

Définir les options de l'onglet Gestionnaires de


connexions
Gestionnaire de connexions Data Quality Services
Sélectionnez un gestionnaire de connexions DQS existant dans la liste, ou créez une
connexion en cliquant sur Nouveau.

Nouveau
Créez un gestionnaire de connexions à l’aide de la boîte de dialogue Gestionnaire de
connexions du nettoyage DQS . Consultez Définir les options dans la boîte de dialogue
Gestionnaire de connexions du nettoyage DQS

Base de connaissances Data Quality Services


Sélectionnez une base de connaissances DQS existante pour la source de données
connectée. Pour plus d’informations sur la base de connaissances DQS, consultez Bases
de connaissances et domaines DQS.

Chiffrer la connexion
Spécifiez s’il faut chiffrer la connexion pour chiffrer le transfert des données entre le
serveur DQS et Integration Services.

Champs disponibles
Répertorie les champs disponibles pour la base de connaissances sélectionnée. Il existe
deux types de champs : domaines uniques, et domaines composés qui contiennent au
moins deux domaines uniques.

Pour plus d’informations sur la façon de mapper des colonnes à des domaines
composites, consultez Mapper des colonnes à des domaines composites.

Pour plus d’informations sur les domaines, consultez Bases de connaissances et


domaines DQS.

Configurer la sortie d’erreur


Spécifiez le mode de gestion des erreurs au niveau des lignes. Des erreurs peuvent se
produire lorsque la transformation corrige des données de la source de données
connectée, en raison de valeurs de données ou de contraintes de validation inattendues.

Les valeurs suivantes sont valides :

Composant défaillant, qui indique que la transformation a échoué et que les


données d’entrée ne sont pas insérées dans la base de données Data Quality
Services. Valeur par défaut.

Réacheminer la ligne, qui indique que les données d’entrée ne sont pas insérées
dans la base de données Data Quality Services et qu’elles sont redirigées vers la
sortie d’erreur.
Définir les options sur l'onglet mappage
Pour plus d’informations sur la façon de mapper des colonnes à des domaines
composites, consultez Mapper des colonnes à des domaines composites.

Colonnes d'entrée disponibles


Répertorie les colonnes à partir de la source de données connectée. Sélectionnez une ou
plusieurs colonnes qui contiennent les données que vous souhaitez corriger.

Colonne d'entrée
Répertorie une colonne d’entrée sélectionnée dans la zone Colonnes d’entrée
disponibles .

Domaine
Sélectionnez un domaine pour la mapper à la colonne d'entrée.

Alias source
Répertorie la colonne source qui contient la valeur de colonne d'origine.

Cliquez dans le champ pour modifier le nom de colonne.

Alias de sortie
Répertorie la colonne générée par la Transformation de nettoyage DQS. Cette colonne
contient la valeur de colonne d'origine ou la valeur corrigée.

Cliquez dans le champ pour modifier le nom de colonne.

Alias d'état
Répertorie la colonne qui contient les informations d'état des données corrigées.
Cliquez dans le champ pour modifier le nom de colonne.

Définir les options de l'onglet Avancé


Normaliser la sortie
Indique s'il faut retourner les données dans un format standardisé en fonction du format
de sortie défini pour les domaines. Pour plus d’informations sur le format standardisé,
consultez Nettoyage de données.

Confidence
Indique s'il faut inclure le niveau de confiance pour les données corrigées. Le niveau de
confiance indique le degré de certitude de DQS pour la correction ou la suggestion.
Pour plus d’informations sur les niveaux de confiance, consultez Nettoyage de données.
Motif
Indique s'il faut inclure la raison de la correction des données.

Données ajoutées
Indique s'il faut retourner des informations supplémentaires reçues d'un fournisseur de
données de référence existant. Pour plus d’informations, consultez Reference Data
Services in DQS.

Schéma de données ajoutées


Indique s'il faut retourner le schéma de données. Pour plus d’informations, consultez
Attacher un domaine ou un domaine composite à des données de référence.

Définir les options dans la boîte de dialogue Gestionnaire


de connexions du nettoyage DQS
Nom du serveur
Sélectionnez ou entrez le nom du serveur DQS auquel vous souhaitez vous connecter.
Pour plus d’informations sur le serveur, consultez Administration de DQS.

Tester la connexion
Cliquez pour confirmer que la connexion que vous avez spécifiée fonctionne.

Vous pouvez également ouvrir la boîte de dialogue Gestionnaire de connexions du


nettoyage DQS à partir de la zone de connexions, en procédant comme suit :

1. Dans SQL Server Data Tools (SSDT), ouvrez un projet Integration Services existant
ou créez-en un.

2. Cliquez avec le bouton droit dans la zone des connexions, cliquez sur Nouvelle
connexion, puis cliquez sur DQS.

3. Cliquez sur Add.


Gestionnaire de connexions de
nettoyage DQS
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions de nettoyage DQS permet à un package de se connecter


à un serveur Data Quality Services . La transformation de nettoyage DQS utilise le
gestionnaire de connexions de nettoyage DQS.

Pour plus d’informations sur Data Quality Services, consultez Concepts Data Quality
Services.

) Important

Le gestionnaire de connexions de nettoyage DQS prend en charge uniquement


l'authentification Windows.

Tâches associées
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation. Pour plus d’informations sur les propriétés que vous pouvez définir
dans le Concepteur SSIS , consultez Éditeur de transformation de nettoyage DQS.

Pour plus d’informations sur la configuration d’un gestionnaire de connexions par


programmation, consultez la documentation de la classe ConnectionManager dans le
Guide du développeur.
Appliquer des règles de qualité des
données à la source de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous pouvez utiliser Data Quality (DQS) Services pour corriger les données dans le flux
de données du package en connectant la transformation de nettoyage DQS à la source
de données. Pour plus d’informations sur DQS, consultez Concepts Data Quality
Services. Pour plus d’informations sur la transformation, consultez Transformation de
nettoyage DQS.

Lorsque vous traitez des données avec la transformation de nettoyage DQS, un projet
de qualité des données est créé sur le serveur de qualité des données. Vous utilisez le
client de qualité des données pour gérer le projet. Pour plus d’informations, consultez
Ouvrir, déverrouiller, renommer et supprimer un projet de qualité des données.

Pour corriger les données dans le flux de données


1. Créer un package.

2. Ajoutez et configurez la transformation de nettoyage DQS. Pour plus


d’informations, consultez Éditeur de transformation de nettoyage DQS (boîte de
dialogue).

3. Connectez la transformation de nettoyage DQS à une source de données.


Mapper des colonnes à des domaines
composites
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un domaine composite comprend deux ou plusieurs domaines uniques. Vous pouvez


mapper plusieurs colonnes au domaine ou vous pouvez mapper une seule colonne de
valeurs délimitées au domaine.

Lorsque vous avez plusieurs colonnes, vous devez mapper une colonne à chaque
domaine unique du domaine composite pour appliquer les règles du domaine
composite au nettoyage des données. Sélectionnez les domaines uniques contenus
dans le domaine composite dans Data Quality Client. Pour plus d’informations,
consultez Créer un domaine composite.

Lorsque vous avez une seule colonne de valeurs délimitées, vous devez mapper la
colonne unique au domaine composite. Les valeurs doivent apparaître dans le même
ordre que celui dans lequel les domaines uniques apparaissent dans le domaine
composite. Le délimiteur de la source de données doit correspondre à celui utilisé pour
analyser les valeurs du domaine composite. Sélectionnez le délimiteur du domaine
composite et définissez d'autres propriétés dans Data Quality Client. Pour plus
d’informations, consultez Créer un domaine composite.

Pour mapper plusieurs colonnes à un domaine composite


1. Cliquez avec le bouton droit sur la transformation de nettoyage DQS, puis
sélectionnez Modifier.

2. Sous l’onglet Gestionnaire de connexions , vérifiez que le domaine composite


apparaît dans la liste des domaines disponibles.

3. Sous l’onglet Mappage , sélectionnez les colonnes dans la zone Colonnes d’entrée
disponibles .

4. Pour chaque colonne figurant dans le champ Colonne d’entrée , sélectionnez un


domaine unique dans le champ Domaine . Sélectionnez uniquement des domaines
uniques figurant dans le domaine composite.

5. Si nécessaire, modifiez les noms qui s’affichent dans les champs Alias source, Alias
de sortieet Alias d’état .
6. Si nécessaire, définissez des propriétés sous l’onglet Avancé . Pour plus
d’informations sur les propriétés, consultez Éditeur de transformation de nettoyage
DQS (boîte de dialogue).

Pour mapper une colonne de valeurs délimitées à un


domaine composite
1. Cliquez avec le bouton droit sur la transformation de nettoyage DQS, puis
sélectionnez Modifier.

2. Sous l’onglet Gestionnaire de connexions , vérifiez que le domaine composite


apparaît dans la liste des domaines disponibles.

3. Sous l’onglet Mappage , sélectionnez la colonne dans la zone Colonnes d’entrée


disponibles .

4. Pour la colonne figurant dans le champ Colonne d’entrée , sélectionnez le


domaine composite dans le champ Domaine .

5. Si nécessaire, modifiez les noms qui s’affichent dans les champs Alias source, Alias
de sortieet Alias d’état .

6. Si nécessaire, définissez des propriétés sous l’onglet Avancé . Pour plus


d’informations sur les propriétés, consultez Éditeur de transformation de nettoyage
DQS (boîte de dialogue).

Voir aussi
Transformation de nettoyage DQS
Transformation de colonne dérivée
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de colonne dérivée crée de nouvelles valeurs de colonne en


appliquant des expressions aux colonnes d'entrée de transformation. Une expression
peut contenir toute combinaison de variables, de fonctions, d'opérateurs et de colonnes
provenant de l'entrée de transformation. Le résultat peut être ajouté en tant que
nouvelle colonne ou inséré dans une colonne existante en tant que valeur de
remplacement. La transformation de colonne dérivée peut définir plusieurs colonnes
dérivées, et toute variable ou colonne d'entrée peut apparaître dans plusieurs
expressions.

Vous pouvez utiliser cette transformation pour réaliser les tâches suivantes :

concaténer des données à partir de différentes colonnes en une colonne dérivée.


Par exemple, vous pouvez combiner les valeurs des colonnes FirstName et
LastName en une colonne dérivée unique nommée FullNameà l’aide de
l’expression FirstName + " " + LastName .

extraire des caractères de données de chaîne à l'aide de fonctions telles que


SUBSTRING, puis stocker le résultat dans une colonne dérivée. Par exemple, vous
pouvez extraire de la colonne FirstName l’initiale d’une personne à l’aide de
l’expression SUBSTRING(FirstName,1,1) .

appliquer des fonctions mathématiques à des données numériques et stocker le


résultat dans une colonne dérivée. Par exemple, vous pouvez modifier la longueur
et la précision d’une colonne numérique, SalesTax, en un nombre à deux décimales
à l’aide de l’expression ROUND(SalesTax, 2) .

créer des expressions qui comparent les colonnes d'entrée et les variables. Par
exemple, vous pouvez comparer la variable Version aux données de la colonne
ProductVersionet, suivant le résultat de la comparaison, utiliser la valeur de
Version ou de ProductVersion, à l’aide de l’expression ProductVersion ==
@Version? ProductVersion : @Version .

extraire des parties d'une valeur de date et d'heure. Par exemple, vous pouvez
utiliser les fonctions GETDATE et DATEPART pour extraire l’année actuelle à l’aide
de l’expression DATEPART("year",GETDATE()) .
convertir des chaînes de date dans un format spécifique en utilisant une
expression.

Configuration de la transformation de colonne


dérivée
Vous pouvez configurer la transformation de colonne dérivée comme suit :

Indiquez une expression pour chaque colonne d'entrée ou pour chaque nouvelle
colonne à modifier. Pour plus d’informations, consultez Expressions Integration
Services (SSIS).

7 Notes

Si une expression référence une colonne d'entrée remplacée par la


transformation de colonne dérivée, cette expression utilise la valeur d'origine
de la colonne au lieu de la valeur dérivée.

Si les résultats sont insérés dans de nouvelles colonnes et que le type de données
est string, spécifiez une page de codes. Pour plus d'informations, voir Comparing
String Data.

La transformation de colonne dérivée inclut la propriété personnalisée


FriendlyExpression. La propriété peut être mise à jour par une expression de propriété
lors du chargement du package. Pour plus d’informations, consultez Expressions de
propriété dans des packageset Propriétés personnalisées des transformation.

Cette transformation a une entrée, une sortie standard et une sortie d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des transformations


Pour plus d'informations sur la définition des propriétés, cliquez sur l'une des rubriques
suivantes :

Définir les propriétés d’un composant de flux de données

Tâches associées
Dériver les valeurs de colonnes à l'aide de la transformation de colonne dérivée

Éditeur de transformation de colonne dérivée


Utilisez la boîte de dialogue Éditeur de transformation de colonne dérivée pour créer
des expressions qui remplissent de nouvelles colonnes ou des colonnes de
remplacement.

Options
Variables et colonnes
Pour créer une expression qui utilise une variable ou une colonne d'entrée, faites glisser
la variable ou la colonne à partir de la liste des variables et colonnes disponibles vers
une ligne d'une table existante dans le volet inférieur ou vers une nouvelle ligne au bas
de la liste.

Fonctions et opérateurs
Pour créer une expression qui utilise une fonction ou un opérateur dans le but d'évaluer
des données d'entrée ou de diriger des données de sortie, faites-les glisser à partir de la
liste dans le volet inférieur.

Nom de la colonne dérivée


Fournissez un nom pour la colonne dérivée. Par défaut, il s'agit d'une liste numérotée de
colonnes dérivées ; vous pouvez néanmoins choisir un nom unique et descriptif.

Colonne dérivée
Sélectionnez une colonne dérivée dans la liste. Choisissez d'ajouter la colonne dérivée
comme nouvelle colonne de sortie ou de remplacer les données d'une colonne
existante.

Expression
Tapez une expression ou créez-en une en faisant glisser la liste précédente des colonnes,
variables et fonctions disponibles.
Il est possible de spécifier la valeur de cette propriété en utilisant l'expression d'une
propriété.

Rubriques connexes : Expressions Integration Services (SSIS), Opérateurs (expression


SSIS) et Fonctions (expression SSIS)

Type de données
Si vous ajoutez des données à une nouvelle colonne, la boîte de dialogue Éditeur de
transformation de colonne dérivée évalue automatiquement l’expression et définit
correctement le type de données. La valeur de cette colonne est en lecture seule. Pour
plus d’informations, consultez Types de données Integration Services.

Longueur
Si vous ajoutez des données à une nouvelle colonne, la boîte de dialogue Éditeur de
transformation de colonne dérivée évalue automatiquement l’expression et définit la
longueur de colonne des données de chaînes. La valeur de cette colonne est en lecture
seule.

Précision
Si vous ajoutez des données à une nouvelle colonne, la boîte de dialogue Éditeur de
transformation de colonne dérivée définit automatiquement la précision des données
numériques en fonction du type de données. La valeur de cette colonne est en lecture
seule.

Mise à l’échelle
Si vous ajoutez des données à une nouvelle colonne, la boîte de dialogue Éditeur de
transformation de colonne dérivée définit automatiquement l’échelle des données
numériques en fonction du type de données. La valeur de cette colonne est en lecture
seule.

Page de codes
Si vous ajoutez des données à une nouvelle colonne, la boîte de dialogue Éditeur de
transformation de colonne dérivée définit automatiquement la page de codes pour le
type de données DT_STR. Vous pouvez mettre à jour Page de codes.

Configurer l'affichage des erreurs


Spécifiez comment gérer les erreurs dans la boîte de dialogue Configurer la sortie
d’erreur .

Contenu associé
Article technique, SSIS Expression Examples , sur social.technet.microsoft.com
Dériver les valeurs de colonnes avec la
transformation de colonne dérivée
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour pouvoir ajouter et configurer une transformation de colonne dérivée, le package


doit inclure au moins une tâche de flux de données et une source.

La transformation Colonne dérivée utilise des expressions pour mettre à jour les valeurs
de colonnes existantes ou pour ajouter des valeurs à de nouvelles colonnes. Quand vous
décidez d’ajouter des valeurs à de nouvelles colonnes, la boîte de dialogue Éditeur de
transformation de colonne dérivée évalue l’expression et définit les métadonnées des
colonnes en conséquence. Par exemple, si une expression concatène deux colonnes,
chacune possédant le type de données DT_WSTR et une longueur de 50, avec un espace
entre les deux valeurs de colonnes, la nouvelle colonne possède le type de données
DT_WSTR et une longueur de 101. Vous pouvez mettre à jour le type de données des
nouvelles colonnes. La seule nécessité est que le type de données soit compatible avec
les données insérées. Par exemple, la boîte de dialogue Éditeur de transformation de
colonne dérivée génère une erreur de validation quand vous affectez une valeur de
date à une colonne contenant un type de données entier. En fonction du type de
données sélectionné, vous pouvez spécifier la longueur, la précision, l'échelle et la page
de codes de la colonne.

Pour dériver les valeurs de colonnes


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Flux de données puis, dans la Boîte à outils, faites glisser la
transformation de colonne dérivée sur l’aire de conception.

4. Connectez la transformation de colonne dérivée au flux de données en faisant


glisser le connecteur à partir de la source ou de la transformation précédente vers
la transformation de colonne dérivée.

5. Double-cliquez sur la transformation de colonne dérivée.


6. Dans la boîte de dialogue Éditeur de transformation de colonne dérivée , générez
les expressions à utiliser comme conditions en faisant glisser des variables, des
colonnes, des fonctions et des opérateurs dans la colonne Expression de la grille.
Vous pouvez également taper l’expression dans la colonne Expression .

7 Notes

Si l'expression n'est pas valide, son texte est mis en surbrillance et une info-
bulle dans la colonne décrit les erreurs.

7. Dans la liste Colonne dérivée, sélectionnez <ajouter en tant que nouvelle


colonne> pour écrire le résultat de l’évaluation de l’expression dans une nouvelle
colonne, ou sélectionnez une colonne existante à mettre à jour avec le résultat de
l’évaluation.

Si vous choisissez d’utiliser une nouvelle colonne, la boîte de dialogue Éditeur de


transformation de colonne dérivée évalue l’expression et affecte un type de
données à la colonne en fonction du type de données, de la longueur, de la
précision, de l’échelle et de la page de codes.

8. Si vous utilisez une nouvelle colonne, sélectionnez un type de données dans la liste
Type de données . En fonction du type de données sélectionné et si vous le
souhaitez, mettez à jour les valeurs des colonnes Longueur, Précision, Échelleet
Page de codes . Les métadonnées des colonnes existantes ne peuvent pas être
modifiées.

9. Si vous le souhaitez, modifiez les valeurs de la colonne Nom de la colonne dérivée


.

10. Pour configurer la sortie d’erreur, cliquez sur Configurer la sortie d’erreur. Pour
plus d’informations, consultez Débogage d’un flux de données.

11. Cliquez sur OK.

12. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Transformation de colonne dérivée
Types de données d’Integration Services
Transformations Integration Services
Chemins Integration Services
tâche de flux de données
Expressions Integration Services (SSIS)
Transformation d'exportation de
colonne
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation d'exportation de colonne lit des données dans un flux de données


puis les insère dans un fichier. Par exemple, si le flux de données contient des
informations sur les produits, telles qu'une image de chaque produit, vous pouvez
utiliser la transformation d'exportation de colonne pour enregistrer les images dans des
fichiers.

Options d'ajout et de troncation


Le tableau suivant décrit l'impact des paramètres des options d'ajout et de troncation
sur les résultats.

Ajouter Tronquer Le Résultats


(Append) fichier
existe

False False Non La transformation crée un nouveau fichier et y écrit les


données.

True False Non La transformation crée un nouveau fichier et y écrit les


données.

False True Non La transformation crée un nouveau fichier et y écrit les


données.

True True Non La validation de la transformation au moment de la conception


a échoué. Vous ne pouvez pas attribuer aux deux propriétés la
valeur true.

False False Oui Une erreur d'exécution se produit. Le fichier existe, mais la
transformation ne peut pas y écrire.

False True Oui La transformation supprime et recrée le fichier, puis y écrit les
données.

Vrai False Oui La transformation ouvre le fichier, à la fin duquel elle ajoute les
données.
Ajouter Tronquer Le Résultats
(Append) fichier
existe

True True Oui La validation de la transformation au moment de la conception


a échoué. Vous ne pouvez pas attribuer aux deux propriétés la
valeur true.

Configuration de la transformation
d'exportation de colonne
Vous pouvez configurer la transformation d'exportation de colonne comme suit :

Spécifier les colonnes de données et les colonnes qui contiennent le chemin


d'accès aux fichiers dans lesquels les données doivent être écrites.

Indiquer si l'opération d'insertion de données tronque des fichiers existants ou y


ajoute les données.

Indiquer si une marque d'ordre d'octet (BOM, Byte-Order Mark) est écrite dans le
fichier.

7 Notes

Une marque d'ordre d'octet n'est écrite que lorsque les données ne sont pas
ajoutées à un fichier existant et qu'elles sont du type de données DT_NTEXT.

La transformation utilise des paires de colonnes d'entrée : une colonne contient un nom
de fichier, l'autre comporte des données. Chaque ligne du jeu de données peut spécifier
un fichier différent. À mesure que la transformation traite des lignes, les données sont
insérées dans le fichier spécifié. Au moment de l'exécution, la transformation crée les
fichiers, s'ils n'existent pas déjà, puis y écrit les données. Les données à écrire doivent
être du type de données DT_TEXT, DT_NTEXT ou DT_IMAGE. Pour plus d’informations,
consultez Types de données Integration Services.

Cette transformation a une entrée, une sortie et une sortie d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Pour plus d’informations sur la façon de définir les propriétés, consultez Définir les
propriétés d’un composant de flux de données.

Éditeur de transformation d'exportation de


colonne (page Colonnes)
Utilisez la page Colonnes de la boîte de dialogue Éditeur de transformation
d'exportation de colonne pour spécifier les colonnes du flux de données à extraire dans
des fichiers. Vous pouvez préciser si la transformation d'exportation de colonne ajoute
des données à la fin d'un fichier ou écrase le fichier existant.

Options
Colonne d'extraction
Permet de sélectionner à partir de la liste d'entrée des colonnes contenant des données
texte ou image. Toutes les lignes doivent avoir des définitions pour les options Colonne
d'extraction et Colonne du chemin d'accès.

Colonne du chemin d'accès


Permet de sélectionner à partir de la liste d'entrée des colonnes contenant les chemins
d'accès aux fichiers ainsi que les noms de fichiers. Toutes les lignes doivent avoir des
définitions pour les options Colonne d'extraction et Colonne du chemin d'accès.

Autoriser l'ajout
Permet de préciser si la transformation ajoute ou non des données à la fin des fichiers
existants. La valeur par défaut est false.

Forcer la troncation
Permet de préciser si la transformation supprime le contenu des fichiers existants avant
d'écrire des données. La valeur par défaut est false.

Écrire la marque d'ordre d'octet


Indique s'il est nécessaire d'écrire une marque d'ordre d'octet (BOM, Byte-Order Mark)
dans le fichier. Une BOM est écrite uniquement quand les données sont de type
DT_NTEXT ou DT_WSTR et qu’elles ne sont pas ajoutées à un fichier de données
existant.

Éditeur de transformation d'exportation de


colonne (page Sortie d'erreur)
La page Sortie d'erreur de la boîte de dialogue Éditeur de transformation
d'exportation de colonne permet de spécifier la manière dont les erreurs doivent être
traitées.

Options
Entrée/sortie
Affiche le nom de la sortie. Cliquez sur le nom pour développer la vue de sorte à afficher
les colonnes.

Colonne
Affiche les colonnes de sortie sélectionnées à la page Colonnes de la boîte de dialogue
Éditeur de transformation d’exportation de colonne .

Error
Indiquez ce qui doit se produire en cas d'erreur : ignorer l'échec, rediriger la ligne ou
faire échouer le composant.

Troncation
Indiquez ce qui doit se produire en cas de troncation : ignorer l'échec, rediriger la ligne
ou faire échouer le composant.

Description
Affichez la description de l'opération.

Définir cette valeur sur les cellules sélectionnées


Indiquez ce qui doit se produire pour l'ensemble des cellules sélectionnées lorsqu'une
erreur ou une troncation se produit : ignorer l'échec, rediriger la ligne ou faire échouer
le composant.

Appliquer
Appliquez l'option de gestion des erreurs aux cellules sélectionnées.
Transformation de regroupement
approximatif
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de regroupement probable effectue des tâches de nettoyage des


données en identifiant les lignes de données susceptibles d'être des doublons et en
sélectionnant une ligne canonique de données à utiliser pour standardiser les données.

7 Notes

Pour plus d’informations sur la transformation de regroupement floue, y compris


les limitations en termes de performances et de mémoire, consultez le livre blanc,
Présentation des transformations Fuzzy Lookup (recherche approximative) et
Fuzzy Grouping (regroupement approximatif) dans les services DTS (Data
Transformation Services) de SQL Server 2005.

La transformation Regroupement probable nécessite une connexion à une instance de


SQL Server pour créer les tables temporaires SQL Server nécessaires à l'algorithme de
transformation. La connexion doit correspondre à un utilisateur disposant de
l'autorisation de créer des tables dans la base de données.

Pour configurer la transformation, vous devez sélectionner les colonnes d’entrée à


utiliser pendant l’identification des doublons, et vous devez sélectionner le type de
correspondance (approximative ou exacte) pour chaque colonne. Une correspondance
exacte garantit que seules les lignes possédant des valeurs identiques dans cette
colonne seront regroupées. La correspondance exacte peut être appliquée aux colonnes
de n’importe quel type de données Integration Services, à l’exception de DT_TEXT,
DT_NTEXT et DT_IMAGE. Une correspondance approximative regroupe des lignes ayant
à peu près les mêmes valeurs. La méthode utilisée pour la correspondance
approximative des données est basée sur un score de similarité spécifié par l'utilisateur.
Seules les colonnes avec les types de données DT_WSTR et DT_STR peuvent être
utilisées dans la correspondance approximative. Pour plus d’informations, consultez
Types de données Integration Services.

La sortie de transformation comprend toutes les colonnes d'entrée, une ou plusieurs


colonnes avec des données standardisées et une colonne contenant le score de
similarité. Le score est représenté par une valeur décimale entre 0 et 1. La ligne
canonique obtient le score de 1. Les scores des autres lignes dans le regroupement
probable indiquent leur degré de correspondance avec cette ligne canonique. Plus le
score se rapproche de 1, plus la ligne correspond à la ligne canonique. Si le
regroupement probable comprend des lignes qui sont des doublons exacts de la ligne
canonique, ces lignes ont également pour score la valeur 1. La transformation ne
supprime pas les lignes dupliquées, mais les regroupe en créant une clé qui associe la
ligne canonique à des lignes similaires.

La transformation produit une ligne de sortie pour chaque ligne d'entrée, avec les
colonnes supplémentaires suivantes :

_key_in, une colonne qui identifie chaque ligne de manière unique.

_key_out, une colonne qui identifie un groupe de lignes dupliquées. La colonne


_key_out a la même valeur que la colonne _key_in dans la ligne de données
canonique. Les lignes ayant une valeur identique dans _key_out font partie du
même groupe. La valeur _key_outpour un groupe correspond à la valeur _key_in
dans la ligne de données canonique.

_score, valeur comprise entre 0 et 1, qui indique la similarité de la ligne d’entrée


avec la ligne canonique.

Il s'agit des noms de colonne par défaut ; vous pouvez configurer la transformation de
regroupement probable pour utiliser d'autres noms. La sortie fournit également un
score de similarité pour chaque colonne participant à un regroupement probable.

La transformation de regroupement probable comprend deux fonctionnalités de


personnalisation du regroupement qu'elle effectue : les séparateurs de jetons et les
seuils de similarité. La transformation fournit un ensemble par défaut de délimiteurs
utilisés pour marquer des données, mais vous pouvez ajouter de nouveaux délimiteurs
pour améliorer la création de jetons pour vos données.

Le seuil de similarité indique le degré de précision avec lequel la transformation identifie


les doublons. Les seuils de similarité peuvent être définis au niveau du composant et de
la colonne. Le seuil de similarité n'est disponible que pour les colonnes participant à une
correspondance approximative. La plage de similarité va de 0 à 1. Plus le seuil
s'approche de 1, plus les lignes et les colonnes doivent être similaires pour être
répertoriées comme doublons. Vous spécifiez le seuil de similarité en définissant la
propriété MinSimilarity au niveau du composant et de la colonne. Pour obtenir la
similarité spécifiée au niveau du composant, toutes les lignes doivent montrer une
similarité à travers toutes les colonnes qui est supérieure ou égale au seuil de similarité
spécifié au niveau du composant.
La transformation de regroupement probable calcule les mesures internes de similarité ;
les lignes moins similaires à la valeur spécifiée dans MinSimilarity ne sont pas
regroupées.

Pour identifier un seuil de similarité qui fonctionne pour vos données, vous pouvez avoir
à appliquer la transformation de regroupement probable plusieurs fois, avec des seuils
de similarité minimale différents. Lors de l'exécution, les colonnes de score dans la sortie
de la transformation contiennent les scores de similarité pour chaque ligne d'un groupe.
Vous pouvez utiliser ces valeurs pour identifier le seuil de similarité approprié pour vos
données. Si vous voulez augmenter la similarité, vous devez donner à MinSimilarity une
valeur supérieure à celle des colonnes de score.

Vous pouvez personnaliser le regroupement effectué par la transformation en


définissant les propriétés des colonnes dans l'entrée de la transformation du
regroupement probable. Par exemple, la propriété FuzzyComparisonFlags spécifie
comment la transformation compare les données de chaîne dans une colonne, et la
propriété ExactFuzzy indique si la transformation effectue une correspondance
approximative ou exacte.

Vous pouvez configurer la quantité de mémoire utilisée par la transformation de


regroupement probable en définissant la propriété personnalisée MaxMemoryUsage.
Vous pouvez spécifier le nombre de mégaoctets (Mo) ou utiliser la valeur 0 pour
permettre à la transformation d'utiliser une quantité dynamique de mémoire en
fonction de ses besoins et de la mémoire physique disponible. La propriété
personnalisée MaxMemoryUsage peut être mise à jour par une expression de la
propriété au moment du chargement du package. Pour plus d’informations, consultez
Expressions Integration Services (SSIS), Utiliser des expressions de propriété dans des
packages et Propriétés personnalisées des transformations.

Cette transformation a une entrée et une sortie. Elle ne prend pas en charge de sortie
d'erreur.

Comparaison de lignes
Lorsque vous configurez la transformation de regroupement probable, vous pouvez
spécifier l'algorithme de comparaison utilisé par la transformation pour comparer les
lignes dans l'entrée de transformation. Si vous définissez la propriété Exhaustive comme
ayant la valeur true, la transformation compare chaque ligne de l’entrée à chaque autre
ligne de l’entrée. Cet algorithme de comparaison peut produire des résultats plus précis,
mais il peut ralentir la transformation, sauf si le nombre de lignes dans l'entrée est peu
élevé. Pour éviter les problèmes de performance, il est recommandé de définir la
propriété Exhaustive avec la valeur true seulement au cours du développement du
package.

Tables et index temporaires


Au moment de l’exécution, la transformation de regroupement probable crée des objets
temporaires, par exemple, des tables et des index, parfois de grande taille, dans la base
de données SQL Server à laquelle la transformation se connecte. La taille des tables et
des index est proportionnelle au nombre de lignes dans l'entrée de la transformation et
au nombre de jetons créés par la transformation de regroupement probable.

La transformation exécute également des requêtes sur les tables temporaires. Vous
devez donc connecter la transformation de regroupement probable à une instance de
SQL Server hors production, notamment si le serveur de production a un espace disque
disponible limité.

Les performances de cette transformation peuvent s'améliorer si les tables et les index
qu'elle utilise sont situés sur l'ordinateur local.

Configuration de la transformation de
regroupement probable
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans la boîte de dialogue
Éditeur avancé ou par programmation, cliquez sur l'une des rubriques suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Tâches associées
Pour plus d'informations sur la définition des propriétés de cette tâche, cliquez sur l'une
des rubriques suivantes :

Identifier des lignes de données semblables à l'aide de la transformation de


regroupement probable

Définir les propriétés d’un composant de flux de données


Éditeur de transformation de regroupement
probable (onglet Gestionnaire de connexions)
Utilisez l'onglet Gestionnaire de connexions de la boîte de dialogue Éditeur de
transformation de regroupement probable pour sélectionner une connexion existante
ou en créer une.

7 Notes

Le serveur spécifié par la connexion doit exécuter SQL Server. La transformation de


regroupement probable crée des objets de données temporaires dans tempdb qui
peuvent être aussi volumineux que l’ensemble de l’entrée de la transformation. Au
cours de son exécution, la transformation envoie des requêtes serveur par rapport
aux objets temporaires, ce qui peut affecter les performances générales du serveur.

Options
Gestionnaire de connexions OLE DB
Sélectionnez une connexion OLE DB existante en utilisant la zone de liste, ou créez une
connexion en utilisant le bouton Nouvelle .

Nouveau
Crée une connexion en utilisant la boîte de dialogue Configurer le gestionnaire de
connexions OLE DB .

Éditeur de transformation de regroupement


approximatif (onglet Colonnes)
L'onglet Colonnes de la boîte de dialogue Éditeur de transformation de regroupement
approximatif permet de spécifier les colonnes utilisées pour regrouper les lignes
comportant des doublons.

Options
Colonnes d'entrée disponibles
Sélectionnez dans cette liste les colonnes d'entrée utilisées pour regrouper les lignes
comportant des doublons.
Nom
Permet d'afficher le nom des colonnes d'entrée disponibles.

Transfert direct
Permet d'indiquer s'il est nécessaire d'inclure la colonne d'entrée dans la sortie de la
transformation. Toutes les colonnes utilisées pour le regroupement sont
automatiquement copiées dans la sortie. Vous pouvez inclure des colonnes
supplémentaires en activant cette colonne.

Colonne d'entrée
Choisissez l’une des colonnes d’entrée précédemment sélectionnées dans la liste
Colonnes d’entrée disponibles .

Alias de sortie
Entrez un nom descriptif pour la colonne de sortie correspondante. Par défaut, cette
colonne porte le même nom que la colonne d'entrée.

Grouper les alias de sortie


Entrez un nom descriptif pour la colonne qui va contenir la valeur canonique des
doublons groupés. Par défaut, cette colonne de sortie porte le nom de la colonne
d'entrée suivi de la mention « _clean ».

Type de correspondance
Sélectionnez la correspondance floue ou exacte. Avec une correspondance
approximative, les lignes sont considérées comme des doublons si elles sont
suffisamment similaires dans toutes les colonnes. Si vous spécifiez une correspondance
exacte pour certaines colonnes, seules les lignes contenant des valeurs identiques dans
les colonnes associées à une correspondance exacte seront considérées comme des
doublons probables. Par conséquent, si vous savez qu'une colonne ne contient aucune
erreur ni incohérence, vous pouvez opter pour la correspondance exacte sur cette
colonne afin d'accroître la précision de la correspondance approximative sur d'autres
colonnes.

Similarité minimale
Définissez, à l'aide du curseur, le seuil de similarité au niveau de la jointure. Plus la valeur
est proche de 1, plus la valeur de recherche doit être proche de la valeur source pour
constituer une correspondance. Si vous augmentez le seuil, vous pouvez améliorer la
vitesse de correspondance étant donné qu'un plus petit nombre d'enregistrements
candidats doit être pris en compte.

Alias de sortie de similarité


Spécifiez le nom d'une nouvelle colonne de sortie qui contient le score de similarité de
la jointure sélectionnée. Si vous ne définissez pas cette valeur, la colonne de sortie n'est
pas créée.

Chiffres
Spécifiez l'importance des premiers et derniers chiffres en comparant les données de la
colonne. Par exemple, si les premiers chiffres sont significatifs, « 123 Main Street » ne
sera pas groupé avec « 456 Main Street ».

Value Description

Aucun Les premiers et derniers chiffres ne sont pas significatifs.

Premiers Seuls les premiers chiffres sont significatifs.

Derniers Seuls les derniers chiffres sont significatifs.

LeadingAndTrailing Les premiers et derniers chiffres sont significatifs.

Indicateurs de comparaison
Pour plus d’informations sur les options de comparaison de chaînes, consultez
Comparaison des données chaînes.

Éditeur de transformation de regroupement


probable (onglet Avancé).
Utilisez l'onglet Avancé de la boîte de dialogue Éditeur de transformation de
regroupement probable pour spécifier les colonnes d'entrée et de sortie, définir des
seuils de similarité et des séparateurs.

7 Notes

Les propriétés Exhaustive et MaxMemoryUsage de la transformation de


regroupement approximatif ne sont pas disponibles dans l' Éditeur de
transformation de regroupement approximatif, mais elles peuvent être définies à
l'aide de l' Éditeur avancé. Pour plus d'informations sur ces propriétés, consultez la
section Transformation de regroupement approximatif dans Transformation
Custom Properties.

Options
Nom de la colonne clé d'entrée
Spécifiez le nom d'une colonne de sortie qui contient l'identificateur unique de chaque
ligne d'entée. La colonne _key_in a une valeur qui identifie chaque ligne de manière
unique.

Nom de la colonne clé de sortie


Spécifiez le nom d'une colonne de sortie qui contient l'identificateur unique de la ligne
canonique d'un groupe de lignes dupliquées. La colonne _key_out correspond à la
valeur _key_in de la ligne de données canonique.

Nom de colonne du score de similarité


Spécifiez un nom qui contient le score de similarité. Le score de similarité est une valeur
comprise entre 0 et 1 qui indique le niveau de similarité avec la ligne canonique. Plus le
score se rapproche de 1, plus la ligne correspond à la ligne canonique.

Seuil de similarité
Définissez le seuil de similarité au moyen du curseur. Plus le seuil est proche de 1, plus la
similarité entre les lignes est grande pour se qualifier comme lignes dupliquées.
L'augmentation du seuil peut accélérer les recherches du fait que moins de candidats
doivent être évalués.

Séparateurs de jetons
La transformation fournit un ensemble de séparateurs par défaut pour marquer des
données, mais vous devez ajouter ou supprimer des séparateurs en modifiant la liste en
fonction des besoins.

Voir aussi
Transformation de recherche floue
Transformations Integration Services
Identifier des lignes de données
similaires avec la transformation de
regroupement probable
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour ajouter et configurer une transformation de regroupement probable, le package


doit déjà inclure au moins une tâche de flux de données et une source.

Pour implémenter une transformation de regroupement


probable dans un flux de données
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Flux de données puis, à partir de la Boîte à outils, faites glisser
la transformation de regroupement probable sur la surface de dessin.

4. Connectez la transformation de regroupement probable au flux de données en


faisant glisser le connecteur à partir de la source de données ou d'une
transformation précédente vers la transformation de regroupement probable.

5. Double-cliquez sur la transformation de regroupement probable.

6. Dans la boîte de dialogue Éditeur de transformation de regroupement probable ,


sous l’onglet Gestionnaire de connexions , sélectionnez un gestionnaire de
connexions OLE DB qui établit une connexion à une base de données SQL Server .

7 Notes

La transformation requiert une connexion à une base de données SQL Server


pour permettre la création de tables et d’index temporaires.

7. Cliquez sur l’onglet Colonnes et, dans la liste Colonnes d’entrée disponibles ,
cochez la case des colonnes d’entrée à utiliser pour identifier des lignes
semblables dans le dataset.
8. Cochez la case dans la colonne Transfert direct pour identifier les colonnes
d’entrée comme devant être transférées directement vers la sortie de
transformation. Les colonnes à transfert direct ne sont pas incluses dans le
processus d'identification des lignes dupliquées.

7 Notes

Les colonnes d'entrée utilisées pour le regroupement sont sélectionnées


automatiquement comme colonnes à transfert direct et elles ne peuvent pas
être désélectionnées tant qu'elles sont utilisées pour le regroupement.

9. Mettez éventuellement à jour les noms des colonnes de sortie dans la colonne
Alias de sortie .

10. Vous pouvez également mettre à jour les noms des colonnes nettoyées dans la
colonne Alias de sortie de groupe .

7 Notes

Les noms par défaut des colonnes sont les noms des colonnes d'entrée avec
un suffixe « _clean ».

11. Mettez éventuellement à jour le type de correspondance à utiliser dans la colonne


Type de correspondance .

7 Notes

Au moins une colonne doit utiliser la correspondance approximative.

12. Spécifiez les colonnes de niveau de similarité minimale dans la colonne Similarité
minimale . Elle doit être comprise entre 0 et 1. Plus la valeur est proche de 1, plus
les valeurs des colonnes d'entrée doivent être similaires pour former un groupe.
Une similarité minimale de 1 indique une correspondance exacte.

13. Mettez éventuellement à jour les noms des colonnes de similarité dans la colonne
Alias de sortie de similarité .

14. Pour spécifier la gestion des nombres dans les valeurs de données, mettez à jour
les valeurs dans la colonne Chiffres .
15. Pour spécifier la manière dont la transformation compare les données de chaîne
dans une colonne, modifiez la sélection par défaut des options de comparaison
dans la colonne Indicateurs de comparaison .

16. Cliquez sur l’onglet Avancé pour modifier les noms des colonnes que la
transformation ajoute à la sortie pour l’identificateur de ligne unique (_key_in),
l’identificateur de ligne dupliquée (_key_out) et la valeur de similarité (_score).

17. Ajustez éventuellement le seuil de similarité en déplaçant le curseur.

18. Désactivez éventuellement les cases à cocher de séparateurs de jetons pour


ignorer les séparateurs dans les données.

19. Cliquez sur OK.

20. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Transformation de regroupement approximatif
Transformations Integration Services
Chemins Integration Services
tâche de flux de données
transformation de recherche floue
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de recherche floue effectue des tâches de nettoyage des données


telles que la standardisation des données, la correction des données et la fourniture de
données manquantes.

7 Notes

Pour plus d’informations sur la transformation de recherche floue, y compris les


limitations en termes de performances et de mémoire, consultez le livre blanc,
Présentation des transformations Fuzzy Lookup (recherche approximative) et
Fuzzy Grouping (regroupement approximatif) dans les services DTS (Data
Transformation Services) de SQL Server 2005.

La transformation de recherche floue diffère de la transformation de recherche par son


utilisation de la correspondance approximative. La transformation de recherche utilise
une équijointure pour localiser les enregistrements équivalents dans la table de
référence. Elle retourne les enregistrements avec au moins un enregistrement
correspondant et les enregistrements sans enregistrements correspondants. Par contre,
la transformation de recherche floue utilise la correspondance floue pour renvoyer un
ou plusieurs résultats dont la correspondance est proche dans la table de référence.

Une transformation de recherche floue suit souvent une transformation de recherche


dans le flux de données d'un package. D'abord, la transformation de recherche tente de
trouver une correspondance exacte. Si elle échoue, la transformation de recherche floue
fournit des correspondances proches dans la table de référence.

La transformation doit accéder à la source de données de référence contenant les


valeurs utilisées pour nettoyer et étendre les données d'entrée. La source de données de
référence doit être une table d’une base de données SQL Server . La correspondance
entre la valeur dans une colonne d'entrée et la valeur dans la table de référence doit
être une correspondance exacte ou approximative. Cependant, la transformation
nécessite au moins une correspondance de colonne pour être configurée en
correspondance floue. Si vous ne souhaitez utiliser que la correspondance exacte,
utilisez plutôt la transformation de recherche.

Cette transformation a une entrée et une sortie.


Seules les colonnes d’entrée avec les types de données DT_WSTR et DT_STR peuvent
être utilisées dans la correspondance approximative. La correspondance exacte peut
être appliquée aux colonnes de n’importe quel type de données, à l’exception des types
DT_TEXT, DT_NTEXTet DT_IMAGE. Pour plus d’informations, consultez Types de
données Integration Services. Les colonnes participant à la jointure entre l'entrée et la
table de référence doivent avoir des types de données compatibles. Par exemple, il est
valide d’effectuer une jointure entre une colonne ayant le type de données DTS
DT_WSTR et une colonne ayant le type de données SQL Server nvarchar, mais pas
d’effectuer une jointure entre une colonne ayant le type de données DT_WSTR et une
colonne ayant le type de données int.

Vous pouvez personnaliser cette transformation en spécifiant le volume maximum de


mémoire, l'algorithme de comparaison de lignes et la mise en cache d'index et de tables
de référence utilisés par la transformation.

Vous pouvez configurer la quantité de mémoire utilisée par la transformation de


recherche floue en définissant la propriété personnalisée MaxMemoryUsage. Vous
pouvez spécifier le nombre de mégaoctets (Mo) ou utiliser la valeur 0, ce qui permet à la
transformation d'utiliser une quantité de mémoire dynamique basée sur ses besoins et
sur la mémoire physique disponible. La propriété personnalisée MaxMemoryUsage peut
être mise à jour par une expression de la propriété au moment du chargement du
package. Pour plus d’informations, consultez Expressions Integration Services (SSIS),
Utiliser des expressions de propriété dans des packages et Propriétés personnalisées des
transformations.

Contrôle du comportement de la
correspondance floue
La transformation de recherche floue comprend trois fonctionnalités de personnalisation
de la recherche qu'elle effectue : le nombre maximum de correspondances à retourner
par ligne d'entrée, les séparateurs de jetons et les seuils de similarité.

La transformation renvoie zéro ou plusieurs correspondances, jusqu'au nombre de


correspondances spécifiées. La spécification du nombre maximal de correspondances ne
garantit pas que la transformation renvoie le nombre maximal de correspondances. Elle
garantit uniquement que la transformation renvoie un nombre inférieur ou égal de
correspondances. Si vous définissez le nombre maximal de correspondances à une
valeur supérieure à 1, la sortie de la transformation peut inclure plusieurs lignes par
recherche et certaines des lignes peuvent être des doublons.
La transformation fournit un ensemble par défaut de délimiteurs utilisés pour marquer
les données, mais vous pouvez ajouter des délimiteurs de jetons pour répondre aux
besoins de vos données. La propriété Delimiters contient les délimiteurs par défaut. La
création de jetons est importante car elle définit les unités qui sont comparées entre
elles au sein des données.

Les seuils de similarité peuvent être définis au niveau du composant et de la jointure. La


similarité au niveau de la jointure n'est disponible que lorsque la transformation effectue
une correspondance floue entre des colonnes dans l'entrée et la table de référence. La
plage de similarité va de 0 à 1. Plus le seuil s'approche de 1, plus les lignes et les
colonnes doivent être similaires pour être répertoriées comme doublons. Vous spécifiez
le seuil de similarité en définissant la propriété MinSimilarity au niveau du composant et
de la jointure. Pour obtenir la similarité spécifiée au niveau du composant, toutes les
lignes doivent montrer une similarité à travers toutes les correspondances, qui soit
supérieure ou égale au seuil de similarité spécifié au niveau du composant. En d'autres
termes, vous ne pouvez pas spécifier une correspondance très proche au niveau du
composant à moins que les correspondances au niveau de la ligne et de la jointure ne
soient également proches.

Chaque correspondance comprend un score de similarité et un score de confiance. Le


score de similarité est une mesure mathématique de la similarité de texture entre
l'enregistrement d'entrée et l'enregistrement que la transformation de recherche floue
renvoie de la table de référence. Le score de confiance est une mesure de la probabilité
qu'une valeur particulière soit la meilleure correspondance parmi les correspondances
trouvées dans la table de référence. Le score de confiance affecté à un enregistrement
dépend des autres enregistrements correspondants renvoyés. Par exemple, la
correspondance entre St. et Saint renvoie un faible score de similarité indépendamment
des autres correspondances. Si Saint est la seule correspondance renvoyée, le score de
confiance est élevé. Si Saint et St. apparaissent tous les deux dans la table de référence,
la confiance est élevée pour St. et faible pour Saint . Cependant, une similarité élevée ne
signifie pas forcément une confiance élevée. Par exemple, si vous cherchez la valeur
Chapitre 4, les résultats renvoyés Chapitre 1, Chapitre 2et Chapitre 3 possèdent un score
de similarité élevé mais un score de confiance faible, car aucun des résultats ne se
dégage clairement comme étant la meilleure correspondance.

Le score de similarité est représenté par une valeur décimale entre 0 et 1, où la valeur 1
signifie que la correspondance entre la valeur dans la colonne d'entrée et la valeur dans
la table de référence est exacte. Le score de confiance, qui est également une valeur
décimale entre 0 et 1, indique la confiance par rapport à la correspondance. Si aucune
correspondance utilisable n'est trouvée, des scores de similarité et de confiance de 0
sont affectés à la ligne, et les colonnes de sortie copiées à partir de la table de référence
contiendront des valeurs NULL.
Parfois, la transformation de recherche floue peut ne pas localiser de correspondances
appropriées dans la table de référence. Cela peut être le cas si la valeur d'entrée utilisée
dans une recherche est un mot seul et court. Par exemple, helo n’est pas mis en
correspondance avec hello dans une table de référence quand aucun autre jeton n’est
présent dans cette colonne ni dans aucune autre colonne de la ligne.

Les colonnes de sortie de transformation comprennent les colonnes d'entrée marquées


comme colonnes SQL directes, les colonnes sélectionnées dans la table de recherche et
les colonnes supplémentaires suivantes :

_Similarity, une colonne décrivant la similarité entre des valeurs des colonnes
d’entrée et de référence.

_Confidence, une colonne décrivant la qualité de la correspondance.

La transformation utilise la connexion à la base de données SQL Server pour créer les
tables temporaires utilisées par l'algorithme de correspondance approximative.

Exécution de la transformation de recherche


floue
Lorsque le package exécute la transformation pour la première fois, la transformation
copie la table de référence, ajoute une clé avec un type de données entier à la nouvelle
table et génère un index sur la colonne clé. Ensuite, la transformation génère un index
appelé index de correspondances sur la copie de la table de référence. L'index de
correspondances stocke les résultats de la création de jetons pour les valeurs dans les
colonnes d'entrée de la transformation. La transformation utilise ensuite les jetons dans
l'opération de recherche. L’index de correspondances est une table dans une base de
données SQL Server .

Lorsque le package est exécuté de nouveau, la transformation peut utiliser un index de


correspondances existant ou en créer un nouveau. Si la table de référence est statique,
le package peut éviter le processus éventuellement coûteux de recréation de l'index
pour des sessions répétées de nettoyage des données. Si vous choisissez d'utiliser un
index existant, celui-ci est créé lors de la première exécution du package. Si les
transformations de recherche floue utilisent la même table de référence, elles peuvent
toutes utiliser le même index. Pour réutiliser l'index, les opérations de recherche doivent
être identiques ; la recherche doit utiliser les mêmes colonnes. Vous pouvez nommer
l’index et sélectionner la connexion à la base de données SQL Server pour enregistrer
l’index.
Si la transformation enregistre l'index de correspondances, il peut être géré
automatiquement. Cela signifie que chaque fois qu'un enregistrement dans la table de
référence est mis à jour, l'index de correspondances est également mis à jour. La gestion
de l'index de correspondances peut réduire le temps de traitement, car l'index ne doit
pas être recréé à chaque exécution du package. Vous pouvez spécifier comment la
transformation gère l'index de correspondances.

Le tableau suivant décrit les options de l'index de correspondances.

Option Description

GenerateAndMaintainNewIndex Créer un nouvel index, l'enregistrer et le gérer. La


transformation installe des déclencheurs dans la table de
référence pour garder la table de référence et la table d'index
synchronisées.

GenerateAndPersistNewIndex Créer un nouvel index et l'enregistrer, sans le gérer.

GenerateNewIndex Créer un nouvel index, sans l'enregistrer.

ReuseExistingIndex Réutiliser un index existant.

Maintenance de la table d'index de correspondances


L’option GenerateAndMaintainNewIndex installe des déclencheurs dans la table de
référence pour garder la table de référence et la table d’index synchronisées. Si vous
devez supprimer le déclencheur installé, vous devez exécuter la procédure stockée
sp_FuzzyLookupTableMaintenanceUnInstall et fournir le nom spécifié dans la propriété
MatchIndexName comme valeur de paramètre d’entrée.

Vous ne devez pas supprimer la table d’index de correspondances gérée avant


d’exécuter la procédure stockée sp_FuzzyLookupTableMaintenanceUnInstall . Si la table
d'index de correspondances est supprimée, les déclencheurs de la table de référence ne
seront pas exécutés correctement. Toutes les mises à jour suivantes de la table de
référence échoueront tant que vous ne supprimerez pas les déclencheurs dans la table
de référence.

La commande SQL TRUNCATE TABLE n'appelle pas de déclencheurs DELETE. Si la


commande TRUNCATE TABLE est utilisée sur la table de référence, celle-ci ne sera plus
synchronisée avec l'index de correspondances et la transformation de recherche floue
échouera. Lorsque les déclencheurs qui gèrent la table d'index de correspondances sont
installés sur la table de référence, vous devez utiliser la commande SQL DELETE au lieu
de TRUNCATE TABLE.
7 Notes

Lorsque vous sélectionnez Conserver l’index stocké sous l’onglet Table de


référence de l’Éditeur de transformation de recherche floue, la transformation
utilise des procédures stockées managées pour maintenir l’index. Ces procédures
stockées managées utilisent la fonctionnalité de l’intégration du common language
runtime (CLR) dans SQL Server. Par défaut, l'intégration CLR dans SQL Server est
désactivée. Pour utiliser la fonctionnalité Conserver l’index stocké , vous devez
activer l’intégration du CLR. Pour plus d’informations, consultez Activation de
l’intégration du CLR.

Dans la mesure où l’option Conserver l’index stocké requiert l’intégration du CLR,


cette fonctionnalité n’est effective que lorsque vous sélectionnez une table de
référence dans une instance de SQL Server pour laquelle l’intégration du CLR est
activée.

Comparaison de lignes
Lorsque vous configurez la transformation de configuration floue, vous pouvez spécifier
l'algorithme de comparaison utilisé par la transformation pour rechercher les
enregistrements correspondants dans la table de référence. Si vous définissez la
propriété Exhaustive comme ayant la valeur True, la transformation compare chaque
ligne de l’entrée à chaque ligne de la table de référence. Cet algorithme de comparaison
peut produire des résultats plus précis, mais peut ralentir la transformation, sauf si le
nombre de lignes dans la table de référence est faible. Si la propriété Exhaustive a pour
valeur True, toute la table de référence est chargée dans la mémoire. Pour éviter les
problèmes de performance, il est recommandé de définir la propriété Exhaustive avec la
valeur True seulement au cours du développement du package.

Si la propriété Exhaustive a pour valeur False, la transformation de recherche floue


renvoie uniquement les correspondances ayant au moins un jeton indexé ou une sous-
chaîne (la sous-chaîne est appelée un q-gram) en commun avec l’enregistrement
d’entrée. Pour améliorer l'efficacité des recherches, seul un sous-ensemble des jetons de
chaque ligne de la table est indexé dans la structure d'index inversée dont se sert la
transformation de recherche floue pour rechercher les correspondances. Lorsque le
dataset d’entrée est petit, vous pouvez affecter à Exhaustive la valeur True afin d’éviter
les correspondances manquantes pour lesquelles il n’existe aucun jeton commun dans la
table d’index.
Mise en cache des index et tables de référence
Lorsque vous configurez la transformation de recherche floue, vous pouvez spécifier si la
transformation met partiellement en cache l'index et la table de référence dans la
mémoire avant que la transformation soit exécutée. Si vous définissez la propriété
WarmCaches avec la valeur True, l’index et la table de référence sont chargés dans la
mémoire. Lorsque l’entrée a de nombreuses lignes, la définition de la propriété
WarmCaches avec la valeur True peut améliorer les performances de la transformation.
Lorsque le nombre de lignes d’entrée est faible, la définition de la propriété
WarmCaches avec la valeur False peut accélérer la réutilisation d’un index de grande
taille.

Tables et index temporaires


Lors de l'exécution, la transformation de recherche floue crée des objets temporaires
tels que des tables et des index, dans la base de données SQL Server à laquelle la
transformation se connecte. La taille de ces tables et index temporaires est
proportionnelle au nombre de lignes et de jetons dans la table de référence et au
nombre de jetons que la transformation de recherche floue crée ; ils peuvent donc
occuper un volume important de l'espace disque. La transformation exécute également
des requêtes sur ces tables temporaires. Vous devez donc envisager de connecter la
transformation de recherche floue à une instance d’une base de données SQL Server qui
ne soit pas en production, notamment si le serveur de production dispose d’un espace
disque disponible limité.

Les performances de cette transformation peuvent s'améliorer si les tables et les index
qu'elle utilise sont situés sur l'ordinateur local. Si la table de référence que la
transformation de recherche floue utilise se trouve sur le serveur de production, vous
devez envisager de copier la table sur un serveur qui ne soit pas un serveur production
et de configurer la transformation de recherche floue pour accéder à la copie. Ce faisant,
vous pouvez empêcher les requêtes de recherche de consommer des ressources sur le
serveur de production. En outre, si la transformation de recherche floue gère l’index de
correspondances (c’est-à-dire si MatchIndexOptionsis a pour valeur
GenerateAndMaintainNewIndex), la transformation peut verrouiller la table de
référence durant l’opération de nettoyage des données et empêcher les autres
utilisateurs et applications d’accéder à la table.

Configuration de la transformation de
recherche floue
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans la boîte de dialogue
Éditeur avancé ou par programmation, cliquez sur l'une des rubriques suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Tâches associées
Pour plus d’informations sur la définition des propriétés d’un composant de flux de
données, consultez Définir les propriétés d’un composant de flux de données.

Éditeur de transformation de recherche floue


(onglet Table de référence)
Utilisez l’onglet Table de référence de la boîte de dialogue Éditeur de transformation
de recherche floue pour définir la table source et l’index à utiliser pour la recherche. La
source de données de référence doit être une table d’une base de données SQL Server .

7 Notes

La transformation de recherche floue crée une copie de travail de la table de


référence. Les index décrits ci-dessous sont créés dans cette table de travail en
utilisant une table spéciale et non un index SQL Server standard. La transformation
ne modifie pas les tables sources existantes si vous ne sélectionnez pas Conserver
l’index stocké. Dans ce cas, elle crée un déclencheur dans la table de référence qui
met à jour la table de travail et la table d'index de recherche en fonction des
modifications apportées à la table de référence.

7 Notes

Les propriétés Exhaustive et MaxMemoryUsage de la transformation de recherche


floue ne sont pas disponibles dans l’Éditeur de transformation de recherche floue,
mais elles peuvent être définies à l’aide de l’Éditeur avancé. De plus, une valeur
supérieure à 100 pour MaxOutputMatchesPerInput peut uniquement être spécifiée
dans l’Éditeur avancé. Pour plus d’informations sur ces propriétés, consultez la
section Transformation de recherche floue dans Propriétés personnalisées des
transformations.

Options
Gestionnaire de connexions OLE DB
Sélectionnez un gestionnaire de connexions OLE DB existant dans la liste ou créez une
connexion en cliquant sur Nouveau.

Nouveau
Crée une connexion en utilisant la boîte de dialogue Configurer le gestionnaire de
connexions OLE DB .

Créer un nouvel index


Indiquez que la transformation doit créer un nouvel index à utiliser pour la recherche.

Nom de la table de référence


Sélectionnez la table existante à utiliser comme table de référence (recherche).

Stocker un nouvel index


Sélectionnez cette option pour enregistrer le nouvel index de recherche.

Nom du nouvel index


Si vous avez décidé d'enregistrer le nouvel index de recherche, tapez un nom descriptif.

Conserver l’index stocké


Si vous avez décidé d'enregistrer le nouvel index de recherche, indiquez si vous voulez
également que SQL Server conserve l'index.

7 Notes

Lorsque vous sélectionnez Conserver l’index stocké sous l’onglet Table de


référence de l’Éditeur de transformation de recherche floue, la transformation
utilise des procédures stockées managées pour maintenir l’index. Ces procédures
stockées managées utilisent la fonctionnalité de l’intégration du common language
runtime (CLR) dans SQL Server. Par défaut, l'intégration CLR dans SQL Server est
désactivée. Pour utiliser la fonctionnalité Conserver l’index stocké , vous devez
activer l’intégration du CLR. Pour plus d’informations, consultez Activation de
l’intégration du CLR.

Dans la mesure où l’option Conserver l’index stocké requiert l’intégration du CLR,


cette fonctionnalité n’est effective que lorsque vous sélectionnez une table de
référence dans une instance de SQL Server pour laquelle l’intégration du CLR est
activée.

Utiliser l'index existant


Indiquez que la transformation doit utiliser un index de recherche existant.

Nom d'un index existant


Dans la liste, sélectionnez un index de recherche existant.

Éditeur de transformation de recherche floue


(onglet Colonnes)
L'onglet Colonnes de la boîte de dialogue Éditeur de transformation de recherche
floue vous permet de définir les propriétés des colonnes d'entrée et de sortie.

Options
Colonnes d'entrée disponibles
Faites glisser les colonnes d'entrée sur les colonnes de recherche afin de les y connecter.
Ces colonnes doivent avoir le même type de données pris en charge. Sélectionnez une
ligne de mappage et cliquez avec le bouton droit pour modifier les mappages dans la
boîte de dialogue Créer des relations .

Nom
Permet d'afficher les noms des colonnes d'entrée disponibles.

Transfert direct
Permet d'indiquer s'il convient d'inclure les colonnes d'entrée dans la sortie de la
transformation.

Colonnes de recherche disponibles


Ces cases à cocher vous permettent de choisir les colonnes sur lesquelles les opérations
de recherche floue doivent porter.

colonne de recherche
Permet de choisir les colonnes de recherche floue dans la liste des colonnes disponibles
de la table de référence. Vos sélections se reflètent dans les sélections des cases à
cocher tirées de la table Colonnes de recherche disponibles . En sélectionnant une
colonne dans la table Colonnes de recherche disponibles , vous créez ainsi une colonne
de sortie contenant la valeur de la colonne issue de la table de référence de chaque
ligne retournée y correspondant.
Alias de sortie
Permet de saisir un alias pour la sortie de chaque colonne de recherche. La valeur par
défaut correspond au nom de la colonne de recherche suivi d'une valeur d'index
numérique. Vous pouvez cependant choisir tout autre nom descriptif s'il reste unique.

Éditeur de transformation de recherche floue


(onglet Avancé)
Utilisez l’onglet Avancé de la boîte de dialogue Éditeur de transformation de recherche
floue pour définir les paramètres relatifs à une recherche floue.

Options
Correspondances maximales à afficher par recherche
Indiquez le nombre maximal de correspondances que la transformation peut retourner
pour chaque ligne d'entrée. La valeur par défaut est 1.

Seuil de similarité
Définissez le seuil de similarité au niveau du composant à l'aide du curseur. Plus la
valeur est proche de 1, plus la valeur de recherche doit être proche de la valeur source
pour constituer une correspondance. Si vous augmentez le seuil, vous pouvez améliorer
la vitesse de correspondance étant donné qu'un plus petit nombre d'enregistrements
candidats doit être pris en compte.

Séparateurs de jetons
Indiquez les séparateurs utilisés par la transformation pour marquer les valeurs de
colonne.

Voir aussi
Transformation de recherche
Transformation de regroupement approximatif
Transformations Integration Services
Transformation d'importation de
colonne
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation d'importation de colonne lit des données dans des fichiers puis les
ajoute à des colonnes dans un flux de données. Grâce à cette transformation, un
package peut ajouter à un flux de données du texte et des images stockés dans des
fichiers distincts. Par exemple, un flux de données qui charge des données dans une
table stockant des informations sur des produits peut inclure la transformation
d'importation de colonne pour importer depuis des fichiers les commentaires des clients
sur chaque produit, puis ajouter ces commentaires au flux de données.

Vous pouvez configurer la transformation d'importation de colonne comme suit :

Spécifiez les colonnes auxquelles la transformation ajoute des données.

Indiquez si la transformation attend une marque d'ordre d'octet (BOM, Byte-Order


Mark).

7 Notes

Une marque d'ordre d'octet n'est attendue que si les données sont du type de
données DT_NTEXT.

Une colonne de l'entrée de transformation contient les noms des fichiers dans lesquels
les données sont stockées. Chaque ligne de l'ensemble de données peut spécifier un
fichier différent. Lorsque la transformation d'importation de colonne traite une ligne,
elle lit le nom de fichier, ouvre le fichier correspondant dans le système de fichiers et
charge le contenu du fichier dans une colonne de sortie. Le type de données de la
colonne de sortie doit être DT_TEXT, DT_NTEXT ou DT_IMAGE. Pour plus d’informations,
consultez Types de données Integration Services.

Cette transformation a une entrée, une sortie et une sortie d'erreur.

Configuration de la transformation
d’importation de colonne
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Tâches associées
Pour plus d’informations sur la définition des propriétés de ce composant, consultez
Définir les propriétés d’un composant de flux de données.

Voir aussi
Transformation d'exportation de colonne
Flux de données
Transformations Integration Services
Transformation de recherche
Article • 19/11/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de recherche effectue des recherches en joignant des données de


colonnes d'entrée à des colonnes d'un dataset de référence. Vous utilisez la recherche
pour accéder à des informations supplémentaires dans une table associée se basant sur
des valeurs dans des colonnes communes.

Le dataset de référence peut être un fichier cache, une table ou une vue existante, une
nouvelle table ou le résultat d'une requête SQL. La transformation de recherche utilise
un gestionnaire de connexions OLE DB ou un gestionnaire de connexions du cache pour
se connecter au dataset de référence. Pour plus d’informations, consultez Gestionnaire
de connexions OLE DB et Gestionnaire de connexions du cache

Vous pouvez configurer la transformation de recherche comme suit :

Sélectionnez le gestionnaire de connexions que vous souhaitez utiliser. Si vous


souhaitez vous connecter à une base de données, sélectionnez un gestionnaire de
connexions OLE DB. Si vous souhaitez vous connecter à un fichier cache,
sélectionnez un gestionnaire de connexions du cache.

Spécifiez la table ou la vue qui contient le dataset de référence.

Générez un dataset de référence en spécifiant une instruction SQL.

Définissez des jointures entre l'entrée et le dataset de référence.

Ajoutez des colonnes du dataset de référence à la sortie de la transformation de


recherche.

Configurez les options de mise en cache.

La transformation de recherche prend en charge les fournisseurs de bases de données


suivants pour le gestionnaire de connexions OLE DB :

SQL Server

Oracle

DB2

La transformation de recherche essaie de réaliser une équijointure entre les valeurs de


l'entrée de transformation et celles du dataset de référence. (Une équijointure signifie
que chaque ligne de l'entrée de transformation doit correspondre à au moins une ligne
du dataset de référence.) Si une équijointure n'est pas possible, la transformation de
recherche effectue l'une des actions suivantes :

En l'absence d'entrée correspondante dans le dataset de référence, aucune jointure


n'est réalisée. Par défaut, la transformation de recherche traite les lignes sans
entrées correspondantes comme des erreurs. Toutefois, vous pouvez configurer la
transformation de recherche pour rediriger ces lignes vers une sortie sans
correspondance.

En présence de plusieurs correspondances dans la table de référence, la


transformation de recherche retourne uniquement la première correspondance
retournée par la requête de recherche. Si plusieurs correspondances sont trouvées,
la transformation de recherche génère une erreur ou un avertissement uniquement
lorsque la transformation a été configurée pour charger tout le dataset de
référence dans le cache. Dans ce cas, la transformation de recherche génère un
avertissement lorsque la transformation détecte plusieurs correspondances au
moment où la transformation remplit le cache.

La jointure peut être une jointure composite, auquel cas vous pouvez joindre plusieurs
colonnes de l'entrée de transformation à des colonnes du dataset de référence. La
transformation prend en charge les colonnes de jointure de n'importe quel type de
données, à l'exception des types DT_R4, DT_R8, DT_TEXT, DT_NTEXT ou DT_IMAGE. Pour
plus d’informations, consultez Types de données Integration Services.

En règle générale, les valeurs du dataset de référence sont ajoutées à la sortie de la


transformation. Par exemple, la transformation de recherche peut extraire un nom de
produit d'une table à l'aide d'une valeur d'une colonne d'entrée, puis l'ajouter à la sortie
de la transformation. Les valeurs de la table de référence peuvent remplacer des valeurs
de colonne ou être ajoutées à de nouvelles colonnes.

Les recherches effectuées par la transformation de recherche respectent la casse. Pour


éviter les échecs de recherche dus à des différences de casse dans les données, utilisez
tout d'abord la transformation de la table des caractères pour convertir les données en
majuscules ou minuscules. Incluez ensuite les fonctions UPPER ou LOWER dans
l'instruction SQL qui génère la table de référence. Pour plus d’informations, consultez
Transformation de la table de caractères, UPPER (Transact-SQL) et LOWER (Transact-
SQL).

La transformation de recherche a les entrées et sorties suivantes :

Entrée.
Sortie avec correspondance. La sortie avec correspondance gère les lignes de
l'entrée de transformation qui correspondent à au moins une entrée du dataset de
référence.

Sortie sans correspondance. La sortie sans correspondance gère les lignes de


l'entrée qui ne correspondent pas au moins à une entrée dans le dataset de
référence. Si vous configurez la transformation de recherche pour traiter les lignes
sans entrées correspondantes comme des erreurs, elles sont redirigées vers la
sortie d'erreur. Sinon, la transformation redirige ces lignes vers la sortie sans
correspondance.

Sortie d'erreur.

Mise en cache du dataset de référence


Un cache en mémoire stocke le dataset de référence et stocke une table de hachage qui
indexe les données. Le cache reste en mémoire tant que l'exécution du package n'est
pas terminée. Vous pouvez rendre le cache persistant dans un fichier cache (.caw).

Lorsque vous rendez le cache persistant dans un fichier, le système le charge plus
rapidement, ce qui améliore les performances de la transformation de recherche et du
package. N'oubliez pas que lorsque vous utilisez un fichier cache, vous travaillez avec
des données qui ne sont pas autant à jour que celles de la base de données.

La persistance du cache dans un fichier présente les autres avantages suivants :

Partagez le fichier de cache entre plusieurs packages. Pour plus d’informations,


consultez Implémenter une transformation de recherche en mode Cache complet
en utilisant le gestionnaire de connexions du cache.

Déployez le fichier cache avec un package. Vous pouvez ensuite utiliser les
données sur plusieurs ordinateurs. Pour plus d’informations, consultez Créer et
déployer un cache pour la transformation de recherche.

Utilisez la source de fichier brut pour lire les données du fichier cache. Vous pouvez
alors utiliser d'autres composants de flux de données pour transformer ou
déplacer les données. Pour plus d’informations, consultez Source de fichier brut.

7 Notes

Le gestionnaire de connexions du cache ne prend pas en charge les fichiers


cache qui sont créés ou modifiés avec la destination de fichier brut.
Effectuez des opérations et définissez des attributs sur le fichier cache en utilisant
la tâche de système de fichiers. Pour plus d’informations, consultez Tâche de
système de fichiers.

Les options de mise en cache sont indiquées ci-dessous :

Le dataset de référence est généré à l'aide d'une table, d'une vue ou d'une requête
SQL et est chargé dans le cache, avant l'exécution de la transformation de
recherche. Vous utilisez le gestionnaire de connexions OLE DB pour accéder au
dataset.

Cette option de mise en cache est compatible avec l’option de mise en cache
complète qui est disponible pour la transformation de recherche dans SQL Server
2005 Integration Services (SSIS).

Le dataset de référence est généré à partir d'une source de données connectée


dans le flux de données ou à partir d'un fichier cache et est chargé dans le cache
avant l'exécution de la transformation de recherche. Vous utilisez le gestionnaire
de connexions du cache et éventuellement la transformation du cache pour
accéder au dataset. Pour plus d’informations, consultez Gestionnaire de
connexions du cache et Transformation du cache.

Le dataset de référence est généré à l'aide d'une table, d'une vue ou d'une requête
SQL pendant l'exécution de la transformation de recherche. Les lignes avec des
entrées correspondantes dans le dataset de référence et celles sans entrées
correspondantes dans le dataset sont chargées dans le cache.

Lorsque la taille de mémoire du cache est dépassée, la transformation de


recherche supprime automatiquement les lignes le moins fréquemment utilisées
du cache.

Cette option de mise en cache est compatible avec l’option de mise en cache
partielle qui est disponible pour la transformation de recherche dans SQL Server
2005 Integration Services (SSIS).

Le dataset de référence est généré à l'aide d'une table, d'une vue ou d'une requête
SQL pendant l'exécution de la transformation de recherche. Aucune donnée n'est
mise en cache.

Cette option de mise en cache est compatible avec l’option sans mise en cache qui
est disponible pour la transformation de recherche dans SQL Server 2005
Integration Services (SSIS).
Integration Services et SQL Server diffèrent par leur manière de comparer les chaînes. Si
la transformation de recherche est configurée pour charger le dataset de référence dans
le cache avant l’exécution de la transformation de recherche, Integration Services
effectue la comparaison de recherche dans le cache. Autrement, l’opération de
recherche utilise une instruction SQL paramétrable et SQL Server effectue la
comparaison de recherche. Cela signifie que la transformation de recherche peut
retourner un nombre différent de correspondances à partir de la même table de
recherche, selon le type de cache.

Tâches associées
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation. Pour plus d'informations, consultez les rubriques suivantes.

Implémenter une recherche en mode Aucun cache ou Cache partiel

Implémenter une transformation de recherche en mode Cache complet à l'aide du


gestionnaire de connexions du cache

Implémenter une transformation de recherche en mode Cache complet à l'aide du


gestionnaire de connexions OLE DB

Définir les propriétés d’un composant de flux de données

Contenu associé
Vidéo, Procédure : implémenter une transformation de recherche en mode Cache
complet, sur msdn.microsoft.com

Billet de blog, Best Practices for Using the Lookup Transformation Cache
Modes (Bonnes pratiques pour l’utilisation des modes de cache de
transformation de recherche), sur blogs.msdn.com

Billet de blog, Lookup Pattern: Case Insensitive (Modèle de recherche : non-


respect de la casse), sur blogs.msdn.com

Éditeur de transformation de recherche (page


Général)
Utilisez la page Général de la boîte de dialogue Éditeur de transformation de recherche
pour sélectionner le mode de cache ainsi que le type de connexion et pour spécifier
comment gérer les lignes sans entrées correspondantes.

Options

7 Notes

La sortie avec correspondance peut varier selon que l’on utilise le mode Cache
complet, Aucun cache ou Cache partiel :

En mode Cache complet, la base de données est interrogée une fois pendant
la phase de pré-exécution du flux de données et l’ensemble complet des
références est extrait en mémoire. Cela signifie que nous allons nous appuyer
sur la règle de correspondance du moteur SSIS sensible à la casse, sensible
aux espaces de fin et sensible à la précision et à l’échelle du moteur SSIS.
Toutefois, quand le mode Aucun cache ou Cache partiel est utilisé, aucune
mise en cache n’est effectuée pendant la phase de pré-exécution. Cela signifie
que nous allons utiliser la règle de correspondance de la base de données
source. Par exemple, si la source est une base de données SQL Server et si le
classement de colonne ne respecte pas la casse, la règle correspondante doit
également être insensible à la casse.

Cache complet
Générez et chargez le dataset de référence dans le cache avant l'exécution de la
transformation de recherche.

Cache partiel
Générez le dataset de référence pendant l'exécution de la transformation de recherche.
Chargez dans le cache les lignes avec des entrées correspondantes dans le dataset de
référence et celles sans entrées correspondantes dans le dataset.

Aucun cache
Générez le dataset de référence pendant l'exécution de la transformation de recherche.
Aucune donnée n'est chargée dans le cache.

Cache connection manager


Configurez la transformation de recherche pour utiliser un gestionnaire de connexions
du cache. Cette option n'est disponible que si l'option Cache complet est sélectionnée.

Gestionnaire de connexions OLE DB


Configurez la transformation de recherche pour utiliser un gestionnaire de connexions
OLE DB.

Spécifier comment gérer les lignes sans entrées correspondantes


Sélectionnez une option pour gérer les lignes qui ne correspondent pas au moins à une
entrée dans le dataset de référence.

Lorsque vous sélectionnez Rediriger les lignes vers la sortie sans correspondance, les
lignes sont redirigées vers une sortie sans correspondance et ne sont pas gérées comme
des erreurs. L'option Erreur figurant dans la page Sortie d'erreur de la boîte de dialogue
Éditeur de transformation de recherche n'est pas disponible.

Lorsque vous sélectionnez une autre option dans la zone de liste Spécifier comment
gérer les lignes sans entrées correspondantes , les lignes sont gérées comme des
erreurs. L'option Erreur de la page Sortie d'erreur est disponible.

Ressources externes
Entrée de blog, Lookup cache modes sur blogs.msdn.com

Éditeur de transformation de recherche (page


Connexion)
Utilisez la page Connexion de la boîte de dialogue Éditeur de transformation de
recherche pour sélectionner un gestionnaire de connexions. Si vous sélectionnez un
gestionnaire de connexions OLE DB, vous sélectionnez également une requête, une
table ou une vue pour générer le dataset de référence.

Options
Les options suivantes sont disponibles quand vous sélectionnez Cache complet et
Gestionnaire de connexions du cache dans la page Général de la boîte de dialogue
Éditeur de transformation de recherche .

Cache connection manager


Sélectionnez un gestionnaire de connexions du cache existant dans la liste ou créez une
connexion en cliquant sur Nouveau.

Nouveau
Créez une connexion à l’aide de la boîte de dialogue Éditeur du gestionnaire de
connexions du cache .
Les options suivantes sont disponibles quand vous sélectionnez Cache complet, Cache
partielou Aucun cacheet Gestionnaire de connexions OLE DBdans la page Général de
la boîte de dialogue Éditeur de transformation de recherche .

Gestionnaire de connexions OLE DB


Sélectionnez un gestionnaire de connexions OLE DB existant dans la liste ou créez une
connexion en cliquant sur Nouveau.

Nouveau
Crée une connexion en utilisant la boîte de dialogue Configurer le gestionnaire de
connexions OLE DB .

Utiliser une table ou une vue


Sélectionnez une table ou une vue existante dans la liste ou créez une table en cliquant
sur Nouveau.

7 Notes

Si vous spécifiez une instruction SQL dans la page Avancé de l’ Éditeur de


transformation de recherche, cette instruction SQL substitue et remplace le nom
de table a sélectionné ici. Pour plus d’informations, consultez Éditeur de
transformation de recherche (Page Avancé).

Nouveau
Utilisez la boîte de dialogue Créer une table pour créer une table.

Utiliser les résultats d'une requête SQL


Choisissez cette option pour rechercher une requête existante, générer une requête,
vérifier la syntaxe d'une requête et afficher un aperçu des résultats d'une requête.

Construire une requête


Créez l’instruction Transact-SQL à exécuter à l’aide du Générateur de requêtes. Cet outil
graphique permet de créer des requêtes en explorant les données.

Parcourir
Permet de rechercher une requête existante enregistrée dans un fichier.

Analyser la requête
Contrôle la syntaxe d'une requête.

Préversion
Affichez un aperçu des résultats à l’aide de la boîte de dialogue Visualiser les résultats
de la requête . Cette option affiche jusqu'à 200 lignes.
Ressources externes
Entrée de blog, Lookup cache modes sur blogs.msdn.com

Éditeur de transformation de recherche (page


Colonnes)
Utilisez la page Colonnes de la boîte de dialogue Éditeur de transformation de
recherche pour définir la jointure entre la table source et la table de référence, ainsi que
pour sélectionner les colonnes de recherche dans la table de référence.

Options
Colonnes d'entrée disponibles
Affichez la liste des colonnes d'entrée disponibles. Les colonnes d'entrée représentent
les colonnes dans le flux de données d'une source connectée. Les colonnes d'entrée et
la colonne de recherche doivent avoir des types de données identiques.

Au moyen d'une opération glisser-déplacer, mappez les colonnes d'entrée disponibles


aux colonnes de recherche.

Vous pouvez également mapper les colonnes d'entrée aux colonnes de recherche à
l'aide du clavier. Pour ce faire, mettez en surbrillance une colonne dans la table
Colonnes d'entrée disponibles , appuyez sur la touche de l'application, puis cliquez sur
Modifier les mappages.

Colonnes de recherche disponibles


Affichez la liste des colonnes de recherche. Les colonnes de recherche représentent les
colonnes de la table de référence dans lesquelles vous souhaitez rechercher des valeurs
qui correspondent aux colonnes d'entrée.

Au moyen d'une opération glisser-déplacer, mappez les colonnes de recherche


disponibles aux colonnes d'entrée.

Utilisez les cases à cocher pour sélectionner les colonnes de recherche de la table de
référence sur lesquelles effectuer les opérations de recherche.

Vous pouvez également mapper les colonnes de recherche aux colonnes d'entrée à
l'aide du clavier. Pour ce faire, mettez en surbrillance une colonne dans la table
Colonnes de recherche disponibles , appuyez sur la touche de l'application, puis cliquez
sur Modifier les mappages.
colonne de recherche
Affichez les colonnes de recherche sélectionnées. Les sélections se reflètent dans les
sélections des cases à cocher de la table Colonnes de recherche disponibles .

Opération de recherche
Dans la liste, sélectionnez une opération de recherche à exécuter sur la colonne de
recherche.

Alias de sortie
Permet de saisir un alias pour la sortie de chaque colonne de recherche. La valeur par
défaut est le nom de la colonne de recherche. Toutefois, vous pouvez sélectionner
n'importe quel nom descriptif unique.

Éditeur de transformation de recherche (page


Avancé)
La page Avancé de la boîte de dialogue Éditeur de transformation de recherche permet
de configurer la mise en cache partielle et de modifier l’instruction SQL pour la
transformation de recherche.

Options
Taille du cache (32 bits)
Ajustez la taille du cache (en mégaoctets) pour les ordinateurs 32 bits. La valeur par
défaut est 5 mégaoctets.

Taille du cache (64 bits)


Ajustez la taille du cache (en mégaoctets) pour les ordinateurs 64 bits. La valeur par
défaut est 5 mégaoctets.

Activer le cache pour les lignes sans entrées correspondantes


Mettez en cache les lignes sans entrées correspondantes dans le dataset de référence.

Allocation à partir du cache


Spécifiez le pourcentage de cache à allouer aux lignes sans entrées correspondantes
dans le dataset de référence.

Modifier l'instruction SQL


Modifiez l'instruction SQL utilisée pour générer le dataset de référence.

7 Notes
L’instruction SQL facultative que vous spécifiez dans cette page substitue et
remplace le nom de table que vous avez spécifié dans la page Connexion de
l’Éditeur de transformation de recherche. Pour plus d’informations, consultez
Éditeur de transformation de recherche (Page Connexion).

Définition des paramètres


Mappez les colonnes d’entrée aux paramètres en utilisant la boîte de dialogue
Définition des paramètres de la requête .

Ressources externes
Entrée de blog, Lookup cache modes sur blogs.msdn.com

Voir aussi
Transformation de recherche floue
Transformation de recherche de terme
Flux de données
Transformations Integration Services

Commentaires
Cette page a-t-elle été utile ?  Yes  No

Indiquer des commentaires sur le produit | Obtenir de l’aide sur Microsoft Q&A
Implémenter une recherche en mode
Aucun cache ou Cache partiel
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous pouvez configurer la transformation de recherche afin qu'elle utilise le mode Cache
partiel ou le mode Aucun cache.

Cache partiel

Les lignes avec entrées correspondantes dans le dataset de référence et,


éventuellement, les lignes sans entrées correspondantes dans le dataset sont
stockées dans le cache. Lorsque la taille de mémoire du cache est dépassée, la
transformation de recherche supprime automatiquement les lignes le moins
fréquemment utilisées du cache.

Aucun cache

Aucune donnée n'est chargée dans le cache.

Que vous sélectionniez le mode Cache partiel ou le mode Aucun cache, vous utilisez un
gestionnaire de connexions OLE DB pour vous connecter au dataset de référence. Le
dataset de référence est généré à l’aide d’une table, d’une vue ou d’une requête SQL
pendant l’exécution de la transformation de recherche.

Pour implémenter une transformation de recherche en


mode Aucun cache ou en mode Cache partiel
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services qui
contient le package souhaité, puis ouvrez le package.

2. Sous l’onglet Flux de données , ajoutez une transformation de recherche.

3. Connectez la transformation de recherche au flux de données en faisant glisser un


connecteur à partir d'une source ou d'une transformation précédente jusqu'à la
transformation de recherche.

7 Notes

Une transformation de recherche configurée pour utiliser le mode Aucun


cache peut ne pas se valider si cette transformation se connecte à un fichier
plat qui contient un champ Date vide. La validation de la transformation
dépend si le gestionnaire de connexions pour le fichier plat a été configuré
pour conserver des valeurs NULL. Pour que la validation de la transformation
de recherche soit validée, dans l’Éditeur de source de fichier plat, dans la
page Gestionnaire de connexions, sélectionnez l’option Conserver les valeurs
NULL de la source comme valeurs NULL dans le flux de données .

4. Double-cliquez sur la transformation source ou précédente pour configurer le


composant.

5. Double-cliquez sur la transformation de recherche, puis dans l’Éditeur de


transformation de recherche, dans la page Général , sélectionnez Cache partiel ou
Aucun cache.

6. Dans la liste Spécifier comment gérer les lignes sans entrées correspondantes ,
sélectionnez une option de gestion des erreurs.

7. Dans la page Connexion , sélectionnez un gestionnaire de connexions dans la liste


Gestionnaire de connexions OLE DB ou cliquez sur Nouveau pour créer un
gestionnaire de connexions. Pour plus d’informations, consultez OLE DB
Connection Manager.

8. Effectuez l’une des étapes suivantes :

Cliquez sur Utiliser une table ou une vue, puis sélectionnez une table ou une
vue, ou cliquez sur Nouveau pour créer une table ou une vue.

Cliquez sur Utiliser les résultats d’une requête SQL, puis générez une
requête dans la fenêtre Commande SQL .

-ou-

Cliquez sur Générer la requête pour générer une requête à l’aide des outils
graphiques fournis par le Générateur de requêtes .

-ou-

Cliquez sur Parcourir pour importer une instruction SQL à partir d’un fichier.

Pour valider la requête SQL, cliquez sur Analyser la requête.

Pour afficher un échantillon des données, cliquez sur Aperçu.

9. Cliquez sur la page Colonnes , puis faites glisser au moins une colonne de la liste
Colonnes d’entrée disponibles vers une colonne de la liste Colonnes de recherche
disponibles .

7 Notes

La transformation de recherche mappe automatiquement les colonnes ayant


le même nom et le même type de données.

7 Notes

Les types de données des colonnes doivent correspondre pour que les
colonnes puissent être mappées. Pour plus d’informations, consultez Types de
données Integration Services.

10. Incluez des colonnes de recherche dans la sortie en procédant comme suit :

a. Dans la liste Colonnes de recherche disponibles , sélectionnez des colonnes.

b. Dans la liste Opération de recherche , spécifiez si les valeurs des colonnes de


recherche remplacent les valeurs des colonnes d’entrée ou si elles sont écrites
dans une nouvelle colonne.

11. Si vous avez sélectionné Cache partial à l’étape 5, dans la page Avancé , définissez
les options de cache suivantes :

Dans la liste Taille du cache (32 bits) , sélectionnez la taille du cache pour les
environnements 32 bits.

Dans la liste Taille du cache (64 bits) , sélectionnez la taille du cache pour les
environnements 64 bits.

Pour mettre en cache les lignes sans entrées correspondantes dans la


référence, sélectionnez Activer le cache pour les lignes sans entrées
correspondantes.

Dans la liste Allocation à partir du cache , sélectionnez le pourcentage du


cache à utiliser pour stocker les lignes sans entrées correspondantes.

12. Pour modifier l’instruction SQL qui génère le dataset de référence, sélectionnez
Modifier l’instruction SQLet modifiez l’instruction SQL affichée dans la zone de
texte.

Si l’instruction inclut des paramètres, cliquez sur Paramètres pour mapper les
paramètres aux colonnes d’entrée.
7 Notes

L’instruction SQL facultative que vous spécifiez dans cette page substitue et
remplace le nom de table que vous avez spécifié dans la page Connexion de
l’Éditeur de transformation de recherche.

13. Pour configurer la sortie d’erreur, cliquez sur la page Sortie d’erreur et définissez
les options de gestion des erreurs. Pour plus d’informations, consultez Éditeur de
transformation de recherche (page Sortie d’erreur).

14. Cliquez sur OK pour enregistrer les modifications apportées à la transformation de


recherche, puis exécutez le package.

Voir aussi
Transformations Integration Services
Transformation de recherche en mode
Cache complet - Gestionnaire de
connexions du cache
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous pouvez configurer la transformation de recherche afin qu'elle utilise le mode Cache
complet et un gestionnaire de connexions du cache. En mode Cache complet, le dataset
de référence est chargé dans le cache avant l'exécution de la transformation de
recherche.

7 Notes

Le gestionnaire de connexions du cache ne prend pas en charge les types de


données de l'objet BLOB (Binary Large Object) DT_TEXT, DT_NTEXT et DT_IMAGE. Si
le dataset de référence contient un type de données d'objet BLOB, le composant
échoue lorsque vous exécutez le package. Vous pouvez utiliser l' Éditeur du
gestionnaire de connexions du cache pour modifier des types de données de
colonne. Pour plus d’informations, consultez Éditeur du gestionnaire de
connexions du cache.

La transformation de recherche effectue des recherches en joignant les données des


colonnes d'entrée d'une source de données connectée aux colonnes d'un dataset de
référence. Pour plus d’informations, voir Lookup Transformation.

Vous utilisez l'un des éléments suivants pour générer un dataset de référence :

Fichier cache (.caw)

Vous configurez le gestionnaire de connexions du cache afin de lire les données


d'un fichier cache existant.

Source de données connectée dans le flux de données

Vous utilisez la transformation du cache pour écrire des données provenant d'une
source de données connectée dans le flux de données dans un gestionnaire de
connexions du cache. Les données sont toujours stockées en mémoire.
Vous devez ajouter la transformation de recherche à un flux de données séparé.
Cet ajout permet à la transformation du cache de renseigner le gestionnaire de
connexions du cache avant l'exécution de la transformation de recherche. Les flux
de données peuvent être dans le même package ou dans deux packages séparés.

Si les flux de données sont dans le même package, utilisez une contrainte de
précédence pour connecter les flux de données. Cette contrainte permet à la
transformation du cache de s'exécuter avant l'exécution de la transformation de
recherche.

Si les flux de données sont dans des packages séparés, vous pouvez utiliser la
tâche Exécuter le package pour appeler le package enfant à partir du package
parent. Vous pouvez appeler plusieurs packages enfants en ajoutant plusieurs
tâches Exécuter le package à une tâche Conteneur de séquences dans le package
parent.

Vous pouvez partager le dataset de référence stocké dans le cache, entre plusieurs
transformations de Recherche en utilisant l'une des méthodes suivantes :

Configurez les transformations de recherche dans un seul package afin qu'elles


utilisent le même gestionnaire de connexions du cache.

Configurez les gestionnaires de connexions du cache des différents packages afin


qu'ils utilisent le même fichier cache.

Pour plus d'informations, voir les rubriques suivantes :

Transformation du cache

Gestionnaire de connexions du cache

Contraintes de précédence

Tâche d’exécution de package

conteneur de séquences

Pour savoir comment implémenter la transformation de recherche en mode Cache


complet à l’aide du gestionnaire de connexions du cache, consultez la vidéo Procédure :
implémenter une transformation de recherche en mode Cache complet (Vidéo liée à
SQL Server).

Pour implémenter une transformation de recherche en


mode Cache complet dans un seul package en utilisant le
gestionnaire de connexions du cache et une source de
données dans le flux de données
1. Dans SQL Server Data Tools (SSDT), ouvrez un projet Integration Services , puis un
package.

2. Sous l’onglet Flux de contrôle , ajoutez deux tâches de flux de données, puis
connectez les tâches à l’aide d’un connecteur vert :

3. Dans le premier flux de données, ajoutez une transformation du cache, puis


connectez la transformation à une source de données.

Configurez la source de données selon vos besoins.

4. Double-cliquez sur la transformation du cache puis, dans l’Éditeur de


transformation du cache, dans la page Gestionnaire de connexions , cliquez sur
Nouveau pour créer un gestionnaire de connexions du cache.

5. Cliquez sur l’onglet Colonnes de la boîte de dialogue Éditeur du gestionnaire de


connexions du cache , puis désignez les colonnes d’index à l’aide de l’option
Position d’index .

Pour les colonnes qui ne sont pas des index, la position d'index est 0. Pour les
colonnes d'index, la position d'index est un nombre séquentiel, positif.

7 Notes

Lorsque la transformation de recherche est configurée pour utiliser un


gestionnaire de connexions du cache, seules les colonnes d'index dans le
dataset de référence peuvent être mappées avec des colonnes d'entrée. En
outre, toutes les colonnes d'index doivent être mappées. Pour plus
d’informations, consultez Éditeur du gestionnaire de connexions du cache.

6. Pour enregistrer le cache dans un fichier, dans l’Éditeur du gestionnaire de


connexions du cache, sous l’onglet Général , configurez le gestionnaire de
connexions du cache en définissant les options suivantes :

Sélectionnez Utiliser le cache de fichier.

Pour Nom de fichier, tapez le chemin du fichier ou cliquez sur Parcourir pour
sélectionner le fichier.

Si vous tapez un chemin d'accès de fichier qui n'existe pas, le système crée le
fichier lorsque vous exécutez le package.
7 Notes

Le niveau de protection du package ne s'applique pas au fichier cache. Si le


fichier cache contient des informations sensibles, utilisez une liste de contrôle
d'accès (ACL) pour restreindre l'accès à l'emplacement ou au dossier dans
lequel vous stockez le fichier. Vous devez autoriser l'accès à certains comptes
uniquement. Pour plus d’informations, consultez Accéder aux fichiers utilisés
par des packages.

7. Configurez la transformation du cache selon vos besoins. Pour plus d’informations,


consultez Éditeur de transformation du cache (page Gestionnaire de connexions)
et Éditeur de transformation du cache (page Mappages).

8. Dans le second flux de données, ajoutez une transformation de recherche, puis


configurez la transformation en effectuant les tâches suivantes :

a. Connectez la transformation de recherche au flux de données en faisant glisser


un connecteur à partir d'une source ou d'une transformation précédente jusqu'à
la transformation de recherche.

7 Notes

Une transformation de recherche peut ne pas se valider si cette


transformation se connecte à un fichier plat qui contient un champ Date
vide. La validation de la transformation dépend si le gestionnaire de
connexions pour le fichier plat a été configuré pour conserver des valeurs
NULL. Pour que la validation de la transformation de recherche soit validée,
dans l’Éditeur de source de fichier plat, dans la page Gestionnaire de
connexions, sélectionnez l’option Conserver les valeurs NULL de la source
comme valeurs NULL dans le flux de données .

b. Double-cliquez sur la transformation source ou précédente pour configurer le


composant.

c. Double-cliquez sur la transformation de recherche, puis dans l’Éditeur de


transformation de recherche, dans la page Général , sélectionnez Cache
complet.

d. Dans la zone Type de connexion , sélectionnez Gestionnaire de connexions du


cache.
e. Dans la liste Spécifier comment gérer les lignes sans entrées correspondantes ,
sélectionnez une option de gestion des erreurs.

f. Dans la page Connexion , dans la liste Gestionnaire de connexions du cache ,


sélectionnez un gestionnaire de connexions du cache.

g. Cliquez sur la page Colonnes , puis faites glisser au moins une colonne de la
liste Colonnes d’entrée disponibles vers une colonne de la liste Colonnes de
recherche disponibles .

7 Notes

La transformation de recherche mappe automatiquement les colonnes


ayant le même nom et le même type de données.

7 Notes

Les types de données des colonnes doivent correspondre pour que les
colonnes puissent être mappées. Pour plus d’informations, consultez Types
de données Integration Services.

h. Dans la liste Colonnes de recherche disponibles , sélectionnez des colonnes.


Ensuite, dans la liste Opération de recherche , indiquez si les valeurs des
colonnes de recherche doivent remplacer les valeurs des colonnes d’entrée ou si
elles sont écrites dans une nouvelle colonne.

i. Pour configurer la sortie d’erreur, cliquez sur la page Sortie d’erreur et


définissez les options de gestion des erreurs. Pour plus d’informations,
consultez Éditeur de transformation de recherche (page Sortie d’erreur).

j. Cliquez sur OK pour enregistrer les modifications que vous avez apportées à la
transformation de recherche.

9. Exécutez le package.

Pour implémenter une transformation de recherche en


mode Cache complet dans deux packages en utilisant un
gestionnaire de connexions du cache et une source de
données dans le flux de données
1. Dans SQL Server Data Tools (SSDT), ouvrez un projet Integration Services , puis
deux packages.

2. Sous l'onglet Flux de contrôle dans chaque package, ajoutez une tâche de flux de
données.

3. Dans le package parent, ajoutez une transformation du cache au flux de données,


puis connectez la transformation à une source de données.

Configurez la source de données selon vos besoins.

4. Double-cliquez sur la transformation du cache puis, dans l’Éditeur de


transformation du cache, dans la page Gestionnaire de connexions , cliquez sur
Nouveau pour créer un gestionnaire de connexions du cache.

5. Dans l’Éditeur du gestionnaire de connexions du cache, sous l’onglet Général ,


configurez le gestionnaire de connexions du cache en définissant les options
suivantes :

Sélectionnez Utiliser le cache de fichier.

Pour Nom de fichier, tapez le chemin du fichier ou cliquez sur Parcourir pour
sélectionner le fichier.

Si vous tapez un chemin d'accès de fichier qui n'existe pas, le système crée le
fichier lorsque vous exécutez le package.

7 Notes

Le niveau de protection du package ne s'applique pas au fichier cache. Si le


fichier cache contient des informations sensibles, utilisez une liste de contrôle
d'accès (ACL) pour restreindre l'accès à l'emplacement ou au dossier dans
lequel vous stockez le fichier. Vous devez autoriser l'accès à certains comptes
uniquement. Pour plus d’informations, consultez Accéder aux fichiers utilisés
par des packages.

6. Cliquez sur l’onglet Colonnes , puis spécifiez quelles colonnes sont les colonnes
d’index en utilisant l’option Position d’index .

Pour les colonnes qui ne sont pas des index, la position d'index est 0. Pour les
colonnes d'index, la position d'index est un nombre séquentiel, positif.

7 Notes
Lorsque la transformation de recherche est configurée pour utiliser un
gestionnaire de connexions du cache, seules les colonnes d'index dans le
dataset de référence peuvent être mappées avec des colonnes d'entrée. En
outre, toutes les colonnes d'index doivent être mappées. Pour plus
d’informations, consultez Éditeur du gestionnaire de connexions du cache.

7. Configurez la transformation du cache selon vos besoins. Pour plus d’informations,


consultez Éditeur de transformation du cache (page Gestionnaire de connexions)
et Éditeur de transformation du cache (page Mappages).

8. Effectuez l'une des opérations suivantes pour renseigner le gestionnaire de


connexions du cache utilisé dans le second package :

Exécutez le package parent.

Double-cliquez sur le gestionnaire de connexions du cache que vous avez


créé à l’étape 4, cliquez sur Colonnes, sélectionnez les lignes, puis appuyez
sur Ctrl+C pour copier les métadonnées de colonne.

9. Dans le package enfant, pour créer un gestionnaire de connexions du cache,


cliquez avec le bouton droit dans la zone Gestionnaires de connexions , cliquez
sur Nouvelle connexion, sélectionnez CACHE dans la boîte de dialogue Ajout d’un
gestionnaire de connexions SSIS , puis cliquez sur Ajouter.

La zone Gestionnaires de connexions apparaît au bas des onglets Flux de


contrôle, Flux de donnéeset Gestionnaires d’événements du concepteur
Integration Services .

10. Dans l’Éditeur du gestionnaire de connexions du cache, sous l’onglet Général ,


configurez le gestionnaire de connexions du cache pour lire les données à partir
du fichier cache que vous avez sélectionné en définissant les options suivantes :

Sélectionnez Utiliser le cache de fichier.

Pour Nom de fichier, tapez le chemin du fichier ou cliquez sur Parcourir pour
sélectionner le fichier.

7 Notes

Le niveau de protection du package ne s'applique pas au fichier cache. Si le


fichier cache contient des informations sensibles, utilisez une liste de contrôle
d'accès (ACL) pour restreindre l'accès à l'emplacement ou au dossier dans
lequel vous stockez le fichier. Vous devez autoriser l'accès à certains comptes
uniquement. Pour plus d’informations, consultez Accéder aux fichiers utilisés
par des packages.

11. Si vous avez copié les métadonnées de colonne à l’étape 8, cliquez sur Colonnes,
sélectionnez la ligne vide, puis appuyez sur Ctrl+V pour coller les métadonnées de
colonne.

12. Ajoutez une transformation de recherche, puis configurez la transformation en


effectuant les tâches suivantes :

a. Connectez la transformation de recherche au flux de données en faisant glisser


un connecteur à partir d'une source ou d'une transformation précédente jusqu'à
la transformation de recherche.

7 Notes

Une transformation de recherche peut ne pas se valider si cette


transformation se connecte à un fichier plat qui contient un champ Date
vide. La validation de la transformation dépend si le gestionnaire de
connexions pour le fichier plat a été configuré pour conserver des valeurs
NULL. Pour que la validation de la transformation de recherche soit validée,
dans l’Éditeur de source de fichier plat, dans la page Gestionnaire de
connexions, sélectionnez l’option Conserver les valeurs NULL de la source
comme valeurs NULL dans le flux de données .

b. Double-cliquez sur la transformation source ou précédente pour configurer le


composant.

c. Double-cliquez sur la transformation de recherche, puis sélectionnez Cache


complet dans la page Général de l’Éditeur de transformation de recherche.

d. Sélectionnez Gestionnaire de connexions du cache dans la zone Type de


connexion .

e. Sélectionnez une option de gestion des erreurs pour les lignes sans entrées
correspondantes dans la liste Spécifier comment gérer les lignes sans entrées
correspondantes .

f. Dans la page Connexion , dans la liste Gestionnaire de connexions du cache ,


sélectionnez le gestionnaire de connexions du cache que vous avez ajouté.

g. Cliquez sur la page Colonnes , puis faites glisser au moins une colonne de la
liste Colonnes d’entrée disponibles vers une colonne de la liste Colonnes de
recherche disponibles .

7 Notes

La transformation de recherche mappe automatiquement les colonnes


ayant le même nom et le même type de données.

7 Notes

Les types de données des colonnes doivent correspondre pour que les
colonnes puissent être mappées. Pour plus d’informations, consultez Types
de données Integration Services.

h. Dans la liste Colonnes de recherche disponibles , sélectionnez des colonnes.


Ensuite, dans la liste Opération de recherche , indiquez si les valeurs des
colonnes de recherche doivent remplacer les valeurs des colonnes d’entrée ou si
elles sont écrites dans une nouvelle colonne.

i. Pour configurer la sortie d’erreur, cliquez sur la page Sortie d’erreur et


définissez les options de gestion des erreurs. Pour plus d’informations,
consultez Éditeur de transformation de recherche (page Sortie d’erreur).

j. Cliquez sur OK pour enregistrer les modifications que vous avez apportées à la
transformation de recherche.

13. Ouvrez le package parent, ajoutez une tâche Exécuter le package au flux de
contrôle, puis configurez la tâche afin d'appeler le package enfant. Pour plus
d’informations, consultez Tâche d’exécution de package.

14. Exécutez les packages.

Pour implémenter une transformation de recherche en


mode Cache complet à l'aide d'un gestionnaire de
connexions du cache et d'un fichier cache existant
1. Dans SQL Server Data Tools (SSDT), ouvrez un projet Integration Services , puis un
package.

2. Cliquez avec le bouton droit dans la zone Gestionnaires de connexions , puis


cliquez sur Nouvelle connexion.
La zone Gestionnaires de connexions apparaît au bas des onglets Flux de
contrôle, Flux de donnéeset Gestionnaires d’événements du concepteur
Integration Services .

3. Dans la boîte de dialogue Ajout d’un gestionnaire de connexions SSIS ,


sélectionnez CACHE, puis cliquez sur Ajouter pour ajouter un gestionnaire de
connexions du cache.

4. Double-cliquez sur le gestionnaire de connexions du cache pour ouvrir l’Éditeur du


gestionnaire de connexions du cache.

5. Dans l’Éditeur du gestionnaire de connexions du cache, sous l’onglet Général ,


configurez le gestionnaire de connexions du cache en définissant les options
suivantes :

Sélectionnez Utiliser le cache de fichier.

Pour Nom de fichier, tapez le chemin du fichier ou cliquez sur Parcourir pour
sélectionner le fichier.

7 Notes

Le niveau de protection du package ne s'applique pas au fichier cache. Si le


fichier cache contient des informations sensibles, utilisez une liste de contrôle
d'accès (ACL) pour restreindre l'accès à l'emplacement ou au dossier dans
lequel vous stockez le fichier. Vous devez autoriser l'accès à certains comptes
uniquement. Pour plus d’informations, consultez Accéder aux fichiers utilisés
par des packages.

6. Cliquez sur l’onglet Colonnes , puis spécifiez quelles colonnes sont les colonnes
d’index en utilisant l’option Position d’index .

Pour les colonnes qui ne sont pas des index, la position d'index est 0. Pour les
colonnes d'index, la position d'index est un nombre séquentiel, positif.

7 Notes

Lorsque la transformation de recherche est configurée pour utiliser un


gestionnaire de connexions du cache, seules les colonnes d'index dans le
dataset de référence peuvent être mappées avec des colonnes d'entrée. En
outre, toutes les colonnes d'index doivent être mappées. Pour plus
d’informations, consultez Éditeur du gestionnaire de connexions du cache.
7. Sous l’onglet Flux de contrôle , ajoutez une tâche de flux de données au package,
puis ajoutez une transformation de recherche au flux de données.

8. Configurez la transformation de recherche en procédant comme suit :

a. Connectez la transformation de recherche au flux de données en faisant glisser


un connecteur à partir d'une source ou d'une transformation précédente jusqu'à
la transformation de recherche.

7 Notes

Une transformation de recherche peut ne pas se valider si cette


transformation se connecte à un fichier plat qui contient un champ Date
vide. La validation de la transformation dépend si le gestionnaire de
connexions pour le fichier plat a été configuré pour conserver des valeurs
NULL. Pour que la validation de la transformation de recherche soit validée,
dans l’Éditeur de source de fichier plat, dans la page Gestionnaire de
connexions, sélectionnez l’option Conserver les valeurs NULL de la source
comme valeurs NULL dans le flux de données .

b. Double-cliquez sur la transformation source ou précédente pour configurer le


composant.

c. Double-cliquez sur la transformation de recherche, puis dans l’Éditeur de


transformation de recherche, dans la page Général , sélectionnez Cache
complet.

d. Sélectionnez Gestionnaire de connexions du cache dans la zone Type de


connexion .

e. Sélectionnez une option de gestion des erreurs pour les lignes sans entrées
correspondantes dans la liste Spécifier comment gérer les lignes sans entrées
correspondantes .

f. Dans la page Connexion , dans la liste Gestionnaire de connexions du cache ,


sélectionnez le gestionnaire de connexions du cache que vous avez ajouté.

g. Cliquez sur la page Colonnes , puis faites glisser au moins une colonne de la
liste Colonnes d’entrée disponibles vers une colonne de la liste Colonnes de
recherche disponibles .

7 Notes
La transformation de recherche mappe automatiquement les colonnes
ayant le même nom et le même type de données.

7 Notes

Les types de données des colonnes doivent correspondre pour que les
colonnes puissent être mappées. Pour plus d’informations, consultez Types
de données Integration Services.

h. Dans la liste Colonnes de recherche disponibles , sélectionnez des colonnes.


Ensuite, dans la liste Opération de recherche , indiquez si les valeurs des
colonnes de recherche doivent remplacer les valeurs des colonnes d’entrée ou si
elles sont écrites dans une nouvelle colonne.

i. Pour configurer la sortie d’erreur, cliquez sur la page Sortie d’erreur et


définissez les options de gestion des erreurs. Pour plus d’informations,
consultez Éditeur de transformation de recherche (page Sortie d’erreur).

j. Cliquez sur OK pour enregistrer les modifications que vous avez apportées à la
transformation de recherche.

9. Exécutez le package.

Voir aussi
Implémenter une transformation de recherche en mode Cache complet à l'aide du
gestionnaire de connexions OLE DB
Implémenter une recherche en mode Aucun cache ou Cache partiel
Transformations Integration Services
Transformation de recherche en mode
Cache complet - Gestionnaire de
connexions OLE DB
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous pouvez configurer la transformation de recherche afin qu'elle utilise le mode Cache
complet et un gestionnaire de connexions OLE DB. Dans le mode Cache complet, le
dataset de référence est chargé dans le cache avant l’exécution de la transformation de
recherche.

La transformation de recherche effectue des recherches en joignant les données des


colonnes d'entrée d'une source de données connectée aux colonnes d'un dataset de
référence. Pour plus d’informations, voir Lookup Transformation.

Lorsque vous configurez la transformation de recherche pour utiliser un gestionnaire de


connexions OLE DB, vous sélectionnez une table, une vue ou une requête SQL pour
générer le dataset de référence.

Pour implémenter une transformation de recherche en


mode Cache complet à l'aide du gestionnaire de
connexions OLE DB
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services qui
contient le package souhaité, puis double-cliquez sur le package dans l'Explorateur
de solutions.

2. Sous l’onglet Flux de données , faites glisser la transformation de recherche à


partir de la Boîte à outilsjusqu’à l’aire de conception.

3. Connectez la transformation de recherche au flux de données en faisant glisser un


connecteur à partir d'une source ou d'une transformation précédente jusqu'à la
transformation de recherche.

7 Notes

Une transformation de recherche peut ne pas se valider si cette


transformation se connecte à un fichier plat qui contient un champ Date vide.
La validation de la transformation dépend si le gestionnaire de connexions
pour le fichier plat a été configuré pour conserver des valeurs NULL. Pour que
la validation de la transformation de recherche soit validée, dans l’Éditeur de
source de fichier plat, dans la page Gestionnaire de connexions, sélectionnez
l’option Conserver les valeurs NULL de la source comme valeurs NULL dans
le flux de données .

4. Double-cliquez sur la transformation source ou précédente pour configurer le


composant.

5. Double-cliquez sur la transformation de recherche, puis dans l’Éditeur de


transformation de recherche, dans la page Général , sélectionnez Cache complet.

6. Dans la zone Type de connexion , sélectionnez Gestionnaire de connexions OLE


DB.

7. Dans la liste Spécifier comment gérer les lignes sans entrées correspondantes ,
sélectionnez une option de gestion des erreurs pour les lignes sans entrées
correspondantes.

8. Dans la page Connexion , sélectionnez un gestionnaire de connexions dans la liste


Gestionnaire de connexions OLE DB ou cliquez sur Nouveau pour créer un
gestionnaire de connexions. Pour plus d’informations, consultez OLE DB
Connection Manager.

9. Exécutez l'une des tâches suivantes :

Cliquez sur Utiliser une table ou une vue, puis sélectionnez une table ou une
vue, ou cliquez sur Nouveau pour créer une table ou une vue.

- ou -

Cliquez sur Utiliser les résultats d’une requête SQL, puis générez une
requête dans la fenêtre Commande SQL , ou cliquez sur Générer la requête
pour générer une requête à l’aide des outils graphiques du Générateur de
requêtes .

- ou -

Vous pouvez aussi cliquer sur Parcourir pour importer une instruction SQL à
partir d’un fichier.

Pour valider la requête SQL, cliquez sur Analyser la requête.

Pour afficher un échantillon des données, cliquez sur Aperçu.


10. Cliquez sur la page Colonnes , puis faites glisser au moins une colonne de la liste
Colonnes d’entrée disponibles vers une colonne de la liste Colonnes de recherche
disponibles .

7 Notes

La transformation de recherche mappe automatiquement les colonnes ayant


le même nom et le même type de données.

7 Notes

Les types de données des colonnes doivent correspondre pour que les
colonnes puissent être mappées. Pour plus d’informations, consultez Types de
données Integration Services.

11. Incluez des colonnes de recherche dans la sortie en exécutant les tâches suivantes :

a. Dans la liste Colonnes de recherche disponibles , sélectionnez des colonnes.

b. Dans la liste Opération de recherche , spécifiez si les valeurs des colonnes de


recherche remplacent les valeurs des colonnes d’entrée ou si elles sont écrites
dans une nouvelle colonne.

12. Pour configurer la sortie d’erreur, cliquez sur la page Sortie d’erreur et définissez
les options de gestion des erreurs. Pour plus d’informations, consultez Éditeur de
transformation de recherche (page Sortie d’erreur).

13. Cliquez sur OK pour enregistrer les modifications apportées à la transformation de


recherche, puis exécutez le package.

Voir aussi
Implémenter une transformation de recherche en mode Cache complet à l'aide du
gestionnaire de connexions du cache
Implémenter une recherche en mode Aucun cache ou Cache partiel
Transformations Integration Services
Créer et déployer un cache pour la
transformation de recherche
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous pouvez créer et déployer un fichier cache (.caw) pour la transformation de


recherche. Le dataset de référence est stocké dans le fichier cache.

La transformation de recherche effectue des recherches en joignant les données des


colonnes d’entrée d’une source de données connectée aux colonnes du dataset de
référence.

Vous créez un fichier cache en utilisant un gestionnaire de connexions du cache et une


transformation du cache. Pour plus d’informations, consultez Gestionnaire de
connexions du cache et Transformation du cache.

Pour en savoir plus sur la transformation de recherche, consultez Transformation de


recherche.

Pour créer un fichier cache


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services qui
contient le package souhaité, puis ouvrez le package.

2. Sous l’onglet Flux de contrôle , ajoutez une tâche de flux de données.

3. Sous l’onglet Flux de données , ajoutez une transformation du cache au flux de


données, puis connectez la transformation à une source de données.

Configurez la source de données selon vos besoins.

4. Double-cliquez sur la transformation du cache puis, dans l’Éditeur de


transformation du cache, dans la page Gestionnaire de connexions , cliquez sur
Nouveau pour créer un gestionnaire de connexions du cache.

5. Dans l’Éditeur du gestionnaire de connexions du cache, sous l’onglet Général ,


configurez le gestionnaire de connexions du cache pour enregistrer le cache en
sélectionnant les options suivantes :

a. Sélectionnez Utiliser le cache de fichier.

b. Dans la zone Nom de fichier, entrez le chemin du fichier.


Le système crée le fichier lorsque vous exécutez le package.

7 Notes

Le niveau de protection du package ne s'applique pas au fichier cache. Si le


fichier cache contient des informations sensibles, utilisez une liste de contrôle
d'accès (ACL) pour restreindre l'accès à l'emplacement ou au dossier dans
lequel vous stockez le fichier. Vous devez autoriser l'accès à certains comptes
uniquement. Pour plus d’informations, consultez Accéder aux fichiers utilisés
par des packages.

6. Cliquez sur l’onglet Colonnes , puis spécifiez quelles colonnes sont les colonnes
d’index en utilisant l’option Position d’index .

Pour les colonnes qui ne sont pas des index, la position d'index est 0. Pour les
colonnes d'index, la position d'index est un nombre séquentiel, positif.

7 Notes

Lorsque la transformation de recherche est configurée pour utiliser un


gestionnaire de connexions du cache, seules les colonnes d'index dans le
dataset de référence peuvent être mappées avec des colonnes d'entrée. En
outre, toutes les colonnes d’index doivent être mappées.

Pour plus d’informations, consultez Éditeur du gestionnaire de connexions du


cache.

7. Configurez la transformation du cache selon vos besoins.

Pour plus d’informations, consultez Éditeur de transformation du cache (page


Gestionnaire de connexions) et Éditeur de transformation du cache (page
Mappages).

8. Exécutez le package.

Pour déployer un fichier cache


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services qui
contient le package souhaité, puis ouvrez le package.

2. Vous pouvez éventuellement créer une configuration de package. Pour plus


d’informations, consultez Créer des configurations de package.
3. Ajoutez le fichier cache au projet en procédant comme suit :

a. Dans l'Explorateur de solutions, sélectionnez le projet que vous avez ouvert à


l'étape 1.

b. Dans le menu Projet , cliquez sur Ajouter un élément existant.

c. Sélectionnez le fichier de cache, puis cliquez sur Ajouter.

Le fichier apparaît dans le dossier Divers de l’Explorateur de solutions.

4. Configurez le projet afin de créer un utilitaire de déploiement, puis créez le projet.


Pour plus d’informations, consultez Créer un utilitaire de déploiement.

Un fichier manifeste, <nom_projet>.SSISDeploymentManifest.xml, est créé et


répertorie les différents fichiers du projet, les packages et les configurations des
packages.

5. Déployez le package dans le système de fichiers. Pour plus d’informations,


consultez Déployer des packages à l’aide de l’utilitaire de déploiement.

Voir aussi
Créer un utilitaire de déploiement
Créer des relations
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Créer des relations pour modifier les mappages entre les
colonnes source et les colonnes de la table de recherche configurée dans l'Éditeur de
transformation de recherche floue, l'Éditeur de transformation de recherche ou l'Éditeur
de transformation de recherche de terme.

7 Notes

La boîte de dialogue Créer des relations affiche uniquement les listes Colonnes
d'entrée et Colonne de recherche lorsqu'elle est ouverte depuis l'Éditeur de
transformation de recherche de terme.

Pour en savoir plus sur les transformations qui utilisent la boîte de dialogue Créer des
relations , consultez Fuzzy Lookup Transformation, Lookup Transformationet Term
Lookup Transformation.

Options
Colonne d'entrée
Permet de sélectionner des colonnes dans la liste des colonnes d'entrée disponibles.

colonne de recherche
Sélectionnez dans la liste des colonnes de recherche disponibles.

Type de mappage
Sélectionnez la correspondance floue ou exacte.

Lorsque vous utilisez la correspondance floue, les lignes sont considérées correspondre
à des doublons si elles sont suffisamment similaires dans toutes les colonnes ayant un
type de correspondance floue. Pour optimiser les résultats de la correspondance floue,
vous pouvez indiquer que des colonnes doivent utiliser la correspondance exacte au lieu
de la correspondance floue. Si, par exemple, vous savez qu'une colonne ne contient pas
d'erreur ou d'incohérence, vous pouvez définir la correspondance exacte sur la colonne
pour que seules les lignes qui contiennent des valeurs identiques dans la colonne soient
considérées comme des doublons possibles. Ceci améliore la précision de la
correspondance floue dans les autres colonnes.
Indicateurs de comparaison
Pour plus d’informations sur les options de comparaison de chaînes, consultez
Comparaison des données chaînes.

Similarité minimale
Définissez le seuil de similarité au niveau colonne en utilisant le curseur. Plus la valeur
est proche de 1, plus la valeur de recherche doit ressembler à la valeur source pour
qu'elle corresponde à une correspondance. L'augmentation du seuil peut accélérer les
recherches du fait que moins de candidats doivent être évalués.

Alias de sortie de similarité


Définissez le nom d'une nouvelle colonne de sortie qui contient les scores de similarité
de la colonne sélectionnée. Si vous ne définissez pas cette valeur, la colonne de sortie
n'est pas créée.

Voir aussi
Guide de référence des erreurs et des messages propres à Integration Services
Éditeur de transformation de recherche floue (onglet Colonnes)
Éditeur de transformation de recherche (page Colonnes)
Éditeur de transformation de recherche de terme (onglet Recherche de terme)
Transformation du cache
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation du cache génère un dataset de référence pour la transformation de


recherche en entrant des données depuis une source de données connectée dans le flux
de données dans un gestionnaire de connexions du cache. La transformation de
recherche effectue des recherches en joignant les données des colonnes d'entrée d'une
source de données connectée aux colonnes de la base de données de référence.

Vous pouvez utiliser le gestionnaire de connexions du cache lorsque vous souhaitez


configurer la transformation de recherche en mode cache complet. Dans ce mode, le
dataset de référence est chargé dans le cache avant l'exécution de la transformation de
recherche.

Pour savoir comment configurer la transformation de recherche en mode cache complet


à l’aide du gestionnaire de connexions du cache et de la transformation du cache,
consultez Implémenter une transformation de recherche en mode Cache complet à
l’aide du gestionnaire de connexions du cache.

Pour plus d'informations sur la mise en cache du dataset de référence, consultez Lookup
Transformation.

7 Notes

La transformation du cache écrit uniquement des lignes uniques dans le


gestionnaire de connexions du cache.

Dans un package unique, une seule transformation du cache peut écrire des données
dans le même gestionnaire de connexions du cache. Si le package contient plusieurs
transformations du cache, la première qui est appelée lors de l'exécution du package
écrit les données dans le gestionnaire de connexions. Les opérations d'écriture des
transformations du cache suivantes échouent.

Pour plus d’informations, consultez Gestionnaire de connexions du cache.

Configuration de la transformation du cache


Vous pouvez configurer le gestionnaire de connexions du cache afin d'enregistrer les
données dans un fichier cache (.caw).
Vous pouvez configurer la transformation du cache comme suit :

Spécifiez le gestionnaire de connexions du cache.

Mappez les colonnes d'entrée dans la transformation du cache aux colonnes de


destination dans le gestionnaire de connexions du cache.

7 Notes

Chaque colonne d'entrée doit être mappée à une colonne de destination et


les types de données de colonne doivent correspondre. Sinon, le Concepteur
Integration Services affiche un message d'erreur.

Vous pouvez utiliser l' Éditeur du gestionnaire de connexions du cache pour


modifier les types de données et les noms de colonne, ainsi que d'autres
propriétés de colonne.

Vous pouvez définir les propriétés par le biais du concepteur Integration Services . Pour
plus d'informations sur les propriétés que vous pouvez définir dans la boîte de dialogue
Éditeur avancé , consultez Transformation Custom Properties.

Pour plus d’informations sur la façon de définir les propriétés, consultez Définir les
propriétés d’un composant de flux de données.

Éditeur de transformation du cache (Page


Gestionnaire de connexions)
Utilisez la page Gestionnaire de connexions de la boîte de dialogue Éditeur de
transformation du cache pour sélectionner un gestionnaire de connexions du cache
existant ou en créer un.

Pour en savoir plus sur le gestionnaire de connexions du cache, consultez Cache


Connection Manager.

Options
Cache connection manager
Sélectionnez un gestionnaire de connexions du cache existant en utilisant la liste, ou
créez une connexion en utilisant le bouton Nouvelle .

Nouveau
Créez une connexion à l'aide de la boîte de dialogue Éditeur du gestionnaire de
connexions du cache.

Modifier
Modifiez une connexion existante.

Voir aussi
Transformations Integration Services
Flux de données
Gestionnaire de connexions du cache
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le gestionnaire de connexions du cache lit des données à partir de la transformation du


cache ou d'un fichier cache (.caw) et peut enregistrer les données dans un fichier cache.
Les données sont toujours stockées en mémoire que vous configuriez ou non le
gestionnaire de connexions du cache pour utiliser un fichier cache.

La transformation du cache écrit des données provenant d'une source de données


connectée dans le flux de données dans un gestionnaire de connexions du cache. La
transformation de recherche dans un package effectue des recherches sur les données.

7 Notes

Le gestionnaire de connexions du cache ne prend pas en charge les types de


données de l'objet BLOB (Binary Large Object) DT_TEXT, DT_NTEXT et DT_IMAGE. Si
le dataset de référence contient un type de données d'objet BLOB, le composant
échoue lorsque vous exécutez le package. Vous pouvez utiliser l' Éditeur du
gestionnaire de connexions du cache pour modifier des types de données de
colonne. Pour plus d’informations, consultez Éditeur du gestionnaire de
connexions du cache.

7 Notes

Le niveau de protection du package ne s'applique pas au fichier cache. Si le fichier


cache contient des informations sensibles, utilisez une liste de contrôle d'accès
(ACL) pour restreindre l'accès à l'emplacement ou au dossier dans lequel vous
stockez le fichier. Vous devez autoriser l'accès à certains comptes uniquement. Pour
plus d’informations, consultez Accéder aux fichiers utilisés par des packages.

Configuration du gestionnaire de connexions


du cache
Vous pouvez configurer le gestionnaire de connexions du cache comme suit :

Indiquez s'il faut utiliser ou non un fichier cache.


Si vous configurez le gestionnaire de connexions du cache pour utiliser un fichier
cache, il effectuera l'une des actions suivantes :

Il enregistrera les données dans le fichier lorsqu'une transformation du cache


est configurée pour écrire des données depuis une source de données dans le
flux de données dans le gestionnaire de connexions du cache.

Il lira des données à partir du fichier cache.

Pour plus d'informations, consultez Cache Transform.

Modifiez les métadonnées des colonnes stockées dans le cache.

Mettez à jour le nom du fichier cache au moment de l’exécution en utilisant une


expression pour définir la propriété ConnectionString. Pour plus d’informations,
consultez Expressions de propriété dans des packages.

Vous pouvez définir les propriétés par le biais du concepteur Integration Services ou par
programmation.

Pour plus d’informations sur la configuration d’un gestionnaire de connexions par


programmation, consultez ConnectionManager et Ajout de connexions par
programmation.

Éditeur du gestionnaire de connexions du


cache
Le gestionnaire de connexions du cache lit un dataset de référence à partir de la
transformation de cache ou d'un fichier cache (.caw) et peut enregistrer les données
dans un fichier cache. Les données sont toujours stockées en mémoire.

7 Notes

Le gestionnaire de connexions du cache ne prend pas en charge les types de


données de l'objet BLOB (Binary Large Object) DT_TEXT, DT_NTEXT et DT_IMAGE. Si
le dataset de référence contient un type de données d'objet BLOB, le composant
échoue lorsque vous exécutez le package. Vous pouvez utiliser l' Éditeur du
gestionnaire de connexions du cache pour modifier des types de données de
colonne.

La transformation de recherche effectue des recherches sur le dataset de référence.


La boîte de dialogue Éditeur du gestionnaire de connexions du cache inclut les onglets
suivants :

Onglet Général
Utilisez l’onglet Général de la boîte de dialogue Éditeur du gestionnaire de connexions
du cache pour indiquer s’il faut lire le cache depuis un fichier ou l’enregistrer dans un
fichier.

Options
Nom du gestionnaire de connexions
Fournit un nom unique pour la connexion de fichiers cache dans le flux de travail. Le
nom fourni sera affiché dans le concepteur SSIS .

Description
Décrit la connexion. Il est recommandé de décrire la connexion selon son objectif, de
sorte que les packages soient correctement documentés et plus faciles à gérer.

Utiliser un cache de fichier


Indiquez s'il faut utiliser ou non un fichier cache.

7 Notes

Le niveau de protection du package ne s'applique pas au fichier cache. Si le fichier


cache contient des informations sensibles, utilisez une liste de contrôle d'accès
(ACL) pour restreindre l'accès à l'emplacement ou au dossier dans lequel vous
stockez le fichier. Vous devez autoriser l'accès à certains comptes uniquement. Pour
plus d’informations, consultez Accéder aux fichiers utilisés par des packages.

Si vous configurez le gestionnaire de connexions du cache pour utiliser un fichier cache,


il effectuera l'une des actions suivantes :

Il enregistrera les données dans le fichier lorsqu'une transformation du cache est


configurée pour écrire des données depuis une source de données dans le flux de
données dans le gestionnaire de connexions du cache. Pour plus d'informations,
consultez Cache Transform.

Il lira des données à partir du fichier cache.

Nom de fichier
Tapez le chemin d'accès et le nom du fichier cache.
Parcourir
Recherchez le fichier cache.

Actualiser les métadonnées


Supprimez les métadonnées de colonne dans le gestionnaire de connexions du cache et
remplissez à nouveau celui-ci avec les métadonnées de colonne d'un fichier cache
sélectionné.

Onglet Colonnes
Utilisez l'onglet Colonnes de la boîte de dialogue Éditeur du gestionnaire de
connexions du cache pour configurer les propriétés de chaque colonne dans le cache.

Options
Colonne
Spécifiez le nom de la colonne.

Position d'index
Spécifiez quelles colonnes sont des colonnes d'index en indiquant la position d'index de
chaque colonne. L'index est une collection composée d'une ou de plusieurs colonnes.

Pour les colonnes qui ne sont pas des index, la position d'index est 0.

Pour les colonnes d'index, la position d'index est un nombre séquentiel, positif. Ce
nombre indique l'ordre dans lequel la transformation de recherche compare des lignes
dans le dataset de référence aux lignes de la source de données d'entrée. La colonne
comportant la plupart des valeurs doit avoir la position d'index la plus faible.

7 Notes

Lorsque la transformation de recherche est configurée pour utiliser un gestionnaire


de connexions du cache, seules les colonnes d'index dans le dataset de référence
peuvent être mappées avec des colonnes d'entrée. En outre, toutes les colonnes
d'index doivent être mappées.

Type
Spécifiez le type de données de la colonne.

Longueur
Indique le type de données de la colonne. Si le type de données le permet, vous pouvez
mettre à jour Longueur.
Précision
Spécifie la précision pour certains types de données de colonne. La précision est le
nombre de chiffres qui composent un nombre. Si le type de données le permet, vous
pouvez mettre à jour Précision.

Mise à l’échelle
Spécifie l'échelle pour certains types de données de colonne. L'échelle est le nombre de
chiffres à droite du séparateur décimal dans un nombre. Si le type de données le
permet, vous pouvez mettre à jour Échelle.

Page de codes
Spécifie la page de codes pour le type de colonne. Si le type de données le permet, vous
pouvez mettre à jour Page de codes.

Tâches associées
Implémenter une transformation de recherche en mode Cache complet à l'aide du
gestionnaire de connexions du cache
transformation de fusion
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de fusion combine deux datasets triés en un seul datasets. Les lignes
de chaque ensemble de données sont insérées dans la sortie en fonction des valeurs de
leurs colonnes clés.

L'intégration de la transformation de fusion dans un flux de données permet de réaliser


les tâches suivantes :

Fusionner des données de deux sources de données, telles que des tables et des
fichiers.

Créer des ensembles de données complexes en imbriquant des transformations de


fusion.

Fusionner des lignes à nouveau après avoir corrigé les erreurs affectant les
données.

La transformation de fusion est similaire aux transformations d'union totale. Utilisez la


transformation d'union totale au lieu de la transformation de fusion dans les situations
suivantes :

Les entrées de transformation ne sont pas triées.

La sortie combinée n'a pas besoin d'être triée.

La transformation a au moins trois entrées.

Spécifications relatives aux entrées


La transformation de fusion requiert des données triées pour ses entrées. Pour plus
d’informations sur cette spécification importante, consultez Trier des données pour les
transformations de fusion et de jointure de fusion.

La transformation de fusion requiert également que les colonnes fusionnées dans ses
entrées aient des métadonnées correspondantes. Par exemple, vous ne pouvez pas
fusionner une colonne de type de données numérique avec une colonne de type de
données caractère. Si les données sont du type de données chaîne, la colonne de la
deuxième entrée doit avoir une longueur inférieure ou égale à celle de la colonne de la
première entrée avec laquelle elle est fusionnée.
Dans le Concepteur SSIS , l’interface utilisateur de la transformation de fusion mappe
automatiquement les colonnes qui ont les mêmes métadonnées. Vous pouvez ensuite
mapper manuellement les colonnes ayant des types de données compatibles.

Cette transformation a deux entrées et une sortie. Elle ne prend pas en charge de sortie
d'erreur.

Configuration de la transformation de fusion


Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par programme.

Pour plus d'informations sur les propriétés définissables par programmation, cliquez sur
l'une des rubriques suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Tâches associées
Pour plus d'informations sur la définition des propriétés, consultez les rubriques
suivantes :

Définir les propriétés d’un composant de flux de données

Trier des données pour les transformations de fusion et de jointure de fusion

Éditeur de transformation de fusion


Utilisez l’Éditeur de transformation de fusion pour définir des colonnes dans deux
datasets triés à fusionner.

) Important

La transformation de fusion requiert des données triées pour ses entrées. Pour plus
d’informations sur cette spécification importante, consultez Trier des données pour
les transformations de fusion et de jointure de fusion.

Options
Nom de colonne de sortie
Spécifiez le nom de la colonne de sortie.

Entrée de fusion 1
Sélectionnez la colonne à fusionner sous la forme Entrée de fusion 1.

Entrée de fusion 2
Sélectionnez la colonne à fusionner sous la forme Entrée de fusion 2.

Voir aussi
Transformation de jointure de fusion
Transformation d'union totale
Flux de données
Transformations Integration Services
transformation de jointure de fusion
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de jointure de fusion fournit une sortie générée par la réunion, à


l'aide d'une jointure FULL, LEFT ou INNER, de deux ensembles de données triés. Par
exemple, vous pouvez utiliser une jointure LEFT pour associer une table comprenant des
informations sur des produits à une table indiquant le pays ou la région dans lesquels
un produit a été fabriqué. Le résultat est une table qui répertorie tous les produits et
leur pays ou région d'origine.

Vous pouvez configurer la transformation de jointure de fusion comme suit :

Indiquez si la jointure est une jointure FULL, LEFT ou INNER.

Spécifiez les colonnes utilisées par la jointure.

Indiquez si la transformation traite les valeurs NULL comme des valeurs égales.

7 Notes

Si les valeurs NULL ne sont pas traitées comme des valeurs égales, la
transformation les gère de la même manière que le moteur de base de
données SQL Server.

Cette transformation a deux entrées et une sortie. Elle ne prend pas en charge de sortie
d'erreur.

Spécifications relatives aux entrées


La transformation de jointure de fusion requiert des données triées pour ses entrées.
Pour plus d’informations sur cette spécification importante, consultez Trier des données
pour les transformations de fusion et de jointure de fusion.

Spécifications relatives à la jointure


La transformation de jointure de fusion requiert que les colonnes jointes aient des
métadonnées correspondantes. Par exemple, vous ne pouvez pas joindre une colonne
d'un type de données numérique à une colonne d'un type de données caractère. Si les
données sont du type de données chaîne, la colonne de la deuxième entrée doit avoir
une longueur inférieure ou égale à celle de la colonne de la première entrée avec
laquelle elle est fusionnée.

Limitation du nombre de tampons


Vous n'avez plus à configurer la valeur de la propriété MaxBuffersPerInput car Microsoft
a apporté des modifications qui réduisent le risque que la transformation de jointure de
fusion consomme de la mémoire en excès. Ce problème s'est quelquefois produit
lorsque plusieurs entrées de jointure de fusion produisaient des données à des taux
irréguliers.

Tâches associées
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par programme.

Pour plus d'informations sur la définition des propriétés de cette transformation, cliquez
sur l'une des rubriques suivantes :

Étendre un dataset à l'aide de la transformation de jointure de fusion

Définir les propriétés d’un composant de flux de données

Trier des données pour les transformations de fusion et de jointure de fusion

Éditeur de transformation de jointure de fusion


La boîte de dialogue Éditeur de transformation de jointure de fusion permet de
préciser le type de jointure, les colonnes qui composent cette dernière et les colonnes
de sortie, afin de pouvoir fusionner deux entrées combinées par une opération de
jointure.

) Important

La transformation de jointure de fusion requiert des données triées pour ses


entrées. Pour plus d’informations sur cette spécification importante, consultez Trier
des données pour les transformations de fusion et de jointure de fusion.

Options
Type de jointure
Permet de préciser l'utilisation d'une jointure interne, externe gauche ou entière.

Échanger les entrées


Permet d’intervertir l’ordre des entrées par le bouton Échanger les entrées . Ceci peut
s'avérer utile dans le cas de jointure externe gauche.

Entrée
Permet de sélectionner, dans la liste des entrées disponibles, chaque colonne à inclure à
la sortie fusionnée.

Les entrées se présentent sous forme de deux tables distinctes. Permet de choisir les
colonnes à inclure dans la sortie. Pour créer une jointure entre tables, faites glisser les
colonnes. Pour supprimer une jointure, sélectionnez-la et appuyez sur la touche Suppr.

Colonne d'entrée
Permet de choisir une colonne à inclure à la sortie fusionnée d'après la liste de colonnes
disponibles dans l'entrée sélectionnée.

Alias de sortie
Permet de saisir un alias pour chaque colonne de sortie. Par défaut, il s'agit du nom de
la colonne d'entrée ; vous pouvez néanmoins choisir un nom unique et descriptif.

Voir aussi
Transformation de fusion
Transformation d'union totale
Transformations Integration Services
Étendre un dataset à l'aide de la
transformation de jointure de fusion
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour pouvoir ajouter et configurer une transformation de jointure de fusion, le package


doit inclure au moins une tâche de flux de données et deux composants de flux de
données qui fournissent des entrées à la transformation de jointure de fusion.

La transformation de jointure de fusion requiert deux entrées triées. Pour plus


d’informations, consultez Trier des données pour les transformations de fusion et de
jointure de fusion.

Pour étendre un dataset


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Flux de données , puis dans la Boîte à outils, faites glisser la
transformation de jointure de fusion vers la surface de dessin.

4. Connectez la transformation de jointure de fusion au flux de données en faisant


glisser le connecteur à partir d'une source de données ou d'une transformation
précédente vers la transformation de jointure de fusion.

5. Double-cliquez sur la transformation de jointure de fusion.

6. Dans la boîte de dialogue Éditeur de transformation de jointure de fusion ,


sélectionnez le type de jointure à utiliser dans la liste Type de jointure .

7 Notes

Si vous sélectionnez Jointure externe gauche , vous pouvez cliquer sur


Échanger les entrées pour échanger les entrées et convertir la jointure
externe gauche en jointure externe droite.

7. Faites glisser des colonnes de l'entrée de gauche vers des colonnes de l'entrée de
droite afin de spécifier les colonnes de jointure. Si les colonnes portent le même
nom, vous pouvez cocher la case Clé de jointure afin que la transformation de
jointure de fusion crée la jointure.

7 Notes

Vous pouvez créer des jointures uniquement entre des colonnes ayant la
même position de tri et les jointures doivent être créées dans l'ordre spécifié
par la position de tri. Si vous essayez de créer des jointures dans le désordre,
l’Éditeur de transformation de jointure de fusion vous demande de créer des
jointures supplémentaires pour les positions d’ordre de tri ignorées.

7 Notes

Par défaut, la sortie est triée sur les colonnes de jointure.

8. Dans les entrées de gauche et de droite, activez les cases à cocher des colonnes
supplémentaires à inclure dans la sortie. Les colonnes de jointure sont incluses par
défaut.

9. Mettez éventuellement à jour les noms des colonnes de sortie dans la colonne
Alias de sortie .

10. Cliquez sur OK.

11. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Transformation de jointure de fusion
Transformations Integration Services
Chemins Integration Services
tâche de flux de données
Trier des données pour les
transformations de fusion et de jointure
de fusion
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Dans Integration Services, les transformations de fusion et de jointure de fusion


nécessitent des données triées pour leurs entrées. Les données d'entrée doivent être
triés physiquement et les options de tri doivent être définies sur les sorties et les
colonnes de sortie dans la source ou dans la transformation amont. Si les options de tri
indiquent que les données sont triées alors qu'elles ne le sont pas en réalité, les résultats
de l'opération de fusion ou de jointure de fusion sont imprévisibles.

Tri des données


Pour trier ces données, procédez selon l'une des méthodes suivantes :

Dans la source, utilisez une clause ORDER BY dans l'instruction utilisée pour
charger les données.

Dans le flux de données, insérez une transformation de tri avant la transformation


de fusion ou de jointure de fusion.

Si les données sont des données de chaînes, les transformations de fusion ou de


jointure de fusion requièrent que ces valeurs de chaîne soient triées en utilisant le
classement Windows. Pour fournir des valeurs de chaîne aux transformations de fusion
et de jointure de fusion triées à l'aide du classement Windows, procédez comme suit :

Pour fournir des valeurs de chaîne triées à l'aide du classement


Windows

Utilisez une transformation de tri pour trier les données.

La transformation de tri utilise le classement Windows pour trier les valeurs de


chaîne.

-ou-
Utilisez l’opérateur Transact-SQL CAST pour commencer par effectuer un cast des
valeurs varchar en valeurs nvarchar , puis utilisez la clause Transact-SQL ORDER BY
pour trier les données.

) Important

Vous ne pouvez pas utiliser la clause ORDER BY seule parce qu'elle utilise un
classement SQL Server pour trier les valeurs de chaîne. L’utilisation du
classement SQL Server peut générer un ordre de tri différent du classement
Windows, la transformation de fusion ou de jointure de fusion pouvant alors
générer des résultats inattendus.

Définition d'options de tri sur les données


Deux propriétés de tri importantes doivent être définies pour la source ou la
transformation amont qui fournit des données aux transformations de fusion et de
jointure de fusion :

La propriété IsSorted de la sortie qui indique si les données ont été triées. Cette
propriété doit avoir la valeur True.

) Important

L’affectation de la valeur True à la propriété IsSorted ne permet pas de trier


les données. Cette propriété indique uniquement aux composants en aval que
les données ont été précédemment triées.

La propriété SortKeyPosition des colonnes de sortie qui indique si une colonne est
triée, son ordre de tri et la séquence dans laquelle plusieurs colonnes sont triées.
Cette propriété doit être définie pour chaque colonne de données triées.

Si vous utilisez une transformation de tri pour trier les données, elle définit ces deux
propriétés tel que requis par la transformation de fusion ou de jointure de fusion.
Autrement dit, la transformation de tri affecte la valeur True à la propriété IsSortedde sa
sortie, puis définit les propriétés SortKeyPosition de ses colonnes de sortie.

Toutefois, si vous n'utilisez pas de transformation de tri pour trier les données, vous
devez définir ces propriétés de tri manuellement sur la source ou la transformation
amont. Pour définir manuellement les propriétés de tri sur la source ou la transformation
en amont, appliquez la procédure suivante.
Pour définir manuellement des attributs de tri sur un composant
source ou de transformation

1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Sous l’onglet Flux de données , recherchez la source ou la transformation en


amont appropriée, ou faites-la glisser de la Boîte à outils vers l’aire de conception.

4. Cliquez avec le bouton droit sur le composant, puis cliquez sur Afficher l’éditeur
avancé.

5. Cliquez sur l'onglet Propriétés d'entrée et de sortie .

6. Cliquez sur Sortie de <nom_composant>, puis définissez la propriété IsSorted sur


True.

7 Notes

Si vous affectez manuellement la valeur True à la propriété IsSorted de la


sortie et que les données ne sont pas triées, il se peut que des données soient
manquantes ou que des comparaisons de données incorrectes figurent dans
la transformation de fusion ou de jointure de fusion en aval lors de l’exécution
du package.

7. Développez Colonnes de sortie.

8. Cliquez sur la colonne que vous souhaitez identifier comme triée et affectez à sa
propriété SortKeyPosition une valeur entière non nulle conformément aux
indications suivantes :

La valeur entière doit représenter une séquence numérique, partant de 1 et


incrémentée de 1.

Une valeur entière positive indique un ordre de tri croissant.

Une valeur entière négative indique un ordre de tri décroissant. (Si un


nombre négatif est défini, la valeur absolue du nombre détermine la position
de la colonne dans la séquence de tri.)

Une valeur par défaut de 0 indique que la colonne n'est pas triée. Laissez la
valeur 0 pour les colonnes de sortie qui ne participent pas au tri.
Comme exemple de définition de la propriété SortKeyPosition , prenons
l’instruction Transact-SQL suivante qui charge des données dans une source :

SELECT * FROM MyTable ORDER BY ColumnA, ColumnB DESC, ColumnC

Pour cette instruction, vous définissez la propriété SortKeyPosition de chaque


colonne comme suit :

Affectez la valeur 1 à la propriété SortKeyPosition de ColumnA. Cela indique


que ColumnA est la première colonne à trier et dans l'ordre croissant.

Affectez la valeur -2 à la propriété SortKeyPosition de ColumnB. Cela indique


que ColumnB est la deuxième colonne à trier et dans l'ordre décroissant.

Affectez la valeur 3 à la propriété SortKeyPosition de ColumnC. Cela indique


que ColumnC est la troisième colonne à trier et dans l'ordre croissant.

9. Répétez l'étape 8 pour chaque colonne triée.

10. Cliquez sur OK.

11. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Transformation de fusion
Transformation de jointure de fusion
Transformations Integration Services
Chemins Integration Services
tâche de flux de données
transformation de multidiffusion
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de multidiffusion distribue son entrée vers une ou plusieurs sorties.


Cette transformation est similaire à la transformation de fractionnement conditionnel.
Les deux transformations dirigent une entrée vers plusieurs sorties. Leur différence
réside dans le fait que la transformation de multidiffusion dirige chaque ligne vers
chaque sortie, tandis que la transformation de fractionnement conditionnel dirige une
ligne vers une seule sortie. Pour plus d'informations, consultez Conditional Split
Transformation.

Vous configurez la transformation de multidiffusion en ajoutant des sorties.

À l'aide de la transformation de multidiffusion, un package peut créer des copies


logiques des données. Cette fonctionnalité est utile lorsque le package doit appliquer
plusieurs ensembles de transformations aux mêmes données. Par exemple, une copie
des données est agrégée et seules les informations de résumé sont chargées à leur
emplacement de destination, tandis qu'une autre copie des données est enrichie de
valeurs recherchées et de colonnes dérivées avant d'être chargée à son emplacement de
destination.

Cette transformation a une entrée et plusieurs sorties. Elle ne prend pas en charge de
sortie d'erreur.

Configuration de la transformation de
multidiffusion
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d’informations sur les propriétés que vous pouvez définir par programmation,
consultez Propriétés communes.

Tâches associées
Pour plus d’informations sur la définition des propriétés de ce composant, consultez
Définir les propriétés d’un composant de flux de données.
Éditeur de transformation de multidiffusion
Utilisez la boîte de dialogue Éditeur de transformation de multidiffusion pour afficher
et définir les propriétés de la transformation propre à chaque sortie.

Options
Sorties
Permet de sélectionner une sortie à gauche pour en voir les propriétés dans le tableau
de droite.

Propriétés
Toutes les propriétés de sortie répertoriées sont en lecture seule à l’exception des
propriétés Nom et Description.

Voir aussi
Flux de données
Transformations Integration Services
transformation de commande OLE DB
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de commande OLE DB exécute une instruction SQL pour chaque ligne
d'un flux de données. Par exemple, vous pouvez exécuter une instruction SQL qui insère,
met à jour ou supprime des lignes d'une table de base de données.

Vous pouvez configurer la transformation de commande OLE DB de plusieurs manières :

Spécifiez l'instruction SQL exécutée par la transformation pour chaque ligne.

Spécifiez le nombre de secondes accordées pour l'exécution de l'instruction SQL.

Spécifiez la page de codes par défaut.

En général, l'instruction SQL inclut des paramètres. Les valeurs des paramètres sont
stockées dans des colonnes externes dans l'entrée de transformation et le mappage
d'une colonne d'entrée à une colonne externe mappe une colonne d'entrée à un
paramètre. Par exemple, pour rechercher des lignes dans la table DimProduct par la
valeur de leur colonne ProductKey et pour les supprimer, vous pouvez mapper la
colonne externe nommée Param_0 à la colonne d’entrée nommée ProductKey , puis
exécuter l’instruction SQL DELETE FROM DimProduct WHERE ProductKey = ? . La
transformation de commande OLE DB fournit les noms des paramètres, que vous ne
pouvez pas modifier. Les noms des paramètres sont Param_0, Param_1et ainsi de suite.

Si vous configurez la transformation de commande OLE DB à l'aide de la boîte de


dialogue Éditeur avancé , les paramètres de l'instruction SQL peuvent être mappés
automatiquement à des colonnes externes dans l'entrée de transformation (et les
caractéristiques de chaque paramètre définis) en cliquant sur le bouton Actualiser .
Toutefois, si le fournisseur OLE DB utilisé par la transformation de commande OLE DB ne
prend pas en charge la dérivation d'informations de paramètres à partir du paramètre,
vous devez configurer les colonnes externes manuellement. Cela signifie que vous devez
ajouter une colonne pour chaque paramètre à l’entrée externe de la transformation,
mettre à jour les noms de colonnes de façon à utiliser des noms tels que Param_0,
spécifier la valeur de la propriété DBParamInfoFlags, puis mapper les colonnes d’entrée
qui contiennent des valeurs de paramètres aux colonnes externes.

La valeur de DBParamInfoFlags représente les caractéristiques du paramètre. Par


exemple, la valeur 1 indique qu'il s'agit d'un paramètre d'entrée et la valeur 65 indique
qu'il s'agit d'un paramètre d'entrée pouvant contenir une valeur nulle. Les valeurs
doivent correspondre aux valeurs de l'énumération OLE DB DBPARAMFLAGSENUM. Pour
plus d'informations, consultez la documentation de référence OLE DB.

La transformation de commande OLE DB inclut la propriété personnalisée


SQLCommand . La propriété peut être mise à jour par une expression de propriété lors
du chargement du package. Pour plus d’informations, consultez Expressions Integration
Services (SSIS), Utiliser des expressions de propriété dans des packages et Propriétés
personnalisées des transformations.

Cette transformation a une entrée, une sortie standard et une sortie d'erreur.

Journalisation
Vous pouvez consigner les appels émis par la transformation de commande OLE DB vers
les fournisseurs de données externes. Vous pouvez utiliser cette fonctionnalité de
journalisation pour résoudre des problèmes liés aux connexions et aux commandes vers
des sources de données externes effectuées par la transformation de commande OLE
DB. Pour consigner les appels que la transformation de commande OLE DB adresse à
des fournisseurs de données externes, activez la journalisation des packages et
sélectionnez l'événement Diagnostic au niveau du package. Pour plus d’informations,
consultez Outils de dépannage pour l’exécution des packages.

Tâches associées
Vous pouvez configurer la transformation à l'aide du concepteur SSIS ou du modèle
objet. Pour plus d'informations sur la configuration par programmation de cette
transformation, consultez le Guide du développeur.

Configurer la transformation de commande


OLE DB
Pour ajouter et configurer une transformation de commande OLE DB, le package doit
déjà contenir au moins une tâche de flux de données et une source telle qu'une source
de fichier plat ou une source OLE DB. Cette transformation est en général utilisée pour
l'exécution de requêtes paramétrables.

Pour configurer la transformation de commande OLE DB


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.
2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l'onglet Flux de données puis, à partir de la Boîte à outils, faites glisser
la transformation de commande OLE DB sur la surface de dessin.

4. Connectez la transformation de commande OLE DB au flux de données en faisant


glisser un connecteur (la flèche verte ou rouge) à partir d’une source de données
ou d’une transformation précédente vers la transformation de commande OLE DB.

5. Cliquez avec le bouton droit sur le composant et sélectionnez Modifier ou Afficher


l’ éditeur avancé.

6. Sous l'onglet Gestionnaires de connexions , sélectionnez un gestionnaire de


connexions OLE DB dans la liste Gestionnaires de connexions . Pour plus
d’informations, consultez OLE DB Connection Manager.

7. Cliquez sur l’onglet Propriétés du composant, puis sur les points de suspension
(...) dans la zone SqlCommand.

8. Dans l’ Éditeur de valeur de chaîne, tapez l’instruction SQL paramétrable avec un


point d’interrogation (?) comme marqueur de paramètre pour chaque paramètre.

9. Cliquez sur Actualiser. Quand vous cliquez sur Actualiser, la transformation crée
une colonne pour chaque paramètre de la collection Colonnes externes et définit
la propriété DBParamInfoFlags.

10. Cliquez sur l'onglet Propriétés d'entrée et de sortie .

11. Développez Entrée de commande OLE DB, puis Colonnes externes.

12. Vérifiez que Colonnes externes contient une colonne pour chaque paramètre de
l'instruction SQL. Les noms des colonnes sont Param_0, Param_1et ainsi de suite.

Vous ne devez pas modifier les noms des colonnes. Si vous modifiez les noms des
colonnes, Integration Services génère une erreur de validation pour la
transformation de commande OLE DB.

De même, vous ne devez pas modifier le type de données. La propriété DataType


de chaque colonne est définie avec le type de données correct.

13. Si Colonnes externes ne répertorie aucune colonne, vous devez les ajouter
manuellement.

Cliquez une fois sur Ajouter une colonne pour chaque paramètre de
l'instruction SQL.
Mettez à jour les noms des colonnes comme suit : Param_0, Param_1et ainsi
de suite.

Spécifiez une valeur dans la propriété DBParamInfoFlags. La valeur doit


correspondre à une valeur de l'énumération OLE DB DBPARAMFLAGSENUM.
Pour plus d'informations, consultez la documentation de référence OLE DB.

Spécifiez le type de données de la colonne et, en fonction du type de


données, spécifiez la page de codes, la longueur, la précision et l'échelle de la
colonne.

Pour supprimer un paramètre inutilisé, sélectionnez-le dans Colonnes


externes, puis cliquez sur Supprimer une colonne.

Cliquez sur Mappage de colonnes et mappez les colonnes de la liste


Colonnes d'entrée disponibles à des paramètres de la liste Colonnes de
destination disponibles .

14. Cliquez sur OK.

15. Pour enregistrer le package mis à jour, cliquez sur Enregistrer dans le menu Fichier
.

Voir aussi
Flux de données
Transformations Integration Services
transformation de l'échantillonnage du
pourcentage
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de l'échantillonnage du pourcentage crée un échantillon d'ensemble


de données en sélectionnant un pourcentage des lignes d'entrée de transformation.
L'échantillon d'ensemble de données est une sélection aléatoire de lignes dans l'entrée
de transformation, visant à rendre l'échantillon résultant représentatif de l'entrée.

7 Notes

Outre le pourcentage spécifié, la transformation de l'échantillonnage du


pourcentage utilise un algorithme pour déterminer si une ligne doit être incluse
dans l'échantillon en sortie. Par conséquent, le nombre de lignes dans l'échantillon
en sortie peut ne pas refléter exactement le pourcentage spécifié. Par exemple, la
spécification de la valeur 10 % pour un ensemble de données d'entrée composé de
25 000 lignes peut ne pas générer un échantillon de 2 500 lignes ; celui-ci peut
avoir un peu plus ou un peu moins de lignes.

La transformation de l'échantillonnage du pourcentage est spécialement utile pour


l'exploration de données. Cette transformation vous permet de diviser de façon
aléatoire un jeu de données en deux jeux de données : un pour mettre au point le
modèle d'exploration de données, l'autre pour le tester.

La transformation de l'échantillonnage du pourcentage permet également de créer des


échantillons d'ensembles de données en vue de développer des packages. Vous pouvez
appliquer la transformation de l'échantillonnage du pourcentage à un flux de données
afin de réduire uniformément la taille de l'ensemble de données tout en conservant les
caractéristiques de ses données. Le package de test peut ensuite s'exécuter plus
rapidement car il utilise un ensemble de données réduit mais représentatif.

Configuration de la transformation de
l'échantillonnage du pourcentage
Vous pouvez spécifier une valeur d'échantillonnage de départ afin de modifier le
comportement du générateur de nombres aléatoires qu'utilise la transformation pour
sélectionner les lignes. Si la même valeur d'échantillonnage de départ est utilisée, la
transformation crée toujours le même échantillon en sortie. Si aucune valeur de départ
n'est spécifiée, la transformation utilise le nombre de cycles du système d'exploitation
pour créer le nombre aléatoire. Par conséquent, vous pouvez utiliser une valeur de
départ standard pour vérifier les résultats de la transformation pendant le
développement et le test d'un package, puis opter pour une valeur de départ aléatoire
lorsque le package passe en production.

Cette transformation est similaire à la transformation d'échantillonnage de lignes, qui


crée un échantillon d'ensemble de données en sélectionnant un nombre spécifié de
lignes d'entrée. Pour plus d’informations, consultez Transformation d’échantillonnage de
lignes.

La transformation d’échantillonnage par pourcentage inclut la propriété personnalisée


SamplingValue . La propriété peut être mise à jour par une expression de propriété lors
du chargement du package. Pour plus d’informations, consultez Expressions Integration
Services (SSIS), Utiliser des expressions de propriété dans des packages et Propriétés
personnalisées des transformations.

La transformation a une entrée et deux sorties. Elle ne prend pas en charge de sortie
d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Pour plus d’informations sur la façon de définir les propriétés, consultez Définir les
propriétés d’un composant de flux de données.

Éditeur de transformation de l'échantillonnage


du pourcentage
La boîte de dialogue Éditeur de transformation de l'échantillonnage du pourcentage
permet de fractionner une partie d'une entrée en un exemple par le biais d'un certain
pourcentage de lignes. Cette transformation divise l'entrée en deux sorties distinctes.
Options
Pourcentage de lignes
Permet d'indiquer le pourcentage de lignes de l'entrée à utiliser comme exemple.

Il est possible de spécifier la valeur de cette propriété en utilisant l'expression d'une


propriété.

Nom de sortie de l'exemple


Fournissez un nom unique pour la sortie qui contiendra les lignes échantillonnées. Le
nom fourni s'affichera dans le Concepteur SSIS .

Nom de sortie non sélectionnée


Fournissez un nom unique pour la sortie qui contiendra les lignes exclues de
l'échantillonnage. Le nom fourni s'affichera dans le Concepteur SSIS .

Utiliser la valeur de départ aléatoire suivante


Définissez la valeur de départ d'échantillonnage du générateur de nombres aléatoires
qu'utilise la transformation pour créer un échantillon. Ceci est recommandé uniquement
pour le développement et les tests. La fonctionnalité de transformation utilise le nombre
de cycles de Microsoft Windows si aucune valeur de départ aléatoire n'est mentionnée.
transformation de tableau croisé
dynamique
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de tableau croisé dynamique transforme un dataset normalisé en une


version moins normalisée mais plus compacte en croisant dynamiquement les données
d'entrée sur une valeur de colonne. Par exemple, un dataset Commandes normalisé
comprenant le nom de client, le produit et la quantité achetée contient généralement
plusieurs lignes pour un même client ayant acheté plusieurs produits ; chaque ligne
indiquant les détails de commande d’un produit différent. En croisant dynamiquement
le dataset sur la colonne de produit, la transformation de tableau croisé dynamique peut
sortir un dataset contenant une seule ligne par client. Cette ligne unique indique tous
les achats du client ; le nom des produits est indiqué sous forme de nom de colonne et
la quantité sous forme de valeur de la colonne de produit. Dans la mesure où tous les
clients n'achètent pas chacun des produits, de nombreuses colonnes peuvent contenir
des valeurs null.

Lorsqu'un dataset est croisé dynamiquement, les colonnes d'entrée jouent des rôles
différents dans le processus de croisement dynamique. Une colonne peut jouer les rôles
suivants :

La colonne est transmise à la sortie sans subir aucune modification. De


nombreuses lignes d'entrées pouvant se traduire par une seule ligne de sortie, la
transformation copie uniquement la première valeur d'entrée de la colonne.

La colonne joue le rôle de clé ou de partie de la clé qui identifie un ensemble


d'enregistrements.

La colonne définit le tableau croisé dynamique. Les valeurs de cette colonne sont
associées aux colonnes du dataset croisé dynamiquement.

La colonne contient des valeurs qui sont placées dans les colonnes créées par le
tableau croisé dynamique.

Cette transformation a une entrée, une sortie standard et une sortie d'erreur.

Trier et dupliquer les lignes


Pour une plus grande efficacité du croisement dynamique des données, autrement dit
pour créer aussi peu d'enregistrements dans le dataset de sortie que possible, les
données d'entrée doivent être triées sur la colonne tableau croisé dynamique. Si les
données ne sont pas triées, la transformation de tableau croisé dynamique risque de
générer plusieurs enregistrements pour chaque valeur de la clé d'ensemble, qui est la
colonne définissant l'appartenance à l'ensemble. Par exemple, si un dataset est croisé
dynamiquement sur une colonne Nom , mais que les noms ne sont pas triés, le dataset
de sortie risque de contenir plus d’une ligne pour chaque client car un croisement
dynamique est effectué chaque fois que la valeur de la colonne Nom change.

Les données d'entrée peuvent contenir des lignes en double, ce qui entraîne l'échec de
la transformation de tableau croisé dynamique. L'expression « lignes en double »
désigne des lignes qui ont les mêmes valeurs dans les colonnes clés d'ensemble et dans
les colonnes tableau croisé dynamique. Pour éviter cet échec, vous pouvez soit
configurer la transformation de manière à rediriger les lignes d'erreur vers une sortie
d'erreur, soit préagréger les valeurs de manière à ce qu'il n'y ait pas de lignes en double.

Options de la boîte de dialogue Tableau croisé


dynamique
Configurez l’opération d’ajout de tableau croisé dynamique en définissant les options de
la boîte de dialogue Tableau croisé dynamique . Pour ouvrir la boîte de dialogue
Tableau croisé dynamique , ajoutez la transformation de tableau croisé dynamique au
package dans SQL Server Data Tools (SSDT), puis cliquez avec le bouton droit sur le
composant et cliquez sur Modifier.

La liste suivante décrit les options de la boîte de dialogue Tableau croisé dynamique .

Clé de tableau croisé dynamique


Spécifie la colonne à utiliser pour les valeurs de la ligne supérieure (ligne d'en-tête) du
tableau.

Définir la clé
Spécifie la colonne à utiliser pour les valeurs de la colonne gauche du tableau. La date
d'entrée doit être triée sur cette colonne.

Valeur de tableau croisé dynamique


Spécifie la colonne à utiliser pour les valeurs du tableau, à l'exception des valeurs de la
ligne d'en-tête et de la colonne gauche.

Ignorer les valeurs clés de tableau croisé dynamique sans correspondance et les
signaler après l'exécution de DataFlow
Sélectionnez cette option pour configurer la transformation de tableau croisé
dynamique afin d’ignorer les lignes contenant des valeurs non reconnues dans la
colonne Clé de tableau croisé dynamique et de générer toutes les valeurs clés de
tableau croisé dynamique dans un message de journal, lorsque le package est exécuté.

Vous pouvez également configurer la transformation pour générer les valeurs en


affectant à la propriété personnalisée PassThroughUnmatchedPivotKeys la valeur True.

Générer des colonnes de sortie de tableau croisé dynamique à partir de valeurs


Entrez les valeurs clés de tableau croisé dynamique dans cette zone pour permettre à la
transformation de tableau croisé dynamique de créer des colonnes de sortie pour
chaque valeur. Vous pouvez soit entrer les valeurs avant d'exécuter le package, soit
procéder comme suit.

1. Sélectionnez l’option Ignorer les valeurs clés de tableau croisé dynamique sans
correspondance et les signaler après l’exécution de DataFlow , puis cliquez sur
OK dans la boîte de dialogue Tableau croisé dynamique pour enregistrer les
modifications apportées à la transformation de tableau croisé dynamique.

2. Exécutez le package.

3. Une fois l’exécution du package réussie, cliquez sur l’onglet Progression et


recherchez le message de journal des informations à partir de la transformation de
tableau croisé dynamique qui contient les valeurs clés de tableau croisé
dynamique.

4. Cliquez avec le bouton droit sur le message, puis cliquez sur Copier le texte du
message.

5. Cliquez sur Arrêter le débogage dans le menu Débogage pour basculer en mode
design.

6. Cliquez avec le bouton droit sur la transformation de tableau croisé dynamique,


puis cliquez sur Modifier.

7. Désactivez l’option Ignorer les valeurs clés de tableau croisé dynamique sans
correspondance et les signaler après l’exécution de DataFlow , puis collez les
valeurs clés de tableau croisé dynamique dans la zone Générer des colonnes de
sortie de tableau croisé dynamique à partir de valeurs en utilisant le format
suivant.

[valeur1],[valeur2],[valeur3]

Générer des colonnes maintenant


Cliquez pour créer une colonne de sortie pour chaque valeur clé de tableau croisé
dynamique listée dans la zone Générer des colonnes de sortie de tableau croisé
dynamique à partir de valeurs .

Les colonnes de sortie apparaissent dans la zone Colonnes de sorties croisées


dynamiquement existantes .

Colonnes de sorties croisées dynamiquement existantes


Liste les colonnes de sortie des valeurs clés de tableau croisé dynamique

Le tableau suivant illustre un jeu de données avant que les données n’aient été croisées
dynamiquement dans la colonne Year .

Year Nom du produit Total

2004 HL Mountain Tire 1504884.15

2003 Road Tire Tube 35920.50

2004 Water Bottle - 30 oz. 2805.00

2002 Touring Tire 62364.225

Le tableau suivant illustre un jeu de données après que les données ont été croisées
dynamiquement dans la colonne Year .

Nom du produit 2002 2003 2004

HL Mountain Tire 141164.10 446297.775 1504884.15

Road Tire Tube 3592.05 35920.50 89801.25

Water Bottle - 30 oz. NULL NULL 2805.00

Touring Tire 62364.225 375051.60 1041810.00

Pour croiser dynamiquement les données de la colonne Year , comme indiqué ci-dessus,
vous devez définir les options suivantes dans la boîte de dialogue Tableau croisé
dynamique .

Year est sélectionné dans la zone de liste Clé de tableau croisé dynamique .

Product Name est sélectionné dans la zone de liste Définir la clé .

Total est sélectionné dans la zone de liste Valeur de tableau croisé dynamique .

Les valeurs suivantes sont entrées dans la zone Générer des colonnes de sortie de
tableau croisé dynamique à partir de valeurs .
[2002],[2003],[2004]

Configuration de la transformation Pivot


Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans la boîte de dialogue
Éditeur avancé , cliquez sur l'une des rubriques suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Contenu associé
Pour plus d’informations sur la définition des propriétés de ce composant, consultez
Définir les propriétés d’un composant de flux de données.

Voir aussi
Transformation de suppression de tableau croisé dynamique
Flux de données
Transformations Integration Services
transformation de calcul du nombre de
lignes
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de calcul du nombre de lignes compte les lignes à mesure qu'elles


passent par un flux de données et stocke le nombre final dans une variable.

SQL Server Integration Services peut utiliser les nombres de lignes pour mettre à jour les
variables utilisées dans des scripts, des expressions et des expressions de propriétés.
(Par exemple, la variable qui stocke le nombre de lignes peut mettre à jour le texte d'un
message électronique avec ce nombre.) La variable utilisée par la transformation de
calcul du nombre de lignes doit déjà exister et figurer dans l'étendue de la tâche de flux
de données à laquelle appartient le flux de données avec la transformation de calcul du
nombre de lignes.

La transformation stocke la valeur de nombre de lignes dans la variable uniquement


après que la dernière ligne est passée par la transformation. Par conséquent, la valeur de
la variable n'est pas mise à jour à temps pour utiliser la valeur mise à jour dans le flux de
données qui contient la transformation Nombre de lignes. Vous pouvez utiliser la
variable mise à jour dans un flux de données distinct.

Cette transformation a une entrée et une sortie. Elle ne prend pas en charge de sortie
d'erreur.

Configuration de la transformation du calcul du


nombre de lignes
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des transformations


Tâches associées
Pour plus d’informations sur la définition des propriétés de ce composant, consultez
Définir les propriétés d’un composant de flux de données.

Voir aussi
Variables Integration Services (SSIS)
Flux de données
Transformations Integration Services
transformation d'échantillonnage de
lignes
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation d'échantillonnage de lignes permet d'obtenir un sous-ensemble


sélectionné aléatoirement d'un ensemble de données d'entrée. Vous pouvez spécifier la
taille exacte de l'échantillon de sortie ainsi que la valeur de départ du générateur de
nombres aléatoires.

Il existe de nombreuses applications de l'échantillonnage aléatoire. Par exemple, une


entreprise souhaitant sélectionner aléatoirement 50 employés pour l'attribution de prix
dans une loterie peut utiliser la transformation d'échantillonnage de lignes dans la base
de données des employés afin de générer le nombre exact de gagnants.

La transformation d'échantillonnage de lignes permet également de créer, lors du


développement des packages, un ensemble de données réduit mais représentatif. Vous
pouvez tester l'exécution des packages et la transformation des données avec des
données très représentatives, mais plus rapidement car c'est un échantillon aléatoire qui
est utilisé, au lieu de l'ensemble complet des données. Étant donné que l'échantillon de
dataset utilisé par le package de test a toujours la même taille, le recours à l'échantillon
de sous-ensemble facilite également l'identification des problèmes de performances
dans le package.

Cette transformation est similaire à la transformation de l'échantillonnage par


pourcentage, qui crée un échantillon de dataset en sélectionnant un pourcentage de
lignes d'entrée. Consultez Transformation de l’échantillonnage du pourcentage.

Configuration de la transformation
d'échantillonnage de lignes
La transformation d'échantillonnage de lignes crée un échantillon de dataset en
sélectionnant un nombre spécifié de lignes de l'entrée de transformation. La sélection
de lignes de l'entrée de transformation étant aléatoire, l'échantillon obtenu est
représentatif de l'entrée. Vous pouvez également spécifier la valeur de départ utilisée
par le générateur de nombres aléatoires afin de définir la façon dont la transformation
sélectionne les lignes.
L'utilisation de la même valeur aléatoire de départ sur la même entrée de
transformation crée toujours le même échantillon en sortie. Si aucune valeur de départ
n'est spécifiée, la transformation utilise le nombre de cycles du système d'exploitation
pour créer le nombre aléatoire. Par conséquent, vous pouvez utiliser la même valeur de
départ pendant le test, pour vérifier les résultats de la transformation durant le
développement et le test du package, puis adopter une valeur aléatoire de départ
lorsque le package passe en production.

La transformation d’échantillonnage de lignes inclut la propriété personnalisée


SamplingValue . La propriété peut être mise à jour par une expression de propriété lors
du chargement du package. Pour plus d’informations, consultez Expressions Integration
Services (SSIS), Utiliser des expressions de propriété dans des packages et Propriétés
personnalisées des transformations.

Cette transformation a une entrée et deux sorties. Elle ne possède aucune sortie
d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Pour plus d'informations sur la définition des propriétés, consultez.

Éditeur de transformation d'échantillonnage de


ligne (page Échantillonnage)
Utilisez la boîte de dialogue Éditeur de transformation d'échantillonnage de ligne pour
échantillonner une partie d'une entrée à l'aide d'un nombre de lignes spécifié. Cette
transformation divise l'entrée en deux sorties distinctes.

Options
Nombre de lignes
Définissez le nombre de lignes de l'entrée à utiliser comme échantillon.
Il est possible de spécifier la valeur de cette propriété en utilisant l'expression d'une
propriété.

Nom de sortie de l'exemple


Fournissez un nom unique pour la sortie qui contiendra les lignes échantillonnées. Le
nom fourni sera affiché dans le concepteur SSIS.

Nom de sortie non sélectionnée


Fournissez un nom unique pour la sortie qui contiendra les lignes exclues de
l'échantillonnage. Le nom fourni sera affiché dans le concepteur SSIS.

Utiliser la valeur de départ aléatoire suivante


Définissez la valeur de départ d'échantillonnage du générateur de nombres aléatoires
qu'utilise la transformation pour créer un échantillon. Ceci est recommandé uniquement
pour le développement et les tests. La transformation utilise le nombre de cycles
Microsoft Windows comme valeur de départ si une valeur de départ aléatoire n'est pas
définie.

Tâches associées
Définir les propriétés d’un composant de flux de données
Composant Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le composant Script héberge le script et permet à un package d'inclure du code de


script personnalisé et de l'exécuter. Vous pouvez utiliser le composant Script dans des
packages pour :

Appliquer plusieurs transformations aux données, au lieu d'utiliser plusieurs


transformations dans le flux de données. Par exemple, un script peut ajouter les
valeurs de deux colonnes, puis calculer la moyenne de la somme.

Accéder aux règles métier dans un assembly .NET existant. Par exemple, un script
peut appliquer une règle métier qui spécifie la plage de valeurs valides dans une
colonne Income .

Utiliser des formules et des fonctions personnalisées en plus des fonctions et des
opérateurs fournis par la grammaire des expressions Integration Services . Par
exemple, validez les numéros de carte de crédit qui utilisent la formule LUHN.

Valider les données des colonnes et ignorer les enregistrements contenant des
données non valides. Par exemple, un script peut évaluer un montant de frais de
port raisonnable et ignorer les enregistrements présentant des montants
extrêmement élevés ou bas.

Le composant Script est un moyen simple et rapide d'inclure des fonctions


personnalisées dans un flux de données. Néanmoins, si vous envisagez de réutiliser le
code de script dans plusieurs packages, vous devez envisager de programmer un
composant personnalisé au lieu d'utiliser le composant Script. Pour plus d’informations,
consultez Développement d’un composant de flux de données personnalisé.

7 Notes

Si le composant Script contient un script qui essaie de lire la valeur d'une colonne
qui est NULL, il échoue lorsque vous exécutez le package. Il est recommandé que
votre script utilise la méthode IsNull pour déterminer si la colonne est NULL avant
d’essayer de lire la valeur de la colonne.

Le composant Script peut être utilisé en tant que source, transformation ou destination.
Il prend en charge une entrée et plusieurs sorties. En fonction de l'utilisation qui est faite
du composant, il prendra en charge une entrée ou des sorties, ou bien les deux. Le script
est appelé par chaque ligne de l'entrée ou de la sortie.

Utilisé comme source, le composant Script prend en charge plusieurs sorties.

Utilisé comme transformation, le composant Script prend en charge une entrée et


plusieurs sorties.

Utilisé comme destination, le composant Script prend en charge une entrée.

Le composant Script ne prend pas en charge les affichages des erreurs.

Lorsque vous avez décidé que le composant Script est le choix approprié pour votre
package, vous devez configurer les entrées et sorties, développer le script que le
composant utilise et configurer le composant lui-même.

Présentation des modes du composant Script


Dans le concepteur SSIS , le composant Script propose deux modes : le mode Création
des métadonnées et le mode Création du code. En mode Création des métadonnées,
vous pouvez ajouter et modifier les entrées et les sorties du composant Script, mais
vous ne pouvez pas écrire de code. Une fois toutes les entrées et sorties configurées,
vous devez basculer en mode Création du code afin d'écrire le script. Le composant
Script génère automatiquement le code de base à partir des métadonnées des entrées
et des sorties. Si vous modifiez les métadonnées une fois que le composant Script a
généré le code de base, votre code risque de ne plus se compiler, car le code de base
compilé mis à jour sera peut-être incompatible avec votre code.

Écriture du script utilisé par le composant


Le composant Script utilise Microsoft Visual Studio Tools for Applications (VSTA) comme
environnement d’écriture des scripts. Vous pouvez accéder à VSTA à partir de l’Éditeur
de transformation de script. Pour plus d’informations, consultez Éditeur de
transformation de script (page Script).

Le composant Script propose un projet VSTA qui inclut une classe auto-générée,
nommée ScriptMain, qui représente les métadonnées du composant. Par exemple, si le
composant Script est utilisé en tant que transformation avec trois sorties, ScriptMain
inclut une méthode pour chaque sortie. ScriptMain est le point d'entrée dans le script.

VSTA contient l'ensemble des fonctionnalités standard de l'environnement Visual Studio


, comme l'éditeur Visual Studio à code de couleur, IntelliSense et l'Explorateur d'objets.
Le script utilisé par le composant Script est stocké dans la définition du package. Quand
vous concevez le package, le code de script est écrit temporairement dans un fichier
projet.

VSTA prend en charge les langages de programmation Microsoft Visual C# et Microsoft


Visual Basic.

Pour plus d’informations sur la programmation du composant Script, consultez


Extension du flux de données avec le composant Script. Pour obtenir des informations
spécifiques sur la configuration du composant Script en tant que source, transformation
ou destination, consultez Développement de types spécifiques de composants Script.
Pour obtenir d’autres exemples, notamment une destination ODBC, démontrant
l’utilisation du composant Script, consultez Exemples supplémentaires du composant
Script.

7 Notes

Contrairement aux versions antérieures pour lesquelles il était possible d’indiquer si


les scripts étaient précompilés, tous les scripts de SQL Server 2008 Integration
Services (SSIS) et des versions ultérieures sont précompilés. Lorsqu'un script est
précompilé, le moteur de langage n'est pas chargé au moment de l'exécution et le
package s'exécute plus rapidement. Toutefois, les fichiers binaires précompilés
occupent un espace disque important.

Configuration du composant Script


Vous pouvez configurer le composant Script de plusieurs manières :

Sélectionnez les colonnes d'entrée à référencer.

7 Notes

Vous pouvez configurer une seule entrée quand vous utilisez le concepteur
SSIS .

Indiquez le script exécuté par le composant.

Spécifiez le langage de script

Fournissez des listes de variables en lecture seule et en lecture/écrite séparées par


des virgules.
Ajoutez des sorties supplémentaires, ainsi que des colonnes de sortie auxquelles le
script affecte des valeurs.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Configuration du composant Script dans le concepteur


Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS ,
cliquez sur la rubrique suivante :

Définir les propriétés d’un composant de flux de données

Configuration du composant Script par programmation


Pour plus d’informations sur les propriétés définissables dans la fenêtre Propriétés ou
par programmation, cliquez sur l’une des rubriques suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Pour plus d'informations sur la définition des propriétés, cliquez sur l'une des rubriques
suivantes :

Définir les propriétés d’un composant de flux de données

Sélectionner le type de composant de script


La boîte de dialogue Sélectionner le type de composant de script permet d'indiquer s'il
est nécessaire de créer une transformation de script préconfigurée pour servir de source,
de transformation ou de destination.

Pour en savoir plus sur le composant Script, consultez Configuration du composant


Script dans l’éditeur de composant de script. Pour en savoir plus sur la programmation
du composant de script, consultez Extension du flux de données avec le composant
Script.

Options
Selon que vous choisissez Source, Destinationou Transformation , cela affecte la
configuration de la transformation de script ainsi que les pages de l'Éditeur de
transformation de script.
Éditeur de transformation de script (Page
Gestionnaire de connexions)
La page Gestionnaire de connexions de l’Éditeur de transformation de script permet
de spécifier les connexions que doit utiliser le script.

Pour en savoir plus sur le composant Script, consultez Configuration du composant


Script dans l’éditeur de composant de script. Pour en savoir plus sur la programmation
du composant de script, consultez Extension du flux de données avec le composant
Script.

Options
Connection managers
Affiche la liste des connexions disponibles que peut utiliser le script.

Nom
Tapez un nom unique descriptif pour la connexion.

Gestionnaire de connexions
Effectuez une sélection dans la liste des gestionnaires de connexions disponibles ou
sélectionnez <Nouvelle connexion> pour ouvrir la boîte de dialogue Ajout d’un
gestionnaire de connexions SSIS.

Description
Tapez une description pour la connexion.

Ajouter
Ajoute une connexion à la liste Gestionnaires de connexions .

Remove
Supprime la connexion sélectionnée de la liste Gestionnaires de connexions .

Éditeur de transformation de script (page


Colonnes d'entrée)
Utilisez la page Colonnes d’entrée de la boîte de dialogue Éditeur de transformation de
script pour définir les propriétés des colonnes d’entrée.

7 Notes
La page Colonnes d’entrée ne s’affiche pas pour les composants source qui ont des
sorties, mais pas d’entrées.

Pour en savoir plus sur le composant Script, consultez Configuration du composant


Script dans l’éditeur de composant de script. Pour en savoir plus sur la programmation
du composant de script, consultez Extension du flux de données avec le composant
Script.

Options
Nom de l'entrée
Sélectionnez le nom d'une entrée dans la liste.

Colonnes d'entrée disponibles


Utilisez les cases à cocher pour spécifier les colonnes que la transformation de script
utilisera.

Colonne d'entrée
Sélectionnez dans la liste le nom d'une colonne d'entrée pour chaque ligne. Vos
sélections se reflètent dans les sélections des cases à cocher de la table Colonnes
d’entrée disponibles.

Alias de sortie
Permet de saisir un alias pour chaque colonne de sortie. Par défaut, il s'agit du nom de
la colonne d'entrée ; vous pouvez néanmoins choisir un nom unique et descriptif.

Type d'utilisation
Spécifiez si la transformation de script traite chaque colonne en ReadOnly ou en
ReadWrite.

Éditeur de transformation de script (page


Entrées et sorties)
Utilisez la page Entrées et sorties de la boîte de dialogue Éditeur de transformation de
script pour ajouter, supprimer et configurer les entrées et les sorties destinées à la
transformation de script.

7 Notes

Les composants source disposent de sorties mais d'aucune entrée ; à l'inverse, les
composants de destination possèdent des entrées mais aucune sortie. Les
transformations, elles, ont les deux.

Pour en savoir plus sur le composant Script, consultez Configuration du composant


Script dans l’éditeur de composant de script. Pour en savoir plus sur la programmation
du composant de script, consultez Extension du flux de données avec le composant
Script.

Options
Inputs and outputs
Permet de sélectionner une entrée ou une sortie à gauche pour en voir les propriétés
dans le tableau de droite. Les propriétés pouvant être modifiées varient en fonction de
la sélection faite. La plupart des propriétés affichées sont en lecture seule. Pour plus
d'informations sur chacune de ces propriétés, consultez les rubriques suivantes.

Propriétés communes

Propriétés personnalisées des transformations

Ajouter une sortie


Ajoute une sortie à la liste.

Ajouter une colonne


Sélectionnez un dossier dans lequel placer la nouvelle colonne de sortie, puis ajoutez la
colonne en cliquant sur Ajouter une colonne.

Supprimer une sortie


Sélectionnez une sortie, puis supprimez-la en cliquant sur Supprimer une sortie.

Supprimer une colonne


Sélectionnez une colonne, puis cliquez sur le bouton Supprimer une colonnepour la
supprimer.

Éditeur de transformation de script (page


Script)
Utilisez l'onglet Script de la boîte de dialogue Éditeur de transformation de script pour
définir un script et les propriétés associées.

Pour en savoir plus sur le composant Script, consultez Configuration du composant


Script dans l’éditeur de composant de script. Pour en savoir plus sur la programmation
du composant de script, consultez Extension du flux de données avec le composant
Script.

Options
Propriétés
Affichez et modifiez les propriétés de la transformation de script. La plupart des
propriétés affichées sont en lecture seule. Vous pouvez modifier les propriétés suivantes
:

Valeur Description

Description Décrit la transformation de script en terme de fonction.

LocaleID Définissez les paramètres régionaux pour fournir des informations


spécifiques à la région relatives au tri et à la conversion de date et
d'heure.

Nom Entrez un nom descriptif pour le composant.

ValidateExternalMetadata Indiquez si la transformation de script valide les métadonnées de


colonne par rapport aux sources de données externes lors de la
conception. La valeur false diffère la validation jusqu'à l'exécution.

ReadOnlyVariables Tapez une liste de variables séparées par une virgule pour l'accès
en lecture seule par la transformation de script.

Remarque : les noms des variables respectent la casse.

ReadWriteVariables Tapez une liste de variables séparées par une virgule pour l'accès
en lecture/écriture par la transformation de script.

Remarque : les noms des variables respectent la casse.

ScriptLanguage Sélectionnez le langage de script que le composant de script doit


utiliser.

Pour définir le langage de script par défaut pour les composants et


les tâches de script, utilisez l'option Langage de script dans la page
Général de la boîte de dialogue Options .

UserComponentTypeName Spécifie la classe ScriptComponentHost et l’assembly


Microsoft.SqlServer.TxScript qui prennent en charge
l’infrastructure SQL Server .

Modifier le script
Utilisez MicrosoftVisual Studio Tools for Applications (VSTA) pour créer ou modifier un
script.
Contenu associé
Transformations Integration Services

Extension du flux de données avec le composant Script


Transformation de dimension à variation
lente
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de dimension à variation lente coordonne la mise à jour et l'insertion


d'enregistrements dans des tables de dimension d'entrepôts de données. Par exemple,
vous pouvez utiliser cette transformation pour configurer les sorties de la
transformation qui insèrent et mettent à jour des enregistrements dans la table
DimProduct de la base de données AdventureWorksDW2012 à l’aide des données de la
table Production.Products de la base de données OLTP AdventureWorks.

) Important

L'Assistant Dimension à variation lente prend uniquement en charge les connexions


à SQL Server.

La transformation de dimension à variation lente fournit la fonctionnalité suivante pour


la gestion des dimensions à variation lente :

Correspondance entre les lignes entrantes et les lignes de la table de recherche


afin d'identifier les lignes nouvelles et existantes.

Identification des lignes entrantes qui contiennent des modifications lorsque


celles-ci ne sont pas autorisées.

Identification des enregistrements de membres inférés qui nécessitent une mise à


jour.

Identification des lignes entrantes qui contiennent des modifications historiques


nécessitant l'insertion de nouveaux enregistrements et la mise à jour des
enregistrements expirés.

Détection des lignes entrantes qui contiennent des modifications nécessitant la


mise à jour des enregistrements existants, y compris les enregistrements expirés.

La transformation de dimension à variation lente prend en charge quatre types de


modifications : attribut variable, attribut historique, attribut fixe et membre déduit.

Les modifications « modification d'attribut » remplacent les enregistrements


existants. Ce type de modification est équivalent à une modification de Type 1. La
transformation de dimension à variation lente dirige ces lignes vers une sortie
nommée Sortie de mises à jour d’attribut de validation.

Les modifications « attribut d'historique » créent des enregistrements au lieu de


mettre à jour les enregistrements existants. La seule modification autorisée dans
un enregistrement existant est une mise à jour d'une colonne qui indique si
l'enregistrement est actif ou expiré. Ce type de modification est équivalent à une
modification de Type 2. La transformation de dimension à variation lente dirige ces
lignes vers deux sorties : Sortie d’insertions d’attribut d’historique et Nouvelle
sortie.

Les modifications « attribut fixe » indiquent que la valeur de colonne ne doit pas
changer. La transformation de dimension à variation lente détecte les
modifications et peut diriger les lignes modifiées vers une sortie nommée Sortie
d’attribut fixe.

« Membre inféré » indique que la ligne est un enregistrement de membre inféré


dans la table de dimension. Un membre inféré existe lorsqu'une table de faits fait
référence à un membre de la dimension qui n'est pas encore chargé. Un
enregistrement de membre inféré minimal est créé en prévision des données de
dimension pertinentes, qui sont fournies dans un chargement ultérieur des
données de dimension. La transformation de dimension à variation lente dirige ces
lignes vers une sortie nommée Sortie de mises à jour de membre déduit. Lorsque
les données du membre inféré sont chargées, vous pouvez mettre à jour
l'enregistrement existant au lieu d'en créer un.

7 Notes

La transformation de dimension à variation lente ne prend pas en charge les


modifications de Type 3, qui nécessitent des modifications de la table de
dimension. En identifiant les colonnes avec le type de mise à jour d'attribut fixe,
vous pouvez capturer les valeurs de données qui sont candidates aux modifications
de Type 3.

Au moment de l'exécution, la transformation de dimension à variation lente essaie tout


d'abord de faire correspondre la ligne entrante à un enregistrement de la table de
recherche. Si aucune correspondance n’est trouvée, la ligne entrante est un nouvel
enregistrement ; ainsi, la transformation de dimension à variation lente n’effectue
aucune opération supplémentaire et dirige la ligne vers la Nouvelle sortie.

Si une correspondance est trouvée, la transformation de dimension à variation lente


détecte si la ligne contient des modifications. Si c’est le cas, elle identifie le type de mise
à jour pour chaque colonne et dirige la ligne vers la Sortie de mises à jour d’attribut de
validation, la Sortie d’attribut fixe, la Sortie d’insertions d’attribut d’historiqueou la
Sortie de mises à jour de membre déduit. Si la ligne est inchangée, la transformation
de dimension à variation lente dirige la ligne vers la Sortie inchangée.

Sorties de la transformation de dimension à


variation lente
La transformation de dimension à variation lente possède une entrée et jusqu'à six
sorties. Une sortie dirige une ligne vers le sous-ensemble du flux de données qui
correspond aux exigences de mise à jour et d'insertion de la ligne. Cette transformation
ne prend pas de sortie d'erreur en charge.

Le tableau suivant décrit les sorties de transformation et les exigences de leurs flux de
données ultérieurs. Les exigences décrivent le flux de données créé par l'Assistant
Dimension à variation lente.

Output Description Exigences de flux de données

Sortie de L'enregistrement de la table Une transformation de commande OLE DB met à


mises à jour de recherche est mis à jour. jour l'enregistrement à l'aide d'une instruction
d’attribut Cette sortie est utilisée pour UPDATE.
de les lignes à attributs
validation variables.

Sortie Les valeurs des lignes qui ne Aucun flux de données par défaut n'est créé. Si la
d’attribut doivent pas changer ne transformation est configurée de façon à continuer
fixe correspondent pas aux après avoir rencontré des modifications de
valeurs de la table de colonnes d'attributs fixes, vous devez créer un flux
recherche. Cette sortie est de données qui capture ces lignes.
utilisée pour les lignes à
attributs fixes.

Sortie La table de recherche Les transformations de colonnes dérivées créent


d’insertions contient au moins une ligne des colonnes pour les indicateurs de ligne active et
d’attribut correspondante. La ligne de ligne expirée. Une transformation de
d’historique marquée comme « active » commande OLE DB met à jour l'enregistrement qui
doit maintenant être doit maintenant être marqué comme « expiré ». La
marquée comme ayant ligne avec les nouvelles valeurs de colonne est
« expiré ». Cette sortie est dirigée vers la nouvelle sortie, où la ligne est
utilisée pour les lignes insérée et marquée comme « active ».
d'attributs d'historique.
Output Description Exigences de flux de données

Sortie de Des lignes pour les membres Une transformation de commande OLE DB met à
mises à jour de dimension inférés sont jour l'enregistrement à l'aide d'une instruction SQL
de membre insérées. Cette sortie est UPDATE.
déduit utilisée pour les lignes de
membres inférés.

Nouvelle La table de recherche ne Une transformation de colonnes dérivées définit


sortie contient aucune ligne l'indicateur de ligne active et une destination OLE
correspondante. La ligne est DB insère la ligne.
ajoutée à la table de
dimension. Cette sortie est
utilisée pour les nouvelles
lignes et les modifications de
lignes à attributs
d'historique.

Sortie Les valeurs de la table de Aucun flux de données n'est créé car la
inchangée recherche correspondent aux transformation de dimension à variation lente
valeurs de lignes. Cette sortie n'effectue aucune opération. Si vous souhaitez
est utilisée pour les lignes capturer ces lignes, vous devez créer un flux de
inchangées. données pour cette sortie.

Clés d'entreprise
La transformation de dimension à variation lente requiert au moins une colonne clé
d'entreprise.

La transformation de dimension à variation lente ne prend pas en charge les clés


d'entreprise nulles. Si les données incluent des lignes dans lesquelles la colonne clé
d'entreprise est nulle, ces lignes doivent être supprimées du flux de données. Vous
pouvez utiliser la transformation de fractionnement conditionnel pour filtrer les lignes
dont les colonnes clés d'entreprise contiennent des valeurs nulles. Pour plus
d'informations, consultez Conditional Split Transformation.

Optimisation des performances de la


transformation de dimension à variation lente
Pour les suggestions sur l’amélioration des performances de la transformation de
dimension à variation lente, consultez Fonctionnalités de performances de flux de
données.
Résolution des problèmes liés à la
transformation de dimension à variation lente
Vous pouvez consigner les appels émis par la transformation de dimension à variation
lente vers des fournisseurs de données externes. Vous pouvez utiliser cette
fonctionnalité de journalisation pour résoudre des problèmes liés à des connexions, des
commandes et des requêtes à des sources de données externes qu'effectue la
transformation de dimension à variation lente. Pour consigner les appels que la
transformation de dimension à variation lente adresse à des fournisseurs de données
externes, activez la journalisation des packages et sélectionnez l’événement Diagnostic
au niveau du package. Pour plus d’informations, consultez Outils de dépannage pour
l’exécution des packages.

Configuration de la transformation de
dimension à variation lente
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans la boîte de dialogue
Éditeur avancé ou par programmation, cliquez sur l'une des rubriques suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Pour plus d’informations sur la façon de définir les propriétés, consultez Définir les
propriétés d’un composant de flux de données.

Configuration des sorties de la transformation


de dimension à variation lente
La coordination de la mise à jour et de l'insertion d'enregistrements dans des tables de
dimension peut être une tâche complexe, en particulier si des modifications de Type 1 et
de Type 2 sont utilisées. SSIS Le concepteur propose deux manières de configurer la
prise en charge des dimensions à variation lente :

La boîte de dialogue Éditeur avancé , dans laquelle vous sélectionnez une


connexion, vous définissez des propriétés de composant courantes et
personnalisées, vous sélectionnez des colonnes d’entrée et vous définissez les
propriétés des colonnes sur les six sorties. Pour terminer la tâche de configuration
de la prise en charge d'une dimension à variation lente, vous devez créer
manuellement le flux de données pour les sorties utilisées par la transformation de
dimension à variation lente. Pour en savoir plus, voir Data Flow.

L'Assistant Chargement de dimension, qui vous guide lors des étapes de


configuration de la transformation de dimension à variation lente et de création du
flux de données pour les sorties de transformation. Pour modifier la configuration
des dimensions à variation lente, réexécutez l'Assistant Chargement de dimension.
Pour plus d’informations, consultez Configurer les sorties à l’aide de l’Assistant
Dimension à variation lente.

Tâches associées
Définir les propriétés d’un composant de flux de données

Contenu associé
Gestion des dimensions à variation lente dans SSIS
Optimisation de l’Assistant Dimension à variation lente
Configurer les sorties à l'aide de
l'Assistant Dimension à variation lente
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

L'Assistant Dimension à variation lente fonctionne comme un éditeur pour la


transformation de dimension à variation lente. La création et la configuration du flux de
données pour des données de dimension à variation lente peuvent être des tâches
complexes. L'Assistant Dimension à variation lente constitue le moyen le plus simple de
créer le flux de données pour les sorties de transformation de dimension à variation
lente ; il vous guide lors des étapes de mappage de colonnes, de sélection de colonnes
clés d'entreprise, de définition des attributs de modification de colonnes et de
configuration de la prise en charge des membres de dimension inférés.

Vous devez sélectionner au moins une colonne clé d'entreprise dans la table de
dimension et la mapper à une colonne d'entrée. La valeur de la clé d'entreprise lie un
enregistrement de la source à un enregistrement de la table de dimension. La
transformation utilise ce mappage pour rechercher l'enregistrement dans la table de
dimension et déterminer si un enregistrement est nouveau ou en cours d'évolution. En
règle générale, la clé d'entreprise est la clé primaire dans la source, mais il peut s'agir
d'une autre clé sous réserve qu'elle identifie de manière unique un enregistrement et
que sa valeur ne change pas. La clé d'entreprise peut également être une clé composite,
englobant plusieurs colonnes. La clé primaire de la table de dimension est généralement
une clé de substitution, en l'occurrence une valeur numérique générée
automatiquement par une colonne d'identité ou par une solution personnalisée telle
qu'un script.

Avant de pouvoir exécuter l'Assistant Dimension à variation lente, vous devez ajouter
une source et une transformation de dimension à variation lente au flux de données,
puis connecter la sortie de la source à l'entrée de la transformation de dimension à
variation lente. Le flux de données peut éventuellement inclure d'autres transformations
entre la source de données et la transformation de dimension à variation lente.

Pour ouvrir l’Assistant Dimension à variation lente dans le Concepteur SSIS , double-
cliquez sur la transformation de dimension à variation lente.

Création de sorties de dimensions à variation


lente
Pour créer des sorties de transformations de dimensions à variation
lente

1. Sélectionnez le gestionnaire de connexions pour accéder à la source de données


qui contient la table de dimension à mettre à jour.

Vous pouvez effectuer une sélection dans une liste de gestionnaires de connexions
inclus dans le package.

2. Sélectionnez la table ou vue de dimension à mettre à jour.

Après avoir sélectionné le gestionnaire de connexions, vous pouvez sélectionner la


table ou la vue à partir de la source de données.

3. Sélectionnez les attributs clés sur les colonnes et mappez les colonnes d'entrée aux
colonnes de la table de dimension.

Vous devez sélectionner au moins une colonne clé d'entreprise dans la table de
dimension et la mapper à une colonne d'entrée. D'autres colonnes d'entrée
peuvent être mappées à des colonnes de la table de dimension en tant que
mappages non-clés.

4. Sélectionnez le type de modification pour chaque colonne.

Modification d'attribut remplace les valeurs existantes dans les


enregistrements.

Attribut d'historique crée des enregistrements au lieu de mettre à jour des


enregistrements existants.

Attribut fixe indique que la valeur de colonne ne doit pas changer.

5. Définissez les options d'attributs fixes et variables.

Si vous configurez des colonnes de façon à utiliser le type de modification Attribut


fixe , vous pouvez spécifier si la transformation de dimension à variation lente
échoue lorsque des modifications sont détectées dans ces colonnes. Si vous
configurez des colonnes de façon à utiliser le type de modification Modification
d'attribut , vous pouvez spécifier si tous les enregistrements correspondants (y
compris les enregistrements obsolètes) sont mis à jour.

6. Définissez les options d'attributs d'historique.

Si vous configurez des colonnes de façon à utiliser le type de modification Attribut


d'historique , vous devez choisir comment effectuer la distinction entre les
enregistrements actifs et expirés. Vous pouvez utiliser une colonne d'indicateurs de
lignes actives ou deux colonnes de date pour identifier les lignes actives et
expirées. Si vous utilisez la colonne d'indicateurs de lignes actives, vous pouvez lui
affecter les valeurs Currentet True pour les lignes actives et Expired et False pour
les lignes expirées. Vous pouvez également entrer des valeurs personnalisées. Si
vous utilisez deux colonnes de date, une date de début et une date de fin, vous
pouvez spécifier la date à utiliser lors de la définition des valeurs de colonnes de
date en tapant une date ou en sélectionnant une variable système et en utilisant sa
valeur.

7. Spécifiez la prise en charge des membres inférés et sélectionnez les colonnes que
l'enregistrement de membre inféré contient.

Lors du chargement de mesures dans une table de faits, vous pouvez créer des
enregistrements minimaux pour les membres inférés qui n'existent pas encore.
Lorsque, par la suite, des données significatives seront disponibles, les
enregistrements de dimension pourront être mis à jour. Il est possible de créer les
types d'enregistrements minimaux suivants :

Un enregistrement dans lequel toutes les colonnes avec des types de


modification sont nulles.

Un enregistrement dans lequel une colonne booléenne indique que


l'enregistrement est un membre inféré.

8. Examinez les configurations créées par l'Assistant Dimension à variation lente. En


fonction des types de modifications pris en charge, différents ensembles de
composants de flux de données sont ajoutés au package.

Le schéma suivant illustre un exemple de flux de données qui prend en charge les
modifications d'attributs fixes, d'attributs variables et d'attributs d'historique, les
membres inférés et les modifications d'enregistrements correspondants.
Mise à jour de sorties de dimensions à variation
lente
Le moyen le plus simple de mettre à jour la configuration des sorties de transformations
de dimensions à variation lente consiste à réexécuter l'Assistant Dimension à variation
lente et à modifier les propriétés à partir des pages de l'Assistant. Vous pouvez
également mettre à jour la transformation de dimension à variation lente par le biais de
la boîte de dialogue Éditeur avancé ou par programmation.

Voir aussi
Transformation de dimension à variation lente
Aide (F1) de l'Assistant Dimension à
variation lente
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez l' Assistant Dimension à variation lente pour configurer le chargement des
données dans divers types de dimensions à variation lente. Cette section fournit l'aide
(accessible à l'aide de la touche F1) relative aux pages de cet Assistant. Le tableau
suivant décrit les rubriques de cette section.

Pour en savoir plus sur cet Assistant, consultez Slowly Changing Dimension
Transformation.

Assistant Dimension à variation lente


Présentation de l'Assistant Dimension à variation lente

Sélectionner une table et des clés de dimension (Assistant Dimension à variation lente)
Sélectionnez une table de dimension à variation lente et spécifiez ses colonnes clés.

Colonnes de dimensions à variation lente (Assistant Dimension à variation lente)


Sélectionnez le type de variation pour les colonnes sélectionnées de la dimension à
variation lente.

Options des attributs fixes et variables (Assistant Dimension à variation lente)


Paramétrez les options des attributs fixes et variables pour les colonnes de dimension.

Options des attributs d'historique (Assistant Dimension à variation lente)


Paramétrez les options des colonnes de la dimension d'attributs historiques.

Membres de la dimension inférés (Assistant Dimension à variation lente)


Paramétrez les options des membres inférés de la dimension.

Fin de l'Assistant Dimension à variation lente


Prenez connaissance des options de configuration sélectionnées par l'utilisateur.

Voir aussi
Transformation de dimension à variation lente
Configurer les sorties à l'aide de l'Assistant Dimension à variation lente
Assistant Dimension à variation lente
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez l' Assistant Dimension à variation lente pour configurer le chargement des
données dans divers types de dimensions à variation lente.

Pour en savoir plus sur cet Assistant, consultez Slowly Changing Dimension
Transformation.

Options
Ne plus afficher cette page
Option permettant d'ignorer cette page d'accueil la prochaine fois que vous ouvrez
l'Assistant.

Voir aussi
Configurer les sorties à l'aide de l'Assistant Dimension à variation lente
Sélectionner une table et des clés de
dimension (Assistant Dimension à
variation lente)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la page Sélectionner une table et des clés de dimension pour sélectionner une
table de dimension à charger. Mappez les colonnes du flux de données avec les
colonnes qui vont être chargées.

Pour en savoir plus sur cet Assistant, consultez Slowly Changing Dimension
Transformation.

Options
Connection manager
Sélectionnez un gestionnaire de connexions OLE DB existant dans la liste ou cliquez sur
Nouveau pour créer un gestionnaire de connexions OLE DB.

7 Notes

L’Assistant Dimension à variation lente prend en charge les gestionnaires de


connexions OLE DB et prend uniquement en charge les connexions à SQL Server.

Nouveau
Utilisez la boîte de dialogue Configurer le gestionnaire de connexions OLE DB pour
sélectionner un gestionnaire de connexions existant ou cliquez sur Nouvelle pour créer
une nouvelle connexion OLE DB.

Table ou vue
Sélectionnez une table ou une vue dans la liste.

Colonnes d'entrée
Sélectionnez dans la liste les colonnes d'entrée auxquelles vous voulez appliquer le
mappage.

Colonnes de dimension
Affiche toutes les colonnes de dimension disponibles.
Type de clé
Sélectionnez la colonne de dimension qui sera la clé d'entreprise. Vous devez avoir une
clé d'entreprise.

Voir aussi
Configurer les sorties à l'aide de l'Assistant Dimension à variation lente
Colonnes de dimensions à variation
lente (Assistant Dimension à variation
lente)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Colonnes de dimensions à variation lente pour


sélectionner un type de modification pour chaque colonne de dimension à variation
lente.

Pour en savoir plus sur cet Assistant, consultez Slowly Changing Dimension
Transformation.

Options
Colonnes de dimension
Sélectionnez une colonne de dimension dans la liste.

Modifier de type
Sélectionnez un Attribut fixeou sélectionnez l’un des deux types d’attributs variables.
Utilisez Attribut fixe lorsque la valeur d'une colonne ne doit pas changer ; Integration
Services traite alors les modifications comme des erreurs. Utilisez Modification
d'attribut pour remplacer les valeurs existantes par des valeurs modifiées. Utilisez
Attribut d'historique pour enregistrer les valeurs modifiées dans de nouveaux
enregistrements tout en marquant comme obsolètes les anciens enregistrements.

Remove
Sélectionnez une colonne de dimension et supprimez-la de la liste des colonnes
mappées en cliquant sur Supprimer.

Voir aussi
Configurer les sorties à l'aide de l'Assistant Dimension à variation lente
Options des attributs fixes et variables
(Assistant Dimension à variation lente)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Options des attributs fixes et variables pour spécifier
comment répondre aux modifications apportées aux attributs fixes et variables.

Pour en savoir plus sur cet Assistant, consultez Slowly Changing Dimension
Transformation.

Options
Attributs fixes
Pour les attributs fixes, indiquez si la tâche doit échouer lorsqu'un changement est
détecté dans un attribut fixe.

Modification des attributs


Pour les attributs variables, spécifiez si la tâche doit modifier les enregistrements
obsolètes ou expirés, en plus des enregistrements actuels, lorsqu'un changement est
détecté dans un attribut variable. Un enregistrement expiré est un enregistrement qui a
été remplacé par un enregistrement plus récent par une modification d'un attribut
d'historique (modification de Type 2). La sélection de cette option peut imposer des
exigences de traitement supplémentaires sur un objet multidimensionnel construit sur
l'entrepôt de données relationnelles.

Voir aussi
Configurer les sorties à l'aide de l'Assistant Dimension à variation lente
Options des attributs d'historique
(Assistant Dimension à variation lente)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Options des attributs d'historique pour afficher les
attributs d'historique par dates de début et de fin ou pour enregistrer les attributs
d'historique dans une colonne créée spécialement à cet effet.

Pour en savoir plus sur cet Assistant, consultez Slowly Changing Dimension
Transformation.

Options
Utiliser une seule colonne pour afficher les enregistrements actifs et expirés
Si vous choisissez d'utiliser une seule colonne pour enregistrer l'état des attributs
d'historique, les options suivantes sont disponibles :

Option Description

Colonne d'indicateur Sélectionnez une colonne dans laquelle indiquer


d'enregistrement actif l'enregistrement actif.

Valeur si actif Utilisez soit True soit Current pour indiquer que
l'enregistrement est actif.

Valeur d'expiration Utilisez soit False soit Expired pour indiquer que
l'enregistrement est une valeur historique.

Utiliser les dates de début et de fin pour identifier les enregistrements actifs et
expirés
La table de dimension pour cette option doit comprendre une colonne de date. Si vous
choisissez d'afficher les attributs d'historique par dates de début et de fin, les options
suivantes sont disponibles.

Option Description

Colonne de date de début Sélectionnez la colonne de la table de dimension qui doit


contenir la date de début.

Colonne de date de fin Sélectionnez la colonne de la table de dimension qui doit


contenir la date de fin.
Option Description

Variable de définition des Sélectionnez une variable de date dans la liste.


valeurs de date

Voir aussi
Configurer les sorties à l'aide de l'Assistant Dimension à variation lente
Membres de la dimension inférés
(Assistant Dimension à variation lente)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La boîte de dialogue Membres de la dimension inférés vous permet de spécifier les


options d'utilisation des membres inférés. Des membres inférés existent lorsqu'une table
de faits fait référence à des membres de la dimension qui ne sont pas encore chargés.
Lorsque les données du membre inféré sont chargées, vous pouvez mettre à jour
l'enregistrement existant au lieu d'en créer un.

Pour en savoir plus sur cet Assistant, consultez Slowly Changing Dimension
Transformation.

Options
Activer la prise en charge des membres inférés
Si vous décidez d'activer les membres inférés, vous devez sélectionner l'une des deux
options ci-dessous.

Toutes les colonnes dont le type est modifié sont NULL


Indique s'il convient d'entrer des valeurs NULL dans toutes les colonnes avec un type de
modification dans le nouvel enregistrement de membre inféré.

Utiliser une colonne de valeurs booléennes pour indiquer si l'enregistrement actif est
un membre inféré
Indique s'il convient d'utiliser une colonne de valeurs booléennes existante pour
indiquer si l'enregistrement en cours est un membre inféré.

Indicateur de membre inféré


Si vous avez choisi d'utiliser une colonne de valeurs booléennes pour indiquer les
membres inférés comme décrit ci-dessus, sélectionnez la colonne dans la liste.

Voir aussi
Configurer les sorties à l'aide de l'Assistant Dimension à variation lente
Fin de l'Assistant Dimension à variation
lente
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Fin de l'Assistant Dimension à variation lente pour vérifier
les choix que vous avez opérés dans l'Assistant avant que celui-ci n'élabore la prise en
charge des dimensions à variation lente.

Pour en savoir plus sur cet Assistant, consultez Slowly Changing Dimension
Transformation.

Options
Les sorties suivantes seront configurées
Vérifiez si la liste de sorties est conforme à vos besoins.

Voir aussi
Configurer les sorties à l'aide de l'Assistant Dimension à variation lente
transformation de tri
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de tri trie les données d'entrée dans l'ordre croissant ou décroissant
et copie les données triées dans sa sortie. Vous pouvez appliquer plusieurs tris à une
entrée ; chaque tri est identifié par un chiffre qui détermine l'ordre de tri. La colonne qui
possède le plus petit nombre est triée en premier, puis la colonne de tri ayant le
deuxième plus petit nombre, et ainsi de suite. Par exemple, si une colonne nommée
PaysRégion a un ordre de tri égal à 1 et qu’une colonne nommée Ville a un ordre de tri
égal à 2, la sortie est triée par pays/région puis par ville. Un nombre positif indique que
le tri est croissant, tandis qu'un nombre négatif indique qu'il est décroissant. Les
colonnes qui ne sont pas triées ont un ordre de tri égal à 0. Les colonnes qui ne sont pas
sélectionnées pour le tri sont automatiquement copiées dans la sortie de la
transformation avec les colonnes triées.

La transformation de tri comprend un ensemble d'options de comparaison qui


permettent de définir la façon dont la transformation gère les données de chaîne dans
une colonne. Pour plus d'informations, voir Comparing String Data.

7 Notes

La transformation de tri ne trie pas les GUID dans le même ordre que la clause
ORDER BY dans Transact-SQL. Alors que la transformation de tri trie les GUID
commençant par un numéro compris entre 0 et 9 avant les GUID commençant par
une lettre comprise entre A et F, la clause ORDER BY, telle qu'elle est implémentée
dans le Moteur de base de données SQL Server, les trie différemment. Pour plus
d’informations, consultez Clause ORDER BY (Transact-SQL).

La transformation de tri peut également supprimer les doublons de lignes dans le cadre
du tri. Les doublons de lignes sont des lignes possédant les mêmes valeurs de clé de tri.
La valeur de clé de tri est générée en fonction des options de comparaison de chaînes
en cours d'utilisation ; par conséquent, différentes chaînes littérales peuvent avoir les
mêmes valeurs de clé de tri. Dans les colonnes d'entrée, la transformation identifie en
tant que doublons les lignes qui ont des valeurs différentes mais la même clé de tri.

La transformation de tri inclut la propriété personnalisée MaximumThreads , qui peut


être mise à jour par une expression de propriété pendant le chargement du package.
Pour plus d’informations, consultez Expressions Integration Services (SSIS), Utiliser des
expressions de propriété dans des packages et Propriétés personnalisées des
transformations.

Cette transformation a une entrée et une sortie. Elle ne prend pas en charge les sorties
d'erreur.

Configuration de la transformation de tri


Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par programme.

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Tâches associées
Pour plus d’informations sur la définition des propriétés du composant, consultez Définir
les propriétés d’un composant de flux de données.

Éditeur de transformation de tri


Utilisez la boîte de dialogue Éditeur de transformation de tri pour sélectionner les
colonnes à trier, définir l'ordre de tri et indiquer si les doublons sont supprimés.

Options
Colonnes d'entrée disponibles
Définissez les colonnes à trier en utilisant les cases à cocher.

Nom
Affiche le nom de chaque colonne d'entrée disponible.

Relais
Indique s'il faut inclure la colonne dans la sortie triée.

Colonne d'entrée
Sélectionnez dans la liste le nom d'une colonne d'entrée pour chaque ligne. Vos
sélections se reflètent dans les sélections des cases à cocher de la table Colonnes
d'entrée disponibles .

Alias de sortie
Permet de saisir un alias pour chaque colonne de sortie. Par défaut, il s'agit du nom de
la colonne d'entrée ; vous pouvez néanmoins choisir un nom unique et descriptif.

Type de tri
Indiquez si vous voulez effectuer un tri croissant ou décroissant.

Ordre de tri
Indiquez l'ordre de tri des colonnes. Vous devez le faire manuellement pour chaque
colonne.

Indicateurs de comparaison
Pour plus d’informations sur les options de comparaison de chaînes, consultez
Comparaison des données chaînes.

Supprimer les lignes avec des valeurs de tri en double


Indiquez si la transformation copie les lignes en double dans la sortie de transformation
ou crée une seule entrée pour tous les doublons en fonction des options de
comparaison de chaînes définies.

Voir aussi
Flux de données
Transformations Integration Services
Transformation d'extraction de terme
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation d'extraction de terme extrait des termes à partir de texte d'une


colonne d'entrée de transformation, puis écrit les termes dans une colonne de sortie de
transformation. La transformation fonctionne uniquement avec du texte en langue
anglaise et utilise uniquement son propre dictionnaire d'anglais et ses propres
informations linguistiques.

Vous pouvez utiliser la transformation d'extraction de terme pour découvrir le contenu


d'un dataset. Par exemple, du texte contenant des messages électroniques peut fournir
des commentaires utiles sur des produits ; vous pourriez donc utiliser la transformation
d'extraction de terme pour extraire les rubriques de discussion dans les messages et
ainsi analyser les commentaires.

Termes extraits et types de données


La transformation d'extraction de terme peut extraire uniquement des noms,
uniquement des expressions nominales, ou les deux. Un nom est un nom unique ; une
expression nominale est constituée d'au moins deux mots, dont l'un est un nom et
l'autre un nom ou un adjectif. Par exemple, si la transformation utilise l’option «
uniquement les noms », elle extrait des termes comme bicycle et landscape; si elle utilise
l’option « uniquement les expressions nominales », elle extrait des termes comme new
blue bicycle, bicycle helmetet boxed bicycles.

Les articles et les pronoms ne sont pas extraits. Par exemple, la transformation
d’extraction de termes extrait le terme bicycle des textes the bicycle, my bicycleet that
bicycle.

La transformation d'extraction de terme génère un score pour chaque terme extrait. Ce


score peut être une valeur TFIDF ou la fréquence brute, autrement dit le nombre de fois
que le terme normalisé apparaît dans l'entrée. Dans les deux cas, le score est représenté
par un nombre réel supérieur à 0. Par exemple, le score TFIDF peut avoir la valeur 0,5 et
la fréquence peut être égale à 1 ou 2.

La sortie de la transformation d'extraction de terme contient seulement deux colonnes.


Une colonne contient les termes extraits, tandis que l'autre contient le score. Les noms
par défaut des colonnes sont Terme et Score. La colonne de texte de l'entrée pouvant
contenir plusieurs termes, la sortie de la transformation d'extraction de terme possède
généralement plus de lignes que l'entrée.

Si les termes extraits sont écrits dans une table, ils peuvent être utilisés par d'autres
transformations de recherche telles que les transformations de recherche, de recherche
de terme et de recherche floue.

La transformation d'extraction de terme ne peut fonctionner qu'avec du texte d'une


colonne dont le type de données est DT_WSTR ou DT_NTEXT. Si une colonne contient
du texte mais n'a pas l'un de ces types de données, la transformation de conversion de
données peut être utilisée pour ajouter une colonne avec le type de données DT_WSTR
ou DT_NTEXT au flux de données et copier les valeurs de colonne dans la nouvelle
colonne. La sortie de la transformation de conversion de données peut ensuite être
utilisée comme entrée de la transformation d'extraction de terme. Pour plus
d’informations, voir Data Conversion Transformation.

Termes d'exclusion
Éventuellement, la transformation d'extraction de terme peut faire référence à une
colonne de table qui contient des termes d'exclusion, à savoir des termes qui doivent
être ignorés par la transformation lors de l'extraction de termes à partir d'un jeu de
données. Cela est utile lorsqu'un ensemble de termes a déjà été identifié comme sans
importance dans un secteur d'activité ou une industrie particulière, en général parce
qu'ils apparaissent à une fréquence tellement élevée qu'ils en deviennent des mots non
significatifs. Par exemple, lors de l'extraction de termes à partir d'un dataset qui contient
des informations de support clientèle sur une marque de véhicules spécifique, le nom de
la marque peut être exclu car il sera mentionné trop fréquemment pour être significatif.
Par conséquent, les valeurs de la liste d'exclusion doivent être personnalisées en
fonction du jeu de données avec lequel vous travaillez.

Quand vous ajoutez un terme à la liste d’exclusion, tous les termes (mots ou expressions
nominales) qui contiennent le terme sont également exclus. Par exemple, si la liste
d’exclusion comprend le mot simple données, tous les termes qui contiennent ce mot,
comme données, exploration de données, intégrité des donnéeset validation des données
sont également exclus. Si vous souhaitez exclure uniquement les termes composés qui
contiennent le mot données, vous devez les ajouter explicitement à la liste d’exclusion.
Par exemple, si vous souhaitez extraire les occurrences de donnéestout en excluant
validation des données, vous ajoutez validation des données à la liste d’exclusion et vous
vérifiez que données est supprimé de celle-ci.

La table de référence doit être une table d'une base de données SQL Server ou Access.
La transformation d'extraction de terme utilise une connexion OLE DB distincte pour se
connecter à la table de référence. Pour plus d’informations, consultez OLE DB
Connection Manager.

La transformation d'extraction de terme fonctionne entièrement en mode de mise en


cache préalable. Au moment de l'exécution, elle lit les termes d'exclusion à partir de la
table de référence et les stocke dans sa mémoire privée avant de traiter des lignes
d'entrée de transformation.

Extraction de termes à partir de texte


Pour extraire des termes à partir de texte, la transformation d'extraction de terme
effectue les tâches suivantes.

Identification des mots


Tout d'abord, la transformation d'extraction de terme identifie les mots en exécutant les
tâches suivantes :

Séparation du texte en mots à l'aide d'espaces, de sauts de lignes et d'autres


terminateurs de langue anglaise. Par exemple, les signes de ponctuation comme ?
et : sont des caractères de séparation de mots.

Préservation des mots connectés par des tirets ou des traits de soulignement. Par
exemple, les mots Presse-papiers et ci-dessous restent en seul mot.

Conservation des acronymes incluant des points. Par exemple, la Société A.B.C est
divisée en Société et ABC.

Fractionnement des mots avec caractères spéciaux. Par exemple, le mot date/heure
est extrait comme date et heure, (bicycle) comme bicycleet C# est traité comme C.
Les caractères spéciaux sont ignorés et ne peuvent pas être lexicalisés.

Reconnaissance des cas dans lesquels certains caractères spéciaux (tels que
l'apostrophe) ne doivent pas fractionner les mots. Par exemple, le mot l’élément
n’est pas fractionné en deux mots et génère le terme unique élément (nom).

Fractionnement des expressions temporelles, des expressions monétaires, des


adresses de messagerie et des adresses postales. Par exemple, la date 31 janvier
2004 est fractionnée en trois jetons : 31, janvieret 2004.

Mots avec balises


Ensuite, la transformation d'extraction de terme effectue un balisage des mots selon
l'une des catégories grammaticales suivantes :

Nom au singulier. Par exemple, bicycle et potato.

Nom au pluriel. Par exemple, bicycles et potatoes. Tous les noms au pluriel qui ne
sont pas lemmatisés sont soumis à l'extraction de la racine.

Nom propre au singulier. Par exemple, April et Peter.

Nom propre au pluriel. Par exemple, Aprils et Pierres. Pour qu'un nom propre soit
soumis à l'extraction de la racine, il doit faire partie du lexique interne, qui est
limité aux mots anglais standard.

Adjectif. Par exemple, blue.

Adjectif comparatif qui compare deux choses. Par exemple, higher et taller.

Adjectif superlatif qui identifie une chose comme ayant une qualité supérieure ou
inférieure au niveau d'au moins deux autres choses. Par exemple, highest et tallest.

Nombre. Par exemple, 62 et 2004.

Les mots qui n'appartiennent pas à ces catégories grammaticales sont ignorés. Par
exemple, les verbes et les pronoms sont ignorés.

7 Notes

Le balisage des catégories grammaticales étant basé sur un modèle statistique, il


peut ne pas être totalement exact.

Si la transformation d'extraction de terme est configurée de façon à extraire uniquement


les noms, seuls les mots balisés comme des noms ou des noms propres au singulier ou
au pluriel sont extraits.

Si la transformation d'extraction de terme est configurée de façon à extraire uniquement


les expressions nominales, les mots balisés comme noms, noms propres, adjectifs et
nombres peuvent être combinés pour composer une expression nominale, mais la
phrase doit inclure au moins un mot balisé en tant que nom ou nom propre au singulier
ou au pluriel. Par exemple, l’expression nominale highest mountain combine un mot
étiqueté comme adjectif superlatif (highest) et un mot étiqueté comme nom (mountain).

Si la transformation d'extraction de terme est configurée de façon à extraire à la fois les


noms et les expressions nominales, les règles relatives aux noms et aux expressions
nominales sont applicables. Par exemple, la transformation extrait bicycle et beautiful
blue bicycle du texte many beautiful blue bicycles.

7 Notes

Les termes extraits demeurent sujets au seuil de fréquence et à la longueur de


terme maximale utilisés par la transformation.

Mots réduits à leur radical


La transformation d'extraction de terme réduit les noms à leur racine afin d'extraire
uniquement le singulier d'un nom. Par exemple, la transformation extrait man de men,
mouse de miceet bicycle de bicycles. La transformation utilise son dictionnaire pour
obtenir la racine des noms. Les gérondifs sont traités comme des noms s'ils sont
présents dans le dictionnaire.

Comme le montrent les exemples suivants, la transformation d'extraction de terme


réduit les mots à leur forme présente dans le dictionnaire, à l'aide de son dictionnaire
interne.

Suppression du s des noms. Par exemple, bicycles devient bicycle.

Suppression du es des noms. Par exemple, stories devient story.

Récupération du singulier des noms irréguliers à partir du dictionnaire. Par


exemple, geese devient goose.

Mots normalisés
La transformation d'extraction de terme normalise les termes qui commencent par une
majuscule uniquement à cause de leur position dans la phrase et les remplace par leur
forme minuscule. Par exemple, dans les phrases Dogs chase cats et Mountain paths are
steep, Dogs et Mountain sont normalisés en dog et mountain.

La transformation d'extraction de terme normalise les mots de sorte que les versions
commençant par une majuscule et par une minuscule ne soient pas traitées comme des
termes différents. Par exemple, dans le texte You see many bicycles in Seattle et Bicycles
are blue, bicycles et Bicycles sont reconnus comme étant e terme et la transformation
conserve uniquement bicycle. Les noms propres et les mots non répertoriés dans le
dictionnaire interne ne sont pas normalisés.
Normalisation sensible à la casse
La transformation d'extraction de terme peut être configurée de façon à considérer les
mots en majuscules et en minuscules comme des termes distincts ou comme des
variantes différentes du même terme.

Si la transformation est configurée de manière à reconnaître des différences de


casse, des termes comme Method et method sont extraits comme deux termes
différents. Les mots commençant par une majuscule qui ne sont pas le premier
mot d'une phrase ne sont jamais normalisés et sont balisés comme noms propres.

Si la transformation est configurée de manière à ne pas faire de distinction de


casse, des termes comme Method et method sont reconnus comme des variantes
d’un même terme. La liste de termes extraits peut inclure Method ou method, selon
le terme apparu en premier dans le dataset en entrée. Si le terme Method
commence par une majuscule seulement car il s’agit du premier mot d’une phrase,
il est extrait sous sa forme normalisée.

Limites de mots et de phrases


La transformation d'extraction de terme sépare le texte en phrases en utilisant les
caractères suivants comme limites de phrases :

Caractères de sauts de ligne ASCII 0x0d (retour chariot) et 0x0a (saut de ligne).
Pour que ce caractère soit utilisé comme limite de phrase, il doit y avoir deux
caractères de saut de ligne ou plus sur une ligne.

Traits d’union (-). Pour que ce caractère soit utilisé comme limite de phrase, les
caractères situés immédiatement à gauche et à droite du trait d'union ne doivent
pas être des lettres.

Caractère de soulignement (_). Pour que ce caractère soit utilisé comme limite de
phrase, les caractères situés immédiatement à gauche et à droite du trait d'union
ne doivent pas être des lettres.

Tous les caractères Unicode inférieurs ou égaux à 0x19, ou supérieurs ou égaux à


0x7b.

Combinaison de nombres, signes de ponctuation et caractères alphabétiques. Par


exemple, A23B#99 retourne le terme A23B.

Les caractères, %, @, &, $, #, *, :, ;, ., , , !, ?, <, >, +, =, ^, ~, |, \, /, (, ), [, ], {, }, ", et '.


7 Notes

Les acronymes incluant un ou plusieurs points (.) ne sont pas divisés en


plusieurs phrases.

La transformation d'extraction de terme fractionne ensuite la phrase en mots à l'aide des


limites de mots suivantes :

Espace

Onglet

ASCII 0x0d (retour chariot)

ASCII 0x0a (saut de ligne)

7 Notes

Si une apostrophe se trouve dans un mot qui constitue une contraction,


comme we’re ou it’s, le mot est scindé au niveau de l’apostrophe ; sinon, les
lettres qui suivent l’apostrophe sont supprimées. Par exemple, we’re est divisé
en we et ’re, tandis que bicycle’s est tronqué en bicycle.

Configuration de la transformation d’extraction


de terme
La transformation d'extraction de terme utilise des algorithmes et des modèles
statistiques internes pour générer ses résultats. Vous devrez peut-être exécuter la
transformation d'extraction de terme à plusieurs reprises et examiner les résultats afin
de configurer la transformation de sorte qu'elle génère le type de résultats le mieux
adapté à votre solution d'exploration de texte.

La transformation d'extraction de terme possède une entrée régulière, une sortie et une
sortie d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans la boîte de dialogue
Éditeur avancé ou par programmation, cliquez sur l'une des rubriques suivantes :

Propriétés communes
Propriétés personnalisées des transformations

Pour plus d’informations sur la façon de définir les propriétés, consultez Définir les
propriétés d’un composant de flux de données.

Éditeur de transformation d'extraction de


terme (onglet Extraction de terme)
Utilisez l'onglet Extraction de terme de la boîte de dialogue Éditeur de transformation
d'extraction de terme pour définir une colonne de texte qui contient le texte à extraire.

Options
Colonnes d'entrée disponibles
En utilisant les cases à cocher, sélectionnez une colonne de texte à utiliser pour
l'extraction de terme.

Terme
Fournissez un nom pour la colonne de sortie qui contiendra les termes extraits.

Score
Fournissez un nom pour la colonne de sortie qui contiendra le score de chaque terme
extrait.

Configurer la sortie d’erreur


Utilisez la boîte de dialogue Configurer l’affichage des erreurs pour spécifier la gestion
des erreurs dans les lignes qui provoquent des erreurs.

Éditeur de transformation d'extraction de


terme (onglet Exclusion)
Utilisez l'onglet Exclusion de la boîte de dialogue Éditeur de transformation
d'extraction de terme pour définir une connexion à une table de connexion et les
colonnes qui contiennent des termes d'exclusion.

Options
Utiliser les termes d'exclusion
Indique si vous voulez exclure des termes au cours de l'extraction de termes en
définissant une colonne qui contient les termes d'exclusion. Vous devez définir les
propriétés sources suivantes si vous choisissez d'exclure des termes.

Gestionnaire de connexions OLE DB


Sélectionnez un gestionnaire de connexions OLE DB existant ou créez une connexion en
cliquant sur Nouvelle.

Nouveau
Créez une connexion à une base de données à l’aide de la boîte de dialogue Configurer
le Gestionnaire de connexions OLE DB .

Table ou vue
Sélectionnez la table ou la vue qui contient les termes d'exclusion.

Colonne
Sélectionnez la colonne de la table ou de la vue qui contient les termes d'exclusion.

Configurer la sortie d’erreur


Utilisez la boîte de dialogue Configurer l’affichage des erreurs pour spécifier la gestion
des erreurs dans les lignes qui provoquent des erreurs.

Éditeur de transformation d'extraction de


terme (onglet Avancé)
Utilisez l’onglet Avancé de la boîte de dialogue Éditeur de transformation d’extraction
de terme pour définir les propriétés de l’extraction, telles que la fréquence et la
longueur, et indiquer si les mots ou les phrases doivent être extraits.

Options
Nom
Indique que la transformation extrait uniquement des noms individuels.

Expression nominale
Indique que la transformation extrait uniquement des expressions nominales.

Nom et expression nominale


Indique que la transformation extrait des noms et des expressions nominales.

Fréquence
Indique que le score correspond à la fréquence du terme.
TFIDF
Indique que le score correspond à la valeur TFIDF du terme. Le score TFIDF est le produit
de la fréquence des termes (TF, Term Frequency) et de la fréquence inverse de
documents (IDF, Inverse Document Frequency), défini comme suit : TFIDF d’un terme T
= (fréquence de T) * log((#lignes en entrée) / (#lignes ayant T))

Seuil de fréquence
Définissez le nombre d'occurrences d'un mot ou d'une expression avant son extraction.
La valeur par défaut est 2.

Longueur maximale du terme


Définissez la longueur maximale d'une expression en nombre de mots. Cette option
affecte uniquement les expressions nominales. La valeur par défaut est 12.

Utiliser l'extraction de terme respectant la casse


Indiquez si l'extraction doit respecter la casse. La valeur par défaut est False.

Configurer la sortie d’erreur


Utilisez la boîte de dialogue Configurer l’affichage des erreurs pour spécifier la gestion
des erreurs dans les lignes qui provoquent des erreurs.

Voir aussi
Guide de référence des erreurs et des messages propres à Integration Services
Transformation de recherche de terme
transformation de recherche de terme
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation de recherche de terme met en correspondance des termes extraits de


texte d'une colonne d'entrée de transformation avec les termes d'une table de
référence. Elle compte ensuite le nombre de fois où un terme de la table de recherche
apparaît dans le dataset d'entrée, puis écrit ce nombre et le terme de la table de
référence dans les colonnes de la sortie de la transformation. Cette transformation est
utile pour créer une liste personnalisée de termes reposant sur le texte d'entrée et
complétée de statistiques de fréquence.

Avant d'effectuer une recherche, la transformation de recherche de terme extrait des


mots du texte dans une colonne d'entrée à l'aide de la même méthode que la
transformation d'extraction de terme :

Le texte est divisé en phrases.

Les phrases sont divisées en mots.

Les mots sont normalisés.

Il est possible de configurer la transformation de recherche de terme de manière à


effectuer une mise en correspondance respectant la casse.

Correspondances
La recherche de terme effectue une recherche et renvoie une valeur en suivant les règles
ci-dessous :

Si la transformation est configurée pour effectuer des mises en correspondance


respectant la casse, les termes ne correspondant pas à la casse sont ignorés. Par
exemple, étudiant et ÉTUDIANT sont considérés comme des termes distincts.

7 Notes

Un mot dont la première lettre est une minuscule peut être mis en
correspondance avec un mot dont la première lettre est une majuscule en
début de phrase. Par exemple, étudiant et Étudiant sont mis en
correspondance si Étudiant est le premier mot de la phrase.
Si une forme plurielle du nom ou de la phrase nominale existe dans la table de
référence, la recherche met en correspondance uniquement la forme plurielle du
nom ou de la phrase nominale. Par exemple, les instances de étudiants et de
étudiantsont comptabilisées de façon distincte.

Si seule la forme singulier du mot se trouve dans la table de référence, les formes
singulier et pluriel du mot ou de la phrase sont mises en correspondance avec la
forme singulier. Par exemple, si la table de recherche contient étudiantet que la
transformation trouve les mots étudiant et étudiants, ces deux mots seront
comptabilisées comme des correspondances du terme étudiant.

Si le texte de la colonne d'entrée est une phrase nominale contenant des lemmes,
seul le dernier mot de la phrase nominale est affecté par la normalisation. Par
exemple, la version avec lemmes de visites avec les médecins est visite avec les
médecins.

Quand un élément de recherche contient des termes débordant du cadre de référence,


autrement dit si un sous-terme est trouvé dans plusieurs enregistrements de référence,
la transformation de recherche de terme ne retourne qu’un seul résultat de recherche.
L'exemple suivant illustre le résultat trouvé lorsqu'un élément de recherche présente un
sous-terme de chevauchement. Dans cet exemple, le sous-terme est Windows, que l’on
retrouve dans deux termes de référence. Toutefois, la transformation ne retourne pas
deux résultats, mais un seul terme de référence uniquement, Windows. Le second terme
de référence, Windows 7 Professionnel, n’est pas retourné.

Élément Valeur

Terme entré Windows 7 Professionnel

Termes de référence Windows, Windows 7 Professionnel

Output Windows

La transformation de recherche de terme peut mettre en correspondance des noms et


des phrases nominales contenant des caractères spéciaux. Les données de la table de
référence peuvent inclure ces caractères. Les caractères spéciaux sont les suivants : %,
@, &, $, #, *, :, ;, ., , , !, ?, <, >, +, =, ^, ~, |, \, /, (, ), [, ], {, }, " et '.

Types de données
La transformation de recherche de terme ne peut utiliser qu'une colonne contenant le
type de données DT_WSTR ou DT_NTEXT. Si une colonne contient du texte, mais pas
l'un de ces types de données, la transformation de conversion de données peut ajouter
une colonne avec le type de données DT_WSTR ou DT_NTEXT au flux de données, puis
copier les valeurs de la colonne dans cette nouvelle colonne. La sortie de la
transformation de conversion de données peut ensuite être utilisée comme entrée de la
transformation de recherche de terme. Pour plus d’informations, voir Data Conversion
Transformation.

Configuration de la transformation de
recherche de terme
Les colonnes d’entrée de la transformation de recherche de terme incluent la propriété
InputColumnType, qui indique l’utilisation de la colonne. InputColumnType peut
contenir les valeurs ci-dessous :

La valeur 0 indique que la colonne est transmise à la sortie uniquement et n'est pas
utilisée dans la recherche.

La valeur 1 indique que la colonne est utilisée dans la recherche uniquement.

La valeur 2 indique que la colonne est transmise à la sortie et est utilisée dans la
recherche.

Les colonnes de sortie de la transformation, dont la propriété InputColumnType a la


valeur 0 ou 2, sont accompagnées de la propriété CustomLineageID, qui contient
l’identificateur de lignage affecté à la colonne par un composant amont du flux de
données.

La transformation de recherche de terme ajoute deux colonnes à la sortie de la


transformation, dont les noms par défaut sont Term et Frequency. Term contient un
terme issu de la table de recherche et Frequency contient le nombre d’occurrences du
terme de la table de référence dans le jeu de données d’entrée. Ces colonnes n’incluent
pas la propriété CustomLineageID.

La table de recherche doit être une table d'une base de données SQL Server ou Access.
Si la sortie de la transformation d'extraction de terme est enregistrée dans une table,
cette table peut être utilisée comme table de référence (sachant que les autres tables
peuvent également être utilisées). Pour pouvoir utiliser la transformation de recherche
de terme sur le texte de fichiers plats, de classeurs Excel ou d’autres sources, vous devez
les importer dans une base de données SQL Server ou Access.

La transformation de recherche de terme utilise une connexion OLE DB distincte pour se


connecter à la table de référence. Pour plus d’informations, consultez OLE DB
Connection Manager.
La transformation de recherche de terme fonctionne en mode de mise en cache globale
préalable. Au moment de l'exécution, elle lit les termes de la table de référence et les
stocke dans sa mémoire privée avant de traiter toute ligne d'entrée de la transformation.

Dans la mesure où les termes d'une ligne de colonne d'entrée peuvent se répéter, la
sortie de la transformation de recherche de terme contient généralement plus de lignes
que l'entrée de la transformation.

La transformation comporte une entrée et une sortie. Elle ne prend pas en charge les
sorties d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans la boîte de dialogue
Éditeur avancé ou par programmation, cliquez sur l'une des rubriques suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Pour plus d’informations sur la façon de définir les propriétés, consultez Définir les
propriétés d’un composant de flux de données.

Éditeur de transformation de recherche de


terme (onglet Recherche de terme)
L'onglet Recherche de terme de la boîte de dialogue Éditeur de transformation de
recherche de terme permet de mapper une colonne d'entrée à une colonne de
recherche dans une table de référence et de fournir un alias pour chaque colonne de
sortie.

Options
Colonnes d'entrée disponibles
À l'aide des cases à cocher, sélectionnez les colonnes d'entrées à transmettre telles
quelles à la sortie. Faites glisser une colonne d'entrée vers la liste Colonnes de référence
disponibles pour la mapper sur une colonne de recherche dans la table de référence.
Les types de données prises en charge par les colonnes d'entrée et de recherche doivent
correspondre et avoir pour valeur DT_NTEXT ou DT_WSTR. Sélectionnez une ligne de
mappage et cliquez avec le bouton droit pour modifier les mappages dans la boîte de
dialogue Créer des relations .
Colonnes de référence disponibles
Affiche les colonnes disponibles dans la table de référence. Choisissez la colonne qui
contient la liste de termes correspondants.

Colonne SQL directe


Permet de sélectionner des colonnes dans la liste des colonnes d'entrée disponibles. Vos
sélections se reflètent dans les sélections des cases à cocher de la table Colonnes
d'entrée disponibles .

Alias de colonne de sortie


Permet de saisir un alias pour chaque colonne de sortie. La valeur par défaut correspond
au nom de la colonne. Cependant, vous pouvez choisir un nom unique descriptif.

Configurer la sortie d’erreur


Utilisez la boîte de dialogue Configurer l’affichage des erreurs pour spécifier les options
de gestion des erreurs dans les lignes qui provoquent des erreurs.

Éditeur de transformation de recherche de


terme (onglet Table de référence)
Utilisez l’onglet Table de référence de la boîte de dialogue Éditeur de transformation
de recherche de terme pour définir la connexion à la table de référence (recherche).

Options
Gestionnaire de connexions OLE DB
Sélectionnez un gestionnaire de connexions existant dans la liste ou créez une nouvelle
connexion en cliquant sur Nouveau.

Nouveau
Crée une connexion en utilisant la boîte de dialogue Configurer le gestionnaire de
connexions OLE DB .

Nom de la table de référence


Sélectionnez une table ou une vue de recherche dans la base de données en
sélectionnant un élément dans la liste. La table ou la vue doit contenir une colonne avec
une liste de termes existante à laquelle le texte de la colonne source peut être comparé.

Configurer la sortie d’erreur


Utilisez la boîte de dialogue Configurer l’affichage des erreurs pour spécifier les options
de gestion des erreurs dans les lignes qui provoquent des erreurs.
Éditeur de transformation de recherche de
terme (onglet Avancé).
Utilisez l’onglet Avancé de la boîte de dialogue Éditeur de transformation de recherche
de terme pour spécifier si la recherche doit respecter la casse.

Options
Utiliser la recherche de terme respectant la casse
Indique si la recherche respecte la casse. La valeur par défaut est False.

Configurer la sortie d’erreur


Utilisez la boîte de dialogue Configurer l’affichage des erreurs pour spécifier les options
de gestion des erreurs dans les lignes qui provoquent des erreurs.

Voir aussi
Guide de référence des erreurs et des messages propres à Integration Services
Transformation d'extraction de terme
transformation d'union totale
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation d'union totale combine plusieurs entrées en une seule sortie. Par
exemple, les sorties de cinq sources de fichier plat peuvent être des entrées de la
transformation d'union totale et être combinées en une seule sortie.

Entrées et sorties
Les entrées de transformation sont ajoutées à la sortie de transformation une par une ;
aucune réorganisation de lignes n'intervient. Si le package nécessite une sortie triée,
vous devez utiliser la transformation de fusion au lieu de la transformation d'union
totale.

La première entrée que vous connectez à la transformation d'union totale est l'entrée à
partir de laquelle la transformation crée la sortie de transformation. Les colonnes des
entrées que vous connectez ensuite à la transformation sont mappées avec les colonnes
de la sortie de transformation.

Pour fusionner les entrées, vous mappez les colonnes des entrées avec les colonnes de
la sortie. Une colonne d'au moins une entrée doit être mappée avec chaque colonne de
sortie. Vous ne pouvez mapper deux colonnes que si leurs métadonnées correspondent.
Par exemple, les colonnes mappées doivent avoir le même type de données.

Si les colonnes mappées contiennent des données de chaîne et que la longueur de la


colonne de sortie est plus courte que celle de la colonne d'entrée, la longueur de la
colonne de sortie est automatiquement augmentée de manière à contenir la colonne
d'entrée. Les colonnes d'entrée non mappées avec des colonnes de sortie ont la valeur
NULL dans les colonnes de sortie.

Cette transformation a plusieurs entrées et une sortie. Elle ne prend pas en charge de
sortie d'erreur.

Configuration de la transformation d'union


totale
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.
Pour plus d’informations sur les propriétés que vous pouvez définir par programmation,
consultez Propriétés communes.

Pour plus d'informations sur la définition des propriétés, cliquez sur l'une des rubriques
suivantes :

Définir les propriétés d’un composant de flux de données

Éditeur de transformation d'union totale


La boîte de dialogue Éditeur de transformation d'union totale permet de fusionner
plusieurs jeux de lignes d'entrée dans un seul jeu de lignes de sortie. En incluant la
transformation d'union totale dans un flux de données, vous pouvez fusionner les
données de plusieurs flux, créer des datasets complexes en imbriquant les
transformations d'union totale et en refusionnant les lignes après avoir corrigé les
erreurs contenues dans les données.

Options
Nom de colonne de sortie
Permet de saisir un alias pour chaque colonne. Par défaut, il s'agit du nom de la colonne
d'entrée provenant de la première entrée (de référence). Vous pouvez toutefois choisir
un nom unique descriptif.

Entrée 1 d'union totale


Sélectionnez cette option dans la liste des colonnes d'entrée disponibles dans la
première entrée (de référence). Les métadonnées des colonnes mappées doivent
correspondre.

Entrée n d'union totale


Sélectionnez cette option dans la liste des colonnes d'entrée disponibles dans à partir
de la deuxième entrée. Les métadonnées des colonnes mappées doivent correspondre.

Tâches associées
Fusionner des données à l'aide de la transformation d'union totale
Fusionner des données à l'aide de la
transformation d'union totale
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour pouvoir ajouter et configurer une transformation d'union totale, le package doit
inclure au moins une tâche de flux de données et deux sources de données.

La transformation d'union totale combine plusieurs entrées. La première entrée qui est
connectée à la transformation est l'entrée de référence ; les entrées connectées par la
suite sont les entrées secondaires. La sortie contient les colonnes de l'entrée de
référence.

Pour connecter des entrées dans un flux de données


1. Dans SQL Server Data Tools (SSDT), double-cliquez sur le package dans
l’Explorateur de solutions pour ouvrir le package dans le concepteur SSIS Designer,
puis cliquez sur l’onglet Flux de données.

2. Dans la Boîte à outils, faites glisser la transformation d’union totale vers l’aire de
conception de l’onglet Flux de données .

3. Connectez la transformation d'union totale au flux de données en faisant glisser le


connecteur à partir de la source de données ou d'une transformation précédente
vers la transformation d'union totale.

4. Double-cliquez sur la transformation d'union totale.

5. Dans l’Éditeur de transformation d’union totale, mappez une colonne d’une


entrée à une colonne de la liste Nom de colonne de sortie en cliquant sur une
ligne, puis en sélectionnant une colonne dans la liste d’entrée. Sélectionnez
<ignorer> dans la liste d’entrée pour ignorer le mappage de la colonne.

7 Notes

Vous ne pouvez mapper deux colonnes que si leurs métadonnées


correspondent.

7 Notes
Les colonnes d'une entrée secondaire qui ne sont pas mappées à des
colonnes de référence sont définies sur des valeurs null dans la sortie.

6. Si vous le souhaitez, modifiez le nom des colonnes dans la colonne Nom de


colonne de sortie .

7. Répétez les étapes 5 et 6 pour chaque colonne de chaque entrée.

8. Cliquez sur OK.

9. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Transformation d'union totale
Transformations Integration Services
Chemins Integration Services
tâche de flux de données
Transformation Unpivot
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La transformation Unpivot convertit un dataset non normalisé en version plus


normalisée en étendant les valeurs de plusieurs colonnes d'un enregistrement dans
plusieurs enregistrements avec les mêmes valeurs dans une colonne unique. Par
exemple, un dataset qui répertorie des noms de clients possède une ligne pour chaque
client, avec les produits et la quantité achetée mentionnés dans les colonnes sur la ligne.
Après que la transformation Unpivot a normalisé le dataset, celui-ci contient une ligne
différente pour chaque produit que le client a acheté.

Le schéma suivant illustre un dataset avant que les données n'aient été transformées
dans la colonne Product.

Le schéma suivant illustre un dataset après transformation de la colonne Product.

Dans certaines circonstances, les résultats de la suppression du tableau croisé


dynamique peuvent contenir des lignes aux valeurs inattendues. Par exemple, si les
exemples de données du diagramme qui doivent être supprimées du tableau croisé
dynamique possèdent des valeurs Null dans toutes les colonnes Qty pour Fred, la sortie
ne comprend qu'une ligne pour Fred, au lieu de cinq. La colonne Qty contient Null ou
zéro, suivant le type de données de la colonne.

Configuration de la transformation Unpivot


La transformation Unpivot inclut la propriété personnalisée PivotKeyValue . La propriété
peut être mise à jour par une expression de propriété lors du chargement du package.
Pour plus d’informations, consultez Expressions Integration Services (SSIS), Utiliser des
expressions de propriété dans des packages et Propriétés personnalisées des
transformations.

Cette transformation a une entrée et une sortie. Elle ne possède aucune sortie d'erreur.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Pour plus d'informations sur les propriétés définissables dans la boîte de dialogue
Éditeur avancé ou par programmation, cliquez sur l'une des rubriques suivantes :

Propriétés communes

Propriétés personnalisées des transformations

Pour plus d’informations sur la façon de définir des propriétés, consultez Définir les
propriétés d’un composant de flux de données.

Éditeur de transformation UnPivot


Utilisez la boîte de dialogue Éditeur de transformation UnPivot pour sélectionner les
colonnes à convertir en ligne, et définir la colonne de données et la nouvelle colonne de
sortie de valeur croisée.

7 Notes

Cette rubrique porte sur le scénario Unpivot décrit dans Unpivot Transformation
pour illustrer l'utilisation des options.

Options
Colonnes d'entrée disponibles
Définissez les colonnes à convertir en lignes en utilisant les cases à cocher.

Nom
Affiche le nom de la colonne d'entrée disponible.

Transfert direct
Indique s'il faut inclure la colonne dans la sortie supprimée du tableau croisé
dynamique.

Colonne d'entrée
Sélectionnez dans la liste le nom d'une colonne d'entrée pour chaque ligne. Vos
sélections se reflètent dans les sélections des cases à cocher de la table Colonnes
d'entrée disponibles .

Dans le scénario Unpivot décrit dans Unpivot Transformation, les colonnes d'entrée sont
Ham, Soda, Milk, Beeret Chips .

Colonne de destination
Définissez le nom de la colonne de données.

Dans le scénario Unpivot décrit dans Unpivot Transformation, la colonne de destination


est la colonne de quantité (Qty).

Valeur de clé de tableau croisé dynamique


Tapez le nom de la valeur croisée dynamique. Par défaut, il s'agit du nom de la colonne
d'entrée ; vous pouvez néanmoins choisir un nom unique et descriptif.

Il est possible de spécifier la valeur de cette propriété en utilisant l'expression d'une


propriété.

Dans le scénario Unpivot décrit dans Unpivot Transformation, les valeurs croisées
dynamiques apparaîtront dans la nouvelle colonne Produit définie par l'option Nom de
colonne de la valeur de clé de tableau croisé dynamique comme les valeurs de texte
Ham, Soda, Milk, Beeret Chips.

Nom de colonne de la valeur de clé de tableau croisé dynamique


Tapez le nom de la colonne de valeur croisée dynamique. La valeur par défaut est «
Valeur de clé de tableau croisé dynamique ». Toutefois, vous pouvez choisir un nom
descriptif unique.

Dans le scénario Unpivot décrit dans Unpivot Transformation, le nom de la colonne de la


valeur de clé de tableau croisé dynamique est Product et définit la nouvelle colonne
Product dans laquelle les colonnes Ham, Soda, Milk, Beeret Chips ne sont pas croisées
dynamiquement.

Voir aussi
Guide de référence des erreurs et des messages propres à Integration Services
Transformation de tableau croisé dynamique
Transformer des données avec des
transformations
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Integration Services inclut trois types de composants de flux de données : les sources,
les transformations et les destinations.

Le schéma suivant illustre un flux de données simple qui possède une source, deux
transformations et une destination.

Integration Services Les transformations procurent la fonctionnalité suivante :

Fractionnement, copie et fusion d'ensembles de lignes et opérations de recherche.

Mise à jour de valeurs de colonnes et création de colonnes en appliquant des


transformations telles que la modification de minuscules en majuscules.

Exécution d'opérations Business Intelligence telles que le nettoyage de données,


l'exploration de texte et l'exécution de requêtes de prédictions d'exploration de
données.

Création d'ensembles de lignes constitués de valeurs agrégées ou triées,


d'échantillons de données ou de données croisées dynamiques et non croisées
dynamiques.

Exécution de tâches telles que l'exportation et l'importation de données, l'apport


d'informations d'audit et l'utilisation de dimensions à variation lente.

Pour plus d’informations, consultez Transformations Integration Services.

Vous pouvez également écrire des transformations personnalisées. Pour plus


d’informations, consultez Développement d’un composant de flux de données
personnalisé et Développement de types spécifiques de composants de flux de
données.

Après avoir ajouté la transformation au concepteur de flux de données, mais avant de


configurer la transformation, vous devez connecter la transformation au flux de données
en connectant la sortie d'une autre transformation ou source du flux de données à
l'entrée de cette transformation. Le connecteur entre ces deux composants de flux de
données porte le nom de chemin d'accès. Pour plus d’informations sur la connexion des
composants et l’utilisation des chemins d’accès, consultez Connecter des composants
avec des chemins d’accès.

Pour ajouter une transformation à un flux de données


Ajouter ou supprimer un composant dans un flux de données

Pour connecter une transformation à un flux de données


Connecter des composants dans un flux de données

Pour définir les propriétés d'une transformation


Définir les propriétés d’un composant de flux de données

Voir aussi
tâche de flux de données
Flux de données
Connecter des composants avec des chemins
Gestion des erreurs dans les données
Flux de données
Propriétés personnalisées des
transformations
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

En plus des propriétés qui sont communes à la plupart des objets de flux de données
dans le modèle objet SQL Server Integration Services , de nombreux objets de flux de
données ont des propriétés personnalisées qui sont spécifiques à l'objet. Ces propriétés
personnalisées sont uniquement disponibles au moment de l'exécution et ne sont pas
documentées dans la documentation de référence de la programmation managée de
Integration Services .

Cette rubrique présente et décrit les propriétés personnalisées des différentes


transformations de flux de données. Pour plus d'informations sur les propriétés
communes à la plupart des objets de flux de données, consultez Common Properties.

Certaines propriétés de transformations peuvent être définies à l'aide d'expressions de


propriété. Pour plus d’informations, consultez Propriétés du flux de données pouvant
être définies à l’aide d’expressions.

Transformations avec les propriétés


personnalisées
Agrégat
Audit
Transformation du cache
Table des caractères
Fractionnement conditionnel
Copie de colonnes
Conversion de données
Requête d’exploration de données
Colonne dérivée

Exportation de colonne
Regroupement probable
Recherche floue
Importation de colonne
Lookup
Merge Join
Commande OLE DB
Échantillonnage du pourcentage
Tableau croisé dynamique

Nombre de lignes
Échantillonnage de lignes
Composant Script
Dimension à variation lente
Sort
Extraction de terme
Recherche de terme
Supprimer le tableau croisé dynamique

Transformations sans propriétés personnalisées


Les transformations suivantes ne disposent pas de propriétés personnalisées au niveau
du composant, de l’entrée ou de la sortie : Transformation par fusion, Transformation
par multidiffusion et Transformation par union de tout. Ils font uniquement appel aux
propriétés communes à l'ensemble des composants de flux de données.

Transformation d'agrégation, propriétés


personnalisées
La transformation d'agrégation dispose à la fois de propriétés personnalisées et de
propriétés communes à l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la transformation


d'agrégation. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

AutoExtendFactor Integer Valeur entre 1 et 100 qui spécifie le pourcentage


d'extension possible de la mémoire lors de l'opération
d'agrégation. La valeur par défaut de cette propriété est de
25.

CountDistinctKeys Integer Valeur précisant le nombre exact de comptages de valeurs


que l'agrégation peut écrire. Si une valeur
CountDistinctScale est spécifiée, la valeur dans
CountDistinctKeys est prioritaire.
Propriété Type de Description
données

CountDistinctScale Integer Valeur qui décrit le nombre approximatif de valeurs


(énumération) distinctes que peut totaliser l'agrégation dans une colonne.
Cette propriété peut prendre les valeurs suivantes :

Bas (1) : indique jusqu’à 500 000 valeurs de clés.

Moyen (2) : indique jusqu’à 5 millions de valeurs de clés.

Haut (3) : indique plus de 25 millions de valeurs de clés.

Non spécifié (0) : indique qu’aucune valeur


CountDistinctScale n’est utilisée. L’utilisation de l’option
Non spécifié (0) peut avoir un impact sur les performances
dans les jeux de données volumineux.

Keys Integer Valeur qui spécifie le nombre exact de clés GROUP BY


écrites par l'agrégation. Si une valeur KeyScalevalue est
spécifiée, la valeur dans Keys est prioritaire.

KeyScale Integer Valeur qui décrit le nombre approximatif de valeurs de clés


(énumération) GROUP BY que l'agrégation peut écrire. Cette propriété
peut prendre les valeurs suivantes :

Bas (1) : indique jusqu’à 500 000 valeurs de clés.

Moyen (2) : indique jusqu’à 5 millions de valeurs de clés.

Haut (3) : indique plus de 25 millions de valeurs de clés.

Non spécifié (0) : indique qu’aucune valeur KeyScale n’est


utilisée.

Le tableau suivant décrit les propriétés personnalisées de la sortie de la transformation


d'agrégation. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

Keys Integer Valeur qui spécifie le nombre exact de clés GROUP BY que
l'agrégation peut écrire. Si une valeur KeyScale est spécifiée, la
valeur dans Keys est prioritaire.
Propriété Type de Description
données

KeyScale Integer Valeur qui décrit le nombre approximatif de valeurs de clés GROUP
(énumération) BY que l'agrégation peut écrire. Cette propriété peut prendre les
valeurs suivantes :

Bas (1) : indique jusqu’à 500 000 valeurs de clés.

Moyen (2) : indique jusqu’à 5 millions de valeurs de clés.

Haut (3) : indique plus de 25 millions de valeurs de clés.

Non spécifié (0) : indique qu’aucune valeur KeyScale n’est utilisée.

Le tableau suivant décrit les propriétés personnalisées des colonnes de sortie de la


transformation d'agrégation. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

AggregationColumnId Integer LineageID d'une colonne participant à des


fonctions GROUP BY ou d'agrégation.

AggregationComparisonFlags Integer Valeur qui spécifie la manière dont la


transformation d'agrégation compare les
données de chaîne dans une colonne. Pour plus
d'informations, voir Comparing String Data.

AggregationType Integer Valeur qui spécifie l'opération d'agrégation à


(énumération) appliquer à la colonne. Cette propriété peut
prendre les valeurs suivantes :

Group by (0)

Count (1)

Count all (2)

Countdistinct (3)

Sum (4)

Average (5)

Maximum (7)

Minimum (6)
Propriété Type de Description
données

CountDistinctKeys Integer Valeur spécifiant le nombre exact de clés que


l'agrégation peut écrire lorsque le type
d'agrégation est COUNT DISTINCT. Si une
valeur CountDistinctScale est spécifiée, la valeur
dans CountDistinctKeys est prioritaire.

CountDistinctScale Integer Valeur qui décrit le nombre approximatif de


(énumération) valeurs de clés que peut écrire l'agrégation
lorsque le type d'agrégation est COUNT
DISTINCT. Cette propriété peut prendre les
valeurs suivantes :

Bas (1) : indique jusqu’à 500 000 valeurs de clés.

Moyen (2) : indique jusqu’à 5 millions de valeurs


de clés.

Haut (3) : indique plus de 25 millions de valeurs


de clés.

Non spécifié (0) : indique qu’aucune valeur


CountDistinctScale n’est utilisée.

IsBig Boolean Valeur qui indique si la colonne contient une


valeur supérieure à 4 milliards ou une valeur
avec une meilleure précision qu'une valeur à
virgule flottante double précision. La valeur peut
être 0 ou 1. 0 indique que IsBig a la valeur False
et que la colonne ne contient aucune valeur
élevée ou exacte. La valeur par défaut de cette
propriété est 1.

L'entrée et les colonnes d'entrée de la transformation d'agrégation ne sont pas dotées


de propriétés personnalisées.

Pour plus d’informations, voir Aggregate Transformation.

Transformation d'audit, propriétés


personnalisées
La transformation d'audit dispose uniquement des propriétés communes à l'ensemble
des composants de flux de données au niveau du composant.
Le tableau suivant décrit les propriétés personnalisées des colonnes de sortie de la
transformation d'audit. Toutes les propriétés sont en lecture/écriture.

Nom de la Type de Description


propriété données

LineageItemSelected Integer Élément d'audit sélectionné pour la sortie. Cette propriété


(énumération) peut prendre les valeurs suivantes :

GUID d’instance d’exécution (0)

Heure de début de l’exécution (4)

Nom de l’ordinateur (5)

ID du package (1)

Nom du package (2)

ID de la tâche (8)

Nom de la tâche (7)

Nom d’utilisateur (6)

ID de version (3)

L'entrée, les colonnes d'entrée et la sortie de la transformation d'audit ne disposent pas


de propriétés personnalisées.

Pour plus d’informations, voir Transformation d’Audit.

Transformation de transformation du cache,


propriétés personnalisées
La transformation de transformation du cache dispose à la fois de propriétés
personnalisées et de propriétés communes à l'ensemble des composants de flux de
données.

Le tableau qui suit décrit les propriétés de la transformation de transformation du cache.


Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données
Propriété Type de Description
données

Connectionmanager String Spécifie le nom du gestionnaire de connexions.

ValidateExternalMetadata Boolean Indique si la transformation du cache est validée à l'aide


de sources de données externes au moment de la
conception. Si la propriété possède la valeur False, la
validation avec des sources de données externes a lieu au
moment de l'exécution.

La valeur par défaut est True.

AvailableInputColumns String Liste des colonnes d'entrée disponibles.

InputColumns String Liste des colonnes d'entrée sélectionnées.

CacheColumnName String Spécifie le nom de la colonne mappée à une colonne


d'entrée sélectionnée.

Le nom de la colonne dans la propriété


CacheColumnName doit correspondre au nom de la
colonne correspondante répertoriée dans la page
Colonnes de l’Éditeur du gestionnaire de connexions du
cache.

Pour plus d'informations, consultez Cache Connection


Manager Editor

Transformation de la table des caractères,


propriétés personnalisées
La transformation de la table des caractères dispose uniquement des propriétés
communes à l'ensemble des composants de flux de données au niveau du composant.

Le tableau suivant décrit les propriétés personnalisées des colonnes de sortie de la


transformation de la table des caractères. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

InputColumnLineageId Integer Valeur spécifiant le LineageID de la colonne d'entrée


qui correspond à la source de la colonne de sortie.
Propriété Type de Description
données

MapFlags Integer Valeur précisant les opérations de chaîne que la


(énumération) transformation de la table des caractères applique dans
la colonne. Cette propriété peut prendre les valeurs
suivantes :

Inversion d’octet (2)

Pleine chasse (6)

Demi-chasse (5)

Hiragana (3)

Katakana (4)

Casse linguistique (7)

Minuscules (0)

Chinois simplifié (8)

Chinois traditionnel(9)

Majuscules (1)

L'entrée, les colonnes d'entrée et la sortie de la transformation de la table des caractères


ne disposent pas de propriétés personnalisées.

Pour plus d’informations, voir Character Map Transformation.

Transformation de fractionnement
conditionnel, propriétés personnalisées
La transformation de fractionnement conditionnel dispose uniquement des propriétés
communes à l'ensemble des composants de flux de données au niveau du composant.

Le tableau suivant décrit les propriétés personnalisées de la sortie de la transformation


de fractionnement conditionnel. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données
Propriété Type de Description
données

EvaluationOrder Integer Valeur qui spécifie la position d'une condition, associée à une
sortie, dans la liste des conditions évaluées par la transformation
de fractionnement conditionnel. Les conditions sont évaluées
dans l'ordre, de la valeur la plus basse à la valeur la plus élevée.

Expression String Expression qui représente la condition évaluée par la


transformation de fractionnement conditionnel. Les colonnes
sont représentées par les identificateurs de lignage.

FriendlyExpression String Expression qui représente la condition évaluée par la


transformation de fractionnement conditionnel. Les colonnes
sont représentées par leurs noms.

Il est possible de spécifier la valeur de cette propriété en utilisant


l'expression d'une propriété.

IsDefaultOut Boolean Valeur indiquant si la sortie est la sortie par défaut.

L'entrée, les colonnes d'entrée et les colonnes de sortie de la transformation de


fractionnement conditionnel ne disposent pas de propriétés personnalisées.

Pour plus d'informations, consultez Conditional Split Transformation.

Transformation de copie de colonne, propriétés


personnalisées
La transformation de copie de colonne dispose uniquement des propriétés communes à
l'ensemble des composants de flux de données au niveau du composant.

Le tableau suivant décrit les propriétés personnalisées des colonnes de sortie de la


transformation de copie de colonne. Toutes les propriétés sont en lecture/écriture.

Nom de la Type de Description


propriété données

copyColumnId Integer LineageID de la colonne d'entrée à partir de laquelle la colonne


de sortie est copiée.

L'entrée, les colonnes d'entrée et la sortie de la transformation de copie de colonne ne


disposent pas de propriétés personnalisées.

Pour plus d’informations, voir Copy Column Transformation.


Transformation de conversion de données,
propriétés personnalisées
La transformation de conversion de données dispose uniquement des propriétés
communes à l'ensemble des composants de flux de données au niveau du composant.

Le tableau suivant décrit les propriétés personnalisées des colonnes de sortie de la


transformation de conversion de données. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

FastParse Boolean Valeur qui indique si la colonne fait appel aux routines
d'analyse fournies par Integration Services (routines
plus rapides mais qui ne tiennent pas compte des
paramètres régionaux) ou bien aux routines d'analyse
standard qui prennent en compte les paramètres
régionaux. La valeur par défaut de cette propriété est
False. Pour plus d'informations, consultez Fast Parse et
Standard Parse. .

Remarque : cette propriété n’est pas disponible dans


l’Éditeur de transformation par conversion de
données, mais peut être définie avec l’Éditeur avancé.

SourceInputColumnLineageId Integer LineageID de la colonne d'entrée correspondant à la


source de la colonne de sortie.

L'entrée, les colonnes d'entrée et la sortie de la transformation de conversion de


données ne disposent pas de propriétés personnalisées.

Pour plus d’informations, voir Data Conversion Transformation.

Transformation de requête d'exploration de


données ; propriétés personnalisées
La transformation de requête d'exploration de données dispose à la fois de propriétés
personnalisées et de propriétés communes à l'ensemble des composants de flux de
données.

Le tableau suivant décrit les propriétés personnalisées de la transformation de requête


d'exploration de données. Toutes les propriétés sont en lecture/écriture.
Propriété Type de Description
données

ASConnectionId String Identificateur unique de l'objet de connexion.

ASConnectionString String Chaîne de connexion d'un projet Analysis Services ou d'une


base de données Analysis Services .

CatalogName String Nom d'une base de données Analysis Services .

ModelName String Nom du modèle d'exploration de données.

ModelStructureName String Nom de la structure d'exploration de données.

ObjectRef String Balise XML qui identifie la structure d'exploration de


données utilisée par la transformation.

QueryText String Instruction de requête de prédiction utilisée par la


transformation.

L'entrée, les colonnes d'entrée, la sortie et les colonnes de sortie de la transformation de


requête d'exploration de données ne disposent pas de propriétés personnalisées.

Pour plus d’informations, voir Data Mining Query Transformation.

Transformation de colonne dérivée, propriétés


personnalisées
La transformation de colonne dérivée dispose uniquement des propriétés communes à
l'ensemble des composants de flux de données au niveau du composant.

Le tableau suivant décrit les propriétés personnalisées des colonnes d'entrée et de sortie
de la transformation de colonne dérivée. Lorsque vous ajoutez la colonne dérivée en
tant que nouvelle colonne, ces propriétés personnalisées s'appliquent à la nouvelle
colonne de sortie ; si vous choisissez de remplacer le contenu d'une colonne d'entrée
existante par les résultats de la colonne dérivée, ces propriétés personnalisées
s'appliquent à la colonne d'entrée existante. Toutes les propriétés sont en lecture/
écriture.

Propriété Type de Description


données

Expression String Expression qui représente la condition évaluée par la


transformation de fractionnement conditionnel. Les colonnes
sont représentées par la propriété LineageID pour la colonne.
Propriété Type de Description
données

FriendlyExpression String Expression qui représente la condition évaluée par la


transformation de fractionnement conditionnel. Les colonnes
sont représentées par leurs noms.

Il est possible de spécifier la valeur de cette propriété en utilisant


l'expression d'une propriété.

L'entrée et la sortie de la transformation de colonne dérivée ne sont pas dotées de


propriétés personnalisées.

Pour plus d'informations, consultez Transformation de colonne dérivée.

Transformation d'exportation de colonne,


propriétés personnalisées
La transformation d'exportation de colonne dispose uniquement des propriétés
communes à l'ensemble des composants de flux de données au niveau du composant.

Le tableau suivant décrit les propriétés personnalisées des colonnes d'entrée de la


transformation d'exportation de colonne. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

AllowAppend Boolean Valeur spécifiant si la transformation ajoute ou non des données


à un fichier existant. La valeur par défaut de cette propriété est
False.

ForceTruncate Boolean Valeur qui spécifie si la transformation tronque un fichier existant


avant d'écrire des données. La valeur par défaut de cette
propriété est False.

FileDataColumnID Integer Valeur qui identifie la colonne contenant les données que la
transformation insère dans un fichier. Dans la colonne
d'extraction, cette propriété a une valeur de 0; dans la colonne du
chemin d'accès, elle contient le LineageID de la colonne
d'extraction.

WriteBOM Boolean Valeur spécifiant si une marque d'ordre d'octet est écrite dans le
fichier.

L'entrée, la sortie et les colonnes de sortie de la transformation d'exportation de


colonne ne disposent pas de propriétés personnalisées.
Pour plus d’informations, voir Export Column Transformation.

Transformation d'importation de colonne,


propriétés personnalisées
La transformation d'importation de colonne dispose uniquement des propriétés
communes à l'ensemble des composants de flux de données au niveau du composant.

Le tableau suivant décrit les propriétés personnalisées des colonnes d'entrée de la


transformation d'importation de colonne. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

ExpectBOM Boolean Valeur qui spécifie si la transformation d'importation de colonne


attend une marque d'ordre d'octet. Une marque d'ordre d'octet
n'est attendue que si les données sont du type de données
DT_NTEXT.

FileDataColumnID Integer Valeur qui identifie la colonne contenant les données que la
transformation insère dans le flux de données. Dans la colonne
de données à insérer, cette propriété a une valeur de 0 ; dans la
colonne contenant les chemins d'accès aux fichiers sources, elle
contient le LineageID de la colonne de données à insérer.

L'entrée, la sortie et les colonnes de sortie de la transformation d'importation de


colonne ne disposent pas de propriétés personnalisées.

Pour plus d’informations, voir Import Column Transformation.

Transformation de regroupement probable,


propriétés personnalisées
La transformation de regroupement probable dispose à la fois de propriétés
personnalisées et de propriétés communes à l'ensemble des composants de flux de
données.

Le tableau suivant décrit les propriétés personnalisées de la transformation de


regroupement probable. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données
Propriété Type de Description
données

Délimiteurs String Séparateurs de jetons utilisés par la transformation. Les


séparateurs par défaut incluent les caractères suivants : espace (
), virgule (,), point (.), point-virgule (;), deux-points (:), trait
d’union (-), guillemet double ("), guillemet simple (’), esperluette
(&), barre oblique (/), barre oblique inverse (\), arobase (@),
point d’exclamation (!), point d’interrogation (?), parenthèse
ouvrante ((), parenthèse fermante ()), signe inférieur à (<), signe
supérieur à (>), crochet ouvrant ([), crochet fermant (]), accolade
ouvrante ({), accolade fermante (}), barre verticale (|), signe dièse
(#), astérisque (*), signe insertion (^) et symbole de pourcentage
(%).

Exhaustive Boolean Valeur spécifiant si chaque enregistrement d'entrée est comparé


à tous les autres enregistrements d'entrée. La valeur True sert
principalement à des fins de débogage. La valeur par défaut de
cette propriété est False.

Remarque : cette propriété n’est pas disponible dans l’Éditeur de


transformation par regroupement probable, mais peut être
définie avec l’Éditeur avancé.

MaxMemoryUsage Integer Quantité de mémoire maximale que peut utiliser la


transformation. La valeur par défaut de cette propriété est 0,
permettant ainsi l'utilisation dynamique de la mémoire.

Il est possible de spécifier la valeur de cette propriété en utilisant


l'expression d'une propriété.

Remarque : cette propriété n’est pas disponible dans l’Éditeur de


transformation par regroupement probable, mais peut être
définie avec l’Éditeur avancé.

MinSimilarity Double Seuil de similarité (exprimé par une valeur comprise entre 0 et 1)
que la transformation utilise pour identifier des doublons. La
valeur par défaut de cette propriété est de 0,8.

Le tableau suivant décrit les propriétés personnalisées des colonnes d'entrée de la


transformation de regroupement probable. Toutes les propriétés sont en lecture/
écriture.

Propriété Type de Description


données
Propriété Type de Description
données

ExactFuzzy Integer Valeur qui spécifie si la transformation


(énumération) réalise une correspondance approximative
ou une correspondance exacte. Les valeurs
valides sont Exacte et Approximative. La
valeur par défaut de cette propriété est
Approximative.

FuzzyComparisonFlags Integer Valeur qui spécifie la manière dont la


(énumération) transformation compare les données de
chaîne dans une colonne. Cette propriété
peut prendre les valeurs suivantes :

FullySensitive

IgnoreCase

IgnoreKanaType

IgnoreNonSpace

IgnoreSymbols

IgnoreWidth

Pour plus d'informations, voir Comparing


String Data.

LeadingTrailingNumeralsSignificant Integer Valeur qui précise l'importance des chiffres.


(énumération) Cette propriété peut prendre les valeurs
suivantes :

NumeralsNotSpecial (0) : à utiliser si les


chiffres ne sont pas significatifs.

LeadingNumeralsSignificant (1) : à utiliser


si les premiers chiffres sont significatifs.

TrailingNumeralsSignificant (2) : à utiliser


si les derniers chiffres sont significatifs.

LeadingAndTrailingNumeralsSignificant
(3) : à utiliser si les premiers et les derniers
chiffres sont significatifs.
Propriété Type de Description
données

MinSimilarity Double Seuil de similarité (exprimé par une valeur


comprise entre 0 et 1) utilisé pour la
jointure sur la colonne. Seules les lignes
supérieures au seuil sont validées comme
des correspondances.

ToBeCleaned Boolean Valeur qui spécifie si la colonne est utilisée


pour identifier des doublons, à savoir s'il
s'agit d'une colonne dans laquelle vous
procédez à des regroupements. La valeur
par défaut de cette propriété est False.

Le tableau suivant décrit les propriétés personnalisées des colonnes de sortie de la


transformation de regroupement probable. Toutes les propriétés sont en lecture/
écriture.

Nom de la Type de Description


propriété données

ColumnType Integer Valeur qui identifie le type de colonne de sortie. Cette propriété
(énumération) peut prendre les valeurs suivantes :

Undefined (0)

KeyIn (1)

KeyOut (2)

Similarity (3)

ColumnSimilarity (4)

PassThru (5)

Canonical (6)

InputID Integer LineageID de la colonne d'entrée correspondante.

L'entrée et la sortie de la transformation de regroupement probable ne sont pas dotées


de propriétés personnalisées.

Pour plus d’informations, voir Fuzzy Grouping Transformation.


Transformation de recherche floue, propriétés
personnalisées
La transformation de recherche floue dispose à la fois de propriétés personnalisées et
de propriétés communes à l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la transformation de recherche


floue. Toutes les propriétés à l’exception de ReferenceMetadataXML sont en lecture/
écriture.

Propriété Type de Description


données

CopyReferenceTable Boolean Spécifie si une copie de la table de référence doit


être réalisée pour la construction de l'index de
recherche floue et les recherches suivantes. La
valeur par défaut de cette propriété est True.

Délimiteurs String Séparateurs utilisés par la transformation pour


marquer les valeurs de colonne. Les séparateurs
par défaut incluent les caractères suivants : espace
( ), virgule (,), point (.), point-virgule (;), deux-
points (:), trait d’union (-), guillemet
dactylographique double ("), guillemet
dactylographique simple (’), esperluette (&), barre
oblique (/), barre oblique inverse (\), arobase (@),
point d’exclamation (!), point d’interrogation (?),
parenthèse ouvrante ((), parenthèse fermante ()),
signe inférieur à (<), signe supérieur à (>), crochet
ouvrant ([), crochet fermant (]), accolade ouvrante
({), accolade fermante (}), barre verticale (|). signe
dièse (#), astérisque (*), signe insertion (^) et
symbole de pourcentage (%).

DropExistingMatchIndex Boolean Valeur spécifiant si l’index de correspondance


spécifié dans MatchIndexName est supprimé
quand MatchIndexOptions n’est pas défini sur
ReuseExistingIndex. La valeur par défaut de cette
propriété est True.
Propriété Type de Description
données

Exhaustive Boolean Valeur spécifiant si chaque enregistrement


d'entrée est comparé à tous les autres
enregistrements d'entrée. La valeur True sert
principalement à des fins de débogage. La valeur
par défaut de cette propriété est False.

Remarque : cette propriété n’est pas disponible


dans l’Éditeur de transformation par recherche
probable, mais peut être définie avec l’Éditeur
avancé.

MatchIndexName String Nom de l'index de correspondance. L'index de


correspondance désigne la table dans laquelle la
transformation crée et enregistre l'index qu'elle
utilise. En cas de réutilisation de l’index de
correspondance, MatchIndexName spécifie l’index
à réutiliser. MatchIndexName doit être un nom
d’identificateur SQL Server valide. Par exemple, si
le nom contient des espaces, il doit apparaître
entre crochets.

MatchIndexOptions Integer Valeur précisant la manière dont la transformation


(énumération) gère l'index de correspondance. Cette propriété
peut prendre les valeurs suivantes :

ReuseExistingIndex (0)

GenerateNewIndex (1)

GenerateAndPersistNewIndex (2)

GenerateAndMaintainNewIndex (3)

MaxMemoryUsage Integer Taille maximale du cache pour la table de


recherche. La valeur par défaut de cette propriété
est 0, ce qui signifie que la taille du cache est
illimitée.

Il est possible de spécifier la valeur de cette


propriété en utilisant l'expression d'une propriété.

Remarque : cette propriété n’est pas disponible


dans l’Éditeur de transformation par recherche
probable, mais peut être définie avec l’Éditeur
avancé.
Propriété Type de Description
données

MaxOutputMatchesPerInput Integer Nombre maximal de correspondances que la


transformation peut retourner pour chaque ligne
d'entrée. La valeur par défaut de cette propriété
est 1.

Remarque : les valeurs supérieures à 100 ne


peuvent être définies qu’avec l’Éditeur Avancé.

MinSimilarity Integer Seuil de similarité (exprimé par une valeur


comprise entre 0 et 1) que la transformation
utilise au niveau du composant. Seules les lignes
supérieures au seuil sont validées comme des
correspondances.

ReferenceMetadataXML String Identifié à titre d'information uniquement. Non


pris en charge. La compatibilité future n'est pas
garantie.

ReferenceTableName String Nom de la table de recherche. Le nom doit être


un nom d'identificateur SQL Server valide. Par
exemple, si le nom contient des espaces, il doit
apparaître entre crochets.

WarmCaches Boolean Lorsque la valeur définie est True, la recherche


charge partiellement l'index et la table de
référence dans la mémoire avant le début de
l'exécution, ce qui permet d'améliorer les
performances.

Le tableau suivant décrit les propriétés personnalisées des colonnes d'entrée de la


transformation de recherche floue. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

FuzzyComparisonFlags Integer Valeur qui spécifie la manière dont la transformation


compare les données de chaîne dans une colonne.
Pour plus d'informations, voir Comparing String Data.

FuzzyComparisonFlagsEx Integer Valeur qui spécifie quels indicateurs de comparaison


(énumération) étendus sont utilisés par la transformation. Les
valeurs peuvent comprendre MapExpandLigatures,
MapFoldCZone, MapFoldDigits, MapPrecomposedet
NoMapping. NoMapping ne peut être utilisé avec
d'autres indicateurs.
Propriété Type de Description
données

JoinToReferenceColumn String Valeur spécifiant le nom de la colonne dans la table


de référence à laquelle la colonne est jointe.

JoinType Integer Valeur qui spécifie si la transformation réalise une


correspondance approximative ou une
correspondance exacte. La valeur par défaut de cette
propriété est Approximative. La valeur entière pour le
type de jointure exact est 1 et la valeur pour le type
de jointure flou est 2.

MinSimilarity Double Seuil de similarité (exprimé par une valeur comprise


entre 0 et 1) que la transformation utilise au niveau
de la colonne. Seules les lignes supérieures au seuil
sont validées comme des correspondances.

Le tableau suivant décrit les propriétés personnalisées des colonnes de sortie de la


transformation de recherche floue. Toutes les propriétés sont en lecture/écriture.

7 Notes

Pour les colonnes de sortie qui contiennent des valeurs de relais issues des
colonnes d’entrée correspondantes, CopyFromReferenceColumn est vide et
SourceInputColumnLineageID contient le LineageID de la colonne d’entrée
correspondante. Pour les colonnes de sortie qui contiennent des résultats de
recherche, CopyFromReferenceColumn contient le nom de la colonne de recherche
et SourceInputColumnLineageID est vide.

Propriété Type de Description


données

ColumnType Integer Valeur qui identifie le type de colonne de sortie


(énumération) pour les colonnes que la transformation ajoute à
la sortie. Cette propriété peut prendre les valeurs
suivantes :

Undefined (0)

Similarity (1)

Confidence (2)

ColumnSimilarity (3)
Propriété Type de Description
données

CopyFromReferenceColumn String Valeur précisant le nom de la colonne dans la


table de référence qui fournit la valeur dans une
colonne de sortie.

SourceInputColumnLineageId Integer Valeur identifiant la colonne d'entrée qui fournit


des valeurs à cette colonne de sortie.

L'entrée et la sortie de la transformation de recherche floue ne sont pas dotées de


propriétés personnalisées.

Pour plus d’informations, voir Fuzzy Lookup Transformation.

Transformation de recherche, propriétés


personnalisées
La transformation de recherche dispose à la fois de propriétés personnalisées et de
propriétés communes à l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la transformation de


recherche. Toutes les propriétés à l’exception de ReferenceMetadataXML sont en
lecture/écriture.

Propriété Type de Description


données

CacheType Integer Type de cache de la table de recherche. Les valeurs


(énumération) sont Full (0), Partial (1) et None (2). La valeur par
défaut de cette propriété est Full.

DefaultCodePage Integer Page de codes à utiliser par défaut lorsque les


informations de page de codes ne sont pas
disponibles à partir de la source de données.

MaxMemoryUsage Integer Taille maximale du cache pour la table de recherche.


La valeur par défaut de cette propriété est 25, ce qui
signifie que la taille du cache est illimitée.

MaxMemoryUsage64 Integer Taille maximale du cache pour la table de recherche


sur un ordinateur 64 bits.
Propriété Type de Description
données

NoMatchBehavior Integer Valeur qui spécifie si les lignes qui ne disposent pas
(énumération) d'entrées correspondantes dans le dataset de
référence sont traitées comme des erreurs.

Quand la propriété est définie avec la valeur Traiter


comme erreurs les lignes sans entrées
correspondantes (0), les lignes sans entrées
correspondantes sont traitées comme des erreurs.
Vous pouvez spécifier la démarche à suivre lorsque ce
type d'erreur se produit à partir de la page Sortie
d'erreur de la boîte de dialogue Éditeur de
transformation de recherche . Pour plus
d’informations, consultez Éditeur de transformation de
recherche (page Sortie d’erreur).

Quand la propriété est définie avec la valeur Envoyer


les lignes sans entrées correspondantes dans la
sortie sans correspondance (1), les lignes ne sont pas
traitées comme des erreurs.

La valeur par défaut est Traiter comme erreurs les


lignes sans entrées correspondantes (0).

ParameterMap String Liste délimitée par des points-virgules d’identificateurs


de lignage mappés aux paramètres utilisés dans
l’instruction SqlCommand .

ReferenceMetadataXML String Métadonnées des colonnes de la table de recherche


que la transformation copie vers sa sortie.

SqlCommand String Instruction SELECT qui remplit la table de recherche.

SqlCommandParam String Instruction SQL paramétrable qui remplit la table de


recherche.

Le tableau suivant décrit les propriétés personnalisées des colonnes d'entrée de la


transformation de recherche. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

CopyFromReferenceColumn String Nom de la colonne dans la table de référence depuis


laquelle une colonne est copiée.

JoinToReferenceColumns String Nom de la colonne dans la table de référence à


laquelle une colonne source est jointe.
Le tableau suivant décrit les propriétés personnalisées des colonnes de sortie de la
transformation de recherche. Toutes les propriétés sont en lecture/écriture.

Nom de la propriété Type de Description


données

CopyFromReferenceColumn String Nom de la colonne dans la table de référence depuis


laquelle une colonne est copiée.

L'entrée et la sortie de la transformation de recherche ne sont pas dotées de propriétés


personnalisées.

Pour plus d’informations, voir Lookup Transformation.

Transformation de jointure de fusion,


propriétés personnalisées
La transformation de jointure de fusion dispose à la fois de propriétés personnalisées et
de propriétés communes à l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la transformation de jointure


de fusion.

Propriété Type de Description


données

JoinType Integer Spécifie si la jointure est une jointure interne (2), externe
(énumération) gauche (1) ou complète (0).

MaxBuffersPerInput Integer Vous n'avez plus à configurer la valeur de la propriété


MaxBuffersPerInput car Microsoft a apporté des
modifications qui réduisent le risque que la transformation
de jointure de fusion consomme de la mémoire en excès.
Ce problème s'est quelquefois produit lorsque plusieurs
entrées de jointure de fusion produisaient des données à
des taux irréguliers.

NumKeyColumns Integer Nombre de colonnes utilisées dans la jointure.

TreatNullsAsEqual Boolean Valeur qui spécifie si la transformation gère les valeurs


NULL comme valeurs égales. La valeur par défaut de cette
propriété est True. Si la valeur de la propriété est False, la
transformation gère les valeurs NULL de la même manière
que SQL Server .
Le tableau suivant décrit les propriétés personnalisées des colonnes de sortie de la
transformation de jointure de fusion. Toutes les propriétés sont en lecture/écriture.

Nom de la Type de Description


propriété données

InputColumnID Integer LineageID de la colonne d'entrée de laquelle les données sont


copiées vers cette colonne de sortie.

L'entrée, les colonnes d'entrée et la sortie de la transformation de jointure de fusion ne


disposent pas de propriétés personnalisées.

Pour plus d’informations, voir Merge Join Transformation.

Transformation de commande OLE DB,


propriétés personnalisées
La transformation de commande OLE DB dispose à la fois de propriétés personnalisées
et de propriétés communes à l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la transformation de


commande OLE DB.

Nom de la Type de Description


propriété données

CommandTimeout Integer Nombre maximal de secondes pendant lesquelles la commande


SQL peut être exécutée avant d'arriver à expiration. Une valeur
égale à 0 indique une durée illimitée. La valeur par défaut de
cette propriété est 0.

DefaultCodePage Integer Page de codes à utiliser lorsque les informations de page de


codes ne sont pas disponibles depuis la source de données.

SqlCommand String Instruction Transact-SQL que la transformation exécute pour


chaque ligne dans le flux de données.

Il est possible de spécifier la valeur de cette propriété en utilisant


l'expression d'une propriété.

Le tableau suivant décrit les propriétés personnalisées des colonnes externes de la


transformation de commande OLE DB. Toutes les propriétés sont en lecture/écriture.

Nom de la Type de Description


propriété données
Nom de la Type de Description
propriété données

DBParamInfoFlag Entier Ensemble d'indicateurs qui décrivent les caractéristiques des


(masque paramètres. Pour plus d'informations, consultez
de bits) DBPARAMFLAGSENUM dans la documentation OLE DB disponible
dans MSDN Library.

L'entrée, les colonnes d'entrée, la sortie et les colonnes de sortie de la transformation de


commande OLE DB ne disposent pas de propriétés personnalisées.

Pour plus d’informations, consultez OLE DB Command Transformation.

Transformation d'échantillonnage par


pourcentage, propriétés personnalisées
La transformation d'échantillonnage par pourcentage dispose à la fois de propriétés
personnalisées et de propriétés communes à l'ensemble des composants de flux de
données.

Le tableau suivant décrit les propriétés personnalisées de la transformation


d'échantillonnage par pourcentage.

Propriété Type de Description


données

SamplingSeed Integer Valeur de départ employée par le générateur de nombres aléatoires.


La valeur par défaut de cette propriété est 0, ce qui indique que la
transformation utilise un nombre de cycles.

SamplingValue Integer Taille de l'échantillon sous la forme d'un pourcentage de la source.

Il est possible de spécifier la valeur de cette propriété en utilisant


l'expression d'une propriété.

Le tableau suivant décrit les propriétés personnalisées des sorties de la transformation


d'échantillonnage par pourcentage. Toutes les propriétés sont en lecture/écriture.

Nom de la Type de Description


propriété données

Volumes Boolean Désigne la sortie vers laquelle les lignes échantillonnées sont dirigées.
sélectionnés Dans la sortie sélectionnée, Selected est défini sur True, tandis que
dans la sortie non sélectionnée, Selected est défini sur False.
L'entrée, les colonnes d'entrée et les colonnes de sortie de la transformation
d'échantillonnage par pourcentage ne disposent pas de propriétés personnalisées.

Pour plus d’informations, voir Percentage Sampling Transformation.

Transformation de tableau croisé dynamique,


propriétés personnalisées
Le tableau suivant décrit les propriétés de composant personnalisées de la
transformation de tableau croisé dynamique.

Propriété Type de Description


données

PassThroughUnmatchedPivotKeyts Boolean Affectez la valeur True pour configurer la


transformation de tableau croisé dynamique
afin d'ignorer les lignes contenant des valeurs
non reconnues dans la colonne Clé de tableau
croisé dynamique et de générer toutes les
valeurs clés de tableau croisé dynamique dans
un message de journal, lorsque le package est
exécuté.

Le tableau suivant décrit les propriétés personnalisées des colonnes d'entrée de la


transformation de tableau croisé dynamique. Toutes les propriétés sont en lecture/
écriture.

Propriété Type de Description


données
Propriété Type de Description
données

PivotUsage Integer Valeur qui spécifie le rôle d'une colonne lorsque le jeu de données
(énumération) est croisé.

0:
La colonne n'est pas croisée dynamiquement et les valeurs de la
colonne sont transmises à la sortie de la transformation.

1:
La colonne fait partie de la clé d'ensemble qui identifie une ou
plusieurs lignes comme appartenant à un même ensemble. Toutes
les lignes d'entrée portant la même clé d'ensemble sont combinées
dans une ligne de sortie.

2:
La colonne est une colonne tableau croisé dynamique. Au moins
une colonne est créée à partir de chaque valeur de colonne.

3:
Les valeurs de cette colonne sont placées dans les colonnes créées
à la suite du croisement dynamique.

Le tableau suivant décrit les propriétés personnalisées des colonnes de sortie de la


transformation de tableau croisé dynamique. Toutes les propriétés sont en lecture/
écriture.

Propriété Type de Description


données

PivotKeyValue String Une des valeurs possibles de la colonne marquée comme clé de
tableau croisé dynamique par la valeur de sa propriété PivotUsage.

Il est possible de spécifier la valeur de cette propriété en utilisant


l'expression d'une propriété.

SourceColumn Integer LineageID d’une colonne d’entrée qui contient une valeur croisée
dynamique ou -1. La valeur -1 indique que la colonne ne participe à
aucune opération croisée dynamique.

Pour plus d’informations, voir Pivot Transformation.

Transformation de calcul du nombre de lignes,


propriétés personnalisées
La transformation de calcul du nombre de lignes dispose à la fois de propriétés
personnalisées et de propriétés communes à l'ensemble des composants de flux de
données.

Le tableau suivant décrit les propriétés personnalisées de la transformation de calcul du


nombre de lignes. Toutes les propriétés sont en lecture/écriture.

Nom de la propriété Type de données Description

VariableName String Nom de la variable contenant le nombre de lignes.

L'entrée, les colonnes d'entrée, la sortie et les colonnes de sortie de la transformation de


calcul du nombre de lignes ne disposent pas de propriétés personnalisées.

Pour plus d’informations, voir Row Count Transformation.

Transformation d'échantillonnage de lignes,


propriétés personnalisées
La transformation d'échantillonnage de lignes dispose à la fois de propriétés
personnalisées et de propriétés communes à l'ensemble des composants de flux de
données.

Le tableau suivant décrit les propriétés personnalisées de la transformation


d'échantillonnage de lignes. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

SamplingSeed Integer Valeur de départ employée par le générateur de nombres aléatoires.


La valeur par défaut de cette propriété est 0, ce qui indique que la
transformation utilise un nombre de cycles.

SamplingValue Integer Nombre de lignes dans l'échantillon.

Il est possible de spécifier la valeur de cette propriété en utilisant


l'expression d'une propriété.

Le tableau suivant décrit les propriétés personnalisées des sorties de la transformation


d'échantillonnage de lignes. Toutes les propriétés sont en lecture/écriture.

Nom de la Type de Description


propriété données
Nom de la Type de Description
propriété données

Volumes Boolean Désigne la sortie vers laquelle les lignes échantillonnées sont dirigées.
sélectionnés Dans la sortie sélectionnée, Selected est défini sur True, tandis que
dans la sortie non sélectionnée, Selected est défini sur False.

Le tableau suivant décrit les propriétés personnalisées des colonnes de sortie de la


transformation d'échantillonnage de lignes. Toutes les propriétés sont en lecture/
écriture.

Propriété Type de Description


données

InputColumnLineageId Integer Valeur spécifiant le LineageID de la colonne d'entrée qui


correspond à la source de la colonne de sortie.

L'entrée et les colonnes d'entrée de la transformation d'échantillonnage de lignes ne


sont pas dotées de propriétés personnalisées.

Pour plus d’informations, consultez Transformation d’échantillonnage de lignes.

Composant Script, propriétés personnalisées


Le composant Script dispose à la fois de propriétés personnalisées et de propriétés
communes à l'ensemble des composants de flux de données. Les mêmes propriétés
personnalisées sont disponibles si le composant Script opère en qualité de source, de
transformation ou de destination.

Le tableau suivant décrit les propriétés personnalisées du composant Script. Toutes les
propriétés sont en lecture/écriture.

Nom de la Type de Description


propriété données

ReadOnlyVariables String Liste séparée par des virgules de variables disponibles pour
l'accès en lecture seule du composant Script.

ReadWriteVariables String Liste séparée par des virgules de variables disponibles pour
l'accès en lecture/écriture du composant Script.

L'entrée, les colonnes d'entrée, la sortie et les colonnes de sortie du composant Script
ne disposent pas de propriétés personnalisées, sauf si le développeur du script crée des
propriétés personnalisées pour elles.
Pour plus d’informations, voir Script Component.

Transformation de dimension à variation lente,


propriétés personnalisées
La transformation de dimension à variation lente dispose à la fois de propriétés
personnalisées et de propriétés communes à l'ensemble des composants de flux de
données.

Le tableau suivant décrit les propriétés personnalisées de la transformation de


dimension à variation lente. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

CurrentRowWhere String Clause WHERE dans l'instruction SELECT chargée


de sélectionner la ligne actuelle parmi des lignes
dotées de la même clé d'entreprise.

EnableInferredMember Boolean Valeur indiquant si les mises à jour de membre


déduit sont détectées. La valeur par défaut de
cette propriété est True.

FailOnFixedAttributeChange Boolean Valeur qui indique si la transformation échoue


lorsque les colonnes de ligne comportant des
attributs fixes contiennent des modifications ou
lorsque la recherche dans la table de dimension se
solde par un échec. Si vous vous attendez à ce que
les lignes entrantes contiennent de nouveaux
enregistrements, définissez cette valeur sur True
pour poursuivre la transformation après l'échec de
la recherche car la transformation se fonde sur cet
échec pour identifier de nouveaux
enregistrements. La valeur par défaut de cette
propriété est False.

FailOnLookupFailure Boolean Valeur qui indique si la transformation échoue


lorsque la recherche d'un enregistrement existant
se solde également par un échec. La valeur par
défaut de cette propriété est False.

IncomingRowChangeType Integer Valeur qui spécifie si toutes les lignes entrantes


sont des nouvelles lignes ou si la transformation
doit détecter le type de modification.

InferredMemberIndicator String Nom de la colonne du membre déduit.


Propriété Type de Description
données

SqlCommand String Instruction SQL employée pour créer un ensemble


de lignes de schéma.

UpdateChangingAttributeHistory Boolean Valeur qui indique si les mises à jour d'attribut


d'historique sont dirigées sur la sortie de la
transformation pour les mises à jour d'attribut
variable.

Le tableau suivant décrit les propriétés personnalisées des colonnes d'entrée de la


transformation de dimension à variation lente. Toutes les propriétés sont en lecture/
écriture.

Propriété Type de Description


données

ColumnType Integer Type de mise à jour de la colonne. Les valeurs sont : Attribut
(énumération) variable (2), Attribut fixe (4), Attribut historique (3), Clé (1) et
Autre (0).

L'entrée, les sorties et les colonnes de sortie de la transformation de dimension à


variation lente ne disposent pas de propriétés personnalisées.

Pour plus d’informations, voir Slowly Changing Dimension Transformation.

Transformation de tri, propriétés


personnalisées
La transformation de tri dispose à la fois de propriétés personnalisées et de propriétés
communes à l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la transformation de tri. Toutes


les propriétés sont en lecture/écriture.

Propriété Type de Description


données

EliminateDuplicates Boolean Spécifie si la transformation supprime les lignes dupliquées


dans la sortie de la transformation. La valeur par défaut de cette
propriété est False.
Propriété Type de Description
données

MaximumThreads Integer Contient le nombre maximal de threads que peut utiliser la


transformation lors du tri. Une valeur égale à 0 indique une
quantité infinie de threads. La valeur par défaut de cette
propriété est 0.

Il est possible de spécifier la valeur de cette propriété en


utilisant l'expression d'une propriété.

Le tableau suivant décrit les propriétés personnalisées des colonnes d'entrée de la


transformation de tri. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

NewComparisonFlags Entier Valeur qui spécifie la manière dont la transformation compare


(masque les données de chaîne dans une colonne. Pour plus
de bits) d'informations, voir Comparing String Data.

NewSortKeyPosition Integer Valeur qui spécifie l'ordre de tri de la colonne. Une valeur
égale à 0 indique que les données ne sont pas triées sur cette
colonne.

Le tableau suivant décrit les propriétés personnalisées des colonnes de sortie de la


transformation de tri. Toutes les propriétés sont en lecture/écriture.

Propriété Type de données Description

SortColumnID Integer LineageID d'une colonne de tri.

L'entrée et la sortie de la transformation de tri ne sont pas dotées de propriétés


personnalisées.

Pour plus d’informations, voir Sort Transformation.

Transformation d'extraction de terme,


propriétés personnalisées
La transformation d'extraction de terme dispose à la fois de propriétés personnalisées et
de propriétés communes à l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la transformation d'extraction


de terme. Toutes les propriétés sont en lecture/écriture.
Propriété Type de Description
données

FrequencyThreshold Integer Valeur numérique indiquant le nombre d'occurrences d'un


terme avant son extraction. La valeur par défaut de cette
propriété est de 2.

IsCaseSensitive Boolean Valeur qui précise si l'extraction de noms et d'expressions


nominales doit tenir compte de la casse. La valeur par défaut
de cette propriété est False.

MaxLengthOfTerm Integer Valeur numérique qui indique la longueur maximale d'un


terme. Cette propriété concerne uniquement les expressions. La
valeur par défaut de cette propriété est de 12.

NeedRefenceData Boolean Valeur qui spécifie si la transformation utilise une liste de


termes d'exclusion stockée dans une table de référence. La
valeur par défaut de cette propriété est False.

OutTermColumn String Nom de la colonne qui contient les termes d'exclusion.

OutTermTable String Nom de la table contenant la colonne qui comporte des termes
d'exclusion.

ScoreType Integer Valeur qui précise le type de score à associer au terme. Les
valeurs valides sont 0 qui indique la fréquence et 1 qui désigne
un score TFIDF. Le score TFIDF est le produit de la fréquence
des termes (TF, Term Frequency) et de la fréquence inverse de
documents (IDF, Inverse Document Frequency), défini comme
suit : TFIDF d’un terme T = (fréquence de T) * log( (#lignes en
entrée) / (#lignes ayant T) ). La valeur par défaut de cette
propriété est 0.

WordOrPhrase Integer Valeur qui spécifie le type de terme. Les valeurs valides sont 0
qui indique des mots uniquement, 1 qui désigne des
expressions nominales seulement et 2 qui indique des mots et
des expressions nominales à la fois. La valeur par défaut de
cette propriété est 0.

L'entrée, les colonnes d'entrée, la sortie et les colonnes de sortie de la transformation


d'extraction de terme ne disposent pas de propriétés personnalisées.

Pour plus d’informations, voir Term Extraction Transformation.

Transformation de recherche de terme,


propriétés personnalisées
La transformation de recherche de terme dispose à la fois de propriétés personnalisées
et de propriétés communes à l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la transformation de recherche


de terme. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

IsCaseSensitive Boolean Valeur qui spécifie si une comparaison respectant la casse


s'applique à la correspondance du texte de la colonne d'entrée et
au terme de recherche. La valeur par défaut de cette propriété est
False.

RefTermColumn String Nom de la colonne qui contient les termes de recherche.

RefTermTable String Nom de la table contenant la colonne qui comporte des termes de
recherche.

Le tableau suivant décrit les propriétés personnalisées des colonnes d'entrée de la


transformation de recherche de terme. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

InputColumnType Integer Valeur qui spécifie l'utilisation de la colonne. Les valeurs valides
sont 0 pour une colonne de relais, 1 pour une colonne de
recherche et 2 pour une colonne qui est à la fois une colonne de
relais et de recherche.

Le tableau suivant décrit les propriétés personnalisées des colonnes de sortie de la


transformation de recherche de terme. Toutes les propriétés sont en lecture/écriture.

Nom de la Type de Description


propriété données

CustomLineageID Integer LineageID de la colonne d'entrée correspondante si la valeur du


InputColumnType de cette colonne est égale à 0 ou 2.

L'entrée et la sortie de la transformation de recherche de terme ne sont pas dotées de


propriétés personnalisées.

Pour plus d’informations, voir Term Lookup Transformation.


Transformation UnPivot, propriétés
personnalisées
La transformation UnPivot dispose uniquement des propriétés communes à l'ensemble
des composants de flux de données au niveau du composant.

7 Notes

Cette section porte sur le scénario UnPivot présenté dans Transformation Unpivot
pour illustrer l’utilisation des options décrites.

Le tableau suivant décrit les propriétés personnalisées des colonnes d'entrée de la


transformation UnPivot. Toutes les propriétés sont en lecture/écriture.

Propriété Type de Description


données

DestinationColumn Integer LineageID de la colonne de sortie à laquelle la colonne d'entrée


est mappée. Une valeur égale à -1 indique que la colonne
d'entrée n'est pas mappée à une colonne de sortie.

PivotKeyValue String Valeur copiée vers une colonne de sortie de la transformation.

Il est possible de spécifier la valeur de cette propriété en


utilisant l'expression d'une propriété.

Dans le scénario UnPivot décrit dans Unpivot Transformation, les


valeurs de tableau croisé dynamique sont les valeurs texte Ham,
Coke, Milk, Beer et Chips. Ces valeurs apparaîtront sous la forme
de valeurs texte dans la nouvelle colonne Product définie au
moyen de l'option Nom de colonne de la valeur de clé de
tableau croisé dynamique .

Le tableau suivant décrit les propriétés personnalisées des colonnes de sortie de la


transformation UnPivot. Toutes les propriétés sont en lecture/écriture.

Nom de Type de Description


la données
propriété
Nom de Type de Description
la données
propriété

PivotKey Boolean Indique si les valeurs dans la propriété PivotKeyValue des colonnes
d'entrée sont écrites dans cette colonne de sortie.

Dans le scénario UnPivot décrit dans Unpivot Transformation, le nom de


la colonne de la valeur de tableau croisé dynamique est Product et définit
la nouvelle colonne Product dans laquelle les colonnes Ham, Coke; Milk,
Beer et Chips ne sont pas croisées dynamiquement.

L'entrée et la sortie de la transformation UnPivot ne sont pas dotées de propriétés


personnalisées.

Pour plus d’informations, voir Unpivot Transformation.

Voir aussi
Transformations Integration Services
Propriétés communes
Propriétés du chemin
Propriétés du flux de données pouvant être définies à l’aide d’expressions
Source XML
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La source XML lit un fichier de données XML et remplit les colonnes de la sortie source
avec les données.

Les données des fichiers XML sont fréquemment organisées de façon hiérarchique. Par
exemple, un fichier de données XML peut représenter des catalogues et des éléments
dans des catalogues. Avant que les données puissent entrer dans le flux de données, la
relation des éléments du fichier de données XML doit être déterminée et une sortie doit
être générée pour chaque élément du fichier.

Schémas
La source XML utilise un schéma pour interpréter les données XML. La source XML
prend en charge l'utilisation d'un fichier XSD (XML Schema Definition) ou de schémas
inclus pour convertir les données XML dans un format tabulaire. Si vous configurez la
source XML à l’aide de la boîte de dialogue Éditeur de source XML , l’interface
utilisateur peut générer un fichier XSD à partir du fichier de données XML spécifié.

7 Notes

Les DTD ne sont pas pris en charge.

Les schémas ne peuvent prendre en charge qu'un seul espace de noms ; ils ne prennent
pas en charge les collections de schémas.

7 Notes

La source XML ne valide pas les données du fichier XML par rapport au fichier XSD.

Éditeur de source XML


Les données des fichiers XML sont fréquemment organisées de façon hiérarchique. La
boîte de dialogue Éditeur de source XML utilise le schéma spécifié pour générer les
sorties de la source XML. Vous pouvez spécifier un fichier XSD, utiliser un schéma inclus
ou générer un fichier XSD à partir du fichier de données XML spécifié. Le schéma doit
être disponible au moment de la conception.

La source XML génère des structures tabulaires à partir des données XML en créant une
sortie pour chaque élément contenant d'autres éléments dans les fichiers XML. Par
exemple, si les données XML représentent des catalogues et des éléments dans des
catalogues, la source XML crée une sortie pour les catalogues et une sortie pour chaque
type d'élément contenu dans ces catalogues. La sortie de chaque élément contient des
colonnes de sortie pour les attributs de cet élément.

Pour fournir des informations sur les relations hiérarchiques des données dans les
sorties, la source XML ajoute dans celles-ci une colonne qui identifie l'élément parent de
chaque élément enfant. Dans l'exemple des catalogues contenant différents types
d'éléments, à chaque élément correspond une valeur de colonne qui identifie le
catalogue auquel il appartient.

La source XML crée une sortie pour chaque élément, mais vous n'êtes pas obligé
d'utiliser toutes les sorties. Vous pouvez supprimer toute sortie que vous ne souhaitez
pas utiliser ou simplement ne pas la connecter à un composant en aval.

La source XML génère également les noms de sortie, afin que ceux-ci ne soient pas
ambigus. Ces noms peuvent être longs et ne pas identifier les sorties de façon très
utilisable pour vous. Vous pouvez renommer les sorties, sous réserve que leurs noms
demeurent uniques. Vous pouvez également modifier le type de données et la longueur
des colonnes de sortie.

Pour chaque sortie, la source XML ajoute une sortie d'erreur. Par défaut, les colonnes
situées dans les sorties d'erreur ont le type de données chaîne Unicode (DT_WSTR) et
une longueur de 255 caractères ; toutefois, vous pouvez reconfigurer leur type de
données et leur longueur.

Si le fichier de données XML contient des éléments qui ne figurent pas dans le fichier
XSD, ces éléments sont ignorés et aucune sortie correspondante n'est générée. Par
contre, s'il manque dans le fichier de données XML des éléments représentés dans le
fichier XSD, la sortie contient des colonnes comportant des valeurs NULL.

Quand les données sont extraites du fichier de données XML, elles sont converties en un
type de données Integration Services. Toutefois, la source XML ne peut pas convertir les
données XML en types de données DT_TIME2 ou DT_DBTIMESTAMP2, car elle ne prend
pas en charge ces types de données. Pour plus d’informations, consultez Types de
données Integration Services.
Le fichier XSD ou le schéma inclus peuvent spécifier le type de données des éléments
mais, s’ils ne le font pas, la boîte de dialogue Éditeur de source XML affecte le type de
données chaîne Unicode (DT_WSTR) à la colonne de sortie qui contient l’élément et
définit pour celle-ci une longueur de 255 caractères.

Si le schéma spécifie la longueur maximale d'un élément, la longueur de la colonne de


sortie prend cette valeur. Si la longueur maximale est supérieure à la longueur prise en
charge par le type de données Integration Services dans lequel l’élément est converti,
les données sont tronquées à la longueur maximale du type de données. Par exemple, si
une chaîne a une longueur de 5000, elle est tronquée au 4000e caractère car la longueur
maximale du type de données DT_WSTR est de 4000 caractères ; de même, les données
de type octet sont tronquées au 8000e caractère, car la longueur maximale du type de
données DT_BYTES est de 4000 caractères. Si le schéma ne spécifie aucune longueur
maximale, la longueur par défaut des colonnes, indépendamment de leur type de
données, est de 255. La troncation des données dans la source XML est gérée de la
même manière que dans les autres composants de flux de données. Pour plus
d’informations, consultez Gestion des erreurs dans les données.

Vous pouvez modifier le type de données et la longueur de la colonne. Pour plus


d’informations, consultez Types de données Integration Services.

Configuration de la source XML


La source XML prend en charge trois modes différents d'accès aux données. Vous
pouvez spécifier l'emplacement du fichier de données XML, la variable qui contient cet
emplacement ou celle qui contient les données XML.

La source XML inclut les propriétés personnalisées XMLData et XMLSchemaDefinition ,


qui peuvent être mises à jour par des expressions de propriété lors du chargement du
package. Pour plus d’informations, consultez Expressions Integration Services (SSIS),
Expressions de propriété dans des packages et Propriétés personnalisées des sources
XML.

La source XML prend en charge plusieurs sorties standard et plusieurs sorties d'erreur.

SQL Server Integration Services inclut la boîte de dialogue Éditeur de source XML qui
permet de configurer la source XML. Cette boîte de dialogue est disponible dans le
concepteur SSIS.

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.
La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par
programmation. Pour plus d'informations sur les propriétés définissables dans la boîte
de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques
suivantes :

Propriétés communes

Propriétés personnalisées des sources XML

Pour plus d’informations sur la définition des propriétés, cliquez sur l’une des rubriques
suivantes :

Définir les propriétés d’un composant de flux de données

Éditeur de source XML (page Gestionnaire de


connexions)
Utilisez la page Gestionnaire de connexions de l' Éditeur de source XML pour spécifier
un fichier XML et le schéma XSD qui transforme les données XML.

Options statiques
Mode d'accès aux données
Spécifiez la méthode de sélection des données dans la source.

Valeur Description

Emplacement du fichier XML Récupère des données dans un fichier XML.

Fichier XML à partir d'une variable Spécifiez le nom de fichier XML dans une variable.

Informations connexes : Utiliser des variables dans des


packages

Données XML à partir d'une Récupère des données XML à partir d'une variable.
variable

Utiliser le schéma inclus


Indique si les données de la source XML contiennent le schéma XSD définissant et
validant sa structure et ses données.

Emplacement XSD
Tapez le chemin et le nom de fichier du schéma XSD, ou recherchez le fichier en cliquant
sur Parcourir.
Parcourir
Dans la boîte de dialogue Ouvrir , recherchez le fichier de schéma XSD.

Créer XSD
Utilisez la boîte de dialogue Enregistrer sous pour sélectionner l’emplacement du fichier
de schéma XSD généré automatiquement. L'éditeur détermine le schéma en fonction de
la structure des données XML.

Options dynamiques du mode d'accès aux données

Mode d'accès aux données = emplacement du fichier XML

Emplacement XML
Tapez le chemin et le nom du fichier de données XML, ou recherchez le fichier en
cliquant sur Parcourir.

Parcourir
Dans la boîte de dialogue Ouvrir , recherchez le fichier de données XML.

Mode d'accès aux données = fichier XML à partir d'une variable


Nom de la variable
Sélectionnez la variable contenant le chemin d'accès et le nom du fichier XML.

Mode d'accès aux données = données XML à partir d'une variable


Nom de la variable
Sélectionnez la variable qui contient les données XML.

Éditeur de source XML (page Colonnes)


Le nœud Colonnes de la boîte de dialogue Éditeur de source XML vous permet de
mapper une colonne de sortie à une colonne externe (source).

Options
Colonnes externes disponibles
Affiche la liste des colonnes externes disponibles dans la source de données. Vous ne
pouvez pas ajouter ou supprimer des colonnes à l'aide de cette table.
Colonne externe
Affiche les colonnes externes (sources) dans l'ordre de lecture de la tâche. Vous pouvez
modifier cet ordre en désactivant les colonnes sélectionnées dans la table affichée dans
l'éditeur, puis en sélectionnant les colonnes externes dans la liste, dans un ordre
différent.

Colonne de sortie
Spécifiez un nom unique pour chaque colonne de sortie. Le nom par défaut est celui de
la colonne externe (source) sélectionnée ; vous pouvez néanmoins choisir n'importe quel
nom unique et significatif. Le nom fourni sera affiché dans le concepteur SSIS .

Éditeur de source XML (page Sortie d'erreur)


Utilisez la page Sortie d’erreur de la boîte de dialogue Éditeur de source XML pour
sélectionner les options de gestion des erreurs et pour définir les propriétés des
colonnes de sortie d’erreur.

Options
Entrée/sortie
Affichez le nom de la source de données.

Colonne
Affichez les colonnes externes (sources) que vous avez sélectionnées dans la page
Gestionnaire de connexions de la boîte de dialogue Éditeur de source XML.

Error
Indiquez ce qui doit se produire lorsqu'une erreur se produit : ignorer l'échec, rediriger
la ligne ou faire échouer le composant.

Rubriques connexes :Gestion des erreurs dans les données

Troncation
Indiquez ce qui doit se produire lorsqu'une troncation se produit : ignorer l'échec,
rediriger la ligne ou faire échouer le composant.

Description
Affiche la description de l'erreur.

Définir cette valeur sur les cellules sélectionnées


Indiquez ce qui doit se produire pour l'ensemble des cellules sélectionnées lorsqu'une
erreur ou une troncation se produit : ignorer l'échec, rediriger la ligne ou faire échouer
le composant.
Appliquer
Appliquez l'option de gestion des erreurs aux cellules sélectionnées.

Tâches associées
Extraire des données à l'aide de la source XML
Extraire des données à l'aide de la
source XML
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour pouvoir ajouter et configurer une source XML, le package doit inclure au moins
une tâche de flux de données.

Pour extraire des données à l'aide d'une source XML


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Flux de données puis, dans la Boîte à outils, faites glisser la
source XML vers l’aire de conception.

4. Double-cliquez sur la source XML.

5. Dans Éditeur de source XML, dans la page Gestionnaire de connexions ,


sélectionnez un mode d’accès aux données :

Pour le mode d’accès Emplacement du fichier XML , cliquez sur Parcourir et


recherchez le dossier qui contient le fichier XML.

Pour le mode d’accès Fichier XML à partir d’une variable , sélectionnez la


variable définie par l’utilisateur qui contient le chemin du fichier XML.

Pour le mode d’accès Données XML à partir d’une variable , sélectionnez la


variable définie par l’utilisateur qui contient les données XML.

7 Notes

Les variables doivent être définies dans la même étendue que la tâche de flux
de données qui contient la source XML ou dans la même étendue que le
package. Par ailleurs, les données de la variable doivent être de type string.

6. Si vous le souhaitez, sélectionnez Utiliser le schéma inclus pour indiquer que le


document XML inclut des informations de schéma.
7. Pour spécifier une schéma XSD (XML Schema definition language) externe pour le
fichier XML, procédez de l'une des manières suivantes :

Cliquez sur Parcourir pour rechercher un fichier XSD existant.

Cliquez sur Créer XSD pour créer un fichier XSD à partir du fichier XML.

8. Pour mettre à jour le nom des colonnes de sortie, cliquez sur Colonnes et modifiez
les valeurs dans la liste Colonne de sortie .

9. Pour configurer l'affichage des erreurs, cliquez sur Sortie d'erreur. Pour plus
d’informations, consultez Débogage d’un flux de données.

10. Cliquez sur OK.

11. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Voir aussi
Source XML
Transformations Integration Services
Chemins Integration Services
tâche de flux de données
Propriétés personnalisées des sources
XML
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La source XML comporte des propriétés personnalisées et les propriétés communes à


l'ensemble des composants de flux de données.

Le tableau suivant décrit les propriétés personnalisées de la source XML. Toutes les
propriétés sont en lecture/écriture.

Nom de la propriété Type de Description


données

AccessMode Integer Mode utilisé pour accéder aux données XML.

UseInlineSchema Boolean Valeur qui indique si une définition de schéma inséré doit
être utilisée dans la source XML. La valeur par défaut de cette
propriété est False.

XMLData String Fichier ou variables à partir desquels les données XML sont
extraites.

Il est possible de spécifier la valeur de cette propriété en


utilisant l'expression d'une propriété.

XMLSchemaDefinition String Chemin d'accès et nom de fichier du fichier de définition de


schéma (.xsd).

Il est possible de spécifier la valeur de cette propriété en


utilisant l'expression d'une propriété.

Le tableau suivant décrit les propriétés personnalisées de la sortie de la source XML.


Toutes les propriétés sont en lecture/écriture.

Nom de la Type de Description


propriété données

RowsetID String Valeur qui identifie l'ensemble de lignes associé à la


sortie.

Les colonnes de sortie de la source XML ne possèdent pas de propriétés personnalisées.

Pour plus d'informations, consultez XML Source.


Voir aussi
Propriétés communes
Variables Integration Services (SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les variables stockent les valeurs qu’un package SQL Server Integration Services et ses
conteneurs, tâches et gestionnaires d'événements peuvent utiliser au moment de
l'exécution. Les scripts de la tâche de script et du composant Script peuvent également
utiliser des variables. Les contraintes de précédence qui séquencent les tâches et les
conteneurs dans un flux de travail peuvent utiliser des variables lorsque leurs définitions
de contraintes incluent des expressions.

Vous pouvez utiliser des variables dans des packages Integration Services pour les
opérations suivantes :

Mise à jour de propriétés d'éléments de package au moment de l'exécution. Par


exemple, vous pouvez dynamiquement définir le nombre d'exécutables simultanés
qu'un conteneur de boucles Foreach autorise.

Inclusion d'une table de recherche en mémoire. Par exemple, un package peut


exécuter une tâche d'exécution SQL qui charge une variable avec des valeurs de
données.

Chargement de variables avec des valeurs de données, puis utilisation de ces


variables pour spécifier une condition de recherche dans une clause WHERE. Par
exemple, le script dans une tâche de script peut mettre à jour la valeur d'une
variable qui est utilisée par une instruction Transact-SQL dans une tâche
d'exécution SQL.

Chargement d'une variable avec un entier, puis utilisation de la valeur pour


contrôler le bouclage au sein d'un flux de contrôle de package. Par exemple, vous
pouvez utiliser une variable dans l'expression d'évaluation d'un conteneur de
boucles For pour contrôler l'itération.

Remplissage de valeurs de paramètres pour des instructions Transact-SQL au


moment de l'exécution. Par exemple, un package peut exécuter une tâche
d'exécution SQL, puis utiliser des variables pour définir dynamiquement les
paramètres d'une instruction Transact-SQL.

Création d'expressions qui incluent des valeurs de variables. Par exemple, la


transformation de colonnes dérivées peut remplir une colonne avec le résultat
obtenu suite à la multiplication d'une valeur de variable par une valeur de colonne.
Variables système et variables définies par
l'utilisateur
Integration Services prend en charge deux types de variables : les variables définies par
l’utilisateur et les variables système. Les variables définies par l'utilisateur sont définies
par les développeurs de packages, tandis que les variables système sont définies par
Integration Services. Vous pouvez créer autant de variables définies par l'utilisateur
qu'un package l'exige, mais vous ne pouvez pas créer de variables système
supplémentaires.

Toutes les variables (système et définies par l’utilisateur) peuvent être utilisées dans les
liaisons de paramètres que la tâche d’exécution SQL utilise pour mapper des variables à
des paramètres dans des instructions SQL. Pour plus d’informations, consultez Tâche
d’exécution de requêtes SQL et Paramètres et codes de retour dans la tâche d’exécution
SQL.

7 Notes

Les noms des variables définies par l’utilisateur et des variables système respectent
la casse.

Vous pouvez créer des variables définies par l’utilisateur pour tous les types de
conteneurs Integration Services : packages, conteneurs de boucles Foreach, conteneurs
de boucles For, conteneurs de séquences, tâches et gestionnaires d’événements. Les
variables définies par l'utilisateur sont des membres de la collection Variables du
conteneur.

Si vous créez le package à l'aide du concepteur SSIS , vous pouvez afficher les membres
de la collection Variables dans le dossier Variables sous l'onglet Explorateur de package
du concepteur SSIS . Les dossiers répertorient les variables définies par l'utilisateur et les
variables système.

Vous pouvez configurer les variables définies par l'utilisateur de plusieurs manières :

Spécifiez un nom et une description pour la variable.

Spécifiez un espace de noms pour la variable.

Indiquez si la variable déclenche un événement lorsque sa valeur change.

Indiquez si la variable est en lecture seule ou accessible en lecture/écriture.


Utilisez le résultat de l'évaluation d'une expression pour définir la valeur de la
variable.

Créez la variable dans la portée du package ou un objet de package tel qu'une


tâche.

Spécifiez la valeur et le type de données de la variable.

La seule option configurable des variables système est le déclenchement d'un


événement lorsque leur variable change.

Un ensemble de variables système différent est disponible pour différents types de


conteneurs. Pour plus d'informations sur les variables système utilisées par les packages
et leurs éléments, consultez System Variables.

Pour plus d’informations sur les scénarios d’utilisation concrète des variables, consultez
Utiliser des variables dans des packages.

Propriétés des variables


Vous pouvez configurer les variables définies par l’utilisateur en définissant les
propriétés suivantes dans la fenêtre Variables ou la fenêtre Propriétés . Certaines
propriétés sont disponibles uniquement dans la fenêtre Propriétés.

7 Notes

La seule option configurable des variables système est le déclenchement d'un


événement lorsque leur variable change.

Description
Spécifie la description de la variable.

EvaluateAsExpression
Quand la propriété a la valeur True, l’expression fournie est utilisée pour définir la valeur
de la variable.

Expression
Spécifie l'expression affectée à la variable.

Nom
Spécifie le nom de la variable.
Espace de noms
Integration Services fournit deux espaces de noms, User et System. Par défaut, les
variables personnalisées se trouvent dans l’espace de noms User et les variables système
se trouvent dans l’espace de noms System . Vous pouvez créer des espaces de noms
supplémentaires pour les variables définies par l’utilisateur et changer le nom de
l’espace de noms User , mais vous ne pouvez pas modifier le nom de l’espace de noms
System , ajouter des variables à l’espace de noms System , ni affecter des variables
système à un autre espace de noms.

RaiseChangedEvent
Quand la propriété a la valeur True, l’événement OnVariableValueChanged est
déclenché en cas de changement de la valeur de la variable.

Lecture seule
Quand la propriété a la valeur False, la variable est en lecture-écriture.

Étendue

7 Notes

Vous pouvez modifier ce paramètre de propriété uniquement en cliquant sur


Déplacer la variable dans la fenêtre Variables .

Une variable est créée dans la portée d'un package ou dans la portée d'un conteneur,
d'une tâche ou d'un gestionnaire d'événements dans le package. Le conteneur de
packages se trouvant au sommet de la hiérarchie de conteneurs, les variables avec une
portée de package fonctionnent comme les variables globales et peuvent être utilisées
par tous les conteneurs du package. De même, les variables définies dans la portée d'un
conteneur tel qu'un conteneur de boucles For peuvent être utilisées par toutes les
tâches ou les conteneurs situés dans le conteneur de boucles For.

Si un package exécute d'autres packages par le biais de la tâche d'exécution de


package, les variables définies dans la portée du package appelant ou de la tâche
d'exécution de package peuvent être mises à disposition du package appelé à l'aide du
type de configuration Variable de package parent. Pour plus d’informations, consultez
Package Configurations.

IncludeInDebugDump
Indiquez si la valeur variable est incluse dans les fichiers de vidage de débogage.

Pour les variables définies par l’utilisateur et les variables système, la valeur par défaut
de l’option InclueInDebugDump est true.
Toutefois, pour les variables définies par l’utilisateur, le système réinitialise l’option
IncludeInDebugDump avec la valeur false quand les conditions suivantes sont remplies
:

Si la propriété de variable valuateAsExpression a la valeur true, le système


réinitialise l'option IncludeInDebugDump à false.

Pour inclure le texte de l'expression en tant que valeur variable dans les fichiers de
vidage de débogage, affectez la valeur true à l'option IncludeInDebugDump.

Si le type de données de variable est changé en une chaîne, le système réinitialise


l'option IncludeInDebugDump à false.

Lorsque le système réinitialise l'option IncludeInDebugDump à false, cela peut


remplacer la valeur sélectionnée par l'utilisateur.

Valeur
La valeur d'une variable définie par l'utilisateur peut être un littéral ou une expression. La
valeur d’une variable ne peut pas être Null. Les variables ont les valeurs par défaut
suivantes :

Type de données Valeur par défaut

Boolean False

Types de données numérique et binaire 0 (zéro)

Types de données de caractère et de chaîne (chaîne vide)

Object System.Object

Une variable a des options permettant de définir la valeur de la variable et le type de


données de la valeur. Les deux propriétés doivent être compatibles : par exemple,
l'utilisation d'une valeur de chaîne avec un type de données Integer n'est pas valide.

Si la variable est configurée de façon à correspondre à une expression, vous devez


fournir une expression. Au moment de l'exécution, l'expression est évaluée et le résultat
de l'évaluation est affecté comme valeur de la variable. Par exemple, si une variable
utilise l'expression DATEPART("month", GETDATE()) , la valeur de la variable est
l'équivalent numérique du mois de la date actuelle. L'expression doit être une
expression valide qui utilise la syntaxe de grammaire d'expression SSIS . Lorsqu'une
expression est utilisée avec des variables, elle peut utiliser des littéraux et les opérateurs
et fonctions fournis par la grammaire d'expression, mais elle ne peut pas faire référence
aux colonnes d'un flux de données du package. La longueur maximale d'une expression
est limitée à 4 000 caractères. Pour plus d’informations, consultez Expressions
Integration Services (SSIS).

ValueType

7 Notes

La valeur de la propriété apparaît dans la colonne Type de données dans la fenêtre


Variables .

Spécifie le type de données de la valeur de la variable.

Scénarios d’utilisation des variables


Les variables sont utilisées de nombreuses manières différentes dans les packages
Integration Services . Vous constaterez sans doute que le développement de package
est limité tant que vous n'avez pas ajouté une variable définie par l'utilisateur à votre
package pour mettre en œuvre la flexibilité et la gestion nécessaires à votre solution. En
fonction du scénario, les variables système sont aussi couramment utilisées.

Expressions de propriété : les variables permettent de fournir des valeurs dans les
expressions de propriété qui définissent les propriétés d’objets de package et de
packages. Par exemple, l’expression SELECT * FROM @varTableName inclut la variable
varTableName qui met à jour l’instruction SQL exécutée par une tâche d’exécution SQL.

L’expression DATEPART("d", GETDATE()) == 1?


@[User::varPackageFirst]:@[User::varPackageOther] met à jour le package exécuté par la
tâche d’exécution de package en exécutant le package spécifié dans la variable
varPackageFirst le premier jour du mois et en exécutant le package spécifié dans la
variable varPackageOther les autres jours. Pour plus d’informations, consultez
Expressions de propriété dans des packages.

Expressions de flux de données : les variables permettent de fournir des valeurs dans
les expressions dont se servent les transformations de fractionnement conditionnel et
de colonne dérivée pour remplir les colonnes ou diriger les lignes de données vers
différentes sorties de transformation. Par exemple, l'expression @varSalutation +
LastName concatène la valeur dans la variable VarSalutation et la colonne LastName .

L’expression Income < @HighIncome dirige vers une sortie les lignes de données dans
lesquelles la valeur de la colonne Income est inférieure à la valeur de la variable
HighIncome . Pour plus d’informations, consultez Transformation de colonne dérivée,
Transformation de fractionnement conditionnel et Expressions Integration Services
(SSIS).

Expressions de contrainte de précédence : elles fournissent les valeurs à utiliser dans


des contraintes de précédence pour déterminer si un exécutable contraint s’exécute. Les
expressions peuvent être utilisées avec un résultat d'exécution (succès, échec,
achèvement de l'opération) ou à la place d'un résultat d'exécution. Par exemple, si
l’expression @varMax > @varMin est évalué à true, l’exécutable s’exécute. Pour plus
d’informations, consultez Ajouter des expressions aux contraintes de précédence.

Paramètres et codes de retour : ils fournissent des valeurs aux paramètres d’entrée ou
stockent les valeurs des paramètres de sortie et des codes de retour. Cette opération
s'effectue en mappant les variables aux paramètres et aux valeurs de retour. Par
exemple, si vous affectez à la variable varProductId la valeur 23 et que vous exécutez
l’instruction SQL SELECT * from Production.Product WHERE ProductID = ? , la requête
récupère le produit associé à la valeur ProductID 23. Pour plus d’informations, consultez
Tâche d’exécution de requêtes SQL et Paramètres et codes de retour dans la tâche
d’exécution SQL.

Expressions de boucle For : elles fournissent les valeurs à utiliser dans les expressions
d’initialisation, d’évaluation et d’assignation de la boucle For. Par exemple, si la variable
varCount a la valeur 2 et la variable varMaxCount la valeur 10 et que l’expression
d’initialisation est @varCount , l’expression d’évaluation est @varCount < @varMaxCount et
l’expression d’assignation est @varCount =@varCount +1 et la boucle se répète huit fois.
Pour plus d’informations, consultez Conteneur de boucles For.

Configurations de variable de package parent : elles permettent de passer des valeurs


des packages parents aux packages enfants. Les packages enfants peuvent accéder à
des variables dans le package parent à l'aide de configurations de variable de package
parent. Par exemple, si le package enfant doit utiliser la même date que le package
parent, le package enfant peut définir une configuration de variable de package parent
qui spécifie une variable définie par la fonction GETDATE dans le package parent. Pour
plus d’informations, consultez Tâche d’exécution de package et Configurations de
package.

Tâche de script et composant de script : ils fournissent une liste de variables en lecture
seule et en lecture/écriture à la tâche de script ou au composant de script, mettent à
jour les variables en lecture/écriture dans le script, puis utilisent les valeurs mises à jour
à l’intérieur ou à l’extérieur du script. Par exemple, dans le code numberOfCars =
CType(Dts.Variables("NumberOfCars").Value, Integer) , la variable de script

numberOfCars est mise à jour par la valeur dans la variable NumberOfCars . Pour plus
d’informations, consultez Utilisation de variables dans la tâche de script.
Ajouter une variable
1. Dans SQL Server Data Tools (SSDT), ouvrez le package Integration Services que
vous voulez utiliser.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Dans le concepteur SSIS , pour définir la portée de la variable, effectuez l'une des
opérations suivantes :

Pour définir la portée du package, cliquez n’importe où sur l’aire de


conception de l’onglet Flux de contrôle .

Pour définir la portée d’un gestionnaire d’événements, sélectionnez un


exécutable et un gestionnaire d’événements sur l’aire de conception de
l’onglet Gestionnaire d’événements .

Pour définir la portée d’une tâche ou d’un conteneur, cliquez sur une tâche
ou un conteneur sur l’aire de conception de l’onglet Flux de contrôle ou de
l’onglet Gestionnaire d’événements .

4. Dans le menu SSIS , cliquez sur Variables. Vous pouvez éventuellement afficher la
fenêtre Variables en mappant la commande View.Variables avec une combinaison
de clés de votre choix dans la page Clavier de la boîte de dialogue Options .

5. Dans la fenêtre Variables , cliquez sur l’icône Ajouter une variable . La nouvelle
variable est ajoutée à la liste.

6. Dans la boîte de dialogue Options de la grille , sélectionnez des colonnes


supplémentaires à afficher dans la boîte de dialogue Options de la grille de
variables , puis cliquez sur OK.

7. Éventuellement, définissez les propriétés d'une variable. Pour plus d’informations,


consultez Définir les propriétés d'une variable définie par l'utilisateur.

8. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Ajouter une variable, boîte de dialogue


Utilisez la boîte de dialogue Ajouter une variable pour spécifier les propriétés d'une
nouvelle variable.

Options
Conteneur
Sélectionnez un conteneur dans la liste. Le conteneur définit l'étendue de la variable. Le
conteneur peut être le package ou un exécutable du package.

Nom
Entrez le nom de la variable.

Espace de noms
Spécifiez l'espace de noms de la variable. Par défaut, les variables définies par
l’utilisateur sont dans l’espace de noms Utilisateur .

Type de valeur
Sélectionnez un type de données.

Valeur
Tapez une valeur. La valeur doit être compatible avec le type de données spécifié dans
l'option Type de valeur .

Lecture seule
Sélectionnez cette option pour que la variable soit en lecture seule.

Supprimer une variable


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le package pour
l'ouvrir.

3. Dans le menu SSIS , cliquez sur Variables. Vous pouvez éventuellement afficher la
fenêtre Variables en mappant la commande View.Variables avec une combinaison
de clés de votre choix dans la page Clavier de la boîte de dialogue Options .

4. Sélectionnez la variable à supprimer, puis cliquez sur Supprimer la variable.

Si vous ne voyez pas la variable dans la fenêtre variables, cliquez sur Options de la
grille puis sélectionnez Afficher les variables de toutes les étendues.

5. Si la boîte de dialogue Confirmer la suppression des variables apparaît, cliquez


sur Oui pour confirmer.

6. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .
Modifier l’étendue d’une variable
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le package pour
l'ouvrir.

3. Dans le menu SSIS , cliquez sur Variables. Vous pouvez éventuellement afficher la
fenêtre Variables en mappant la commande View.Variables avec une combinaison
de clés de votre choix dans la page Clavier de la boîte de dialogue Options .

4. Sélectionnez la variable, puis cliquez sur Déplacer la variable.

Si vous ne voyez pas la variable dans la fenêtre variables, cliquez sur Options de la
grille puis sélectionnez Afficher les variables de toutes les étendues.

5. Dans la boîte de dialogue Sélectionner une nouvelle étendue , sélectionnez le


package ou un conteneur, une tâche ou un gestionnaire d'événements dans le
package pour modifier l'étendue de la variable.

6. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Définir les propriétés d'une variable définie par


l'utilisateur
Pour définir les propriétés d'une variable définie par l'utilisateur dans Integration
Services, vous pouvez utiliser l'une des fonctionnalités suivantes :

Fenêtre Variables.

Fenêtre Propriétés. La fenêtre Propriétés répertorie les propriétés pour la


configuration des variables qui ne sont pas disponibles dans la fenêtre Variables :
Description, EvaluateAsExpression, Expression, ReadOnly, ValueType et
IncludeInDebugDump.

7 Notes

Integration Services fournit également un ensemble de variables système dont les


propriétés ne peuvent pas être mises à jour, à l’exception de la propriété
RaiseChangedEvent.
Définir des expressions dans des variables
Quand vous utilisez la fenêtre Propriétés pour définir des expressions sur une variable
définie par l’utilisateur :

La valeur d’une variable peut être définie par la propriété Valeur ou la propriété
Expression. Par défaut, la propriété EvaluateAsExpression a la valeur False et la
valeur de la variable est définie par la propriété Valeur. Pour utiliser une expression
pour définir la valeur, vous devez commencer par définir EvaluateAsExpression sur
True, puis fournir une expression dans la propriété Expression. Le résultat de
l’évaluation de l’expression est automatiquement affecté à la propriété Valeur.

La propriété ValueType contient le type de données de la valeur de la propriété


Valeur. Quand Valeur est définie par une expression, ValueType est
automatiquement mis à jour avec un type de données compatible avec le résultat
de l’évaluation de l’expression. Par exemple, si Valeur contient 0 et la propriété
ValueType contient Int32 , et que vous définissez ensuite Expression à GETDATE(),
Valeur contient la date et l’heure et ValueType est défini sur DateTime.

La fenêtre Propriétés pour la variable permet d’accéder à la boîte de dialogue


Générateur d’expressions . Vous pouvez utiliser cet outil pour créer, valider et
évaluer des expressions. Pour plus d’informations, consultez Générateur
d’expressions et Expressions Integration Services (SSIS).

Quand vous utilisez la fenêtre Variables pour définir des expressions sur une variable
définie par l’utilisateur :

Pour utiliser une expression pour définir la valeur de la variable, vérifiez d’abord
que le type de variable est compatible avec le résultat de l’évaluation de
l’expression et fournissez ensuite une expression dans la colonne Expression de la
fenêtre Variables . La propriété EvaluateAsExpression dans la fenêtre Propriétés est
définie automatiquement sur True.

Lorsque vous affectez une expression à une variable, un marqueur spécial sous la
forme d'une icône s'affiche en regard de la variable. Ce marqueur d'icône spécial
s'affiche également en regard des gestionnaires de connexions et des tâches
contenant des expressions.

La fenêtre Variables pour la variable permet d’accéder à la boîte de dialogue


Générateur d’expressions . Vous pouvez utiliser cet outil pour créer, valider et
évaluer des expressions. Pour plus d’informations, consultez Générateur
d’expressions et Expressions Integration Services (SSIS).
Dans les fenêtres Variables et Propriétés, si vous affectez une expression à la variable et
que EvaluateAsExpression est défini sur True, vous ne pouvez pas changer le type de
données de la variable.

Définir les propriétés Espace de noms et Nom


La valeur des propriétés Nom et Espace de noms doit commencer par une lettre de
l’alphabet, conformément à la convention Unicode Standard 2.0, ou par un trait de
soulignement (_). Les caractères suivants peuvent être des lettres ou des nombres,
conformément à la convention Unicode standard 2.0, ou un trait de soulignement (_).

Définir les propriétés de la variable dans la fenêtre


Variables
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le package pour
l'ouvrir.

3. Dans le menu SSIS , cliquez sur Variables.

Vous pouvez éventuellement afficher la fenêtre Variables en mappant la


commande View.Variables avec une combinaison de clés de votre choix dans la
page Clavier de la boîte de dialogue Options .

4. Éventuellement, dans la fenêtre Variables cliquez sur Options de la grille, puis


sélectionnez les colonnes qui apparaissent dans la fenêtre Variables et
sélectionnez les filtres à appliquer à la liste des variables.

5. Sélectionnez la variable dans la liste, puis mettez à jour les valeurs dans les
colonnes Nom, Type de données, Valeur, Espace de noms, Déclencher un
événement de modification, Description et Expression .

6. Sélectionnez la variable dans la liste, puis cliquez sur Déplacer la variable pour
modifier l’étendue.

7. Pour enregistrer le package mis à jour, dans le menu Fichier , cliquez sur
Enregistrer les éléments sélectionnés.

Définir les propriétés de la variable dans la fenêtre


Propriétés
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le package pour
l'ouvrir.

3. Dans le menu Affichage , cliquez sur Fenêtre Propriétés.

4. Dans le Concepteur SSIS , cliquez sur l’onglet Explorateur de package , puis


développez le nœud Package.

5. Pour modifier les variables avec une portée de package, développez le nœud
Variables. Sinon, développez les nœuds Gestionnaires d'événements ou
Exécutables jusqu'à ce que vous trouviez le nœud Variables contenant la variable
que vous voulez modifier.

6. Cliquez sur la variable dont vous souhaitez modifier les propriétés.

7. Dans la fenêtre Propriétés , mettez à jour les propriétés en lecture/écriture de la


variable. Certaines propriétés sont en lecture/lecture uniquement pour les variables
définies par l'utilisateur.

Pour plus d’informations sur les propriétés, consultez Variables Integration Services
(SSIS).

8. Pour enregistrer le package mis à jour, dans le menu Fichier , cliquez sur
Enregistrer les éléments sélectionnés.

Mettre à jour une variable de manière


dynamique avec des configurations
Pour mettre à jour dynamiquement des variables, vous pouvez créer des configurations
pour les variables, déployer les configurations dans le package, puis mettre à jour les
valeurs de variable dans un fichier de configuration lorsque vous déployez les packages.
À l'exécution, le package utilise les valeurs de variable mises à jour. Pour plus
d’informations, consultez Créer des configurations de package.

Tâches associées
Utiliser les valeurs des variables et des paramètres dans un package enfant

Mapper des paramètres de requête à des variables dans un composant de flux de


données
Fenêtre Variables
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La fenêtre Variables permet de créer et de modifier les variables définies par l’utilisateur
et d’afficher les variables système.

Par défaut, la fenêtre Variables se trouve sous la zone Gestionnaires de connexions du


concepteur SSIS, dans SQL Server Data Tools (SSDT). Si vous ne voyez pas la fenêtre
Variables, cliquez sur Variables dans le menu SSIS pour l’afficher.

Vous pouvez éventuellement afficher la fenêtre Variables en mappant la commande


View.Variables avec une combinaison de clés de votre choix dans la page Clavier de la
boîte de dialogue Options .

7 Notes

La valeur des propriétés Nom et Espace de noms doit commencer par une lettre de
l’alphabet, conformément à la convention Unicode Standard 2.0, ou par un trait de
soulignement (_). Les caractères suivants peuvent être des lettres ou des nombres,
conformément à la convention Unicode standard 2.0, ou un trait de
soulignement (_).

Options
Ajouter une variable
Ajoutez une variable définie par l'utilisateur.

Déplacer la variable
Cliquez sur une variable dans la liste, puis cliquez sur Déplacer la variable pour modifier
l’étendue de la variable. Dans la boîte de dialogue Sélectionner une nouvelle étendue ,
sélectionnez le package ou un conteneur, une tâche ou un gestionnaire d'événements
dans le package pour modifier l'étendue de la variable.

Pour plus d’informations sur la portée des variables, consultez Variables Integration
Services (SSIS).

Supprimer une variable


Sélectionnez une variable dans la liste, puis cliquez sur Supprimer une variable.
Options de la grille
Cliquez sur cette option pour ouvrir la boîte de dialogue Options de grille variables où
vous pouvez modifier la sélection des colonnes et appliquer des filtres à la fenêtre
Variables . Pour plus d'informations, consultez Options de grille variables.

Nom
Affichez le nom de la variable. Vous pouvez mettre à jour le nom des variables définies
par l'utilisateur.

Étendue
Affichez l'étendue de la variable. Une variable a l'étendue du package entier ou celle
d'un conteneur ou d'une tâche. L'étendue de la variable doit être suffisante pour qu'elle
soit visible pour tout autre composant ou tâche qui doit lire ou définir ses valeurs.

Vous pouvez modifier l'étendue en cliquant sur la variable puis en cliquant sur Déplacer
la variable dans la fenêtre Variables .

Type de données
Affichez le type de données de la variable. Vous pouvez sélectionner le type de données
dans la liste des variables définies par l'utilisateur.

7 Notes

Si vous affectez une expression à la variable, vous ne pouvez pas modifier le type
de données.

Valeur
Affichez la valeur de la variable. Vous pouvez mettre à jour la valeur des variables
définies par l'utilisateur. Cette valeur peut être un littéral ou une expression. En outre, la
valeur peut être une chaîne multiligne. Pour affecter une expression à la variable, cliquez
sur le bouton d'ellipse qui est en regard de la colonne Expression dans la fenêtre
Variables .

Espace de noms
Affichez le nom de l'espace de noms. Les variables définies par l’utilisateur sont
initialement créées dans l’espace de noms User , mais vous pouvez modifier le nom de
celui-ci dans le champ Espace de noms . Pour afficher cette colonne, cliquez sur Options
de la grille.

Déclencher l'événement lorsque la valeur de la variable change


Indiquez si l’événement OnVariableValueChanged doit se déclencher quand une valeur
est modifiée. Vous pouvez mettre à jour la valeur des variables système définies par
l'utilisateur. Par défaut, la fenêtre Variables ne répertorie pas cette colonne. Pour afficher
cette colonne, cliquez sur Options de la grille.

Description
Affichez la description de la variable. Vous pouvez modifier la description des variables
définies par l'utilisateur. Par défaut, la fenêtre Variables ne répertorie pas cette colonne.
Pour afficher cette colonne, cliquez sur Options de la grille.

Expression
Affichez l'expression affectée à la variable. Pour affecter une expression, cliquez sur le
bouton d'ellipse.

Si vous affectez une expression à une variable, un marqueur spécial sous la forme d'une
icône s'affiche en regard de la variable. Ce marqueur d'icône spécial s'affiche également
en regard des gestionnaires de connexions et des tâches contenant des expressions.

Options de grille variable, boîte de dialogue


Utilisez la boîte de dialogue Options de grille variables pour sélectionner les colonnes
qui s'affichent dans la fenêtre Variables et sélectionner les filtres à appliquer à la liste
des variables. Pour plus d'informations sur les propriétés de variable correspondantes,
consultez Variables Integration Services (SSIS).

Options pour le filtre


Afficher les variables système
Sélectionnez cette option pour répertorier les variables système dans la fenêtre
Variables . Les variables système sont prédéfinies. Vous ne pouvez pas ajouter ou
supprimer des variables système. Vous pouvez modifier le paramètre de la propriété
RaiseChangedEvent .

Cette liste est codée par couleur. Les variables système sont en gris et les variables
définies par l'utilisateur en noir.

Afficher les variables de toutes les étendues


Sélectionnez cette option pour afficher les variables dans l'étendue du package et dans
l'étendue des conteneurs, des tâches et des gestionnaires d'événements dans le
package. Désactivez cette option pour afficher uniquement les variables dans l'étendue
du package et dans l'étendue d'un conteneur, d'une tâche ou d'un gestionnaire
d'événements donné.
Pour plus d’informations sur la portée des variables, consultez Variables Integration
Services (SSIS).

Options pour les colonnes


Sélectionnez les colonnes que vous souhaitez afficher dans la fenêtre Variables .

Étendue

Type de données

Valeur

Espace de noms

Déclencher l'événement lorsque la valeur de la variable change

Description

Expression

Voir aussi
Variables Integration Services (SSIS)
Utiliser des variables dans des packages
Expressions Integration Services (SSIS)
Générer de fichiers de vidage pour l’exécution des packages
Variables système
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

SQL Server Integration Services fournit un ensemble de variables système qui stockent
des informations sur le package en cours d'exécution et ses objets. Ces variables
peuvent être utilisées dans des expressions et des propriétés d'expressions afin de
personnaliser des packages, des conteneurs, des tâches et des gestionnaires
d'événements.

Toutes les variables (système et définies par l’utilisateur) peuvent être utilisées dans les
liaisons de paramètres que la tâche d’exécution SQL utilise pour mapper des variables à
des paramètres.

Variables système pour les packages


Le tableau suivant décrit les variables système fournies par Integration Services pour les
packages.

Variable système Type de Description


données

CancelEvent Int32 Gestionnaire d'un objet d'événement Windows que


la tâche peut signaler pour indiquer que la tâche doit
interrompre son exécution.

ContainerStartTime DateTime Heure de démarrage du conteneur.

CreationDate DateTime Date de création du package.

CreatorComputerName String Ordinateur sur lequel le package a été créé.

CreatorName String Nom de la personne qui a créé le package.

ExecutionInstanceGUID String Identificateur unique de l'instance exécutée d'un


package.

FailedConfigurations String Noms des configurations de package ayant échoué.

IgnoreConfigurationsOnLoad Booléen Indique si les configurations de package doivent être


ignorées lors du chargement du package.
Variable système Type de Description
données

InteractiveMode Booléen Indique si le package est exécuté en mode interactif.


Si un package s’exécute dans le concepteur SSIS ,
cette propriété a la valeur True. Si un package
s’exécute par le biais de l’utilitaire de ligne de
commande DTExec , la propriété a la valeur False.

LocaleId Int32 Paramètre régional utilisé par le package.

MachineName String Nom de l'ordinateur sur lequel s'exécute le package.

OfflineMode Booléen Indique si le package est en mode hors connexion.


Le mode hors connexion n'acquiert pas de
connexions à des sources de données.

PackageID String Identificateur unique du package.

PackageName String Nom du package.

StartTime DateTime Heure de début d'exécution du package.

ServerExecutionID Int64 ID d'exécution du package exécuté sur le serveur


Integration Services .

La valeur par défaut est zéro. La valeur est modifiée


uniquement si le package est exécuté par
ISServerExec sur le serveur Integration Services .
Lorsqu'il existe un package enfant, la valeur est
passée du package parent au package enfant.

UserName String Compte de l'utilisateur qui a démarré le package. Le


nom d'utilisateur est qualifié par le nom de domaine.

VersionBuild Int32 Version du package.

VersionComment String Commentaires sur la version du package.

VersionGUID String Identificateur unique de la version.

VersionMajor Int32 Version principale du package.

VersionMinor Int32 Version secondaire du package.

Variables système pour les conteneurs


Le tableau suivant décrit les variables système fournies par Integration Services pour les
conteneurs de boucles For, de boucles Foreach et de séquence.
Variable Type de Description Conteneur
système données

LocaleId Int32 Paramètre régional utilisé par le Conteneur de boucles


conteneur. For

Conteneur de boucles
Foreach

conteneur de séquences

Variables système pour les tâches


Le tableau suivant décrit les variables système fournies par Integration Services pour les
tâches.

Variable système Type de données Description

CreationName String Nom de la tâche.

LocaleId Int32 Paramètre régional utilisé par la tâche.

TaskID String Identificateur unique d'une instance de tâche.

TaskName String Nom de l'instance de tâche.

TaskTransactionOption Int32 Option de transaction utilisée par la tâche.

Variables système pour les gestionnaires


d'événements
Le tableau suivant décrit les variables système fournies par Integration Services pour les
gestionnaires d'événements. Toutes les variables ne sont pas disponibles pour tous les
gestionnaires d'événements.

Variable système Type de Description Gestionnaire


données d'événements
Variable système Type de Description Gestionnaire
données d'événements

Annuler Booléen Indique si l'exécution du Gestionnaire


gestionnaire d'événements s'arrête d'événements OnError
lorsqu'une erreur, un
avertissement ou une annulation Gestionnaire
de requête se produit. d'événements
OnWarning

Gestionnaire
d'événements
OnQueryCancel

ErrorCode Int32 Identificateur de l'erreur. Gestionnaire


d'événements OnError

Gestionnaire
d'événements
OnInformation

Gestionnaire
d'événements
OnWarning

ErrorDescription String Description de l'erreur. Gestionnaire


d'événements OnError

Gestionnaire
d'événements
OnInformation

Gestionnaire
d'événements
OnWarning

ExecutionStatus Booléen État de l'exécution en cours. Gestionnaire


d'événements
OnExecStatusChanged

ExecutionValue DBNull Valeur de l'exécution. Gestionnaire


d'événements
OnTaskFailed

LocaleId Int32 Paramètre régional utilisé par le Tous les gestionnaires


gestionnaire d'événements. d'événements

PercentComplete Int32 Pourcentage de travail terminé. Gestionnaire


d'événements
OnProgress
Variable système Type de Description Gestionnaire
données d'événements

ProgressCountHigh Int32 Partie supérieure d'une valeur 64 Gestionnaire


bits qui indique le nombre total d'événements
d'opérations traitées par OnProgress
l'événement OnProgress.

ProgressCountLow Int32 Partie inférieure d'une valeur 64 Gestionnaire


bits qui indique le nombre total d'événements
d'opérations traitées par OnProgress
l'événement OnProgress.

ProgressDescription String Description de la progression. Gestionnaire


d'événements
OnProgress

Propagate Booléen Indique si l'événement est propagé Tous les gestionnaires


à un gestionnaire d'événements de d'événements
niveau supérieur.

Remarque : la valeur de la variable


Propagate est ignorée lors de la
validation du package. Si vous
affectez la valeur Propagate à
False dans un package enfant, cela
n'empêche pas la propagation
d'un événement à un package
parent.

SourceDescription String Description de l'exécutable dans le Tous les gestionnaires


gestionnaire d'événements qui a d'événements
déclenché l'événement.

SourceID String Identificateur unique de Tous les gestionnaires


l'exécutable dans le gestionnaire d'événements
d'événements qui a déclenché
l'événement.

SourceName String Nom de l'exécutable dans le Tous les gestionnaires


gestionnaire d'événements qui a d'événements
déclenché l'événement.

VariableDescription String Description de la variable. Gestionnaire


d'événements
OnVariableValueChanged

VariableID String Identificateur unique de la variable. Gestionnaire


d'événements
OnVariableValueChanged
Variables système dans des liaisons de
paramètres
Il est souvent pratique d'enregistrer les valeurs de variables système dans des tables lors
de l'exécution du package. Par exemple, un package qui crée dynamiquement une table
et écrit le GUID de l'instance d'exécution du package qui a créé la table dans une
colonne de table.

Si vous utilisez des variables système pour effectuer un mappage à des paramètres dans
l'instruction SQL qu'une tâche d'exécution SQL utilise, il est important d'affecter au type
de données de chaque liaison de paramètre le type de données de la variable système.
Sinon, les valeurs des variable système pourraient être mal traduites. Par exemple, si la
variable système ExecutionInstanceGUID , qui présente le type de données String et
contient une chaîne représentant le GUID de l’instance d’exécution d’un package, est
utilisée dans une liaison de paramètre avec le type de données GUID, le GUID de
l’instance du package ne sera pas traduit correctement.

Cette règle s'applique également aux variables définies par l'utilisateur. Cependant,
lorsque les types de données de variables système ne peuvent pas être modifiés et si
vous devez personnaliser l'utilisation de ces variables en fonction des types de données,
les variables définies par l'utilisateur offrent plus de souplesse. Les variables définies par
l'utilisateur qui sont utilisées dans des liaisons de paramètres sont généralement
définies avec des types de données compatibles avec les types de données des
paramètres auxquels elles sont mappées.

Tâches associées
Mapper des paramètres de requête à des variables dans une tâche d’exécution SQL
Expressions Integration Services (SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Une expression est une combinaison de symboles (identificateurs, littéraux, fonctions et


opérateurs) qui génère une seule valeur de données. Les expressions simples peuvent
être une constante unique, une variable ou une fonction. Généralement, les expressions
sont complexes, car elles utilisent plusieurs opérateurs et fonctions, et référencent
plusieurs colonnes et variables. Dans Integration Services, vous pouvez utiliser des
expressions pour définir des conditions dans les instructions CASE, créer et mettre à jour
des valeurs dans des colonnes de données, attribuer des valeurs à des variables, mettre
à jour ou remplir des propriétés au moment de l’exécution, définir des contraintes dans
des contraintes de précédence et fournir les expressions utilisées par le conteneur de
boucle For.

Les expressions sont basées sur un langage d'expressions et sur l'évaluateur


d'expressions. L'évaluateur d'expression analyse l'expression et détermine si elle
respecte les règles du langage d'expressions. Pour plus d'informations sur la syntaxe
d'expression, les littéraux et les identificateurs pris en charge, consultez les rubriques
suivantes.

Syntaxe (SSIS)

Littéraux (SSIS)

Identificateurs (SSIS)

Composants qui utilisent des expressions


Les éléments suivants dans Integration Services peuvent utiliser des expressions :

La transformation de fractionnement conditionnel met en œuvre une structure de


décision, basée sur des expressions, pour diriger des lignes de données vers
différentes destinations. Les expressions utilisées dans une transformation de
fractionnement conditionnel doivent retourner la valeur true ou false. Par exemple,
les lignes qui répondent à la condition dans l’expression « Column1 > Column2 »
peuvent être routées vers une sortie distincte.

La transformation de colonne dérivée utilise des valeurs créées au moyen


d'expressions, soit pour remplir de nouvelles colonnes dans un flux de données,
soit pour mettre à jour des colonnes existantes. Par exemple, l'expression
Colonne1 + "ABC" peut être utilisée pour mettre à jour une valeur ou pour créer
une nouvelle valeur avec la chaîne concaténée.

Les variables utilisent une expression pour définir leur valeur. Par exemple,
GETDATE() définit la valeur de la variable comme étant la date actuelle.

Les contraintes de précédence peuvent utiliser des expressions pour spécifier les
conditions déterminant si le conteneur ou le package contraint est exécuté. Les
expressions utilisées dans une contrainte de priorité doivent retourner la valeur
true ou false. Par exemple, l’expression @A > @B compare deux variables définies
par l’utilisateur pour déterminer si la tâche contrainte est exécutée.

Le conteneur de boucles For peut utiliser des expressions pour créer les
instructions d'initialisation, d'évaluation et d'incrémentation utilisées par la
structure de bouclage. Par exemple, l'expression @Counter = 1 initialise le
compteur de boucles.

Les expressions peuvent également être utilisées pour mettre à jour les valeurs des
propriétés des packages, les conteneurs tels que les conteneurs de boucles For et
Foreach, les tâches, les gestionnaires de connexions aux niveaux des packages et du
projet, les modules fournisseurs d'informations et les énumérateurs Foreach. Par
exemple, en utilisant une expression de propriété, la chaîne « Localhost.AdventureWorks
» peut être affectée à la propriété ConnectionName de la tâche Exécuter SQL. Pour plus
d’informations, consultez Expressions de propriété dans des packages.

Marqueurs d'icône pour les expressions


Dans SQL Server Data Tools (SSDT), un marqueur d’icône spécial s’affiche à côté des
gestionnaires de connexions, des variables et des tâches qui ont des expressions
définies. La propriété HasExpressions est disponible sur tous les objets SSIS qui
prennent en charge les expressions, à l’exception des variables. La propriété vous
permet d'identifier facilement les objets qui ont des expressions.

Générateur d’expressions
Le générateur d'expressions est un outil graphique de génération d'expressions.
Disponible dans les boîtes de dialogue Éditeur de transformation de fractionnement
conditionnel, Éditeur de transformation de colonne dérivée et Générateur
d’expression , il s’agit d’un outil graphique qui permet de créer des expressions.

Le générateur d'expression fournit des dossiers contenant des éléments spécifiques aux
packages, et des dossiers contenant les fonctions, les conversions de type et les
opérateurs fournis par le langage d'expressions. Les éléments spécifiques aux packages
comprennent les variables système et les variables définies par l'utilisateur. Dans les
boîtes de dialogue Éditeur de transformation de fractionnement conditionnel et
Éditeur de transformation de colonne dérivée , vous pouvez également afficher des
colonnes de données. Pour générer des expressions pour les transformations, vous
pouvez faire glisser des éléments des dossiers vers la colonne Condition ou Expression ,
ou vous pouvez taper l’expression directement dans la colonne. Le générateur
d'expressions ajoute automatiquement les éléments syntaxiques requis, tels que le
préfixe « @ » des noms des variables.

7 Notes

Les noms des variables définies par l'utilisateur et des variables système respectent
la casse.

Les variables ont une étendue et le dossier Variables dans le générateur d’expressions
répertorie uniquement les variables qui sont dans l’étendue et utilisables. Pour plus
d’informations, consultez Variables Integration Services (SSIS).

Tâches associées
Utiliser une expression dans un composant de flux de données

Contenu associé
Article technique, SSIS Expression Examples , sur social.technet.microsoft.com

Voir aussi
SQL Server Integration Services
Exemples d'expressions Integration
Services avancées
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette section donne des exemples d'expressions avancées qui combinent plusieurs
opérateurs et fonctions. Si une expression est utilisée dans une contrainte de priorité ou
dans la transformation de fractionnement conditionnel, elle doit renvoyer une valeur
booléenne. Toutefois, cette restriction ne s'applique pas aux expressions utilisées dans
les expressions de propriété, les variables, la transformation de colonne dérivée ou le
conteneur de boucles For.

Les exemples suivants utilisent les bases de données Microsoft SQL Server
AdventureWorks et AdventureWorksDW2012. Chaque exemple indique les tables
utilisées.

Expressions booléennes
L’exemple suivant utilise la table Product . L’expression évalue l’entrée du mois
dans la colonne SellStartDate et retourne TRUE si le mois est Juin ou un mois
ultérieur.

DATEPART("mm",SellStartDate) > 6

L’exemple suivant utilise la table Product . L’expression évalue le résultat arrondi


de la division de la colonne ListPrice par la colonne StandardCost et retourne
TRUE si le résultat est supérieur à 1,5.

ROUND(ListPrice / StandardCost,2) > 1.50

L’exemple suivant utilise la table Product . L'expression renvoie TRUE si les trois
opérations produisent la valeur TRUE. Si la colonne Size et la variable BikeSize ont
des types de données incompatibles, l’expression requiert une conversion explicite,
comme le montre le deuxième exemple. La conversion vers le type de données
DT_WSTR comprend la longueur de la chaîne.
MakeFlag == TRUE && FinishedGoodsFlag == TRUE && Size != @BikeSize
MakeFlag == TRUE && FinishedGoodsFlag == TRUE && Size !=
(DT_WSTR,10)@BikeSize

L’exemple suivant utilise la table CurrencyRate . L'expression compare des valeurs


de tables et de variables. Elle retourne TRUE si les entrées des colonnes
FromCurrencyCode ou ToCurrencyCode sont égales aux valeurs des variables et si
la valeur de AverageRate est supérieure à celle de EndOfDayRate.

(FromCurrencyCode == @FromCur || ToCurrencyCode == @ToCur) &&


AverageRate > EndOfDayRate

L’exemple suivant utilise la table Currency . L’expression retourne TRUE si le


premier caractère de la colonne Name n’est pas « a » ou « A ».

SUBSTRING(UPPER(Name),1,1) != "A"

L'expression suivante donne le même résultat, mais elle est plus efficace car seul
un caractère est converti en majuscule.

UPPER(SUBSTRING(Name,1,1)) != "A"

Expressions non booléennes


Les expressions non booléennes sont utilisées dans la transformation de colonne
dérivée, les expressions de propriété et le conteneur de boucles For.

L’exemple suivant utilise la table Contact . L’expression supprime les espaces de


début et de fin des colonnes FirstName, MiddleNameet LastName . Elle extrait la
première lettre de la colonne MiddleName si elle n’est pas égale à Null, concatène
l’initiale de milieu et les valeurs des colonnes FirstName et LastNameet insère les
espaces appropriés entre les valeurs.
TRIM(FirstName) + " " + (!ISNULL(MiddleName) ?
SUBSTRING(MiddleName,1,1) + " " : "") + TRIM(LastName)

L’exemple suivant utilise la table Contact . L’expression valide les entrées de la


colonne Salutation . Elle retourne une entrée Salutation ou une chaîne vide.

(Salutation == "Sr." || Salutation == "Ms." || Salutation == "Sra." ||


Salutation == "Mr.") ? Salutation : ""

L’exemple suivant utilise la table Product . L’expression convertit le premier


caractère de la colonne Color en majuscules et les autres caractères en minuscules.

UPPER(SUBSTRING(Color,1,1)) + LOWER(SUBSTRING(Color,2,15))

L’exemple suivant utilise la table Product . L’expression calcule le nombre de mois


pendant lesquels un produit a été vendu et retourne la chaîne « Unknown » si la
colonne SellStartDate ou SellEndDate contient une valeur NULL.

!(ISNULL(SellStartDate)) && !(ISNULL(SellEndDate)) ?


(DT_WSTR,2)DATEDIFF("mm",SellStartDate,SellEndDate) : "Unknown"

L’exemple suivant utilise la table Product . L’expression calcule la marge sur la


colonne StandardCost et arrondit le résultat avec une précision de deux. Le
résultat est exprimé en pourcentage.

ROUND(ListPrice / StandardCost,2) * 100

Tâches associées
Utiliser une expression dans un composant de flux de données

Contenu associé
Article technique, SSIS Expression Cheat Sheet , sur pragmaticworks.com
Expressions de propriété dans des
packages
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Une expression de propriété est une expression affectée à une propriété pour permettre
la mise à jour dynamique de la propriété au moment de l'exécution. Par exemple, une
expression de propriété peut mettre à jour la ligne À utilisée par une tâche Envoyer un
message en insérant une adresse électronique qui est stockée dans une variable.

Une expression peut être ajoutée à un package, une tâche, une boucle Foreach, une
boucle For, une séquence, un énumérateur Foreach, un gestionnaire d'événements, un
gestionnaire de connexions aux niveaux des packages ou du projet, ou un module
fournisseur d'informations. Toute propriété de ces objets qui est en lecture/écriture peut
implémenter une expression de propriété. Integration Services prend également en
charge l'utilisation d'expressions de propriété dans certaines propriétés personnalisées
de composants de flux de données. Les variables et les contraintes de précédence ne
prennent pas en charge les expressions de propriété, mais elles incluent des propriétés
spéciales dans lesquelles vous pouvez utiliser des expressions.

Les expressions de propriété peuvent être mises à jour de différentes manières :

Les variables définies par l'utilisateur peuvent être incluses dans des configurations
de package, puis mises à jour lorsque le package est déployé. À l'exécution,
l'expression de propriété est évaluée à l'aide de la valeur de variable mise à jour.

Les variables système incluses dans les expressions sont mises à jour à l'exécution,
ce qui modifie les résultats de l'évaluation des propriétés.

Les fonctions de date et d'heure sont calculées à l'exécution et fournissent les


valeurs mises à jour aux expressions de propriété.

Les variables dans les expressions peuvent être mises à jour par les scripts exécutés
par la tâche de script et le composant de script.

Les expressions sont générées avec le langage d’expression Microsoft Integration


Services. Les expressions peuvent utiliser des variables système ou définies par
l'utilisateur, ainsi que des opérateurs, des fonctions et des conversions de type fournis
par le langage d'expressions.
7 Notes

Les noms des variables définies par l'utilisateur et des variables système respectent
la casse.

Pour plus d’informations, consultez Expressions Integration Services (SSIS).

Une utilisation importante des expressions de propriété consiste à personnaliser les


configurations pour chaque instance déployée d'un package. Cela permet la mise à jour
dynamique des propriétés de package dans différents environnements. Par exemple,
vous pouvez créer une expression de propriété qui affecte une variable à la chaîne de
connexion d'un gestionnaire de connexions, puis mettre à jour la variable lorsque le
package est déployé, ce qui garantit que la chaîne de connexion est correcte à
l'exécution. Les configurations de package sont chargées avant l'évaluation des
expressions de propriété.

Une propriété ne peut utiliser qu'une expression de propriété et une expression de


propriété ne peut s'appliquer qu'à une propriété. Cependant, vous pouvez générer
plusieurs expressions de propriété identiques et les affecter à différentes propriétés.

Certaines propriétés sont définies à l'aide de valeurs provenant d'énumérateurs. Lorsque


vous faites référence au membre d'énumérateur dans une expression de propriété, vous
devez utiliser la valeur numérique équivalant au nom convivial du membre de
l'énumérateur. Par exemple, si une expression de propriété définit la propriété
LoggingMode qui utilise une valeur de l'énumération DTSLoggingMode , l'expression
de la propriété doit utiliser 0, 1 ou 2 à la place des noms conviviaux Enabled,
Disabledou UseParentSetting. Pour plus d’informations, consultez la page Constantes
énumérées dans des expressions de propriété.

Interface utilisateur de l'expression de


propriété
Integration Services fournit un ensemble d'outils pour la création et la gestion
d'expressions de propriété.

La page Expressions , trouvée dans les éditeurs personnalisés pour les tâches, le
conteneur de boucles For et les conteneurs Foreach. La page Expressions vous
permet de modifier des expressions et d'afficher une liste des expressions de
propriété utilisées par une tâche, une boucle For ou une boucle Foreach.
La fenêtre Propriétés vous permet de modifier des expressions et d'afficher une
liste des expressions de propriété utilisées par un package ou les objets d'un
package.

La boîte de dialogue Éditeur d'expressions de la propriété , pour la création, la


mise à jour et la suppression des expressions de propriété.

La boîte de dialogue Générateur d'expressions permet de générer une expression


à l'aide d'outils graphiques. La boîte de dialogue Générateur d'expression peut
évaluer des expressions pour vous permettre de les vérifier, sans que le résultat de
l'évaluation soit affecté à la propriété.

Le schéma suivant montre les interfaces utilisateur que vous pouvez utiliser pour
ajouter, modifier et supprimer des expressions de propriété.

Dans la fenêtre Propriétés et dans la page Expressions, cliquez sur le bouton de


navigation (...) au niveau de la collection Expressions pour ouvrir la boîte de dialogue
Éditeur d’expressions de la propriété. L'Éditeur d'expressions de la propriété permet de
mapper une propriété à une expression et de taper une expression de propriété. Si vous
souhaitez utiliser les outils d’expression graphique pour créer, puis valider l’expression,
cliquez sur le bouton de navigation (...) au niveau de l’expression pour ouvrir la boîte de
dialogue Générateur d’expressions, puis créez ou modifiez et éventuellement validez
l’expression.
Vous pouvez également ouvrir la boîte de dialogue Générateur d'expression à partir de
la boîte de dialogue Éditeur d'expressions de la propriété .

Pour travailler avec les expressions de propriété

Ajouter ou modifier une expression de propriété

Définition d'expressions de propriété de composants de


flux de données
Si vous construisez un package dans SQL Server Data Tools (SSDT), les propriétés des
composants de flux de données qui prennent en charge des expressions de propriété
sont exposées dans la tâche de flux de données à laquelle ils appartiennent. Pour
ajouter, modifier ou supprimer les expressions de propriété de composants de flux de
données, cliquez avec le bouton droit sur la tâche de flux de données pour le flux de
données auquel les composants de flux de données appartiennent, puis cliquez sur
Propriétés. La fenêtre Propriétés répertorie les propriétés des composants de flux de
données avec lesquels vous pouvez utiliser des expressions de propriété. Par exemple,
pour créer ou modifier une expression de propriété pour la propriété SamplingValue
d’une transformation d’échantillonnage de lignes nommée SampleCustomer, cliquez
avec le bouton droit sur la tâche de flux de données pour le flux de données auquel la
transformation d’échantillonnage de lignes appartient, puis cliquez sur Propriétés. La
propriété SamplingValue figure dans la liste de la fenêtre Propriétés et utilise le format
[SampleCustomer].[SamplingValue].

Dans la fenêtre Propriétés, vous ajoutez, modifiez et supprimez des expressions de


propriété pour les composants de flux de données de la même manière que les
expressions de propriété d'autres types d'objets Integration Services . La fenêtre
Propriétés donne également accès aux diverses boîtes de dialogue et aux divers
générateurs permettant d'ajouter, de modifier ou de supprimer des expressions de
propriété pour des composants de flux de données. Pour plus d'informations sur les
propriétés des composants de flux de données pouvant être mis à jour par des
expressions de propriété, consultez Transformation Custom Properties.

Chargement d'expressions de propriété


Vous ne pouvez pas spécifier ou contrôler le moment où les expressions de propriété
sont chargées. Les expressions de propriété sont évaluées et chargées lors de la
validation du package et de ses objets. La validation a lieu au moment où vous
enregistrez le package, ouvrez le package dans le concepteur SSIS , puis l'exécutez.
Vous ne verrez donc pas les valeurs mises à jour des propriétés des objets du package
qui utilisent des expressions de la propriété dans le concepteur SSIS tant que vous
n'avez pas enregistré le package, exécuté le package ou rouvert le package après avoir
ajouté des expressions de propriété.

Les expressions de propriété associées à différents types d’objets (gestionnaires de


connexions, modules fournisseurs d’informations et énumérateurs) sont également
chargées quand des méthodes spécifiques de ce type d’objet sont appelées. Par
exemple, les propriétés des gestionnaires de connexions sont chargées avant que
Integration Services ne crée une instance de la connexion.

Les expressions de propriété sont chargées après le chargement des configurations de


package. Par exemple, les variables sont d'abord mises à jour par leurs configurations,
puis les expressions de propriété qui utilisent les variables sont évaluées et chargées.
Cela signifie que les expressions de propriété utilisent toujours les valeurs de variables
qui sont définies par des configurations.

7 Notes

Vous ne pouvez pas utiliser l’option Set de l’utilitaire dtexec pour remplir une
expression de propriété.

Le tableau suivant indique à quel moment les expressions de propriété d' Integration
Services sont évaluées et chargées.

Type d'objet Charger et évaluer

Package, boucle Foreach, boucle For, séquence, tâches et Après le chargement de


composants de flux de données configurations

Avant la validation

Avant l'exécution

Gestionnaires de connexions Après le chargement de


configurations

Avant la validation

Avant l'exécution

Avant la création d'une instance


de connexion
Type d'objet Charger et évaluer

Modules fournisseurs d'informations Après le chargement de


configurations

Avant la validation

Avant l'exécution

Avant l'ouverture des journaux

Énumérateurs Foreach Après le chargement de


configurations

Avant la validation

Avant l'exécution

Avant chaque énumération de


la boucle

Utilisation d'expressions de propriété dans la


boucle Foreach
Il est souvent utile d'implémenter une expression de propriété pour définir la valeur de
la propriété ConnectionString des gestionnaires de connexions que les énumérateurs
de boucles Foreach utilisent. Après que l’énumérateur a mappé sa valeur actuelle à une
variable dans chaque itération de la boucle, l’expression de propriété peut utiliser la
valeur de cette variable pour mettre à jour la valeur de la propriété ConnectionString de
manière dynamique.

Si vous souhaitez utiliser des expressions de propriété avec la propriété


ConnectionString des gestionnaires de connexions de fichiers, de fichiers multiples, de
fichiers plats et de fichiers plats multiples qu'une boucle Foreach utilise, vous devez tenir
compte de certains aspects. Un package peut être configuré pour exécuter plusieurs
exécutables simultanément en attribuant à la propriété MaxConcurrentExecutables soit
une valeur supérieure à 1, soit la valeur -1. La valeur -1 permet au nombre maximal
d'exécutables exécutés simultanément d'être égal au nombre de processeurs plus deux.
Pour éviter les conséquences négatives d'une exécution parallèle d'exécutables, la
propriété MaxConcurrentExecutables doit avoir la valeur 1. Si
MaxConcurrentExecutables n'a pas la valeur 1, la valeur de la propriété
ConnectionString ne peut pas être garantie et les résultats sont imprévisibles.
Par exemple, imaginez une boucle Foreach qui énumère des fichiers dans un dossier,
récupère les noms de fichiers, puis utilise une tâche d'exécution SQL pour insérer les
noms de fichiers dans une table. Si MaxConcurrentExecutables n'a pas la valeur 1, des
conflits d'écriture peuvent éventuellement survenir si les deux instances de la tâche
d'exécution SQL tentent d'écrire simultanément dans la table.

Exemples d'expressions de propriété


Les exemples d'expression suivants montrent comment utiliser les variables système, les
opérateurs, les fonctions et les littéraux de chaîne dans les expressions de propriété.

Expression de propriété pour la propriété LoggingMode


d'un package
L’expression de propriété suivante peut être utilisée pour définir la propriété
LoggingMode d’un package. L'expression utilise les fonctions DAY et GETDATE pour
obtenir un entier qui représente la partie jour d'une date. Si le jour est le premier ou le
15, la journalisation est activée ; sinon, elle est désactivée. La valeur 1 est l’équivalent
entier du membre d’énumérateur LoggingMode Enabled, et la valeur 2 est l’équivalent
entier du membre Disabled. Vous devez utiliser la valeur numérique à la place du nom
du membre d'énumérateur dans l'expression.

DAY((DT_DBTIMESTAMP)GETDATE())==1||DAY((DT_DBTIMESTAMP)GETDATE())==15?1:2

Expression de propriété pour l'objet d'un message


électronique
L’expression de propriété suivante peut être utilisée pour définir la propriété Subject
d’une tâche d’envoi de message et fournir un objet de courrier électronique.
L'expression utilise une combinaison de littéraux de chaîne, de variables système, les
opérateurs de concaténation (+) et de conversion, et les fonctions DATEDIFF et
GETDATE. Les variables système sont les variables PackageName et StartTime .

"PExpression-->Package: (" + @[System::PackageName] + ") Started:"+ (DT_WSTR, 30)


@[System::StartTime] + " Duration:" + (DT_WSTR,10) (DATEDIFF( "ss",

@[System::StartTime] , GETDATE() )) + " seconds"

Si le nom du package est EmailRowCountPP, s'il a été exécuté le 03/04/2005 et que la


durée de l'exécution était de 9 secondes, l'expression s'évalue à la chaîne.
PExpression-->Package: (EmailRowCountPP) Started:3/4/2005 11:06:18 AM Duration:9
seconds.

Expression de propriété pour le message d'un message


électronique
L’expression de propriété suivante peut être utilisée pour définir la propriété
MessageSource d’une tâche d’envoi de message. L'expression utilise une combinaison
de littéraux de chaîne, de variables définies par l'utilisateur et l'opérateur de
concaténation (+). Les variables définies par l’utilisateur sont appelées nasdaqrawrows ,
nyserawrows et amexrawrows . La chaîne "\n" indique un retour chariot.

"Rows Processed: " + "\n" +" NASDAQ: " + (dt_wstr,9)@[nasdaqrawrows] + "\n" + "

NYSE: " + (dt_wstr,9)@[nyserawrows] + "\n" + " Amex: " + (dt_wstr,9)@[amexrawrows]

Si nasdaqrawrows a pour valeur 7058, nyserawrows 3528 et amexrawrows 1102,


l'expression renvoie la chaîne suivante.

Lignes traitées :

NASDAQ: 7058

NYSE: 3528

AMEX: 1102

Expression de propriété pour la propriété exécutable


d'une tâche d'exécution de processus
L’expression de propriété suivante peut être utilisée pour définir la propriété Executable
d’une tâche d’exécution de processus. L'expression utilise une combinaison de littéraux
de chaîne, d'opérateurs et de fonctions. L'expression utilise les fonctions DATEPART et
GETDATE et l'opérateur conditionnel.

DATEPART("weekday", GETDATE()) ==2?"notepad.exe":"mspaint.exe"

S'il s'agit du second jour de la semaine, la tâche d'exécution de processus exécute


notepad.exe, sinon la tâche exécute mspaint.exe.

Expression de propriété pour la propriété


ConnectionString d'un gestionnaire de connexions de
fichier plat
L’expression de propriété suivante peut être utilisée pour définir la propriété
ConnectionString d’un gestionnaire de connexions de fichier plat. L'expression utilise
une seule variable définie par l'utilisateur ( myfilenamefull ) contenant le chemin d'accès
vers un fichier texte.

@[User::myfilenamefull]

7 Notes

Les expressions de propriétés pour les gestionnaires de connexions sont accessibles


seulement via la fenêtre Propriétés. Pour visualiser les propriétés d’un gestionnaire
de connexions, vous devez sélectionner le gestionnaire de connexions dans la zone
Gestionnaires de connexions du concepteur SSIS quand la fenêtre Propriétés est
ouverte, ou bien cliquer avec le bouton droit sur le gestionnaire de connexions,
puis sélectionner Propriétés.

Expression de propriété pour la propriété ConfigString


d'un module fournisseur d'informations de fichier texte
L’expression de propriété suivante peut être utilisée pour définir la propriété
ConfigString d’un module fournisseur d’informations de fichier texte. L’expression utilise
une variable définie par l’utilisateur, varConfigString , contenant le nom du gestionnaire
de connexions de fichiers à utiliser. Le gestionnaire de connexions de fichiers spécifie le
chemin d'accès du fichier texte dans lequel des entrées de journal sont écrites.

@[User::varConfigString]

7 Notes

Les expressions de propriété pour les modules fournisseurs d'informations sont


accessibles seulement via la fenêtre Propriétés. Pour visualiser les propriétés d’un
module fournisseur d’informations, vous devez sélectionner le module fournisseur
d’informations sous l’onglet Explorateur de package du concepteur SSIS quand la
fenêtre Propriétés est ouverte, ou bien cliquer avec le bouton droit sur le module
fournisseur d’informations, puis sélectionner Propriétés.

Ressources externes
Article technique, SSIS Expression Examples , sur social.technet.microsoft.com
Voir aussi
Utiliser des variables dans des packages
Constantes énumérées dans des
expressions de propriété
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Si des expressions de propriété incluent des valeurs d'une liste de membres


d'énumérateur, l'expression doit utiliser la valeur numérique du membre énumérateur et
non le nom convivial du membre. Par exemple, si une expression définit la propriété
LoggingMode , vous devez utiliser la valeur numérique 2 à la place du nom convivial
Disabled.

Cette rubrique répertorie uniquement les valeurs numériques équivalant aux noms
conviviaux d'énumérateurs dont les membres sont fréquemment utilisés dans des
expressions de propriété. Le modèle objet Integration Services inclut de nombreux
énumérateurs supplémentaires que vous utilisez quand vous programmez le modèle
objet pour générer des packages par programmation ou des éléments de package de
code personnalisé, tels que des tâches et des composants de flux de données.

En complément des propriétés personnalisées pour les packages et les objets package,
la fenêtre Propriétés de SQL Server Data Tools (SSDT) inclut un jeu de propriétés
accessibles aux packages, aux tâches, ainsi qu'aux conteneurs de boucles Foreach, de
boucles For et de séquences. Les propriétés communes qui sont définies par des valeurs
provenant d’énumérateurs (ForceExecutionResult, LoggingMode, IsolationLevelet
TransactionOption) sont répertoriées dans la section Propriétés communes.

Les sections suivantes fournissent des informations sur les constantes énumérées :

Package

Énumérateurs de boucles Foreach

Tâches

Tâches du plan de maintenance

Propriétés communes

Package
Les tableaux suivants répertorient les noms conviviaux et les équivalents en valeur
numérique pour des propriétés de packages que vous définissez à l'aide de valeurs
provenant d'un énumérateur.

Propriété PackageType : définie à l’aide de valeurs provenant de l’énumération


DTSPackageType.

Nom convivial dans DTSPackageType Valeur numérique

Default 0

DTSWizard 1

DTSDesigner 2

SQLReplication 3

DTSDesigner100 5

SQLDBMaint 6

Propriété CheckpointUsage : définie à l’aide de valeurs provenant de l’énumération


DTSCheckpointUsage.

Nom convivial dans DTSCheckpointUsage Valeur numérique

Jamais 0

IfExists 1

Toujours 2

Propriété PackagePriorityClass : définie à l’aide de valeurs provenant de l’énumération


DTSPriorityClass.

Nom convivial dans DTSPriorityClass Valeur numérique

Default 0

AboveNormal 1

Normal 2

BelowNormal 3

Idle 4

Propriété ProtectionLevel : définie à l’aide de valeurs provenant de l’énumération


DTSProtectionLevel.

Nom convivial dans DTSProtectionLevel Valeur numérique


Nom convivial dans DTSProtectionLevel Valeur numérique

DontSaveSensitive 0

EncryptSensitiveWithUserKey 1

EncryptSensitiveWithPassword 2

EncryptAllWithPassword 3

EncryptAllWithUserKey 4

ServerStorage 5

Contraintes de précédence
Propriété EvalOp : définie à l’aide de valeurs provenant de l’énumération
DTSPrecedenceEvalOp.

Nom convivial dans DTSPrecedenceEvalOp Valeur numérique

Expression 1

Contrainte 2

ExpressionAndConstraint 3

ExpressionOrConstraint 4

Propriété Value : définie à l’aide de valeurs provenant de l’énumération DTSExecResult.

Nom convivial Valeur numérique

Succès 0

Échec 1

Completion 2

Opération annulée 3

Énumérateurs de boucles Foreach


La boucle Foreach inclut un jeu d'énumérateurs comportant des propriétés pouvant être
définies par des expressions de la propriété.
Énumérateur Foreach ADO
Propriété Type : définie à l’aide de valeurs provenant de l’énumération
ADOEnumerationType.

Nom convivial dans ADOEnumerationType Valeur numérique

EnumerateTables 0

EnumerateAllRows 1

EnumerateRowsInFirstTable 2

Énumérateur Foreach Nodelist


Propriétés SourceDocumentType, InnerXPathStringSourceType et
OuterXPathStringSourceType : définies à l’aide de valeurs provenant de l’énumération
SourceType.

Nom convivial dans SourceType Valeur numérique

FileConnection 0

Variable 1

DirectInput 2

Propriété EnumerationType : définie à l’aide de valeurs provenant de l’énumération


EnumerationType.

Nom convivial dans EnumerationType Valeur numérique

Navigateur 0

Nœud 1

NodeText 2

ElementCollection 3

Propriété InnerElementType : définie à l’aide de valeurs provenant de l’énumération


InnerElementType.

Nom convivial dans InnerElementType Valeur numérique

Navigateur 0
Nom convivial dans InnerElementType Valeur numérique

Nœud 1

NodeText 2

Tâches
Integration Services inclut de nombreuses tâches avec des propriétés pouvant être
définies par des expressions de la propriété.

Tâche DDL d'exécution de SQL Server Analysis Services


Propriété SourceType : définie à l’aide de valeurs provenant de l’énumération
DDLSourceType.

Nom convivial dans DDLSourceType Valeur numérique

DirectInput 0

FileConnection 1

Variable 2

tâche d'insertion en bloc


Propriété DataFileType : définie à l’aide de valeurs provenant de l’énumération
DTSBulkInsert_DataFileType.

Nom convivial dans DTSBulkInsert_DataFileType Valeur numérique

DTSBulkInsert_DataFileType_Char 0

DTSBulkInsert_DataFileType_Native 1

DTSBulkInsert_DataFileType_WideChar 2

DTSBulkInsert_DataFileType_WideNative 3

Tâche d’exécution de requêtes SQL


Propriété ResultSetType : définie à l’aide de valeurs provenant de l’énumération
ResultSetType.
Nom convivial dans ResultSetType Valeur numérique

ResultSetType_None 1

ResultSetType_SingleRow 2

ResultSetType_Rowset 3

ResultSetType_XML 4

Propriété SqlStatementSourceType : définie à l’aide de valeurs provenant de


l’énumération SqlStatementSourceType.

Nom convivial dans SqlStatementSourceType Valeur numérique

DirectInput 1

FileConnection 2

Variable 3

Tâches du système de fichiers


Propriété Opération : définie à l’aide de valeurs provenant de l’énumération
DTSFileSystemOpération.

Nom convivial dans DTSFileSystemOperation Valeur numérique

CopyFile 0

MoveFile 1

DeleteFile 2

RenameFile 3

SetAttributes 4

CreateDirectory 5

CopyDirectory 6

MoveDirectory 7

DeleteDirectory 8

DeleteDirectoryContent 9
Propriété Attributes : définie à l’aide de valeurs provenant de l’énumération
DTSFileSystemAttributes.

Nom convivial dans DTSFileSystemAttributes Valeur numérique

Normal 0

Archivage 1

Hidden 2

Lecture seule 4

Système 8

Tâche FTP
Propriété Operation : définie à l’aide de valeurs provenant de l’énumération DTSFTPOp.

Nom convivial dans DTSFTPOp Valeur numérique

Envoyer 0

Recevoir 1

DeleteLocal 2

DeleteRemote 3

MakeDirLocal 4

MakeDirRemote 5

RemoveDirLocal 6

RemoveDirRemote 7

Message Queue Task


Propriété MessageType : définie à l’aide de valeurs provenant de l’énumération
MQMessageType.

Nom convivial dans MQMessageType Valeur numérique

DTSMQMessageType_String 0

DTSMQMessageType_DataFile 1
Nom convivial dans MQMessageType Valeur numérique

DTSMQMessageType_Variables 2

DTSMQMessagType_StringMessageToVariable 3

Propriété StringCompareType : définie à l’aide de valeurs provenant de l’énumération


MQStringMessageCompare.

Nom convivial dans MQStringMessageCompare Valeur numérique

DTSMQStringMessageCompare_None 0

DTSMQStringMessageCompare_Exact 1

DTSMQStringMessageCompare_IgnoreCase 2

DTSMQStringMessageCompare_Contains 3

Propriété TaskType : définie à l’aide de valeurs provenant de l’énumération MQType.

Nom convivial dans MQType Valeur numérique

DTSMQType_Sender 0

DTSMQType_Receiver 1

tache Envoyer un message


Propriété MessageSourceType : définie à l’aide de valeurs provenant de l’énumération
SendMailMessageSourceType.

Nom convivial dans SendMailMessageSourceType Valeur numérique

DirectInput 0

FileConnection 1

Variable 2

Propriété Priority : définie à l’aide de valeurs provenant de l’énumération MailPriority.

Nom convivial dans MailPriority Valeur numérique

Élevé 1

Normal 3
Nom convivial dans MailPriority Valeur numérique

Faible 5

Tâche de transfert de bases de données


Propriété Action : définie à l’aide de valeurs provenant de l’énumération TransferAction.

Nom convivial dans TransferAction Valeur numérique

Copier 0

Déplacer 1

Propriété Method : définie à l’aide de valeurs provenant de l’énumération


TransferMethod.

Nom convivial dans TransferMethod Valeur numérique

DatabaseOffline 0

DatabaseOnline 1

Tâche de transfert de messages d'erreur


Propriété IfObjectExists : définie à l’aide de valeurs provenant de l’énumération
IfObjectExists.

Nom convivial dans IfObjectExists Valeur numérique

FailTask 0

Remplacer 1

Ignorer 2

Tâche de transfert de travaux


Propriété IfObjectExists : définie à l’aide de valeurs provenant de l’énumération
IfObjectExists.

Nom convivial dans IfObjectExists Valeur numérique

FailTask 0
Nom convivial dans IfObjectExists Valeur numérique

Remplacer 1

Ignorer 2

Tâche de transfert de connexions


Propriété IfObjectExists : définie à l’aide de valeurs provenant de l’énumération
IfObjectExists.

Nom convivial dans IfObjectExists Valeur numérique

FailTask 0

Remplacer 1

Ignorer 2

Propriété LoginsToTransfer : définie à l’aide de valeurs provenant de l’énumération


LoginsToTransfer.

Nom convivial dans LoginsToTransfer Valeur numérique

AllLogins 0

SelectedLogins 1

AllLoginsFromSelectedDatabases 2

Tâche de transfert de procédures stockées de master


Propriété IfObjectExists : définie à l’aide de valeurs provenant de l’énumération
IfObjectExists.

Nom convivial dans IfObjectExists Valeur numérique

FailTask 0

Remplacer 1

Ignorer 2

Tâche de transfert d'objets SQL Server


Propriété ExistingData : définie à l’aide de valeurs provenant de l’énumération
ExistingData.

Nom convivial dans ExistingData Valeur numérique

Replace 0

Ajouter (Append) 1

Tâche de service Web


Propriété OutputType : définie à l’aide de valeurs provenant de l’énumération
DTSOutputType.

Nom convivial dans DTSOutputType Valeur numérique

Fichier 0

Variable 1

Tâche Lecteur de données WMI


Propriété OverwriteDestination : définie à l’aide de valeurs provenant de l’énumération
OverwriteDestination.

Nom convivial dans OverwriteDestination Valeur numérique

OverwriteDestination 0

AppendToDestination 1

KeepOriginal 2

Propriété OutputType : définie à l’aide de valeurs provenant de l’énumération


OutputType.

Nom convivial dans OutputType Valeur numérique

DataTable 0

PropertyValue 1

PropertyNameAndValue 2

Propriété DestinationType : définie à l’aide de valeurs provenant de l’énumération


DestinationType.
Nom convivial dans DestinationType Valeur numérique

FileConnection 0

Variable 1

Propriété WqlQuerySourceType : définie à l’aide de valeurs provenant de l’énumération


QuerySourceType.

Nom convivial dans QuerySourceType Valeur numérique

FileConnection 0

DirectInput 1

Variable 2

Propriété ActionAtEvent de l’Observateur d’événement WMI : définie à l’aide de valeurs


provenant de l’énumération ActionAtEvent.

Nom convivial dans ActionAtEvent Valeur numérique

LogTheEventAndFireDTSEvent 0

LogTheEvent 1

Propriété ActionAtTimeout : définie à l’aide de valeurs provenant de l’énumération


ActionAtTimeout.

Nom convivial dans ActionAtTimeout Valeur numérique

LogTimeoutAndFireDTSEvent 0

LogTimeout 1

Propriété AfterEvent : définie à l’aide de valeurs provenant de l’énumération AfterEvent.

Nom convivial dans AfterEvent Valeur numérique

ReturnWithSuccess 0

ReturnWithFailure 1

WatchfortheEventAgain 2

Propriété AfterTimeout : définie à l’aide de valeurs provenant de l’énumération


AfterTimeout.
Nom convivial dans AfterTimeout Valeur numérique

ReturnWithSuccess 0

ReturnWithFailure 1

WatchfortheEventAgain 2

Propriété WqlQuerySourceType : définie à l’aide de valeurs provenant de l’énumération


QuerySourceType.

Nom convivial dans QuerySourceType Valeur numérique

FileConnection 0

DirectInput 1

Variable 2

Tâche XML
Propriété OperationType : définie à l’aide de valeurs provenant de l’énumération
DTSXMLOperation.

Nom convivial dans DTSXMLOperation Valeur numérique

Valider 0

XSLT 1

XPATH 2

Fusionner (Merge) 3

Diff 4

Correctif 5

Propriétés SourceType, SecondOperandType et XPathSourceType : définies à l’aide de


valeurs provenant de l’énumération DTSXMLSourceType.

Nom convivial dans DTSXMLSourceType Valeur numérique

FileConnection 0

Variable 1

DirectInput 2
Propriétés DestinationType et DiffGramDestinationType : définies à l’aide de valeurs
provenant de l’énumération DTSXMLSaveResultTo.

Nom convivial dans DTSXMLSaveResultTo Valeur numérique

FileConnection 0

Variable 1

Propriété ValidationType : définie à l’aide de valeurs provenant de l’énumération


DTSXMLValidationType.

Nom convivial dans DTSXMLValidationType Valeur numérique

DTD 0

XSD 1

Propriété XPathOperation : définie à l’aide de valeurs provenant de l’énumération


DTSXMLXPathOperation.

Nom convivial dans DTSXMLXPathOperation Valeur numérique

Évaluation 0

Valeurs 1

NodeList 2

Propriété DiffOptions : définie à l’aide de valeurs provenant de l’énumération


DTSXMLDiffOptions. Les options dans cet énumérateur ne sont pas mutuellement
exclusives. Pour utiliser plusieurs options, fournissez une liste des options à appliquer,
séparées par des virgules.

Nom convivial dans DTSXMLDiffOptions Valeur numérique

None 0

IgnoreChildOrder 1

IgnoreComments 2

IgnorePI 4

IgnoreWhitespace 8

IgnoreNamespaces 16
Nom convivial dans DTSXMLDiffOptions Valeur numérique

IgnorePrefixes 32

IgnoreXmlDecl 64

IgnoreDtd 128

Propriété DiffAlgorithm : définie à l’aide de valeurs provenant de l’énumération


DTSXMLDiffAlgorithm.

Nom convivial dans DTSXMLDiffAlgorithm Valeur numérique

Auto 0

Rapide 1

Précis 2

Tâches du plan de maintenance


Integration Services inclut un ensemble de tâches qui effectuent des tâches SQL Server à
utiliser dans des plans de maintenance et dans des packages Integration Services .

SQL Server ne prend pas en charge la gestion de ces tâches par programmation et la
documentation de référence de programmation n’inclut pas la documentation API de
ces tâches et de leurs énumérateurs.

Toutes les tâches de maintenance


Toutes les tâches de maintenance utilisent les énumérations suivantes pour définir les
propriétés spécifiées.

Propriété DatabaseSelectionType : définie à l’aide de valeurs provenant de


l’énumération DatabaseSelection.

Nom convivial dans DatabaseSelection Valeur numérique

None 0

Tous 1

Système 2

Utilisateur 3
Nom convivial dans DatabaseSelection Valeur numérique

Spécifique 4

Propriété TableSelectionType : définie à l’aide de valeurs provenant de l’énumération


TableSelection.

Nom convivial dans TableSelection Valeur numérique

None 0

Tous 1

Spécifique 2

Propriété ObjectTypeSelection : définie à l’aide de valeurs provenant de l’énumération


ObjectType.

Nom convivial dans ObjectType Valeur numérique

Table de charge de travail 0

Vue 1

TableView 2

Tâche Sauvegarder la base de données


Propriété DestinationCreationType : définie à l’aide de valeurs provenant de
l’énumération DestinationType.

Nom convivial dans DestinationType Valeur numérique

Auto 0

Manuel 1

Propriété ExistingBackupsAction : définie à l’aide de valeurs provenant de l’énumération


ActionForExistingBackups.

Nom convivial dans ActionForExistingBackups Valeur numérique

Ajouter (Append) 0

Remplacer 1
Propriété BackupAction : définie à l’aide de valeurs provenant de l’énumération
BackupTaskType. Cette propriété définit avec la propriété BackupIsIncremental le type
de sauvegarde que la tâche effectue.

Nom convivial dans BackupTaskType Valeur numérique

Base de données 0

Files 1

Journal 2

Propriété BackupDevice : définie à l’aide de valeurs provenant de l’énumération SMO (


SQL Server Management Objects) DeviceType.

Nom convivial dans DeviceType Valeur numérique

LogicalDevice 0

Bande 1

Fichier 2

Pipe 3

VirtualDevice 4

Tâche de nettoyage de maintenance


Propriété FileTypeSelected : définie à l’aide de valeurs provenant de l’énumération
FileType.

Nom convivial dans FileType Valeur numérique

FileBackup 0

FileReport 1

Propriété OlderThanTimeUnitType : définie à l’aide de valeurs provenant de


l’énumération TimeUnitType.

Nom convivial dans TimeUnitType Valeur numérique

Jour 0

Semaine 1
Nom convivial dans TimeUnitType Valeur numérique

Month 2

Year 3

Tâche Mettre à jour les statistiques


Propriété UpdateType : définie à l’aide de valeurs provenant de l’énumération SMO
(SQL Server Management Objects) StatisticsTarget.

Nom convivial dans StatisticsTarget Valeur numérique

Colonne 1

Index 2

Tous 3

Propriétés communes
Les packages, les tâches et les conteneurs de boucles Foreach, de boucles For et de
séquences peuvent utiliser les énumérations suivantes pour définir les propriétés
spécifiées.

Propriété ForceExecutionResult : définie à l’aide de valeurs provenant de l’énumération


DTSForcedExecResult.

Nom convivial dans DTSForcedExecResult Valeur numérique

Aucun -1

Succès 0

Échec 1

Completion 2

Propriété IsolationLevel : définie à l’aide de valeurs provenant de l’énumération


IsolationLevel. Pour plus d’informations, consultez la bibliothèque de classes .NET
Framework dans MSDN Library .

Propriété LoggingMode : définie à l’aide de valeurs provenant de l’énumération


DTSLoggingMode.
Nom convivial dans DTSLoggingMode Valeur numérique

UseParentSetting 0

activé 1

Désactivé 2

Propriété TransactionOption : définie à l’aide de valeurs provenant de l’énumération


DTSTransactionOption.

Nom convivial dans DTSTransactionOption Valeur numérique

NotSupported 0

Prise en charge 1

Obligatoire 2

Tâches associées
Ajouter ou modifier une expression de propriété

Voir aussi
Expressions de propriété dans des packages
Packages Integration Services (SSIS)
Conteneurs Integration Services
Tâches Integration Services
Contraintes de précédence
Ajouter ou modifier une expression de
propriété
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous pouvez créer des expressions de propriété pour les packages, les tâches, les
conteneurs de boucles For ou Foreach, les conteneurs de séquences, les gestionnaires
d'événements, les gestionnaires de connexions aux niveaux des packages et du projet,
ainsi que les modules fournisseurs d'informations.

Pour créer ou modifier des expressions de propriété, vous pouvez utiliser l’ Éditeur
d’expressions de la propriété ou le Générateur d’expressions. L’ Éditeur d’expressions
de la propriété est accessible à partir des éditeurs personnalisés disponibles pour les
tâches et conteneurs, et à partir de la fenêtre Propriétés . LeGénérateur d’expressions
est accessible à partir de l’ Éditeur d’expressions de la propriété. Vous pouvez écrire des
expressions à la fois dans l’ Éditeur d’expressions de la propriété et dans le Générateur
d’expressions, mais le Générateur d’expressions fournit un ensemble graphique d’outils
qui simplifie la construction d’expressions complexes.

Pour en savoir plus sur la syntaxe, les opérateurs et les fonctions fournis par Integration
Services, consultez Opérateurs (Expression SSIS) et Fonctions (Expression SSIS). La
rubrique relative à chaque opérateur ou fonction inclut des exemples d'utilisation de cet
opérateur ou de cette fonction dans une expression. Pour obtenir des exemples
d’expressions plus complexes, consultez Expressions de propriété dans des packages.

Pour créer ou modifier une expression de propriété


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet qui contient le package
Integration Services que vous voulez.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir, puis


effectuez l'une des opérations suivantes :

Si l’élément est une tâche ou un conteneur, double-cliquez dessus, puis


cliquez sur Expressions dans l’éditeur.

Cliquez avec le bouton droit sur l’élément, puis cliquez sur Propriétés.

3. Cliquez sur la zone Expressions, puis sur les points de suspension (...).
4. Dans l’ Éditeur d’expressions de la propriété, sélectionnez une propriété dans la
liste Propriété , puis effectuez l’une des actions suivantes :

Tapez l’expression de propriété ou modifiez-la directement dans la colonne


Expression , puis cliquez sur OK.

- ou -

Dans la ligne d’expression de la propriété, cliquez sur les points de


suspension (...) pour ouvrir le Générateur d’expressions.

5. (Facultatif) Dans le Générateur d’expressions, effectuez l’une des tâches suivantes :

Pour accéder aux variables système et aux variables définies par l’utilisateur,
développez Variables.

Pour accéder aux fonctions, aux casts et aux opérateurs fournis par le langage
d’expression SSIS, développez Fonctions mathématiques, Fonctions de
chaîne, Fonctions de date et d’heure, Fonctions NULL, Casts de type et
Opérateurs.

Pour générer ou modifier une expression dans le Générateur d’expressions,


faites glisser les variables, colonnes, fonctions, opérateurs et conversions
dans la zone Expression ou tapez l’expression dans la zone.

Pour afficher le résultat de l’évaluation de l’expression, cliquez sur Évaluer


l’expression dans le Générateur d’expressions.

Si l'expression n'est pas valide, une alerte apparaît et décrit les erreurs de
syntaxe dans l'expression.

7 Notes

L'évaluation d'une expression n'affecte pas le résultat de l'évaluation de


la propriété.

6. Sélectionnez OK.

Voir aussi
Expressions Integration Services (SSIS)
Expressions de propriété dans des packages
Packages Integration Services (SSIS)
Conteneurs Integration Services
Tâches Integration Services
Gestionnaires d'événements Integration Services (SSIS)
Connexions Integration Services (SSIS)
Journalisation d'Integration Services (SSIS)
Page Expressions
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la page Expressions pour modifier les expressions de propriété et pour accéder
aux boîtes de dialogue Éditeur d’expressions de la propriété et Générateur
d’expressions .

Les expressions de propriété mettent à jour les valeurs des propriétés lors de l'exécution
du package. Ces expressions peuvent être utilisées avec les propriétés des packages, des
tâches, des conteneurs, des gestionnaires de connexions ainsi que certains composants
de flux de données. Les expressions sont évaluées et leurs résultats sont utilisés à la
place des valeurs auxquelles vous appliquez les propriétés lorsque vous avez configuré
le package et les objets de package. Les expressions peuvent inclure des variables et les
fonctions et les opérateurs fournis par le langage d'expression. Par exemple, vous
pouvez générer la ligne Objet pour la tâche d'envoi de courrier en concaténant la valeur
d'une variable qui contient la chaîne « prévisions météorologiques pour » et les résultats
de retour de la fonction GETDATE() pour obtenir la chaîne « Prévisions météorologiques
pour le 5/4/2006 ».

Pour en savoir plus sur l’utilisation des expressions de propriété et l’écriture


d’expressions, consultez Expressions Integration Services (SSIS) et Expressions de
propriété dans des packages.

Options
Expressions (...)
Cliquez sur les points de suspension pour ouvrir la boîte de dialogue Éditeur
d’expressions de la propriété . Pour plus d’informations, consultez Éditeur d’expressions
de la propriété.

<nom de la propriété>
Cliquez sur les points de suspension pour ouvrir la boîte de dialogue Générateur
d'expression . Pour plus d'informations, consultez Expression Builder.

Voir aussi
Variables Integration Services (SSIS)
Variables système
Expressions Integration Services (SSIS)
Éditeur d'expressions de la propriété
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Éditeur d'expressions de la propriété pour créer, modifier


ou supprimer les expressions de la propriété qui mettent à jour les valeurs de propriété.

Options
Propriété
Permet de sélectionner dans la liste une propriété d'objet.

Expression
Tapez un littéral ou une expression pour mettre à jour la valeur de la propriété.

7 Notes

Les noms des variables définies par l'utilisateur et des variables système respectent
la casse.

Expression (...)
Cliquez sur les points de suspension pour ouvrir la boîte de dialogue Générateur
d'expression . Pour plus d'informations, consultez Expression Builder.

Supprimer
Sélectionnez une propriété, puis cliquez sur Supprimer.

Voir aussi
Page Expressions
Variables Integration Services (SSIS)
Variables système
Expressions Integration Services (SSIS)
Expressions de propriété dans des packages
Générateur d’expressions
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Générateur d’expressions pour créer et modifier


l’expression d’une propriété ou écrire l’expression qui définit la valeur d’une variable à
l’aide d’une interface graphique utilisateur qui affiche la liste des variables et fournit une
référence intégrée aux fonctions, aux conversions de type et aux opérateurs que
contient le langage d’expression Integration Services .

Une expression de propriété est une expression qui est affectée à une propriété. Lorsque
l'expression est évaluée, la propriété est mise à jour de manière dynamique pour utiliser
le résultat d'évaluation de l'expression. De la même manière, une expression utilisée
dans une variable permet à la valeur de la variable d'être mise à jour avec le résultat de
l'évaluation de l'expression.

Il existe deux manières d'utiliser les expressions :

Tâches Mettez à jour la ligne À utilisée par une tâche Envoyer un message en
insérant une adresse e-mail qui est stockée dans une variable ou mettez à jour la
ligne Objet en concaténant une chaîne comme « Ventes pour : » et la date du jour
retournée par la fonction GETDATE.

Variables Affectez à la valeur d'une variable le mois en cours à l'aide d'une


expression telle que DATEPART("mm",GETDATE()) ; ou définissez la valeur d'une
chaîne en concaténant le littéral de chaîne à l'aide de l'expression "Today's date
is " + (DT_WSTR,30)(GETDATE()) .

Gestionnaire de connexions Définissez la page de codes d'un gestionnaire de


connexions de fichiers plats à l'aide d'une variable qui contient un identificateur de
page de codes différent ; ou spécifiez le nombre de lignes dans le fichier de
données à ignorer en entrant un entier positif (par exemple, 3) dans l'expression.

Pour en savoir plus sur les expressions de propriétés et l’écriture d’expressions,


consultez Expressions de propriété dans des packages et Expressions Integration
Services (SSIS).

Options
Terme Définition
Terme Définition

Variables Développez le dossier Variables et faites glisser les variables dans la zone
Expression .

Fonctions Développez les dossiers et faites glisser les fonctions, les conversions de type
mathématiques et les opérateurs dans la zone Expression .

Fonctions de
chaîne

Fonctions de
date et d'heure

Fonctions NULL

Casts de type

Opérateurs

Expression Modifiez ou tapez une expression.`

Valeur évaluée Donne le résultat de l'évaluation de l'expression.

Évaluer Cliquez sur Évaluer l'expression pour afficher le résultat de l'évaluation de


l'expression l'expression

Voir aussi
Page Expressions
Éditeur d’expressions de la propriété
Variables Integration Services (SSIS)
Variables système
Types de données Integration Services
dans les expressions
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

L’évaluateur d’expression utilise des types de données Integration Services. Quand des
données entrent dans le flux de données d’un package Integration Services, le moteur
de flux de données convertit toutes les données de colonne en type de données
Integration Services et les données de colonne utilisées par une expression ont déjà un
type de données Integration Services. Les expressions utilisées dans les transformations
de fractionnement conditionnel et de colonne dérivée peuvent référencer des colonnes
car elles font partie d'un flux de données qui comprend des données de colonne.

Variables
Les expressions peuvent également utiliser des variables. Les variables ont un type de
données Variant et l’évaluateur d’expression convertit le type de données d’une variable
dont le sous-type est Variant en type de données Integration Services avant d’évaluer
l’expression. Les variables peuvent utiliser seulement un sous-ensemble des types de
données Integration Services. Par exemple, une variable ne peut pas utiliser un type de
données BLOB (Binary Large Object Block).

Pour plus d’informations sur les types de données Integration Services et le mappage
des types de données Variant aux types de données Integration Services, consultez
Types de données Integration Services.

Littéraux
Les expressions peuvent aussi comprendre des littéraux de chaîne, booléens et
numériques. Pour plus d’informations sur la conversion des littéraux numériques en
types de données Integration Services numériques, consultez Littéraux (SSIS).

Chaînes
Vous pouvez utiliser DT_STR ou DT_WSTR comme type de retour d’une expression.
Toutefois, à l’intérieur d’une expression, seule la chaîne DT_WSTR est prise en charge.
Les valeurs DT_STR sont converties en valeurs DT_WSTR. Ce comportement a plusieurs
conséquences lorsque vous écrivez une expression.
Dans une expression, utilisez NULL(DT_WSTR, ...) au lieu de NULL(DT_STR, ...). Pour
plus d’informations sur cette fonction, consultez NULL (Expression SSIS).

Dans une expression, vous ne pouvez utiliser que la fonction CAST pour convertir
une valeur en DT_STR à la racine de l’expression, c’est-à-dire lorsque vous renvoyez
le résultat final de l’expression. Sinon, utilisez le type DT_WSTR dans l’expression.

Examinez les expressions dans la capture d’écran suivante.

1. La première s’exécute sans erreur, car la fonction NULL(DT_STR, ...) se trouve à la


racine de l’expression.

2. La deuxième s’exécute sans erreur, car elle utilise NULL(DT_WSTR, ...).

3. La troisième génère une erreur, car elle utilise NULL(DT_STR, ...) dans l’expression.

4. La quatrième génère une erreur, car elle convertit le résultat de NULL(DT_STR, ...)
dans l’expression.

l’évaluateur d’expression traite cette conversion intelligemment et convertit le


résultat en DT_WSTR (et non en DT_STR), car il reconnaît que l’opération n’est pas à
la racine de l’expression.

Les exemples suivants illustrent les impacts de la conversion.

1. Dans la première expression, la conversion n’est pas au niveau racine de


l’expression. l’évaluateur d’expression gère cette conversion intelligemment et
convertit le résultat en DT_WSTR (et non en DT_STR). L’expression renvoie
DT_WSTR.

2. Dans la deuxième expression, la conversion est au niveau racine de l’expression.


L’expression renvoie DT_STR.

Conversion de données implicite


Une conversion implicite d'un type de données se produit lorsque l'évaluateur
d'expression convertit automatiquement les données d'un type de données vers un
autre. Par exemple, si un smallint est comparé à un int, le smallint est implicitement
converti en int avant que la comparaison soit réalisée.

L'évaluateur d'expression ne peut pas effectuer la conversion implicite des données


lorsque les arguments et les opérandes contiennent des types de données
incompatibles. Par ailleurs, l'évaluateur d'expression ne peut pas convertir implicitement
une valeur en une valeur booléenne. Les arguments et les opérandes doivent être donc
être converties explicitement en utilisant l'opérateur de cast. Pour plus d’informations,
consultez Cast (Expression SSIS).

Le diagramme suivant indique le type de résultat des conversions implicites des


opérations BINARY. L'intersection d'une colonne et d'une ligne produit le même type de
résultat d'une opération binaire avec des opérandes des types gauche (From) et droit
(To).

L'intersection d'un entier signé et d'un entier non signé est un entier signé
potentiellement plus grand que l'un ou l'autre des arguments.

Les opérateurs comparent des chaînes, des dates, des valeurs booléennes et d'autres
types de données. Avant qu'un opérateur ne compare deux valeurs, l'évaluateur
d'expression effectue certaines conversions implicites. L'évaluateur d'expression
convertit toujours les littéraux de chaîne vers le type de données DT_WSTR et les
littéraux booléens vers le type de données DT_BOOL. L'évaluateur d'expression
interprète toutes les valeurs entre guillemets comme des chaînes. Les littéraux
numériques sont convertis en l’un des types de données Integration Services
numériques.

7 Notes

Les valeurs booléennes ne sont pas des nombres mais des valeurs logiques. Bien
que les valeurs booléennes peuvent apparaître sous la forme de nombres dans
certains environnements, elles ne sont pas stockées en tant que tels et divers
langages de programmation les représentent de manière différente en tant que
valeurs numériques, notamment les méthodes .NET Framework.

Par exemple, les fonctions de conversion disponibles dans Visual Basic


convertissent la valeur True en -1 ; cependant, la méthode System.Convert.ToInt32
du .NET Framework convertit True en +1. Le langage d’expression Integration
Services convertit True en -1.

Pour éviter des erreurs ou des résultats inattendus, n'écrivez pas de code fondé sur
des valeurs numériques précises pour les valeurs True et False. Si possible, limitez
l'utilisation de variables booléennes aux valeurs logiques pour lesquelles elles sont
conçues.

Pour plus d'informations, voir les rubriques suivantes :

== (Égal à) (expression SSIS)

!= (Différent de) (expression SSIS)

> (Supérieur à) (Expression SSIS)

< (Inférieur à) (Expression SSIS)

>= (Supérieur ou égal à) (expression SSIS)

<= (Inférieur ou égal à) (Expression SSIS)

Une fonction qui utilise un seul argument retourne un résultat dont le type de données
est celui de l'argument, sauf dans les cas suivants :

Les fonctions DAY, MONTH et YEAR acceptent une date et renvoient un résultat
entier (DT_I4).

ISNULL accepte une expression de n’importe quel type de données SSIS et


retourne un résultat booléen (DT_BOOL).

Les fonctions SQUARE et SQRT acceptent une expression numérique et renvoient


un résultat numérique non intégral (DT_BOOL).

Si les arguments possèdent le même type de données, le résultat est de ce type. La


seule exception est une opération binaire sur deux valeurs de type de données
DT_DECIMAL, car celle-ci retourne un résultat dont le type de données est DT_NUMERIC.
Configuration requise pour les données
utilisées dans les expressions
L’évaluateur d’expression prend en charge tous les types de données Integration
Services. Toutefois, selon l'opération ou la fonction, les opérandes et les arguments
requièrent certains types de données. L'évaluateur d'expression impose les contraintes
suivantes en matière de type de données pour les données utilisées dans les expressions
:

Les opérandes utilisés dans les opérations logiques doivent s'évaluer à une valeur
booléenne. Par exemple,, ColumnA > 1&&ColumnB <2.

Les opérandes utilisés dans les opérations mathématiques doivent s'évaluer à une
valeur numérique. Par exemple, 23,75 * 4.

Les opérandes utilisés dans les opérations de comparaison, telles que les
opérations logiques et d'égalité, doivent correspondre à des types de données
compatibles.

Par exemple, l'une des expressions de l'exemple suivant utilise le type de données
DT_DBTIMESTAMPOFFSET :

(DT_DBTIMESTAMPOFFSET,3) "1999-10-11 20:34:52.123 -3:30" != (DT_DBDATE)"1999-

10-12"

Le système convertit l’expression (DT_DBDATE)"1999-10-12" en


DT_DBTIMESTAMPOFFSET. Cet exemple correspond à TRUE car l'expression
convertie devient "1999-10-12 00:00:00.000 +00:00", ce qui n'est pas égal à la
valeur de l'autre expression, (DT_DBTIMESTAMPOFFSET,3) "1999-10-11 20:34:52.123
-3:30" .

Les arguments transmis aux fonctions mathématiques doivent s'évaluer à un type


de données numérique. Selon la fonction ou l'opération, un type de données
numérique spécifique peut être requis. Par exemple, la fonction HEX requiert un
entier signé ou non signé.

Les arguments passés aux fonctions de chaîne doivent produire un type de


données caractère : DT_STR ou DT_WSTR. Par exemple, UPPER("fleur"). Certaines
fonctions de chaîne, telles que la fonction SUBSTRING, requièrent des arguments
entiers supplémentaires pour définir la position de début et la longueur de la
chaîne.
Les arguments transmis aux fonctions de date et d'heure doivent s'évaluer à une
date valide. Par exemple, DAY(GETDATE()). Certaines fonctions, telles que la
fonction DATEADD, requièrent un argument entier supplémentaire pour définir le
nombre de jours qu'elles ajoutent à une date.

Les opérations qui combinent un entier non signé (8 bits) et un entier signé nécessitent
une conversion explicite afin de clarifier le format du résultat. Pour plus d’informations,
consultez Cast (Expression SSIS).

Les résultats de nombreuses opérations et fonctions ont des types de données


prédéterminés. Il peut s'agir du type de données de l'argument ou du type de données
vers lequel l'évaluateur d'expression convertit le résultat. Par exemple, le résultat d'un
opérateur logique OU (||) est toujours booléen, le résultat de la fonction ABS a le type de
données numérique de l'argument et le résultat de la multiplication est du plus petit
type de données numérique pouvant contenir ce résultat sans perte de données. Pour
plus d’informations sur les types de données des résultats, consultez Opérateurs
(Expression SSIS) et Fonctions (Expression SSIS).

Tâches associées
Utiliser une expression dans un composant de flux de données

Contenu associé
Article technique, SSIS Expression Cheat Sheet , sur pragmaticworks.com

Article technique, SSIS Expression Examples , sur social.technet.microsoft.com


Troncation de données (SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La conversion de valeurs de données d’un type vers un autre peut entraîner la


troncation de certaines valeurs.

Cette troncation peut se produire dans les cas suivants :

Conversion des données de chaîne du type DT_WSTR en données de type DT_STR


avec la même longueur si la chaîne d’origine contient des caractères codés sur
deux octets.

Conversion d’un entier du type DT_I4 vers le type DT_I2 (des chiffres significatifs
risquent d’être perdus).

Conversion d’un entier non signé en entier signé (des chiffres significatifs risquent
d’être perdus).

Conversion d’un nombre réel du type DT_R8 vers le type DT_R4 (des chiffres non
significatifs risquent d’être perdus).

Conversion d’un entier du type DT_I4 vers le type DT_R4 (des chiffres non
significatifs risquent d’être perdus).

L'évaluateur d'expression identifie les conversions explicites pouvant provoquer une


troncation et émet un avertissement lorsque l'expression est analysée. Par exemple,
l'évaluateur d'expression émet un avertissement si vous convertissez une chaîne de 30
caractères en une chaîne de 20 caractères.

Toutefois, la troncation éventuelle des caractères n’est pas vérifiée au moment de


l’exécution. Lors de l’exécution, les données sont tronquées sans avertissement. La
plupart des transformations et des adaptateurs de données prennent en charge des
sorties d’erreur pouvant gérer la disposition des lignes d’erreur.

Pour en savoir plus sur la gestion de la troncation des données, consultez Gestion des
erreurs dans les données.
Remplissage des chaînes (SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

L'évaluateur d'expression ne vérifie pas si une chaîne contient des espaces de début et
de fin et ne complète pas les chaînes pour qu'elles aient la même longueur avant de les
comparer. Pour compléter une chaîne dans une expression, vous pouvez concaténer des
valeurs de colonne et des chaînes vides à l'aide de l'opérateur « + ». Pour plus
d’informations, consultez + (Concaténer) (Expression SSIS).

Par contre, si vous souhaitez supprimer des espaces, l'évaluateur d'expression met à
votre disposition les fonctions LTRIM, RTRIM et TRIM, qui permettent de supprimer les
espaces de début et/ou de fin. Pour plus d’informations, consultez LTRIM (Expression
SSIS), RTRIM (Expression SSIS) et TRIM (Expression SSIS).

7 Notes

Le nombre de la fonction LEN inclut les espaces de début et de fin.

Contenu associé
Article technique, SSIS Expression Cheat Sheet , sur pragmaticworks.com
Syntaxe (SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La syntaxe des expressions Integration Services est similaire à la syntaxe utilisée par les
langages C et C#. Les expressions comprennent des éléments tels que des
identificateurs (colonnes et variables), des littéraux, des opérateurs et des fonctions.
Cette rubrique récapitule les contraintes de la syntaxe de l'évaluateur d'expression
applicables aux différents éléments d'une expression.

7 Notes

Les versions précédentes de Integration Serviceslimitaient à 4000 caractères le


résultat de l'évaluation d'une expression lorsqu'il était caractérisé par le type de
données Integration Services DT_WSTR ou DT_STR. Cette limite a été supprimée.

Pour obtenir des exemples d’expressions utilisant des opérateurs et des fonctions
spécifiques, consultez la rubrique relative à chaque opérateur et fonction dans les
rubriques : Opérateurs (expression SSIS) et Fonctions (expression SSIS).

Pour obtenir des exemples d’expressions utilisant plusieurs opérateurs et fonctions, ainsi
que des identificateurs et des littéraux, consultez Exemples d’expressions Integration
Services avancées.

Pour obtenir des exemples d’expressions de propriété, consultez Utiliser des expressions
de propriété dans les packages.

Identificateurs
Les expressions peuvent comprendre des identificateurs de colonne et de variable. Les
colonnes peuvent provenir de la source de données ou être créées par des
transformations dans le flux de données. Les expressions peuvent utiliser des
identificateurs de lignage pour faire référence aux colonnes. Les identificateurs de
lignage sont des nombres qui identifient de manière unique les éléments du package.
Les identificateurs de lignage référencés dans une expression doivent être préfixés du
signe dièse ( # ). Par exemple, l'identificateur de lignage 138 est référencé sous la forme
« #138 ».
Les expressions peuvent contenir les variables système fournies par SSIS , ainsi que des
variables personnalisées. Les variables référencées dans une expression doivent
comprendre le préfixe « @ ». Par exemple, la variable Counter est référencée sous la
forme @Counter. Le caractère « @ » ne fait pas partie du nom de la variable ; il indique
simplement à l'évaluateur d'expression que l'identificateur est une variable. Pour plus
d’informations, consultez Identificateurs (SSIS).

Littéraux
Les expressions peuvent contenir des littéraux numériques, booléens et de chaîne. Les
littéraux de chaîne utilisés dans les expressions doivent être placés entre guillemets. Les
littéraux numériques et booléens ne prennent pas de guillemets. Le langage des
expressions comprend des séquences d'échappement pour les caractères fréquemment
placés en mode échappement. Pour plus d’informations, consultez Littéraux (SSIS).

Opérateurs
L'évaluateur d'expression fournit un ensemble d'opérateurs dont les fonctionnalités sont
similaires à celles de l'ensemble des opérateurs de langages tels que Transact-SQL, C++
et C#. Toutefois, le langage des expressions comprend des opérateurs supplémentaires
et utilise des symboles auxquels vous n'êtes peut-être pas habitué. Pour plus
d’informations, consultez Opérateurs (expression SSIS).

Opérateur de résolution d'espace de noms


Les expressions utilisent l'opérateur de résolution d'espace de noms (::) pour lever toute
ambiguïté sur les variables de même nom. Grâce à l'opérateur de résolution d'espace de
noms, vous pouvez qualifier la variable avec son espace de noms, ce qui vous permet
d'utiliser plusieurs variables du même nom dans un package.

Opérateur de conversion
L'opérateur de conversion convertit, d'un type de données vers un autre, les résultats
des expressions, les valeurs des colonnes, les valeurs des variables et les constantes.
L'opérateur de conversion fourni par le langage des expressions est similaire à celui des
langages C et C#. Dans Transact-SQL, les fonctions CAST et CONVERT offrent cette
fonctionnalité. La syntaxe de l'opérateur de conversion diffère de celles utilisées par les
fonctions CAST et CONVERT dans les aspects suivants :

Elle peut utiliser une expression comme argument.


Elle ne comprend pas le mot clé CAST.

Elle ne comprend pas le mot clé AS.

Opérateur conditionnel

L'opérateur conditionnel retourne une des deux expressions en fonction de l'évaluation


d'une expression booléenne. L'opérateur conditionnel fourni par le langage des
expressions est similaire à celui des langages C et C#. Dans les expressions
multidimensionnelles (MDX), la fonction IIF offre une fonctionnalité similaire.

Opérateurs logiques

Le langage des expressions prend en charge le caractère « ! » pour l'opérateur logique


NOT. Dans Transact-SQL, l'opérateur « ! » est intégré à l'ensemble des opérateurs
relationnels. Par exemple, Transact-SQL fournit les opérateurs > et !>. Le langage
d’expression SSIS ne permet pas de combiner l’opérateur ! avec d’autres opérateurs. Par
exemple, vous ne pouvez pas combiner ! et > en !>. Toutefois, le langage des
expressions prend en charge une combinaison de caractères intégrée « != » pour la
comparaison « différent de » .

Opérateurs d'égalité

La grammaire de l'évaluateur d'expression fournit l'opérateur d'égalité « == ». Cet


opérateur est l'équivalent de l'opérateur « = » dans Transact-SQL et de l'opérateur « ==
» dans C#.

Fonctions
Le langage des expressions comprend des fonctions de date et d'heure, des fonctions
mathématiques et des fonctions de chaîne similaires aux fonctions Transact-SQL et aux
méthodes C#.

Certaines fonctions portent le même nom que des fonctions Transact-SQL, mais leurs
fonctionnalités diffèrent légèrement dans l'évaluateur d'expression.

Dans Transact-SQL, la fonction ISNULL remplace les valeurs NULL par une valeur
spécifiée, tandis que la fonction ISNULL de l'évaluateur d'expression retourne une
valeur booléenne basée sur le test de la valeur NULL d'une expression.

Dans Transact-SQL, la fonction ROUND comprend une option qui permet de


tronquer le jeu de résultats, fonctionnalité que n'offre pas la fonction ROUND de
l'évaluateur d'expression.

Pour plus d’informations, consultez Fonctions (expression SSIS).

Tâches associées
Utiliser une expression dans un composant de flux de données

Contenu associé
Article technique, SSIS Expression Cheat Sheet , sur pragmaticworks.com

Article technique, SSIS Expression Examples , sur social.technet.microsoft.com


Identificateurs (SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Dans les expressions, les identificateurs sont des colonnes et des variables disponibles
pour l'opération. Les expressions peuvent utiliser des identificateurs standard et
qualifiés.

Identificateurs standard
Un identificateur standard ne requiert aucun qualificateur supplémentaire. Par exemple,
la colonne MiddleNamede la table Contacts de la base de données AdventureWorks
est un identificateur standard.

La dénomination des identificateurs standard doit suivre les règles suivantes :

Le premier caractère du nom doit être une lettre, comme défini dans le standard
Unicode 2.0, ou un trait de soulignement « _ ».

Les caractères suivants peuvent être des lettres ou des nombres, comme défini
dans le standard Unicode 2.0, le trait de soulignement « _ » et les caractères « @ »,
« $ » et « # ».

) Important

Il n'est pas autorisé d'incorporer dans les identificateurs standard des espaces et
des caractères spéciaux, autres que ceux qui sont répertoriés. Pour recourir à des
espaces et à des caractères spéciaux, vous devez utiliser un identificateur qualifié au
lieu d'un identificateur standard.

Identificateurs qualifiés
Un identificateur qualifié est un identificateur délimité par des crochets. Un
identificateur peut nécessiter un délimiteur, car son nom comprend des espaces ou son
premier caractère n'est ni une lettre, ni un trait de soulignement. Par exemple, le nom de
colonne Middle Name doit être qualifié par des crochets et exprimé sous la forme «
[Middle Name] » dans une expression.
Si le nom de l'identificateur comprend des espaces ou qu'il ne s'agit pas d'un nom
d'identificateur standard valide, l'identificateur doit être qualifié. L'évaluateur
d'expression utilise les crochets ouvrant et fermant ( [] ) pour qualifier les identificateurs.
Les crochets occupent la première et la dernière position de la chaîne. Par exemple,
l'identificateur 5$> devient [5$>]. Les crochets peuvent être utilisés avec des noms de
colonne, de variable et de fonction.

Si vous créez des expressions à l'aide des boîtes de dialogue du concepteur SSIS, les
identificateurs standard sont automatiquement placés entre crochets. Toutefois, les
crochets sont requis uniquement si le nom comprend des caractères non valides. Par
exemple, la colonne MiddleName est valide sans crochets.

Dans les expressions, vous ne pouvez pas référencer des noms de colonne comprenant
des crochets. Par exemple, le nom de colonne Colonne[1] ne peut pas être utilisé dans
une expression. Pour utiliser la colonne dans une expression, vous devez lui attribuer un
nom dépourvu de crochets.

identificateur de lignage
Les expressions peuvent utiliser des identificateurs de lignage pour faire référence aux
colonnes. Les identificateurs de lignage sont automatiquement affectés lorsque vous
créez le package. Vous pouvez visualiser l'identificateur de lignage d'une colonne dans
l'onglet Propriétés de la colonne de la boîte de dialogue Éditeur avancé du concepteur
SSIS.

Si vous faites référence à une colonne à l'aide de son identificateur de lignage, celui-ci
doit être préfixé du signe dièse ( # ). Par exemple, une colonne dont l'identificateur de
lignage est 147 doit être référencée sous la forme « #147 ».

Si une expression est correctement analysée, l'évaluateur d'expression remplace les


identificateurs de lignage par des noms de colonne dans la boîte de dialogue.

Noms de colonne uniques


Plusieurs composants utilisés dans un package peuvent exposer des colonnes de même
nom. Si ces colonnes sont utilisées dans des expressions, toute ambiguïté doit être levée
afin que celles-ci soient correctement analysées. L'évaluateur d'expression prend en
charge la notation ponctuée afin d'identifier la source de la colonne. Par exemple, deux
colonnes nommées Age sont renommées « FlatFileSource.Age » et «
OLEDBSource.Age», ce qui indique que leurs sources sont FlatFileSource ou
OLEDBSource. L'analyseur traite le nom qualifié complet en tant que nom de colonne
unique.

Les noms de colonne et les noms de composant source sont qualifiés séparément. Les
exemples suivants illustrent l'utilisation des crochets dans une notation ponctuée :

Le nom du composant source comprend des espaces.

[MySo urce].Age

Le premier caractère du nom de la colonne n'est pas valide.

MySource.[#Age]

Les noms de la colonne et du composant source contiennent des caractères non


valides.

[MySource?].[#Age]

) Important

Si les deux éléments en notation ponctuée figurent dans une paire de crochets,
l'évaluateur d'expression interprète celle-ci comme un identificateur unique, et non
pas comme une combinaison de colonnes source.

Variables dans des expressions


Les variables référencées dans les expressions doivent comprendre le préfixe « @ ». Par
exemple, la variable Counter est référencée sous la forme « @Counter ». Le caractère «
@ » ne fait pas partie du nom de la variable ; il permet simplement à l'évaluateur
d'expression d'identifier la variable. Si vous utilisez les boîtes de dialogue du concepteur
SSIS pour créer des expressions, le caractère @ est automatiquement ajouté au nom de
la variable. Vous ne pouvez pas insérer des espaces entre le caractère « @ » et le nom
de la variable.
Les noms de variable suivent les mêmes règles que ceux des autres identificateurs
standard :

Le premier caractère du nom doit être une lettre, comme défini dans le standard
Unicode 2.0, ou un trait de soulignement « _ ».

Les caractères suivants peuvent être des lettres ou des nombres, comme défini
dans le standard Unicode 2.0, le trait de soulignement « _ » et les caractères « @ »,
« $ » et « # ».

Si un nom de variable contient des caractères autres que ceux répertoriés, vous devez
placer la variable entre crochets. Par exemple, les noms de variable contenant des
espaces doivent figurer entre crochets. Le crochet ouvrant suit le caractère « @ ». Par
exemple, la variable Mon nom est référencée sous la forme « @[Mon nom] ». Vous ne
pouvez pas insérer des espaces entre le nom de la variable et les crochets.

7 Notes

Les noms des variables définies par l'utilisateur et des variables système respectent
la casse.

Noms de variable uniques


Integration Services prend en charge les variables personnalisées et met à votre
disposition un ensemble de variables système. Par défaut, les variables personnalisées
appartiennent à l’espace de noms User , et les variables système à l’espace de noms
System . Vous pouvez créer des espaces de noms supplémentaires pour les variables
personnalisées et mettre à jour les noms d'espace de noms en fonction des besoins de
votre application. Le générateur d'expressions répertorie dans tous les espaces de noms
les variables qui sont dans leur portée respective.

Toutes les variables ont une portée et appartiennent à un espace de noms. Une variable
a la portée d'un package ou celle d'un conteneur ou d'une tâche appartenant au
package. Le générateur d'expressions du concepteur SSIS ne répertorie que les variables
comprises dans la portée. Pour plus d’informations, consultez Variables Integration
Services (SSIS) et Utiliser des variables dans des packages.

L'évaluateur d'expression ne peut correctement évaluer les expressions que si les


variables utilisées dans celles-ci portent des noms uniques. Si un package utilise
plusieurs variables de même nom, leurs espaces de noms doivent être différents.
Integration Services a un opérateur de résolution d'espace de noms, constitué de deux
points (::), qui permet de qualifier une variable avec son espace de noms. Par exemple,
l’expression suivante utilise deux variables nommées Count; l’une appartient à l’espace
de noms User et l’autre à l’espace de noms MyNamespace .

@[User::Count] > @[MyNamespace::Count]

) Important

Vous devez placer la combinaison de l'espace de noms et du nom de la variable


qualifiée entre crochets pour que l'évaluateur d'expression puisse reconnaître la
variable.

Si la variable Count de l’espace de noms User présente la valeur 10 et que la variable


Count de l’espace de noms MyNamespace est définie sur 2, l’expression renvoie la
valeur true , car l’évaluateur d’expression reconnaît deux variables différentes.

Si les noms de variable ne sont pas uniques, aucune erreur ne se produit. Par contre,
l'évaluateur d'expression utilise une seule instance de la variable pour évaluer
l'expression et renvoie un résultat incorrect. Par exemple, l’expression suivante est
conçue pour comparer les valeurs (10 et 2) de deux variables Count distinctes, mais
retourne la valeur false , car l’évaluateur d’expression utilise deux fois la même instance
de la variable Count .

@Count > @Count

Contenu associé
Article technique, SSIS Expression Cheat Sheet , sur pragmaticworks.com
Littéraux numériques, booléens et de
chaîne
Article • 30/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les expressions peuvent contenir des littéraux numériques, booléens et de chaîne.


L’évaluateur d’expression prend en charge divers littéraux numériques tels que les
entiers, les décimaux et les constantes à virgule flottante. L'évaluateur d'expression
prend également en charge les suffixes longs et flottants, qui spécifient comment il doit
gérer les valeurs, ainsi que la notation scientifique dans les littéraux numériques.

Littéraux numériques
L'évaluateur d'expression prend en charge les types de données numériques intégraux
et non intégraux. Il prend également en charge les identificateurs de lignage
(identificateurs numériques uniques des éléments de package). Les identificateurs de
lignage sont des nombres, mais vous ne pouvez pas les utiliser dans des opérations
mathématiques.

L'évaluateur d'expression prend en charge les suffixes, qui vous permettent d'indiquer
comment celui-ci doit traiter le littéral numérique. Par exemple, vous pouvez indiquer
que l’entier 37 est traité en tant que type de données entier long en écrivant 37L ou 37l.

Le tableau suivant décrit les suffixes des littéraux numériques.

Suffixe Description

L ou l Littéral numérique long.

U ou u Littéral numérique non signé.

E ou e Exposant en notation scientifique

Le tableau suivant décrit les éléments des expressions numériques et leurs expressions
régulières.

Élément Expression Description


d'expression régulière
Élément Expression Description
d'expression régulière

Chiffres [0-9] Tout chiffre.


exprimés par la
lettre « D ».

Notation [Ee][+-]? « e » majuscule ou minuscule, éventuellement le signe « + » ou


scientifique {D}+ « - », et un ou plusieurs chiffres tels que définis pour « D ».
exprimée par la
lettre « E ».

Suffixe entier (([lL]? Facultativement, « u » et « l » majuscules ou minuscules ou une


exprimé par « IS [uU]?)| combinaison de « u » et de « l ». « U » ou « u » indique une
». ([uU]?[lL]?)) valeur non signée. « L » ou « l » indique une valeur longue.

Suffixe flottant ([f|F]|[l|L]) « f » ou « l » majuscule ou minuscule. « F » ou « f » indique une


exprimé par « FS valeur flottante (type de données DT_R4). « L » ou « l » indique
». une valeur longue (type de données DT_R8).

Chiffre [a-fA-F0-9] Tout chiffre hexadécimal.


hexadécimal
exprimé par la
lettre « H ».

Le tableau suivant décrit les littéraux numériques valides dans le langage d'expression
régulière.

Expression Description
régulière

{D}+{IS} Littéral numérique intégral avec au moins un chiffre (D) et éventuellement le suffixe
long et/ou le suffixe non signé (IS). Exemples : 457, 785u, 986L et 7945ul.

{D}+{E}{FS} Littéral numérique non intégral avec au moins un chiffre (D), la notation scientifique
et le suffixe long ou flottant. Exemples : 4E8l, 13e-2f et 5E+L.

{D}*"."{D}+ Littéral numérique non intégral avec une décimale, une fraction décimale d'au
{E}?{FS} moins un chiffre (D), un exposant facultatif (E) et un identificateur flottant ou long
(FS). Ce littéral numérique est du type de données DT_R4 ou DT_R8. Exemples :
6.45E3f, .89E-2l et 1.05E+7F.

{D}+"."{D}* Littéral numérique non intégral avec au moins un chiffre significatif (D), une
{E}?{FS} décimale, un exposant (E) et un identificateur flottant ou long (FS). Ce littéral
numérique est du type de données DT_R4 ou DT_R8. Exemples : 1.E-4f, 4.6E6L et
8.365E+2f.

{D}*.{D}+ Littéral numérique non intégral avec précision et échelle. Il a une décimale et une
fraction décimale d'au moins un chiffre (D). Ce littéral numérique est du type de
données DT_NUMERIC. Exemples : 0,9, 5,8 et 0,346.
Expression Description
régulière

{D}+.{D}* Littéral numérique non intégral avec précision et échelle. Il a au moins un chiffre
significatif (D) et une décimale. Ce littéral numérique est du type de données
DT_NUMERIC. Exemples : 6,0, 0,2 et 8,0.

#{D}+ Identificateur de lignage. Il est composé du signe dièse ( # ) et d'au moins un chiffre
(D). Exemples : #123.

0[xX]{H}+ Littéral numérique en notation hexadécimale. Il comprend un zéro, un « x »


{uU} majuscule ou minuscule, au moins un « H » majuscule et, éventuellement, le suffixe
non signé. Exemples : 0xFF0A et 0X000010000U.

Pour plus d’informations sur les types de données utilisés par l’évaluateur d’expression,
consultez Types de données d’Integration Services.

Les expressions peuvent comprendre des littéraux numériques de différents types de


données. Lorsque l'évaluateur d'expression évalue ces expressions, il convertit les
données vers des types compatibles. Pour plus d’informations, consultez Types de
données Integration Services dans les expressions.

Toutefois, la conversion entre certains types de données requiert une conversion


explicite. L'évaluateur d'expression dispose de l'opérateur de conversion permettant de
réaliser la conversion explicite des types de données. Pour plus d’informations, consultez
Cast (Expression SSIS).

Mappage des littéraux numériques avec des types de


données Integration Services
L'évaluateur d'expression effectue les conversions suivantes lorsqu'il évalue les littéraux
numériques :

Un littéral numérique intégral est mappé avec un type de données integer comme
suit :

Suffixe Type de résultat

None DT_I4

U DT_UI4

L DT_I8

UL DT_UI8
) Important

Si le suffixe long (« L » ou « l ») est absent, l'évaluateur d'expression mappe


les valeurs signées avec le type de données DT_I4 et les valeurs non signées
avec le type de données DT_UI4, même si la valeur dépasse le type de
données.

Un littéral numérique qui comprend un exposant est converti vers le type de


données DT_R4 ou DT_R8. Si l'expression comprend le suffixe long, elle est
convertie vers le type de données DT_R8 ; si elle comprend le suffixe flottant, elle
est convertie vers le type de données DT_R4.

Si un littéral numérique non intégral comprend « F » ou « f », il est mappé avec le


type de données DT_R4. S'il comprend « L » ou « l » et que le nombre est un entier,
il est mappé avec le type de données DT_I8. S'il s'agit d'un nombre réel, il est
mappé avec le type de données DT_R8. S'il comprend le suffixe long, il est converti
vers le type de données DT_R8.

Un littéral numérique non intégral avec précision et échelle est mappé avec le type
de données DT_NUMERIC.

Littéraux de chaîne
Les littéraux de chaîne doivent être placés entre guillemets. Le langage d'expression
fournit un ensemble de séquences d'échappement pour les caractères généralement
placés en mode échappement, tels que les caractères non imprimables et les guillemets.

Un littéral de chaîne comprend zéro caractère ou plus, placés entre guillemets. Si une
chaîne contient des guillemets, ceux-ci doivent être en mode échappement afin que
l'expression puisse être analysée. Tout caractère sur deux octets est autorisé dans une
chaîne, à l'exception du caractère « \x0000 » car ce caractère est la marque de fin NULL
d'une chaîne.

Les chaînes peuvent comprendre d'autres caractères nécessitant une séquence


d'échappement. Le tableau suivant décrit les séquences d'échappement des littéraux de
chaîne.

Séquence d'échappement Description

\a Alerte

\b Retour arrière
Séquence d'échappement Description

\f Saut de page

\n Nouvelle ligne

\r Retour chariot

\t Tabulation horizontale

\v Tabulation verticale

\" Guillemets

\ Barre oblique inverse

\xhhhh Caractère Unicode en notation hexadécimale

Littéraux booléens
L’évaluateur d’expression prend en charge les littéraux booléens habituels : True et
False. L’évaluateur d’expression ne respecte pas la casse ; toute combinaison de lettres
majuscules et minuscules y est autorisée. Par exemple, vous pouvez utiliser aussi bien
TRUE que True .

7 Notes

Dans une expression, un littéral booléen doit être délimité par des espaces.
Opérateurs (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette section décrit les opérateurs du langage d'expression ainsi que l'associativité et la
priorité des opérateurs utilisées par l'évaluateur d'expression.

Le tableau suivant indique les rubriques relatives aux opérateurs décrits dans cette
section.

Opérateur Description

Cast (expression SSIS) Convertit une expression d'un type de données en un autre type
de données.

() (Parenthèses) (expression Identifie l'ordre d'évaluation des expressions.


SSIS)

+ (Addition) (SSIS) Additionne deux expressions numériques.

+ (Concaténer) (expression Concatène deux expressions.


SSIS)

- (Soustraction) (expression Soustrait la deuxième expression numérique de la première.


SSIS)

- (Négatif) (expression SSIS) Inverse une expression numérique.

* (Multiplication) (expression Multiplie deux expressions numériques.


SSIS)

/(Division) (expression SSIS) Divise la première expression numérique par la deuxième.

% (Modulo) (expression SSIS) Fournit le reste entier de la division de la première expression


numérique par la deuxième.

|| (OU logique) (expression Effectue une opération OR logique.


SSIS)

&& (AND logique) Effectue une opération AND logique.


(Expression SSIS)

! (Non logique) (expression Inverse un opérande booléen.


SSIS)

| (OR inclusive au niveau du Effectue une opération OR au niveau du bit avec deux valeurs
bit) (expression SSIS) entières.
Opérateur Description

^ (OR exclusif au niveau du Effectue une opération OR exclusive au niveau du bit avec deux
bit) (expression SSIS) valeurs entières.

& (AND au niveau du bit) Effectue une opération AND au niveau du bit avec deux valeurs
(Expression SSIS) entières.

~ (NOT au niveau du bit) Effectue une négation au niveau du bit d'un entier.
(expression SSIS)

== (Égal à) (expression SSIS) Effectue une comparaison pour déterminer si deux expressions
sont égales.

!= (Différent de) (expression Effectue une comparaison pour déterminer si deux expressions
SSIS) sont différentes.

> (Supérieur à) (Expression Effectue une comparaison pour déterminer si la première


SSIS) expression est supérieure à la deuxième.

< (Inférieur à) (Expression Effectue une comparaison pour déterminer si la première


SSIS) expression est inférieure à la deuxième.

>= (Supérieur ou égal à) Effectue une comparaison pour déterminer si la première


(expression SSIS) expression est supérieure ou égale à la deuxième.

<= (Inférieur ou égal à) Effectue une comparaison pour déterminer si la première


(Expression SSIS) expression est inférieure ou égale à la deuxième.

? : (Conditionnel) (expression Renvoie une des deux expressions selon l'évaluation d'une
SSIS) expression booléenne.

Pour plus d’informations sur la position de chaque opérateur dans la hiérarchie des
priorités, consultez Priorités et associativité des opérateurs.

Voir aussi
Fonctions (expression SSIS)
Exemples d'expressions Integration Services avancées
Expressions Integration Services (SSIS)
Priorités et associativité des opérateurs
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Chaque opérateur de l'ensemble des opérateurs pris en charge par l'évaluateur


d'expression se caractérise par une priorité dans la hiérarchie des priorités et par un
sens d'évaluation. Le sens de l'évaluation d'un opérateur repose sur l'associativité des
opérateurs. Les opérateurs dont le degré de priorité est le plus élevé sont évalués avant
les opérateurs de priorité moindre. Si une expression complexe comporte plusieurs
opérateurs, l'ordre de priorité détermine l'ordre d'exécution des opérations. Cet ordre
peut affecter considérablement la valeur résultante. Certains opérateurs ont une priorité
identique. Si une expression contient plusieurs opérateurs de priorité identique, ceux-ci
sont évalués dans un certain sens, de la gauche vers la droite ou de la droite vers la
gauche.

Le tableau suivant décrit les priorités des opérateurs, de la plus élevée à la moins élevée.
Les opérateurs de même niveau ont une priorité identique.

Symbole d'opérateur Type d’opération Associativité

() Expression De gauche à droite

-, !, ~ Unaire De droite à gauche

Casts Unaire De droite à gauche

*, / ,% Multiplicatif De gauche à droite

+, - Additive De gauche à droite

<, >, <=, >= Relationnel De gauche à droite

==, != Égalité De gauche à droite

& ET au niveau du bit De gauche à droite

^ OU exclusif au niveau du bit De gauche à droite

| Opération OR inclusive au niveau du bit De gauche à droite

&& ET logique De gauche à droite

|| OU logique De gauche à droite

?: Expression conditionnelle De droite à gauche


Voir aussi
Opérateurs (expression SSIS)
Cast (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Convertit explicitement une expression d'un type de données vers un autre. L'opérateur
de conversion peut également fonctionner comme opérateur de troncation.

Syntaxe

(type_spec) expression

Arguments
type_spec
Type de données SSIS valide.

expression
Expression valide.

Types des résultats


Type de données de type_spec. Pour plus d’informations, consultez Types de données
Integration Services.

Notes
Le schéma suivant montre les opérations de conversion valides.
La conversion vers certains types de données nécessite des paramètres. Le tableau
suivant décrit ces types de données et leurs paramètres.

Type de Paramètre Exemple


données

DT_STR charcount L'expression (DT_STR,30,1252) convertit 30 octets, ou 30 caractères


codés sur un octet, vers le type de données DT_STR à l'aide de la
codepage page de codes 1252.

DT_WSTR Charcount L'expression (DT_WSTR,20) convertit 20 paires d'octets, ou 20


caractères Unicode, vers le type de données DT_WSTR.
Type de Paramètre Exemple
données

DT_BYTES Bytecount L'expression (DT_BYTES,50) convertit 50 octets vers le type de


données DT_BYTES.

DT_DECIMAL Mise à L'expression (DT_DECIMAL,2) convertit une valeur numérique dans le


l’échelle type de données DT_DECIMAL avec une échelle égale à 2.

DT_NUMERIC Précision L'expression (DT_NUMERIC,10,3) convertit une valeur numérique


dans le type de données DT_NUMERIC avec une précision de 10 et
Mise à une échelle de 3.
l’échelle

DT_TEXT Codepage L'expression (DT_TEXT,1252) convertit une valeur vers le type de


données DT_TEXT à l'aide de la page de codes 1252.

Lorsque vous convertissez une chaîne vers un type de données DT_DATE ou vice versa,
les paramètres régionaux de la transformation sont utilisés. Toutefois, la date se
présente dans le format ISO AAAA-MM-JJJ, que les préférences des paramètres
régionaux utilisent ou non le format ISO.

7 Notes

Pour convertir une chaîne en un type de données date autre que DT_DATE,
consultez Types de données d’Integration Services.

Si la page de codes est une page de codes de caractères multi-octets, le nombre


d'octets et de caractères peut différer. La conversion d’un type de données (transtypage)
DT_WSTR en DT_STR avec la même valeur charcount peut provoquer la troncation des
caractères finaux dans la chaîne convertie. Si l’espace de stockage disponible est
suffisant dans la colonne de la table de destination, définissez la valeur du paramètre
charcount de façon à refléter le nombre d’octets nécessaires à la page de codes
multioctets. Par exemple, si vous convertissez des données de type caractère en un type
de données DT_STR en utilisant la page de codes 936, vous devez définir le paramètre
charcount sur une valeur jusqu’à deux fois supérieure au nombre de caractères attendus
dans les données. Si vous convertissez des données de type caractère en utilisant la
page de codes UTF-8, vous devez attribuer au paramètre charcount une valeur jusqu’à
quatre fois supérieure.

Pour plus d’informations sur la structure des types de données date, consultez Types de
données d’Integration Services.
Exemples d'expressions SSIS
L'exemple suivant convertit une valeur numérique en un entier.

(DT_I4) 3.57

L'exemple suivant convertit un entier en une chaîne de caractères à l'aide de la page de


codes 1252.

(DT_STR,1,1252)5

L'exemple suivant convertit une chaîne de trois caractères en caractères codés sur deux
octets.

(DT_WSTR,3)"Cat"

L'exemple suivant convertit un entier en un nombre décimal avec une échelle de deux.

(DT_DECIMAl,2)500

L'exemple suivant convertit un entier en une valeur numérique avec une précision de
sept et une échelle de trois.

(DT_NUMERIC,7,3)4000

L’exemple suivant convertit les valeurs de la colonne FirstName , définie avec un type de
données nvarchar et une longueur de 50, en une chaîne de caractères en utilisant la
page de codes 1252.

(DT_STR,50,1252)FirstName
L’exemple suivant convertit les valeurs de la colonne DateFirstPurchase de type
DT_DBDATE, en une chaîne de caractères Unicode avec une longueur de 20.

(DT_WSTR,20)DateFirstPurchase

L'exemple suivant convertit le littéral de chaîne "True" en une valeur booléenne.

(DT_BOOL)"True"

Cet exemple convertit un littéral de chaîne en DT_DBDATE.

(DT_DBDATE) "1999-10-11"

Cet exemple convertit un littéral de chaîne en type de données DT_DBTIME2 qui utilise 5
chiffres pour les fractions de seconde. (Le type de données DT_DBTIME2 peut avoir entre
0 et 7 chiffres spécifiés pour les fractions de seconde.)

(DT_DBTIME2, 5) "16:34:52.12345"

Cet exemple convertit un littéral de chaîne en type de données DT_DBTIMESTAMP2 qui


utilise 4 chiffres pour les fractions de seconde. (Le type de données DT_DBTIMESTAMP2
peut avoir entre 0 et 7 chiffres spécifiés pour les fractions de seconde.)

(DT_DBTIMESTAMP2, 4) "1999-10-11 16:34:52.1234"

Cet exemple convertit un littéral de chaîne en type de données


DT_DBTIMESTAMPOFFSET qui utilise 7 chiffres pour les fractions de seconde. (Le type de
données DT_DBTIMESTAMPOFFSET peut avoir entre 0 et 7 chiffres spécifiés pour les
fractions de seconde.)

(DT_DBTIMESTAMPOFFSET, 7) "1999-10-11 16:34:52.1234567 + 5:35"


Voir aussi
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
Expressions Integration Services (SSIS)
Types de données Integration Services dans les expressions
() (Parenthèses) (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Identifie l'ordre d'évaluation des expressions. Les expressions entre parenthèses ont la
priorité d'évaluation la plus élevée. L'évaluation des expressions imbriquées placées
entre parenthèses commence par celle située le plus à l'intérieur, puis se poursuit
jusqu'à celle située le plus à l'extérieur.

Les parenthèses permettent également de faciliter la compréhension des expressions


complexes.

Syntaxe

(expression)

Arguments
expression
Peut être toute expression valide.

Types des résultats


Le type de données expression. Pour plus d’informations, consultez Types de données
Integration Services.

Exemples d'expressions
Cet exemple illustre la façon dont l'utilisation des parenthèses modifie la priorité des
opérateurs. La première expression totalise 100 tandis que la seconde cumule à 31.

(5 + 5) * (4 + 6)
5 + 5 * 4 + 6
Voir aussi
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
+ (Addition) (SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Additionne deux expressions numériques.

Syntaxe

numeric_expression1 + numeric_expression2

Arguments
numeric_expression1, numeric_ expression2
Toute expression valide d'un type de données numérique.

Types des résultats


Déterminés par les types de données des deux arguments. Pour plus d’informations,
consultez Types de données Integration Services.

Notes
Si l'un des opérandes est NULL, le résultat est NULL.

Exemples d'expressions
L'exemple suivant additionne des littéraux numériques.

5 + 6.09 + 7.0

L'exemple suivant additionne les valeurs des colonnes VacationHours et


SickLeaveHours .
VacationHours + SickLeaveHours

L'exemple suivant ajoute une valeur calculée à la colonne StandardCost . La variable


Profit% doit figurer entre crochets car elle contient le caractère « % ». Pour plus
d’informations, consultez Identificateurs (SSIS).

StandardCost + (StandardCost * @[Profit%])

Voir aussi
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
+ (Concaténer) (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Concatène deux expressions en une seule.

Syntaxe

character_expression1 + character_expression2

Arguments
expression1, expression2
Toute expression valide de type de données DT_STR, DT_WSTR, DT_TEXT, DT_NTEXT ou
DT_IMAGE.

Types des résultats


DT_WSTR

Notes
L'expression peut utiliser l'un des types de données DT_STR et DT_WSTR (ou les deux).

La concaténation des types de données DT_STR et DT_WSTR renvoie un résultat de type


DT_WSTR. La longueur de la chaîne est la somme des longueurs des chaînes d'origine
exprimée en caractères.

Seules les données des types de données chaîne DT_STR et DT_WSTR ou de types de
données BLOB (Binary Large Object Block) DT_TEXT, DT_NTEXT et DT_IMAGE peuvent
être concaténées. Les autres types de données doivent être explicitement convertis dans
l'un de ces types de données pour que la concaténation puisse être effectuée. Pour plus
d’informations sur les casts valides entre types de données, consultez Cast (Expression
SSIS).
Les deux expressions doivent être du même type de données, ou l'une des expressions
doit être implicitement convertible vers le type de données de l'autre expression. Par
exemple, si la chaîne « La date de commande est » et la colonne OrderDate sont
concaténées, les valeurs de la colonne OrderDate sont implicitement converties vers un
type de données string. Deux valeurs numériques ne peuvent être concaténées que si
elles sont toutes deux explicitement converties en un type de données chaîne.

Une concaténation ne peut utiliser qu'un seul type de données BLOB : DT_TEXT,
DT_NTEXT ou DT_IMAGE.

Si l'un des éléments est NULL, le résultat est NULL.

Les littéraux de chaîne doivent être placés entre guillemets.

Exemples d'expressions
L'exemple suivant concatène les valeurs des colonnes FirstName et LastName en les
séparant par un espace.

FirstName + ' ' + LastName

L’exemple suivant concatène les variables ZIPCode et ZIPCode+4. Les deux variables
sont de type de données chaîne. La variableZIPCode+4 doit figurer entre crochets car
elle contient le caractère « + ».

@ZIPCcode + "-" + @[ZipCode+4]

Voir aussi
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
- (Soustraction) (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Soustrait la deuxième expression numérique de la première.

Syntaxe

numeric_expression1 - numeric_expression2

Arguments
expression_numérique1, expression_numérique2
Toute expression valide d'un type de données numérique. Pour plus d’informations,
consultez Types de données Integration Services.

Types des résultats


Déterminés par les types de données des deux arguments. Pour plus d’informations,
consultez Types de données Integration Services dans les expressions.

Notes
Ajoutez l'expression unaire négative entre parenthèses pour garantir que
l'expression est évaluée dans l'ordre correct

Si l'un des opérandes est NULL, le résultat est NULL.

Exemples d'expressions
L'exemple suivant soustrait des littéraux numériques.
5 - 6.09

L’exemple suivant soustrait la valeur de la colonne StandardCost de la valeur de la


colonne ListPrice .

ListPrice - StandardCost

L’exemple suivant soustrait une valeur calculée de la colonne ListPrice . La variable


Discount% doit figurer entre crochets car elle contient le caractère « % ». Pour plus
d’informations, consultez Identificateurs (SSIS).

ListPrice - (ListPrice * @[Discount%])

Voir aussi
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
- (Négatif) (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Inverse une expression numérique.

Syntaxe

-numeric_expression

Arguments
numeric_expression
Toute expression valide d’un type de données numérique. Seuls les types de données
numériques signés sont pris en charge. Pour plus d’informations, consultez Types de
données Integration Services.

Types des résultats


Retourne le type de données numeric_expression.

Exemples d'expressions
Cet exemple inverse la valeur de la variable Counter et ajoute le littéral numérique 50.

-@Counter + 50

Voir aussi
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
* (Multiplication) (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Multiplie deux expressions numériques.

Syntaxe

numeric_expression1 * numeric_expression2

Arguments
expression_numérique1, expression_numérique2
Toute expression valide d'un type de données numérique. Pour plus d’informations,
consultez Types de données Integration Services.

Types des résultats


Déterminés par les types de données des deux arguments. Pour plus d’informations,
consultez Types de données Integration Services dans les expressions.

Notes
Si l'un des opérandes est NULL, le résultat est NULL.

Exemples d'expressions
L'exemple suivant multiplie des littéraux numériques.

5 * 6.09

L’exemple suivant multiplie les valeurs de la colonne ListPrice par 10 pour cent.
ListPrice * .10

Cet exemple soustrait le résultat d’une expression de la colonne ListPrice . La variable


Discount% doit figurer entre crochets car elle contient le caractère « % ». Pour plus
d’informations, consultez Identificateurs (SSIS).

ListPrice - (ListPrice * @[Discount%])

Voir aussi
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
Diviser (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Divise la première expression numérique par la deuxième.

Syntaxe

dividend / divisor

Arguments
dividend
Expression numérique à diviser. dividend peut être n’importe quelle expression
numérique valide. Pour plus d’informations, consultez Types de données Integration
Services.

divisor
Expression numérique par laquelle diviser le dividende. Le diviseur peut être toute
expression numérique valide, sauf zéro.

Types des résultats


Déterminés par les types de données des deux arguments. Pour plus d’informations,
consultez Types de données Integration Services dans les expressions.

Notes
Si l'un des opérandes est NULL, le résultat est NULL.

La division par zéro n'est pas autorisée. L’évaluation de la sous-expression divisor génère
l’une des erreurs suivantes :

Si la sous-expression divisor qui donne la valeur zéro est une constante, l’erreur se
produit au moment de la conception et provoque l’échec de la validation de
l’expression.

Si la sous-expression divisor qui donne la valeur zéro contient des variables, mais
aucune colonne d’entrée, le composant auquel l’expression appartient ne parvient
pas à valider l’exécution préalable du package.

Si la sous-expression divisor qui donne la valeur zéro contient des colonnes


d’entrée, l’erreur se produit au moment de l’exécution et est gérée en fonction des
règles de flux d’erreur du composant de flux de données.

Exemples d'expressions
L'exemple suivant divise deux littéraux numériques.

25 / 5

L’exemple suivant divise les valeurs de la colonne ListPrice par celles de la colonne
StandardCost .

ListPrice / StandardCost

Voir aussi
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
(Modulo) (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Fournit le reste entier de la division de la première expression numérique par la


deuxième.

Syntaxe

dividend % divisor

Arguments
dividend
Expression numérique à diviser. dividend peut être n’importe quelle expression
numérique valide. Pour plus d’informations, consultez Types de données d’Integration
Services.

divisor
Expression numérique par laquelle diviser le dividende. Le diviseur peut être toute
expression numérique valide, sauf zéro.

Types des résultats


Déterminés par les types de données des deux arguments. Pour plus d’informations,
consultez Types de données Integration Services dans les expressions.

Remarques
Les valeurs des deux expressions doivent s'évaluer à des types de données entier signé
ou non signé.

Si l'un des opérandes est NULL, le résultat est NULL.

Un modulo égal à zéro n'est pas autorisé.


Exemples d'expressions
L'exemple suivant calcule le modulo à partir de deux littéraux numériques. Le résultat est
3.

42 % 13

L’exemple suivant calcule le modulo à partir de la colonne SalesQuota et d’un littéral


numérique.

SalesQuota % 12

L’exemple suivant calcule le modulo à partir de deux variables numériques : Sales$ et


Month. La variable Sales$ doit figurer entre crochets car elle contient le caractère « $ ».
Pour plus d’informations, consultez Identificateurs (SSIS).

@[Sales$] % @Month

L’exemple suivant utilise l’opérateur modulo pour déterminer si la valeur de la variable


Value est paire ou impaire, et utilise l’opérateur conditionnel pour renvoyer une chaîne
décrivant le résultat. Pour plus d’informations, consultez ? : (Conditionnel) (expression
SSIS).

@Value % 2 == 0? "even":"odd"

Voir aussi
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
|| (OU logique) (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Effectue une opération OR logique. L'expression renvoie la valeur TRUE si au moins une
des deux conditions s'évalue à TRUE.

Syntaxe

boolean_expression1 || boolean_expression2

Arguments
boolean_expression1, boolean_expression2
Expression valide qui renvoie TRUE, FALSE ou NULL.

Types des résultats


DT_BOOL

Remarques
Le tableau suivant indique le résultat de l'opérateur « || »

Résultats Expression Expression

TRUE TRUE TRUE

TRUE TRUE FALSE

FALSE FALSE FALSE

NULL NULL NULL

TRUE NULL TRUE

NULL NULL false


Exemples d'expressions SSIS
L'exemple suivant utilise les colonnes StandardCost et ListPrice . L'exemple renvoie la
valeur TRUE si la valeur de la colonne StandardCost est inférieure à 300 ou que celle de
la colonne ListPrice est supérieure à 500.

StandardCost < 300 || ListPrice > 500

L'exemple suivant utilise les variables SPrice et LPrice au lieu de littéraux numériques.

StandardCost < @SPrice || ListPrice > @LPrice

Voir aussi
| (OR inclusive au niveau du bit) (expression SSIS)
^ (OR exclusif au niveau du bit) (expression SSIS)
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
&& (ET logique) (expression SSIS)
Article • 16/01/2024

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Effectue une opération AND logique. L'expression renvoie la valeur TRUE si toutes les
conditions s'évaluent à TRUE.

Syntaxe

boolean_expression1 && boolean_expression2

Arguments
boolean_expression1, boolean_expression2
Expression valide qui renvoie TRUE, FALSE ou NULL.

Types des résultats


DT_BOOL

Notes
Le tableau suivant indique le résultat de l'opérateur &&.

ノ Agrandir le tableau

Résultats Expression Expression

TRUE VRAI VRAI

FAUX VRAI FALSE

FAUX FAUX FALSE

NULL NULL NULL

NULL NULL TRUE


Résultats Expression Expression

FALSE NULL false

Exemples d'expressions
L’exemple suivant utilise les colonnes StandardCost et ListPrice . L’exemple renvoie la
valeur TRUE si la valeur de la colonne StandardCost est inférieure à 300 et que celle de
la colonne ListPrice est supérieure à 500.

StandardCost < 300 && ListPrice > 500

L’exemple suivant utilise les variables SPrice et LPrice au lieu de littéraux.

StandardCost < @SPrice && ListPrice > @LPrice

Voir aussi
& (ET au niveau du bit) (expression SSIS)
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)

Commentaires
Cette page a-t-elle été utile ?  Yes  No

Indiquer des commentaires sur le produit | Obtenir de l’aide sur Microsoft Q&A
! (Non logique) (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Inverse un opérande booléen.

7 Notes

L'opérateur « ! » ne peut pas être utilisé en combinaison avec d'autres opérateurs.


Par exemple, vous ne pouvez pas combiner les opérateurs « ! » et > pour former
l'opérateur !>. .

Syntaxe

!boolean_expression

Arguments
boolean_expression
Toute expression valide qui s'évalue à une valeur booléenne. Pour plus d’informations,
consultez Types de données Integration Services.

Types des résultats


DT_BOOL

Remarques
Le tableau suivant indique le résultat de l'opération « ! » .

Expression booléenne initiale Après application de l'opérateur « ! » operator

true FALSE
Expression booléenne initiale Après application de l'opérateur « ! » operator

NULL NULL

false true

Exemples d'expressions
L’exemple suivant donne la valeur FALSE si la colonne Color a pour valeur « red ».

!(Color == "red")

L’exemple suivant donne la valeur TRUE si la valeur de la variable MonthNumber et celle


de l’entier qui représente le mois actuel sont identiques. Pour plus d’informations,
consultez MONTH (expression SSIS) et GETDATE (expression SSIS).

!(@MonthNumber != MONTH(GETDATE())

Voir aussi
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
| (OR inclusive au niveau du bit)
(expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Effectue une opération OR au niveau du bit avec deux valeurs entières. Cette fonction
compare chaque bit de son premier opérande au bit correspondant de son second
opérande. Si l'un des deux bits a pour valeur 1, le bit obtenu correspondant a pour
valeur 1. Sinon, il a pour valeur zéro (0).

Les deux conditions doivent être de type de données signed integer ou unsigned
integer.

Syntaxe

integer_expression1 | integer_expression2

Arguments
integer_expression1, integer_expression2
Toute expression valide de type de données signed integer ou unsigned integer. Pour
plus d’informations, consultez Types de données Integration Services.

Types des résultats


Déterminés par les types de données des deux arguments. Pour plus d’informations,
consultez Types de données Integration Services dans les expressions.

Remarques
Si l'une des deux conditions est NULL, le résultat de l'expression est NULL.

Exemples d'expressions
L’exemple suivant effectue une opération OR inclusive au niveau du bit entre les
variables NumberA et NumberB. La variableNumberA contient la valeur 3 (00000011) et
la variable NumberB contient la valeur 9 (00001001).

@NumberA | @NumberB

L'expression renvoie la valeur 11 (00001011).

00000011

00001001

-----------

00001011

L’exemple suivant effectue une opération OR inclusive au niveau du bit entre les
colonnes ReorderPoint et SafetyStockLevel .

ReorderPoint | SafetyStockLevel

Si la colonne ReorderPoint contient la valeur 10 et la colonne SafetyStockLevel la valeur


8, l’expression renvoie la valeur 10 (00001010).

00001010

00001000

-----------

00001010

L'exemple suivant effectue une opération OR inclusive au niveau du bit entre deux
entiers.

3 | 5

L'expression renvoie la valeur 7 (00000111).

00000011
00000101

-----------

00000111

Voir aussi
|| (OU logique) (expression SSIS)
^ (OR exclusif au niveau du bit) (expression SSIS)
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
^ (OR exclusif au niveau du bit)
(expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Effectue une opération OR exclusive au niveau du bit avec deux valeurs entières. Cette
fonction compare chaque bit de son premier opérande au bit correspondant de son
second opérande. Si un bit a pour valeur 0 et que l'autre a pour valeur 1, le bit obtenu
correspondant a pour valeur 1. Si les deux bits ont pour valeur 0 ou 1, le bit obtenu
correspondant a pour valeur 0.

Les deux conditions doivent être de type de données signed integer ou unsigned
integer.

Syntaxe

integer_expression1 ^ integer_expression2

Arguments
integer_expression1, integer_expression2
Toute expression valide de type de données signed integer ou unsigned integer. Pour
plus d’informations, consultez Types de données Integration Services.

Types des résultats


Déterminés par les types de données des deux arguments. Pour plus d’informations,
consultez Types de données Integration Services dans les expressions.

Remarques
Si l'une des deux conditions est NULL, le résultat de l'expression est NULL.
Exemples d'expressions
L’exemple suivant effectue une opération OR exclusive au niveau du bit entre les
variables NumberA et NumberB. La variableNumberA contient la valeur 3 (00000011) et
la variable NumberB contient la valeur 7 (00000111).

@NumberA ^ @NumberB

L'expression renvoie la valeur 4 (00000100).

00000011

00000111

-----------

00000100

L’exemple suivant effectue une opération OR exclusive au niveau du bit entre les
colonnes ReorderPoint et SafetyStockLevel .

ReorderPoint ^ SafetyStockLevel

Si la colonne ReorderPoint contient la valeur 10 et la colonne SafetyStockLevel la valeur


8, l’expression renvoie la valeur 2 (00000010).

00001010

00001000

-----------

00000010

L'exemple suivant effectue une opération OR exclusive au niveau du bit entre deux
entiers.

3 ^ 5
L'expression renvoie la valeur 6 (00000110).

00000011

00000101

-----------

00000110

Voir aussi
|| (OU logique) (expression SSIS)
| (OR inclusive au niveau du bit) (expression SSIS)
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
& (AND au niveau du bit) (expression
SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Effectue une opération AND au niveau du bit avec deux valeurs entières. Cette fonction
compare chaque bit de son premier opérande au bit correspondant de son second
opérande. Si les deux bits ont pour valeur 1, le bit obtenu correspondant a pour valeur
1. Sinon, il a pour valeur 0.

Les deux conditions doivent être ou de type signed integer ou de type unsigned integer.

Syntaxe

integer_expression1 & integer_expression2

Arguments
integer_expression1, integer_expression2
Toute expression valide de type de données signed integer ou unsigned integer. Pour
plus d’informations, consultez Types de données Integration Services.

Types des résultats


Déterminés par les types de données des deux arguments. Pour plus d’informations,
consultez Types de données Integration Services dans les expressions.

Remarques
Si l'une des deux conditions est NULL, le résultat de l'expression est NULL.

Exemples d'expressions
L’exemple suivant effectue une opération AND au niveau du bit entre les colonnes
NumberA et NumberB. La colonneNumberA contient la valeur 3 (0000011) et la
colonne NumberB contient la valeur 7 (00000111).

NumberA & NumberB

L'expression renvoie la valeur 3 (00000011).

00000011

00000111

-----------

00000011

L’exemple suivant effectue une opération AND au niveau du bit entre les colonnes
ReorderPoint et SafetyStockLevel .

ReorderPoint & SafetyStockLevel

Si la colonne ReorderPoint contient la valeur 10 et la colonne SafetyStockLevel la valeur


8, l’expression prend la valeur 8 (00001000).

00001010

00001000

-----------

00001000

L'exemple suivant effectue une opération AND au niveau du bit entre deux entiers.

3 & 5

L'expression renvoie la valeur 1 (00000001).

00000011
00000101

-----------

00000001

Voir aussi
&& (AND logique) (Expression SSIS)
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
~ (NOT au niveau du bit) (expression
SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Effectue une négation au niveau du bit d'un entier. Cet opérateur est applicable aux
types de données entier signé et non signé.

Syntaxe

~integer_expression

Arguments
integer_expression
Toute expression valide d'un type de données integer. integer_expression est un nombre
entier transformé en nombre binaire pour l’opération au niveau du bit. Pour plus
d’informations, consultez Types de données Integration Services.

Types des résultats


Retourne le type de données integer_expression.

Notes
None

Exemples d'expressions
L'exemple suivant réalise une opération NOT au niveau du bit ( ~ ) sur le nombre 170
(0000 0000 1010 1010). Le nombre est un entier signé.
~ 170

L'expression renvoie la valeur -170 (1111111101010101).

0000000010101010

----------------------

1111111101010101

Voir aussi
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
== (Égal à) (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Effectue une comparaison pour déterminer si deux expressions sont égales. L'évaluateur
d'expression convertit automatiquement de nombreux types de données avant de
réaliser la comparaison. Pour plus d’informations, consultez Types de données
Integration Services dans les expressions.

Toutefois, pour certains types de données, il est nécessaire que l'expression contienne
une conversion explicite afin qu'elle puisse être évaluée correctement. Pour plus
d’informations sur les casts valides entre types de données, consultez Cast (Expression
SSIS).

Syntaxe

expression1 == expression2

Arguments
expression1, expression2
Peut être toute expression valide.

Types des résultats


DT_BOOL

Remarques
Si l'une des expressions de la comparaison est NULL, le résultat de la comparaison est
NULL. Si les deux expressions sont NULL, le résultat est NULL.

Le jeu d’expressions, expression1 et expression2, doit suivre une des règles suivantes :
Numérique : expression1 et expression2 doivent toutes deux être d’un type de
données numérique. L’intersection des types de données doit être un type de
données numérique, comme le spécifient les règles relatives aux conversions
numériques implicites effectuées par l’évaluateur d’expression. L'intersection des
deux types de données numériques ne peut pas être NULL. Pour plus
d’informations, consultez Types de données Integration Services dans les
expressions.

Caractère : expression1 et expression2 doivent toutes deux s’évaluer à un type de


données DT_STR ou DT_WSTR. Les deux expressions peuvent avoir une valeur de
types de données chaîne différents.

7 Notes

Les comparaisons de chaîne respectent la casse, les accents, le jeu de


caractères Kana et la largeur.

Date, Heure ou Date/Heure : expression1 et expression2 doivent toutes deux


s’évaluer à un des types de données suivants : DT_DBDATE, DT_DATE, DT_DBTIME,
DT_DBTIME2, DT_DBTIMESTAMP, DT_DBTIMESTAMP2, DT_DBTIMESTAPMOFFSET ou
DT_FILETIME.

7 Notes

Le système ne prend pas en charge les comparaisons entre une expression qui
correspond à un type de données heure et une expression qui correspond à
un type de données date ou date/heure. Le système génère alors une erreur.

Lors de la comparaison des expressions, le système applique les règles de


conversion suivantes dans l'ordre indiqué :

Lorsque les deux expressions correspondent au même type de données, une


comparaison de ce type de données est effectuée.

Si une expression est d'un type de données DT_DBTIMESTAMPOFFSET, l'autre


expression est implicitement convertie en DT_DBTIMESTAMPOFFSET et une
comparaison DT_DBTIMESTAMPOFFSET est effectuée. Pour plus d’informations,
consultez Types de données Integration Services dans les expressions.

Si une expression est d'un type de données DT_DBTIMESTAMP2, l'autre


expression est implicitement convertie en DT_DBTIMESTAMP2 et une
comparaison DT_DBTIMESTAMP2 est effectuée.
Si une expression est d'un type de données DT_DBTIME2, l'autre expression est
implicitement convertie en DT_DBTIME2 et une comparaison DT_DBTIME2 est
effectuée.

Si une expression est d'un type autre que DT_DBTIMESTAMPOFFSET,


DT_DBTIMESTAMP2 ou DT_DBTIME2, les expressions sont converties en type de
données DT_DBTIMESTAMP avant leur comparaison.

Lors de la comparaison des expressions, le système émet les hypothèses suivantes :

Si chaque expression est d'un type de données qui inclut des fractions de
seconde, le système suppose que le type de données avec le moins grand
nombre de chiffres pour les fractions de seconde inclut des zéros pour les
chiffres restants.

Si chaque expression est d'un type de données date, mais qu'une seule a un
décalage de fuseau horaire, le système suppose que le type de données date
sans le décalage de fuseau horaire est exprimé en temps universel coordonné
(UTC).

Logique : expression1 et expression2 doivent toutes deux s’évaluer à une valeur


booléenne.

GUID : expression1 et expression2 doivent toutes deux s’évaluer au type de


données DT_GUID.

Binaire : expression1 et expression2 doivent toutes deux s’évaluer au type de


données DT_BYTES.

BLOB : expression1 et expression2 doivent toutes deux s’évaluer au même type de


données BLOB (Binary Large Object Block) : DT_TEXT, DT_NTEXT ou DT_IMAGE.

Pour plus d'informations sur les types de données, consultez Integration Services Data
Types.

Exemples d'expressions
L'exemple suivant renvoie la valeur TRUE si la date actuelle est le 4 juillet 2003. Pour plus
d’informations, consultez GETDATE (Expression SSIS).

"7/4/2003" == GETDATE()

L’exemple suivant retourne la valeur TRUE si la valeur de la colonne ListPrice est 500.
ListPrice == 500

Cet exemple utilise la variable LPrice. Il retourne la valeur TRUE si la valeur de la variable
LPrice est 500. Le type de données de la variable doit être numérique pour permettre
l'analyse correcte de l'expression.

@LPrice == 500

Voir aussi
!= (Différent de) (expression SSIS)
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
!= (Différent de) (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Effectue une comparaison pour déterminer si deux expressions de types de données


compatibles sont différentes. L'évaluateur d'expression convertit automatiquement de
nombreux types de données avant de réaliser la comparaison.

Toutefois, pour certains types de données, il est nécessaire que l'expression contienne
une conversion explicite afin qu'elle puisse être évaluée correctement. Pour plus
d’informations sur les casts valides entre types de données, consultez Cast (Expression
SSIS).

Syntaxe

expression1 != expression2

Arguments
expression1, expression2
Peut être toute expression valide.

Types des résultats


DT_BOOL

Remarques
Si l'une des expressions de la comparaison est NULL, le résultat de la comparaison est
NULL. Si les deux expressions sont NULL, le résultat est NULL.

Le jeu d’expressions, expression1 et expression2, doit suivre une des règles suivantes :

Numérique : expression1 et expression2 doivent toutes deux être d’un type de


données numérique. L’intersection des types de données doit être un type de
données numérique, comme le spécifient les règles relatives aux conversions
numériques implicites effectuées par l’évaluateur d’expression. L'intersection des
deux types de données numériques ne peut pas être NULL. Pour plus
d’informations, consultez Types de données Integration Services dans les
expressions.

Caractère : expression1 et expression2 doivent toutes deux s’évaluer à un type de


données DT_STR ou DT_WSTR. Les deux expressions peuvent avoir une valeur de
types de données chaîne différents.

7 Notes

Les comparaisons de chaîne respectent la casse, les accents, le jeu de


caractères Kana et la largeur.

Date, Heure ou Date/Heure : expression1 et expression2 doivent toutes deux


s’évaluer à un des types de données suivants : DT_DBDATE, DT_DATE, DT_DBTIME,
DT_DBTIME2, DT_DBTIMESTAMP, DT_DBTIMESTAMP2, DT_DBTIMESTAPMOFFSET ou
DT_FILETIME.

7 Notes

Le système ne prend pas en charge les comparaisons entre une expression qui
correspond à un type de données heure et une expression qui correspond à
un type de données date ou date/heure. Le système génère alors une erreur.

Lors de la comparaison des expressions, le système applique les règles de


conversion suivantes dans l'ordre indiqué :

Lorsque les deux expressions correspondent au même type de données, une


comparaison de ce type de données est effectuée.

Si une expression est d'un type de données DT_DBTIMESTAMPOFFSET, l'autre


expression est implicitement convertie en DT_DBTIMESTAMPOFFSET et une
comparaison DT_DBTIMESTAMPOFFSET est effectuée. Pour plus d’informations,
consultez Types de données Integration Services dans les expressions.

Si une expression est d'un type de données DT_DBTIMESTAMP2, l'autre


expression est implicitement convertie en DT_DBTIMESTAMP2 et une
comparaison DT_DBTIMESTAMP2 est effectuée.
Si une expression est d'un type de données DT_DBTIME2, l'autre expression est
implicitement convertie en DT_DBTIME2 et une comparaison DT_DBTIME2 est
effectuée.

Si une expression est d'un type autre que DT_DBTIMESTAMPOFFSET,


DT_DBTIMESTAMP2 ou DT_DBTIME2, les expressions sont converties en type de
données DT_DBTIMESTAMP avant leur comparaison.

Lors de la comparaison des expressions, le système émet les hypothèses suivantes :

Si chaque expression est d'un type de données qui inclut des fractions de
seconde, le système suppose que le type de données avec le moins grand
nombre de chiffres pour les fractions de seconde inclut des zéros pour les
chiffres restants.

Si chaque expression est d'un type de données date, mais qu'une seule a un
décalage de fuseau horaire, le système suppose que le type de données date
sans le décalage de fuseau horaire est exprimé en temps universel coordonné
(UTC).

Logique : expression1 et expression2 doivent toutes deux s’évaluer à une valeur


booléenne.

GUID : expression1 et expression2 doivent toutes deux s’évaluer au type de


données DT_GUID.

Binaire : expression1 et expression2 doivent toutes deux s’évaluer au type de


données DT_BYTES.

BLOB : expression1 et expression2 doivent toutes deux s’évaluer au même type de


données BLOB (Binary Large Object Block) : DT_TEXT, DT_NTEXT ou DT_IMAGE.

Pour plus d'informations sur les types de données, consultez Integration Services Data
Types.

Exemples d'expressions
L'exemple suivant renvoie la valeur TRUE uniquement si la date actuelle n'est pas le 4
juillet 2003. Pour plus d’informations, consultez GETDATE (Expression SSIS).

"7/4/2003" != GETDATE()
L’exemple suivant s’évalue à la valeur TRUE si la valeur de la colonne ListPrice n’est pas
500.

ListPrice != 500

Cet exemple utilise la variable LPrice. Il s’évalue à TRUE si la valeur de la variable LPrice
n’est pas 500. Le type de données de la variable doit être numérique pour permettre
l’analyse de l’expression.

@LPrice != 500

Voir aussi
== (Égal à) (expression SSIS)
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
> (Supérieur à) (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Effectue une comparaison pour déterminer si la première expression est supérieure à la


deuxième. L'évaluateur d'expression convertit automatiquement de nombreux types de
données avant de réaliser la comparaison.

7 Notes

Cet opérateur ne prend pas en charge les comparaisons qui utilisent les types de
données DT_TEXT, DT_NTEXT ou DT_IMAGE.

Toutefois, pour certains types de données, il est nécessaire que l'expression contienne
une conversion explicite afin qu'elle puisse être évaluée correctement. Pour plus
d’informations sur les casts valides entre types de données, consultez Cast (Expression
SSIS).

Syntaxe

expression1 > expression2

Arguments
expression1, expression2
Peut être toute expression valide. Les deux expressions doivent avoir des types de
données implicitement convertibles.

Types des résultats


DT_BOOL

Remarques
Si l'une des expressions de la comparaison est NULL, le résultat de la comparaison est
NULL. Si les deux expressions sont NULL, le résultat est NULL.

Le jeu d’expressions, expression1 et expression2, doit suivre une des règles suivantes :

Numérique : expression1 et expression2 doivent toutes deux être d’un type de


données numérique. L'intersection des types de données doit être de type de
données numérique, comme le spécifient les règles relatives aux conversions
numériques implicites effectuées par l'évaluateur d'expression. L'intersection des
deux types de données numériques ne peut pas être NULL. Pour plus
d’informations, consultez Types de données Integration Services dans les
expressions.

Caractère : expression1 et expression2 doivent toutes deux s’évaluer à un type de


données DT_STR ou DT_WSTR. Les deux expressions peuvent avoir une valeur de
types de données chaîne différents.

7 Notes

Les comparaisons de chaîne respectent la casse, les accents, le jeu de


caractères Kana et la largeur.

Date, Heure ou Date/Heure : expression1 et expression2 doivent toutes deux


s’évaluer à un des types de données suivants : DT_DBDATE, DT_DATE, DT_DBTIME,
DT_DBTIME2, DT_DBTIMESTAMP, DT_DBTIMESTAMP2, DT_DBTIMESTAPMOFFSET ou
DT_FILETIME.

7 Notes

Le système ne prend pas en charge les comparaisons entre une expression qui
correspond à un type de données heure et une expression qui correspond à
un type de données date ou date/heure. Le système génère alors une erreur.

Lors de la comparaison des expressions, le système applique les règles de


conversion suivantes dans l'ordre indiqué :

Lorsque les deux expressions correspondent au même type de données, une


comparaison de ce type de données est effectuée.

Si une expression est d'un type de données DT_DBTIMESTAMPOFFSET, l'autre


expression est implicitement convertie en DT_DBTIMESTAMPOFFSET et une
comparaison DT_DBTIMESTAMPOFFSET est effectuée. Pour plus d’informations,
consultez Types de données Integration Services dans les expressions.

Si une expression est d'un type de données DT_DBTIMESTAMP2, l'autre


expression est implicitement convertie en DT_DBTIMESTAMP2 et une
comparaison DT_DBTIMESTAMP2 est effectuée.

Si une expression est d'un type de données DT_DBTIME2, l'autre expression est
implicitement convertie en DT_DBTIME2 et une comparaison DT_DBTIME2 est
effectuée.

Si une expression est d'un type autre que DT_DBTIMESTAMPOFFSET,


DT_DBTIMESTAMP2 ou DT_DBTIME2, les expressions sont converties en type de
données DT_DBTIMESTAMP avant leur comparaison.

Lors de la comparaison des expressions, le système émet les hypothèses suivantes :

Si chaque expression est d'un type de données qui inclut des fractions de
seconde, le système suppose que le type de données avec le moins grand
nombre de chiffres pour les fractions de seconde inclut des zéros pour les
chiffres restants.

Si chaque expression est d'un type de données date, mais qu'une seule a un
décalage de fuseau horaire, le système suppose que le type de données date
sans le décalage de fuseau horaire est exprimé en temps universel coordonné
(UTC).

Pour plus d'informations sur les types de données, consultez Integration Services Data
Types.

Exemples d'expressions
L'exemple suivant renvoie la valeur TRUE si la date actuelle est antérieure au 4 juillet
2003. Pour plus d’informations, consultez GETDATE (Expression SSIS).

"7/4/2003" > GETDATE()

L’exemple suivant retourne la valeur TRUE si la valeur de la colonne ListPrice est


supérieure à 500.
ListPrice > 500

Cet exemple utilise la variable LPrice. Il retourne la valeur TRUE si la valeur de la variable
LPrice est supérieure à 500. Le type de données de la variable doit être numérique pour
permettre l'analyse de l'expression.

@LPrice > 500

Voir aussi
< (Inférieur à) (Expression SSIS)
>= (Supérieur ou égal à) (expression SSIS)
<= (Inférieur ou égal à) (Expression SSIS)
== (Égal à) (expression SSIS)
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
< (Inférieur à) (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Effectue une comparaison pour déterminer si la première expression est inférieure à la


deuxième. L'évaluateur d'expression convertit automatiquement de nombreux types de
données avant de réaliser la comparaison.

7 Notes

Cet opérateur ne prend pas en charge les comparaisons qui utilisent les types de
données DT_TEXT, DT_NTEXT ou DT_IMAGE.

Toutefois, pour certains types de données, il est nécessaire que l'expression contienne
une conversion explicite afin qu'elle puisse être évaluée correctement. Pour plus
d’informations sur les casts valides entre types de données, consultez Cast (Expression
SSIS).

Syntaxe

expression1 < expression2

Arguments
expression1, expression2
Peut être toute expression valide.

Types des résultats


DT_BOOL

Remarques
Si l'une des expressions de la comparaison est NULL, le résultat de la comparaison est
NULL. Si les deux expressions sont NULL, le résultat est NULL.

Le jeu d’expressions, expression1 et expression2, doit suivre une des règles suivantes :

Numérique : expression1 et expression2 doivent toutes deux être d’un type de


données numérique. L'intersection des types de données doit être de type de
données numérique, comme le spécifient les règles relatives aux conversions
numériques implicites effectuées par l'évaluateur d'expression. L'intersection des
deux types de données numériques ne peut pas être NULL. Pour plus
d’informations, consultez Types de données Integration Services dans les
expressions.

Caractère : expression1 et expression2 doivent toutes deux s’évaluer à un type de


données DT_STR ou DT_WSTR. Les deux expressions peuvent avoir une valeur de
types de données chaîne différents.

7 Notes

Les comparaisons de chaîne respectent la casse, les accents, le jeu de


caractères Kana et la largeur.

Date, Heure ou Date/Heure : expression1 et expression2 doivent toutes deux


s’évaluer à un des types de données suivants : DT_DBDATE, DT_DATE, DT_DBTIME,
DT_DBTIME2, DT_DBTIMESTAMP, DT_DBTIMESTAMP2, DT_DBTIMESTAPMOFFSET ou
DT_FILETIME.

7 Notes

Le système ne prend pas en charge les comparaisons entre une expression qui
correspond à un type de données heure et une expression qui correspond à
un type de données date ou date/heure. Le système génère alors une erreur.

Lors de la comparaison des expressions, le système applique les règles de


conversion suivantes dans l'ordre indiqué :

Lorsque les deux expressions correspondent au même type de données, une


comparaison de ce type de données est effectuée.

Si une expression est d'un type de données DT_DBTIMESTAMPOFFSET, l'autre


expression est implicitement convertie en DT_DBTIMESTAMPOFFSET et une
comparaison DT_DBTIMESTAMPOFFSET est effectuée. Pour plus d’informations,
consultez Types de données Integration Services dans les expressions.

Si une expression est d'un type de données DT_DBTIMESTAMP2, l'autre


expression est implicitement convertie en DT_DBTIMESTAMP2 et une
comparaison DT_DBTIMESTAMP2 est effectuée.

Si une expression est d'un type de données DT_DBTIME2, l'autre expression est
implicitement convertie en DT_DBTIME2 et une comparaison DT_DBTIME2 est
effectuée.

Si une expression est d'un type autre que DT_DBTIMESTAMPOFFSET,


DT_DBTIMESTAMP2 ou DT_DBTIME2, les expressions sont converties en type de
données DT_DBTIMESTAMP avant leur comparaison.

Lors de la comparaison des expressions, le système émet les hypothèses suivantes :

Si chaque expression est d'un type de données qui inclut des fractions de
seconde, le système suppose que le type de données avec le moins grand
nombre de chiffres pour les fractions de seconde inclut des zéros pour les
chiffres restants.

Si chaque expression est d'un type de données date, mais qu'une seule a un
décalage de fuseau horaire, le système suppose que le type de données date
sans le décalage de fuseau horaire est exprimé en temps universel coordonné
(UTC).

Pour plus d'informations sur les types de données, consultez Integration Services Data
Types.

Exemples d'expressions
L'exemple suivant renvoie la valeur TRUE si la date actuelle est ultérieure au 4 juillet
2003. Pour plus d’informations, consultez GETDATE (expression SSIS).

"7/4/2003" < GETDATE()

L’exemple suivant renvoie la valeur TRUE si la valeur de la colonne ListPrice est


inférieure à 500.
ListPrice < 500

Cet exemple utilise la variable LPrice. Il renvoie la valeur TRUE si la valeur de la variable
LPrice est inférieure à 500. Le type de données de la variable doit être numérique pour
permettre l'analyse de l'expression.

@LPrice < 500

Voir aussi
> (Supérieur à) (expression SSIS)
>= (Supérieur ou égal à) (expression SSIS)
<= (Inférieur ou égal à) (Expression SSIS)
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
>= (Supérieur ou égal à) (expression
SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Effectue une comparaison pour déterminer si la première expression est supérieure ou


égale à la deuxième. L'évaluateur d'expression convertit automatiquement de nombreux
types de données avant de réaliser la comparaison.

7 Notes

Cet opérateur ne prend pas en charge les comparaisons qui utilisent les types de
données DT_TEXT, DT_NTEXT ou DT_IMAGE.

Toutefois, pour certains types de données, il est nécessaire que l'expression contienne
une conversion explicite afin qu'elle puisse être évaluée correctement. Pour plus
d’informations sur les casts valides entre types de données, consultez Cast (Expression
SSIS).

7 Notes

Aucun espace ne sépare les deux caractères de cet opérateur.

Syntaxe

expression1 >= expression2

Arguments
expression1, expression2
Peut être toute expression valide.
Types des résultats
DT_BOOL

Remarques
Si l'une des expressions de la comparaison est NULL, le résultat de la comparaison est
NULL. Si les deux expressions sont NULL, le résultat est NULL.

Le jeu d’expressions, expression1 et expression2, doit suivre une des règles suivantes :

Numérique : expression1 et expression2 doivent toutes deux être d’un type de


données numérique. L'intersection des types de données doit être de type de
données numérique, comme le spécifient les règles relatives aux conversions
numériques implicites effectuées par l'évaluateur d'expression. L'intersection des
deux types de données numériques ne peut pas être NULL. Pour plus
d’informations, consultez Types de données Integration Services dans les
expressions.

Caractère : expression1 et expression2 doivent toutes deux s’évaluer à un type de


données DT_STR ou DT_WSTR. Les deux expressions peuvent avoir une valeur de
types de données chaîne différents.

7 Notes

Les comparaisons de chaîne respectent la casse, les accents, le jeu de


caractères Kana et la largeur.

Date, Heure ou Date/Heure : expression1 et expression2 doivent toutes deux


s’évaluer à un des types de données suivants : DT_DBDATE, DT_DATE, DT_DBTIME,
DT_DBTIME2, DT_DBTIMESTAMP, DT_DBTIMESTAMP2, DT_DBTIMESTAPMOFFSET ou
DT_FILETIME.

7 Notes

Le système ne prend pas en charge les comparaisons entre une expression qui
correspond à un type de données heure et une expression qui correspond à
un type de données date ou date/heure. Le système génère alors une erreur.

Lors de la comparaison des expressions, le système applique les règles de


conversion suivantes dans l'ordre indiqué :
Lorsque les deux expressions correspondent au même type de données, une
comparaison de ce type de données est effectuée.

Si une expression est d'un type de données DT_DBTIMESTAMPOFFSET, l'autre


expression est implicitement convertie en DT_DBTIMESTAMPOFFSET et une
comparaison DT_DBTIMESTAMPOFFSET est effectuée. Pour plus d’informations,
consultez Types de données Integration Services dans les expressions.

Si une expression est d'un type de données DT_DBTIMESTAMP2, l'autre


expression est implicitement convertie en DT_DBTIMESTAMP2 et une
comparaison DT_DBTIMESTAMP2 est effectuée.

Si une expression est d'un type de données DT_DBTIME2, l'autre expression est
implicitement convertie en DT_DBTIME2 et une comparaison DT_DBTIME2 est
effectuée.

Si une expression est d'un type autre que DT_DBTIMESTAMPOFFSET,


DT_DBTIMESTAMP2 ou DT_DBTIME2, les expressions sont converties en type de
données DT_DBTIMESTAMP avant leur comparaison.

Lors de la comparaison des expressions, le système émet les hypothèses suivantes :

Si chaque expression est d'un type de données qui inclut des fractions de
seconde, le système suppose que le type de données avec le moins grand
nombre de chiffres pour les fractions de seconde inclut des zéros pour les
chiffres restants.

Si chaque expression est d'un type de données date, mais qu'une seule a un
décalage de fuseau horaire, le système suppose que le type de données date
sans le décalage de fuseau horaire est exprimé en temps universel coordonné
(UTC).

Pour plus d'informations sur les types de données, consultez Integration Services Data
Types.

Exemples d'expressions
L'exemple suivant renvoie la valeur TRUE si la date actuelle est le 4 juillet 2003 ou une
date antérieure. Pour plus d’informations, consultez GETDATE (Expression SSIS).

"7/4/2003" >= GETDATE()


L’exemple suivant renvoie la valeur TRUE si la valeur de la colonne ListPrice est
supérieure ou égale à 500.

ListPrice >= 500

Cet exemple utilise la variable LPrice. Il renvoie la valeur TRUE si la valeur de la variable
LPrice est supérieure ou égale à 500. Le type de données de la variable doit être
numérique pour permettre l'analyse de l'expression.

@LPrice >= 500

Voir aussi
> (Supérieur à) (Expression SSIS)
< (Inférieur à) (Expression SSIS)
<= (Inférieur ou égal à) (Expression SSIS)
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
<= (Inférieur ou égal à) (expression
SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Effectue une comparaison pour déterminer si la première expression est inférieure ou


égale à la deuxième. L'évaluateur d'expression convertit automatiquement de nombreux
types de données avant de réaliser la comparaison.

7 Notes

Cet opérateur ne prend pas en charge les comparaisons qui utilisent les types de
données DT_TEXT, DT_NTEXT ou DT_IMAGE.

Toutefois, pour certains types de données, il est nécessaire que l'expression contienne
une conversion explicite afin qu'elle puisse être évaluée correctement. Pour plus
d’informations sur les casts valides entre types de données, consultez Cast (Expression
SSIS).

7 Notes

Aucun espace ne sépare les deux caractères de cet opérateur.

Syntaxe

expression1 <= expression2

Arguments
expression1, expression2
Peut être toute expression valide.
Types des résultats
DT_BOOL

Remarques
Si l'une des expressions de la comparaison est NULL, le résultat de la comparaison est
NULL. Si les deux expressions sont NULL, le résultat est NULL.

Le jeu d’expressions, expression1 et expression2, doit suivre une des règles suivantes :

Numérique : expression1 et expression2 doivent toutes deux être d’un type de


données numérique. L'intersection des types de données doit être de type de
données numérique, comme le spécifient les règles relatives aux conversions
numériques implicites effectuées par l'évaluateur d'expression. L'intersection des
deux types de données numériques ne peut pas être NULL. Pour plus
d’informations, consultez Types de données Integration Services dans les
expressions.

Caractère : expression1 et expression2 doivent toutes deux s’évaluer à un type de


données DT_STR ou DT_WSTR. Les deux expressions peuvent avoir une valeur de
types de données chaîne différents.

7 Notes

Les comparaisons de chaîne respectent la casse, les accents, le jeu de


caractères Kana et la largeur.

Date, Heure ou Date/Heure : expression1 et expression2 doivent toutes deux


s’évaluer à un des types de données suivants : DT_DBDATE, DT_DATE, DT_DBTIME,
DT_DBTIME2, DT_DBTIMESTAMP, DT_DBTIMESTAMP2, DT_DBTIMESTAPMOFFSET ou
DT_FILETIME.

7 Notes

Le système ne prend pas en charge les comparaisons entre une expression qui
correspond à un type de données heure et une expression qui correspond à
un type de données date ou date/heure. Le système génère alors une erreur.

Lors de la comparaison des expressions, le système applique les règles de


conversion suivantes dans l'ordre indiqué :
Lorsque les deux expressions correspondent au même type de données, une
comparaison de ce type de données est effectuée.

Si une expression est d'un type de données DT_DBTIMESTAMPOFFSET, l'autre


expression est implicitement convertie en DT_DBTIMESTAMPOFFSET et une
comparaison DT_DBTIMESTAMPOFFSET est effectuée. Pour plus d’informations,
consultez Types de données Integration Services dans les expressions.

Si une expression est d'un type de données DT_DBTIMESTAMP2, l'autre


expression est implicitement convertie en DT_DBTIMESTAMP2 et une
comparaison DT_DBTIMESTAMP2 est effectuée.

Si une expression est d'un type de données DT_DBTIME2, l'autre expression est
implicitement convertie en DT_DBTIME2 et une comparaison DT_DBTIME2 est
effectuée.

Si une expression est d'un type autre que DT_DBTIMESTAMPOFFSET,


DT_DBTIMESTAMP2 ou DT_DBTIME2, les expressions sont converties en type de
données DT_DBTIMESTAMP avant leur comparaison.

Lors de la comparaison des expressions, le système émet les hypothèses suivantes :

Si chaque expression est d'un type de données qui inclut des fractions de
seconde, le système suppose que le type de données avec le moins grand
nombre de chiffres pour les fractions de seconde inclut des zéros pour les
chiffres restants.

Si chaque expression est d'un type de données date, mais qu'une seule a un
décalage de fuseau horaire, le système suppose que le type de données date
sans le décalage de fuseau horaire est exprimé en temps universel coordonné
(UTC).

Pour plus d'informations sur les types de données, consultez Integration Services Data
Types.

Exemples d'expressions
L'exemple suivant renvoie la valeur TRUE si la date actuelle est le 4 juillet 2003 ou une
date ultérieure. Pour plus d’informations, consultez GETDATE (Expression SSIS).

"7/4/2003" <= GETDATE()


L’exemple suivant renvoie la valeur TRUE si la valeur de la colonne ListPrice est
inférieure ou égale à 500.

ListPrice <= 500

L’exemple suivant renvoie la valeur TRUE si la valeur de la variable LPrice est inférieure
ou égale à 500. Le type de données de LPrice doit être numérique pour permettre
l’analyse de l’expression.

@LPrice <= 500

Voir aussi
> (Supérieur à) (Expression SSIS)
< (Inférieur à) (Expression SSIS)
>= (Supérieur ou égal à) (expression SSIS)
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
? : (Conditionnel) (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie une des deux expressions selon l'évaluation d'une expression booléenne. Si
l'expression booléenne donne la valeur TRUE, la première expression est évaluée et le
résultat est le résultat de l'expression. Si l'expression booléenne donne la valeur FALSE,
la deuxième expression est évaluée et son résultat est le résultat de l'expression.

Syntaxe

boolean_expression?expression1:expression2

Arguments
boolean_expression
Expression valide qui renvoie TRUE, FALSE ou NULL.

expression1
Peut être toute expression valide.

expression2
Peut être toute expression valide.

Types des résultats


Type de données de expression1 ou de expression2.

Notes
Si l’argument expression_booléenne est évalué à NULL, le résultat de l’expression est
NULL. Si une expression sélectionnée, expression1 ou expression2 est NULL, le résultat
est NULL. Si une expression sélectionnée n'est pas NULL, mais que l'expression non
sélectionnée est NULL, le résultat est la valeur de l'expression sélectionnée.
Si expression1 et expression2 ont le même type de données, le résultat est de ce type de
données. Les règles supplémentaires suivantes s'appliquent aux types de résultats :

Le type de données DT_TEXT nécessite que expression1 et expression2 aient la


même page de codes.

La longueur d'un résultat dont le type de données est DT_BYTES correspond à la


longueur de l'argument le plus long.

L’ensemble d’expressions, expression1 et expression2, doit s’évaluer à des types de


données valides et être conforme à une des règles suivantes :

Numérique : expression1 et expression2 doivent toutes deux être d’un type de


données numérique. L'intersection des types de données doit être de type de
données numérique, comme le spécifient les règles relatives aux conversions
numériques implicites effectuées par l'évaluateur d'expression. L'intersection des
deux types de données numériques ne peut pas être NULL. Pour plus
d’informations, consultez Types de données Integration Services dans les
expressions.

Chaîne : expression1 et expression2 doivent toutes deux être d’un type de données
chaîne : DT_STR ou DT_WSTR. Les deux expressions peuvent avoir une valeur de
types de données chaîne différents. Le résultat a le type de données DT_WSTR et
une longueur équivalente à celle de l'argument le plus long.

Date, Heure ou Date/Heure : expression1 et expression2 doivent toutes deux


s’évaluer à un des types de données suivants : DT_DBDATE, DT_DATE, DT_DBTIME,
DT_DBTIME2, DT_DBTIMESTAMP, DT_DBTIMESTAMP2, DT_DBTIMESTAPMOFFSET ou
DT_FILETIME.

7 Notes

Le système ne prend pas en charge les comparaisons entre une expression qui
correspond à un type de données heure et une expression qui correspond à
un type de données date ou date/heure. Le système génère alors une erreur.

Lors de la comparaison des expressions, le système applique les règles de


conversion suivantes dans l'ordre indiqué :

Lorsque les deux expressions correspondent au même type de données, une


comparaison de ce type de données est effectuée.
Si une expression est d'un type de données DT_DBTIMESTAMPOFFSET, l'autre
expression est implicitement convertie en DT_DBTIMESTAMPOFFSET et une
comparaison DT_DBTIMESTAMPOFFSET est effectuée. Pour plus d’informations,
consultez Types de données Integration Services dans les expressions.

Si une expression est d'un type de données DT_DBTIMESTAMP2, l'autre


expression est implicitement convertie en DT_DBTIMESTAMP2 et une
comparaison DT_DBTIMESTAMP2 est effectuée.

Si une expression est d'un type de données DT_DBTIME2, l'autre expression est
implicitement convertie en DT_DBTIME2 et une comparaison DT_DBTIME2 est
effectuée.

Si une expression est d'un type autre que DT_DBTIMESTAMPOFFSET,


DT_DBTIMESTAMP2 ou DT_DBTIME2, les expressions sont converties en type de
données DT_DBTIMESTAMP avant leur comparaison.

Lors de la comparaison des expressions, le système émet les hypothèses suivantes :

Si chaque expression est d'un type de données qui inclut des fractions de
seconde, le système suppose que le type de données avec le moins grand
nombre de chiffres pour les fractions de seconde inclut des zéros pour les
chiffres restants.

Si chaque expression est d'un type de données date, mais qu'une seule a un
décalage de fuseau horaire, le système suppose que le type de données date
sans le décalage de fuseau horaire est exprimé en temps universel coordonné
(UTC).

Pour plus d'informations sur les types de données, consultez Integration Services Data
Types.

Exemples d'expressions
L'exemple suivant montre une expression qui selon une condition prend la valeur
savannah ou unknown .

@AnimalName == "Elephant"? "savannah": "unknown"

L’exemple suivant montre une expression qui fait référence une colonne ListPrice . La
colonneListPrice a le type de données DT_CY. L’expression multiplie selon une condition
la valeur de la colonne ListPrice par 0,2 ou 0,1.

ListPrice < 350.00 ? ListPrice * .2 : ListPrice * .1

Voir aussi
Priorités et associativité des opérateurs
Opérateurs (expression SSIS)
Fonctions (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le langage d'expression comprend un ensemble de fonctions utilisables dans les


expressions. Une expression peut utiliser une seule fonction mais, en règle générale, elle
combine des fonctions avec des opérateurs et utilise plusieurs fonctions.

Les fonctions peuvent être classées selon les regroupements suivants :

les fonctions mathématiques, qui effectuent des calculs à partir de valeurs d'entrée
numériques fournies en tant que paramètres et qui renvoient des valeurs
numériques ;

les fonctions de chaîne, qui effectuent des opérations sur des valeurs d'entrée
hexadécimales ou de chaîne et qui renvoient une valeur numérique ou de chaîne ;

les fonctions de date et d'heure, qui effectuent des opérations sur des valeurs de
date et d'heure et qui renvoient des valeurs numériques, de chaîne ou de date et
d'heure ;

les fonctions système, qui renvoient des informations sur une expression.

Le langage d'expression dispose des fonctions mathématiques suivantes.

Fonction Description

ABS (expression SSIS) Renvoie la valeur absolue d'une expression numérique.

EXP (expression SSIS) Renvoie l'exposant de base e de l'expression spécifiée.

CEILING (expression Renvoie le plus petit entier qui est supérieur ou égal à une expression
SSIS) numérique.

FLOOR (expression Renvoie l'entier le plus élevé inférieur ou égal à une expression
SSIS) numérique.

LN (expression SSIS) Renvoie le logarithme népérien d'une expression numérique.

LOG (expression SSIS) Renvoie le logarithme de base 10 d'une expression numérique.

POWER (expression Renvoie le résultat de l'élévation d'une expression numérique à une


SSIS) puissance donnée.

ROUND (expression Renvoie une expression numérique, arrondie à la longueur ou à la


SSIS) précision indiquée. .
Fonction Description

SIGN (expression Renvoie le signe positif (+), négatif (-) ou zéro (0) d'une expression
SSIS) numérique.

SQUARE (expression Renvoie le carré d'une expression numérique.


SSIS)

SQRT (expression Renvoie la racine carrée d'une expression numérique.


SSIS)

L'évaluateur d'expression dispose des fonctions de chaîne suivantes.

Fonction Description

CODEPOINT Renvoie la valeur du code Unicode du caractère placé à l'extrême gauche d'une
(expression expression de caractères.
SSIS)

FINDSTRING Renvoie l'index de base un de l'occurrence spécifiée d'une chaîne de caractères


(expression dans une expression.
SSIS)

HEX (expression Renvoie une chaîne représentant la valeur hexadécimale d'un entier.
SSIS)

LEN (expression Renvoie le nombre de caractères d'une expression de caractères.


SSIS)

LEFT Renvoie le nombre de caractères spécifié en commençant par la partie la plus à


(expression gauche d'une expression de caractères donnée.
SSIS)

LOWER Renvoie une expression de caractères après avoir transformé les caractères
(expression majuscules en caractères minuscules.
SSIS)

LTRIM Renvoie une chaîne de caractères après avoir supprimé les espaces de début.
(expression
SSIS)

REPLACE Renvoie une expression de caractères après le remplacement d'une chaîne


(expression située dans l'expression par une autre chaîne ou une chaîne vide.
SSIS)

REPLICATE Renvoie une expression de caractères, répliquée un nombre de fois spécifié.


(expression
SSIS)
Fonction Description

REVERSE Renvoie une expression de caractères en ordre inverse.


(expression
SSIS)

RIGHT Renvoie le nombre de caractères spécifié en commençant par la partie la plus à


(expression droite d'une expression de caractères donnée.
SSIS)

RTRIM Renvoie une chaîne de caractères après la suppression des espaces de fin.
(expression
SSIS)

SUBSTRING Renvoie une partie d'une expression de type caractère.


(expression
SSIS)

TRIM Renvoie une chaîne de type caractère après la suppression des espaces de
(expression début et de fin.
SSIS)

UPPER Renvoie une chaîne de caractères après avoir converti les caractères minuscules
(expression en caractères majuscules.
SSIS)

L'évaluateur d'expression dispose des fonctions de date et d'heure suivantes.

Fonction Description

DATEADD Renvoie une nouvelle valeur DT_DBTIMESTAMP en ajoutant un intervalle de


(expression SSIS) date ou de temps à une date spécifiée.

DATEDIFF Renvoie le nombre de limites de date et d'heure traversées entre deux


(expression SSIS) dates données.

DATEPART Renvoie un entier représentant une partie d'une date.


(expression SSIS)

DAY (expression Renvoie un entier représentant le jour de la date spécifiée.


SSIS)

GETDATE Renvoie la date actuelle du système.


(expression SSIS)

GETUTCDATE Renvoie la date actuelle du système en temps UTC (Universal Time


(expression SSIS) Coordinate ou Greenwich Mean Time).

MONTH Renvoie un entier représentant le mois de la date spécifiée.


(expression SSIS)
Fonction Description

YEAR (expression Renvoie un entier représentant l'année de la date spécifiée.


SSIS)

L'évaluateur d'expression dispose des fonctions NULL suivantes.

Fonction Description

ISNULL (expression Renvoie une valeur booléenne basée sur le test du caractère NULL d'une
SSIS) expression.

NULL (expression Renvoie une valeur NULL d'un type de données demandé.
SSIS)

Bien qu'indiqués en caractères majuscules, les noms d'expression ne respectent pas la


casse. Par exemple, vous pouvez utiliser aussi bien « null » que « NULL ».

Voir aussi
Opérateurs (expression SSIS)
Exemples d'expressions Integration Services avancées
Expressions Integration Services (SSIS)
ABS (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie la valeur absolue d'une expression numérique.

Syntaxe

ABS(numeric_expression)

Arguments
numeric_expression
Expression numérique signée ou non signée.

Types des résultats


Type de données de l'expression numérique envoyée à la fonction.

Remarques
La fonction ABS renvoie un résultat NULL si l'argument est NULL.

Exemples d'expressions
Les exemples suivants appliquent la fonction ABS à un nombre positif et à un nombre
négatif. Tous les deux renvoient le résultat 1,23.

ABS(-1.23)
ABS(1.23)

L'exemple suivant applique la fonction ABS à une expression qui calcule la différence
entre les valeurs des variables HighTemperature et LowTempature.
ABS(@HighTemperature - @LowTemperature)

Voir aussi
Fonctions (expression SSIS)
CEILING (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie le plus petit entier qui est supérieur ou égal à une expression numérique.

Syntaxe

CEILING(numeric_expression)

Arguments
numeric_expression
Expression numérique valide.

Types des résultats


Type de données de l'expression numérique envoyée à la fonction.

Remarques
La fonction CEILING renvoie un résultat NULL si l'argument est NULL.

Exemples d'expressions
Les exemples suivants appliquent la fonction CEILING à une valeur successivement
positive, négative et nulle.

CEILING(123.74)

Retourne 124.00
CEILING(-124.27)

Retourne -124.00

CEILING(0.00)

Renvoie 0,00

Voir aussi
FLOOR (expression SSIS)
Fonctions (expression SSIS)
CODEPOINT (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie le point de code Unicode du caractère placé à l'extrême gauche d'une


expression de caractères.

Syntaxe

CODEPOINT(character_expression)

Arguments
expression_caractère
Expression de type caractère dont le caractère situé à l'extrême gauche sera évalué.

Types des résultats


DT_UI2

Remarques
character_expression doit être du type de données DT_WSTR.

CODEPOINT retourne un résultat Null si character_expression est Null ou est une chaîne
vide.

Exemples d'expressions
L'exemple suivant utilise un littéral de chaîne. Le résultat obtenu est 77, soit le point de
code Unicode de M.

CODEPOINT("Mountain Bike")
L'exemple suivant utilise une variable. Si Name a pour valeur « Tout-terrain », le résultat
obtenu est 84, soit le point de code Unicode de T.

CODEPOINT(@Name)

Voir aussi
Fonctions (expression SSIS)
DATEADD (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie une nouvelle valeur DT_DBTIMESTAMP après l'ajout d'un nombre qui
représente un intervalle de date ou d'heure à la partie de date spécifiée d'une date. Le
paramètre numérique doit s'évaluer à un entier et le paramètre de date doit s'évaluer à
une date valide.

Syntaxe

DATEADD(datepart, number, date)

Arguments
datepart
Paramètre spécifiant la partie de la date à laquelle ajouter un nombre.

number
Valeur utilisée pour incrémenter datepart. La valeur doit être une valeur entière connue
au moment de l'analyse de l'expression.

date
Expression renvoyant une date valide ou une chaîne dans un format de date.

Types des résultats


DT_DBTIMESTAMP

Notes
Le tableau suivant décrit les parties de date et les abréviations reconnues par
l'évaluateur d'expression. Les noms de partie de date ne respectent pas la casse.

partie de date Abréviations


partie de date Abréviations

Year yy, yyyy

Quarter (Trimestre) qq, q

Month mm, m

Jour de l'année dy, y

Jour dd, d

Semaine wk, ww

Jour de la semaine dw, w

Heure Hh

Minute mi, n

Seconde ss, s

Milliseconde Ms

L’argument nombre doit être disponible quand l’expression est analysée. Cet argument
peut être une constante ou une variable. Vous ne pouvez pas utiliser des valeurs de
colonne car celles-ci ne sont pas connues lorsque l'expression est analysée.

L’argument datepart doit être placé entre guillemets.

Un littéral de date doit être explicitement converti dans l'un des types de données date.
Pour plus d’informations, consultez Types de données Integration Services.

La fonction DATEADD renvoie un résultat NULL si l'argument est NULL.

Des erreurs se produisent dans les cas suivants : une date n'est pas valide, l'unité de
date ou d'heure n'est pas une chaîne ou l'incrément n'est pas un entier statique.

Exemples d'expressions SSIS


L'exemple suivant ajoute un mois à la date actuelle.

DATEADD("Month", 1,GETDATE())

L’exemple suivant ajoute 21 jours aux dates de la colonne ModifiedDate .


DATEADD("day", 21, ModifiedDate)

L'exemple suivant ajoute 2 années à une date littérale.

DATEADD("yyyy", 2, (DT_DBTIMESTAMP)"8/6/2003")

Voir aussi
DATEDIFF (expression SSIS)
DATEPART (expression SSIS)
DAY (expression SSIS)
MONTH (expression SSIS)
YEAR (expression SSIS)
Fonctions (expression SSIS)
DATEDIFF (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie le nombre de limites de date et d'heure traversées entre deux dates données.
Le paramètre datepart identifie quelles limites de date et d’heure il faut comparer.

Syntaxe

DATEDIFF(datepart, startdate, endate)

Arguments
datepart
Paramètre qui indique la partie de la date à comparer et pour laquelle une valeur doit
être retournée.

startdate
Date de début de l'intervalle.

endate
Date de fin de l'intervalle.

Types des résultats


DT_I4

Remarques
Le tableau suivant décrit les parties de date et les abréviations reconnues par
l'évaluateur d'expression.

partie de date Abréviations

Year yy, yyyy


partie de date Abréviations

Quarter (Trimestre) qq, q

Month mm, m

Jour de l'année dy, y

Jour dd, d

Semaine wk, ww

Jour de la semaine dw, w

Heure Hh

Minute mi, n

Seconde ss, s

Milliseconde Ms

La fonction DATEDIFF renvoie un résultat NULL si un argument est NULL.

Un littéral de date doit être explicitement converti dans l'un des types de données date.
Pour plus d’informations, consultez Types de données Integration Services.

Une erreur se produit dans les cas suivants : une date n'est pas valide, l'unité de date ou
d'heure n'est pas une chaîne, la date de début n'est pas une date ou la date de fin n'est
pas une date.

Si la date de fin est antérieure à la date de début, la fonction renvoie un nombre négatif.
Si les dates de début et de fin sont identiques ou qu'elles appartiennent au même
intervalle, la fonction renvoie zéro.

Exemples d'expressions SSIS


L'exemple suivant calcule le nombre de jours entre deux littéraux de date. Si le format
de la date est « mm/jj/aaaa », la fonction renvoie 7.

DATEDIFF("dd", (DT_DBTIMESTAMP)"8/1/2003", (DT_DBTIMESTAMP)"8/8/2003")

L'exemple suivant renvoie le nombre de mois entre un littéral de date et la date actuelle.
DATEDIFF("mm", (DT_DBTIMESTAMP)"8/1/2003",GETDATE())

L’exemple suivant retourne le nombre de semaines entre la date de la colonne


ModifiedDate et la variable YearEndDate . Si la variable YearEndDate est du type de
données date , aucune conversion explicite n’est nécessaire.

DATEDIFF("Week", ModifiedDate,@YearEndDate)

Voir aussi
DATEADD (expression SSIS)
DATEPART (expression SSIS)
DAY (expression SSIS)
MONTH (expression SSIS)
YEAR (expression SSIS)
Fonctions (expression SSIS)
DATEPART (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie un entier représentant une partie d'une date.

Syntaxe

DATEPART(datepart, date)

Arguments
datepart
Paramètre qui indique la partie de date pour laquelle il faut retourner une nouvelle
valeur.

date
Expression renvoyant une date valide ou une chaîne dans un format de date.

Types des résultats


DT_I4

Remarques
La fonction DATEPART renvoie un résultat NULL si l'argument est NULL.

Un littéral de date doit être explicitement converti dans l'un des types de données date.
Pour plus d’informations, consultez Types de données Integration Services.

Le tableau suivant décrit les parties de date et les abréviations reconnues par
l'évaluateur d'expression. Les noms de partie de date ne respectent pas la casse.

partie de date Abréviations

Year yy, yyyy


partie de date Abréviations

Quarter (Trimestre) qq, q

Month mm, m

Jour de l'année dy, y

Jour dd, d

Semaine wk, ww

Jour de la semaine dw

Heure Hh, hh, HH

Minute mi, n

Seconde ss, s

Milliseconde Ms

Exemples d'expressions SSIS


L'exemple suivant renvoie l'entier qui représente le mois dans un littéral de date. Si le
format de la date est « mm/jj/aaaa », l'exemple renvoie 11.

DATEPART("month", (DT_DBTIMESTAMP)"11/04/2002")

L’exemple suivant retourne l’entier qui représente le jour dans la colonne ModifiedDate
.

DATEPART("dd", ModifiedDate)

L'exemple suivant renvoie l'entier qui représente l'année de la date actuelle.

DATEPART("yy",GETDATE())

Ces exemples renvoient tous à 19.


DATEPART("HH", (DT_DATE) "2020-09-02 19:24" )
DATEPART("hh", (DT_DATE) "2020-09-02 19:24" )
DATEPART("Hh", (DT_DATE) "2020-09-02 19:24" )

Voir aussi
DATEADD (expression SSIS)
DATEDIFF (expression SSIS)
DAY (expression SSIS)
MONTH (expression SSIS)
YEAR (expression SSIS)
Fonctions (expression SSIS)
DAY (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie un entier qui représente la partie jour d'une date.

Syntaxe

DAY(date)

Arguments
date
Expression renvoyant une date valide ou une chaîne dans un format de date.

Types des résultats


DT_I4

Remarques
La fonction DAY renvoie un résultat NULL si l'argument est NULL.

Un littéral de date doit être explicitement converti dans l'un des types de données date.
Pour plus d’informations, consultez Types de données Integration Services.

7 Notes

La validation de l'expression échoue lorsqu'un littéral de date est explicitement


converti en un des types de données de date suivants : DT_DBTIMESTAMPOFFSET
et DT_DBTIMESTAMP2.

L'utilisation de la fonction DAY est plus directe mais équivalente à celle de la fonction
DATEPART("Day", date).
Exemples d'expressions
Cet exemple renvoie le nombre représentant le jour dans un littéral de date. Si le format
de la date est « mm/jj/aaaa », l'exemple renvoie 23.

DAY((DT_DBTIMESTAMP)"11/23/2002")

L’exemple suivant retourne l’entier qui représente le jour dans la colonne ModifiedDate
.

DAY(ModifiedDate)

L'exemple suivant renvoie l'entier qui représente le jour de la date actuelle.

DAY(GETDATE())

Voir aussi
DATEADD (expression SSIS)
DATEDIFF (expression SSIS)
DATEPART (expression SSIS)
MONTH (expression SSIS)
YEAR (expression SSIS)
Fonctions (expression SSIS)
EXP (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie l'exposant en base e d'une expression numérique. La fonction EXP est


complémentaire de l'action LN et est parfois appelée « antilogarithme ».

Syntaxe

EXP(numeric_expression)

Arguments
numeric_expression
Expression numérique valide.

Types des résultats


DT_R8

Notes
L'expression numérique est convertie vers le type de données DT_R8 avant le calcul du
l'exposant. Pour plus d’informations, consultez Types de données Integration Services.

Le résultat obtenu est toujours un nombre positif.

Exemples d'expressions
Les exemples suivants appliquent la fonction EXP à des valeurs positive, négative, ainsi
qu'à la valeur zéro.

EXP(74)
Renvoie 1,373382979540176E+32.

EXP(-27)

Renvoie 1,879528816539083E-12.

EXP(0)

Renvoie 1.

Voir aussi
LOG (expression SSIS)
Fonctions (expression SSIS)
FINDSTRING (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie l'emplacement de l'occurrence spécifiée d'une chaîne dans une expression de


caractères. Le résultat obtenu est l'index de base un de l'occurrence. Le paramètre de
chaîne doit s'évaluer à une expression de caractères et le paramètre de l'occurrence doit
s'évaluer à un entier. Si la chaîne est introuvable, la valeur retournée est 0. Si la chaîne se
produit moins souvent que l'argument de l'occurrence ne le spécifie, la valeur retournée
est 0.

Syntaxe

FINDSTRING(character_expression, searchstring, occurrence)

Arguments
expression_caractère
Chaîne de caractères dans laquelle la recherche doit être effectuée.

searchstring
Chaîne de caractères à rechercher.

occurrence
Entier signé ou non signé spécifiant l’occurrence de searchstring à signaler.

Types des résultats


DT_I4

Notes
La fonction FINDSTRING n'est opérationnelle qu'avec le type de données DT_WSTR. Les
argumentscharacter_expression et searchstring qui représentent des littéraux de chaîne
ou des colonnes de données du type de données DT_STR sont implicitement convertis
dans le type de données DT_WSTR avant que la fonction FINDSTRING soit exécutée. Les
autres types de données doivent être explicitement convertis vers le type de données
DT_WSTR. Pour plus d’informations, consultez Types de données Integration Services et
Cast (expression SSIS).

FINDSTRING retourne NULL si character_expression ou searchstring a la valeur Null.

Utilisez la valeur 1 dans l'argument occurrence pour obtenir l'index de la première


occurrence, la valeur 2 pour obtenir celui de la deuxième occurrence, et ainsi de suite.

L'argument occurrence doit être un entier supérieur à 0.

Exemples d'expressions
L'exemple suivant utilise un littéral de chaîne. Il renvoie la valeur 11.

FINDSTRING("New York, NY, NY", "NY", 1)

L'exemple suivant utilise un littéral de chaîne. La chaîne « NY » ne se produisant que


deux fois, le résultat retourné est 0.

FINDSTRING("New York, NY, NY", "NY", 3)

L'exemple suivant utilise la colonne Name . Il retourne l’emplacement du deuxième « n »


dans la colonne Name. Le résultat obtenu varie en fonction de la valeur de la colonne
Name. Si Name contient Anderson, la fonction retourne 8.

FINDSTRING(Name, "n", 2)

L'exemple suivant utilise les colonnes Name et Size . Il renvoie l'emplacement du


caractère situé à l'extrême gauche de la valeur Size de la colonne Name . Le résultat
obtenu dépend des valeurs de la colonne. Si la colonne Name contient «
Mountain,500Red,42 » et que la colonne Size contient « 42 », le résultat obtenu est 17.

FINDSTRING(Name,Size,1)
Voir aussi
REPLACE (expression SSIS)
Fonctions (expression SSIS)
FLOOR (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie l'entier le plus élevé inférieur ou égal à une expression numérique.

Syntaxe

FLOOR(numeric_expression)

Arguments
numeric_expression
Expression numérique valide.

Types des résultats


Type de données numérique de l'expression de l'argument. Le résultat est la partie
entière de la valeur calculée dans le même type de données que numeric_expression.

Notes
La fonction FLOOR renvoie un résultat NULL si l'argument est NULL.

Exemples d'expressions
Les exemples suivants appliquent la fonction FLOOR à une valeur successivement
positive, négative et nulle.

FLOOR(123.45)

Retourne 123.00
FLOOR(-123.45)

Retourne -124.00

FLOOR(0.00)

Renvoie 0,00

Voir aussi
CEILING (expression SSIS)
Fonctions (expression SSIS)
GETDATE (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie la date actuelle du système dans un format DT_DBTIMESTAMP. La fonction


GETDATE ne prend aucun argument.

7 Notes

La fonction GETDATE retourne un résultat d'une longueur de 29 caractères.

Syntaxe

GETDATE()

Arguments
Aucun

Types des résultats


DT_DBTIMESTAMP

Exemples d'expressions
L'exemple suivant renvoie l'année de la date actuelle.

DATEPART("year",GETDATE())

L’exemple suivant renvoie le nombre de jours entre une date de la colonne


ModifiedDate et la date actuelle.
DATEDIFF("dd",ModifiedDate,GETDATE())

L'exemple suivant ajoute trois mois à la date actuelle.

DATEADD("Month",3,GETDATE())

Voir aussi
GETUTCDATE (expression SSIS)
Fonctions (expression SSIS)
GETUTCDATE (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie la date actuelle du système en temps UTC (Universal Time Coordinate ou


Greenwich Mean Time) au format DT_DBTIMESTAMP. La fonction GETUTCDATE ne
comprend aucun argument.

Syntaxe

GETUTCDATE()

Arguments
Aucun

Types des résultats


DT_DBTIMESTAMP

Exemples d'expressions
L'exemple suivant renvoie l'année de la date actuelle en temps UTC.

DATEPART("year",GETUTCDATE())

L’exemple suivant retourne le nombre de jours entre une date de la colonne


ModifiedDate et la date UTC actuelle.

DATEDIFF("dd",ModifiedDate,GETUTCDATE())
L'exemple suivant ajoute trois mois à la date UTC actuelle.

DATEADD("Month",3,GETUTCDATE())

Voir aussi
GETDATE (expression SSIS)
Fonctions (expression SSIS)
HEX (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie une chaîne représentant la valeur hexadécimale d'un entier.

Syntaxe

HEX(integer_expression)

Arguments
integer_expression
Entier signé ou non signé.

Types des résultats


DT_WSTR

Notes
HEX retourne null si integer_expression est null.

L’argument integer_expression doit correspondre à un nombre entier. Pour plus


d’informations, consultez Types de données Integration Services.

Le résultat obtenu ne comprend pas de qualificateurs tels que le préfixe « 0x ». Pour


inclure un préfixe, utilisez l'opérateur « + » (concaténer). Pour plus d’informations,
consultez + (Concaténer) (Expression SSIS).

Les lettres « A » à « F », utilisées en notation hexadécimale, apparaissent en caractères


majuscules.

La longueur de la chaîne obtenue pour les types de données entiers est la suivante :
Les types de données DT_I1 et DT_UI1 renvoient une chaîne d'une longueur
maximale de 2.

Les types de données DT_I2 et DT_UI2 renvoient une chaîne d'une longueur
maximale de 4.

Les types de données DT_I4 et DT_UI4 renvoient une chaîne d'une longueur
maximale de 8.

Les types de données DT_I8 et DT_UI8 renvoient une chaîne d'une longueur
maximale de 16.

Exemples d'expressions
L'exemple suivant utilise un littéral numérique. La fonction retourne la valeur 190.

HEX(400)

L’exemple suivant utilise la colonne ReorderPoint . Le type de données de la colonne est


smallint. Si la variable ReorderPoint a pour valeur 750, la fonction renvoie 2EE.

HEX(ReorderPoint)

L’exemple suivant utilise la variable système LocaleID. Si la variable LocaleID a pour


valeur 1033, la fonction renvoie 409.

HEX(@LocaleID)

Voir aussi
Fonctions (expression SSIS)
ISNULL (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie une valeur booléenne basée sur le test du caractère NULL d'une expression.

Syntaxe

ISNULL(expression)

Arguments
expression
Expression valide d'un type de données quelconque.

Types des résultats


DT_BOOL

Exemples d'expressions
L'exemple suivant renvoie TRUE si la colonne DiscontinuedDate contient une valeur
NULL.

ISNULL(DiscontinuedDate)

L'exemple suivant renvoie « Unknown last name » si la valeur de la colonne LastName


est NULL, sinon il renvoie la valeur de LastName.

ISNULL(LastName)? "Unknown last name":LastName


L'exemple suivant renvoie toujours TRUE si la colonne DaysToManufacture est NULL,
quelle que soit la valeur de la variable AddDays.

ISNULL(DaysToManufacture + @AddDays)

Voir aussi
Fonctions (expression SSIS)
COALESCE (Transact-SQL)
LEFT (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie le nombre de caractères spécifié en commençant par la partie la plus à gauche


d'une expression de caractères donnée.

Syntaxe

LEFT(character_expression,number)

Arguments
expression_caractère
Expression de caractères à partir de laquelle doivent être extraits les caractères.

number
Expression entière indiquant le nombre de caractères à renvoyer.

Types des résultats


DT_WSTR

Notes
Si number est supérieur à la longueur de character_expression, la fonction retourne
character_expression.

Si l'argument number a pour valeur zéro, la fonction renvoie une chaîne de longueur
nulle.

Si l'argument number est un nombre négatif, la fonction renvoie une erreur.

L'argument number peut accepter des variables et des colonnes.


La fonction LEFT fonctionne seulement avec le type de données DT_WSTR. Un argument
character_expression qui est un littéral de chaîne ou une colonne de données avec le
type de données DT_STR est implicitement converti dans le type de données DT_WSTR
avant que LEFT effectue son opération. Les autres types de données doivent être
explicitement convertis vers le type de données DT_WSTR. Pour plus d’informations,
consultez Types de données Integration Services et Cast (expression SSIS).

La fonction LEFT renvoie un résultat NULL si l'un des arguments est NULL.

Exemples d'expressions
L'exemple suivant utilise un littéral de chaîne. Le résultat obtenu est "Mountain" .

LEFT("Mountain Bike", 8)

Voir aussi
RIGHT (expression SSIS)
Fonctions (expression SSIS)
LEN (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie le nombre de caractères d'une expression de caractères. Si la chaîne comprend


des espaces de début et de fin, la fonction les inclut dans le nombre. La fonction LEN
renvoie la même valeur pour une chaîne donnée, que celle-ci soit composée de
caractères codés sur un octet ou sur deux octets.

Syntaxe

LEN(character_expression)

Arguments
expression_caractère
Expression à évaluer.

Types des résultats


DT_I4

Remarques
L’argument character_expression peut être d’un type de données DT_WSTR, DT_TEXT,
DT_NTEXT ou DT_IMAGE. Pour plus d’informations, consultez Types de données
Integration Services.

Si character_expression est un littéral de chaîne ou une colonne de données avec le type


de données DT_STR, il est implicitement converti dans le type de données DT_WSTR
avant que la fonction LEN soit exécutée. Les autres types de données doivent être
explicitement convertis vers le type de données DT_WSTR. Pour plus d’informations,
consultez Cast (Expression SSIS).
Si l'argument transmis à la fonction LEN a un type de données BLOB (Binary Large
Object Block), tel que DT_TEXT, DT_NTEXT ou DT_IMAGE, la fonction renvoie un nombre
d'octets.

La fonction LEN renvoie un résultat NULL si l'argument est NULL.

Exemples d'expressions
Cet exemple renvoie la longueur d'un littéral de chaîne. Le résultat obtenu est 12.

LEN("Ball Bearing")

L'exemple suivant renvoie la différence de longueur des valeurs des colonnes FirstName
et LastName .

LEN(FirstName) - LEN(LastName)

Renvoie la longueur d'un nom d'ordinateur à partir de la variable système


MachineName.

LEN(@MachineName)

Voir aussi
Fonctions (expression SSIS)
LN (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie le logarithme népérien d'une expression numérique.

Syntaxe

LN(numeric_expression)

Arguments
numeric_expression
Expression numérique valide non négative et différente de zéro.

Types des résultats


DT_R8

Notes
L'expression numérique est convertie vers le type de données DT_R8 avant le calcul du
logarithme. Pour plus d’informations, consultez Types de données Integration Services.

Si l’argument numeric_expression donne une valeur inférieure ou égale à zéro, le résultat


obtenu est NULL.

Exemples d'expressions
L'exemple suivant utilise un littéral numérique. La fonction renvoie la valeur
3,737766961828337.

LN(42)
L'exemple suivant utilise la colonne Length. Si la valeur de la colonne est 53,99, la
fonction renvoie 3,9887988442302.

LN(Length)

L'exemple suivant utilise la variable Length. La variable doit être d'un type de données
numérique ou l'expression doit comprendre une conversion explicite vers un type de
données numérique. Si la variable Length a pour valeur 234,567, la fonction renvoie
5,45774126708797.

LN(@Length)

Voir aussi
LOG (expression SSIS)
Fonctions (expression SSIS)
LOG (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie le logarithme de base 10 d'une expression numérique.

Syntaxe

LOG(numeric_expression)

Arguments
numeric_expression
Expression numérique valide différente de zéro ou non négative.

Types des résultats


DT_R8

Notes
L’expression numérique est convertie vers le type de données DT_R8 avant le calcul du
logarithme. Pour plus d’informations, consultez Types de données Integration Services.

Si l’argument numeric_expression donne une valeur inférieure ou égale à zéro, le résultat


obtenu est NULL.

Exemples d'expressions
L'exemple suivant utilise un littéral numérique. La fonction renvoie la valeur
1,988291341907488.

LOG(97.34)
L'exemple suivant utilise la colonne Length. Si la valeur de la colonne est 101,24, la
fonction renvoie 2,005352136486217.

LOG(Length)

L'exemple suivant utilise la variable Length. La variable doit être d'un type de données
numérique ou l'expression doit comprendre une conversion explicite en un type de
données SSIS numérique. Si la variable Length a pour valeur 234,567, la fonction renvoie
2,370266913465859.

LOG(@Length)

Voir aussi
EXP (expression SSIS)
LN (expression SSIS)
Fonctions (expression SSIS)
LOWER (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie une expression de caractères après avoir transformé les caractères majuscules
en caractères minuscules.

Syntaxe

LOWER(character_expression)

Arguments
expression_caractère
Expression de type caractère à convertir en caractères minuscules.

Types des résultats


DT_WSTR

Notes
La fonction LOWER n'est opérationnelle qu'avec le type de données DT_WSTR. Un
argument character_expression qui est un littéral de chaîne ou une colonne de données
avec le type de données DT_STR est implicitement converti dans le type de données
DT_WSTR avant que UPPER effectue son opération. Les autres types de données doivent
être explicitement convertis vers le type de données DT_WSTR. Pour plus d’informations,
consultez Types de données Integration Services et Cast (expression SSIS).

La fonction LOWER renvoie un résultat NULL si l'argument est NULL.

Exemples d'expressions
L'exemple suivant convertit un littéral de chaîne en caractères minuscules. Le résultat
obtenu est « new york ».

LOWER("New York")

L’exemple suivant convertit tous les caractères de la colonne d’entrée Color , à


l’exception du premier caractère, en caractères minuscules. Si la colonne Color a pour
valeur JAUNE, le résultat obtenu est « Jaune ». Pour plus d’informations, consultez
SUBSTRING (expression SSIS).

LOWER(SUBSTRING(Color, 2, 15))

L’exemple suivant convertit la valeur de la variable CityName en caractères minuscules.

LOWER(@CityName)

Voir aussi
UPPER (expression SSIS)
Fonctions (expression SSIS)
LTRIM (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie une chaîne de caractères après avoir supprimé les espaces de début.

7 Notes

La fonction LTRIM ne supprime pas les espaces blancs tels que les caractères de
tabulation ou de saut de ligne. Le codage Unicode founit des points de code pour
divers types d'espaces, mais cette fonction ne reconnaît que le point de code
Unicode 0x0020. Ainsi, lorsque les chaînes du jeu de caractères codés sur deux
octets (DBCS) sont converties en Unicode, elles peuvent comporter d'autres
caractères d'espaces que 0x0020 si bien que la fonction ne peut pas les supprimer.
Pour éliminer tout type d'espace, utilisez par exemple la méthode de suppression
des espaces de début (LTrim) de Microsoft Visual Basic .NET dans un script exécuté
à partir du composant Script.

Syntaxe

LTRIM(character expression)

Arguments
expression_caractère
Expression de caractères dont les espaces doivent être supprimés.

Types des résultats


DT_WSTR

Notes
La fonction LTRIM n'est opérationnelle qu'avec le type de données DT_WSTR. Un
argument expression_caractères qui est un littéral de chaîne ou une colonne de données
avec le type de données DT_STR est implicitement converti dans le type de données
DT_WSTR avant que LTRIM effectue son opération. Les autres types de données doivent
être explicitement convertis vers le type de données DT_WSTR. Pour plus d’informations,
consultez Types de données Integration Services et Cast (expression SSIS).

La fonction LTRIM renvoie un résultat NULL si l'argument est NULL.

Exemples d'expressions
L'exemple suivant supprime les espaces de début d'un littéral de chaîne. Le résultat
obtenu est «Hello».

LTRIM(" Hello")

L'exemple suivant supprime les espaces de début de la colonne FirstName .

LTRIM(FirstName)

L'exemple suivant supprime les espaces de début de la variable FirstName .

LTRIM(@FirstName)

Voir aussi
RTRIM (expression SSIS)
TRIM (expression SSIS)
Fonctions (expression SSIS)
MONTH (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie un entier qui représente la partie mois d'une date.

Syntaxe

MONTH(date)

Arguments
date
Date à n'importe quel format de date.

Types des résultats


DT_I4

Remarques
La fonction MONTH renvoie un résultat NULL si l'argument est NULL.

Un littéral de date doit être explicitement converti dans l'un des types de données date.
Pour plus d’informations, consultez Types de données Integration Services.

7 Notes

La validation de l'expression échoue lorsqu'un littéral de date est explicitement


converti en un des types de données de date suivants : DT_DBTIMESTAMPOFFSET
et DT_DBTIMESTAMP2.

L'utilisation de la fonction MONTH est plus directe mais équivalente à celle de la


fonction DATEPART("Month", date).
Exemples d'expressions
Cet exemple renvoie le chiffre représentant le mois dans un littéral de date. Si le format
de la date est « mm/jj/aaaa », l'exemple renvoie 11.

MONTH((DT_DBTIMESTAMP)"11/23/2002")

L’exemple suivant renvoie l’entier qui représente le mois dans la colonne ModifiedDate .

MONTH(ModifiedDate)

L'exemple suivant renvoie l'entier qui représente le mois de la date actuelle.

MONTH(GETDATE())

Voir aussi
DATEADD (expression SSIS)
DATEDIFF (expression SSIS)
DATEPART (expression SSIS)
DAY (expression SSIS)
YEAR (expression SSIS)
Fonctions (expression SSIS)
NULL (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie une valeur NULL d'un type de données demandé.

Syntaxe

NULL(typespec)

Arguments
typespec
Type de données valide. Pour plus d’informations, consultez Types de données
Integration Services.

Types des résultats


Tout type de données valide avec une valeur Null.

Notes
La fonction NULL renvoie un résultat NULL si l'argument est NULL.

Des paramètres sont nécessaires pour demander une valeur NULL pour certains types
de données. Le tableau suivant décrit ces types de données et leurs paramètres.

Type de Paramètre Exemple


données

DT_STR charcount L'expression (DT_STR,30,1252) convertit 30 caractères vers le type de


données DT_STR à l'aide de la page de codes 1252.
codepage

DT_WSTR charcount L'expression (DT_WSTR,20) convertit 20 caractères vers le type de


données DT_WSTR.
Type de Paramètre Exemple
données

DT_BYTES bytecount L'expression (DT_BYTES,50) convertit 50 octets vers le type de


données DT_BYTES.

DT_DECIMAL scale L'expression (DT_DECIMAL,2) convertit une valeur numérique dans le


type de données DT_DECIMAL avec une échelle égale à 2.

DT_NUMERIC precision L'expression (DT_NUMERIC,10,3) convertit une valeur numérique


dans le type de données DT_NUMERIC avec une précision de 10 et
scale une échelle de 3.

DT_TEXT codepage L'expression (DT_TEXT,1252) convertit une valeur vers le type de


données DT_TEXT à l'aide de la page de codes 1252.

Exemples d'expressions
Les exemples ci-après renvoient la valeur Null des types de données suivants : DT_STR,
DT_DATE et DT_BOOL.

NULL(DT_STR,10,1252)
NULL(DT_DATE)
NULL(DT_BOOL)

Voir aussi
ISNULL (expression SSIS)
Fonctions (expression SSIS)
POWER (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie le résultat de l'élévation d'une expression numérique à une puissance donnée.


La valeur du paramètre de la puissance doit s'évaluer à un entier.

Syntaxe

POWER(numeric_expression,power)

Arguments
numeric_expression
Expression numérique valide.

puissance
Expression numérique valide.

Types des résultats


DT_R8

Notes
Les arguments numeric_expression et power sont convertis dans le type de données
DT_R8 avant le calcul de la puissance. Pour plus d’informations, consultez Types de
données Integration Services.

Si l’argument numeric_expression correspond à la valeur zéro et que l’argument power


est négatif, l’évaluateur d’expression retourne une erreur et le résultat obtenu est Null.

Si numeric_expression ou power correspond à des résultats indéterminés, la valeur Null


est retournée.
L’argument power peut être une fraction. Par exemple, vous pouvez utiliser la valeur 0,5
comme puissance.

Exemples d'expressions
L'exemple suivant utilise un littéral numérique. La fonction élève 4 à la puissance 3 et
renvoie 64.

POWER(4,3)

L’exemple suivant utilise la colonne Length et la variable DimensionCount . Si


l’argument Length a la valeur 8 et l’argument DimensionCount la valeur 2, le résultat
obtenu est 64.

POWER(Length, @DimensionCount)

Voir aussi
Fonctions (expression SSIS)
REPLACE (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie une expression de caractères après le remplacement d'une chaîne de caractères


située dans l'expression par une autre chaîne de caractères ou une chaîne vide.

7 Notes

La fonction REPLACE utilise habituellement des chaînes longues. Les conséquences


de la troncation peuvent être gérées naturellement ou être à l'origine d'un
avertissement ou d'un message d'erreur. Pour plus d’informations, consultez
Syntaxe (SSIS).

Syntaxe

REPLACE(character_expression,searchstring,replacementstring)

Arguments
expression_caractère
Expression de caractères valide où la fonction va effectuer la recherche.

searchstring
Expression de caractères valide recherchée par la fonction.

replacementstring
Expression de caractères valide qui est l'expression de remplacement.

Types des résultats


DT_WSTR

Notes
La longueur de searchstring ne doit pas être égale à zéro.

La longueur de replacementstring peut être égale à zéro.

Les arguments searchstring et replacementstring peuvent utiliser des variables et des


colonnes.

La fonction REPLACE est opérationnelle seulement avec le type de données DT_WSTR.


Les argumentscharacter_expression1, character_expression2 et character_expression3 qui
représentent des littéraux de chaîne ou des colonnes de données du type de données
DT_STR sont implicitement convertis dans le type de données DT_WSTR avant que la
fonction REPLACE soit exécutée. Les autres types de données doivent être explicitement
convertis vers le type de données DT_WSTR. Pour plus d’informations, consultez Cast
(Expression SSIS).

La fonction REPLACE renvoie un résultat NULL si un argument est NULL.

Exemples d'expressions
L'exemple suivant utilise un littéral de chaîne. Le résultat obtenu est « All Terrain Bike ».

REPLACE("Mountain Bike", "Mountain","All Terrain")

L’exemple suivant supprime la chaîne « Bike » de la colonne Product .

REPLACE(Product, "Bike","")

L’exemple suivant remplace des valeurs dans la colonne DaysToManufacture . La


colonne a un type de données integer et l’expression comprend la conversion de
DaysToManufacture vers le type de données DT_WSTR.

REPLACE((DT_WSTR,8)DaysToManufacture,"6","5")

Voir aussi
SUBSTRING (expression SSIS)
Fonctions (expression SSIS)
REPLACENULL (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Retourne la valeur du paramètre de la seconde expression si la valeur du paramètre de


la première expression est NULL ; sinon, retourne la valeur de la première expression.

Syntaxe
VB

REPLACENULL(expression 1,expression 2)

Arguments
expression 1
Le résultat de cette expression est comparé à NULL.

expression 2
Le résultat de cette expression est retourné si la première expression renvoie la valeur
NULL.

Types des résultats


DT_WSTR

Notes
La longueur de l'argument expression 2 peut être égale à zéro.

La fonction REPLACENULL renvoie un résultat NULL si un argument est NULL.

Les colonnes BLOB (DT_TEXT, DT_NTEXT, DT_IMAGE) ne sont pas prises en charge
pour l'un ou l'autre paramètre.

Il est prévu que les deux expressions aient le même type de retour. Dans le cas
contraire, la fonction tente d'effectuer un cast de la seconde expression en type de
retour de la première expression, ce qui peut se traduire par une erreur si les types
de données sont incompatibles.
Exemples d'expressions
L'exemple suivant remplace toute valeur NULL dans une colonne de base de données
par une chaîne (1900-01-01). Cette fonction est particulièrement utilisée dans les
modèles de colonne dérivée courants où vous souhaitez remplacer les valeurs NULL par
autre chose.

REPLACENULL(MyColumn, "1900-01-01")

7 Notes

L’exemple suivant montre comment cela était fait dans SQL Server 2005 Integration
Services (SSIS) / SQL Server 2008 Integration Services (SSIS).

(DT_DBTIMESTAMP) (ISNULL(MyColumn) ? "1900-01-01" : MyColumn)


REPLICATE (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie une expression de caractères qui est répliquée plusieurs fois. L'argument times
doit correspondre à un nombre entier.

7 Notes

La fonction REPLICATE utilise habituellement des chaînes longues, elle est donc plus
exposée à la limitation fixée à 4000 caractères sur la longueur d'expression. Si le
résultat de l'évaluation d'une expression donne le type de données Integration
Services DT_WSTR ou DT_STR, cette expression sera réduite à 4000 caractères. Si le
type du résultat d'une sous-expression est DT_STR ou DT_WSTR, cette sous-
expression sera également tronquée à 4000 caractères, peu importe le type de
résultat obtenu dans l'expression générale. Les conséquences de la troncation
peuvent être gérées naturellement ou être à l'origine d'un avertissement ou d'un
message d'erreur. Pour plus d’informations, consultez Syntaxe (SSIS).

Syntaxe

REPLICATE(character_expression,times)

Arguments
expression_caractère
Expression de caractères à répliquer.

times
Expression entière spécifiant le nombre de réplications de l’argument
character_expression .

Types des résultats


DT_WSTR
Notes
Si l’argument times a pour valeur zéro, la fonction retourne une chaîne de longueur
nulle.

Si l'argument times est un nombre négatif, la fonction renvoie une erreur.

L'argument times peut également utiliser des variables et des colonnes.

La fonction REPLICATE est opérationnelle seulement avec le type de données DT_WSTR.


Un argument character_expression représentant un littéral de chaîne ou une colonne de
données du type de données DT_STR est implicitement converti dans le type de
données DT_WSTR avant que la fonction REPLICATE ne soit exécutée. Les autres types
de données doivent être explicitement convertis vers le type de données DT_WSTR. Pour
plus d’informations, consultez Types de données Integration Services et Cast (expression
SSIS).

La fonction REPLICATE renvoie un résultat NULL si l'un des arguments est NULL.

Exemples d'expressions
L'exemple suivant réplique un littéral de chaîne trois fois. Le résultat obtenu est «
Mountain BikeMountain BikeMountain Bike ».

REPLICATE("Mountain Bike", 3)

L'exemple suivant réplique les valeurs de la colonne Name un nombre de fois égal à la
valeur de la variable Times . Si la variable Times a pour valeur 3 et que la valeur de la
colonne Name est « Tout-terrain », le résultat obtenu est « Tout-terrainTout-terrainTout-
terrain ».

REPLICATE(Name, @Times)

L'exemple suivant réplique la valeur de la variable Name un nombre de fois égal à la


valeur de la colonne Times . La valeurTimes a un type de données non-entier et
l’expression comprend une conversion explicite vers un type de données entier. Si la
variable Name contient « Helmet » et que la colonne Times a pour valeur 2, le résultat
obtenu est « HelmetHelmet ».
REPLICATE(@Name, (DT_I4(Times))

Voir aussi
Fonctions (expression SSIS)
REVERSE (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie une expression de caractères en ordre inverse.

Syntaxe

REVERSE(character_expression)

Arguments
expression_caractère
Expression de caractères à inverser.

Types des résultats


DT_WSTR

Notes
L’argument character_expression doit être du type de données DT_WSTR.

REVERSE retourne un résultat Null si character_expression est Null.

Exemples d'expressions
L'exemple suivant utilise un littéral de chaîne. Le résultat obtenu est « ekiB niatnuoM ».

REVERSE("Mountain Bike")

L'exemple suivant utilise une variable. Si la variable Name contient « VTT », le résultat
obtenu est « TTV ».
REVERSE(@Name)

Voir aussi
Fonctions (expression SSIS)
RIGHT (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie le nombre de caractères spécifié en commençant par la partie la plus à droite


d'une expression de caractères donnée.

Syntaxe

RIGHT(character_expression,integer_expression)

Arguments
expression_caractère
Expression de caractères à partir de laquelle doivent être extraits les caractères.

integer_expression
Expression entière indiquant le nombre de caractères à renvoyer.

Types des résultats


DT_WSTR

Notes
Si integer_expression est supérieure à la longueur de character_expression, la fonction
retourne character_expression.

Si l’argument integer_expression a pour valeur zéro, la fonction renvoie une chaîne de


longueur nulle.

Si l’argument integer_expression est un nombre négatif, la fonction renvoie une erreur.

L’argument integer_expression peut accepter des variables et des colonnes.


La fonction RIGHT n'est opérationnelle qu'avec le type de données DT_WSTR. Un
argument character_expression représentant un littéral de chaîne ou une colonne de
données du type de données DT_STR est implicitement converti dans le type de
données DT_WSTR avant que la fonction RIGHT ne soit exécutée. Les autres types de
données doivent être explicitement convertis vers le type de données DT_WSTR. Pour
plus d’informations, consultez Types de données Integration Services et Cast (expression
SSIS).

La fonction RIGHT renvoie un résultat NULL si l'un des arguments est NULL.

Exemples d'expressions
L'exemple suivant utilise un littéral de chaîne. Le résultat obtenu est "Bike" .

RIGHT("Mountain Bike", 4)

L'exemple suivant retourne le nombre de caractères situés le plus à droite dans la


variable Times depuis la colonne Name . Si Name est Touring Front Wheel et Times est 5,
le résultat retourné est "Wheel" .

RIGHT(Name, @Times)

L'exemple suivant retourne également le nombre de caractères situés le plus à droite


dans la variable Times de la colonne Name . Times La variable est du type de données
noninteger et l’expression comprend une conversion explicite vers le type de données
DT_I2. Si Name est Touring Front Wheel et Times est 4.32 , le résultat obtenu est "heel"
parce que la fonction RIGHT convertit la valeur de 4.32 à 4, puis retourne les quatre
caractères situés les plus à droite.

RIGHT(Name, (DT_I2)@Times))

Voir aussi
LEFT (expression SSIS)
Fonctions (expression SSIS)
ROUND (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie une expression numérique, arrondie à la longueur ou à la précision indiquée. La


valeur du paramètre de longueur doit correspondre à un entier.

Syntaxe

ROUND(numeric_expression,length)

Arguments
numeric_expression
Expression d'un type numérique valide. Pour plus d’informations, consultez Types de
données Integration Services.

length
Expression entière. Il s’agit de la précision avec laquelle numeric_expression est arrondie.

Types des résultats


Type similaire à celui de numeric_expression.

Remarques
L'argument length doit avoir une valeur positive entière ou égale à zéro.

La fonction ROUND renvoie un résultat NULL si l'argument est NULL.

Exemples d'expressions
Les exemples suivants arrondissent des littéraux numériques à une longueur de trois. Le
premier résultat obtenu est 137,1570, tandis que le second est 137,1580.
ROUND(137.1574,3)
ROUND(137.1575,3)

Voir aussi
Fonctions (expression SSIS)
RTRIM (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie une chaîne de caractères après la suppression des espaces de fin.

7 Notes

La fonction RTRIM ne supprime pas les espaces blancs tels que les caractères de
tabulation ou de saut de ligne. Le codage Unicode founit des points de code pour
divers types d'espaces, mais cette fonction ne reconnaît que le point de code
Unicode 0x0020. Ainsi, lorsque les chaînes du jeu de caractères codés sur deux
octets (DBCS) sont converties en Unicode, elles peuvent comporter d'autres
caractères d'espaces que 0x0020 si bien que la fonction ne peut pas les supprimer.
Pour éliminer tout type d'espace, utilisez par exemple la méthode de suppression
des espaces de fin (RTrim) de Microsoft Visual Basic .NET dans un script exécuté à
partir du composant Script.

Syntaxe

RTRIM(character expression)

Arguments
expression_caractère
Expression de caractères dont les espaces doivent être supprimés.

Types des résultats


DT_WSTR

Notes
La fonction RTRIM n'est opérationnelle qu'avec le type de données DT_WSTR. Un
argument character_expression qui est un littéral de chaîne ou une colonne de données
avec le type de données DT_STR est implicitement converti dans le type de données
DT_WSTR avant que RTRIM effectue son opération. Les autres types de données doivent
être explicitement convertis vers le type de données DT_WSTR. Pour plus d’informations,
consultez Types de données Integration Services et Cast (expression SSIS).

La fonction RTRIM renvoie un résultat NULL si l'argument est NULL.

Exemples d'expressions
L'exemple suivant supprime les espaces de fin d'un littéral de chaîne. Le résultat obtenu
est «Hello».

RTRIM("Hello ")

L'exemple suivant supprime les espaces de fin d'une concaténation des colonnes
FirstName et LastName .

RTRIM(FirstName + " " + LastName)

L'exemple suivant supprime les espaces de fin de la variable FirstName .

RTRIM(@FirstName)

Voir aussi
LTRIM (expression SSIS)
TRIM (expression SSIS)
Fonctions (expression SSIS)
SIGN (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie le nombre positif (+1), le nombre négatif (-1) ou zéro (0) selon le signe d'une
expression numérique.

Syntaxe

SIGN(numeric_expression)

Arguments
numeric_expression
Expression numérique signée valide. Pour plus d’informations, consultez Types de
données Integration Services.

Types des résultats


DT_I4

Remarques
La fonction SIGN renvoie un résultat NULL si l'argument est NULL.

Exemples d'expressions
L'exemple suivant renvoie le signe d'un littéral numérique. Le résultat obtenu est -1.

SIGN(-123.45)
L’exemple suivant retourne le signe du résultat de la soustraction de la colonne
StandardCost de la colonne DealerPrice .

SIGN(DealerPrice - StandardCost)

Voir aussi
Fonctions (expression SSIS)
SQRT (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie la racine carrée d'une expression numérique.

Syntaxe

SQRT(numeric_expression)

Arguments
numeric_expression
Expression numérique d'un type de données numérique. Pour plus d’informations,
consultez Types de données Integration Services.

Types des résultats


DT_R8

Notes
La fonction SQRT renvoie un résultat NULL si l'argument est NULL.

Elle échoue si l'argument est une valeur négative.

L'argument est converti vers le type de données DT_R8 avant le calcul de la racine
carrée.

Exemples d'expressions
L'exemple suivant renvoie la racine carrée d'un littéral numérique. Le résultat obtenu est
12.
SQRT(144)

L'exemple suivant renvoie la racine carrée d'une expression, en l'occurrence le résultat


de la soustraction des valeurs des colonnes Value1 et Value2 .

SQRT(Value1 - Value2)

L'exemple suivant renvoie la longueur du troisième côté d'un triangle rectangle en


appliquant la fonction SQUARE à deux variables puis en calculant la racine carrée de leur
somme. Si la variable Side1 a pour valeur 3 et que la variable Side2 a pour valeur 4, la
fonction SQRT renvoie 5.

SQRT(SQUARE(@Side1) + SQUARE(@Side2))

7 Notes

Dans les expressions, les noms de variable comprennent toujours le préfixe @.

Voir aussi
Fonctions (expression SSIS)
SQUARE (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie le carré d'une expression numérique.

Syntaxe

SQUARE(numeric_expression)

Arguments
numeric_expression
Expression numérique d'un type de données numérique. Pour plus d’informations,
consultez Types de données Integration Services.

Types des résultats


DT_R8

Notes
La fonction SQUARE renvoie un résultat NULL si l'argument est NULL.

L'argument est converti vers le type de données DT_R8 avant le calcul du carré.

Exemples d'expressions
Cet exemple renvoie le carré de 12. Le résultat retourné est 144.

SQUARE(12)
L'exemple suivant renvoie le carré du résultat de la soustraction des valeurs de deux
colonnes. Si Value1 contient 12 et Value2 contient 4, la fonction SQUARE retourne 64.

SQUARE(Value1 - Value2)

L'exemple suivant renvoie la longueur du troisième côté d'un triangle rectangle en


appliquant la fonction SQUARE à deux variables, puis en calculant la racine carrée de
leur somme. Si la variable Side1 a pour valeur 3 et que la variable Side2 a pour valeur 4,
la fonction SQRT renvoie 5.

SQRT(SQUARE(@Side1) + SQUARE(@Side2))

7 Notes

Dans les expressions, les noms de variable comprennent toujours le préfixe @.

Voir aussi
Fonctions (expression SSIS)
SUBSTRING (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie la partie d'une expression de caractères qui commence à la position spécifiée et


qui a la longueur spécifiée. Les paramètres position et length doivent correspondre à des
entiers.

Syntaxe

SUBSTRING(character_expression, position, length)

Arguments
expression_caractère
Expression de caractères à partir de laquelle doivent être extraits les caractères.

position
Entier précisant où commence sous-chaîne.

length
Entier exprimant, en nombre de caractères, la longueur de la sous-chaîne.

Types des résultats


DT_WSTR

Notes
SUBSTRING utilise un index de base un. Si position est 1, la sous-chaîne commence par
le premier caractère de character_expression.

La fonction SUBSTRING n'est opérationnelle qu'avec le type de données DT_WSTR. Un


argument character_expression représentant un littéral de chaîne ou une colonne de
données du type de données DT_STR est implicitement converti dans le type de
données DT_WSTR avant que la fonction SUBSTRING soit exécutée. Les autres types de
données doivent être explicitement convertis vers le type de données DT_WSTR. Pour
plus d’informations, consultez Types de données Integration Services et Cast (expression
SSIS).

La fonction SUBSTRING renvoie un résultat NULL si l'argument est NULL.

Tous les arguments de l'expression peuvent utiliser des variables et des colonnes.

L'argument length peut être supérieur à la longueur de la chaîne. Dans ce cas, la


fonction renvoie le reste de la chaîne.

Exemples d'expressions
L'exemple suivant renvoie deux caractères, à partir du quatrième caractère, d'un littéral
de chaîne. Le résultat obtenu est « ph ».

SUBSTRING("elephant",4,2)

L'exemple suivant renvoie le reste d'un littéral de chaîne, à partir du quatrième caractère.
Le résultat obtenu est « phant ». Si l'argument length dépasse la longueur de la chaîne,
cela ne constitue pas une erreur.

SUBSTRING ("elephant",4,50)

L'exemple suivant renvoie la première lettre de la colonne MiddleName .

SUBSTRING(MiddleName,1,1)

L'exemple suivant utilise des variables dans les arguments position et length . Si les
variables Start et Length ont pour valeur respective 1 et 5, la fonction renvoie les cinq
premiers caractères de la colonne Name .

SUBSTRING(Name,@Start,@Length)
L'exemple suivant renvoie les quatre derniers caractères de la variable PostalCode , à
partir du sixième caractère.

SUBSTRING (@PostalCode,6,4)

L'exemple suivant renvoie une chaîne de longueur nulle d'un littéral de chaîne.

SUBSTRING ("Redmond",4,0)

Voir aussi
Fonctions (expression SSIS)
TOKEN (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Retourne un jeton (sous-chaîne) à partir d'une chaîne en fonction des délimiteurs


spécifiés qui séparent les jetons de la chaîne et du numéro de jeton qui indique le jeton
à retourner.

Syntaxe

TOKEN(character_expression, delimiter_string, occurrence)

Arguments
expression_caractère
Chaîne qui contient des jetons séparés par des délimiteurs.

delimiter_string
Chaîne qui contient les caractères de délimitation. Par exemple, « ; , » contient trois
caractères de délimitation : le point-virgule, un espace vide et une virgule.

occurrence
Entier signé ou non signé qui spécifie le jeton à retourner. Par exemple, si vous spécifiez
3 comme valeur pour ce paramètre, le troisième jeton de la chaîne est retourné.

Types des résultats


DT_WSTR

Notes
Cette fonction fractionne la chaîne <character_expression> en un ensemble de jetons
séparés par les délimiteurs spécifiés dans la chaîne <delimiter_string>, puis retourne le
N-ième jeton, où N est le nombre d’occurrences du jeton spécifié par le paramètre
<occurrence>. Consultez la section Exemples pour obtenir des exemples d'utilisation de
cette fonction.
Les remarques suivantes s'appliquent à la fonction TOKEN :

La chaîne de délimitation peut contenir un ou plusieurs caractères de délimitation.

Si la valeur du paramètre <occurrence> est supérieure au nombre total de jetons


présents dans la chaîne, la fonction retourne NULL.

Les délimiteurs de début sont ignorés.

La fonction TOKEN fonctionne seulement avec le type de données DT_WSTR. Un


argument character_expression représentant un littéral de chaîne ou une colonne
de données du type de données DT_STR est implicitement converti dans le type de
données DT_WSTR avant que la fonction TOKEN ne soit exécutée. Les autres types
de données doivent être explicitement convertis vers le type de données DT_WSTR.

La fonction TOKEN retourne un résultat Null si l'argument character_expression est


Null.

Vous pouvez utiliser des variables et des colonnes comme valeurs de tous les
arguments de l'expression.

Exemples d'expressions
Dans l’exemple suivant, la fonction TOKEN retourne « a ». La chaîne « a little white dog »
comprend 4 jetons (« a », « little », « white », « dog ») séparés par le délimiteur « »
(espace). Le deuxième argument, une chaîne de délimitation, spécifie un seul délimiteur,
l'espace, à utiliser dans le fractionnement de la chaîne d'entrée en jetons. Le dernier
argument, 1, indique le premier jeton à retourner. Le premier jeton est « a » dans cet
exemple de chaîne.

TOKEN("a little white dog"," ",1)

Dans l'exemple suivant, la fonction TOKEN retourne « dog ». La chaîne de délimitation


de cet exemple contient 5 délimiteurs. La chaîne d’entrée contient 4 jetons : « a »,
« little », « white », « dog ».

TOKEN("a:little|white dog","| ,.:",4)


Dans l'exemple suivant, la fonction TOKEN retourne « » (une chaîne vide), car il n'y a pas
99 jetons dans la chaîne.

TOKEN("a little white dog"," ",99)

Dans l'exemple suivant, la fonction TOKEN retourne la chaîne complète. La fonction


analyse la chaîne d'entrée à la recherche de délimiteurs et comme il n'y en a pas dans la
chaîne, elle ajoute simplement la chaîne entière en tant que premier jeton.

TOKEN("a little white dog","|",1)

Dans l’exemple suivant, la fonction TOKEN retourne « a ». Elle ignore tous les espaces de
début.

TOKEN(" a little white dog", " ", 1)

Dans l'exemple suivant, la fonction TOKEN retourne l'année spécifiée dans une chaîne
de date.

TOKEN("2009/01/01", "/", 1)

Dans l'exemple suivant, la fonction TOKEN retourne le nom de fichier figurant dans le
chemin d'accès spécifié. Par exemple, si la valeur de User::Path est « c:\program
files\data\myfile.txt », la fonction TOKEN retourne « myfile.txt ». La fonction
TOKENCOUNT retourne 4 et la fonction TOKEN retourne le 4ème jeton, « myfile.txt ».

TOKEN(@[User::Path], "\\", TOKENCOUNT(@[User::Path], "\\"))

Voir aussi
Fonctions (expression SSIS)
TOKENCOUNT (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Retourne le nombre de jetons d'une chaîne qui contient des jetons séparés par les
délimiteurs spécifiés.

Syntaxe

TOKENCOUNT(character_expression, delimiter_string)

Arguments
expression_caractère
Chaîne qui contient des jetons séparés par des délimiteurs.

delimiter_string
Chaîne qui contient les caractères de délimitation. Par exemple, « ; , » contient trois
caractères de délimitation : le point-virgule, un espace vide et une virgule.

Types des résultats


DT_I4

Remarques
Les remarques suivantes s'appliquent à la fonction TOKEN :

La chaîne de délimitation peut contenir un ou plusieurs caractères de délimitation.

Les délimiteurs de début sont ignorés.

TOKENCOUNT fonctionne uniquement avec le type de données DT_WSTR. Un


argument character_expression représentant un littéral de chaîne ou une colonne
de données du type de données DT_STR est implicitement converti dans le type de
données DT_WSTR avant que la fonction TOKEN ne soit exécutée. Les autres types
de données doivent être explicitement convertis vers le type de données DT_WSTR.
TOKENCOUNT retourne 0 (zéro) si character_expression est Null.

Vous pouvez utiliser des variables et des colonnes en tant qu'arguments pour cette
expression.

Exemples d'expressions
Dans l’exemple suivant, la fonction TOKENCOUNT retourne 3, car la chaîne contient trois
jetons : « 01 », « 12 », « 2011 ».

TOKENCOUNT("01/12/2011", "/")

Dans l’exemple suivant, la fonction TOKENCOUNT retourne 4, car il existe quatre jetons
(« a », « little », « white », « dog »).

TOKENCOUNT("a little white dog"," ")

Dans l’exemple suivant, la fonction TOKENCOUNT retourne 1. La fonction analyse la


chaîne d'entrée à la recherche de délimiteurs et comme il n'y en a pas dans la chaîne,
elle ajoute simplement la chaîne entière en tant que premier jeton.

TOKENCOUNT("a little white dog","|")

Dans l'exemple suivant, la fonction TOKENCOUNT retourne 4. La chaîne de délimitation


de cet exemple contient 5 délimiteurs. La chaîne d’entrée contient 4 jetons : « a »,
« little », « white », « dog ».

TOKENCOUNT("a:little|white dog","| ,.:")

Dans l'exemple suivant, la fonction TOKENCOUNT retourne 4. Elle ignore tous les
espaces de début.

TOKENCOUNT(" a little white dog", " ")


Voir aussi
Fonctions (expression SSIS)
TRIM (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie une chaîne de type caractère après la suppression des espaces de début et de
fin.

7 Notes

La fonction TRIM ne supprime pas les espaces blancs tels que les caractères de
tabulation ou de saut de ligne. Le codage Unicode founit des points de code pour
divers types d'espaces, mais cette fonction ne reconnaît que le point de code
Unicode 0x0020. Ainsi, lorsque les chaînes du jeu de caractères codés sur deux
octets (DBCS) sont converties en Unicode, elles peuvent comporter d'autres
caractères d'espaces que 0x0020 si bien que la fonction ne peut pas les supprimer.
Pour éliminer tout type d'espace, utilisez par exemple la méthode de suppression
des espaces (Trim) de Microsoft Visual Basic .NET dans un script exécuté à partir du
composant Script.

Syntaxe

TRIM(character_expression)

Arguments
expression_caractère
Expression de caractères dont les espaces doivent être supprimés.

Types des résultats


DT_WSTR

Notes
La fonction TRIM renvoie un résultat NULL si l'argument est NULL.

La fonction TRIM fonctionne seulement avec le type de données DT_WSTR. Un


argument character_expression qui est un littéral de chaîne ou une colonne de données
avec le type de données DT_STR est implicitement converti dans le type de données
DT_WSTR avant que TRIM effectue son opération. Les autres types de données doivent
être explicitement convertis vers le type de données DT_WSTR. Pour plus d’informations,
consultez Types de données Integration Services et Cast (expression SSIS).

Exemples d'expressions
L'exemple suivant supprime les espaces de début et de fin d'un littéral de chaîne. Le
résultat obtenu est «New York».

TRIM(" New York ")

L'exemple suivant supprime les espaces de début et de fin de la concaténation des


colonnes FirstName et LastName . La chaîne vide entre les colonnes FirstName et
LastName n'est pas supprimée.

TRIM(FirstName + " "+ LastName)

Voir aussi
LTRIM (expression SSIS)
RTRIM (expression SSIS)
Fonctions (expression SSIS)
UPPER (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie une chaîne de caractères après avoir converti les caractères minuscules en
caractères majuscules.

Syntaxe

UPPER(character_expression)

Arguments
expression_caractère
Expression de type caractère à convertir en caractères majuscules.

Types des résultats


DT_WSTR

Notes
La fonction UPPER n'est opérationnelle qu'avec le type de données DT_WSTR. Un
argument expression_caractère qui est un littéral de chaîne ou une colonne de données
avec le type de données DT_STR est implicitement converti dans le type de données
DT_WSTR avant que UPPER effectue son opération. Les autres types de données doivent
être explicitement convertis vers le type de données DT_WSTR. Pour plus d’informations,
consultez Types de données Integration Services et Cast (expression SSIS).

La fonction UPPER renvoie un résultat NULL si l'argument est NULL.

Exemples d'expressions
L'exemple suivant convertit un littéral de chaîne en caractères majuscules. Le résultat
obtenu est « HELLO ».

UPPER("hello")

L'exemple suivant transforme le premier caractère de la colonne FirstName en un


caractère majuscule. Si l'argument FirstName a pour valeur « anna », le résultat obtenu
est « A ». Pour plus d’informations, consultez SUBSTRING (expression SSIS).

UPPER(SUBSTRING(FirstName, 1, 1))

L'exemple suivant convertit la valeur de la variable PostalCode en caractères majuscules.


Si la variable PostalCode a pour valeur « k4b1s2 », le résultat obtenu est « K4B1S2 ».

UPPER(@PostalCode)

Voir aussi
LOWER (expression SSIS)
Fonctions (expression SSIS)
YEAR (expression SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renvoie un entier qui représente la partie année d'une date.

Syntaxe

YEAR(date)

Arguments
date
Date à n'importe quel format de date.

Types des résultats


DT_I4

Remarques
La fonction YEAR renvoie un résultat NULL si l'argument est NULL.

Un littéral de date doit être explicitement converti dans l'un des types de données date.
Pour plus d’informations, consultez Types de données Integration Services.

7 Notes

La validation de l'expression échoue lorsqu'un littéral de date est explicitement


converti en un des types de données de date suivants : DT_DBTIMESTAMPOFFSET
et DT_DBTIMESTAMP2.

L'utilisation de la fonction YEAR est plus directe mais elle est équivalente à celle de la
fonction DATEPART("Year", date).
Exemples d'expressions
Cet exemple renvoie le nombre représentant l'année dans un littéral de date. Si le
format de la date est « mm/jj/aaaa », l'exemple renvoie « 2002 ».

YEAR((DT_DBTIMESTAMP)"11/23/2002")

L’exemple suivant renvoie l’entier qui représente l’année dans la colonne ModifiedDate .

YEAR(ModifiedDate)

L'exemple suivant renvoie l'entier qui représente l'année de la date actuelle.

YEAR(GETDATE())

Voir aussi
DATEADD (expression SSIS)
DATEDIFF (expression SSIS)
DATEPART (expression SSIS)
DAY (expression SSIS)
MONTH (expression SSIS)
Fonctions (expression SSIS)
Gestionnaires d'événements Integration
Services (SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Lors de l'exécution, les exécutables (packages, conteneurs de boucles Foreach,


conteneurs de boucles For, conteneurs de séquences et conteneurs d'hôtes de tâches)
déclenchent des événements. Par exemple, un événement OnError se déclenche
lorsqu'une erreur se produit. Vous pouvez créer des gestionnaires d'événements
personnalisés pour ces événements afin d'étendre les fonctionnalités des packages et
les rendre plus faciles à gérer au moment de l'exécution. Les gestionnaires
d'événements peuvent réaliser des tâches comme les suivantes :

nettoyer l'emplacement de stockage des données temporaires une fois l'exécution


d'un package ou d'une tâche terminée ;

récupérer les informations système de manière à évaluer la disponibilité des


ressources avant exécution d'un package ;

actualiser les données d'une table en cas d'échec d'une recherche dans une table
de référence ;

envoyer un message électronique lorsqu'une erreur ou un avertissement se produit


ou lorsqu'une tâche échoue.

Si un événement ne possède pas de gestionnaire d'événements, il est remonté au


conteneur qui se trouve un niveau au-dessus dans la hiérarchie des conteneurs d'un
package. Si ce conteneur possède un gestionnaire d'événements, ce dernier est exécuté
en réponse à l'événement. Dans le cas contraire, l'événement est remonté au conteneur
qui se trouve un niveau au-dessus dans la hiérarchie des conteneurs.

Le diagramme qui suit montre un package simple composé d'un conteneur de boucles
For contenant une tâche d'exécution SQL.
Seul le package possède un gestionnaire d’événements (pour son événement OnError ).
Si une erreur se produit pendant l’exécution de la tâche d’exécution SQL, le gestionnaire
d’événements OnError du package s’exécute. Le diagramme qui suit montre la séquence
d’appels qui conduit à l’exécution du gestionnaire d’événements OnError du package.

Les gestionnaires d'événements sont membres d'une collection de gestionnaires


d'événements. Tous les conteneurs incluent cette collection. Si vous créez le package à
l’aide du concepteur SSIS , vous pouvez afficher les membres des collections de
gestionnaires d’événements dans les dossiers Gestionnaires d’événements de l’onglet
Explorateur de package du concepteur SSIS .

Vous pouvez configurer le conteneur du gestionnaire d'événements de plusieurs


manières :

indiquez le nom et la description du gestionnaire d'événements ;

indiquez si le gestionnaire d'événements s'exécute, si le package échoue en cas


d'échec du gestionnaire d'événements et indiquez le nombre d'erreurs autorisées
avant échec du gestionnaire d'événements ;

spécifiez un résultat d'exécution à renvoyer à la place du résultat d'exécution réel


renvoyé au moment de l'exécution par le gestionnaire d'événements ;

spécifiez l'option de transaction du gestionnaire d'événements ;

spécifiez le mode de journalisation utilisé par le gestionnaire d'événements.

Contenu du gestionnaire d'événements


La création d'un gestionnaire d'événements est similaire à la création d'un package. Un
gestionnaire d'événements contient des tâches et des conteneurs qui sont mis en
séquence de manière à former un flux de contrôle et peut inclure des flux de données.
Le concepteur SSIS comprend un onglet Gestionnaires d’événements qui permet de
créer des gestionnaires d’événements personnalisés.

Vous pouvez également créer des gestionnaires d'événements par programme. Pour
plus d’informations, consultez Gestion des erreurs et des avertissements.

Événements d'exécution
Le tableau qui suit énumère les gestionnaires d'événements fournis par Integration
Services et décrit les événements d'exécution provoquant leur exécution.

Gestionnaire Événement
d'événements

OnError Gestionnaire d’événements de l’événement OnError . Cet événement


est déclenché par un exécutable lorsqu'une erreur se produit.

OnExecStatusChanged Gestionnaire d’événements de l’événement OnExecStatusChanged .


Cet événement est déclenché par un exécutable lorsque son état
d'exécution change.

OnInformation Gestionnaire d’événements de l’événement OnInformation . Cet


événement se déclenche au cours de la validation et de l'exécution
d'un exécutable afin de rapporter des informations. Cet événement
véhicule des informations uniquement (aucune erreur ni
avertissement).

OnPostExecute Gestionnaire d’événements de l’événement OnPostExecute . Cet


événement est déclenché par un exécutable immédiatement après la
fin de son exécution.

OnPostValidate Gestionnaire d’événements de l’événement OnPostValidate . Cet


événement est déclenché par un exécutable lorsque sa validation est
terminée.

OnPreExecute Gestionnaire d’événements de l’événement OnPreExecute . Cet


événement est déclenché par un exécutable immédiatement avant
son exécution.

OnPreValidate Gestionnaire d’événements de l’événement OnPreValidate . Cet


événement est déclenché par un exécutable lorsque sa validation
démarre.
Gestionnaire Événement
d'événements

OnProgress Gestionnaire d’événements de l’événement OnProgress . Cet


événement est déclenché par un exécutable lorsqu'une progression
mesurable est réalisée par l'exécutable.

OnQueryCancel Gestionnaire d’événements de l’événement OnQueryCancel . Cet


événement est déclenché par un exécutable pour déterminer si son
exécution doit s'arrêter.

OnTaskFailed Gestionnaire d’événements de l’événement OnTaskFailed . Cet


événement est déclenché par une tâche lorsqu'elle échoue.

OnVariableValueChanged Gestionnaire d’événements de l’événement


OnVariableValueChanged . Cet événement est déclenché par un
exécutable lorsque la valeur d'une variable change. L'événement est
déclenché par l'exécutable sur lequel la variable est définie. Cet
événement n’est pas déclenché si vous affectez à la propriété
RaiseChangeEvent de la variable la valeur False. Pour plus
d’informations, consultez Variables Integration Services (SSIS).

OnWarning Gestionnaire d’événements de l’événement OnWarning . Cet


événement est déclenché par un exécutable lorsqu'un avertissement
se produit.

Ajouter un gestionnaire d’événements à un


package
Lors de l'exécution, les conteneurs et les tâches déclenchent des événements. Vous
pouvez créer des gestionnaires d'événements personnalisés qui répondent à ces
événements en exécutant un flux de travail. Vous pouvez ainsi créer un gestionnaire
d'événements qui envoie un message électronique lorsqu'une tâche échoue.

Un gestionnaire d'événements est similaire à un package. Comme un package, il peut


définir la portée des variables et inclure un flux de contrôle et des flux de données
facultatifs. Vous pouvez créer des gestionnaires d'événements pour les packages, le
conteneur de boucles Foreach, le conteneur de boucles For, le conteneur Sequence et
toutes les tâches.

Vous pouvez pour cela utiliser l’aire de conception de l’onglet Gestionnaires


d’événements du concepteur SSIS .

Quand l’onglet Gestionnaires d’événements est actif, les nœuds Éléments de flux de
contrôle et Tâches du plan de maintenance de la Boîte à outils du concepteur SSIS
contiennent la tâche et les conteneurs permettant de créer le flux de contrôle dans le
gestionnaire d’événements. Les nœuds Sources de flux de données, Transformationset
Destinations du flux de données contiennent les sources de données, les
transformations et les destinations permettant de créer les flux de données dans le
gestionnaire d’événements. Pour plus d’informations, consultez Flux de contrôle et Flux
de données.

L’onglet Gestionnaires d’événements contient aussi une zone Gestionnaires de


connexions dans laquelle vous pouvez créer et modifier les gestionnaires de connexions
utilisés par les gestionnaires d’événements pour se connecter aux serveurs et aux
sources de données. Pour plus d’informations, consultez Créer des gestionnaires de
connexions.

Ajouter un gestionnaire d’événements sous l’onglet


Gestionnaires d’événements
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l’onglet Gestionnaires d’événements .


La création du flux de contrôle et des flux de données dans le gestionnaire
d'événements est identique à la création du flux de contrôle et des flux de
données dans un package. Pour plus d’informations, consultez Flux de contrôle et
Flux de données.

4. Dans la liste Exécutable , sélectionnez l’exécutable pour lequel vous voulez créer
un gestionnaire d’événements.

5. Dans la liste Gestionnaire d’événements , sélectionnez le gestionnaire


d’événements que vous voulez créer.

6. Cliquez sur le lien situé dans l’aire de conception de l’onglet Gestionnaire


d’événements .

7. Ajoutez des éléments de flux de contrôle au gestionnaire d'événements et


connectez ces éléments à l'aide d'une contrainte de priorité, en faisant glisser la
contrainte d'un élément de flux de contrôle à l'autre. Pour plus d’informations,
consultez Control Flow.

8. Si vous le souhaitez, vous pouvez ajouter une tâche de flux de données puis, dans
l’aire de conception de l’onglet Flux de données , créer un flux de données pour le
gestionnaire d’événements. Pour en savoir plus, voir Data Flow.
9. Dans le menu Fichier , cliquez sur Enregistrer les éléments sélectionnés pour
enregistrer le package.

Définir les propriétés d’un gestionnaire


d’événements
Vous pouvez définir les propriétés dans la fenêtre Propriétés de SQL Server Data Tools
(SSDT) ou par programmation.

Pour plus d’informations sur la définition de ces propriétés dans SQL Server Data Tools
(SSDT), consultez Définir les propriétés d’une tâche ou d’un conteneur.

Pour plus d’informations sur la définition par programmation de ces propriétés,


consultez DtsEventHandler.

Tâches associées
Pour plus d’informations sur l’ajout d’un gestionnaire d’événements à un package,
consultez Ajouter un gestionnaire d’événements à un package.
Requêtes Integration Services (SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche Exécution SQL, la source OLE DB, la destination OLE DB et la transformation de


recherche peuvent utiliser des requêtes SQL. Dans la tâche d'exécution SQL, les
instructions SQL peuvent créer, mettre à jour et supprimer des données et des objets de
base de données, exécuter des procédures stockées et des instructions SELECT. Dans la
source OLE DB et la transformation de recherche, les instructions SQL sont
généralement des instructions SELECT ou EXEC. Cette dernière exécute le plus souvent
des procédures stockées qui retournent des jeux de résultats.

Un requête peut être analysée pour déterminer si elle est valide. Pendant l’analyse d’une
requête utilisant une connexion vers SQL Server, la requête est analysée, exécutée et le
résultat de l’exécution (succès ou échec) est affecté au résultat de l’analyse. Si la requête
utilise une connexion à des données qui ne sont pas SQL Server, l'instruction est
seulement analysée.

Vous pouvez fournir l’instruction SQL de plusieurs manières :

1. En l’entrant directement dans le concepteur


2. En spécifiant une connexion à un fichier qui contient l’instruction
3. En spécifiant une variable qui contient l’instruction

SQL à entrée directe


Le Générateur de requêtes est disponible dans l'interface utilisateur pour la tâche
d'exécution SQL, la source OLE DB, la destination OLE DB et la transformation de
recherche. Le générateur de requêtes présente les avantages suivants :

Travailler visuellement ou avec des commandes SQL.

Le Générateur de requêtes comprend des volets graphiques qui composent


visuellement votre requête et un volet de texte qui contient le texte SQL de votre
requête. Vous pouvez travailler dans le volet graphique ou le volet de texte. Le
Générateur de requêtes synchronise les vues afin de toujours faire correspondre le
texte de la requête et la représentation graphique.

Joindre des tables liées.


Si vous ajoutez plusieurs tables à votre requête, le générateur de requêtes
détermine automatiquement la manière dont les tables sont associées entre elles
et construit la commande de jointure appropriée.

Interroger ou mettre à jour les bases de données.

Vous pouvez utiliser le générateur de requêtes pour renvoyer des données à l'aide
d'instructions Transact-SQL SELECT, ou pour créer des requêtes qui mettent à jour,
ajoutent ou suppriment des enregistrements dans une base de données.

Afficher et modifier les résultats immédiatement.

Vous pouvez exécuter votre requête et travailler avec un jeu d'enregistrements


dans une grille qui vous permet de faire défiler et de modifier les enregistrements
de la base de données.

Bien que le générateur de requêtes soit limité visuellement à la création de requêtes


SELECT, vous pouvez tapez le SQL pour d'autres types d'instructions, par exemple des
instructions DELETE et UPDATE, dans le volet de texte. Le volet graphique est
automatiquement mis à jour pour prendre en compte l'instruction SQL que vous avez
tapée.

Vous pouvez également fournir une entrée directe en tapant la requête dans la boîte de
dialogue de la tâche ou du composant de flux de données ou dans la fenêtre Propriétés.

Pour plus d’informations, consultez Générateur de requêtes.

SQL dans des fichiers


L'instruction SQL pour la tâche d'exécution SQL peut également se trouver dans un
fichier distinct. Par exemple, vous pouvez écrire des requêtes à l'aide d'outils tels que
l'éditeur de requêtes dans SQL Server Management Studio, enregistrer la requête dans
un fichier, puis lire la requête à partir du fichier lors de l'exécution d'un package. Le
fichier ne peut contenir que les instructions SQL à exécuter et des commentaires. Pour
utiliser une instruction SQL stockée dans un fichier, vous devez fournir une connexion de
fichiers qui spécifie le nom et l'emplacement du fichier. Pour plus d’informations,
consultez File Connection Manager.

SQL dans des variables


Si la source de l'instruction SQL dans la tâche d'exécution SQL est une variable, vous
fournissez le nom de la variable qui contient la requête. La propriété Value de la variable
contient le texte de la requête. Vous définissez la propriété ValueType de la variable en
tant que type de données String, puis vous tapez ou copiez l’instruction SQL dans la
propriété Value. Pour plus d’informations, consultez Variables Integration Services (SSIS)
et Utiliser des variables dans des packages.

Générateur de requêtes, boîte de dialogue


Utilisez la boîte de dialogue Générateur de requêtes pour créer une requête à utiliser
dans la tâche Exécution SQL, la source OLE DB et la destination OLE DB, ainsi que la
transformation de recherche.

Vous pouvez utiliser le générateur de requêtes pour réaliser les tâches suivantes :

Utilisation d'une représentation graphique d'une requête ou des commandes


SQL Le générateur de requêtes inclut un volet qui affiche votre requête
graphiquement et un volet qui affiche le texte SQL de votre requête. Vous pouvez
travailler dans le volet graphique ou dans le volet texte. Le générateur de requêtes
synchronise les vues de manière à ce qu'elles soient toujours actualisées.

Jointure de tables associées Si vous ajoutez plusieurs tables à votre requête, le


générateur de requêtes détermine automatiquement la manière dont les tables
sont associées et construit la commande de jointure appropriée.

Requête ou mise à jour de bases de données Vous pouvez utiliser le générateur


de requêtes pour renvoyer des données à l’aide d’instructions Transact-SQL SELECT
et pour créer des requêtes qui mettent à jour, ajoutent ou suppriment des
enregistrements dans une base de données.

Affichage et modification immédiate des résultats Vous pouvez exécuter votre


requête et travailler avec un jeu d'enregistrements dans une grille qui vous permet
de faire défiler et de modifier les enregistrements de la base de données.

Les outils graphiques de la boîte de dialogue Générateur de requêtes permettent de


créer des requêtes par glisser-déplacer. Par défaut, la boîte de dialogue Générateur de
requêtes crée des requêtes SELECT, mais vous pouvez également générer des requêtes
INSERT, UPDATE ou DELETE. Tous les types d'instructions SQL peuvent être analysés et
exécutés dans la boîte de dialogue Générateur de requêtes . Pour plus d’informations
sur les instructions SQL dans les packages, consultez Requêtes Integration Services
(SSIS).

Pour en savoir plus sur le langage Transact-SQL et sa syntaxe, consultez Référence


Transact-SQL (moteur de base de données).
Vous pouvez aussi utiliser des variables dans une requête pour fournir des valeurs à un
paramètre d'entrée, pour capturer les valeurs des paramètres de sortie et pour stocker
des codes de retour. Pour en savoir plus sur l’utilisation de variables dans les requêtes
utilisées par les packages, consultez Tâche d’exécution de requêtes SQL, Source OLE
DBet Requêtes Integration Services (SSIS). Pour en savoir plus sur l’utilisation de
variables dans la tâche d’exécution de requêtes SQL, consultez Paramètres et codes de
retour dans la tâche d’exécution SQL et Ensembles de résultats dans la tâche
d’exécution SQL.

Les transformations de recherche et de recherche floue peuvent aussi utiliser des


variables avec des paramètres et des codes de retour. Les informations relatives à la
source OLE DB s'appliquent également à ces deux transformations.

Options
Barre d’outils
Utilisez la barre d'outils pour gérer les datasets, sélectionner les volets à afficher et
contrôler les fonctions de requête.

Value Description

Afficher/Masquer Affiche ou masque le volet Diagramme .


le volet
Diagramme

Afficher/Masquer Affiche ou masque le volet Grille .


le volet Grille

Afficher/Masquer Affiche ou masque le volet SQL .


le volet SQL

Afficher/Masquer Affiche ou masque le volet Résultats .


le volet Résultats

Exécuter Exécute la requête. Les résultats s'affichent dans le volet Résultats.

Vérifier SQL Vérifie que l'instruction SQL est valide.

Tri croissant Trie dans l'ordre croissant les lignes de sortie sur la colonne sélectionnée du
volet de la grille.

Tri décroissant Trie dans l'ordre décroissant les lignes de sortie sur la colonne sélectionnée
du volet de la grille.

Supprimer le filtre Sélectionnez le nom d'une colonne dans le volet de la grille, puis choisissez
Supprimer le filtre pour supprimer les critères de tri de la colonne.
Value Description

Utiliser GROUP BY Ajoute la fonctionnalité GROUP BY à la requête.

Ajouter une table Ajoute une table à la requête.

Définition de la requête
La définition de la requête fournit une barre d'outils et des volets dans lesquels définir
et tester la requête.

Volet Description

VoletDiagramme Affiche la requête dans un diagramme. Le diagramme illustre les tables


. contenues dans la requête et leur mode de jointure. Activez ou désactivez la
case à cocher correspondant à une colonne de la table pour l'ajouter ou la
supprimer du résultat de la requête.

Lorsque vous ajoutez des tables à la requête, le Générateur de requêtes crée


des jointures entre les tables basées sur les tables, en fonction des clés de la
table. Pour ajouter une jointure, faites glisser le champ d'une table vers un
champ situé dans une autre table. Pour gérer une jointure, cliquez dessus avec
le bouton droit, puis sélectionnez une option du menu.

Cliquez avec le bouton droit sur le volet Diagramme pour ajouter ou


supprimer des tables, sélectionner toutes les tables et afficher ou masquer des
volets.

VoletGrille Affiche la requête dans une grille. Vous pouvez utiliser ce volet pour ajouter et
supprimer des colonnes dans la requête et modifier les paramètres de chaque
colonne.

VoletSQL Affiche la requête sous forme de texte SQL. Les modifications effectuées dans
le volet Diagramme et le volet Grille sont affichées ici et les modifications
apportées ici sont affichées dans les volets Diagramme et Grille .

VoletRésultats Affiche les résultats de la requête lorsque vous cliquez sur Exécuter dans la
barre d'outils.
Transactions Integration Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les packages utilisent les transactions pour lier les actions de base de données que les
tâches effectuent en unités atomiques, et maintiennent ce faisant l'intégrité des
données. Tous les types de conteneurs Microsoft Integration Services (packages,
conteneurs de boucles For et Foreach et conteneurs de séquences, ainsi que les hôtes
de tâches qui encapsulent chaque tâche) peuvent être configurés pour utiliser les
transactions. Integration Services offre trois options de configuration des transactions :
NotSupported, Supportedet Required.

Required indique que le conteneur démarre une transaction, à moins qu’une autre
transaction soit déjà démarrée par son conteneur parent. Si la transaction existe
déjà, le conteneur rejoint la transaction. Par exemple, si un package non configuré
pour prendre en charge les transactions inclut un conteneur de séquences utilisant
l’option Required , le conteneur de séquences démarre sa propre transaction. Si le
package a été configuré pour utiliser l’option Required , le conteneur de
séquences rejoint la transaction du package.

Supported indique que le conteneur ne démarre pas de transaction, mais rejoint


toute transaction démarrée par son conteneur parent. Par exemple, si un package
avec quatre tâches d’exécution SQL démarre une transaction et que les quatre
tâches utilisent l’option Supported , les mises à jour de la base de données
effectuées par les tâches d’exécution SQL sont annulées en cas d’échec d’une des
tâches. Si le package ne démarre pas de transaction, les quatre tâches d'exécution
SQL ne sont pas liées par une transaction et aucune mise à jour de la base de
données n'est annulée, sauf celle effectuée par la tâche qui a échoué.

NotSupported indique que le conteneur ne démarre pas de transaction et ne


rejoint aucune transaction existante. Une transaction démarrée par un conteneur
parent n'affecte pas les conteneurs enfants configurés pour ne pas prendre en
charge les transactions. Par exemple, si un package est configuré pour démarrer
une transaction et qu’un conteneur de boucles For dans le package utilise l’option
NotSupported , aucune des tâches de la boucle For ne peut être annulée si elle
échoue.

Vous pouvez configurer les transactions en définissant la propriété TransactionOption


sur le conteneur. Vous pouvez définir cette propriété dans la fenêtre Propriétés de SQL
Server Data Tools (SSDT)ou par programmation.
7 Notes

La propriété TransactionOption a un impact sur la décision d’appliquer ou non la


valeur de la propriété IsolationLevel demandée par un conteneur. Pour plus
d’informations, consultez la description de la propriété IsolationLevel dans la
rubrique Définition des propriétés d’un package.

Configurer un package pour l'utilisation de


transactions
Lorsque vous configurez un package pour l'utilisation de transactions, vous avez le choix
entre deux options :

Avoir une transaction unique pour le package. Dans ce cas, le package lance lui-
même cette transaction, alors que les tâches et les conteneurs individuels dans le
package participent à cette transaction unique.

Avoir plusieurs transactions dans le package. Dans ce cas, le package prend en


charge des transactions, mais les tâches et les conteneurs individuels dans le
package lancent en réalité les transactions.

Les procédures ci-dessous montrent comment configurer ces deux options.

Configurer un package pour utiliser une transaction


unique
Dans cette option, le package lui-même lance une transaction unique. Vous configurez
le package pour lancer cette transaction en affectant à la propriété TransactionOption
du package la valeur Required.

Ensuite, vous inscrivez des tâches et des conteneurs spécifiques dans cette transaction
unique. Pour inscrire une tâche ou un conteneur dans une transaction, vous affectez à la
propriété TransactionOption de cette tâche ou de ce conteneur la valeur Supported.

1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package à configurer pour utiliser une transaction.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l'onglet Flux de contrôle .


4. Cliquez avec le bouton droit n’importe où dans l’arrière-plan de la surface de
dessin du flux de contrôle, puis cliquez sur Propriétés.

5. Dans la fenêtre Propriétés , définissez la propriété TransactionOption sur Required.

6. Sur la surface de dessin de l’onglet Flux de contrôle , cliquez avec le bouton droit
sur la tâche ou le conteneur que vous souhaitez inscrire dans la transaction, puis
cliquez sur Propriétés.

7. Dans la fenêtre Propriétés , définissez la propriété TransactionOption sur


Supported.

7 Notes

Pour inscrire une connexion dans une transaction, inscrivez les tâches qui
utilisent la connexion dans la transaction. Pour plus d’informations, consultez
Connexions Integration Services (SSIS).

8. Répétez les étapes 6 et 7 pour chaque tâche et conteneur que vous voulez inscrire
dans la transaction.

Configurer un package pour utiliser plusieurs transactions


Dans cette option, le package lui-même prend en charge les transactions mais ne
démarre pas une transaction. Vous configurez le package pour prendre en charge les
transactions en affectant à la propriété TransactionOption du package la valeur
Supported.

Ensuite, vous configurez les tâches et les conteneurs de votre choix au sein du package
pour lancer des transactions ou y participer. Pour configurer une tâche ou un conteneur
pour lancer une transaction, vous affectez à la propriété TransactionOption de cette
tâche ou de ce conteneur la valeur Required.

1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services qui
contient le package que vous voulez configurer de façon à utiliser des transactions.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l'onglet Flux de contrôle .

4. Cliquez avec le bouton droit n’importe où dans l’arrière-plan de la surface de


dessin du flux de contrôle, puis cliquez sur Propriétés.
5. Dans la fenêtre Propriétés , définissez la propriété TransactionOption sur
Supported.

7 Notes

Le package prend en charge les transactions, mais les transactions sont


démarrées par la tâche ou des conteneurs dans le package.

6. Sur la surface de dessin de l’onglet Flux de contrôle , cliquez avec le bouton droit
sur la tâche ou le conteneur du package pour lequel vous souhaitez commencer
une transaction, puis cliquez sur Propriétés.

7. Dans la fenêtre Propriétés , définissez la propriété TransactionOption sur Required.

8. Si une transaction est commencée par un conteneur, cliquez avec le bouton droit
sur la tâche ou le conteneur que vous souhaitez inscrire dans la transaction, puis
cliquez sur Propriétés.

9. Dans la fenêtre Propriétés , définissez la propriété TransactionOption sur


Supported.

7 Notes

Pour inscrire une connexion dans une transaction, inscrivez les tâches qui
utilisent la connexion dans la transaction. Pour plus d’informations, consultez
Connexions Integration Services (SSIS).

10. Répétez les étapes 6 à 9 pour chaque tâche et conteneur qui démarre une
transaction.

Plusieurs transactions dans un package


Il est possible qu'un package inclue des transactions non liées entre elles dans un
package Integration Services . Chaque fois qu'un conteneur, au milieu d'une hiérarchie
de conteneurs imbriquée, ne prend pas en charge les transactions, les conteneurs au-
dessus et au-dessous de lui dans la hiérarchie démarrent des transactions distinctes s'ils
sont configurés pour prendre en charge les transactions. Les transactions sont validées
ou annulées dans l'ordre, de la tâche la plus imbriquée dans la hiérarchie de conteneurs
jusqu'au package. Cependant, si une transaction interne est validée, elle n'est pas
annulée si une transaction externe est abandonnée.
Exemple de plusieurs transactions dans un package
Par exemple, un package comprend un conteneur de séquences qui contient deux
conteneurs de boucles Foreach, et chaque conteneur comprend deux tâches d'exécution
de requêtes SQL. Le conteneur de séquences et les tâches d'exécution de requêtes SQL
prennent en charge les transactions, contrairement aux conteneurs de boucles Foreach.
Dans cet exemple, chaque tâche d'exécution de requêtes SQL démarre sa propre
transaction et elle n'est pas annulée si la transaction de la tâche de séquence est
abandonnée.

Les propriétés TransactionOption du conteneur de séquences, du conteneur de boucle


Foreach et des tâches d’exécution de requêtes SQL sont définies comme suit :

La propriété TransactionOption du conteneur de séquences a pour valeur


Required.

Les propriétés TransactionOption des conteneurs de boucles Foreach ont pour


valeur NotSupported.

Les propriétés TransactionOption des tâches d’exécution de requêtes SQL ont pour
valeur Required.

Le diagramme ci-dessous représente les cinq transactions non liées du package. Une
transaction est démarrée par le conteneur de séquences et quatre transactions par les
tâches d'exécution SQL.

Transactions héritées
Un package peut en exécuter un autre à l'aide de la tâche d'exécution de package. Le
package enfant, qui est celui exécuté par la tâche d'exécution de package, peut créer sa
propre transaction sur package, ou hériter de celle du package parent.
Un package enfant hérite de la transaction sur package parent si les deux conditions
suivantes sont réunies :

Le package est appelé par une tâche d'exécution de package.

La tâche d'exécution de package qui a appelé le package a également joint la


transaction sur package parent.

Les conteneurs et les tâches dans le package enfant ne peuvent pas être joints à la
transaction de package parent, à moins que le package enfant lui-même soit joint à la
transaction.

Exemple de transactions héritées


Le diagramme suivant présente trois packages utilisant tous des transactions. Chaque
package comprend plusieurs tâches. Afin de mettre en évidence le comportement des
transactions, seules les tâches d'exécution de package sont indiquées. Le package A
exécute les packages B et C. Le package B exécute à son tour les packages D et E, et le
package C exécute le package F.

Les packages et les tâches ont les attributs de transaction suivants :

TransactionOption a pour valeur Required sur les packages A et C.

TransactionOption a pour valeur Supported sur les packages B et D, et sur les


tâches d’exécution des packages B, D et F.

TransactionOption a pour valeur NotSupported sur le package E, et sur les tâches


d’exécution des packages C et E.
Seuls les packages B, D et F peuvent hériter des transactions de leurs packages parents.

Les packages B et D héritent de la transaction démarrée par le package A.

Les package F hérite de la transaction démarrée par le package C.

Les packages A et C contrôlent leurs propres transactions.

Le package E n'utilise pas de transactions.

Ressources externes
Entrée de blog, How to Use Transactions in SQL Server Integration Services SSIS
(Comment utiliser des transactions dans SQL Server Integration Services, ou SSIS),
sur www.mssqltips.com

Voir aussi
Transactions héritées
Transactions multiples
Déployer des projets et des packages
Integration Services (SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Integration Services prend en charge deux modèles de déploiement : le modèle de


déploiement de projet et le modèle de déploiement de package hérité. Le modèle de
déploiement de projet vous permet de déployer vos projets sur le serveur Integration
Services .

Pour plus d’informations sur le modèle de déploiement de package hérité, consultez


Déploiement de packages hérités (SSIS).

7 Notes

Le modèle de déploiement du projet a été présenté pour la première fois dans SQL
Server 2012 Integration Services (SSIS). Avec ce modèle de déploiement, vous ne
pouviez pas déployer un ou plusieurs packages sans déployer le projet dans son
ensemble. La fonctionnalité de déploiement incrémentiel de packages présentée
pour la première fois dans SQL Server 2016 Integration Services (SSIS) vous permet
de déployer un ou plusieurs packages sans déployer la totalité du projet.

7 Notes

Cet article décrit comment déployer des packages SSIS de manière générale et
comment les déployer au niveau local. Vous pouvez également déployer des
packages SSIS sur les plateformes suivantes :

Cloud Microsoft Azure. Pour plus d’informations, consultez Effectuer un «


lift-and-shift » des charges de travail SQL Server Integration Services vers le
cloud.
Linux. Pour plus d’informations, consultez Extraire, transformer et charger
des données sur Linux avec SSIS.

Comparer le modèle de déploiement de projet


et le modèle de déploiement de package hérité
Le type de modèle de déploiement que vous choisissez pour un projet détermine les
options de développement et d'administration qui sont disponibles pour ce projet. Le
tableau suivant présente les différences et les ressemblances entre l'utilisation du
modèle de déploiement de projet et l'utilisation du modèle de déploiement de package.

En cas d'utilisation du modèle de déploiement de En cas d’utilisation du modèle de


projet déploiement de package hérité

Un projet est l'unité de déploiement. Un package est l'unité de déploiement.

Des paramètres sont utilisés pour affecter des valeurs Des configurations sont utilisées pour
aux propriétés du package. affecter des valeurs aux propriétés du
package.

Un projet, contenant des packages et des Les packages (extension .dtsx) et les
paramètres, est généré dans un fichier de configurations (extension .dtsConfig) sont
déploiement de projet (extension .ispac). enregistrés individuellement dans le
système de fichiers.

Un projet, contenant des packages et des Les packages et les configurations sont
paramètres, est déployé dans le catalogue SSISDB copiés dans le système de fichiers sur un
sur une instance de SQL Server. autre ordinateur. Les packages peuvent
également être enregistrés dans la base
de données MSDB sur une instance de
SQL Server.

L'intégration du CLR est requise sur le moteur de L'intégration du CLR n'est pas requise sur
base de données. le moteur de base de données.

Les valeurs des paramètres spécifiques à Les valeurs de la configuration spécifique


l'environnement sont stockées dans des variables à l'environnement sont stockées dans des
d'environnement. fichiers de configuration.

Les projets et les packages contenus dans le Les packages sont validés juste avant
catalogue peuvent être validés sur le serveur avant l'exécution. Vous pouvez également
l'exécution. Vous pouvez effectuer la validation à valider un package avec dtExec ou du
l'aide de SQL Server Management Studio, de code managé.
procédures stockées ou de code managé.

Les packages sont exécutés en démarrant une Les packages sont exécutés à l'aide des
exécution sur le moteur de base de données. Un utilitaires d'exécution dtExec et DTExecUI
identificateur de projet, des valeurs de paramètre . Les configurations applicables sont
explicites (facultatif) et des références identifiées par des arguments d'invite de
environnementales (facultatif) sont affectés à une commandes (facultatif).
exécution avant son démarrage.

Vous pouvez également exécuter des packages à


l'aide de dtExec.
En cas d'utilisation du modèle de déploiement de En cas d’utilisation du modèle de
projet déploiement de package hérité

Pendant l'exécution, les événements qui sont Pendant l'exécution, les événements qui
produits par le package sont automatiquement sont produits par un package ne sont pas
capturés et sont enregistrés dans le catalogue. Vous automatiquement capturés. Un module
pouvez interroger ces événements avec des vues fournisseur d'informations doit être
Transact-SQL. ajouté au package pour capture les
événements.

Les packages sont exécutés dans un processus Les packages sont exécutés dans un
Windows distinct. processus Windows distinct.

L'Agent SQL Server est utilisé pour planifier L'Agent SQL Server est utilisé pour
l'exécution du package. planifier l'exécution du package.

Fonctionnalités du modèle de déploiement de


projet
Le tableau suivant répertorie les fonctionnalités disponibles pour les projets développés
uniquement pour le modèle de déploiement de projet.

Fonctionnalité Description

Paramètres Un paramètre spécifie les données qui seront utilisées par un package. Vous
pouvez définir l'étendue des paramètres au niveau du package ou au niveau
du projet avec des paramètres de package et des paramètres de projet,
respectivement. Des paramètres peuvent être utilisés dans des expressions ou
des tâches. Lorsque le projet est déployé dans le catalogue, vous pouvez
affecter une valeur littérale pour chaque paramètre ou utiliser la valeur par
défaut qui a été affectée au moment de la conception. Au lieu d'une valeur
littérale, vous pouvez également référencer une variable d'environnement. Les
valeurs de variable d'environnement sont résolues au moment de l'exécution
du package.

Environnements Un environnement est un conteneur de variables qui peuvent être référencées


par les projets Integration Services . Chaque projet peut avoir plusieurs
références environnementales, mais une instance d'exécution de package
unique ne peut faire référence qu'à des variables d'un environnement unique.
Les environnements vous permettent d'organiser les valeurs que vous affectez
à un package. Par exemple, vous pouvez avoir des environnements nommés «
Dev », « test » et « Production ».
Fonctionnalité Description

Variables Une variable d'environnement définit une valeur littérale qui peut être affectée
d'environnement à un paramètre pendant l'exécution du package. Pour utiliser une variable
d'environnement, créez une référence environnementale (dans le projet qui
correspond à l'environnement ayant le paramètre), affectez une valeur de
paramètre au nom de la variable d'environnement, puis spécifiez la référence
environnementale correspondante lorsque vous configurez une instance
d'exécution.

Catalogue Tous les objets Integration Services sont stockés et gérés sur une instance de
SSISDB SQL Server dans une base de données appelée catalogue SSISDB. Ce
catalogue vous permet d'utiliser des dossiers pour organiser vos projets et
environnements. Chaque instance de SQL Server ne peut disposer que d'un
seul catalogue. Chaque catalogue peut avoir zéro dossier ou plus. Chaque
dossier peut avoir zéro projet ou plus et zéro environnement ou plus. Un
dossier du catalogue peut également être utilisé comme limite pour les
autorisations sur des objets Integration Services .

Procédures Un grand nombre de procédures stockées et de vues peuvent être utilisées


stockées et vues pour gérer les objets Integration Services du catalogue. Par exemple, vous
du catalogue pouvez spécifier des valeurs pour des paramètres et des variables
d'environnement, créer et démarrer des exécutions, et surveiller des
opérations de catalogue. Vous pouvez même afficher exactement la valeur qui
sera utilisée par un package avant le démarrage de l'exécution.

Déploiement de projet
Au centre du modèle de déploiement de projet se trouve le fichier de déploiement de
projet (extension .ispac). Le fichier de déploiement de projet est une unité de
déploiement autonome qui inclut uniquement les informations essentielles relatives aux
packages et aux paramètres du projet. Le fichier de déploiement de projet ne capture
pas toutes les informations contenues dans le fichier projet Integration Services
(extension .dtproj). Par exemple, les fichiers texte supplémentaires que vous utilisez pour
l'écriture de commentaires ne sont pas stockés dans le fichier de déploiement de projet,
et ne sont donc pas déployés dans le catalogue.

Autorisations nécessaires pour déployer des


projets et des packages SSIS
Si vous utilisez un autre compte de service SSIS que le compte par défaut, vous devrez
peut-être accorder des autorisations supplémentaires à ce compte de service pour
pouvoir déployer correctement les packages. Si le compte de service qui n’est pas le
compte par défaut n’a pas les autorisations appropriées, le message d’erreur suivant
peut s’afficher.

A .NET Framework error occurred during execution of user-defined routine or

aggregate "deploy_project_internal": System.ComponentModel.Win32Exception: A


required privilege is not held by the client.

Cette erreur est généralement le résultat d’autorisations DCOM manquantes. Pour


corriger l’erreur, effectuez les actions suivantes :

1. Ouvrez la console Services de composants (ou exécutez Dcomcnfg.exe).


2. Dans la console Services de composants, développez Services de
composants>Ordinateurs>Poste de travail>Configuration DCOM.
3. Dans la liste, recherchez Microsoft SQL Server Integration Services xx.0 pour la
version de SQL Server que vous utilisez. Par exemple, SQL Server 2016 correspond
à la version 13.
4. Effectuez un clic droit et sélectionnez Propriétés.
5. Dans la boîte de dialogue Propriétés de Microsoft SQL Server Integration
Services 13.0, sélectionnez l’onglet Sécurité.
6. Pour chacun des trois ensembles d’autorisations (Lancement et Activation, Accès et
Configuration), sélectionnez Personnaliser, puis sélectionnez Modifier pour ouvrir
la boîte de dialogue Autorisation.
7. Dans la boîte de dialogue Autorisation, ajoutez le compte de service qui n’est pas
le compte par défaut, puis accordez les autorisations Autoriser appropriées. En
règle générale, un compte a les autorisations Exécution locale et Activation locale.
8. Cliquez sur OK à deux reprises, puis fermez la console Services de composants.

Pour plus d’informations sur l’erreur décrite dans cette section et sur les autorisations
nécessaires au compte de service SSIS, consultez le billet de blog suivant :

System.ComponentModel.Win32Exception : il manque un privilège obligatoire au


client pendant le déploiement d’un projet SSIS

Déployer des projets sur le serveur Integration


Services
Dans la version actuelle d’ Integration Services, vous pouvez déployer vos projets sur le
serveur Integration Services . Le serveur Integration Services vous permet de gérer les
packages, d'exécuter les packages et de configurer les valeurs d'exécution des packages
à l'aide d'environnements.
7 Notes

À l’instar des versions antérieures d’ Integration Services, la version actuelle vous


permet aussi de déployer vos packages sur une instance de SQL Server et d’utiliser
le service Integration Services pour exécuter et gérer les packages. Utilisez le
modèle de déploiement de package. Pour plus d’informations, consultez
Déploiement de packages hérités (SSIS).

Pour déployer un projet sur le serveur Integration Services , effectuez les tâches
suivantes :

1. Créez un catalogue SSISDB, si vous ne l’avez pas encore fait. Pour plus
d’informations, consultez Catalogue SSIS.

2. Convertissez le projet en modèle de déploiement de projet en exécutant


l’Assistant Conversion de projet Integration Services. Pour plus d’informations,
consultez les instructions suivantes : Pour convertir un projet en modèle de
déploiement de projet

Si vous avez créé le projet dans SQL Server 2014 Integration Services (SSIS)
ou une version ultérieure, le projet utilise par défaut le modèle de
déploiement de projet.

Si vous avez créé le projet dans une version précédente de Integration


Services, après avoir ouvert le fichier projet dans Visual Studio, convertissez le
projet en modèle de déploiement de projet.

7 Notes

Si le projet contient une ou plusieurs sources de données, les sources de


données sont supprimées quand la conversion du projet est terminée.
Pour créer une connexion à une source de données que les packages du
projet peuvent partager, ajoutez un gestionnaire de connexions au
niveau du projet. Pour plus d’informations, consultez Ajouter, supprimer
ou partager un gestionnaire de connexions dans un package.

Selon que vous exécutez l’Assistant Conversion de projet Integration


Services à partir de Visual Studio ou à partir de SQL Server Management
Studio, l’Assistant effectue différentes tâches de conversion.

Si vous exécutez l'Assistant à partir de Visual Studio, les packages


contenus dans le projet sont convertis de Integration Services 2005, 2008
ou 2008 R2 vers le format utilisé par la version en cours de Integration
Services. Les fichiers du projet d'origine (.dtproj) et de package (.dtsx) sont
mis à niveau.

Si vous exécutez l’Assistant à partir de SQL Server Management Studio,


l’Assistant génère un fichier de déploiement de projet (.ispac) à partir des
packages et des configurations contenus dans le projet. Les fichiers de
package d'origine (.dtsx) ne sont pas mis à niveau.

Vous pouvez sélectionner un fichier existant ou en créer un dans la page


Destination de la sélection de l’Assistant.

Pour mettre à niveau des fichiers de package pendant la conversion d’un


projet, exécutez l’Assistant Conversion de projet Integration Services à
partir de Visual Studio. Pour mettre à niveau des fichiers de package en
dehors d’une conversion de projet, exécutez l’Assistant Conversion de
projet Integration Services à partir de SQL Server Management Studio ,
puis exécutez l’Assistant Mise à niveau de packages SSIS. Si vous mettez à
niveau les fichiers de package séparément, assurez-vous d'enregistrer les
modifications. À défaut, lorsque vous convertissez le projet en modèle de
déploiement de projet, les modifications non enregistrées dans le package
ne sont pas converties.

Pour plus d’informations sur la mise à niveau des packages, consultez Mettre à
niveau des packages Integration Services et Mettre à niveau des packages
Integration Services à l’aide de l’Assistant Mise à niveau de packages SSIS.

3. Déployez le projet sur le serveur Integration Services . Pour plus d’informations,


consultez les instructions ci-dessous : Pour déployer un projet sur le serveur
Integration Services.

4. (Facultatif) Créez un environnement pour le projet déployé.

Pour convertir un projet en modèle de déploiement de


projet
1. Ouvrez le projet dans Visual Studio, puis dans l’Explorateur de solutions, cliquez
avec le bouton droit sur le projet et sélectionnez Convertir en modèle de
déploiement de projet.

- ou -
Depuis l’Explorateur d’objets dans Management Studio, cliquez avec le bouton
droit sur le nœud Projets et sélectionnez Importer les packages.

2. Terminez l'Assistant.

Pour déployer un projet sur le serveur Integration


Services
1. Ouvrez le projet dans Visual Studiopuis, dans le menu Projet , sélectionnez
Déployer pour lancer l’Assistant Déploiement d’Integration Services.

ou

Dans SQL Server Management Studio, développez le nœud Integration Services


>SSISDB dans l’Explorateur d’objets, puis recherchez le dossier du projet que vous
souhaitez déployer. Cliquez avec le bouton droit sur le dossier des projets , puis
cliquez sur Déployer le projet.

ou

À l’invite de commandes, exécutez isdeploymentwizard.exe à partir de


%ProgramFiles%\Microsoft SQL Server\130\DTS\Binn. Sur les ordinateurs 64 bits,
il existe également une version 32 bits de l’outil dans
%ProgramFiles(x86)%\Microsoft SQL Server\130\DTS\Binn.

2. Dans la page Sélectionner une source , cliquez sur Fichier de déploiement de


projet pour sélectionner le fichier de déploiement du projet.

ou

Cliquez sur Catalogue Integration Services pour sélectionner un projet qui a déjà
été déployé dans le catalogue SSISDB.

3. Terminez l'Assistant.

Déployer des packages sur le serveur


Integration Services
La fonctionnalité Déploiement incrémentiel de packages introduite dans SQL
Server 2016 Integration Services (SSIS) vous permet de déployer un ou plusieurs
packages dans un projet existant ou nouveau sans déployer la totalité du projet.
Déployer des packages à l’aide de l’Assistant Déploiement
d’Integration Services
1. À l’invite de commandes, exécutez isdeploymentwizard.exe à partir de
%ProgramFiles%\Microsoft SQL Server\130\DTS\Binn. Sur les ordinateurs 64 bits,
il existe également une version 32 bits de l’outil dans
%ProgramFiles(x86)%\Microsoft SQL Server\130\DTS\Binn.

2. Dans la page Sélectionner une source , accédez à Modèle de déploiement de


package. Sélectionnez ensuite le dossier qui contient les packages sources et
configurez-les.

3. Terminez l'Assistant. Suivez le reste de la procédure décrite dans Package


Deployment Model.

Déployer des packages à l’aide de SQL Server


Management Studio
1. Dans SQL Server Management Studio, développez le nœud Catalogues
Integration Services>SSISDB dans l’Explorateur d’objets.

2. Cliquez avec le bouton droit sur le dossier Projets , puis cliquez sur Déployer des
projets.

3. Si la page Introduction s’affiche, cliquez sur Suivant pour continuer.

4. Dans la page Sélectionner une source , accédez à Modèle de déploiement de


package. Sélectionnez ensuite le dossier qui contient les packages sources et
configurez-les.

5. Terminez l'Assistant. Suivez le reste de la procédure décrite dans Package


Deployment Model.

Déployer des packages à l’aide de SQL Server Data Tools


(Visual Studio)
1. Dans Visual Studio, ouvrez un projet Integration Services si ce n’est déjà fait, et
sélectionnez le ou les packages que vous souhaitez déployer.

2. Cliquez avec le bouton droit et sélectionnez Déployer le package. l’Assistant


Déploiement s’ouvre avec les packages sélectionnés configurés en tant que
packages sources.
3. Terminez l'Assistant. Suivez le reste de la procédure décrite dans Package
Deployment Model.

Déployer des packages à l’aide de la procédure stockée


deploy_packages
Vous pouvez utiliser la procédure stockée [catalog].[deploy_packages] pour déployer
un ou plusieurs packages SSIS dans le catalogue SSIS. l’exemple de code suivant montre
comment utiliser cette procédure stockée pour déployer des packages sur un serveur
SSIS. Pour plus d’informations, consultez catalog.deploy_packages.

C#

private static void Main(string[] args)


{
// Connection string to SSISDB
var connectionString = "Data Source=.;Initial Catalog=SSISDB;Integrated
Security=True;MultipleActiveResultSets=false";

using (var sqlConnection = new SqlConnection(connectionString))


{
sqlConnection.Open();

var sqlCommand = new SqlCommand


{
Connection = sqlConnection,
CommandType = CommandType.StoredProcedure,
CommandText = "[catalog].[deploy_packages]"
};

var packageData =
Encoding.UTF8.GetBytes(File.ReadAllText(@"C:\Test\Package.dtsx"));

// DataTable: name is the package name without extension and


package_data is byte array of package.
var packageTable = new DataTable();
packageTable.Columns.Add("name", typeof(string));
packageTable.Columns.Add("package_data", typeof(byte[]));
packageTable.Rows.Add("Package", packageData);

// Set the destination project and folder which is named Folder and
Project.
sqlCommand.Parameters.Add(new SqlParameter("@folder_name",
SqlDbType.NVarChar, ParameterDirection.Input, "Folder", -1));
sqlCommand.Parameters.Add(new SqlParameter("@project_name",
SqlDbType.NVarChar, ParameterDirection.Input, "Project", -1));
sqlCommand.Parameters.Add(new SqlParameter("@packages_table",
SqlDbType.Structured, ParameterDirection.Input, packageTable, -1));
var result = sqlCommand.Parameters.Add("RetVal", SqlDbType.Int);
result.Direction = ParameterDirection.ReturnValue;

sqlCommand.ExecuteNonQuery();
}
}

Déployer des packages à l’aide de l’API Modèle d’objet de


gestion
l’exemple de code suivant montre comment utiliser l’API Modèle d’objet de gestion
pour déployer des packages sur un serveur.

C#

static void Main()


{
// Before deploying packages, make sure the destination project exists
in SSISDB.
var connectionString = "Data Source=.;Integrated
Security=True;MultipleActiveResultSets=false";
var catalogName = "SSISDB";
var folderName = "Folder";
var projectName = "Project";

// Get the folder instance.


var sqlConnection = new SqlConnection(connectionString);
var store = new
Microsoft.SqlServer.Management.IntegrationServices.IntegrationServices(sqlCo
nnection);
var folder = store.Catalogs[catalogName].Folders[folderName];

// Key is package name without extension and value is package binaries.


var packageDict = new Dictionary<string, string>();

var packageData = File.ReadAllText(@"C:\Folder\Package.dtsx");


packageDict.Add("Package", packageData);

// Deploy package to the destination project.


folder.DeployPackages(projectName, packageDict);
}

Convertir en modèle de déploiement de


package, boîte de dialogue
La commande Convertir en modèle de déploiement de package vous permet de
convertir un package en modèle de déploiement de package après avoir vérifié la
compatibilité du projet et de chaque package du projet avec ce modèle. Si un package
utilise des fonctionnalités propres au modèle de déploiement de projet, par exemple
des paramètres spécifiques, le package ne peut pas être converti.

La conversion d'un package en modèle de déploiement de package requiert deux


étapes.

1. Quand vous sélectionnez la commande Convertir en modèle de déploiement de


package dans le menu Projet , le projet et les packages individuels sont examinés
dans le but de garantir leur compatibilité avec ce modèle. Les résultats s’affichent
dans le tableau Résultats .

Si le projet ou un package ne réussit pas le test de compatibilité, cliquez sur Échec


dans la colonne Résultat pour obtenir des informations supplémentaires. Cliquez
sur Enregistrer le rapport pour enregistrer une copie de ces informations dans un
fichier texte.

2. Si le projet et tous les packages réussissent le test de compatibilité, cliquez sur OK


pour convertir le package.

7 Notes

Pour convertir un projet en modèle de déploiement de projet, utilisez l’Assistant


Conversion de projet Integration Services. Pour plus d’informations, consultez
Assistant Conversion de projet Integration Services.

Assistant Déploiement d’Integration Services


L’ Assistant Déploiement d’Integration Services prend en charge deux modèles de
déploiement :

Le modèle de déploiement de projet


le modèle de déploiement de package

Le modèle de déploiement de projet vous permet de déployer un projet SQL Server


Integration Services (SSIS) comme une seule unité dans le catalogue SSIS.

Le modèle de déploiement de package vous permet de déployer des packages que


vous avez mis à jour dans le catalogue SSIS sans avoir besoin de déployer l’ensemble du
projet.
7 Notes

Le déploiement par défaut de l’Assistant est le modèle de déploiement de projet.

Lancer l'Assistant
Lancer l’Assistant en :

En tapant « Assistant déploiement SQL Server » dans Windows Search

ou

En recherchant le fichier exécutable ISDeploymentWizard.exe sous le dossier


d’installation de SQL Server, par exemple : « C:\Program Files (x86)\Microsoft SQL
Server\130\DTS\Binn ».

7 Notes

Cliquez sur Suivant sur la page Introduction pour afficher la page Sélectionner une
source .

Les paramètres de cette page sont différents pour chaque modèle de déploiement.
Suivez les étapes de la section Modèle de déploiement de projet ou de la section
Modèle de déploiement de package en fonction du modèle que vous avez sélectionné
dans cette page.

Modèle de déploiement de projet

Sélectionner la source
Pour déployer un fichier de déploiement de projet que vous avez créé, sélectionnez
Fichier de déploiement de projet , puis entrez le chemin d’accès du fichier .ispac. Pour
déployer un projet qui réside dans le catalogue Integration Services , sélectionnez
Catalogue Integration Services, puis entrez le nom du serveur et le chemin d'accès au
projet au sein du catalogue. Cliquez sur Suivant pour afficher la page Sélectionner la
destination .

Sélectionner la destination
Pour sélectionner le dossier de destination du projet dans le catalogue Integration
Services , entrez l'instance de SQL Server ou cliquez sur Parcourir pour sélectionner un
serveur dans une liste de serveurs. Entrez le chemin d'accès au projet dans SSISDB ou
cliquez sur Parcourir pour le sélectionner. Cliquez sur Suivant pour afficher la page
Vérifier .

Vérifier (et déployer)


La page vous permet de vérifier les paramètres que vous avez sélectionnés. Vous pouvez
modifier vos sélections en cliquant sur Précédentou en cliquant sur l'une des étapes
dans le volet gauche. Cliquez sur Déployer pour démarrer le processus de déploiement.

Résultats

Une fois le processus de déploiement terminé, la page Résultats doit s’afficher. Cette
page indique la réussite ou l’échec de chaque action. Si l'action échoue, cliquez sur
Échec dans la colonne Résultat pour afficher une explication de l'erreur. Cliquez sur
Enregistrer le rapport pour enregistrer les résultats dans un fichier XML, ou cliquez sur
Fermer pour quitter l’Assistant.

Modèle de déploiement de package

Sélectionner la source
La page Sélectionner une source dans l’ Assistant Déploiement d’Integration Services
affiche les paramètres spécifiques au modèle de déploiement de package si vous avez
sélectionné l’option Déploiement de package comme modèle de déploiement.

Pour sélectionner les packages sources, cliquez sur le bouton Parcourir... pour
sélectionner le dossier qui contient les packages ou tapez le chemin du dossier dans la
zone de texte Chemin d’accès du dossier des packages, puis cliquez sur le bouton
Actualiser en bas de la page. Tous les packages contenus dans le dossier spécifié
doivent s’afficher dans la zone de liste. Par défaut, tous les packages sont sélectionnés.
Cliquez sur la case à cocher dans la première colonne pour choisir les packages à
déployer sur le serveur.

Consultez les colonnes État et Message pour vérifier l’état du package. Si l’état est défini
sur Prêt ou Avertissement, l’Assistant Déploiement ne bloquera pas le processus de
déploiement. Si l’état est défini sur Erreur, l’Assistant ne poursuivra pas le déploiement
des packages sélectionnés. Pour afficher les messages d’avertissement ou d’erreur
détaillés, cliquez sur le lien affiché dans la colonne Message.
Si les données sensibles ou les données de package sont chiffrées avec un mot de
passe, tapez le mot de passe dans la colonne Mot de passe et cliquez sur le bouton
Actualiser pour vérifier si le mot de passe est accepté. Si le mot de passe est correct,
l’état passe à Prêt et le message d’avertissement disparaît. S’il existe plusieurs packages
avec le même mot de passe, sélectionnez les packages ayant le même mot de passe de
chiffrement, tapez le mot de passe dans la zone de texte Mot de passe, puis
sélectionnez le bouton Appliquer. Le mot de passe est appliqué aux packages
sélectionnés.

Si l’état de tous les packages sélectionnés n’est pas défini sur Erreur, le bouton Suivant
est activé pour vous permettre de poursuivre le processus de déploiement de package.

Sélectionner la destination
Après avoir sélectionné les sources de package, cliquez sur le bouton Suivant pour
afficher la page Sélectionner la destination. Les packages doivent être déployés dans un
projet dans le catalogue SSIS (SSISDB). Avant de déployer des packages, vérifiez que le
projet de destination existe déjà dans le catalogue SSIS. Créez un projet vide s’il n’existe
aucun projet. Dans la page Sélectionner la destination, tapez le nom du serveur dans la
zone de texte Nom du serveur ou cliquez sur le bouton Parcourir... pour sélectionner
une instance de serveur. Cliquez ensuite sur le bouton Parcourir... en regard de la zone
de texte Chemin pour spécifier le projet de destination. Si le projet n’existe pas, cliquez
sur le bouton Nouveau projet... pour créer un projet vide comme projet de destination.
Le projet doit être créé dans un dossier.

Vérifier et déployer

Cliquez sur Suivant sur la page Sélectionner la destination pour afficher la page Vérifier
dans l’ Assistant Déploiement d’Integration Services. Sur la page de vérification, passez
en revue le rapport de synthèse sur l’action de déploiement. Après la vérification, cliquez
sur le bouton Déployer pour exécuter l’action de déploiement.

Résultats

Une fois le déploiement terminé, la page Résultats doit s’afficher. Sur la page Résultats,
passez en revue les résultats de chaque étape du processus de déploiement. Cliquez sur
Enregistrer le rapport pour enregistrer le rapport de déploiement ou sur Fermer pour
fermer l’Assistant.

Créer et mapper un environnement serveur


Vous créez un environnement serveur pour spécifier les valeurs d’exécution des
packages contenus dans un projet que vous avez déployé sur le serveur Integration
Services. Vous pouvez ensuite mapper les variables d'environnement aux paramètres,
pour un package spécifique, pour les packages de point d'entrée, ou pour tous les
packages dans un projet donné. Un package de point d'entrée est généralement un
package parent qui exécute un package enfant.

) Important

Pour une exécution données, un package peut s'exécuter uniquement avec les
valeurs contenues dans un seul environnement.

Vous pouvez interroger les affichages afin d'obtenir la liste des environnements serveur,
des références environnementales et des variables d'environnement. Vous pouvez
également appeler des procédures stockées pour ajouter, supprimer et modifier des
environnements, des références environnementales et des variables d’environnement.
Pour plus d’informations, consultez la section Environnements serveur, variables de
serveur et références d’environnement serveur dans le catalogue SSIS.

Pour créer et utiliser un environnement serveur


1. Dans Management Studio, développez le nœud SSISDB de Catalogues Integration
Services dans l’Explorateur d’objets, puis recherchez le dossier Environnements du
projet pour lequel vous voulez créer un environnement.

2. Cliquez avec le bouton droit sur le dossier Environnements , puis cliquez sur Créer
l’environnement.

3. Tapez un nom pour l’environnement et ajoutez éventuellement une description.


Cliquez sur OK.

4. Cliquez avec le bouton droit sur le nouvel environnement, puis sélectionnez


Propriétés.

5. Dans la page Variables , procédez comme suit pour ajouter une variable.

a. Sélectionnez le Type de la variable. Le nom de la variable ne doit pas


nécessairement correspondre au nom du paramètre du projet que vous mappez
à la variable.

b. Entrez une Description facultative pour la variable.

c. Entrez la Valeur de la variable d'environnement.


Pour plus d'informations sur les règles énoncées pour les noms de variable
d'environnement, consultez la section Variable d'environnement dans SSIS
Catalog.

d. Indiquez si la variable contient une valeur sensible, en activant ou désactivant la


case à cocher Sensible .

Si vous sélectionnez Sensible, la valeur de la variable ne s'affiche pas dans le


champ Valeur .

Les valeurs sensibles sont chiffrées dans le catalogue SSISDB. Pour plus
d'informations sur le chiffrement, consultez SSIS Catalog.

6. Dans la page Autorisations , accordez ou refusez des autorisations pour les rôles
et les utilisateurs sélectionnés en procédant comme suit.

a. Cliquez sur Parcourir, puis sélectionnez un ou plusieurs utilisateurs et rôles dans


la boîte de dialogue Parcourir tous les principaux .

b. Dans la zone Connexions ou rôles , sélectionnez l'utilisateur ou le rôle auquel


vous souhaitez accorder ou refuser des autorisations.

c. Dans la zone Explicite, sélectionnez Accorder ou sur Refuser en regard de


chaque autorisation.

7. Pour générer un script de l'environnement, cliquez sur Script. Par défaut, le script
s'affiche dans une nouvelle fenêtre de l'Éditeur de requête.

 Conseil

Vous devez cliquer sur Script après avoir apporté des modifications aux
propriétés d’environnement, telles que l’ajout d’une variable, et avant de
cliquer sur OK dans la boîte de dialogue Propriétés d’environnement. Sinon,
aucun script n'est généré.

8. Cliquez sur OK pour enregistrer les propriétés de l'environnement.

9. Sous le nœud SSISDB dans l’Explorateur d’objets, développez le dossier Projets ,


cliquez avec le bouton droit sur le projet, puis cliquez sur Configurer.

10. Dans la page Références , cliquez sur Ajouter pour ajouter un environnement, puis
cliquez sur OK pour enregistrer la référence dans l'environnement.

11. Recliquez avec le bouton droit sur le projet, puis cliquez sur Configurer.
12. Pour mapper la variable d’environnement à un paramètre que vous avez ajouté au
package au moment de la conception ou à un paramètre généré lors de la
conversion du projet Integration Services en modèle de déploiement de projet,
effectuez les étapes suivantes :

a. Dans l'onglet Paramètres dans la page Paramètres , cliquez sur le bouton


Parcourir en regard du champ Valeur .

b. Cliquez sur Utiliser la variable d'environnement, puis sélectionnez la variable


d'environnement que vous avez créée.

13. Pour mapper la variable d'environnement à une propriété du gestionnaire de


connexions, procédez comme suit. Les paramètres sont automatiquement générés
sur le serveur SSIS pour les propriétés du gestionnaire de connexions.

a. Sous l’onglet Gestionnaires de connexions dans la page Paramètres, cliquez sur


le bouton Parcourir en regard du champ Valeur.

b. Cliquez sur Utiliser la variable d'environnement, puis sélectionnez la variable


d'environnement que vous avez créée.

14. Cliquez deux fois sur OK pour enregistrer vos modifications.

Déployer et exécuter des packages SSIS à l'aide


de procédures stockées
Lorsque vous configurez un projet Integration Services afin d'utiliser le modèle de
déploiement de projet, vous pouvez utiliser les procédures stockées du catalogue SSIS
pour déployer le projet et pour exécuter des packages. Pour plus d’informations sur le
modèle de déploiement de projet, consultez Déploiement de projets et de packages.

Vous pouvez également utiliser SQL Server Management Studio ou SQL Server Data
Tools (SSDT) pour déployer le projet et pour exécuter des packages. Pour plus
d’informations, consultez les rubriques de la section Voir aussi .

 Conseil

Vous pouvez facilement créer des instructions Transact-SQL pour les procédures
stockées répertoriées dans la procédure ci-dessous, à l'exception de
catalog.deploy_project, en procédant comme suit :

1. Dans SQL Server Management Studio, développez le nœud Catalogues


Integration Services dans l’Explorateur d’objets et accédez au package à
exécuter.

2. Cliquez avec le bouton droit sur le package, puis cliquez sur Exécuter.

3. Si nécessaire, définissez les valeurs des paramètres, les propriétés du


gestionnaire de connexions, ainsi que les options de l’onglet Avancé , telles
que le niveau de journalisation.

Pour plus d’informations sur les niveaux de journalisation, consultez Activer la


journalisation des exécutions de package sur le serveur SSIS.

4. Avant de cliquer sur OK pour exécuter le package, cliquez sur Script. Transact-
SQL s’affiche dans une fenêtre de l’Éditeur de requête dans SQL Server
Management Studio.

Pour déployer et exécuter un package à l'aide de


procédures stockées
1. Appelez catalog.deploy_project (base de données SSISDB) pour déployer le projet
Integration Services qui contient le package sur le serveur Integration Services.

Pour récupérer le contenu binaire du fichier de déploiement de projet Integration


Services, pour le paramètre @project_stream, utilisez une instruction SELECT avec la
fonction OPENROWSET et le fournisseur d’ensembles de lignes BULK. Le
fournisseur d'ensembles de lignes BULK vous permet de lire des données dans un
fichier. L'argument SINGLE_BLOB du fournisseur d'ensembles de lignes BULK
retourne le contenu du fichier de données sous la forme d'un ensemble de lignes à
une seule ligne, une seule colonne de type varbinary (max). Pour plus
d’informations, consultez OPENROWSET (Transact-SQL).

Dans l’exemple suivant, le projet SSISPackages_ProjectDeployment est déployé


dans le dossier SSIS Packages sur le serveur Integration Services . Les données
binaires sont lues à partir du fichier projet (SSISPackage_ProjectDeployment.ispac)
et sont stockées dans le paramètre _@ProjectBinary de type varbinary(max). La
valeur du paramètre @ProjectBinary est affectée au paramètre @project_stream.

SQL

DECLARE @ProjectBinary as varbinary(max)


DECLARE @operation_id as bigint
Set @ProjectBinary = (SELECT * FROM OPENROWSET(BULK 'C:\MyProjects\
SSISPackage_ProjectDeployment.ispac', SINGLE_BLOB) as BinaryData)
Exec catalog.deploy_project @folder_name = 'SSIS Packages',
@project_name = 'DeployViaStoredProc_SSIS', @Project_Stream =
@ProjectBinary, @operation_id = @operation_id out

2. Appelez catalog.create_execution (base de données SSISDB) pour créer une


instance de l’exécution du package et éventuellement
catalog.set_execution_parameter_value (base de données SSISDB) pour définir les
valeurs de paramètres d’exécution.

Dans l'exemple suivant, catalog.create_execution crée une instance d'exécution


pour le fichier package.dtsx contenu dans le projet
SSISPackage_ProjectDeployment. Le projet se trouve dans le dossier SSIS Packages.
L'execution_id retourné par la procédure stockée est utilisé dans l'appel à
catalog.set_execution_parameter_value. Cette deuxième procédure stockée
attribue au paramètre LOGGING_LEVEL la valeur 3 (journalisation verbose) et
attribue à un paramètre de package nommé Parameter1 la valeur 1.

Pour les paramètres tels que LOGGING_LEVEL la valeur d'object_type est 50. Pour
les paramètres de package la valeur d'object_type est 30.

SQL

Declare @execution_id bigint


EXEC [SSISDB].[catalog].[create_execution]
@package_name=N'Package.dtsx', @execution_id=@execution_id OUTPUT,
@folder_name=N'SSIS Packages',
@project_name=N'SSISPackage_ProjectDeployment', @use32bitruntime=False,
@reference_id=1

Select @execution_id
DECLARE @var0 smallint = 3
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,
@object_type=50, @parameter_name=N'LOGGING_LEVEL',
@parameter_value=@var0

DECLARE @var1 int = 1


EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,
@object_type=30, @parameter_name=N'Parameter1', @parameter_value=@var1

GO

3. Appelez catalog.start_execution (base de données SSISDB) pour exécuter le


package.
Dans l'exemple suivant, un appel à catalog.start_execution est ajouté à Transact-
SQL pour démarrer l'exécution du package. L'execution_id retourné par la
procédure stockée catalog.create_execution est utilisé.

SQL

Declare @execution_id bigint


EXEC [SSISDB].[catalog].[create_execution]
@package_name=N'Package.dtsx', @execution_id=@execution_id OUTPUT,
@folder_name=N'SSIS Packages',
@project_name=N'SSISPackage_ProjectDeployment', @use32bitruntime=False,
@reference_id=1

Select @execution_id
DECLARE @var0 smallint = 3
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,
@object_type=50, @parameter_name=N'LOGGING_LEVEL',
@parameter_value=@var0

DECLARE @var1 int = 1


EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,
@object_type=30, @parameter_name=N'Parameter1', @parameter_value=@var1

EXEC [SSISDB].[catalog].[start_execution] @execution_id


GO

Pour déployer un projet de serveur à serveur à l'aide de


procédures stockées
Vous pouvez déployer un projet de serveur à serveur à l’aide des procédures stockées
catalog.get_project (base de données SSISDB) et catalog.deploy_project (base de
données SSISDB).

Vous devez effectuer les opérations suivantes avant d'exécuter les procédures stockées.

Créez un objet serveur lié. Pour plus d’informations, consultez Créer des serveurs
liés (moteur de base de données SQL Server).

Dans la page Options du serveur de la boîte de dialogue Propriétés du serveur lié


, attribuez à RPC et à Sortie RPC la valeur True. Par ailleurs, attribuez à Activer la
promotion des transactions distribuées pour RPC la valeur False.

Vérifiez les paramètres dynamiques du fournisseur que vous avez sélectionné pour
le serveur lié : développez le nœud Fournisseurs sous Serveurs liés dans
l’Explorateur d’objets, puis cliquez avec le bouton droit sur le fournisseur et cliquez
sur Propriétés. Sélectionnez Activer en regard de Paramètre dynamique.
Vérifiez que le Coordinateur de transactions distribuées (DTC, Distributed
Transaction Coordinator) est démarré sur les deux serveurs.

Appelez catalog.get_project pour retourner les données binaires du projet, puis appelez
catalog.deploy_project. La valeur retournée par catalog.get_project est insérée dans une
variable de table de type varbinary (max). Le serveur lié ne peut pas retourner des
résultats qui sont varbinary (max).

Dans l'exemple suivant, catalog.get_project retourne une valeur binaire pour le projet
SSISPackages sur le serveur lié. catalog.deploy_project déploie le projet sur le serveur
local, dans un dossier nommé DestFolder.

SQL

declare @resultsTableVar table (


project_binary varbinary(max)
)

INSERT @resultsTableVar (project_binary)


EXECUTE [MyLinkedServer].[SSISDB].[catalog].[get_project] 'Packages',
'SSISPackages'

declare @project_binary varbinary(max)


select @project_binary = project_binary from @resultsTableVar

exec [SSISDB].[CATALOG].[deploy_project] 'DestFolder', 'SSISPackages',


@project_binary

Assistant Conversion de projet Integration


Services
L’Assistant Conversion de projet Integration Services convertit un projet en modèle de
déploiement de projet.

7 Notes

Si le projet contient une ou plusieurs sources de données, les sources de données


sont supprimées quand la conversion du projet est terminée. Pour créer une
connexion à une source de données pouvant être partagée par les packages du
projet, ajoutez un gestionnaire de connexions au niveau du projet. Pour plus
d’informations, consultez Ajouter, supprimer ou partager un gestionnaire de
connexions dans un package.
Que voulez-vous faire ?

Ouvrir l'Assistant Conversion de projet Integration Services

Définir les options sur la page Localiser les packages

Définir les options sur la page Sélectionner les package

Définir les options sur la page Sélectionner la destination

Définir les options sur la page Spécifier les propriétés du projet

Définir les options sur la page Mettre à jour la tâche d'exécution de package

Définir les options sur la page Sélectionner les configurations

Définir les options sur la page Créer des paramètres

Définir les options sur la page Configurer les paramètres

Définir les options de la page Vérifier

Définir les options de la page Effectuer la conversion

Ouvrir l'Assistant Conversion de projet Integration


Services
Pour ouvrir l’Assistant Conversion de projet Integration Services , effectuez l’une des
opérations suivantes.

Ouvrez le projet dans Visual Studio, puis dans l’Explorateur de solutions, cliquez
avec le bouton droit sur le projet et sélectionnez Convertir en modèle de
déploiement de projet.

À partir de l’Explorateur d’objets dans Management Studio, cliquez avec le bouton


droit sur le nœud Projets dans le Catalogue Integration Services, puis
sélectionnez Importer les packages.

Selon que vous exécutez l’Assistant Conversion de projet Integration Services à partir
de Visual Studio ou à partir de SQL Server Management Studio, l’Assistant effectue
différentes tâches de conversion.

Définir les options sur la page Localiser les packages

7 Notes
La page Localiser les packages est disponible uniquement quand vous exécutez
l’Assistant à partir de Management Studio.

L’option suivante s’affiche dans la page quand vous sélectionnez Système de fichiers
dans la liste déroulante Source . Sélectionnez cette option quand le package se trouve
dans le système de fichiers.

Folder
Tapez le chemin d’accès du package ou accédez au package en cliquant sur Parcourir.

Les options suivantes s’affichent dans la page quand vous sélectionnez Magasin de
packages SSIS dans la liste déroulante Source. Pour plus d’informations sur le magasin
de packages, consultez Gestion de packages (Service SSIS).

Serveur
Tapez le nom du serveur ou sélectionnez ce dernier.

Folder
Tapez le chemin d’accès du package ou accédez au package en cliquant sur Parcourir.

Les options suivantes s’affichent dans la page quand vous sélectionnez Microsoft SQL
Server dans la liste déroulante Source . Sélectionnez cette option quand le package se
trouve dans Microsoft SQL Server.

Serveur
Tapez le nom du serveur ou sélectionnez ce dernier.

Utiliser l’authentification Windows


Le mode d'authentification Microsoft Windows permet à l'utilisateur de se connecter au
moyen d'un compte d'utilisateur Windows. Si vous utilisez l'authentification Windows,
vous n'avez pas besoin de fournir un nom d'utilisateur ou un mot de passe.

Utiliser l'authentification SQL Server


Quand un utilisateur se connecte avec un nom d’accès et un mot de passe spécifiés à
partir d’une connexion non autorisée, SQL Server authentifie la connexion en vérifiant si
un compte de connexion SQL Server a été défini et si le mot de passe spécifié
correspond à celui enregistré. Si SQL Server ne possède pas de compte de connexion,
l'authentification échoue et un message d'erreur est envoyé à l'utilisateur.

Nom d’utilisateur
Spécifiez un nom d'utilisateur lorsque vous utilisez l'authentification SQL Server.

Mot de passe
Tapez le mot de passe lorsque vous utilisez l'authentification SQL Server.
Folder
Tapez le chemin d’accès du package ou accédez au package en cliquant sur Parcourir.

Définir les options sur la page Sélectionner les package


Nom du package
Indique le fichier de package.

État
Indique si un package est prêt à être converti en modèle de déploiement de projet.

Message
Affiche un message associé au package.

Mot de passe
Affiche un mot de passe associé au package. Le texte du mot de passe est masqué.

Appliquer à la sélection
Cliquez pour appliquer le mot de passe de la zone de texte Mot de passe au(x)
package(s) sélectionné(s).

Actualiser
Actualise la liste des packages.

Définir les options sur la page Sélectionner la destination


Dans cette page, spécifiez le nom et le chemin d'accès d'un nouveau fichier de
déploiement de projet (.ispac) ou sélectionnez un fichier existant.

7 Notes

La page Sélectionner la destination est disponible uniquement quand vous


exécutez l’Assistant à partir de Management Studio.

Chemin de sortie
Tapez le chemin d’accès du fichier de déploiement ou accédez à ce dernier en cliquant
sur Parcourir.

Nom du projet
Tapez le nom du projet.

Niveau de protection
Sélectionnez le niveau de protection. Pour plus d'informations, consultez Access Control
for Sensitive Data in Packages.

Description du projet
Tapez une description facultative du projet.

Définir les options sur la page Spécifier les propriétés du


projet

7 Notes

La page Spécifier les propriétés du projet est disponible uniquement quand vous
exécutez l’Assistant à partir de Visual Studio.

Nom du projet
Indique le nom du projet.

Niveau de protection
Sélectionnez le niveau de protection des packages contenus dans le projet. Pour plus
d’informations sur les niveaux de protection, consultez Contrôle d’accès pour les
données sensibles présentes dans les packages.

Description du projet
Si vous le souhaitez, tapez une description du projet.

Définir les options sur la page Mettre à jour la tâche


d'exécution de package
Mettez à jour les tâches d'exécution de package contenues dans les packages pour
utiliser une référence basée sur un projet. Pour plus d'informations, consultez Execute
Package Task Editor.

Package parent
Indique le nom du package qui exécute le package enfant à l'aide de la tâche
d'exécution de package.

Nom de la tâche
Indique le nom de la tâche d'exécution de package.

Référence d'origine
Indique le chemin d'accès actuel du package enfant.
Affecter une référence
Sélectionnez un package enfant stocké dans le projet.

Définir les options sur la page Sélectionner les


configurations
Sélectionnez les configurations de package que vous souhaitez remplacer par des
paramètres.

Package
Indique le fichier de package.

Type
Indique le type de configuration, par exemple un fichier de configuration XML.

Chaîne de configuration
Indique le chemin d'accès du fichier de configuration.

État
Affiche un message d'état pour la configuration. Cliquez sur le message pour afficher
l'intégralité du texte du message.

Ajouter des configurations


Ajoutez les configurations de package contenues dans d'autres projets à la liste des
configurations disponibles que vous souhaitez remplacer à l'aide de paramètres. Vous
pouvez sélectionner des configurations stockées dans un système de fichiers ou dans
SQL Server.

Actualiser
Cliquez pour actualiser la liste des configurations.

Supprimer les configurations de tous les packages après la conversion


Il est recommandé de supprimer toutes les configurations de projet en sélectionnant
cette option.

Si vous ne sélectionnez pas cette option, seules les configurations que vous avez
sélectionnées pour remplacement à l’aide de paramètres sont supprimées.

Définir les options sur la page Créer des paramètres


Sélectionnez le nom et l'étendue du paramètre pour chaque propriété de configuration.
Package
Indique le fichier de package.

Nom du paramètre
Indique le nom du paramètre.

Étendue
Sélectionnez l'étendue du paramètre, package ou projet.

Définir les options sur la page Configurer les paramètres


Nom
Indique le nom du paramètre.

Étendue
Indique l'étendue du paramètre.

Valeur
Indique la valeur du paramètre.

Cliquez sur le bouton de sélection en regard du champ de valeur pour configurer les
propriétés du paramètre.

Dans la boîte de dialogue Définir les détails du paramètre , vous pouvez modifier la
valeur de paramètre. Vous pouvez également spécifier si la valeur de paramètre doit être
fournie lorsque vous exécutez le package.

Vous pouvez modifier la valeur dans la page Paramètres de la boîte de dialogue


Configurer de Management Studioen cliquant sur le bouton Parcourir en regard du
paramètre. La boîte de dialogue Définir la valeur du paramètre s’affiche.

La boîte de dialogue Définir les détails du paramètre indique également le type de


données de la valeur de paramètre et l’origine du paramètre.

Définir les options de la page Vérifier


Utilisez la page Vérifier pour confirmer l’exactitude des options sélectionnées pour la
conversion du projet.

Précédent
Cliquez pour modifier une option.

Convert
Cliquez pour convertir le projet en modèle de déploiement de projet.
Définir les options de la page Effectuer la conversion
La page Effectuer la conversion indique l'état de la conversion du projet.

Action
Indique une étape de conversion spécifique.

Résultat
Indique l'état de chaque étape de conversion. Pour plus d'informations, cliquez sur le
message d'état.

La conversion de projet n'est pas enregistrée tant que le projet n'est pas enregistré dans
Visual Studio.

Enregistrer le rapport
Cliquez pour enregistrer un résumé de la conversion du projet dans un fichier .xml.
Déploiement de packages hérités (SSIS)
Article • 30/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

SQL Server Integration Services comprend des outils et des assistants qui facilitent le
déploiement de packages de l’ordinateur de développement au serveur de production
ou à d’autres ordinateurs.

Ce processus de déploiement de package se déroule en quatre étapes :

1. La première étape, facultative, consiste à créer des configurations de package qui


mettent à jour les propriétés des éléments de package à l’exécution. Les
configurations sont automatiquement incluses lorsque vous déployez les
packages.

2. La deuxième étape consiste à générer le projet Integration Services afin de créer


un utilitaire de déploiement de package. L'utilitaire de déploiement du projet
contient les packages à déployer.

3. La troisième étape consiste à copier, sur l’ordinateur cible, le dossier de


déploiement créé lors de la génération du projet Integration Services.

4. La quatrième étape consiste à exécuter l’Assistant Installation de package sur


l’ordinateur cible pour installer les packages sur le système de fichiers ou une
instance de SQL Server.

Configurations du package
SQL Server Integration Services fournit des configurations de package avec lesquelles
vous pouvez mettre à jour les valeurs des propriétés au moment de l’exécution.

7 Notes

Des configurations sont disponibles pour le modèle de déploiement de package.


Les paramètres sont utilisés à la place des configurations pour le modèle de
déploiement de projet. Le modèle de déploiement de projet vous permet de
déployer vos projets sur le serveur Integration Services. Pour plus d'informations
sur les modèles de déploiement, consultez Deployment of Projects and Packages.
Une configuration est une paire propriété/valeur que vous ajoutez à un package
terminé. En règle générale, vous créez un package, définissez des propriétés sur les
objets du package lors du développement de ce dernier, puis ajoutez la configuration
au package. Lors de son exécution, le package extrait les nouvelles valeurs de la
propriété à partir de la configuration. Par exemple, lorsque vous utilisez une
configuration, vous pouvez modifier la chaîne de connexion d'un gestionnaire de
connexions ou mettre à jour la valeur d'une variable.

Les configurations de package offrent les avantages suivants :

Les configurations facilitent le déplacement des packages d'un environnement de


développement vers un environnement de production. Par exemple, une
configuration peut mettre à jour le chemin d'accès d'un fichier source ou bien
modifier le nom d'une base de données ou d'un serveur.

Les configurations sont utiles lorsque vous déployez des packages sur de
nombreux serveurs différents. Par exemple, une variable dans la configuration de
chaque package déployé peut contenir une valeur d’espace disque différente et, si
l’espace disque disponible ne correspond pas à cette valeur, le package ne
s’exécute pas.

Les configurations rendent ces packages plus souples. Par exemple, une
configuration peut mettre à jour la valeur d'une variable utilisée dans une
expression de propriété.

Integration Services prend en charge différentes méthodes de stockage des


configurations de package, telles que les fichiers XML, les tables d’une base de données
SQL Server et les variables d’environnement et de package.

Chaque configuration est une paire propriété/valeur. Le fichier de configuration XML et


les types de configuration SQL Server peuvent inclure plusieurs configurations.

Les configurations sont incluses lorsque vous créez un utilitaire de déploiement de


package pour l'installation des packages. Lorsque vous installez les packages, les
configurations peuvent être mises à jour lors d'une étape de l'installation du package.

Fonctionnement de l'application des configurations de


package au moment de l'exécution
Quand vous utilisez l’utilitaire d’invite de commandes dtexec (dtexec.exe) pour exécuter
un package déployé, l’utilitaire applique les configurations de package à deux reprises.
L'utilitaire applique les configurations avant et après avoir appliqué les options que vous
avez spécifiées sur la ligne de commande.
Lorsque l'utilitaire charge et exécute le package, des événements se produisent dans
l'ordre suivant :

1. L’utilitaire dtexec charge le package.

2. L'utilitaire applique les configurations spécifiées dans le package au moment de la


conception et dans l'ordre spécifié dans le package. (L’une des exceptions
concerne les configurations des variables de package parent. L’utilitaire applique
ces configurations une seule fois et plus tard dans le processus.)

3. L'utilitaire applique ensuite les options que vous avez spécifiées sur la ligne de
commande.

4. L'utilitaire recharge ensuite les configurations spécifiées dans le package au


moment du design et dans l'ordre spécifié dans le package. (Une fois encore, la
seule exception à cette règle concerne les configurations des variables de package
parent). L'utilitaire se base sur les options de ligne de commande spécifiées pour
recharger les configurations. Par conséquent, des valeurs différentes peuvent être
rechargées à partir d'un emplacement distinct.

5. L'utilitaire applique les configurations des variables de package parent.

6. L'utilitaire exécute le package.

La façon dont l’utilitaire dtexec applique les configurations affecte les options de ligne
de commande suivantes :

Vous pouvez utiliser l’option /Connection ou /Set à l’exécution pour charger les
configurations de package à partir d’un emplacement autre que celui que vous
avez spécifié au moment de la conception.

Vous pouvez utiliser l’option /ConfigFile pour charger des configurations


supplémentaires que vous n’aviez pas spécifiées au moment de la conception.

Toutefois, ces options de ligne de commande sont soumises à quelques restrictions :

Vous ne pouvez pas utiliser l’option /Set ni /Connection pour remplacer des
valeurs uniques qui sont également définies par une configuration.

Vous ne pouvez pas utiliser l’option /ConfigFile pour charger des configurations
qui remplacent celles que vous aviez spécifiées au moment de la conception.

Pour plus d’informations sur ces options, ainsi que sur les différences de comportement
de ces options entre SQL Server 2019 Integration Services (SSIS) et les versions
antérieures, consultez Changements de comportement des fonctionnalités Integration
Services dans SQL Server 2016.

Types de configuration de package


Le tableau suivant décrit les types de configuration de package.

Type Description

Fichier de Un fichier XML contient les configurations. Le fichier XML peut inclure
configuration plusieurs configurations.
XML

Variable Une variable d'environnement contient la configuration.


d’environnement

Entrée de Une entrée de Registre contient la configuration.


Registre

Variable de Une variable dans le package contient la configuration. Ce type de


package parent configuration est généralement utilisé pour mettre à jour les propriétés dans
les packages enfants.

Table SQL Server Une table d’une base de données SQL Server contient la configuration. La
table peut inclure plusieurs configurations.

Fichiers de configuration XML


Si vous sélectionnez le type de configuration Fichier de configuration XML , vous
pouvez créer un nouveau fichier de configuration, réutiliser un fichier existant et ajouter
de nouvelles configurations, ou réutiliser un fichier existant en remplaçant son contenu.

Un fichier de configuration XML est composé de deux sections :

Un en-tête qui contient des informations sur le fichier de configuration. Cet


élément comprend des attributs tels que la date de création du fichier et le nom
de la personne qui a généré le fichier.

Les éléments de configuration qui contiennent des informations sur chaque


configuration. Cet élément comprend des attributs tels que le chemin d'accès de la
propriété et la valeur configurée de la propriété.

Le code XML suivant présente la syntaxe d'un fichier de configuration XML. Cet exemple
montre une configuration de la propriété Valeur d’une variable de type entier nommée
MyVar .
XML

\<?xml version="1.0"?>
<DTSConfiguration>
<DTSConfigurationHeading>
<DTSConfigurationFileInfo
GeneratedBy="DomainName\UserName"
GeneratedFromPackageName="Package"
GeneratedFromPackageID="{2AF06766-817A-4E28-9878-0DE37A150648}"
GeneratedDate="2/01/2005 5:58:09 PM"/>
</DTSConfigurationHeading>
<Configuration ConfiguredType="Property"
Path="\Package.Variables[User::MyVar].Value" ValueType="Int32">
<ConfiguredValue>0</ConfiguredValue>
</Configuration>
</DTSConfiguration>

Entrée de Registre

Si vous souhaitez utiliser une entrée de Registre pour stocker la configuration, vous
pouvez utiliser une clé existante ou créer une clé dans HKEY_CURRENT_USER . La clé de
Registre que vous utilisez doit contenir une valeur nommée Value. Cette valeur peut être
de type DWORD ou une chaîne.

Si vous sélectionnez le type de configuration Entrée de Registre, tapez le nom de la clé


de Registre dans la zone d’entrée de Registre. Le format est <clé de Registre>. Si vous
souhaitez utiliser une clé de Registre qui n’est pas à la racine de HKEY_CURRENT_USER ,
utilisez le format <Clé de Registre\clé de Registre\...> pour identifier la clé. Par exemple,
pour utiliser la clé MyPackage située dans SSISPackages, tapez
SSISPackages\MyPackage.

SQL Server
Si vous sélectionnez le type de configuration SQL Server, vous spécifiez la connexion à
la base de données SQL Server dans laquelle vous voulez stocker les configurations.
Vous pouvez enregistrer les configurations dans une table existante ou créer une
nouvelle table dans la base de données spécifiée.

L'instruction SQL suivante montre l'instruction CREATE TABLE par défaut fournie par
l'Assistant Configuration de package.

SQL
CREATE TABLE [dbo].[SSIS Configurations]
(
ConfigurationFilter NVARCHAR(255) NOT NULL,
ConfiguredValue NVARCHAR(255) NULL,
PackagePath NVARCHAR(255) NOT NULL,
ConfiguredValueType NVARCHAR(20) NOT NULL
)

Le nom que vous donnez à la configuration est la valeur stockée dans la colonne
ConfigurationFilter .

Configurations directes et indirectes


Integration Services fournit des configurations directes et indirectes. Si vous spécifiez
directement les configurations, Integration Services crée un lien direct entre l’élément de
configuration et la propriété de l’objet package. Les configurations directes sont un
meilleur choix lorsque l’emplacement de la source ne change pas. Par exemple, si vous
êtes sûr que tous les déploiements dans le package utilisent le même chemin d'accès de
fichier, vous pouvez spécifier un fichier de configuration XML.

Les configurations indirectes utilisent des variables d'environnement. Au lieu de spécifier


directement le paramètre de configuration, la configuration pointe vers une variable
d'environnement, qui contient à son tour la valeur de configuration. L'utilisation de
configurations indirectes est un meilleur choix lorsque l'emplacement de la
configuration peut changer pour chaque déploiement d'un package.

Créer des configurations de package


Vous pouvez créer des configurations de package à l’aide de la boîte de dialogue
Bibliothèque des configurations du package et de l’Assistant Configuration de
package. Pour accéder à ces outils, sélectionnez Configurations du package dans le
menu SSIS de SQL Server Data Tools (SSDT).

7 Notes

Vous pouvez également accéder à la Bibliothèque des configurations du package ,


en cliquant sur le bouton de sélection (points de suspension) en regard de la
propriété Configuration . La propriété Configuration apparaît dans la fenêtre des
propriétés du package.
Des configurations sont disponibles pour le modèle de déploiement de package.
Les paramètres sont utilisés à la place des configurations pour le modèle de
déploiement de projet. Le modèle de déploiement de projet vous permet de
déployer vos projets sur le serveur Integration Services. Pour plus d'informations
sur les modèles de déploiement, consultez Deployment of Projects and Packages.

Dans la boîte de dialogue Bibliothèque des configurations du package , vous


pouvez permettre aux packages d'utiliser des configurations, ajouter et supprimer
des configurations et définir l'ordre souhaité dans lequel sont chargées les
configurations.

Lorsque les configurations du package sont chargées dans l'ordre souhaité, le


chargement est effectué du haut vers le bas de la liste affichée dans la boîte de
dialogue Bibliothèques des configurations du package . Toutefois, au moment de
l'exécution, il se peut que les configurations de package ne soient pas chargées
dans l'ordre souhaité. Les configurations de package parent sont notamment
chargées après les configurations d'autres types.

Si plusieurs configurations définissent la même propriété d'objet, la dernière valeur


chargée est utilisée à l'exécution.

À partir de la boîte de dialogue Bibliothèque des configurations du package , vous


pouvez exécuter l'Assistant Configuration de package, qui vous guide à travers les
étapes de création d'une configuration. Pour exécuter l'Assistant Configuration de
package, ajoutez une nouvelle configuration dans la boîte de dialogue Bibliothèque des
configurations du package ou modifiez une configuration existante. Sur les pages de
l'Assistant, vous choisissez un type de configuration, vous choisissez si vous souhaitez
accéder directement à la configuration ou utiliser des variables d'environnement, et
vous sélectionnez les propriétés à enregistrer dans la configuration.

L’exemple suivant illustre les propriétés cibles d’une variable et d’un package telles
qu’elles apparaissent dans la page Fin de l’Assistant de l’Assistant Configuration de
package :

\Package.Variables[User::TodaysDate].Properties[RaiseChangedEvent]

\Package.Properties[MaximumErrorCount]

\Package.Properties[LoggingMode]

\Package.Properties[LocaleID]

\Package\My SQL Task.Variables[User::varTableName].Properties[Value]


Dans cet exemple, la configuration met à jour ces propriétés :

Propriété RaiseChangedEvent de la variable définie par l’utilisateur TodaysDate

Propriétés MaximumErrorCount, LoggingMode et LocaleID du package

Propriété Value de la variable définie par l’utilisateur varTableName , dans la portée


de la tâche My SQL Task

La syntaxe « \Package » représente la racine, et les points (.) séparent les objets qui
définissent le chemin d'accès de la propriété mise à jour par la configuration. Les noms
de variables et de propriétés figurent entre crochets. Le terme Package est toujours
utilisé dans la configuration, quel que soit le nom du package ; toutefois, tous les autres
objets indiqués dans le chemin d'accès portent leur nom défini par l'utilisateur.

Une fois l'Assistant terminé, la nouvelle configuration est ajoutée à la liste des
configurations dans la boîte de dialogue Bibliothèque des configurations du package .

7 Notes

La dernière page de l'Assistant Configuration de package, Fin de l'Assistant,


répertorie les propriétés cibles dans la configuration. Si vous souhaitez mettre à
jour des propriétés pendant l’exécution de packages à l’aide de l’utilitaire d’invite
de commandes dtexec , vous pouvez générer les chaînes qui représentent les
chemins d’accès aux propriétés en exécutant l’Assistant Configuration de package,
puis les copier et les coller dans la fenêtre d’invite de commandes pour les utiliser
avec l’option set de dtexec.

Le tableau suivant décrit les colonnes dans la liste des configurations de la boîte de
dialogue Bibliothèque des configurations du package .

Colonne Description

Nom de la Le nom de la configuration.


configuration

Type de Le type de la configuration.


configuration

Chaîne de L'emplacement de la configuration. L’emplacement peut être un chemin d’accès,


configuration une variable d’environnement, une clé de Registre, un nom de variable d’un
package parent ou une table d’une base de données SQL Server.
Colonne Description

Objet cible Le nom de l'objet dont une propriété a une configuration. Si la configuration est
un fichier de configuration XML, la colonne est vide, car la configuration peut
mettre à jour plusieurs objets.

Propriété Nom de la propriété. Si la configuration écrit dans un fichier de configuration


cible XML ou dans une table SQL Server, la colonne est vide puisque la configuration
peut mettre à jour plusieurs objets.

Pour créer une configuration de package


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Dans le concepteur SSIS, sélectionnez l’onglet Flux de contrôle, Flux de données,


Gestionnaire d’événements ou Explorateur de package.

4. Dans le menu SSIS, sélectionnez Configurations du package.

5. Dans la boîte de dialogue Bibliothèque des configurations du package,


sélectionnez Activer les configurations du package, puis Ajouter.

6. Dans la page d’accueil de l’Assistant Configuration de package, sélectionnez


Suivant.

7. Sur la page Sélectionner le type de configuration, spécifiez le type de


configuration, puis définissez les propriétés se rapportant au type de configuration.
Pour plus d’informations, voir Package Configuration Wizard UI Reference.

8. Dans la page Sélectionner les propriétés à exporter, sélectionnez les propriétés des
objets de package à inclure dans la configuration. Si le type de configuration ne
prend en charge qu'une seule propriété, le titre de cette page de l'Assistant est
Sélectionner la propriété cible. Pour plus d’informations, voir Package
Configuration Wizard UI Reference.

7 Notes

Seuls les types de configuration Fichier de configuration XML et SQL Server


prennent en charge l’inclusion de plusieurs propriétés dans une configuration.
9. Dans la page Fin de l’Assistant, tapez le nom de la configuration, puis sélectionnez
Terminer.

10. Affichez la configuration dans la boîte de dialogue Bibliothèque des


configurations du package .

11. Sélectionnez Fermer.

Bibliothèque des configurations du package


Utilisez la boîte de dialogue Bibliothèque des configurations du package pour activer
les configurations du package, afficher une liste des configurations du package actuel et
spécifier l'ordre de chargement de préférence des configurations.

7 Notes

Des configurations sont disponibles pour le modèle de déploiement de package.


Les paramètres sont utilisés à la place des configurations pour le modèle de
déploiement de projet. Le modèle de déploiement de projet vous permet de
déployer vos projets sur le serveur Integration Services. Pour plus d'informations
sur les modèles de déploiement, consultez Deployment of Projects and Packages.

Si plusieurs configurations mettent à jour la même propriété, les valeurs des


configurations du bas de la liste de configuration remplacent les valeurs des
configurations du haut de la liste. La dernière valeur chargée dans la propriété est la
valeur utilisée à l'exécution du package. De plus, si le package utilise une combinaison
de configuration directe (par exemple, un fichier de configuration XML) et de
configuration indirecte (par exemple, une variable d'environnement), la configuration
indirecte qui pointe vers l'emplacement de la configuration directe doit figurer plus haut
dans la liste.

7 Notes

Lorsque les configurations du package sont chargées dans l'ordre souhaité, le


chargement est effectué du haut vers le bas de la liste affichée dans la boîte de
dialogue Bibliothèques des configurations du package . Toutefois, au moment de
l'exécution, il se peut que les configurations de package ne soient pas chargées
dans l'ordre souhaité. Les configurations de package parent sont notamment
chargées après les configurations d'autres types.
Les configurations de package mettent à jour les valeurs des propriétés des objets de
package au moment de l'exécution. Lorsqu'un package est chargé, les valeurs des
configurations remplacent les valeurs définies lors du développement du package.
Integration Services prend en charge différents types de configuration. Par exemple,
vous pouvez utiliser un fichier XML pouvant contenir plusieurs configurations, ou une
variable d'environnement qui contient une seule configuration. Pour plus d’informations,
consultez Package Configurations.

Options
Activer les configurations du package
Sélectionnez cette option pour utiliser les configurations avec le package.

Nom de la configuration
Affichez le nom de la configuration.

Type de configuration
Affichez le type de l'emplacement où sont stockées les configurations.

Chaîne de configuration
Affichez l'emplacement où sont stockées les valeurs de configuration. L’emplacement
peut être le chemin d’accès d’un fichier, le nom d’une variable d’environnement, le nom
d’une variable de package parent, une clé de Registre ou le nom d’une table SQL Server.

Objet cible
Affiche le nom de l'objet mis à jour par la configuration. Si la configuration est un fichier
de configuration XML ou une table SQL Server, la colonne est vide puisque la
configuration peut inclure plusieurs objets.

Propriété cible
Affichez le nom de la propriété modifiée par la configuration. Cette colonne est vide si le
type de configuration prend en charge plusieurs configurations.

Ajouter
Ajoutez une configuration à l'aide de l'Assistant Configuration de package.

Modifier
Modifiez une configuration existante en réexécutant l'Assistant Configuration de
package.

Remove
Sélectionnez une configuration, puis Supprimer.
Flèches
Sélectionnez une configuration et utilisez les flèches vers le haut et vers le bas pour la
déplacer vers le haut ou vers le bas de la liste. Les configurations sont chargées dans
l'ordre dans lequel elles apparaissent dans la liste.

Référence de l'interface utilisateur de


l'Assistant Configuration de package
L’Assistant Configuration de package vous permet de créer des configurations chargées
de mettre à jour les propriétés d’un package Integration Services ainsi que les objets qui
s’y rattachent au moment de l’exécution. Cet Assistant s’exécute quand vous ajoutez une
nouvelle configuration ou modifiez une configuration existante dans la boîte de
dialogue Bibliothèque des configurations du package . Pour ouvrir la boîte de dialogue
Bibliothèque des configurations du package, sélectionnez Configurations du package
dans le menu SSIS de SQL Server Data Tools (SSDT). Pour plus d’informations, consultez
Créer des configurations de package.

7 Notes

Des configurations sont disponibles pour le modèle de déploiement de package.


Les paramètres sont utilisés à la place des configurations pour le modèle de
déploiement de projet. Le modèle de déploiement de projet vous permet de
déployer vos projets sur le serveur Integration Services. Pour plus d'informations
sur les modèles de déploiement, consultez Deployment of Projects and Packages.

Les sections suivantes décrivent les pages de l'Assistant.

Page Assistant Configuration de package


L’Assistant de configuration de SSIS vous permet de créer des configurations chargées
de mettre à jour les propriétés d’un package ainsi que les objets qui s’y rattachent au
moment de l’exécution du programme.

Options
Ne plus afficher cette page
Option permettant d'ignorer cette page d'accueil la prochaine fois que vous ouvrez
l'Assistant.
Next
Permet de passer à la page suivante de l’Assistant.

Page Sélectionner le type de configuration


La page Sélectionner le type de configuration permet de spécifier le type de
configuration à créer.

Si vous souhaitez obtenir des informations supplémentaires pour déterminer quel type
de configuration utiliser, consultez Configurations de package.

Options statiques

Type de configuration
Sélectionnez le type de source dans lequel stocker la configuration, à l'aide des options
suivantes :

Valeur Description

Fichier de Stocke la configuration sous forme de fichier XML. Si cette valeur est
configuration sélectionnée, les options dynamiques s’affichent dans la section Type de
XML configuration.

Variable Stocke la configuration dans une des variables d'environnement. Si cette


d'environnement valeur est sélectionnée, les options dynamiques s’affichent dans la section
Type de configuration.

Entrée de Stocke la configuration dans le Registre. Si cette valeur est sélectionnée, les
Registre options dynamiques s’affichent dans la section Type de configuration.

Variable de Stocke la configuration en tant que variable dans le package qui contient la
package parent tâche. Si cette valeur est sélectionnée, les options dynamiques s’affichent
dans la section Type de configuration.

SQL Server Stocke la configuration dans une table SQL Server. Si cette valeur est
sélectionnée, les options dynamiques s’affichent dans la section Type de
configuration.

Next
Affiche la page suivante de l'Assistant.

Options dynamiques

Option Type de configuration = Fichier de configuration XML


Spécifier directement les paramètres de configuration
Permet de spécifier directement les paramètres.

Valeur Description

Nom du Tapez le chemin d'accès du fichier de configuration généré par l'Assistant.


fichier de
configuration

Parcourir La boîte de dialogue Sélectionner l’emplacement du fichier de configuration


permet de spécifier le chemin d’accès au fichier de configuration généré par
l’Assistant. Si le fichier n’existe pas, il est créé par l’Assistant.

L'emplacement de la configuration est stocké dans une variable d'environnement


Permet de spécifier la variable d’environnement dans laquelle stocker la configuration.

Valeur Description

Variable d'environnement Permet de sélectionner une variable d'environnement dans la liste.

Option Type de configuration = Variable d'environnement

Variable d'environnement
Permet de sélectionner la variable d'environnement qui contient les informations de
configuration.

Option Type de configuration = Entrée de Registre

Spécifier directement les paramètres de configuration


Permet de spécifier directement les paramètres.

Valeur Description

Entrée Tapez la clé de Registre qui contient les informations de configuration. Le format est
de <clé de Registre>.
Registre
La clé de Registre doit déjà exister dans HKEY_CURRENT_USER et porter une valeur
nommée Value. Cette valeur peut être de type DWORD ou une chaîne.

Si vous souhaitez utiliser une clé de Registre qui n’est pas à la racine de
HKEY_CURRENT_USER , utilisez le format <Clé de Registre\clé de Registre\...> pour
identifier la clé.

L'emplacement de la configuration est stocké dans une variable d'environnement


Permet de spécifier la variable d’environnement dans laquelle stocker la configuration.
Valeur Description

Variable d'environnement Permet de sélectionner une variable d'environnement dans la liste.

Option Type de configuration = Variable de package parent

Spécifier directement les paramètres de configuration


Permet de spécifier directement les paramètres.

Valeur Description

Variable Permet de spécifier la variable dans le package parent qui contient les informations
parent de configuration.

L'emplacement de la configuration est stocké dans une variable d'environnement


Permet de spécifier la variable d’environnement dans laquelle stocker la configuration.

Valeur Description

Variable d'environnement Permet de sélectionner une variable d'environnement dans la liste.

Options Type de configuration = SQL Server

Spécifier directement les paramètres de configuration


Permet de spécifier directement les paramètres.

Valeur Description

Connection Permet de sélectionner une connexion dans la liste ou Nouvelle pour créer une
connexion.

Table de Permet de sélectionner une table existante ou Nouvelle pour écrire une
configuration instruction SQL qui crée une table.

Filtre de la Permet de sélectionner le nom d'une configuration existante ou de taper un


configuration nouveau nom.

Un grand nombre de configurations SQL Server peuvent être stockées dans la


même table et chacune d'entre elles peut inclure plusieurs éléments de
configuration.

La valeur définie par l'utilisateur est stockée dans la table pour identifier les
éléments de configuration qui appartiennent à une configuration particulière.
L'emplacement de la configuration est stocké dans une variable d'environnement
Permet de spécifier la variable d'environnement dans laquelle stocker la configuration.

Valeur Description

Variable d'environnement Permet de sélectionner une variable d'environnement dans la liste.

Page Sélectionner des objets à exporter


Utilisez la page Sélectionner la propriété cible ou Sélectionner les propriétés à
exporter pour définir les propriétés des objets que contient la configuration. La
sélection de plusieurs propriétés n'est possible que si vous sélectionnez le type de
configuration XML.

Options

Objets
Développe la hiérarchie du package et sélectionne les propriétés à exporter.

Attributs de la propriété
Affiche les attributs d'une propriété.

Next
Permet de passer à la page suivante de l'Assistant.

Page Fin de l’Assistant


Utilisez la page Fin de l’Assistant pour nommer les paramètres de configuration et
d’affichage utilisés par l’Assistant pour créer la configuration. Quand l’Assistant est
terminé, la Bibliothèque des configurations du package affiche la liste de toutes les
configurations du package.

Options
Nom de la configuration
Tapez le nom de la configuration.

Préversion
Affiche les paramètres utilisés par l'Assistant pour créer la configuration.

Terminer
Crée la configuration et quitte l’Assistant Configuration de package.
Utiliser les valeurs des variables et des
paramètres dans un package enfant
Cette procédure explique comment créer une configuration de package qui utilise le
type de configuration de variable parent. Ce type de configuration active un package
enfant exécuté à partir d'un package parent pour accéder à une variable dans le parent.

7 Notes

Vous pouvez également passer les valeurs à un package enfant en configurant la


tâche d'exécution afin de mapper les variables ou paramètres du package parent,
ou les paramètres du projet, aux paramètres du package enfant. Pour plus
d’informations, consultez Tâche d’exécution de package.

Il n’est pas nécessaire de créer la variable dans le package parent avant de créer la
configuration de package dans le package enfant. Vous pouvez ajouter la variable au
package parent à tout moment, mais vous devez utiliser le nom exact de la variable
parent dans la configuration du package. Cependant, avant que vous puissiez créer une
configuration de variable parent, la configuration doit pouvoir mettre à jour une variable
existante dans le package enfant. Pour plus d’informations sur l’ajout et la configuration
de variables, consultez Ajouter, supprimer, modifier l’étendue de la variable définie par
l’utilisateur dans un package.

La portée de la variable dans le package parent utilisé dans une configuration de


variable parent peut être définie à la tâche d'exécution de package, au conteneur qui
détient la tâche ou au package. Si plusieurs variables portant le même nom sont définies
dans un package, la variable la plus proche en portée de la tâche d'exécution de
package est employée. La portée la plus proche de la tâche d'exécution de package est
la tâche proprement dite.

Pour ajouter une variable à un package parent


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package auquel vous voulez ajouter une variable à passer à un package enfant.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Dans le concepteur SSIS , pour définir la portée de la variable, effectuez l'une des
opérations suivantes :
Pour définir l’étendue sur le package, sélectionnez n’importe quel
emplacement sur l’aire de conception de l’onglet Flux de contrôle.

Pour définir l’étendue sur un conteneur parent de la tâche Exécuter le


package, sélectionnez le conteneur.

Pour définir l’étendue sur la tâche Exécuter le package, sélectionnez la tâche.

4. Ajoutez et configurez une variable.

7 Notes

Sélectionnez un type de données compatible avec les données que la variable


stockera.

5. Pour enregistrer le package mis à jour, sélectionnez Enregistrer les éléments


sélectionnés dans le menu Fichier.

Pour ajouter une variable à un package enfant


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package auquel vous voulez ajouter une configuration de variable parente.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Dans le concepteur SSIS, pour définir l’étendue sur le package, sélectionnez


n’importe quel emplacement sur l’aire de conception de l’onglet Flux de contrôle.

4. Ajoutez et configurez une variable.

7 Notes

Sélectionnez un type de données compatible avec les données que la variable


stockera.

5. Pour enregistrer le package mis à jour, sélectionnez Enregistrer les éléments


sélectionnés dans le menu Fichier.

Créer un utilitaire de déploiement


La première étape de déploiement des packages consiste à créer un utilitaire de
déploiement pour un projet Integration Services. L’utilitaire de déploiement est un
dossier qui contient les fichiers dont vous avez besoin pour déployer les packages dans
un projet Integration Services sur un serveur différent. L’utilitaire de déploiement est
créé sur l’ordinateur où le projet Integration Services est stocké.

Vous créez un utilitaire de déploiement de packages pour un projet Integration Services


en configurant d’abord le processus de création pour créer un utilitaire de déploiement
de packages, puis en créant le projet. Lorsque vous créez le projet, tous les packages et
configurations de package dans le projet sont automatiquement inclus. Pour déployer
des fichiers supplémentaires tels que le fichier Lisez-moi avec le projet, placez les
fichiers dans le dossier Divers du projet Integration Services. Lorsque le projet est
généré, ces fichiers sont automatiquement inclus.

Vous pouvez configurer chaque déploiement de projet différemment. Avant de générer


le projet et de créer l'utilitaire de déploiement de packages, vous pouvez définir les
propriétés sur l'utilitaire de déploiement pour personnaliser la façon dont les packages
du projet seront déployés. Par exemple, vous pouvez spécifier si les configurations de
package peuvent être mises à jour lorsque le projet est déployé. Pour accéder aux
propriétés d’un projet Integration Services, cliquez avec le bouton droit sur le projet,
puis sélectionnez Propriétés.

Le tableau suivant récapitule les propriétés de l'utilitaire de déploiement.

Propriété Description

AllowConfigurationChange Une valeur qui spécifie si les configurations peuvent être mises à
jour lors du déploiement.

CreateDeploymentUtility Une valeur qui spécifie si un utilitaire de déploiement de packages


est créé lorsque le projet est généré. Cette propriété doit être True
pour créer un utilitaire de déploiement.

DeploymentOutputPath L’emplacement, relatif au projet Integration Services, de l’utilitaire


de déploiement.

Quand vous générez un projet Integration Services, un fichier manifeste,


<nom_projet>.SSISDeploymentManifest.xml et des copies des packages du projet et
des dépendances de package sont créés et ajoutés dans le dossier bin\Deployment au
sein du projet ou à l’emplacement spécifié dans la propriété DeploymentOutputPath. Le
fichier manifeste répertorie les packages, les configurations de package et tous les
divers autres fichiers du projet.

Le contenu du dossier de déploiement est actualisé chaque fois que vous générez le
projet. Cela signifie que tout fichier enregistré dans ce dossier qui n’est pas copié de
nouveau dans le dossier par le processus de génération sera supprimé. Par exemple, les
fichiers de configuration de package enregistrés dans les dossiers de déploiement
seront supprimés.

Pour créer un utilitaire de déploiement de package


1. Dans SQL Server Data Tools (SSDT), ouvrez la solution qui contient le projet
Integration Services pour lequel vous voulez créer un utilitaire de déploiement de
package.

2. Cliquez avec le bouton droit sur le projet et sélectionnez Propriétés.

3. Dans la boîte de dialogue Pages de propriétés de <nom_projet>, sélectionnez


Utilitaire de déploiement.

4. Pour mettre à jour les configurations de package quand les packages sont
déployés, affectez à AllowConfigurationChanges la valeur True.

5. Affectez à CreateDeploymentUtility la valeur True.

6. Vous pouvez au besoin mettre à jour l’emplacement de l’utilitaire de déploiement


en modifiant la propriété DeploymentOutputPath .

7. Sélectionnez OK.

8. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis
sélectionnez Générer.

9. Affichez la progression de la build et les erreurs de build dans la fenêtre Sortie .

Déployer des packages à l’aide de l’utilitaire de


déploiement
Après avoir créé un utilitaire de déploiement pour installer les packages d’un projet
Integration Services sur un ordinateur différent de celui sur lequel cet utilitaire a été
créé, vous devez d’abord copier le dossier de déploiement vers l’ordinateur de
destination.

Le chemin du dossier de déploiement est spécifié dans la propriété


DeploymentOutputPath du projet Integration Services pour lequel vous avez créé
l’utilitaire de déploiement. Le chemin d’accès par défaut est bin\Deployment, lié au
projet Integration Services. Pour plus d’informations, consultez Créer un utilitaire de
déploiement.
Vous utilisez l'Assistant Installation de package pour installer les packages. Pour lancer
l’Assistant, double-cliquez sur le fichier de l’utilitaire de déploiement après avoir copié le
dossier de déploiement sur le serveur. Le fichier est nommé
<nom_projet>.SSISDeploymentManifest et se trouve dans le dossier de déploiement sur
l’ordinateur de destination.

7 Notes

En fonction de la version du package que vous déployez, une erreur risque de se


produire si différentes version de SQL Server sont installées côte à côte. Cette
erreur vient du fait que l’extension de nom de fichier .SSISDeploymentManifest est
la même pour toutes les versions d’Integration Services. Si vous double-cliquez sur
le fichier, cela entraîne l’appel du programme d’installation (dtsinstall.exe)
correspondant à la version installée en dernier d’Integration Services, laquelle
risque d’être différente de la version du fichier de l’utilitaire de déploiement. Pour
contourner ce problème, exécutez la version appropriée de dtsinstall.exe à partir de
la ligne de commande, puis indiquez le chemin d'accès du fichier de l'utilitaire de
déploiement.

L’Assistant Installation de package vous accompagne dans le processus d’installation


des packages sur le système de fichiers et sur SQL Server. Vous pouvez configurer
l'installation de plusieurs manières :

Choix du type d'emplacement et emplacement d'installation des packages.

Choix de l'emplacement d'installation des dépendances de package.

Validation des packages après leur installation sur le serveur cible.

Les dépendances basées sur les fichiers pour les packages sont toujours installées sur le
système de fichiers. Si vous installez un package sur le système de fichiers, les
dépendances sont installées dans le même dossier que celui indiqué pour le package. Si
vous installez un package sur SQL Server, vous pouvez spécifier le dossier dans lequel
les dépendances basées sur les fichiers seront stockées.

Si le package comprend des configurations que vous voulez modifier pour qu'elles
soient utilisées sur l'ordinateur de destination, vous pouvez mettre à jour les valeurs des
propriétés à l'aide de l'Assistant.

Outre l’installation des packages à l’aide de l’Assistant Installation de package, vous


pouvez copier et déplacer des packages à l’aide de l’utilitaire d’invite de commandes
dtutil . Pour plus d’informations, consultez dtutil Utility.
Pour déployer des packages sur une instance de SQL
Server
1. Ouvrez le dossier de déploiement sur l'ordinateur cible.

2. Double-cliquez sur le fichier manifeste, <nom_projet>.SSISDeploymentManifest,


pour démarrer l’Assistant Installation de package.

3. Dans la page Déployer les packages SSIS , sélectionnez l’option Déploiement sur
SQL Server .

4. Si vous le souhaitez, sélectionnez Valider les packages après l’installation pour


valider les packages après qu’ils ont été installés sur le serveur cible.

5. Dans la page Spécifier le serveur SQL cible, spécifiez l’instance de SQL Server sur
laquelle les packages doivent être installés et sélectionnez un mode
d’authentification. Si vous sélectionnez l’authentification SQL Server, vous devez
fournir un nom d’utilisateur et un mot de passe.

6. Dans la page Sélectionner le dossier d’installation , spécifiez le dossier du système


de fichiers dans lequel installer les dépendances du package.

7. Si le package comprend des configurations, vous pouvez les modifier en mettant à


jour des valeurs dans la liste Valeur dans la page Configurer les packages.

8. Si vous avez choisi de valider les packages après l'installation, affichez les résultats
de validation des packages déployés.

Redéploiement de packages
Après qu’un projet a été déployé, vous pouvez avoir besoin de mettre à jour ou
d’étendre les fonctionnalités du package, puis de redéployer le projet Integration
Services qui contient les packages mis à jour. Au cours du processus de redéploiement
des packages, vous devez vérifier les propriétés de configuration incluses dans l'utilitaire
de déploiement. Par exemple, vous pouvez décider de ne pas autoriser les modifications
de configuration après le redéploiement du package.

Processus de redéploiement
Après avoir mis à jour les packages, vous recréez le projet, vous copiez le dossier de
déploiement sur l'ordinateur cible et vous réexécutez l'Assistant Installation de package.
Si vous ne mettez à jour que quelques packages dans le projet, vous ne souhaitez pas
forcément redéployer le projet tout entier. Pour ne déployer que quelques packages,
vous pouvez créer un nouveau projet Integration Services, ajouter les packages mis à
jour au nouveau projet, puis créer et déployer le projet. Les configurations de package
sont automatiquement copiées avec le package lorsque vous l'ajoutez à un autre projet.

Référence de l'interface utilisateur de


l'Assistant Installation de package
L’Assistant Installation de package permet de déployer un projet Integration Services,
dont les packages et les divers fichiers qu’il contient, ainsi que les dépendances de
package éventuelles.

Avant de déployer des packages, vous pouvez créer des configurations, puis déployer
ces dernières avec les packages. Integration Services utilise les configurations pour
mettre à jour dynamiquement les propriétés des packages et les objets de package au
moment de l’exécution. Par exemple, il est possible de définir dynamiquement à
l'exécution la chaîne de connexion d'une connexion OLE DB en fournissant une
configuration qui mappe une valeur avec la propriété contenant la chaîne de connexion.

Vous ne pouvez pas exécuter l’Assistant Installation de package tant que vous n’avez
pas généré un projet Integration Services et créé un utilitaire de déploiement. Pour plus
d’informations, consultez Déployer des packages à l’aide de l’utilitaire de déploiement.

Les sections suivantes décrivent les pages de l’Assistant.

Page Assistant Installation de package


L’Assistant Installation de package vous permet de déployer un projet Integration
Services pour lequel vous avez créé un utilitaire de déploiement de package.

Ne plus afficher cette page de démarrage


Ignorer la page de démarrage à la prochaine exécution de l'Assistant.

Next
Permet de passer à la page suivante de l'Assistant.

Terminer
Passez directement à la page Fin de l'Assistant Installation de package. Utilisez cette
option si vous êtes revenu en arrière dans les pages de l’Assistant pour examiner vos
choix et si vous avez spécifié toutes les options obligatoires.
Page Configurer les packages
Utilisez la page Configurer les packages pour modifier la configuration des packages.

Options

Fichier de configuration
Modifie le contenu d'un fichier de configuration sélectionné dans la liste.

Related Topics:Create Package Configurations

Chemin d’accès
Affiche le chemin d'accès de la propriété à configurer.

Type
Affiche le type des données de la propriété.

Valeur
Spécifiez la valeur de la configuration.

Next
Permet de passer à la page suivante de l'Assistant.

Terminer
Passez directement à la page Fin de l'Assistant Installation de package. Utilisez cette
option si vous êtes revenu en arrière dans les pages de l’Assistant pour examiner vos
choix et si vous avez spécifié toutes les options obligatoires.

Page Confirmer l'installation


La page Confirmer l’installation permet de lancer l’installation de packages, de
visualiser l’état et les informations que l’Assistant utilise pour installer les fichiers du
projet spécifié.

Next
Installe les packages et leurs dépendances et passe à la page suivante de l'Assistant une
fois l'installation terminée.

État
Affiche la progression de l'installation du package.

Terminer
Accédez à la page Fin de l'Assistant Installation de package. Utilisez cette option si vous
êtes revenu en arrière dans les pages de l’Assistant pour examiner vos choix et si vous
avez spécifié toutes les options obligatoires.

Page Déployer les packages SSIS


La page Déployer les packages SSIS permet d’indiquer à quel emplacement les
packages Integration Services et leurs dépendances doivent être installés.

Options

Déploiement sur le système de fichiers


Déploie les packages et leurs dépendances dans un dossier du système de fichiers.

Déploiement sur SQL Server


Déploie les packages et leurs dépendances dans une instance de SQL Server. Utilisez
cette option si SQL Server partage des packages entre serveurs. Toutes les dépendances
de package sont installées dans le dossier spécifié du système de fichiers.

Valider les packages après l'installation


Indique si les packages doivent être validés après installation.

Next
Permet de passer à la page suivante de l'Assistant.

Terminer
Passez directement à la page Fin de l'Assistant Installation de package. Utilisez cette
option si vous êtes revenu en arrière dans les pages de l’Assistant pour examiner vos
choix et si vous avez spécifié toutes les options obligatoires.

Page Validation des packages


La page Validation des packages permet d’afficher et de suivre la progression de la
validation des packages et les résultats de cette validation.

Next
Permet de passer à la page suivante de l'Assistant.

Page Sélectionner le dossier d'installation


La page Sélectionner le dossier d’installation permet de définir le dossier du système
de fichiers dans lequel les packages et leurs dépendances sont installés.
Options
Folder
Définissez le chemin d'accès et le dossier de copie du package et de ses dépendances.

Parcourir
Accédez au dossier cible via la boîte de dialogue Rechercher un dossier .

Next
Permet de passer à la page suivante de l'Assistant.

Terminer
Passez directement à la page Fin de l'Assistant Installation de package. Utilisez cette
option si vous êtes revenu en arrière dans les pages de l’Assistant pour examiner vos
choix et si vous avez spécifié toutes les options obligatoires.

Page Spécifier le serveur SQL cible


La page Spécifier le serveur SQL cible permet de spécifier les options de déploiement
du package dans une instance de SQL Server.

Options

Nom du serveur
Permet de spécifier le nom du serveur pour lequel doit s'effectuer le déploiement des
packages.

Utiliser l'authentification Windows


Permet d’indiquer si l’authentification Windows doit être utilisée pour se connecter au
serveur. L'authentification Windows est recommandée pour renforcer la sécurité.

Utiliser l’authentification SQL Server


Permet d’indiquer si le package doit utiliser l’authentification SQL Server pour se
connecter au serveur. Si vous utilisez l’authentification SQL Server , vous devez fournir
un nom d’utilisateur et un mot de passe.

Nom d'utilisateur
Indique un nom d'utilisateur.

Mot de passe
Permet de spécifier un mot de passe.

Chemin d'accès au package


Spécifiez le nom du dossier logique ou entrez « / » pour le dossier par défaut.
Pour sélectionner le dossier dans la boîte de dialogue Package SSIS, sélectionnez
Parcourir (...). La boîte de dialogue ne fournit toutefois pas de moyen de sélectionner le
dossier par défaut. Si vous souhaitez utiliser le dossier par défaut, vous devez entrer « /
» dans la zone de texte.

7 Notes

Si vous n’entrez pas de chemin de package valide, le message d’erreur suivant


apparaît : « Un ou plusieurs arguments ne sont pas valides ».

Se fier au serveur pour le chiffrement


Permet d’utiliser les fonctionnalités de sécurité du Moteur de base de données pour
sécuriser les packages.

Next
Permet de passer à la page suivante de l'Assistant.

Terminer
Passez directement à la page Fin de l'Assistant Installation de package. Utilisez cette
option si vous êtes revenu en arrière dans les pages de l’Assistant pour examiner vos
choix et si vous avez spécifié toutes les options obligatoires.

Page Fin de l'Assistant Installation de package


La page Fin de l’Assistant Installation de package permet d’obtenir un résumé des
résultats de l’installation des packages. Cette page fournit des détails comme le nom du
projet Integration Services déployé, les packages installés, les fichiers de configuration
et l’emplacement de l’installation.

Terminer
Pour quitter l’Assistant, cliquez sur Terminer.
Exécuter des packages Integration
Services (SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour exécuter un package Integration Services, vous pouvez utiliser un outil parmi plusieurs,
en fonction de l’endroit où ces packages sont stockés. Ces outils sont répertoriées dans le
tableau ci-dessous.

7 Notes

Cet article décrit comment exécuter des packages SSIS de manière générale et
comment les exécuter au niveau local. Vous pouvez également exécuter des packages
SSIS sur les plateformes suivantes :

Cloud Microsoft Azure. Pour plus d’informations, consultez Effectuer un « lift-


and-shift » des charges de travail SQL Server Integration Services vers le cloud
et Exécuter un package SSIS dans Azure.
Linux. Pour plus d’informations, consultez Extraire, transformer et charger des
données sur Linux avec SSIS.

Pour stocker un package sur le serveur Integration Services, vous utilisez le modèle de
déploiement de projet pour déployer le projet sur le serveur. Pour plus d’informations,
consultez Déployer des projets et des packages Integration Services (SSIS).

Pour stocker un package dans le magasin de packages SSIS, la base de données msdb ou
dans le système de fichiers, vous utilisez le modèle de déploiement de package. Pour plus
d’informations, consultez Déploiement de packages hérités (SSIS).

Outil Packages Packages Packages


stockés sur stockés dans stockés dans
le serveur le magasin de le système de
Integration packages SSIS fichiers, hors
Services ou dans la de
base de l'emplacement
données qui fait partie
msdb du magasin de
packages SSIS
Outil Packages Packages Packages
stockés sur stockés dans stockés dans
le serveur le magasin de le système de
Integration packages SSIS fichiers, hors
Services ou dans la de
base de l'emplacement
données qui fait partie
msdb du magasin de
packages SSIS

SQL Server Data Tools Non Non Oui

Vous pouvez
cependant
ajouter un
package
existant à un
projet du
magasin de
packages SSIS,
qui inclut la
base de
données
msdb. L'ajout
d'un package
existant au
projet de cette
manière
effectue une
copie locale
du package
dans le
système de
fichiers.

SQL Server Management Studio, quand vous êtes Oui Non Non
connecté à une instance du moteur de base de données
qui héberge le serveur Integration Services Vous pouvez Vous pouvez
toutefois toutefois
Pour plus d’informations, consultez Boîte de dialogue importer un importer un
d’exécution de package package vers package vers le
le serveur à serveur à partir
partir de ces du système de
emplacements. fichiers.

SQL Server Management Studio, quand vous êtes Oui Non Non
connecté à une instance du moteur de base de données
qui héberge le serveur Integration Services

Pour plus d’informations, consultez Exécuter des packages


dans Scale-out
Outil Packages Packages Packages
stockés sur stockés dans stockés dans
le serveur le magasin de le système de
Integration packages SSIS fichiers, hors
Services ou dans la de
base de l'emplacement
données qui fait partie
msdb du magasin de
packages SSIS

SQL Server Management Studio, quand il est connecté Non Oui Non
au service Integration Services qui gère le magasin de
packages SSIS Vous pouvez
cependant
importer un
package dans
le magasin de
packages SSIS
à partir du
système de
fichiers.

dtexec Oui Oui Oui

Pour plus d'informations, consultez Utilitaire dtexec.

dtexecui Non Oui Oui

Pour plus d’informations, consultez Référence de


l’interface utilisateur de l’utilitaire d’exécution de package
(DtExecUI)

SQL Server Agent Oui Oui Oui

Vous pouvez utiliser un travail SQL Server Agent pour


planifier un package.

Pour plus d’informations, consultez Travaux de l’Agent


SQL Server pour les packages.

Procédure stockée intégrée Oui Non Non

Pour plus d’informations, consultez


catalog.start_execution (base de données SSISDB)

API managée à l’aide des types et membres dans Oui Non Non
l’espace de
nomsMicrosoft.SqlServer.Management.IntegrationServices

API managée à l’aide des types et membres dans Actuellement Oui Oui
l’espace de nomsMicrosoft.SqlServer.Dts.Runtime impossible
Exécution et journalisation
Les packages Integration Services peuvent être activés pour la journalisation, et vous pouvez
capturer des informations sur l’exécution dans des fichiers journaux. Pour plus
d’informations, consultez Journalisation d’Integration Services (SSIS).

Vous pouvez superviser les packages Integration Services qui sont déployés et qui
s’exécutent sur le serveur Integration Services à l’aide de rapports de fonctionnement. Les
rapports sont disponibles dans SQL Server Management Studio. Pour plus d'informations,
consultez Reports for the Integration Services Server.

Exécuter un package dans les outils de données


SQL Server
Les packages sont exécutés le plus souvent dans SQL Server Data Tools (SSDT) pendant le
développement, le débogage et le test des packages. Quand vous exécutez un package à
partir du concepteur SSIS, il est exécuté immédiatement.

Pendant qu’un package s’exécute, le concepteur SSIS affiche la progression de l’exécution


sous l’onglet Progression. Vous pouvez afficher l’heure de début et de fin du package et de
ses tâches et conteneurs, ainsi que des informations sur les tâches et les conteneurs du
package ayant échoué. Quand un package a terminé son exécution, les informations sur
l’exécution restent disponibles sous l’onglet Résultats d’exécution . Pour plus
d’informations, consultez la section « Rapport de progression » dans la rubrique Débogage
du flux de contrôle.

Déploiement au moment du design. Lorsqu’un package est exécuté dans SQL Server Data
Tools, il est créé, puis déployé dans un dossier. Avant d'exécuter le package, vous pouvez
spécifier le dossier dans lequel il est déployé. Si vous ne spécifiez aucun dossier, le dossier
bin est utilisé par défaut. Ce type de déploiement est appelé déploiement au moment de la
conception.

Pour exécuter un package dans les outils de données SQL


Server
1. Dans l’Explorateur de solutions, si votre solution contient plusieurs projets, cliquez avec
le bouton droit sur le projet Integration Services qui contient le package, puis cliquez
sur Définir en tant qu’objet de démarrage pour définir le projet de démarrage.

2. Dans l’Explorateur de solutions, si votre projet contient plusieurs packages, cliquez


avec le bouton droit sur un package, puis cliquez sur Définir en tant qu’objet de
démarrage pour définir le package de démarrage.
3. Pour exécuter un package, utilisez l'une des procédures suivantes :

Ouvrez le package à exécuter, puis cliquez sur Démarrer le débogage dans la


barre de menus ou appuyez sur F5. Une fois l'exécution du package terminée,
appuyez sur Maj+F5 pour revenir au mode Création.

Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le package, puis
cliquez sur Exécuter le package.

Pour spécifier un dossier différent pour le déploiement au


moment du design
1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le dossier de projet
Integration Services contenant le package à exécuter, puis cliquez sur Propriétés.

2. Dans la boîte de dialogue Pages de propriétés de <nom_projet>, cliquez sur Générer.

3. Mettez à jour la valeur de la propriété OutputPath pour indiquer le dossier que vous
souhaitez utiliser pour le déploiement au moment du design, puis cliquez sur OK.

Exécuter un package sur le serveur SSIS à l’aide


de SQL Server Management Studio
Après avoir déployé votre projet sur le serveur Integration Services, vous pouvez exécuter le
package sur le serveur.

Vous pouvez utiliser des rapports d'opérations pour afficher des informations sur les
packages qui ont été exécutés, ou qui sont actuellement exécutés, sur le serveur. Pour plus
d'informations, consultez Reports for the Integration Services Server.

Pour exécuter un package sur le serveur à l'aide de SQL


Server Management Studio
1. Ouvrez SQL Server Management Studio et connectez-vous à l’instance de SQL Server
qui contient le catalogue Integration Services.

2. Dans l’Explorateur d’objets, développez le nœud Catalogues Integration Services ,


développez le nœud SSISDB , puis accédez au package contenu dans le projet que
vous avez déployé.

3. Cliquez avec le bouton droit sur le nom du package, puis sélectionnez Exécuter.

4. Configurez l’exécution du package à l’aide des paramètres sous les onglets


Paramètres, Gestionnaires de connexionset Avancé de la boîte de dialogue Exécuter
le package .

5. Cliquez sur OK pour exécuter le package.

-ou-

Utilisez des procédures stockées pour exécuter le package. Cliquez sur Script pour
générer l’instruction Transact-SQL qui crée et démarre une instance de l’exécution.
L'instruction inclut un appel aux procédures stockées catalog.create_execution,
catalog.set_execution_parameter_value et catalog.start_execution. Pour plus
d’informations sur ces procédures stockées, consultez catalog.create_execution (base
de données SSISDB), catalog.set_execution_parameter_value (base de données
SSISDB)catalog.start_execution (base de données SSISDB).

Execute Package Dialog Box


Utilisez la boîte de dialogue Exécuter le package pour exécuter un package stocké sur le
serveur Integration Services.

Un package Integration Services peut contenir des paramètres qui référencent les valeurs
stockées dans des variables d’environnement. Avant d'exécuter un tel package, vous devez
spécifier quel environnement sera utilisé pour fournir les valeurs de variable
d'environnement. Un projet peut contenir plusieurs environnements, mais un seul
environnement peut être utilisé pour la liaison de valeurs de variable d'environnement au
moment de l'exécution. Si aucune variable d'environnement n'est utilisée dans le package,
un environnement n'est pas obligatoire.

Que voulez-vous faire ?

Ouvrir la boîte de dialogue Exécuter le package

Définir les options sur la page Général

Définir les options de l'onglet Paramètres

Définir les options de l'onglet Gestionnaires de connexions

Définir les options de l'onglet Avancé

Création de script avec les options de la boîte de dialogue Exécuter le package

Ouvrir la boîte de dialogue Exécuter le package


1. Dans SQL Server Management Studio, connectez-vous au serveur Integration Services .
Vous vous connectez à l’instance du Moteur de base de données SQL Server qui
héberge la base de données SSISDB.

2. Dans l'Explorateur d'objets, développez l'arborescence pour afficher le nœud


Integration Services Catalogues .

3. Développez le nœud SSISDB .

4. Développez le dossier contenant le package à exécuter.

5. Cliquez avec le bouton droit sur le package, puis cliquez sur Exécuter.

Définir les options sur la page Général


Sélectionnez Environnement pour spécifier l'environnement qui est appliqué avec le
package.

Définir les options de l'onglet Paramètres


Utilisez l'onglet Paramètres pour modifier les valeurs de paramètre utilisées lors de
l'exécution du package.

Définir les options de l'onglet Gestionnaires de connexions


Utilisez l'onglet Gestionnaires de connexions pour définir les propriétés du ou des
gestionnaires de connexions du package.

Définir les options de l'onglet Avancé


Utilisez l'onglet Avancé pour gérer des propriétés et d'autres paramètres du package.

Ajouter, Modifier, Supprimer


Cliquez pour ajouter, modifier ou supprimer une propriété.

Niveau de journalisation
Sélectionnez le niveau de journalisation pour l'exécution du package. Pour plus
d’informations, consultez catalog.set_execution_parameter_value (base de données SSISDB).

Vider en cas d'erreurs


Spécifiez si un fichier de vidage est créé lorsque des erreurs se produisent pendant
l'exécution du package. Pour plus d’informations, voir Generating Dump Files for Package
Execution.

Runtime 32 bits
Indiquez que le package doit s'exécuter sur un système 32 bits.
Création de script avec les options de la boîte de dialogue
Exécuter le package
Lorsque vous vous trouvez dans la boîte de dialogue Exécuter le package, vous pouvez
également utiliser le bouton Script de la barre d’outils pour écrire du code Transact-SQL. Le
script généré appelle les procédures stockées catalog.start_execution (base de données
SSISDB) avec les options que vous avez sélectionnées dans la boîte de dialogue Exécuter le
package. Le script s’affiche dans une nouvelle fenêtre de script dans Management Studio.

Voir aussi
Utilitaire dtexec
Démarrer l’Assistant Importation et Exportation SQL Server
Utilitaire d’exécution de package
(dtexecui)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez l' Utilitaire d'exécution de package pour exécuter des packages Integration
Services . L’utilitaire exécute les packages stockés à l’un des trois emplacements
suivants : la base de données Microsoft SQL Server, le magasin de packages SSIS et le
système de fichiers. Cette interface utilisateur, qui peut être ouverte à partir de SQL
Server Management Studio ou en tapant dtexecui à partir d’une invite de commandes,
offre un autre moyen d’exécuter des packages à l’aide de l’outil d’invite de commandes
DTExec .

Les packages sont exécutés dans le même processus que l’utilitaire dtexecui.exe . Cet
utilitaire étant un outil 32 bits, les packages exécutés à l’aide de dtexecui.exe dans un
environnement 64 bits s’exécutent dans Windows sur Win32 (WOW). Quand vous
développez et testez des commandes à l’aide de l’utilitaire dtexecui.exe sur un
ordinateur 64 bits, effectuez les tests en mode 64 bits en utilisant la version 64 bits de
dtexec.exe avant de déployer ou de planifier les commandes sur un serveur de
production.

L’ utilitaire d’exécution de package est une interface utilisateur graphique de l’outil


d’invite de commandes DTExec . L’interface utilisateur facilite la configuration des
options et assemble automatiquement la ligne de commande qui est transmise à l’outil
d’invite de commandes DTExec lorsque vous exécutez le package à partir des options
spécifiées.

L’ utilitaire d’exécution de package permet également d’assembler les lignes de


commande que vous utilisez lorsque vous exécutez DTExec directement.

Pour ouvrir l'Utilitaire d'exécution de package dans SQL


Server Management Studio
1. Dans SQL Server Management Studio, cliquez sur Explorateur d'objets dans le
menu Affichage.

2. Dans l'Explorateur d'objets, cliquez sur Se connecter, puis sur Integration Services.

3. Dans la boîte de dialogue Se connecter au serveur , entrez le nom du serveur dans


la liste Nom du serveur , puis cliquez sur Se connecter.
4. Développez le dossier Packages stockéset ses sous-dossiers, cliquez avec le
bouton droit sur le package à exécuter, puis cliquez sur Exécuter le package.

Pour ouvrir l'Utilitaire d'exécution de package à l'invite de


commandes
Dans une fenêtre d'invite de commandes, exécutez dtexecui.

Les sections suivantes décrivent les pages de la boîte de dialogue Utilitaire d'exécution
de package .

Page Général
Utilisez la page Général de la boîte de dialogue Utilitaire d'exécution de package pour
spécifier le nom et l'emplacement d'un package.

L'utilitaire d'exécution de package (dtexecui.exe) exécute toujours un package sur


l'ordinateur local, même si le package est enregistré sur un serveur distant. Si le package
distant utilise des fichiers de configuration qui sont toujours enregistrés sur le serveur
distant, l'utilitaire d'exécution de package risque de ne pas trouver l'emplacement des
configurations, faisant ainsi échouer le package. Pour éviter ce problème, les
configurations doivent être référencées par un nom de partage UNC, tel que
\\myserver\myfile.

Options statiques
Source du package
Spécifiez l'emplacement du package à exécuter, à l'aide des options suivantes :

Valeur Description

SQL Sélectionnez cette option lorsque le package se trouve dans Microsoft SQL Server.
Server Spécifiez une instance de SQL Server et fournissez un nom d'utilisateur et un mot de
passe pour l'authentification SQL Server . Chaque nom d’utilisateur et chaque mot de
passe ajoutent les options /USERnom_utilisateur et /PASSWORDmot_de_passe à
l’invite de commandes.

Système Sélectionnez cette option lorsque le package se trouve dans le système de fichiers.
de
fichiers
Valeur Description

Magasin Sélectionnez cette option lorsque le package se trouve dans le magasin de packages
de SSIS .
packages
SSIS

Chacune des sélections ci-dessus comporte la série d'options suivante :

Execute
Permet d'exécuter le package.

Close
Ferme la boîte de dialogue Utilitaire d’exécution de package .

Options dynamiques

Source du package = SQL Server

Serveur
Tapez le nom du serveur où se trouve le package ou choisissez un serveur dans la liste.

Connexion au serveur
Indiquez si le package doit utiliser l’authentification Windows ou l’authentification SQL
Server pour se connecter à SQL Server. L'authentification Windows est recommandée
pour renforcer la sécurité. Avec l'authentification Windows, vous n'avez pas à spécifier
un nom d'utilisateur et un mot de passe.

Utiliser l'authentification Windows


Sélectionnez cette option pour utiliser l’authentification Windows et connectez-vous à
l’aide d’un compte d’utilisateur Microsoft Windows.

Utiliser l’authentification SQL Server


Sélectionnez cette option pour utiliser l’authentification SQL Server . Quand un
utilisateur se connecte avec un nom d’accès et un mot de passe spécifiés à partir d’une
connexion non autorisée, SQL Server réalise l’authentification en vérifiant si un compte
de connexion SQL Server a été défini et si le mot de passe spécifié correspond à celui
enregistré précédemment. Si SQL Server ne peut pas trouver le compte de connexion,
l'authentification échoue et l'utilisateur reçoit un message d'erreur.

) Important

Lorsque c'est possible, utilisez l'authentification Windows.


Package
Tapez le nom du package ou cliquez sur le bouton de sélection (...) pour identifier
l’emplacement d’un package grâce à la boîte de dialogue Sélectionner un package
SSIS.

Source du package = Système de fichiers


Package
Tapez le nom du package ou cliquez sur le bouton qui contient des points de
suspension (...) pour identifier l’emplacement d’un package grâce à la boîte de dialogue
Ouvrir. Par défaut, cette boîte de dialogue répertorie uniquement les fichiers dotés de
l'extension .dtsx.

Source du package = Magasin de packages SSIS


Serveur
Tapez le nom de l'ordinateur où se trouve le package ou choisissez un ordinateur dans
la liste.

Connexion au serveur
Indiquez si le package doit utiliser l'authentification Microsoft Windows pour se
connecter à la source du package. L'authentification Windows est recommandée pour
renforcer la sécurité. Avec l'authentification Windows, vous n'avez pas à spécifier un
nom d'utilisateur et un mot de passe.

Utiliser l'authentification Windows


Sélectionnez cette option pour utiliser l’authentification Windows et connectez-vous à
l’aide d’un compte d’utilisateur Microsoft Windows.

Utiliser l’authentification SQL Server


Cette option est désactivée quand vous exécutez un package stocké dans le Magasin de
packages SSIS.

Package
Tapez le nom du package ou cliquez sur le bouton de sélection (...) pour identifier
l’emplacement d’un package grâce à la boîte de dialogue Sélectionner un package
SSIS.

Page Configurations
Utilisez la page Configurations de la boîte de dialogue Utilitaire d'exécution de
package pour sélectionner les fichiers de configuration à charger au moment de
l'exécution et spécifier l'ordre de chargement.

Options
Fichiers de configuration
Répertorie les configurations que le package utilise. Chaque fichier de configuration
ajoute une option /CONFIGFILE nom_fichier à l’invite de commandes.

Touches de direction
Sélectionnez un fichier de configuration dans la liste et utilisez les touches de direction à
droite pour modifier l'ordre de chargement. Les configurations se chargent à partir du
haut de la liste.

7 Notes

Si plusieurs configurations modifient la même propriété, la dernière configuration


chargée est utilisée.

Ajouter
Ajoute des configurations au moyen de la boîte de dialogue Ouvrir . Par défaut, cette
boîte de dialogue affiche uniquement les fichiers ayant l'extension .dtsconfig.

Remove
Sélectionnez un fichier de configuration dans la liste, puis cliquez sur Supprimer.

Execute
Permet d'exécuter le package.

Close
Ferme la boîte de dialogue Utilitaire d’exécution de package .

Page Fichiers de commandes


La page Fichiers de commandes de la boîte de dialogue Utilitaire d'exécution de
package permet de sélectionner les fichiers de commandes devant être chargés au
moment de l'exécution du programme.

Options
Fichiers de commandes
Répertorie les fichiers de commandes que le package utilise. Un package peut utiliser
plusieurs fichiers afin de définir des options de ligne de commande.

Touches de direction
Permet de choisir un fichier de commandes dans la liste puis de changer l'ordre de
séquence de chargement des fichiers par les touches fléchées de droite. Ces fichiers se
chargent dans l'ordre en partant du haut de la liste.

Ajouter
Ce bouton vous permet d’ouvrir la boîte de dialogue Ouvrir pour ajouter un fichier de
commandes.

Remove
Permet de sélectionner un fichier de commandes dans la zone de texte, puis de le
supprimer par le biais du bouton Supprimer .

Execute
Permet d'exécuter le package.

Close
Ferme la boîte de dialogue Utilitaire d’exécution de package .

Page Gestionnaires de connexions


Utilisez la page Gestionnaires de connexions de la boîte de dialogue Utilitaire
d'exécution de package pour modifier les chaînes de connexion des gestionnaires de
connexions qu'utilise le package.

Options
Gestionnaire de connexions
Cochez cette case pour pouvoir modifier la colonne Chaîne de connexion .

Description
Affiche la description de chaque gestionnaire de connexions. Les descriptions ne
peuvent pas être modifiées.

Chaîne de connexion
Modifie la chaîne de connexion d'un gestionnaire de connexions. Ce champ est
modifiable uniquement lorsque la case à cocher Gestionnaire de connexions est
activée.
Execute
Permet d'exécuter le package.

Close
Ferme la boîte de dialogue Utilitaire d’exécution de package .

Page Options d'exécution


Utilisez la page Options d’exécution de la boîte de dialogue Utilitaire d’exécution de
package pour spécifier les options d’exécution du package.

Options
Mettre le package en échec en cas d'avertissements de validation
Indique si le package échoue si un avertissement de validation est détecté.

Valider le package sans l'exécuter


Indique si le package est seulement validé.

Maximum d'exécutables simultanés


Indique si vous souhaitez spécifier le nombre maximal d'exécutables qui peuvent
s'exécuter simultanément dans le package. Après avoir activé cette case à cocher,
utilisez la zone de sélection numérique pour spécifier le nombre maximal d'exécutables.

Activer les points de contrôle de package


Indique s'il faut activer les points de contrôle du package.

Fichier de point de contrôle


Affiche le fichier de points de contrôle que le package utilise, si vous activez les points
de contrôle du package.

Parcourir
Cliquez sur le bouton Parcourir (...) pour rechercher le fichier de points de contrôle au
moyen de la boîte de dialogue Ouvrir, si vous activez les points de contrôle du package.
Si un fichier de points de contrôle est déjà spécifié, il est remplacé par le fichier
sélectionné.

Substituer les options de redémarrage


Indique s'il faut ignorer les options de redémarrage, si vous activez les points de
contrôle du package.

Option de redémarrage
Indique comment utiliser les points de contrôle si vous ignorez les options de
redémarrage.

Execute
Permet d'exécuter le package.

Close
Ferme la boîte de dialogue Utilitaire d’exécution de package .

Page Création de rapports


La page Création de rapports de la boîte de dialogue Utilitaire d'exécution de package
permet de spécifier les événements et informations relatifs au package à consigner dans
la console lors de l'exécution du package.

Options
Événements de la console
Indique les événements et types de messages à reporter.

Aucun
Sélectionnez cette option pour ne pas générer de rapports.

Erreurs
Sélectionnez cette option pour générer un rapport sur les messages d'erreur.

Avertissements
Sélectionnez cette option pour générer un rapport sur les messages d'avertissement.

Événements personnalisés
Sélectionnez cette option pour générer un rapport sur les événements personnalisés.

Événements de pipeline
Sélectionnez cette option pour générer un rapport sur les messages d'événements de
flux de données.

Informations
Sélectionnez cette option pour générer un rapport sur les messages d'information.

Verbose
Sélectionnez cette option pour utiliser les rapports de commentaire.

Écriture dans le journal de la console


Spécifiez les informations à écrire dans le journal lorsque l'événement sélectionné se
produit.
Nom
Sélectionnez cette option pour générer un rapport sur le nom de la personne qui a créé
le package.

Ordinateur
Sélectionnez cette option pour générer un rapport sur le nom de l'ordinateur sur lequel
le package s'exécute.

Opérateur
Sélectionnez cette option pour générer un rapport sur le nom de la personne qui a
lancé le package.

Nom de la source
Sélectionnez cette option pour générer un rapport sur le nom du package.

GUID source
Sélectionnez cette option pour générer un rapport sur le GUID du package.

GUID d'exécution
Sélectionnez cette option pour générer un rapport sur le GUID de l'instance d'exécution
du package.

Message
Sélectionnez cette option pour générer un rapport sur les messages.

Heure de début et heure de fin


Sélectionnez cette option pour générer un rapport sur l'heure à laquelle le package a
commencé et s'est terminé.

Execute
Permet d'exécuter le package.

Close
Ferme la boîte de dialogue Utilitaire d’exécution de package .

Page Enregistrement
La page Enregistrement de la boîte de dialogue Utilitaire d'exécution de package
permet de créer des modules fournisseur d'informations mis à disposition du package
au moment de l'exécution du programme. Vous devez fournir le type du module
fournisseur d'informations du package ainsi que la chaîne de connexion afin de pouvoir
vous connecter au journal. Chaque entrée de module fournisseur d’informations ajoute
une option /LOGGERID_classe à l’invite de commandes.
Options
Module fournisseur d’informations
Permet de choisir un module fournisseur d'informations dans la liste.

Chaîne de configuration
Permet de choisir un nom pour le gestionnaire de connexions à partir du package
pointant vers l'emplacement du journal ou de saisir complètement la chaîne de
connexion afin de pouvoir se connecter au module fournisseur d'informations.

Remove
Permet de sélectionner un module fournisseur d'informations pour le supprimer.

Execute
Permet d'exécuter le package.

Close
Ferme la boîte de dialogue Utilitaire d’exécution de package .

Page Valeurs définies


Utilisez la page Valeurs définies de la boîte de dialogue Utilitaire d'exécution de
package pour définir les valeurs des propriétés des packages, des fichiers exécutables,
des connexions, des variables et des modules fournisseur d'informations. Pour cela,
tapez les chemins d'accès aux propriétés et leurs valeurs. Chaque entrée de chemin
d’accès ajoute une option /SETchemin_propriété;valeur à l’invite de commandes.

Options
Chemin de la propriété
Tapez le chemin d'accès à la propriété. Le chemin doit comporter une barre oblique
inverse (\) pour indiquer que l'élément suivant est un conteneur, un point pour indiquer
que l'élément suivant est une propriété et des parenthèses pour indiquer un membre
d'une collection. Il est possible d'identifier le membre par son index ou son nom. Par
exemple, le chemin d'accès à une variable d'un package est :
\Package.Variables[MyVariable].Value.

Valeur
Tapez la valeur de la propriété.

Remove
Sélectionnez le chemin d'accès à une propriété et cliquez dessus pour la supprimer.
Execute
Permet d'exécuter le package.

Close
Ferme la boîte de dialogue Utilitaire d’exécution de package .

Page Vérification
Utilisez la page Vérification de la boîte de dialogue Exécuter le package pour spécifier
les critères de vérification du package.

Options
Exécuter uniquement les packages signés
Exécute uniquement les packages signés.

Vérifier la build du package


Vérifie la build du package.

Build
Spécifiez le numéro séquentiel de la build du package.

Vérifier l'ID de package


Vérifie la version l'ID du package.

ID du package
Spécifiez le numéro d'identification du package.

Vérifier l'ID de version


Vérifie l'ID de la version du package.

ID de version
Spécifiez le numéro d'identification de la version.

Execute
Permet d'exécuter le package.

Close
Ferme la boîte de dialogue Utilitaire d’exécution de package .

Page Ligne de commande


Le nœud Ligne de commande de la boîte de dialogue Utilitaire d'exécution du
package permet de modifier la ligne de commande ayant été générée par les options
créées par les différentes boîtes de dialogue.

Options
Restaurer les options d'origine
Permet de ramener la ligne de commande à son état initial. Utilisez cette option si vous
avez apporté des modifications par le biais de l’option Modifier la ligne de commande
manuellement et que vous voulez restaurer les options de ligne de commande initiales.

Modifier la ligne de commande manuellement


Permet de modifier la ligne de commande figurant dans la zone de texte Ligne de
commande .

Ligne de commande
Affiche la ligne de commande actuelle. Cet élément est modifiable si vous avez activé
l'option de modifier la ligne de commande manuellement.

Execute
Permet d'exécuter le package.

Close
Ferme la boîte de dialogue Utilitaire d’exécution de package .

Voir aussi
Utilitaire dtexec
Utilitaire dtexec
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

L’utilitaire d’invite de commandes dtexec permet de configurer et d’exécuter des


packages SQL Server Integration Services. L’utilitaire dtexec donne accès à toutes les
fonctions de configuration et d’exécution de packages, telles que les paramètres, les
connexions, les propriétés, les variables, la journalisation et les indicateurs de
progression. L’utilitaire dtexec vous permet de charger des packages à partir des
sources suivantes : le serveur Integration Services, un fichier projet .ispac, une base de
données Microsoft SQL Server, le Magasin de packages SSIS et le système de fichiers.

7 Notes

Lorsque vous utilisez la version actuelle de l’utilitaire dtexec pour exécuter un


package créé par une version antérieure de Integration Services, l’utilitaire met
temporairement à niveau le package au format de package actuel. En revanche,
vous ne pouvez pas vous servir de l’utilitaire dtexec pour enregistrer le package mis
à niveau. Pour plus d’informations sur la mise à niveau permanente d’un package
vers la version actuelle, voir Upgrade Integration Services Packages.

Cette rubrique contient les sections suivantes :

Serveur et fichier projet Integration Services

Considérations concernant l'installation sur les ordinateurs 64 bits

Remarques concernant les ordinateurs dotés d'installations côte à côte

Phases d'exécution

Codes de sortie retournés

Règles de la syntaxe

Utilisation de dtexec à partir de l'invite xp_cmdshell

Utilisation de dtexec à partir de Bash

Syntaxe

Paramètres
Remarques

Exemples

Serveur et fichier projet Integration Services


Quand vous utilisez dtexec pour exécuter des packages sur le serveur Integration
Services, dtexec appelle les procédures stockées catalog.create_execution (base de
données SSISDB), catalog.set_execution_parameter_value (base de données SSISDB) et
catalog.start_execution (base de données SSISDB) pour créer une exécution, définir les
valeurs des paramètres et démarrer l’exécution. Tous les journaux des exécutions
peuvent être consultés à partir du serveur dans les vues associées ou via les rapports
standard disponibles dans SQL Server Management Studio. Pour plus d’informations sur
les rapports, consultez Rapports du serveur Integration Services.

Voici un exemple d'exécution de package sur le serveur Integration Services .

DTExec /ISSERVER "\SSISDB\folderB\Integration Services


Project17\Package.dtsx" /SERVER "." /Envreference 2 /Par
"$Project::ProjectParameter(Int32)";1 /Par "Parameter(Int32)";21 /Par
"CM.sqlcldb2.SSIS_repro.InitialCatalog";ssisdb /Par
"$ServerOption::SYNCHRONIZED(Boolean)";True

Quand vous utilisez dtexec pour exécuter un package à partir du fichier projet .ispac, les
options associées /Proj[ect] et /Pack[age] permettent de spécifier le chemin du projet et
le nom de flux du package. Lorsque vous convertissez un projet en modèle de
déploiement de projet en exécutant l' Assistant Conversion de projet Integration
Services de SQL Server Management Studio, l'Assistant génère un fichier projet .ispac.
Pour plus d’informations, consultez Déployer des projets et des packages Integration
Services (SSIS).

Vous pouvez utiliser dtexec avec des outils de planification tiers pour planifier les
packages qui sont déployés sur le serveur Integration Services .

Considérations concernant l'installation sur les


ordinateurs 64 bits
Sur un ordinateur 64 bits, Integration Services installe une version 64 bits de l’utilitaire
dtexec (dtexec.exe). Si vous devez exécuter certains packages en mode 32 bits, installez
la version 32 bits de l’utilitaire dtexec . Pour installer la version 32 bits de l’utilitaire
dtexec , vous devez sélectionner Outils clients ou SQL Server Data Tools (SSDT) pendant
l’installation.

Par défaut, un ordinateur 64 bits qui dispose à la fois des versions 64 bits et 32 bits
d'une invite de commandes Integration Services doit pouvoir exécuter la version 32 bits.
La version 32 bits s'exécute car le chemin d'accès au répertoire de la version 32 bits
apparaît dans la variable d'environnement PATH avant le chemin d'accès au répertoire
de la version 64 bits. (En général, le chemin du répertoire 32 bits est <lecteur>:\Program
Files(x86)\Microsoft SQL Server\110\DTS\Binn, tandis que le chemin du répertoire
64 bits est <lecteur>:\Program Files\Microsoft SQL Server\110\DTS\Binn.)

7 Notes

Si vous utilisez SQL Server Agent pour exécuter l'utilitaire, il utilise


automatiquement la version 64 bits de ce dernier. SQL Server Agent utilise le
Registre, et non la variable d'environnement PATH, pour localiser le fichier
exécutable correct de l'utilitaire.

Pour vous assurer que vous exécutez la version 64 bits de l'utilitaire à l'invite de
commandes, vous pouvez effectuer l'une des actions suivantes :

Ouvrez une fenêtre d’invite de commandes, indiquez le répertoire qui contient la


version 64 bits de l’utilitaire (<lecteur>:\Program Files\Microsoft SQL
Server\110\DTS\Binn), puis exécutez celui-ci à partir de cet emplacement.

À l’invite de commandes, exécutez l’utilitaire en entrant le chemin complet


(<lecteur>:\Program Files\Microsoft SQL Server\110\DTS\Binn) de la version 64 bits
de l’utilitaire.

Modifiez de manière définitive l’ordre des chemins dans la variable


d’environnement PATH en plaçant le chemin 64 bits (<lecteur>:\Program
Files\Microsoft SQL Server\110\DTS\Binn) avant le chemin 32 bits (<lecteur>:\
Program Files(x86)\Microsoft SQL Server\110\DTS\Binn) dans la variable.

Remarques concernant les ordinateurs dotés


d'installations côte à côte
Lousque SQL Server 2019 Integration Services (SSIS) est installé sur un oudinateur sur
lequel SQL Server 2005 Integration Services (SSIS) ou SQL Server 2008 Integration
Services (SSIS) est installé, plusieurs versions de l'utilitaire dtexec sont installées.
Pour être certain d’exécuter la version appropriée de l’utilitaire, à l’invite de commandes,
exécutez l’utilitaire en entrant le chemin complet (<lecteur>:\Program Files\Microsoft
SQL Server\<version>\DTS\Binn).

Phases d'exécution
L'utilitaire s'exécute en quatre phases. Ces phases sont les suivantes :

1. Phase de source de commande : L'invite de commandes lit la liste d'options et


d'arguments spécifiés. Si une option /? ou /HELP est rencontrée, toutes les phases
suivantes sont ignorées.

2. Phase de chargement de package : le package spécifié par l’option /SQL, /FILE ou


/DTS est chargé.

3. Phase de configuration : Les options sont traitées dans l'ordre suivant :

Les options qui définissent les indicateurs, les variables et les propriétés de
package.

Les options qui vérifient les numéros de version et de construction du


package.

Les options qui configurent le comportement de l'utilitaire au moment de


l'exécution, par exemple la génération de rapports.

4. Phase de validation et d'exécution : Le package est exécuté ou validé sans


exécution si l’option /VALIDATE a été spécifiée.

Codes de sortie retournés


Code de sortie retourné par l'utilitaire dtexec

Quand un package s’exécute, dtexec peut retourner un code de sortie. Le code de sortie
est utilisé pour remplir la variable ERRORLEVEL, dont la valeur peut être testée dans des
instructions conditionnelles ou la logique dans un fichier de commandes. Le tableau
suivant répertorie les valeurs que l’utilitaire dtexec peut définir lors de la sortie.

Valeur Description

0 L'exécution du package a réussi.

1 Le package a échoué.
Valeur Description

3 Le package a été annulé par l'utilisateur.

4 L'utilitaire n'a pas pu localiser le package demandé. Le package est introuvable.

5 L'utilitaire n'a pas pu localiser le package demandé. Le package ne peut pas être chargé.

6 L'utilitaire a rencontré une erreur interne, ou des erreurs syntaxiques ou sémantiques


dans la ligne de commande.

Règles de la syntaxe
Règles de syntaxe de l'utilitaire

Toutes les options doivent commencer par une barre oblique (/) ou par un signe moins
(-). Les options qui sont présentées ici commencent par une barre oblique (/), mais le
signe moins (-) peut être utilisé à la place.

Un argument doit être placé entre guillemets s'il contient un espace. Si l'argument n'est
pas placé entre guillemets, il ne peut pas contenir d'espaces.

Des guillemets doublés à l'intérieur des chaînes entre guillemets représentent des
guillemets simples placés en mode d'échappement.

Les options et les arguments ne respectent pas la casse, à l'exception des mots de passe.

Utilisation de dtexec à partir de l'invite


xp_cmdshell
Utilisation de dtexec à partir de l'invite xp_cmdshell

Vous pouvez exécuter dtexec à partir de l’invite xp_cmdshell . L'exemple suivant indique
comment exécuter un package nommé UpsertData.dtsx et ignorer le code de retour :

EXEC xp_cmdshell 'dtexec /f "C:\UpsertData.dtsx"'

L'exemple suivant indique comment exécuter le même package et capturer le code de


retour :
DECLARE @returncode int
EXEC @returncode = xp_cmdshell 'dtexec /f "C:\UpsertData.dtsx"'

) Important

Dans Microsoft SQL Server, l’option xp_cmdshell est désactivée par défaut sur les
nouvelles installations. Elle peut être activée en exécutant la procédure stockée
système sp_configure . Pour plus d’informations, consultez xp_cmdshell (option de
configuration de serveur).

Utilisation de dtexec à partir de Bash


Le shell Bash est un interpréteur de commandes pour Linux répandu. Il peut également
être utilisé sur Windows. Vous pouvez exécuter dtexec à partir de l’invite Bash. Notez
que le point-virgule ( ; ) est un opérateur de délimiteur de commande dans Bash. C’est
particulièrement important lors du passage de valeurs au package avec les options
/Conn[ection] , /Par[arameter] ou /Set , car elles utilisent le point-virgule pour séparer
le nom et la valeur de l’élément fourni. L’exemple suivant montre comment placer
correctement en échappement le point-virgule et d’autres éléments lors de l’utilisation
de Bash et du passage de valeurs à un package :

Bash

dtexec /F MyPackage.dtsx /CONN "MyConnection"\;"\"MyConnectionString\""

Syntaxe

dtexec /option [value] [/option [value]]...

Paramètres
/? [option_name] : (Facultatif). Affiche les options d’invite de commandes ou l’aide
pour l’argument option_name spécifié, puis ferme l’utilitaire.

Si vous spécifiez un argument option_name , dtexec ouvre la documentation en


ligne SQL Server et affiche la rubrique relative à l’utilitaire dtexec.
/Ca[llerInfo] : (Facultatif). Spécifie des informations supplémentaires pour
l'exécution d'un package. Lorsque vous exécutez un package à l'aide de SQL Server
Agent, l'agent définit cet argument afin d'indiquer que l'exécution du package est
appelée par SQL Server Agent. Ce paramètre est ignoré lorsque l’utilitaire dtexec
est exécuté à partir de la ligne de commande.

/CheckF[ile]filespec: (Facultatif). Affecte à la propriété CheckpointFileName du


package le chemin d'accès et le fichier spécifiés dans filespec. Ce fichier est utilisé
lors du redémarrage du package. Si cette option est spécifiée et si aucune valeur
n'est fournie pour le nom de fichier, le CheckpointFileName pour le package est
défini à une chaîne vide. Si cette option n'est pas spécifiée, les valeurs dans le
package sont conservées.

/CheckP[ointing]{on\off} : (Facultatif). Définit une valeur qui détermine si le


package utilise des points de contrôle pendant l'exécution du package. La valeur
on spécifie qu’un package ayant échoué doit être réexécuté. Lorsque le package
ayant échoué est relancé, le moteur d'exécution utilise le fichier de point de
contrôle pour redémarrer le package à partir du point d'échec.

La valeur par défaut est « on » si l'option est déclarée sans valeur. L'exécution du
package échoue si la valeur « on » est choisie et si le fichier de point de contrôle
demeure introuvable. Si cette option n'est pas spécifiée, la valeur définie dans le
package est conservée. Pour plus d'informations, consultez Redémarrer des
packages à l'aide de points de contrôle.

L’option /CheckPointing on de dtexec revient à définir la propriété


SaveCheckpoints du package sur True, et la propriété CheckpointUsage sur
Always.

/Com[mandFile]filespec: (Facultatif). Spécifie les options de commande qui


s’exécutent avec dtexec. Le fichier spécifié dans filespec est ouvert et les options du
fichier sont lues jusqu'à ce que EOF soit rencontré dans le fichier. filespec est un
fichier texte. L'argument filespec spécifie le nom et le chemin du fichier de
commandes associé à l'exécution du package.

/Conf[igFile]filespec: (Facultatif). spécifie un fichier de configuration à partir duquel


extraire des valeurs. Avec cette option, vous pouvez définir une configuration
d'exécution qui est différente de celle qui a été spécifiée au moment de la
conception du package. Vous pouvez stocker différents paramètres de
configuration dans le fichier de configuration XML et charger ensuite les
paramètres avant l’exécution du package à l’aide de l’option /ConfigFile .
Vous pouvez utiliser l’option /ConfigFile pour charger, au moment de l’exécution,
des configurations supplémentaires que vous n’aviez pas spécifiées au moment de
la conception. Cependant, vous ne pouvez pas utiliser l’option /ConfigFile pour
remplacer des valeurs configurées que vous aviez aussi spécifiées au moment de la
conception. Pour comprendre le fonctionnement de l'application des
configurations de package, consultez Package Configurations.

/Conn[ection]id_or_name;connection_string [[;id_or_name;connection_string]...]:
(Facultatif). Spécifie que le gestionnaire de connexions avec le nom ou le GUID
indiqué est fourni dans le package et spécifie une chaîne de connexion valide.

Cette option exige la spécification des deux paramètres : le nom ou le GUID du


gestionnaire de connexions doit être fourni dans l’argument id_or_name , et une
chaîne de connexion valide doit être spécifiée dans l’argument connection_string .
Pour plus d’informations, consultez Connexions Integration Services (SSIS).

Au moment de l’exécution, vous pouvez utiliser l’option /Connection pour charger


des configurations de package à partir d’un emplacement autre que celui que vous
avez spécifié au moment de la conception. Les valeurs de ces configurations
remplacent alors les valeurs spécifiées à l'origine. Cependant, vous ne pouvez
utiliser l’option /Connection que pour des configurations qui utilisent un
gestionnaire de connexions (par exemple les configurations SQL Server ). Pour
comprendre comment les configurations de package sont appliquées, consultez
Configurations de package et Changements de comportement des fonctionnalités
Integration Services dans SQL Server 2016.

/Cons[oleLog] [[displayoptions];[list_options;src_name_or_guid]...] : (Facultatif).


Affiche les entrées de journal spécifiées sur la console pendant l'exécution du
package. Si cette option est omise, aucune entrée de journal ne s'affiche sur la
console. Si l'option est spécifiée sans paramètre de restriction d'affichage, toutes
les entrées du journal s'affichent. Pour limiter les entrées qui s’affichent dans la
console, vous pouvez spécifier les colonnes à inclure à l’aide du paramètre
displayoptions , puis limiter les types d’entrée de journal à l’aide du paramètre
list_options .

7 Notes

Quand vous exécutez un package sur le serveur Integration Services en


utilisant le paramètre /ISSERVER, la sortie de la console est limitée et la
plupart des options /Cons[oleLog] ne sont pas applicables. Tous les journaux
des exécutions peuvent être consultés à partir du serveur dans les vues
associées ou via les rapports standard disponibles dans SQL Server
Management Studio. Pour plus d’informations sur les rapports, consultez
Rapports du serveur Integration Services.

Les valeurs displayoptions sont les suivantes :

N (Nom)

C (Ordinateur)

O (Opérateur)

S (Nom de source)

G (GUID de source)

X (GUID d'exécution)

M (Message)

T (Heure de début et de fin)

Les valeurs de list_options sont les suivantes :

I - Spécifie la liste d’inclusion. Seuls les noms ou GUID de source qui sont
spécifiés sont consignés.

E - Spécifie la liste d’exclusion. Les noms ou GUID de source qui sont spécifiés
ne sont pas consignés.

Le paramètre src_name_or_guid spécifié pour l’inclusion ou l’exclusion est un


nom d’événement, un nom de source ou un GUID de source.

Si vous utilisez plusieurs options /ConsoleLog dans la même invite de commandes,


celles-ci interagissent de la manière suivante :

L'ordre d'occurrence n'a aucun effet.

Si aucune liste d'inclusion n'est présente sur la ligne de commande, des listes
d'exclusion sont appliquées sur tous les types d'entrée de journal.

Si des listes d'inclusion sont présentes sur la ligne de commande, les listes
d'exclusion sont appliquées sur l'union de toutes les listes d'inclusion.

Pour afficher plusieurs exemples de l’option /ConsoleLog , consultez la section


Notes .
/D [ts]package_path: (Facultatif). Charge un package à partir du magasin de
packages SSIS. Les packages stockés dans le Magasin de packages SSIS sont
déployés à l'aide du modèle de déploiement de package hérité. Pour exécuter les
packages qui sont déployés sur le serveur Integration Services à l’aide du modèle
de déploiement de projet, utilisez l’option /ISServer . Pour plus d'informations sur
les modèles de déploiement de package et de projet, consultez Deployment of
Projects and Packages.

L’argument package_path spécifie le chemin relatif du package SSIS , à partir de la


racine du Magasin de packages SSIS, et inclut le nom du package SSIS . Si le
chemin ou le nom du fichier spécifié dans l’argument package_path contient un
espace, vous devez mettre l’argument package_path entre guillemets.

L’option /DTS ne peut pas être utilisée avec l’option /File ou /SQL . Si plusieurs
options sont spécifiées, dtexec échoue.

/De [crypt]password: (Facultatif). Définit le mot de passe de déchiffrement qui est


utilisé lorsque vous chargez un package avec chiffrement de mot de passe.

(Facultatif) Crée les fichiers de vidage du débogage, .mdmp et .tmp, lorsqu'un ou


plusieurs événements spécifiés se produisent pendant l'exécution du package.
L’argument error code spécifie le type de code d’événement (erreur, avertissement
ou information) qui déclenchera la création, par le système, des fichiers de vidage
du débogage. Pour spécifier plusieurs codes d’événement, séparez chaque
argument error code par un point-virgule (;). N'incluez pas de guillemets avec
l'argument error code .

L'exemple suivant génère les fichiers de vidage du débogage lorsqu'une erreur


DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER se produit.

/Dump 0xC020801C

/DumpCode d’erreur : par défaut, Integration Services stocke les fichiers de


sauvegarde du débogage dans le dossier <lecteur>:\Program Files\Microsoft SQL
Server\110\Shared\ErrorDumps.

7 Notes

Les fichiers de vidage du débogage peuvent contenir des informations


sensibles. Utilisez une liste de contrôle d'accès (ACL, Access Control List) pour
restreindre l'accès aux fichiers ou copiez ces derniers dans un dossier avec
accès restreint. Par exemple, nous vous recommandons de supprimer toutes
les informations sensibles ou confidentielles avant d'envoyer vos fichiers de
débogage aux services de support technique de Microsoft.

Pour appliquer cette option à tous les packages exécutés par l’utilitaire dtexec ,
ajoutez une valeur REG_SZ DumpOnCodes à la clé de Registre
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL
Server\110\SSIS\Setup\DtsPath. La valeur de données dans DumpOnCodes
spécifie le ou les codes d’erreur qui déclencheront la création, par le système, des
fichiers de vidage du débogage. Plusieurs codes d'erreur doivent être séparés par
un point-virgule (;).

Si vous ajoutez une valeur DumpOnCodes à la clé de Registre et utilisez l’option


/Dump , le système crée des fichiers de vidage du débogage qui sont basés sur les
deux paramètres.

Pour plus d'informations sur les fichiers de vidage du débogage, consultez


Generating Dump Files for Package Execution.

/DumpOnError : (Facultatif) Crée les fichiers de vidage du débogage, .mdmp


et .tmp, lorsqu'une erreur se produit pendant l'exécution du package.

Par défaut, Integration Services stocke les fichiers de sauvegarde du débogage


dans le dossier <lecteur>:\Program Files\Microsoft SQL
Server\110\Shared\ErrorDumps.

7 Notes

Les fichiers de vidage du débogage peuvent contenir des informations


sensibles. Utilisez une liste de contrôle d'accès (ACL, Access Control List) pour
restreindre l'accès aux fichiers ou copiez ces derniers dans un dossier avec
accès restreint. Par exemple, nous vous recommandons de supprimer toutes
les informations sensibles ou confidentielles avant d'envoyer vos fichiers de
débogage aux services de support technique de Microsoft.

Pour appliquer cette option à tous les packages exécutés par l’utilitaire dtexec ,
ajoutez une valeur REG_DWORD DumpOnError à la clé de Registre
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL
Server\110\SSIS\Setup\DtsPath. La valeur REG_DWORD DumpOnError détermine si
l’option /DumpOnError doit être utilisée avec l’utilitaire dtexec :
Une valeur de données différente de zéro indique que le système crée des
fichiers de vidage du débogage quand une erreur se produit, que vous utilisiez
ou non l’option /DumpOnError avec l’utilitaire dtexec .

Une valeur zéro indique que le système ne crée les fichiers de vidage du
débogage que si vous utilisez l’option DumpOnError avec l’utilitaire dtexec .

Pour plus d'informations sur les fichiers de vidage du débogage, consultez


Generating Dump Files for Package Execution.

/ Env [Reference]environment reference ID: (Facultatif). Spécifie la référence


environnementale (ID) utilisée par l'exécution du package, dans le cas d'un
package déployé sur le serveur Integration Services . Les paramètres configurés
pour la liaison aux variables utilisent les valeurs des variables contenues dans
l'environnement.

L’option /Env[Reference] s’utilise avec les options /ISServer et /Server .

Ce paramètre est utilisé par SQL Server Agent.


-- /F[ile]filespec : (Facultatif). Charge un package qui est enregistré dans le système
de fichiers. Les packages enregistrés dans le système de fichiers sont déployés à
l'aide du modèle de déploiement de package hérité. Pour exécuter les packages
qui sont déployés sur le serveur Integration Services à l’aide du modèle de
déploiement de projet, utilisez l’option /ISServer . Pour plus d'informations sur les
modèles de déploiement de package et de projet, consultez Deployment of
Projects and Packages.

L'argument filespec spécifie le chemin d'accès et le nom de fichier du package. Vous


pouvez spécifier le chemin d'accès en tant que chemin UNC (Universal Naming
Convention) ou chemin d'accès local. Si le chemin d'accès ou le nom de fichier spécifié
dans l'argument filespec contient un espace, vous devez placer l'argument filespec entre
guillemets.

L’option /File ne peut pas être utilisée avec l’option /DTS ou /SQL . Si plusieurs
options sont spécifiées, dtexec échoue.

/H[elp] [option_name] : (Facultatif). Affiche l’aide pour les options ou l’argument


option_name spécifié, puis ferme l’utilitaire.

Si vous spécifiez un argument option_name , dtexec ouvre la documentation en


ligne SQL Server et affiche la rubrique relative à l’utilitaire dtexec.

/ISServerpackagepath: (Facultatif). Exécute un package déployé sur le serveur


Integration Services . L’argument PackagePath spécifie le nom de fichier et le
chemin complet du package déployé sur le serveur Integration Services . Si le
chemin d'accès ou le nom de fichier spécifié dans l'argument PackagePath contient
un espace, vous devez placer l'argument PackagePath entre guillemets.

Le format du package est le suivant :

\<catalog name>\<folder name>\<project name>\package file name

L’option /Server est utilisée avec l’option /ISSERVER . Seule l'authentification


Windows peut exécuter un package sur le serveur SSIS. L'accès au package
s'effectue via l'utilisateur Windows actuel. Si l’option /Server est omise, l’instance
locale par défaut de SQL Server est utilisée.

L’option /ISSERVER ne peut pas être utilisée avec l’option /DTS, /SQL ou /File . Si
plusieurs options sont spécifiées, dtexec échoue.

Ce paramètre est utilisé par SQL Server Agent.

/L[ogger]classid_orprogid;configstring: (Facultatif). Associe un ou plusieurs modules


fournisseurs d'informations avec l'exécution d'un package SSIS . Le paramètre
classid_orprogid spécifie le module fournisseur d’informations et peut être spécifié
en tant que GUID de classe. L'argument configstring correspond à la chaîne utilisée
pour configurer le module fournisseur d'informations.

La liste suivante affiche les modules fournisseurs d'informations disponibles :

Fichier texte :

ProgID : DTS.LogProviderTextFile.1

ClassID : {59B2C6A5-663F-4C20-8863-C83F9B72E2EB}

SQL Server Profiler:

ProgID : DTS.LogProviderSQLProfiler.1

ClassID : {5C0B8D21-E9AA-462E-BA34-30FF5F7A42A1}

SQL Server:

ProgID : DTS.LogProviderSQLServer.1

ClassID : {6AA833A1-E4B2-4431-831B-DE695049DC61}
Journaux d'événements Windows :

ProgID : DTS.LogProviderEventLog.1

ClassID : {97634F75-1DC7-4F1F-8A4C-DAF0E13AAA22}

Fichier XML :

ProgID : DTS.LogProviderXMLFile.1

ClassID : {AFED6884-619C-484F-9A09-F42D56E1A7EA}

/M[axConcurrent]concurrent_executables: (Facultatif). Spécifie le nombre


d'exécutables que le package peut exécuter simultanément. La valeur spécifiée doit
être un entier non négatif ou -1. La valeur -1 signifie que SSIS permet l’exécution
simultanée d’un nombre maximal d’exécutables égal au nombre total de
processeurs présents sur l’ordinateur exécutant le package, plus deux.

/Pack[age]PackageName: (Facultatif). Spécifie le package à exécuter. Ce paramètre


est principalement utilisé lorsque vous exécutez le package à partir de Visual
Studio.

/P[assword]password: (Facultatif). Permet la récupération d'un package protégé par


l'authentification SQL Server . Cette option est utilisée avec l’option /User . Si
l’option /Password est omise et que l’option /User est utilisée, un mot de passe
vide est employé. La valeur password peut être mise entre guillemets.

) Important

Lorsque c'est possible, utilisez l'authentification Windows.

/Par[ameter] [$Package:: | $Project:: | $ServerOption::] parameter_name


[(data_type)]; literal_value : (Facultatif). Spécifie les valeurs de paramètres. Plusieurs
options /Parameter peuvent être spécifiées. Les types de données sont des
TypeCodes CLR définis en tant que chaînes. Pour un paramètre qui n'est pas une
chaîne, le type de données est spécifié entre parenthèses, après le nom du
paramètre.

L’option /Parameter peut être utilisée uniquement avec l’option /ISServer .

Utilisez les préfixes $Package, $Project et $ServerOption pour indiquer un


paramètre de package, un paramètre de projet et un paramètre d'option de
serveur, respectivement. Le type de paramètre par défaut est package.
Voici un exemple qui illustre l'exécution d'un package et la spécification de
myvalue pour le paramètre de projet (myparam) et de la valeur entière 12 pour le
paramètre de package (anotherparam).

Dtexec /isserver "SSISDB\MyFolder\MyProject\MyPackage.dtsx" /server "."


/parameter $Project::myparam;myvalue /parameter anotherparam(int32);12

Vous pouvez également définir les propriétés du Gestionnaire de connexions à


l'aide des paramètres. Utilisez le préfixe CM pour désigner un paramètre du
Gestionnaire de connexions.

Dans l'exemple suivant, la propriété InitialCatalog du Gestionnaire de connexions


SourceServer a la valeur ssisdb .

/parameter CM.SourceServer.InitialCatalog;ssisdb

Dans l'exemple suivant, la propriété ServerName du Gestionnaire de connexions


SourceServer est définie sur un point (.) pour indiquer le serveur local.

/parameter CM.SourceServer.ServerName;.

/Proj[ect]ProjectFile: (Facultatif). Spécifie le projet à partir duquel le package à


exécuter doit être récupéré. L'argument ProjectFile spécifie le nom du fichier .ispac.
Ce paramètre est principalement utilisé lorsque vous exécutez le package à partir
de Visual Studio.

/Remcomment: (Facultatif). Inclut des commentaires sur l'invite de commandes ou


dans des fichiers de commandes. Cet argument est facultatif. La valeur comment
est une chaîne à mettre entre guillemets, ou qui ne contient aucun espace. Si
aucun argument n'est spécifié, une ligne vide est insérée. Les valeurscomment sont
rejetées pendant la phase source de la commande.

/Rep[orting]level [;event_guid_or_name[;event_guid_or_name[...]] : (Facultatif).


Spécifie les types de message à produire. Les options de rapport disponibles pour
level sont les suivantes :

N : pas de rapport.

E : les erreurs sont signalées.


W : les avertissements sont inclus dans le rapport.

I : les messages d'information sont inclus dans le rapport.

C : les événements personnalisés sont inclus dans le rapport.

D : les événements de la tâche de flux de données sont inclus dans le rapport.

P : l'avancement est inclus dans le rapport.

V : rapport exhaustif.

Les arguments de V et N sont mutuellement exclusifs à tous les autres arguments ;


ils doivent être spécifiés seuls. Si l’option /Reporting n’est pas spécifiée, le niveau
par défaut est E (erreurs), W (avertissements) et P (progression).

Tous les événements sont précédés d'un horodateur dans le format « AA/MM/JJ
HH:MM:SS », ainsi que d'un GUID ou d'un nom convivial, si disponible.

Le paramètre facultatif event_guid_or_name correspond à une liste d’exceptions


pour les modules fournisseurs d’informations. L'exception spécifie les événements
qui ne sont pas journalisés et qui sinon auraient pu l'être.

Vous n'avez pas besoin d'exclure un événement si celui-ci n'est pas habituellement
journalisé par défaut.

/Res[tart] {deny | force | ifPossible} : (Facultatif). Spécifie une nouvelle valeur pour la
propriété CheckpointUsage du package. La signification des paramètres est la
suivante :

Deny : attribue à CheckpointUsage la valeur DTSCU_NEVER.

Force : attribue à CheckpointUsage la valeur DTSCU_ALWAYS.

ifPossible : attribue à CheckpointUsage la valeur DTSCU_IFEXISTS.

La valeur par défaut force est utilisée si aucune valeur n’est spécifiée.

/Set [$Sensitive::]propertyPath;value : (Facultatif). Remplace la configuration d'un


paramètre, d'une variable, d'une propriété, d'un conteneur, d'un module
fournisseur d'informations, de l'énumérateur Foreach ou de la connexion dans un
package. Quand cette option est utilisée, /Set modifie l’argument propertyPath et
lui attribue la valeur spécifiée. Vous pouvez spécifier plusieurs options /Set .

Outre l’utilisation de l’option /Set avec l’option /F[ile] , vous pouvez aussi utiliser
l’option /Set avec l’option /ISServer ou /Project . Quand vous utilisez l’option /Set
avec l’option /Project, /Set définit les valeurs de paramètre. Quand vous utilisez
l’option /Set avec l’option /ISServer, /Set définit les substitutions de propriété. En
outre, quand vous utilisez l’option /Set avec l’option /ISServer, vous pouvez utiliser
le préfixe facultatif $Sensitive pour indiquer que la propriété doit être traitée
comme sensible sur le serveur Integration Services .

Vous pouvez déterminer la valeur de propertyPath en exécutant l'Assistant


Configuration de package. Les chemins pour les éléments que vous sélectionnez
sont affichés dans la page Fin de l'Assistant ; ils peuvent être copiés et collés. Si
vous utilisez l'Assistant uniquement dans ce but, vous pouvez le fermer après la
copie des chemins.

Voici un exemple qui illustre l'exécution d'un package enregistré dans le système
de fichiers et la spécification d'une nouvelle valeur pour une variable :

dtexec /f mypackage.dtsx /set \package.variables[myvariable].Value;myvalue

L'exemple suivant permet d'exécuter un package à partir du fichier projet .ispac et


de définir les paramètres de package et de projet.

/Project c:\project.ispac /Package Package1.dtsx /SET

\Package.Variables[$Package::Parameter];1 /SET
\Package.Variables[$Project::Parameter];1

Vous pouvez utiliser l’option /Set pour modifier l’emplacement de chargement des
configurations de package. Cependant, vous ne pouvez pas utiliser l’option /Set
pour remplacer une valeur spécifiée par une configuration au moment de la
conception. Pour comprendre comment les configurations de package sont
appliquées, consultez Configurations de package et Changements de
comportement des fonctionnalités Integration Services dans SQL Server 2016.

/Ser[ver]server: (Facultatif). Quand l’option /SQL ou /DTS est spécifiée, cette option
spécifie le nom du serveur à partir duquel le package est récupéré. Si vous omettez
l’option /Server et que l’option /SQL ou /DTS est spécifiée, l’exécution du package
est tentée sur le serveur local. La valeur de server_instance peut être mise entre
guillemets.

L’option Ser[ver] est obligatoire quand l’option /ISServer est spécifiée.

/SQ[L]package_path : charge un package qui est stocké dans SQL Server dans la
base de données msdb. Les packages stockés dans la base de données msdb sont
déployés à l'aide du modèle de déploiement de package. Pour exécuter les
packages qui sont déployés sur le serveur Integration Services à l’aide du modèle
de déploiement de projet, utilisez l’option /ISServer . Pour plus d'informations sur
les modèles de déploiement de package et de projet, consultez Deployment of
Projects and Packages.

L’argument package_path spécifie le nom du package à récupérer. Si des dossiers


sont inclus dans le chemin, ils se terminent par des barres obliques inverses (« \ »).
La valeur de package_path peut être mise entre guillemets. Si le chemin ou le nom
du fichier spécifié dans l’argument package_path contient un espace, vous devez
mettre l’argument package_path entre guillemets.

Vous pouvez utiliser les options /User, /Passwordet /Server avec l’option /SQL .

Si vous omettez l’option /User , l’authentification Windows est utilisée pour


accéder au package. Si vous utilisez l’option /User , le nom d’ouverture de session
/User spécifié est associé à l’authentification SQL Server .

L’option /Password est utilisée uniquement avec l’option /User . Si vous utilisez
l’option /Password , le package est accessible avec les informations de nom
d’utilisateur et de mot de passe fournies. Si vous omettez l’option /Password , un
mot de passe vide est employé.

) Important

Lorsque c'est possible, utilisez l'authentification Windows.

Si l’option /Server est omise, l’instance locale par défaut de SQL Server est utilisée.

L’option /SQL ne peut pas être utilisée avec l’option /DTS ou /File . Si plusieurs
options sont spécifiées, dtexec échoue.

/Su[m] : (Facultatif). Affiche un compteur incrémentiel qui contient le nombre de


lignes qui seront reçues par le prochain composant.

/U[ser]user_name: (Facultatif). Permet la récupération d'un package protégé par


l'authentification SQL Server . Cette option est utilisée uniquement quand l’option
/SQL est spécifiée. La valeur de user_name peut être mise entre guillemets.

) Important

Lorsque c'est possible, utilisez l'authentification Windows.

/Va[lidate] : (Facultatif). Arrête l'exécution du package après la phase de validation,


sans exécuter le package. Pendant la validation, l’utilisation de l’option
/WarnAsError amène dtexec à traiter un avertissement comme une erreur. Par
conséquent, le package échoue si un avertissement se produit pendant la
validation.

/VerifyB[uild]major[;minor[;build]] : (Facultatif). Vérifie le numéro de build d'un


package par rapport aux numéros de build qui ont été spécifiés pendant la phase
de vérification dans les arguments major, minoret build . En cas de non-
concordance, le package ne s'exécute pas.

Les valeurs sont des entiers longs. L'argument peut prendre trois formes, avec une
valeur toujours obligatoire pour major :

major

major;minor

major; minor; build

/VerifyP[ackageID]packageID: (Facultatif). Vérifie le GUID du package à exécuter en


le comparant à la valeur spécifiée dans l’argument package_id .

/VerifyS[igned] : (Facultatif). Demande à Integration Services de vérifier la


signature numérique du package. Si le package n'est pas signé ou si la signature
n'est pas valide, le package échoue. Pour plus d’informations, consultez Identifier la
source de packages à l’aide de signatures numériques.

) Important

Lorsqu'il est configuré pour vérifier la signature du package, Integration


Services vérifie seulement si la signature numérique est présente, si elle est
valide et si elle provient d'une source approuvée. Integration Services ne
vérifie pas si le package a été modifié.

7 Notes

La valeur de Registre BlockedSignatureStates facultative peut spécifier un


paramètre plus restrictif que l’option de signature numérique définie dans
SQL Server Data Tools (SSDT) ou au niveau de la ligne de commande dtexec .
Dans cette situation, le paramètre du Registre plus restrictif a priorité sur les
autres paramètres.

/VerifyV[ersionID]versionID: (Facultatif). Vérifie le GUID de version d’un package à


exécuter en le comparant à la valeur spécifiée dans l’argument version_id pendant
la phase de validation du package.

/VLog[Filespec]: (Facultatif). Écrit tous les événements de package Integration


Services dans les modules fournisseurs d'informations activés lors de la conception
du package. Pour qu'Integration Services active un module fournisseur
d'informations pour les fichiers texte et écrive les événements de journal dans un
fichier texte spécifié, incluez un chemin d'accès et un nom de fichier en tant que
paramètre Filespec .

Si vous n'incluez pas le paramètre Filespec , Integration Services n'activera pas de


module fournisseur d'informations pour les fichiers texte. Il écrira uniquement les
événements de journal dans les modules fournisseurs d'informations activés lors
de la conception du package.

/W[arnAsError] : (Facultatif). Le package considère un avertissement comme une


erreur ; par conséquent, le package échoue si un avertissement se produit pendant
la validation. Si aucun avertissement ne se produit pendant la validation et que
l’option /Validate n’est pas spécifiée, le package est exécuté.

/X86 : (Facultatif). Provoque l'exécution du package par l'Agent SQL Server en


mode 32 bits sur un ordinateur 64 bits. Cette option est définie par l'Agent SQL
Server lorsque les conditions suivantes sont vraies :

Le type d'étape de travail correspond à un Package SQL Server Integration


Services.

L'option Utiliser le runtime 32 bits sous l'onglet Options d'exécution de la


boîte de dialogue Nouvelle étape du travail est sélectionnée.

Vous pouvez également définir cette option pour une étape de travail de l'Agent
SQL Server en utilisant des procédures stockées ou des objets SMO (SQL Server
Management Objects) pour créer le travail par programmation.

Cette option est utilisée uniquement par l'Agent SQL Server . Cette option est
ignorée si vous exécutez l’utilitaire dtexec à l’invite de commandes.

Remarques
L'ordre dans lequel vous spécifiez des options de commande peut influencer le mode
d'exécution du package :

Les options sont traitées dans l'ordre de leur occurrence sur la ligne de commande.
Les fichiers de commandes sont lus dans leur ordre d'occurrence sur la ligne de
commande. Les commandes du fichier de commandes sont également traitées
dans leur ordre d'apparition.

Si la même option, le même paramètre ou la même variable apparaît plusieurs fois


dans la même instruction de ligne de commande, la dernière instance de l'option
est prioritaire.

Les options /Set et /ConfigFile sont traitées dans l’ordre dans lequel elles sont
rencontrées.

Exemples
Les exemples suivants montrent comment utiliser l’utilitaire d’invite de commandes
dtexec pour configurer et exécuter des packages SQL Server Integration Services.

Exécution des packages

Pour exécuter un package SSIS enregistré dans SQL Server à l'aide de l'authentification
Windows, utilisez le code suivant :

dtexec /sq pkgOne /ser productionServer

Pour exécuter un package SSIS enregistré dans le dossier File System, dans le magasin
de packages SSIS, utilisez le code suivant :

dtexec /dts "\File System\MyPackage"

Pour valider un package qui utilise l'authentification Windows et est enregistré dans SQL
Server sans exécuter le package, utilisez le code suivant :

dtexec /sq pkgOne /ser productionServer /va

Pour exécuter un SSIS qui est enregistré dans le système de fichiers, utilisez le code
suivant :

dtexec /f "c:\pkgOne.dtsx"
Pour exécuter un package SSIS qui est enregistré dans le système de fichiers et pour
spécifier des options de journalisation, utilisez le code suivant :

dtexec /f "c:\pkgOne.dtsx" /l "DTS.LogProviderTextFile;c:\log.txt"

Pour exécuter un package qui emploie l'authentification Windows et est enregistré dans
l'instance locale par défaut de SQL Server, puis vérifier la version avant son exécution,
utilisez le code suivant :

dtexec /sq pkgOne /verifyv {c200e360-38c5-11c5-11ce-ae62-08002b2b79ef}

Pour exécuter un package SSIS qui est enregistré dans le système de fichiers et
configuré de façon externe, utilisez le code suivant :

dtexec /f "c:\pkgOne.dtsx" /conf "c:\pkgOneConfig.cfg"

7 Notes

Les argumentspackage_path ou filespec des options /SQL, /DTS ou /FILE doivent


être mis entre guillemets si le chemin ou le nom du fichier contient un espace. Si
l'argument n'est pas placé entre guillemets, il ne peut pas contenir d'espaces.

Option du journal

S’il existe trois types d’entrée de journal A, B et C, l’option ConsoleLog suivante sans
paramètre affiche les trois types de journaux avec tous les champs :

/CONSOLELOG

L'option suivante affiche tous les types de journaux, mais avec uniquement les colonnes
Nom et Message :
/CONSOLELOG NM

L'option suivante affiche toutes les colonnes, mais seulement pour le type A d'entrée de
journal :

/CONSOLELOG I;LogEntryTypeA

L'option suivante affiche uniquement le type A d'entrée de journal, avec les colonnes
Nom et Message :

/CONSOLELOG NM;I;LogEntryTypeA

L'option suivante affiche toutes les entrées de journal pour les types A et B d'entrée de
journal :

/CONSOLELOG I;LogEntryTypeA;LogEntryTypeB

Vous pouvez obtenir les mêmes résultats en utilisant plusieurs options ConsoleLog :

/CONSOLELOG I;LogEntryTypeA /CONSOLELOG I;LogEntryTypeB

Si l’option ConsoleLog est utilisée sans paramètre, tous les champs sont affichés. Si vous
ajoutez un paramètre list_options , l’expression suivante affiche uniquement le type A
d’entrée de journal, avec tous les champs :

/CONSOLELOG NM;I;LogEntryTypeA /CONSOLELOG

L'expression suivante affiche toutes les entrées de journal, à l'exception du type A


d'entrée de journal ; elle affiche les types B et C d'entrée de journal :

/CONSOLELOG E;LogEntryTypeA
L’exemple suivant permet d’obtenir les mêmes résultats en utilisant plusieurs options
ConsoleLog et une seule exclusion :

/CONSOLELOG E;LogEntryTypeA /CONSOLELOG


/CONSOLELOG E;LogEntryTypeA /CONSOLELOG E;LogEntryTypeA
/CONSOLELOG E;LogEntryTypeA;LogEntryTypeA

L'exemple suivant n'affiche aucun message de journalisation car lorsqu'un type de


fichier journal figure à la fois dans les listes d'inclusion et d'exclusion, il est exclu.

/CONSOLELOG E;LogEntryTypeA /CONSOLELOG I;LogEntryTypeA

Option SET

L’exemple suivant montre comment utiliser l’option /SET , qui permet de modifier la
valeur de toute variable ou propriété du package quand vous démarrez le package à
partir de la ligne de commande.

/SET \package\DataFlowTask.Variables[User::MyVariable].Value;newValue

Option Project

L’exemple suivant montre comment utiliser les options /Project et /Package .

/Project c:\project.ispac /Package Package1.dtsx

L’exemple suivant montre comment utiliser les options /Project et /Package et


comment définir les paramètres de package et de projet.

/Project c:\project.ispac /Package Package1.dtsx /SET


\Package.Variables[$Package::Parameter];1 /SET
\Package.Variables[$Project::Parameter];1
Option ISServer

L’exemple suivant montre comment utiliser l’option /ISServer .

dtexec /isserver "\SSISDB\MyFolder\MyProject\MyPackage.dtsx" /server "."

L’exemple suivant montre comment utiliser l’option /ISServer et comment définir les
paramètres relatifs au projet et au gestionnaire de connexions.

/Server localhost /ISServer "\SSISDB\MyFolder\Integration Services


Project1\Package.dtsx" /Par "$Project::ProjectParameter(Int32)";1 /Par
"CM.SourceServer.InitialCatalog";SourceDB
Redémarrer des packages à l'aide de
points de contrôle
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Integration Services peut redémarrer les packages ayant échoué à partir du point
d’échec, au lieu de reprendre l’exécution du package tout entier. Si un package est
configuré pour utiliser des points de contrôle, des informations sur l'exécution du
package sont écrites dans un fichier de point de contrôle. Lorsque le package ayant
échoué est relancé, le fichier de point de contrôle est utilisé pour redémarrer le package
à partir du point d'échec. Si le package est exécuté avec succès, le fichier de point de
contrôle est supprimé, puis recréé à l’exécution suivante du package.

L'utilisation des points de contrôle dans un package offre les avantages suivants :

Éviter de répéter le téléchargement ascendant et descendant de gros fichiers. Par


exemple, un package qui télécharge plusieurs gros fichiers à l'aide d'une tâche FTP
pour chaque téléchargement peut être redémarré après l'échec du téléchargement
d'un seul fichier, puis ne reprendre le téléchargement que pour ce fichier.

Éviter de répéter le téléchargement de grands volumes de données. Par exemple,


un package qui effectue des insertions en bloc dans des tables de dimension d'un
entrepôt de données à l'aide d'une tâche d'insertion en bloc différente pour
chaque dimension, peut être redémarré si l'insertion échoue pour une table de
dimension, et ne recharger que cette dimension.

Éviter de répéter l'agrégation de valeurs. Par exemple, un package qui calcule de


nombreux agrégats, tels que des moyennes et des sommes, à l'aide d'une tâche de
flux de données distincte pour la réalisation de chaque agrégation, peut être
redémarré en cas d'échec du calcul d'une agrégation pour ne recalculer que cette
agrégation.

Si un package est configuré pour utiliser les points de contrôle, Integration Services
capture le point de redémarrage dans le fichier de point de contrôle. Le type de
conteneur qui échoue et l'implémentation de fonctionnalités telles que les transactions
affectent le point de redémarrage enregistré dans le fichier de point de contrôle. Les
valeurs actuelles des variables sont également capturées dans le fichier de point de
contrôle. Toutefois, les valeurs des variables de type de données Object ne sont pas
enregistrées dans les fichiers de point de contrôle.
Définition des points de redémarrage
Le conteneur d'hôte de tâche, qui encapsule une seule tâche, est la plus petite unité
atomique à pouvoir être redémarrée. Le conteneur de boucles Foreach et un conteneur
transactionnel sont également traités comme des unités atomiques de travail.

Si un package est arrêté alors qu'un conteneur transactionnel est en cours d'exécution,
la transaction est arrêtée et tout travail effectué par le conteneur est annulé. Lorsque le
package est redémarré, le conteneur qui a échoué est exécuté à nouveau. La réalisation
de conteneurs enfants du conteneur transactionnel n'est pas enregistrée dans le fichier
de point de contrôle. Par conséquent, lorsque le package est redémarré, le conteneur
transactionnel et ses conteneurs enfants sont exécutés à nouveau.

7 Notes

L'utilisation de points de contrôle et de transactions dans le même package peut


entraîner des résultats inattendus. Par exemple, lorsqu'un package échoue et
redémarre à partir d'un point de contrôle, il peut répéter une transaction qui a déjà
été correctement validée.

Les données de point de contrôle ne sont pas enregistrées pour les conteneurs de
boucles For et Foreach. Lorsqu'un package est redémarré, les conteneurs de boucles For
et Foreach et les conteneurs enfants sont exécutés à nouveau. Si un conteneur enfant de
la boucle est exécuté correctement, il n'est pas enregistré dans le fichier de point de
contrôle et il est exécuté à nouveau. Pour plus d'informations et pour obtenir une
solution de contournement, consultez Les points de contrôle SSIS ne sont pas respectés
pour les éléments de conteneur de boucles For ou Foreach.

Si le package est redémarré, les configurations du package ne sont pas rechargées, mais
le package utilise les informations de configuration écrites dans le fichier de point de
contrôle. Cette procédure assure que le package utilise les mêmes configurations
lorsqu'il est exécuté à nouveau qu'au moment où il a échoué.

Un package ne peut être redémarré qu'au niveau du flux de contrôle. Vous ne pouvez
pas redémarrer un package au milieu d'un flux de données. Pour éviter de réexécuter
tout le flux de données, le package peut être conçu de manière à inclure plusieurs flux
de données, utilisant chacun une tâche de flux de données différente. De cette manière,
le package peut être redémarré en ne réexécutant qu'une seule tâche de flux de
données.
Configuration d'un package pour le
redémarrage
Le fichier de point de contrôle comprend les résultats d'exécution de tous les
conteneurs achevés, les valeurs actuelles des variables système et définies par
l'utilisateur, ainsi que les informations de configuration du package. Le fichier peut
également inclure un identificateur unique du package. Pour redémarrer correctement le
package, l'identificateur du package dans le fichier de point de contrôle doit
correspondre au package. Dans le cas contraire, le redémarrage échoue. Cela empêche
un package d'utiliser un fichier de point de contrôle écrit par une version de package
différente. Si un package redémarre après avoir été exécuté correctement, le fichier de
point de contrôle est supprimé.

Le tableau suivant présente les propriétés de package que vous définissez pour
implémenter les points de contrôle.

Propriété Description

CheckpointFileName Indique le nom du fichier de point de contrôle.

CheckpointUsage Indique si les points de contrôle sont utilisés.

SaveCheckpoints Indique si le package enregistre les points de contrôle. Cette propriété doit
avoir pour valeur True pour redémarrer le package à partir d'un point
d'échec.

Vous pouvez également affecter la valeur true à la propriété FailPackageOnFailure pour


tous les conteneurs du package que vous voulez identifier comme points de
redémarrage.

Vous pouvez utiliser la propriété ForceExecutionResult pour tester l’utilisation des points
de contrôle dans un package. En affectant la valeur la valeur Failure à la propriété
ForceExecutionResult d’une tâche ou d’un conteneur, vous pouvez imiter un échec en
temps réel. Lorsque vous redémarrez le package, la tâche et les conteneurs ayant
échoué sont réexécutés.

Utilisation des points de contrôle


La propriété CheckpointUsage peut avoir les valeurs suivantes :

Valeur Description
Valeur Description

Jamais Spécifie que le fichier de point de contrôle n'est pas utilisé et que le package est
exécuté à partir du début du flux de travail du package.

Toujours Spécifie que le fichier de point de contrôle est toujours utilisé et que le package
redémarre à partir du point de l'échec de la précédente exécution. Si le fichier de point
de contrôle est introuvable, le package échoue.

IfExists Spécifie que le fichier de point de contrôle est utilisé s'il existe. Si le fichier de point de
contrôle existe, le package redémarre à partir du point de l'échec de la précédente
exécution. Sinon il est exécuté à partir du début du flux de travail du package.

7 Notes

L’option /CheckPointing on de dtexec revient à affecter la valeur True à la propriété


SaveCheckpointsdu package et la valeur Always à la propriété CheckpointUsage .
Pour plus d'informations, consultez Utilitaire dtexec.

Sécurisation des fichiers de point de contrôle


La protection au niveau du package n'inclut pas la protection des fichiers de point de
contrôle ; vous devez donc sécuriser ces fichiers séparément. Les données de point de
contrôle peuvent être stockées uniquement dans le système de fichiers et vous devez
utiliser une liste de contrôle d'accès au système d'exploitation pour sécuriser
l'emplacement ou le dossier de stockage du fichier. Il est important de sécuriser les
fichiers de point de contrôle car ceux-ci contiennent des informations sur l'état du
package, notamment les valeurs actuelles des variables. Une variable peut ainsi contenir
un ensemble d'enregistrements doté de plusieurs lignes de données privées, telles que
des numéros de téléphone. Pour plus d’informations, consultez Accéder aux fichiers
utilisés par des packages.

Configurer des points de contrôle pour


redémarrer un package ayant échoué
Vous pouvez configurer les packages Integration Services de sorte qu’ils redémarrent à
partir d’un point d’arrêt au lieu de réexécuter l’ensemble du package. Pour ce faire, vous
devez définir les propriétés des points de contrôle.

Pour configurer le redémarrage d'un package


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package à configurer.

2. Dans l’Explorateur de solutions, double-cliquez sur le package pour l’ouvrir.

3. Cliquez sur l'onglet Flux de contrôle .

4. Cliquez avec le bouton droit n’importe où dans l’arrière-plan de la surface de


dessin du flux de contrôle, puis cliquez sur Propriétés.

5. Définissez la propriété SaveCheckpoints sur True.

6. Tapez le nom du fichier point de contrôle dans la propriété CheckpointFileName.

7. Définissez la propriété CheckpointUsage sur l’une des deux valeurs suivantes :

Sélectionnez Always pour toujours redémarrer le package à partir du point


d'arrêt.

) Important

Une erreur se produit si le fichier de point d'arrêt n'est pas disponible.

Sélectionnez IfExists pour redémarrer le package uniquement si le fichier de


point d'arrêt est disponible.

8. Configurez les tâches et les conteneurs à partir desquels le package peut


redémarrer.

Cliquez avec le bouton droit sur une tâche ou un conteneur, puis cliquez sur
Propriétés.

Affectez à la propriété FailPackageOnFailure la valeur True pour chaque tâche


et conteneur sélectionnés.

Ressources externes
Article technique, Redémarrage automatique des packages SSIS après un
basculement ou un échec , sur social.technet.microsoft.com

Article du Support technique Microsoft, Les points de contrôle SSIS ne sont pas
respectés pour les éléments de conteneur de boucles For ou Foreach, sur le site
support.microsoft.com.
Travaux de l'Agent SQL Server pour les
packages
Article • 30/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Automatisez et planifiez l’exécution des packages SQL Server Integration Services avec
SQL Server Agent. Vous pouvez planifier les packages qui sont déployés sur le serveur
Integration Services et sont stockés dans SQL Server, le magasin de packages SSIS et le
système de fichiers.

7 Notes

Cet article décrit comment planifier des packages SSIS de manière générale et
comment les planifier au niveau local. Vous pouvez également exécuter et planifier
des packages SSIS sur les plateformes suivantes :

Cloud Microsoft Azure. Pour plus d’informations, consultez Effectuer un «


lift-and-shift » des charges de travail SQL Server Integration Services vers le
cloud et Planifier l’exécution d’un package SSIS dans Azure.
Linux. Pour plus d’informations, consultez Extraire, transformer et charger
des données sur Linux avec SSIS et Planifier l’exécution du package SQL
Server Integration Services sur Linux avec cron.

Planification de travaux dans l'Agent SQL


Server
SQL Server Agent est le service installé par SQL Server qui vous permet d’automatiser et
de planifier des tâches en exécutant les travaux de SQL Server Agent. Le service SQL
Server Agent doit s’exécuter avant que les travaux puissent s’exécuter automatiquement.
Pour plus d’informations, consultez Configure SQL Server Agent.

Le nœud SQL Server Agent s’affiche dans l’Explorateur d’objets dans SQL Server
Management Studio quand vous vous connectez à une instance du Moteur de base de
données SQL Server.

Pour automatiser une tâche récurrente, créez un travail à l’aide de la boîte de dialogue
Nouveau travail . Pour plus d’informations, consultez Implémenter des travaux.
Après avoir créé le travail, vous devez ajouter au moins une étape. Un travail peut
inclure plusieurs étapes, et chaque étape peut effectuer une tâche différente. Pour plus
d’informations, consultez Gérer les étapes de travail.

Après avoir créé le travail et les étapes du travail, vous pouvez créer une planification
d'exécution du travail. Cependant, vous pouvez également créer un travail non planifié
que vous exécutez manuellement. Pour plus d’informations, consultez Créer des
planifications et les attacher à des travaux.

Vous pouvez améliorer le travail en définissant des options de notification, par exemple
en spécifiant l'envoi de messages électroniques à un opérateur à la fin du travail ou en
ajoutant des alertes. Pour plus d’informations, consultez Alertes.

Planification de packages Integration Services


Quand vous créez un travail SQL Server Agent pour planifier des packages Integration
Services , vous devez ajouter au moins une étape et affecter à son type la valeur
Package SQL Server Integration Services. Un travail peut inclure plusieurs étapes, et
chaque étape peut exécuter un package différent.

L’exécution d’un package Integration Services à partir d’une étape du travail revient à
exécuter un package à l’aide des utilitaires dtexec (dtexec.exe) et DTExecUI
(dtexecui.exe). Au lieu de définir les options d’exécution pour un package à l’aide des
options de ligne de commande ou de la boîte de dialogue Utilitaire d’exécution de
package , vous définissez les options d’exécution dans la boîte de dialogue Nouvelle
étape de travail . Pour plus d’informations sur les options de ligne de commande pour
l’exécution d’un package, consultez Utilitaire dtexec.

Pour plus d’informations, consultez Planifier un package à l’aide de SQL Server Agent.

Pour obtenir une vidéo qui montre comment utiliser l’agent SQL Server pour exécuter
un package, consultez la page d’accueil vidéo Guide pratique pour automatiser
l’exécution du package à l’aide de SQL Server Agent (vidéo de SQL Server) dans MSDN
Library.

Dépannage
Une étape de travail de SQL Server Agent peut ne pas démarrer un package même si le
package est exécuté correctement dans SQL Server Data Tools (SSDT) et à partir de la
ligne de commande. Ce problème est connu et plusieurs solutions sont recommandées.
Pour plus d'informations, consultez les ressources ci-dessous.
Article de la Base de connaissances Microsoft intitulé Un package SSIS n’est pas
exécuté quand vous appelez le package SSIS à partir d’une étape du travail de
l’Agent SQL Server

Vidéo, Résolution des problèmes : exécution du package à l’aide de SQL Server


Agent (vidéo de SQL Server) dans MSDN Library.

Lorsqu’une étape du travail de l’Agent SQL Server démarre un package, l’exécution du


package peut échouer ou le package peut s’exécuter correctement, mais avec des
résultats inattendus. Vous pouvez utiliser les outils suivants pour résoudre ces
problèmes.

Pour les packages stockés dans la base de données MSDB SQL Server, dans le
magasin de packages SSIS ou dans un dossier sur votre ordinateur local, vous
pouvez utiliser la Visionneuse du fichier journal ainsi que tous les journaux et les
fichiers de vidage des informations de débogage générés pendant l’exécution du
package.

Pour utiliser la Visionneuse du fichier journal, procédez comme suit.

1. Cliquez avec le bouton droit sur le travail de l’Agent SQL Server dans
l’Explorateur d’objets, puis sélectionnez Afficher l’historique.

2. Dans la zone Résumé du fichier journal , recherchez l’exécution du travail qui


présente le message Travail échoué dans la colonne Message .

3. Développez le nœud de travail, puis sélectionnez l’étape de travail pour


afficher les détails du message dans la zone sous Résumé du fichier journal.

Pour les packages stockés dans la base de données SSISDB, vous pouvez
également utiliser la Visionneuse du fichier journal ainsi que tous les journaux et
les fichiers de vidage des informations de débogage générés pendant l’exécution
du package. En outre, vous pouvez utiliser les rapports pour le serveur Integration
Services .

Pour rechercher des informations dans les rapports sur l'exécution du package
associée à une exécution de travail, procédez comme suit.

1. Suivez les étapes ci-dessus pour afficher les détails du message de l'étape de
travail.

2. Recherchez l'ID d'exécution répertorié dans le message.

3. Développez le nœud du catalogue Integration Services dans l'Explorateur


d'objets.
4. Cliquez avec le bouton droit sur SSISDB, pointez sur Rapports, sur Rapports
standard, puis sélectionnez Toutes les exécutions.

5. Dans le rapport Toutes les exécutions , recherchez l’ID d’exécution dans la


colonne ID . Sélectionnez Vue d’ensemble, Tous les messages ou
Performances de l’exécution pour afficher des informations sur l’exécution
de ce package.

Pour plus d’informations sur les rapports Vue d’ensemble, Tous les messages et
Performances de l’exécution, consultez Rapports du serveur Integration Services.

Planifier un package à l'aide de SQL Server


Agent
La procédure suivante fournit les étapes pour automatiser l'exécution d'un package en
utilisant une étape de travail de SQL Server Agent pour exécuter le package.

Pour automatiser l'exécution des packages à l'aide de


l'Agent SQL Server
1. Dans SQL Server Management Studio, connectez-vous à l'instance de SQL Server
sur laquelle vous voulez créer un travail, ou l'instance contenant le travail auquel
vous voulez ajouter une étape.

2. Développez le nœud de SQL Server Agent dans l'Explorateur d'objets et effectuez


l'une des tâches suivantes :

Pour créer un travail, cliquez avec le bouton droit sur Travaux, puis
sélectionnez Nouveau travail.

Pour ajouter une étape à un travail existant, développez Travaux, cliquez avec
le bouton droit sur le travail, puis sélectionnez Propriétés.

3. Dans la page Général, si vous créez un travail, indiquez un nom de travail,


sélectionnez un propriétaire et une catégorie de travail, et fournissez une
description du travail si vous le souhaitez.

4. Pour rendre le travail disponible pour la planification, sélectionnez Activé.

5. Pour créer une étape de travail pour le package à planifier, sélectionnez Étapes,
puis Nouveau.

6. Pour le type d'étape de travail, sélectionnez Package Integration Services .


7. Dans la liste Exécuter en tant que , sélectionnez Compte de service SQL Server
Agent ou sélectionnez un compte proxy ayant les informations d'identification qui
seront utilisées par le travail. Pour plus d'informations sur la création d'un compte
proxy, consultez Create a SQL Server Agent Proxy.

En utilisant un compte proxy au lieu du Compte de service SQL Server Agent ,


vous pouvez résoudre les problèmes courants qui peuvent se produire lors de
l'exécution d'un package à l'aide de SQL Server Agent. Pour plus d’informations sur
ces problèmes, consultez l’article de la Base de connaissances Microsoft intitulé Un
package SSIS n’est pas exécuté quand vous appelez le package SSIS à partir d’une
étape du travail de l’Agent SQL Server .

Lors de l’exécution d’un travail avec un proxy, les éléments de sécurité


suivants doivent être en place pour que le travail s’exécute correctement.

Informations d’identification de connexion utilisées par le proxy, le compte


qui exécute SQL Server Agent et le compte qui exécute le Service SQL Server
nécessitent les autorisations suivantes :
Attribut de stratégie de sécurité locale : Remplacer un jeton de niveau
processus
Contrôle total sur %SYSTEMROOT%\Temp

En cas d’échec de mise en place des éléments de sécurité, la tâche échoue et


un message d’erreur semblable au suivant s’affiche : Le travail a échoué. Le
client ne dispose pas d’un privilège qui est obligatoire.

7 Notes

Si le mot de passe est différent de celui des informations d'identification


que le compte proxy utilise, vous devez mettre à jour le mot de passe
des informations d'identification. Autrement, l'étape de travail échouera.

Pour plus d’informations sur la configuration du compte de service de l’Agent


SQL Server, consultez Définir le compte de démarrage du service pour l’Agent
SQL Server (Gestionnaire de configuration SQL Server).

8. Dans la zone de liste Source du package, sélectionnez la source du package et


définissez les options de l’étape de travail.

Le tableau suivant décrit les sources de package possibles.


Source Description
du
package

Catalogue Packages stockés dans la base de données SSISDB. Les packages sont
SSIS contenus dans les projets Integration Services déployés sur le serveur
Integration Services .

SQL Packages stockés dans la base de données MSDB. Vous utilisez le service
Server Integration Services pour gérer les packages.

Magasin Packages stockés dans le dossier par défaut sur votre ordinateur. Le dossier
de par défaut est <lecteur>:\Program files\Microsoft SQL
packages Server\110\DTS\Packages. Vous utilisez le service Integration Services pour
SSIS gérer les packages.

Remarque : Vous pouvez spécifier un dossier différent ou spécifier des dossiers


supplémentaires dans le système de fichiers géré par le service Integration
Services, en modifiant le fichier de configuration pour Integration Services.
Pour plus d’informations, consultez Service Integration Services (Service SSIS).

Système Packages stockés dans un dossier sur votre ordinateur local.


de
fichiers

Les tableaux suivants décrivent les options de configuration disponibles pour


l'étape de travail en fonction de la source du package que vous sélectionnez.

) Important

Si le package est protégé par mot de passe, lorsque vous cliquez sur l'un des
onglets de la page Général de la boîte de dialogue Nouvelle étape de travail ,
à l'exception de l'onglet Package , vous devez entrer le mot de passe dans la
boîte de dialogue Mot de passe du package qui s'affiche. Sinon, le travail de
SQL Server Agent n'exécute pas le package.

Source du package : Catalogue SSIS

Onglet Options
Onglet Options

Package Serveur

Tapez ou sélectionnez le nom de l'instance de serveur de base de données


qui héberge le catalogue SSIS.

Lorsque Catalogue SSIS est la source du package, vous pouvez vous


connecter au serveur avec seulement un compte d’utilisateur Microsoft
Windows. L’authentification SQL Server n’est pas disponible.

Package

Choisissez le bouton de sélection et un package.

Vous sélectionnez un package dans un dossier sous le nœud Catalogues


Integration Services dans l' Explorateur d'objets.

Paramètres L' Assistant Conversion de projet Integration Services vous permet de


remplacer les configurations du package avec des paramètres.
Situés sur
l'onglet L'onglet Paramètres affiche les paramètres que vous avez ajoutés lors de la
Configuration conception du package, par exemple à l'aide de SQL Server Data Tools
. (SSDT). L'onglet affiche également les paramètres qui ont été ajoutés au
package lors de la conversion du projet Integration Services du modèle de
déploiement de package au modèle de déploiement de projet. Entrez les
nouvelles valeurs des paramètres contenus dans le package. Vous pouvez
entrer une valeur littérale ou utiliser la valeur contenue dans une variable
d'environnement serveur que vous avez déjà mappée au paramètre.

Pour entrer la valeur littérale, choisissez le bouton de sélection en regard


d’un paramètre. La boîte de dialogue Modifier la valeur littérale pour
l'exécution s'affiche.

Pour utiliser une variable d’environnement, sélectionnez Environnement,


puis l’environnement qui contient la variable que vous souhaitez utiliser.

** Important ** Si vous avez mappé plusieurs paramètres et/ou propriétés


du gestionnaire de connexions à des variables contenues dans plusieurs
environnements, SQL Server Agent affiche un message d’erreur. Pour une
exécution données, un package peut s'exécuter uniquement avec les
valeurs contenues dans un seul environnement.

Pour plus d’informations sur la création d’un environnement serveur et le


mappage d’une variable à un paramètre, consultez Déployer des projets et
des packages Integration Services (SSIS).
Onglet Options

Gestionnaires Modifiez les valeurs des propriétés du gestionnaire de connexions. Par


de exemple, vous pouvez modifier le nom du serveur. Les paramètres sont
connexions automatiquement générés sur le serveur SSIS pour les propriétés du
gestionnaire de connexions. Pour modifier une valeur de propriété, vous
Situés sur pouvez entrer une valeur littérale ou utiliser la valeur contenue dans une
l'onglet variable d'environnement serveur que vous avez déjà mappée à la
Configuration propriété du gestionnaire de connexions.
.
Pour entrer la valeur littérale, choisissez le bouton de sélection en regard
d’un paramètre. La boîte de dialogue Modifier la valeur littérale pour
l'exécution s'affiche.

Pour utiliser une variable d’environnement, sélectionnez Environnement,


puis l’environnement qui contient la variable que vous souhaitez utiliser.

** Important ** Si vous avez mappé plusieurs paramètres et/ou propriétés


du gestionnaire de connexions à des variables contenues dans plusieurs
environnements, SQL Server Agent affiche un message d’erreur. Pour une
exécution données, un package peut s'exécuter uniquement avec les
valeurs contenues dans un seul environnement.

Pour plus d’informations sur la création d’un environnement serveur et le


mappage d’une variable à une propriété du gestionnaire de connexions,
consultez Déployer des projets et des packages Integration Services (SSIS).

Avancée Configurez les paramètres supplémentaires suivants pour l’exécution du


package :
Situés sur
l'onglet
Configuration
.
Onglet Options

Substitutions de propriété:

Sélectionnez Ajouter pour entrer une nouvelle valeur de propriété de


package, spécifiez le chemin de la propriété et indiquez si la valeur de
propriété est sensible. Le serveur Integration Services chiffre les données
sensibles. Pour modifier ou supprimer les paramètres d’une propriété,
sélectionnez une ligne dans la zone Substitutions de propriété, puis
Modifier ou Supprimer. Vous pouvez trouver le chemin de la propriété en
procédant de l’une des façons suivantes :

- Copiez le chemin de la propriété à partir du fichier de configuration XML


(*.dtsconfig). Le chemin d'accès est répertorié dans la section
Configuration du fichier, comme valeur de l'attribut Path. Voici un exemple
de chemin d’accès de la propriété MaximumErrorCount :
\Package.Properties[MaximumErrorCount]

\- Exécutez l’Assistant Configuration de package et copiez les chemins


des propriétés à partir de la dernière page Fin de l’Assistant . Vous pouvez
ensuite quitter l'Assistant.

Remarque : L'option Substitutions de propriété concerne des packages


contenant des configurations que vous avez mises à niveau depuis une
version précédente de Integration Services. Les packages que vous créez à
l'aide de SQL Server 2019 Integration Services (SSIS) et que vous déployez
sur le serveur Integration Services utilisent des paramètres à la place des
configurations.
Onglet Options

Niveau de journalisation

Sélectionnez l'un des niveaux de journalisation suivants pour l'exécution


du package. La sélection du niveau de journalisation Performances ou
Commentaires peut affecter les performances de l’exécution du package.

Aucun :
La journalisation est désactivée. Seul l'état d'exécution du package est
enregistré.

De base :
Tous les événements sont enregistrés, sauf les événements personnalisés
et de diagnostic. Il s'agit de la valeur par défaut du niveau de
journalisation.

Performances :
Seules les statistiques de performances, et les événements OnError et
OnWarning, sont enregistrés.

Commentaires:
Tous les événements sont enregistrés, y compris les événements
personnalisés et de diagnostic.

Le niveau de journalisation que vous sélectionnez détermine quelles


informations sont affichées dans les vues SSISDB et dans les rapports pour
le serveur Integration Services . Pour plus d’informations, consultez
Journalisation d’Integration Services (SSIS).

Vider en cas d'erreurs

Déterminez si des fichiers de vidage du débogage sont générés lorsqu'une


erreur se produit pendant l'exécution du package. Les fichiers contiennent
des informations sur l'exécution du package qui peuvent vous aider à
résoudre les problèmes d'exécution. Quand vous sélectionnez cette option
et qu’une erreur se produit pendant l’exécution, Integration Services crée
un fichier .mdmp (fichier binaire) et un fichier .tmp (fichier texte). Par
défaut, Integration Services stocke ces fichiers dans le dossier
<drive>:\Program Files\Microsoft SQL Server\110\Shared\ErrorDumps.
Onglet Options

Runtime 32 bits

Indiquez si le package est exécuté à l’aide de la version 32 bits de


l’utilitaire dtexec sur un ordinateur 64 bits contenant une version 64 bits de
SQL Server et SQL Server Agent.

Il peut être nécessaire d’exécuter le package à l’aide de la version 32 bits


de dtexec si, par exemple, le package utilise un fournisseur OLE DB natif
qui n’est pas disponible en version 64 bits. Pour plus d'informations,
consultez Considérations 64 bits pour Integration Services .

Par défaut, lorsque vous sélectionnez le type d'étape de travail Package


SQL Server Integration Services , SQL Server Agent exécute le package à
l'aide de la version de l'utilitaire dtexec qui est appelée automatiquement
par le système. Le système appelle la version 32 bits ou 64 bits de
l'utilitaire selon le processeur de l'ordinateur, et de la version de SQL
Server et de SQL Server Agent qui s'exécute sur l'ordinateur.

Source du package : SQL Server, Magasin de packages SSIS ou Système de fichiers

Plusieurs options que vous pouvez définir pour les packages stockées dans SQL
Server, le magasin de packages SSIS ou le système de fichiers correspondent aux
options de ligne de commande de l’utilitaire d’invite de commandes dtexec . Pour
plus d’informations sur l’utilitaire et les options de la ligne de commande,
consultez Utilitaire dtexec.

Onglet Options

Package Serveur

Voici les options Tapez ou sélectionnez le nom de l'instance de serveur de base de


de l'onglet pour données pour SQL Server ou pour le service Integration Services .
les packages
stockés dans
SQL Server ou
dans le magasin
de packages d'
SSIS .

Utiliser l'authentification Windows

Sélectionnez cette option pour la connexion au serveur à l’aide d’un


compte d’utilisateur Microsoft Windows.
Onglet Options

Utiliser l’authentification SQL Server

Quand un utilisateur se connecte avec un nom d’accès et un mot de


passe spécifiés à partir d’une connexion non autorisée, SQL Server
réalise l’authentification en vérifiant si un compte de connexion SQL
Server a été défini et si le mot de passe spécifié correspond à celui
enregistré précédemment. Si SQL Server ne peut pas trouver le compte
de connexion, l'authentification échoue et l'utilisateur reçoit un
message d'erreur.

Nom d’utilisateur

Mot de passe

Package

Choisissez le bouton de sélection et le package.

Vous sélectionnez un package dans un dossier sous le nœud Packages


stockés dans l' Explorateur d'objets.

Package Package

Voici les options Tapez le chemin complet du fichier de package, ou choisissez le bouton
de l'onglet pour de sélection pour sélectionner le package.
les packages
stockés dans le
système de
fichiers.

Configurations Ajoutez un fichier de configuration XML pour exécuter le package avec


une configuration spécifique. Utilisez une configuration de package
pour mettre à jour les valeurs des propriétés du package au moment de
l'exécution.

Cette option correspond à l’option /ConfigFile de dtexec.

Pour comprendre le fonctionnement de l'application des configurations


de package, consultez Package Configurations. Pour plus d'informations
sur la création d'un configuration de package, consultez Create Package
Configurations.
Onglet Options

Fichiers de Spécifiez les autres options que vous souhaitez exécuter avec dtexec,
commandes dans un fichier distinct.

Par exemple, vous pouvez inclure un fichier qui contient l’option /Dump
errorcode pour générer des fichiers de vidage du débogage quand un
ou plusieurs événements spécifiques se produisent pendant l’exécution
du package.

Vous pouvez exécuter un package avec des ensembles d'options


différents en créant plusieurs fichiers et en spécifiant le fichier approprié
à l'aide de l'option Fichiers de commandes .

L’option Fichiers de commandes correspond à l’option /CommandFile


de dtexec.

Data Sources Affichez les gestionnaires de connexions contenus dans le package.


(Sources de Pour modifier une chaîne de connexion, sélectionnez le gestionnaire de
données) connexions et la chaîne de connexion.

Cette option correspond à l’option /Connection de dtexec.

Options Mettre le package en échec en cas d'avertissements de validation


d'exécution Indique si un message d’avertissement est considéré comme une erreur.
Si vous sélectionnez cette option et un avertissement se produit
pendant la validation, le package échoue pendant la validation. Cette
option correspond à l’option /WarnAsError de dtexec.

Valider le package sans l'exécuter


Indique si l'exécution du package s'arrête après la phase de validation,
sans exécuter effectivement le package. Cette option correspond à
l’option /Validate de dtexec.

Remplacer la propriété MacConcurrentExecutables


Spécifie le nombre d'exécutables que le package peut exécuter
simultanément. La valeur -1 signifie que le package peut exécuter
simultanément un nombre maximal de fichiers exécutables égal au
nombre total de processeurs sur l'ordinateur exécutant le package, plus
deux. Cette option correspond à l’option /MaxConcurrent de dtexec.

Activer les points de contrôle de package


Indique si le package utilise des points de contrôle pendant l'exécution
du package. Pour plus d'informations, consultez Redémarrer des
packages à l'aide de points de contrôle.

Cette option correspond à l’option /CheckPointing de dtexec.

Substituer les options de redémarrage


Indique si une nouvelle valeur est définie pour la propriété
Onglet Options

CheckpointUsage du package. Sélectionnez une valeur dans la zone de


liste Option de redémarrage .

Cette option correspond à l’option /Restart de dtexec.

Utiliser le runtime 32 bits


Indiquez si le package est exécuté à l’aide de la version 32 bits de
l’utilitaire dtexec sur un ordinateur 64 bits contenant une version 64 bits
de SQL Server et SQL Server Agent.

Il peut être nécessaire d’exécuter le package à l’aide de la version


32 bits de dtexec si, par exemple, le package utilise un fournisseur
OLE DB natif qui n’est pas disponible en version 64 bits. Pour plus
d'informations, consultez Considérations 64 bits pour Integration
Services .

Par défaut, lorsque vous sélectionnez le type d'étape de travail Package


SQL Server Integration Services , SQL Server Agent exécute le package
à l'aide de la version de l'utilitaire dtexec qui est appelée
automatiquement par le système. Le système appelle la version 32 bits
ou 64 bits de l'utilitaire selon le processeur de l'ordinateur, et de la
version de SQL Server et de SQL Server Agent qui s'exécute sur
l'ordinateur.
Onglet Options

Logging Associez un fournisseur d'informations à l'exécution du package.

Module fournisseur d'informations SSIS pour les fichiers texte


Écrit les entrées du journal dans des fichiers texte ASCII

Module fournisseur d'informations SSIS pour SQL Server


Écrit les entrées du journal dans la table sysssislog de la base de
données MSDB.

Module fournisseur d'informations SSIS pour SQL Server Profiler


Écrit des traces que vous pouvez afficher à l'aide de SQL Server Profiler.

Module fournisseur d'informations SSIS pour le journal d'événements


Windows
Écrit des entrées dans le journal Application du journal des événements
Windows.

Module fournisseur d'informations SSIS pour les fichiers XML


Écrit des fichiers journaux dans un fichier XML.

Pour le fichier texte, le fichier XML et les fournisseurs d’informations


SQL Server Profiler, sélectionnez les gestionnaires de connexions de
fichiers contenus dans le package. Pour le fournisseur d’informations
SQL Server, sélectionnez un gestionnaire de connexions OLE DB
contenu dans le package.

Cette option correspond à l’option /Logger de dtexec.


Onglet Options

Valeurs définies Substituez un paramètre de propriété du package. Dans la zone


Propriétés , entrez des valeurs dans les colonnes Chemin d'accès de la
propriété et Valeur . Après avoir entré les valeurs d'une propriété, une
ligne vide apparaît dans la zone Propriétés et vous permet d'entrer des
valeurs pour une autre propriété.

Pour supprimer une propriété de la zone Propriétés, sélectionnez la


ligne, puis Supprimer.

Vous pouvez trouver le chemin de la propriété en procédant de l’une


des façons suivantes :

- Copiez le chemin de la propriété à partir du fichier de configuration


XML (*.dtsconfig). Le chemin d'accès est répertorié dans la section
Configuration du fichier, comme valeur de l'attribut Path. Voici un
exemple de chemin d’accès de la propriété MaximumErrorCount :
\Package.Properties[MaximumErrorCount]

\- Exécutez l’Assistant Configuration de package et copiez les chemins


des propriétés à partir de la dernière page Fin de l’Assistant . Vous
pouvez ensuite quitter l'Assistant.

Vérification Exécuter uniquement les packages signés


Indique si la signature du package est vérifiée. Si le package n’est pas
signé ou si la signature n’est pas valide, le package échoue. Cette
option correspond à l’option /VerifySigned de dtexec.

Vérifier la version du package


Indique si le numéro de build du package est vérifié par rapport au
numéro de build entré dans la zone Build en regard de cette option. En
cas de non-concordance, le package ne s’exécute pas. Cette option
correspond à l’option /VerifyBuild de dtexec.

Vérifier l'ID de package


Indique si le GUID du package est valide, en le comparant à l'ID de
package entré dans la zone ID du package en regard de cette option.
Cette option correspond à l’option /VerifyPackageID de dtexec.

Vérifier l'ID de version


Indique si le GUID de la version est valide, en le comparant à l'ID de
version entré dans la zone ID de version en regard de cette option.
Cette option correspond à l’option /VerifyVersionID de dtexec.
Onglet Options

Ligne de Modifiez les options de ligne de commande de l'utilitaire dtexec. Pour


commande plus d'informations sur les options, consultez dtexec Utility.

Restaurer les options d'origine


Utilisez les options de ligne de commande que vous avez définies sous
les onglets Package, Configurations, Fichiers de commandes, Sources
de données, Options d’exécution, Journalisation, Valeurs définieset
Vérification de la boîte de dialogue Propriétés de travail .

Modifier la commande manuellement


Entrez les options de ligne de commande supplémentaires dans la zone
Ligne de commande .

Avant de sélectionner OK pour enregistrer les modifications apportées à


l’étape de travail, vous pouvez supprimer toutes les autres options que
vous avez tapées dans la zone Ligne de commande en cliquant sur
Restaurer les options d’origine.

** Conseil ** Copiez la ligne de commande dans une fenêtre d’invite de


commandes, ajoutez dtexec , puis exécutez le package à partir de la
ligne de commande. Il s’agit d’un moyen simple de générer le texte
dans la ligne de commande.

9. Sélectionnez OK pour enregistrer les paramètres et fermer la boîte de dialogue


Nouvelle étape de travail.

7 Notes

Pour les packages enregistrés dans le Catalogue SSIS, le bouton OK est


désactivé lorsqu'il existe un paramètre de propriété du gestionnaire de
connexions, ou un autre paramètre, non résolu. Un paramètre est considéré
comme non résolu lorsque vous utilisez une valeur contenue dans une
variable d’environnement serveur pour définir le paramètre ou la propriété, et
lorsque l’une des conditions suivantes est remplie :

La case à cocher Environnement sous l'onglet Configuration n'est pas


sélectionnée.

L'environnement serveur qui contient la variable n'est pas sélectionné dans la


zone de liste de l'onglet Configuration .

10. Pour créer une planification pour une étape de travail, sélectionnez Planifications
dans le volet Sélectionner une page. Pour plus d'informations sur la manière de
configurer une planification, consultez Schedule a Job.

 Conseil

Lorsque vous nommez la planification, utilisez un nom unique et un descriptif,


pour différencier plus facilement la planification des autres planifications de
SQL Server Agent.

Voir aussi
Exécution de projets et de packages

Ressources externes
Article de la Base de connaissances intitulé Un package SSIS n’est pas exécuté
quand vous appelez le package SSIS à partir d’une étape du travail de l’Agent SQL
Server sur le site web Microsoft

Vidéo, Résolution des problèmes : exécution du package à l’aide de SQL Server


Agent (vidéo de SQL Server) dans MSDN Library

Vidéo, Guide pratique pour automatiser l’exécution du package à l’aide de SQL


Server Agent (vidéo de SQL Server) dans MSDN Library

Article technique intitulé Checking SQL Server Agent jobs using Windows
PowerShell sur mssqltips.com

Article technique intitulé Auto alert for SQL Agent jobs when they are enabled or
disabled sur mssqltips.com

Entrée de blog intitulée Configuring SQL Agent Jobs to Write to Windows Event
Log sur mssqltips.com
Équilibrage de charge de packages sur
des serveurs distants à l'aide de l'Agent
SQL Server
Article • 29/03/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Lorsque plusieurs packages doivent être exécutés, il convient d'utiliser d'autres serveurs
disponibles. Cette méthode qui consiste à utiliser d'autres serveurs pour exécuter des
packages lorsque les packages sont tous sous le contrôle d'un package parent est
qualifiée d'équilibrage de charge. Dans SQL Server Integration Services, l'équilibrage de
charge est une procédure manuelle qui doit être mise en œuvre par les propriétaires des
packages. L'équilibrage de charge n'est pas exécuté automatiquement par les serveurs.
En outre, les packages qui sont exécutés sur des serveurs distants doivent être des
packages complets, et non des tâches individuelles contenues dans d'autres packages.

L'équilibrage de charge peut être utile dans les scénarios suivants :

Des packages peuvent être exécutés simultanément.

Des packages sont volumineux et, s'ils sont exécutés en séquence, peuvent
s'exécuter plus longtemps que la période impartie au traitement.

Les administrateurs et les architectes peuvent déterminer si l'utilisation de serveurs


supplémentaires pour le traitement sera avantageuse pour leurs processus.

Illustration de l'équilibrage de charge


Le schéma ci-dessous représente un package parent sur un serveur. Le package parent
contient plusieurs tâches Exécuter le travail de l'Agent SQL Server. Chaque tâche dans le
package parent appelle un Agent SQL Server sur un serveur distant. Ces serveurs
distants contiennent des travaux de l'Agent SQL Server qui incluent une étape appelant
un package sur ce serveur.
Les étapes requises pour l'équilibrage de charge dans cette architecture ne sont pas de
nouveaux concepts. L'équilibrage de charge est plutôt obtenu en utilisant autrement des
concepts existants et des objets SSIS communs.

Exécution de packages sur une instance


distante à l'aide de l'Agent SQL Server
Dans l'architecture de base pour l'exécution de packages distants, un package central
réside sur l'instance de SQL Server qui contrôle les autres packages distants. Le schéma
montre ce package central, nommé le SSIS parent. L'instance où réside ce package
parent contrôle l'exécution des travaux de l'Agent SQL Server qui s'exécutent sur les
packages enfants. Les packages enfants ne sont pas exécutés selon une planification fixe
contrôlée par l'Agent SQL Server sur le serveur distant. Les packages enfants sont plutôt
démarrés par l'Agent SQL Server lorsqu'ils sont appelés par le package parent et ils
s'exécutent sur l'instance de SQL Server sur laquelle réside l'Agent SQL Server.

Avant que vous puissiez exécuter un package distant à l'aide de l'Agent SQL Server, vous
devez configurer les packages parents et enfants et configurer les travaux de l'Agent
SQL Server qui contrôlent les packages enfants. Les sections suivantes fournissent
d'autres informations sur la création, la configuration, l'exécution et la maintenance de
packages exécutés sur des serveurs distants. Ce processus comporte plusieurs étapes :

Création des packages enfants et installation de ceux-ci sur des serveurs distants.

Création des travaux de l'Agent SQL Server sur les instances distantes qui
exécuteront les packages.

Création du package parent.

Déterminez le scénario de journalisation pour les packages enfants.


Implémentation de packages enfants
Quand vous implémentez un équilibrage de charge avec Integration Services, des
packages enfants sont installés sur d’autres serveurs pour tirer parti du temps
processeur ou serveur disponible. Pour créer et exécuter les packages enfants, les
opérations suivantes sont nécessaires :

Conception des packages enfants.

Déplacement des packages sur le serveur distant.

Création d'un travail de SQL Server Agent sur le serveur distant qui contient une
étape exécutant le package enfant.

Test et débogage du travail de SQL Server Agent et des packages enfants.

Lorsque vous concevez les packages enfants, les packages n'ont pas de limites dans leur
conception, et vous pouvez inclure toutes les fonctionnalités souhaitées. Cependant, si
le package accède à des données, vous devez vous assurer que le serveur qui exécute le
package a accès aux données.

Pour identifier le package parent qui exécute les packages enfants, dans SQL Server
Data Tools (SSDT), cliquez avec le bouton droit sur le package dans l’Explorateur de
solutions et cliquez sur Package de point d’entrée.

Une fois que les packages enfants ont été conçus, l'étape suivante consiste à les
déployer sur les serveurs distants.

Déplacement du package enfant sur le serveur distant.


Il existe plusieurs façons de déplacer des packages sur d'autres serveurs. Les deux
méthodes suggérées sont les suivantes :

Exportation des packages à l’aide de SQL Server Management Studio.

Déploiement des packages en créant un utilitaire de déploiement pour le projet


qui contient les packages que vous voulez déployer, puis en exécutant l'Assistant
Installation de package pour installer les packages sur le système de fichiers ou sur
une instance de SQL Server. Pour plus d’informations, consultez Déploiement de
packages hérités (SSIS).

Vous devez recommencer le déploiement sur chaque serveur distant à utiliser.

Création des travaux de SQL Server Agent


Une fois que les packages enfants ont été déployés sur les divers serveurs, créez un
travail de SQL Server Agent sur chaque serveur contenant un package enfant. Le travail
de SQL Server Agent contient une étape qui exécute le package enfant lors de l'appel de
l'agent du travail. Les travaux de SQL Server Agent ne sont pas des travaux planifiés ; ils
exécutent les packages enfants uniquement lorsqu'ils sont appelés par le package
parent. La notification de la réussite ou de l'échec du travail au package parent reflète la
réussite ou l'échec du travail de SQL Server Agent et l'aboutissement de son appel, et
non la réussite ou l'échec du package enfant ou son éventuelle exécution.

Débogage des travaux de SQL Server Agent et des


packages enfants.
Vous pouvez tester les travaux de SQL Server Agent et leurs packages enfants à l'aide de
l'une des méthodes suivantes :

Exécution de chaque package enfant dans le concepteur SSIS, en cliquant sur


Déboguer / Exécuter sans débogage.

Exécution du travail de SQL Server Agent sur l’ordinateur distant à l’aide de SQL
Server Management Studio, pour vérifier que le package fonctionne.

Pour plus d’informations sur la résolution des problèmes liés aux packages que vous
exécutez à partir des travaux de SQL Server Agent, consultez Un package SSIS ne
s’exécute pas lorsque vous appelez le package SSIS à partir d’une étape de travail de
SQL Server Agent dans la Base de connaissances du Support Microsoft.

SQL Server Agent vérifie l'accès au sous-système pour un proxy et donne accès au proxy
à chaque exécution de l'étape de travail.

Vous pouvez créer un proxy dans SQL Server Management Studio.

Implémentation du package parent


Lors d'un équilibrage de charge de packages SSIS entre serveurs, l'étape suivante après
la création et le déploiement des packages enfants, puis la création des travaux de SQL
Server Agent distants pour les exécuter, consiste à créer le package parent. Le package
parent contient de nombreuses tâches Exécuter le travail de SQL Server Agent, chaque
tâche étant responsable de l'appel d'un travail de SQL Server Agent qui exécute l'un des
packages enfants. Les tâches Exécuter le travail de SQL Server Agent dans le package
parent exécutent les différents travaux de SQL Server Agent. Chaque tâche dans le
package parent contient des informations précisant notamment comment établir la
connexion au serveur distant et quel travail exécuter sur ce serveur. Pour plus
d'informations, consultez Execute SQL Server Agent Job Task.

Pour identifier le package parent qui exécute les packages enfants, dans SQL Server
Data Tools (SSDT), cliquez avec le bouton droit sur le package dans l’Explorateur de
solutions et cliquez sur Package de point d’entrée.

Liste des packages enfants


Si vous déployez votre projet qui contient un package parent et des packages enfants
sur le serveur Integration Services, vous pouvez afficher une liste des packages enfants
qui sont exécutés par le package parent. Lorsque vous exécutez le package parent, un
rapport Vue d'ensemble sur ce package est généré automatiquement dans SQL Server
Management Studio. Ce rapport répertorie les packages enfants qui ont été exécutés
par la tâche Exécuter le package contenue dans le package parent, comme illustré par
l'image ci-dessous.

Pour plus d'informations sur l'accès au rapport Vue d'ensemble , consultez Reports for
the Integration Services Server.

Contraintes de priorité dans le package parent


Lorsque vous créez des contraintes de priorité entre les tâches Exécuter le travail de SQL
Server Agent dans le package parent, ces contraintes de priorité contrôlent uniquement
le moment de démarrage des travaux de SQL Server Agent sur les serveurs distants. Les
contraintes de priorité ne peuvent pas recevoir d'informations sur la réussite ou l'échec
des packages enfants qui sont exécutés à partir à des étapes des travaux de SQL Server
Agent.

Cela signifie que le succès ou l'échec d'un package enfant ne se propage pas au parent,
puisque la seule fonction de la tâche Exécuter le travail de SQL Server Agent dans le
package parent consiste à demander au travail de SQL Server Agent d'exécuter le
package enfant. Une fois que le travail de SQL Server Agent a été appelé, le package
parent reçoit un résultat de Success.

L'échec de ce scénario signifie uniquement que l'appel de la tâche Exécuter le travail de


SQL Server Agent a échoué. Cette situation peut notamment se produire lorsque le
serveur distant est hors service et que l'agent ne répond pas. Cependant, tant que
l'agent se déclenche, le package a exécuté sa tâche avec succès.

7 Notes

Vous pouvez utiliser une tâche d’exécution SQL qui contient une instruction
Transact-SQL sp_start_job N'nom_package'. Pour plus d’informations, consultez
sp_start_job (Transact-SQL).

Environnement de débogage
Lors du test du package parent, utilisez l'environnement de débogage du concepteur en
l'exécutant à l'aide des commandes Déboguer / Démarrer le débogage (F5). Vous
pouvez également utiliser l'utilitaire d'invite de commandes, dtexec. Pour plus
d'informations, consultez Utilitaire dtexec.

Journalisation des packages à charge équilibrée


sur les serveurs distants
Il est plus facile pour un administrateur de gérer les journaux de tous les packages
enfants en cours d'exécution sur différents serveurs lorsque tous ces packages enfants
utilisent le même module fournisseur d'informations et qu'ils écrivent tous dans la
même destination. Une manière de créer un fichier journal commun pour tous les
packages enfants est de configurer les packages enfants de telle sorte qu'ils inscrivent
leurs événements dans un module fournisseur d'informations SQL Server. Vous pouvez
configurer tous les packages pour qu'ils utilisent la même base de données, le même
serveur et la même instance du serveur.

Pour afficher les fichiers journaux, l'administrateur n'a à se connecter qu'à un seul
serveur pour afficher les fichiers journaux de tous les packages enfants.

Pour plus d’informations sur l’activation de la journalisation dans un package, consultez


Journalisation d’Integration Services (SSIS).

Tâches associées
Travaux de l'Agent SQL Server pour les packages
Integration Services (SSIS) Scale Out
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

SQL Server Integration Services (SSIS) Scale Out constitue un moyen très performant
d’exécuter des packages SSIS en distribuant les exécutions sur plusieurs ordinateurs.
Après avoir configuré Scale Out, vous pouvez effectuer plusieurs exécutions de
packages en parallèle, en mode Scale Out, à partir de SSMS (SQL Server Management
Studio).

Composants
SSIS Scale-out se compose d’un SSIS Scale Out Master et d’un ou plusieurs SSIS Scale
Out Workers.

Le Scale Out Master est responsable de la gestion de Scale Out et reçoit les
demandes d’exécution de package des utilisateurs. Pour plus d’informations,
consultez Scale Out Master.

Les Scale Out Workers extraient les tâches d’exécution du Scale Out Master et
exécutent les packages. Pour plus d’informations, consultez Scale Out Worker.

Options de configuration
Vous pouvez définir Scale Out dans les configurations suivantes :

Sur un seul ordinateur, où un Scale Out Master et un Scale Out Worker sont
exécutés côte à côte sur le même ordinateur.

Sur plusieurs ordinateurs, auquel cas chaque Scale Out Worker est sur un
ordinateur différent.

Ce que vous pouvez faire


Après avoir configuré Scale Out, vous pouvez effectuer les opérations suivantes :

Exécuter plusieurs packages déployés sur le catalogue SSISDB en parallèle. Pour


plus d’informations, consultez Exécuter des packages dans Scale Out.
Gérer la topologie Scale Out dans l’application Scale Out Manager. Pour plus
d’informations, consultez Integration Services Scale Out Manager.

Étapes suivantes
Bien démarrer avec SSIS (SQL Server Integration Services) Scale Out sur un seul
ordinateur

Procédure pas à pas : Configurer Scale-out Integration Services


Bien démarrer avec Integration Services
(SSIS) Scale Out sur un seul ordinateur
Article • 30/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette section explique comment configurer Integration Services Scale Out dans un
environnement à un seul ordinateur avec les paramètres par défaut.

1. Installer les fonctionnalités SQL Server


Dans l’Assistant Installation de SQL Server, dans la page Sélection de fonctionnalités,
sélectionnez les éléments suivants :

Services Moteur de base de données


Integration Services
Scale Out Master
Scale Out Worker
Dans la page Configuration du serveur, cliquez sur Suivant pour accepter les comptes
de service et types de démarrage par défaut.

Dans la page Configuration du moteur de base de données, sélectionnez Mode mixte,


puis cliquez sur Ajouter l’utilisateur actuel.
Dans les pages Configuration d’Integration Services Scale Out - Nœud Master et
Configuration d’Integration Services Scale Out - Nœud Worker, cliquez sur Suivant
pour accepter les paramètres par défaut pour le port et les certificats.

Terminez l’Assistant Installation de SQL Server.

2. Installer SQL Server Management Studio


Téléchargez et installez SSMS (SQL Server Management Studio).

3. Activer Scale Out


Ouvrez SSMS et connectez-vous à l’instance locale de SQL Server. Dans l’Explorateur
d’objets, cliquez avec le bouton droit sur Catalogues Integration Services, puis
sélectionnez Créer un catalogue.

Dans la boîte de dialogue Créer un catalogue, l’option Activer ce serveur comme SSIS
Scale Out Master est sélectionnée par défaut.

4. Activer un Scale Out Worker


Dans SSMS, cliquez avec le bouton droit sur SSISDB, puis sélectionnez Gérer Scale-out.
L’application Integration Services Scale Out Manager s’ouvre. Pour plus d’informations,
consultez Scale Out Manager.

Pour activer un Scale Out Worker, passez au Gestionnaire de workers, puis sélectionnez
le Worker à activer. Les Workers sont désactivés par défaut. Cliquez sur Activer le
Worker pour activer le Worker sélectionné.

5. Exécuter des packages dans Scale Out


Vous êtes maintenant prêt à exécuter des packages SSIS dans Scale Out. Pour plus
d’informations, consultez Exécuter des packages dans Integration Services (SSIS) Scale
Out.

Étapes suivantes
Ajouter un Scale Out Worker avec Scale Out Manager.
Procédure pas à pas : Configurer
Integration Services (SSIS) Scale Out
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Configurez Integration Services (SSIS) Scale Out en effectuant les tâches suivantes.

 Conseil

Si vous installez Scale-out sur un seul ordinateur, installez les fonctionnalités Scale
Out Master et Scale Out Worker en même temps. Quand vous installez les
fonctionnalités en même temps, le point de terminaison est généré
automatiquement pour la connexion à Scale Out Master.

Installer Scale Out Master

Installer Scale Out Worker

Installer le certificat client Scale Out Worker

Ouvrir le port de pare-feu

Démarrer les services SQL Server Scale Out Master et Worker

Activer Scale Out Master

Activer le mode d’authentification SQL Server

Activer Scale Out Worker

Installer Scale Out Master


Pour configurer Scale Out Master, vous devez installer les services du moteur de base de
données, Integration Services et la fonctionnalité Scale Out Master de SSIS quand vous
configurez SQL Server.

Pour plus d’informations sur la configuration du moteur de base de données et


d’Integration Services, consultez Installer le moteur de base de données SQL Server et
Installer Integration Services.
7 Notes

Pour utiliser le compte d’authentification SQL Server par défaut pour la


journalisation Scale-out, sélectionnez le mode mixte comme mode
d’authentification dans la page Configuration du moteur de base de données
pendant l’installation du moteur de base de données. Consultez Changer le
compte pour la journalisation Scale-out pour plus d’informations.

Pour installer la fonctionnalité Scale Out Master, utilisez l’Assistant Installation de SQL
Server ou l’invite de commandes.

Installer Scale Out Master avec l’Assistant Installation de


SQL Server
1. Dans la page Sélection de fonctionnalités, choisissez Scale Out Master sous
Integration Services.

2. Dans la page Configuration du serveur , sélectionnez le compte pour exécuter le


service SQL Server Integration Services Scale Out Master et sélectionnez le Type
de démarrage.

3. Dans la page Configuration d’Integration Services Scale Out Master , spécifiez le


numéro de port utilisé par Scale Out Master pour communiquer avec Scale Out
Worker. Le numéro de port par défaut est 8391.
4. Spécifiez le certificat TLS/SSL utilisé pour protéger les communications entre Scale
Out Master et Scale Out Worker en effectuant l’une des opérations suivantes.

Laissez le processus d’installation créer un certificat TLS/SSL auto-signé par


défaut en cliquant sur Créer un certificat SSL. Le certificat par défaut est
installé sous Autorités de certification racines de confiance, Ordinateur local.
Vous pouvez spécifier les noms communs dans ce certificat. Le nom d’hôte
du point de terminaison principal doit être inclus dans les noms communs.
Par défaut, le nom de machine et l’adresse IP du nœud Master sont inclus.
Sélectionnez un certificat TLS/SSL existant sur l’ordinateur local en cliquant
sur Utiliser un certificat TLS/SSL existant, puis sur Parcourir pour
sélectionner un certificat. L’empreinte numérique du certificat s’affiche dans
la zone de texte. Cliquez sur Parcourir pour afficher les certificats stockés
dans Autorités de certification racines de confiance, Ordinateur local. Le
certificat que vous sélectionnez doit être stocké ici.

5. Terminez l’Assistant Installation de SQL Server.

Installer Scale Out Master à partir de l’invite de


commandes
Suivez les instructions fournies dans Installer SQL Server à partir de l’invite de
commandes. Définissez les paramètres pour Scale Out Master en effectuant les
opérations suivantes :
1. Ajoutez IS_Master au paramètre /FEATURES

2. Configurez Scale Out Master en spécifiant les paramètres suivants et leurs valeurs :

/ISMASTERSVCACCOUNT

/ISMASTERSVCPASSWORD
/ISMASTERSVCSTARTUPTYPE

/ISMASTERSVCPORT

/ISMasterSVCSSLCertCN (facultatif)
/ISMASTERSVCTHUMBPRINT (facultatif)

7 Notes

Si Scale Out Master n’est pas installé avec le moteur de base de données et
que l’instance de celui-ci est une instance nommée, vous devez configurer
SqlServerName dans le fichier de configuration du service Scale Out Master
après l’installation. Pour plus d’informations, consultez Scale Out Master.

Installer Scale Out Worker


Pour configurer Scale Out Worker, vous devez installer Integration Services et sa
fonctionnalité Scale Out Worker dans le programme d’installation de SQL Server.

Pour installer la fonctionnalité Scale Out Worker, utilisez l’Assistant Installation de SQL
Server ou l’invite de commandes.

Installer Scale Out Worker avec l’Assistant Installation de


SQL Server
1. Dans la page Sélection de fonctionnalités, choisissez Scale Out Worker sous
Integration Services.
2. Dans la page Configuration du serveur , sélectionnez le compte pour exécuter le
service SQL Server Integration Services Scale Out Worker et sélectionnez le Type
de démarrage.

3. Dans la page Configuration d’Integration Services Scale Out Worker , spécifiez le


point de terminaison pour la connexion à Scale Out Master.
Pour un environnement à un seul ordinateur, le point de terminaison est
généré automatiquement quand Scale Out Master et Scale Out Worker sont
installés en même temps.

Pour un environnement à plusieurs ordinateurs, le point de terminaison se


compose du nom ou de l’adresse IP de l’ordinateur où Scale Out Master est
installé et du numéro de port spécifié pendant l’installation de Scale Out
Master.

7 Notes

Vous pouvez également ignorer la configuration de Worker à ce stade et


associer Scale Out Worker à Scale Out Master en utilisant Scale Out Manager
après l’installation.

4. Pour un environnement à plusieurs ordinateurs, spécifiez le certificat TLS/SSL


client utilisé pour valider Scale Out Master. Pour un environnement à un seul
ordinateur, il est inutile de spécifier un certificat TLS/SSL client.

Cliquez sur Parcourir pour rechercher le fichier de certificat (*.cer). Pour utiliser le
certificat TLS/SSL par défaut, sélectionnez le fichier SSISScaleOutMaster.cer situé
sous \<drive\>:\Program Files\Microsoft SQL Server\140\DTS\Binn sur
l’ordinateur où Scale Out Master est installé.
7 Notes

Quand le certificat TLS/SSL utilisé par Scale Out Master est auto-signé, un
certificat TLS/SSL client correspondant doit être installé sur l’ordinateur avec
Scale Out Worker. Si vous fournissez le chemin de fichier du certificat client
TLS/SSL dans la page Configuration d’Integration Services Scale Out Worker,
le certificat est installé automatiquement. Sinon, vous devez installer le
certificat manuellement plus tard.

5. Terminez l’Assistant Installation de SQL Server.

Installer Scale Out Worker à partir de l’invite de


commandes
Suivez les instructions fournies dans Installer SQL Server à partir de l’invite de
commandes. Définissez les paramètres pour Scale Out Worker en effectuant les
opérations suivantes :

1. Ajoutez IS_Worker au paramètre /FEATURES .

2. Configurez Scale Out Worker en spécifiant les paramètres suivants et leurs valeurs :

/ISWORKERSVCACCOUNT
/ISWORKERSVCPASSWORD

/ISWORKERSVCSTARTUPTYPE
/ISWORKERSVCMASTER (facultatif)

/ISWORKERSVCCERT (facultatif)

Installer le certificat client Scale Out Worker


Pendant l’installation de Scale Out Worker, un certificat Worker est créé et installé
automatiquement sur l’ordinateur. Un certificat client correspondant,
SSISScaleOutWorker.cer, est aussi installé sous \<drive\>:\Program Files\Microsoft SQL
Server\140\DTS\Binn . Pour que Scale Out Master authentifie Scale Out Worker, vous
devez ajouter ce certificat client au magasin racine de l’ordinateur local où Scale Out
Master est installé.

Pour ajouter le certificat client au magasin racine, double-cliquez sur le fichier .cer et
cliquez sur Installer le certificat dans la boîte de dialogue Certificat. L’Assistant
Importation de certificat s’ouvre.

Ouvrir le port de pare-feu


Sur l’ordinateur Scale Out Master, ouvrez le port spécifié pendant l’installation de Scale
Out Master et le port de SQL Server (1433, par défaut) dans le Pare-feu Windows.

7 Notes

Après avoir ouvert le port du pare-feu, vous devez également redémarrer le service
Scale Out Worker.

Démarrer les services SQL Server Scale Out


Master et Worker
Si vous n’avez pas défini le type de démarrage des services comme étant automatique
pendant l’installation, démarrez les services suivants :

SQL Server Integration Services Scale Out Master 14.0 (SSISScaleOutMaster140)

SQL Server Integration Services Scale Out Worker 14.0 (SSISScaleOutWorker140)


Activer Scale Out Master
Quand vous créez le catalogue SSISDB dans SQL Server Management Studio,
sélectionnez Activer ce serveur comme SSIS Scale Out Master dans la boîte de
dialogue Créer un catalogue.

Une fois le catalogue créé, vous pouvez activer Scale Out Master avec Scale Out
Manager.

Activer le mode d’authentification SQL Server


Si vous n’avez pas activé l’authentification SQL Server pendant l’installation du moteur
de base de données, activez le mode d’authentification SQL Server sur l’instance de SQL
Server qui héberge le catalogue SSISDB.

L’exécution des packages n’est pas bloquée quand l’authentification SQL Server est
désactivée. Toutefois, le journal d’exécution ne peut pas écrire dans la base de données
SSISDB.

Activer Scale Out Worker


Vous pouvez activer Scale Out Worker avec Scale Out Manager, qui fournit une interface
graphique utilisateur, ou avec une procédure stockée.

Pour activer Scale Out Worker avec une procédure stockée, exécutez la procédure
stockée [catalog].[enable_worker_agent] avec WorkerAgentId comme paramètre.

Obtenez la valeur de WorkerAgentId à partir de la vue [catalog].[worker_agents] dans


SSISDB, une fois que Scale Out Worker est inscrit auprès de Scale Out Master.
L’inscription prend plusieurs minutes une fois que les services Scale Out Master et
Worker sont démarrés.

Exemple
L’exemple suivant active Scale Out Worker sur computerA .

SQL

SELECT WorkerAgentId, MachineName FROM [catalog].[worker_agents]


GO
-- Result: --
-- WorkerAgentId MachineName --
-- 6583054A-E915-4C2A-80E4-C765E79EF61D computerA --
EXEC [catalog].[enable_worker_agent] '6583054A-E915-4C2A-80E4-C765E79EF61D'
GO

Étapes suivantes
Exécuter des packages dans SSIS (SQL Server Integration Services) Scale Out.
Exécuter des packages dans Integration
Services (SSIS) Scale Out
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Après avoir déployé les packages sur le serveur Integration Services, vous pouvez les
exécuter dans Scale-out en utilisant l’une des méthodes suivantes :

Boîte de dialogue Exécuter le package dans Scale-out

procédures stockées

travaux de l'Agent SQL Server

Exécuter des packages avec la boîte de


dialogue Exécuter le package dans Scale-out
1. Ouvrez la boîte de dialogue Exécuter le package dans Scale-out.

Dans SQL Server Management Studio, connectez-vous au serveur Integration


Services . Dans l’Explorateur d’objets, développez l’arborescence pour afficher les
nœuds sous Catalogues Integration Services. Cliquez avec le bouton droit sur le
nœud SSISDB ou sur le projet ou le package que vous souhaitez exécuter, puis
cliquez sur Exécuter dans Scale-out.

2. Sélectionnez les packages et définissez les options.

Dans la page Sélection des packages, sélectionnez un ou plusieurs packages à


exécuter. Définissez l’environnement, les paramètres, les gestionnaires de
connexions et les options avancées pour chaque package. Cliquez sur un package
pour définir ces options.

Sous l’onglet Avancé, définissez une option Scale-out appelée Nombre de


nouvelles tentatives pour indiquer le nombre de nouvelles tentatives d’exécution
du package en cas d’échec.

7 Notes

L’option Vider en cas d’erreurs ne fonctionne que si le compte exécutant le


service Scale Out Worker est administrateur sur l’ordinateur local.
3. Sélectionnez les ordinateurs Worker.

Dans la page Sélection des ordinateurs, sélectionnez les ordinateurs Scale Out
Worker pour exécuter les packages. Par défaut, tout ordinateur est autorisé à
exécuter les packages.

7 Notes

Les packages sont exécutés avec les informations d’identification des comptes
d’utilisateur des services Scale Out Worker. Passez en revue ces informations
d’identification dans la page Sélection des ordinateurs. Par défaut, le compte
est NT Service\SSISScaleOutWorker140 .

2 Avertissement

Les exécutions de packages déclenchées par différents utilisateurs sur le


même ordinateur Worker sont effectuées avec les mêmes informations
d’identification. Il n’existe aucune frontière de sécurité entre elles.

4. Exécutez les packages et affichez des rapports.

Cliquez sur OK pour démarrer les exécutions de package. Pour afficher le rapport
d’exécution d’un package, cliquez sur le package dans l’Explorateur d’objets,
cliquez sur Rapports, sur Toutes les exécutions, et recherchez l’exécution.

Exécuter des packages avec des procédures


stockées
1. Créez des exécutions.

Appelez [catalog].[create_execution] pour chaque package. Définissez le


paramètre @runinscaleout sur True . Si les ordinateurs Scale Out Worker ne sont
pas tous autorisés à exécuter le package, définissez le paramètre @useanyworker
sur False . Pour plus d’informations sur cette procédure stockée et sur le
paramètre @useanyworker, consultez catalog.create_execution.

2. Définissez les paramètres d’exécution.

Appelez [catalog].[set_execution_parameter_value] pour chaque exécution.


3. Définissez les Scale Out Workers.

Appelez [catalog].[add_execution_worker] . Si tous les ordinateurs sont autorisés à


exécuter le package, il est inutile d’appeler cette procédure stockée.

4. Démarrez les exécutions.

Appelez [catalog].[start_execution] . Définissez le paramètre @retry_count pour


indiquer le nombre de nouvelles tentatives d’exécution du package en cas d’échec.

Exemple
L’exemple suivant exécute deux packages, package1.dtsx et package2.dtsx , dans Scale-
out avec un Scale Out Worker.

SQL

Declare @execution_id bigint


EXEC [SSISDB].[catalog].[create_execution] @package_name=N'package1.dtsx',
@execution_id=@execution_id OUTPUT, @folder_name=N'folder1',
@project_name=N'project1', @use32bitruntime=False, @reference_id=Null,
@useanyworker=False, @runinscaleout=True
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].[add_execution_worker] @execution_id,
@workeragent_id=N'64c020e2-f819-4c2d-a22f-efb31a91e70a'
EXEC [SSISDB].[catalog].[start_execution] @execution_id, @retry_count=0
GO

Declare @execution_id bigint


EXEC [SSISDB].[catalog].[create_execution] @package_name=N'package2.dtsx',
@execution_id=@execution_id OUTPUT, @folder_name=N'folder2',
@project_name=N'project2', @use32bitruntime=False, @reference_id=Null,
@useanyworker=False, @runinscaleout=True
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].[add_execution_worker] @execution_id,
@workeragent_id=N'64c020e2-f819-4c2d-a22f-efb31a91e70a'
EXEC [SSISDB].[catalog].[start_execution] @execution_id, @retry_count=0
GO

Autorisations
Pour exécuter des packages dans Scale-out, vous devez disposer de l’une des
autorisations suivantes :

L’appartenance au rôle de base de données ssis_admin

L’appartenance au rôle de base de données ssis_cluster_executor

L’appartenance au rôle serveur sysadmin

Définir le mode d’exécution par défaut


Pour définir le mode d’exécution par défaut pour les packages sur Scale-out, effectuez
les opérations suivantes :

1. Dans l’Explorateur d’objets de SSMS, cliquez avec le bouton droit sur le nœud
SSISDB, puis sélectionnez Propriétés.

2. Dans la boîte de dialogue Propriétés du catalogue, définissez Mode d’exécution


par défaut à l’échelle du serveur sur Scale-out.

Une fois ce mode d’exécution par défaut défini, vous n’avez plus besoin de spécifier le
paramètre @runinscaleout quand vous appelez la procédure stockée [catalog].
[create_execution] . Les packages sont exécutés automatiquement dans Scale-out.
Pour redéfinir le mode d’exécution par défaut afin que les packages ne soient plus
exécutés par défaut en mode Scale-out, définissez Mode d’exécution par défaut à
l’échelle du serveur sur Serveur.

Exécuter le package dans le travail de SQL


Server Agent
Dans un travail SQL Server Agent, vous pouvez exécuter un package SSIS en tant
qu’étape du travail. Pour exécuter le package dans Scale-out, définissez le mode
d’exécution par défaut sur Scale-out. Une fois le mode d’exécution par défaut défini sur
Scale-out, les packages dans les travaux SQL Server Agent sont exécutés en mode
Scale-out.

7 Notes

Vous ne pouvez pas arrêter l’exécution du package Scale Out en annulant le travail
SQL Server Agent. Pour arrêter l’exécution Scale Out, nous vous recommandons
d’utiliser la procédure stockée catalog.stop_operation ou d’utiliser le volet
Opérations actives.

Étapes suivantes
Résoudre les problèmes de Scale Out
Ajouter un Scale Out Worker avec Scale
Out Manager
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Integration Services Scale Out Manager simplifie l’ajout d’un Scale Out Worker à votre
environnement Scale Out existant.

Suivez les étapes ci-dessous pour ajouter un Scale Out Worker à votre topologie Scale
Out :

1. Installer Scale Out Worker


Dans l’Assistant Installation de SQL Server, sélectionnez Integration Services et Scale Out
Worker dans la page Sélection de fonctionnalités.

Dans la page Configuration d’Integration Services Scale Out - Nœud Worker, vous
pouvez cliquer sur Suivant pour ignorer la configuration à ce stade et utiliser Scale Out
Manager pour effectuer la configuration après l’installation.

Terminez l’Assistant Installation.


2. Ouvrir le pare-feu sur l’ordinateur Scale Out
Master
Ouvrez le port spécifié pendant l’installation de Scale Out Master (8391, par défaut) et le
port pour SQL Server (1433, par défaut) dans le Pare-feu Windows sur l’ordinateur Scale
Out Master.

3. Ajouter un Scale Out Worker avec Scale Out


Manager
Exécutez SQL Server Management Studio en tant qu’administrateur et connectez-vous à
l’instance SQL Server de Scale Out Master.

Dans l’Explorateur d’objets, cliquez avec le bouton droit sur SSISDB et sélectionnez
Gérer Scale-out.

Dans la boîte de dialogue Scale Out Manager, basculez vers Gestionnaire de workers.
Sélectionnez + et suivez les instructions de la boîte de dialogue Connect Worker
(Connecter le nœud Worker).

Étapes suivantes
Pour plus d’informations, consultez Scale Out Manager.
Integration Services (SSIS) Scale Out
Master
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Scale Out Master gère le système Scale Out par le biais du catalogue SSISDB et du
service Scale Out Master.

Le catalogue SSISDB stocke toutes les informations sur les Scale Out Workers, les
packages et les exécutions. Il fournit l’interface pour activer un Scale Out Worker et
exécuter des packages dans Scale-out. Pour plus d’informations, consultez Procédure
pas à pas : Configurer Scale-out Integration Services et Exécuter des packages dans
Integration Services.

Le service Scale Out Master est un service Windows responsable de la communication


avec les Scale Out Workers. Il retourne l’état des exécutions des packages sur les Scale
Out Workers via le protocole HTTPS et opère sur les données dans SSISDB.

Procédures stockées et vues Scale Out dans


SSISDB

Les vues
[catalog].[master_properties]
[catalog].[worker_agents]

Procédures stockées
Pour la gestion des Scale Out Workers :
[catalog].[disable_worker_agent]
[catalog].[enable_worker_agent]

Pour l’exécution des packages dans Scale-out :


[catalog].[create_execution]
[catalog].[add_execution_worker]
[catalog].[start_execution]
Configurer le service Scale Out Master
Vous configurez le service Scale Out Master à l’aide du fichier <drive>:\Program
Files\Microsoft SQL Server\140\DTS\Binn\MasterSettings.config . Vous devez

redémarrer le service après la mise à jour du fichier de configuration.

Configuration Description Valeur par défaut

PortNumber Numéro de port réseau utilisé pour 8391


communiquer avec un Scale Out
Worker.

SSLCertThumbprint Empreinte numérique du certificat Empreinte


TLS/SSL utilisé pour protéger les numérique du
communications avec un Scale Out certificat TLS/SSL
Worker. spécifié pendant
l’installation de
Scale Out Master

SqlServerName Nom du serveur SQL Server qui Nom du serveur


contient le catalogue SSISDB, par SQL Server installé
exemple NomServeur\NomInstance. avec Scale Out
Master.

CleanupCompletedJobsIntervalInMs Intervalle de nettoyage des tâches 43200000


d’exécution terminées, en
millisecondes.

DealWithExpiredTasksIntervalInMs Intervalle de traitement des tâches 300000


d’exécution ayant expiré, en
millisecondes.

MasterHeartbeatIntervalInMs Intervalle de pulsation de Scale Out 30000


Master, en millisecondes. Cette
propriété spécifie l’intervalle auquel
Scale Out Master met à jour son état
de connexion dans le catalogue
SSISDB.

SqlConnectionTimeoutInSecs Délai en secondes de la connexion 15


SQL à SSISDB.

Afficher le journal du service Scale Out Master


Le fichier journal du service Scale Out Master se trouve dans le dossier <drive>:\Users\
[account]\AppData\Local\SSIS\ScaleOut\Master .
Le paramètre [account] fait référence au compte exécutant le service Scale Out Master.
Par défaut, ce compte est SSISScaleOutMaster140 .

Étapes suivantes
SSIS (SQL Server Integration Services) Scale Out Worker
Integration Services (SSIS) Scale Out Worker
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Scale Out Worker exécute le service Scale Out Worker pour extraire des tâches d’exécution à partir
de Scale Out Master. Le Worker exécute ensuite les packages localement avec ISServerExec.exe .

Configurer le service Scale Out Worker


Vous pouvez configurer le service Scale Out Worker avec le fichier \<drive\>:\Program
Files\Microsoft SQL Server\140\DTS\Binn\WorkerSettings.config . Vous devez redémarrer le service
après la mise à jour du fichier de configuration.

Configuration Description Valeur par défaut

DisplayName Nom complet du Scale Out Worker. NON utilisé dans Nom de
SQL Server 2017. l'ordinateur

Description Description du Scale Out Worker. NON utilisé dans Vide


SQL Server 2017.

MasterEndpoint Point de terminaison pour la connexion à Scale Out Point de


Master. terminaison défini
pendant
l’installation du
Scale Out Worker.

MasterHttpsCertThumbprint Empreinte numérique du certificat client TLS/SSL utilisé Empreinte


pour authentifier Scale Out Master numérique du
certificat client
spécifié pendant
l’installation de
Scale Out Worker.

WorkerHttpsCertThumbprint Empreinte numérique du certificat Scale Out Master Empreinte


utilisé pour authentifier le Scale Out Worker. numérique d’un
certificat créé et
installé
automatiquement
pendant
l’installation du
Scale Out Worker.

StoreLocation Emplacement du magasin de certificats de Worker. LocalMachine

StoreName Nom du magasin où se trouve ce certificat de Worker. My

AgentHeartbeatInterval Intervalle de pulsation du Scale Out Worker. 00:01:00

TaskHeartbeatInterval Intervalle d’état de la tâche de rapport du Scale Out 00:00:10


Worker.
Configuration Description Valeur par défaut

HeartbeatErrorTolerance Après ce laps de temps depuis la dernière pulsation de 00:10:00


tâche, la tâche est arrêtée en cas de réception d’une
réponse d’erreur de pulsation.

TaskRequestMaxCPU Limite supérieure d’utilisation du processeur pour la 70.0


demande de tâches par le Scale Out Worker.

TaskRequestMinMemory Limite inférieure d’utilisation de la mémoire (en Mo) 100.0


pour la demande de tâches par le Scale Out Worker.

MaxTaskCount Quantité maximale de tâches que peut contenir le 10


Scale Out Worker.

LeaseInterval Intervalle de bail de détention d’une tâche par le Scale 00:01:00


Out Worker.

TasksRootFolder Dossier des journaux des tâches. Le chemin de dossier Vide


\<drive\>:\Users\
[account]\AppData\Local\SSIS\Cluster\Tasks est utilisé
si la valeur est vide. [compte] est le compte exécutant
le service Scale Out Worker. Par défaut, le compte est
SSISScaleOutWorker140.

TaskLogLevel Niveau de journal des tâches du Scale Out Worker. 126 (Information,
(Verbose 0x01, Information 0x02, Warning 0x04, Error Warning, Error,
0x08, Progress 0x10, CriticalError 0x20, Audit 0x40) Progress,
CriticalError,
Audit)

TaskLogSegment Intervalle de temps d’un fichier journal de tâche. 00:00:00

TaskLogEnabled Spécifie si le journal des tâches est activé. true

ExecutionLogCacheFolder Dossier utilisé pour mettre en cache le journal Vide


d’exécution de package. Le chemin de dossier \
<drive\>:\Users\
[account]\AppData\Local\SSIS\Cluster\Agent\ELogCache
est utilisé si la valeur est vide. [compte] est le compte
exécutant le service Scale Out Worker. Par défaut, le
compte est SSISScaleOutWorker140.

ExecutionLogMaxBufferLogCount Quantité maximale de journaux d’exécution mis en 10000


cache, dans une mémoire tampon de journal
d’exécution en mémoire.

ExecutionLogMaxInMemoryBufferCount Quantité maximale de mémoires tampon de journal 10


d’exécution en mémoire pour les journaux d’exécution.

ExecutionLogRetryCount Nombre de nouvelles tentatives en cas d’échec de 3


journalisation de l’exécution.

ExecutionLogRetryTimeout Délai d’expiration des nouvelles tentatives en cas 7.00:00:00 (7


d’échec de journalisation de l’exécution. jours)
ExecutionLogRetryCount est ignoré si
ExecutionLogRetryTimeout est atteint.
Configuration Description Valeur par défaut

AgentID ID d’agent de Worker du Scale Out Worker Généré


automatiquement.

Afficher le journal Scale Out Worker


Le fichier journal du service Scale Out Worker se trouve dans le dossier \<drive\>:\Users\\
[account]\AppData\Local\SSIS\ScaleOut\Agent .

L’emplacement du journal de chaque tâche est configuré dans le fichier WorkerSettings.config


dans TasksRootFolder . Si aucune valeur n’est spécifiée, le journal se trouve dans le dossier \
<drive\>:\Users\\[account]\AppData\Local\SSIS\ScaleOut\Tasks .

Le paramètre [account] fait référence au compte exécutant le service Scale Out Worker. Par défaut,
le compte est SSISScaleOutWorker140 .

Étapes suivantes
SSIS (SQL Server Integration Services) Scale Out Master
Integration Services Scale Out Manager
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Scale Out Manager est un outil de gestion qui vous permet de gérer la totalité de votre
topologie SSIS Scale Out à partir d’une seule application. Vous n’avez plus besoin
d’effectuer des tâches de gestion et d’exécuter des commandes Transact-SQL sur
plusieurs ordinateurs.

Ouvrir Scale Out Manager


Vous pouvez ouvrir Scale Out Manager de deux façons.

1. Ouvrir Scale Out Manager à partir de SQL Server


Management Studio
Ouvrez SSMS (SQL Server Management Studio) et connectez-vous à l’instance de SQL
Server de Scale Out Master.

Dans l’Explorateur d’objets, cliquez avec le bouton droit sur SSISDB et sélectionnez
Gérer Scale-out.

7 Notes

Nous vous recommandons d’exécuter SSMS en tant qu’administrateur, car


certaines opérations de gestion Scale Out telles que l’ajout d’un Scale Out Worker
nécessitent un privilège administratif.

2. Ouvrir Scale Out Manager en exécutant


ManagementTool.exe
Recherchez ManagementTool.exe sous %SystemDrive%\Program Files (x86)\Microsoft SQL
Server\150\DTS\Binn\Management . Cliquez avec le bouton droit sur ManagementTool.exe

et sélectionnez Exécuter en tant qu’administrateur.

Après l’ouverture de Scale Out Manager, vous devez entrer le nom de l’instance de SQL
Server de Scale Out Master et vous y connecter pour gérer votre environnement Scale
Out.

Tâches disponibles dans Scale Out Manager


Dans Scale Out Manager, vous pouvez effectuer les opérations suivantes :

Activer Scale Out


Après vous être connecté à SQL Server, si Scale Out n’est pas activé, vous pouvez
sélectionner Activer pour l’activer.
Afficher l’état de Scale Out Master
L’état de Scale Out Master apparaît dans la page Tableau de bord.

Afficher l’état de Scale Out Worker


L’état de Scale Out Worker apparaît dans la page Gestionnaire de workers. Vous pouvez
sélectionner chaque Worker pour connaître son état.

Ajouter un Scale Out Worker


Pour ajouter un Scale Out Worker, sélectionnez + au bas de la liste Scale Out Worker.

Entrez le nom de l’ordinateur du Scale Out Worker que vous souhaitez ajouter, puis
cliquez sur Valider. Scale Out Manager vérifie si l’utilisateur actuel a accès aux magasins
de certificats sur les ordinateurs Scale Out Master et Scale Out Worker

Si la validation réussit, Scale Out Manager tente de lire le fichier de configuration du


serveur Worker et d’obtenir l’empreinte du certificat de ce dernier. Pour plus
d’informations, consultez Scale Out Worker. Si Scale Out Manager n’est pas en mesure
de lire le fichier de configuration du service Worker, vous disposez de deux autres
méthodes pour fournir le certificat Worker.
Vous pouvez entrer l’empreinte du certificat Worker directement

ou fournir le fichier de certificat.

Une fois les informations collectées, Scale Out Manager décrit les actions à effectuer.
Généralement, ces actions incluent l’installation du certificat, la mise à jour du fichier de
configuration du service Worker et le redémarrage du service Worker.
Si le paramètre Worker n’est pas accessible, vous devez le mettre à jour manuellement
et redémarrer le service Worker.

Cochez la case de confirmation , puis sélectionnez OK pour commencer la procédure


d’ajout d’un Scale Out Worker.

Supprimer un Scale Out Worker


Pour supprimer un Scale Out Worker, sélectionnez-le, puis cliquez sur - au bas de la liste
Scale Out Worker.

Activer ou désactiver un Scale Out Worker


Pour activer ou désactiver un Scale Out Worker, sélectionnez-le, puis cliquez sur Activer
le Worker ou Désactiver le Worker. L’état du Worker affiché dans Scale Out Manager
change en conséquence si le Worker n’est pas hors connexion.

Modifier la description d’un Scale Out Worker


Pour modifier la description d’un Scale Out Worker, sélectionnez-le, puis cliquez sur
Modifier. Une fois que vous avez terminé, sélectionnez Enregistrer.

Étapes suivantes
Pour plus d’informations, consultez les articles suivants :

SSIS (SQL Server Integration Services) Scale Out Master


SSIS (SQL Server Integration Services) Scale Out Worker
Changer le compte pour la
journalisation Scale Out
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Quand vous exécutez des packages SSIS dans Scale-out, les messages d’événement sont
journalisés dans la base de données SSISDB avec un compte d’utilisateur créé
automatiquement et nommé ##MS_SSISLogDBWorkerAgentLogin## . La connexion
pour cet utilisateur utilise l’authentification SQL Server.

Si vous souhaitez changer le compte utilisé pour la journalisation Scale-out, effectuez les
opérations suivantes :

7 Notes

Si vous utilisez un compte d’utilisateur Windows pour la journalisation, utilisez le


même compte que celui qui exécute le service Scale Out Worker. Sinon, la
connexion à SQL Server échoue.

1. Créer un utilisateur pour SSISDB


Pour savoir comment créer un utilisateur de base de données, consultez Créer un
utilisateur de base de données.

2. Ajouter l’utilisateur au rôle de base de


données ssis_cluster_worker
Pour savoir comment joindre un rôle de base de données, consultez Joindre un rôle.

3. Mettre à jour les informations de


journalisation dans SSISDB
Appelez la procédure stockée [catalog].[update_logdb_info] en utilisant le nom SQL
Server et la chaîne de connexion comme paramètres, comme indiqué dans l’exemple
suivant :
SQL

SET @serverName = CONVERT(sysname, SERVERPROPERTY('servername'))


SET @connectionString = 'Data Source=' + @serverName + ';Initial
Catalog=SSISDB;Integrated Security=SSPI;'
EXEC [internal].[update_logdb_info] @serverName, @connectionString
GO

4. Redémarrer le service Scale Out Worker


Redémarrez le service Scale Out Worker pour que la modification prenne effet.

Étapes suivantes
Integration Services Scale Out Manager
Gérer les certificats dans SQL Server
Integration Services Scale Out
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour sécuriser la communication entre Scale Out Master et les Scale Out Workers, SSIS
Scale Out utilise deux certificats : un pour le Master et un pour les Workers.

Certificat Scale Out Master


Dans la plupart des cas, le certificat Scale Out Master est configuré pendant l’installation
de Scale Out Master.

Dans la page Configuration d’Integration Services Scale Out - Nœud Master de


l’Assistant Installation de SQL Server, vous pouvez créer un certificat TLS/SSL auto-signé
ou utiliser un certificat TLS/SSL existant.

Nouveau certificat. Si vous n’avez pas d’exigences particulières pour les certificats, vous
pouvez choisir de créer un certificat TLS/SSL auto-signé. Vous pouvez ensuite spécifier
les noms communs dans le certificat. Vérifiez que le nom d’hôte du point de terminaison
maître utilisé plus tard par les Scale Out Workers est inclus dans les noms communs. Par
défaut, le nom de l’ordinateur et l’adresse IP du nœud Master sont inclus.

Certificat existant. Si vous choisissez d’utiliser un certificat existant, cliquez sur Parcourir
pour sélectionner un certificat TLS/SSL à partir du magasin de certificats racine de
l’ordinateur local.

Changer le certificat Scale Out Master


Vous pouvez changer votre certificat Scale Out Master s’il expire ou pour d’autres
raisons. Pour changer le certificat Scale Out Master, effectuez les opérations suivantes :

1. Obtenez un certificat TLS/SSL.


Créez et installez un certificat TLS/SSL sur le nœud Master à l’aide de la commande
suivante :

dos

MakeCert.exe -n CN={master endpoint host} SSISScaleOutMaster.cer -r -ss Root


-sr LocalMachine -a sha1

Par exemple :

dos

MakeCert.exe -n CN=MasterMachine SSISScaleOutMaster.cer -r -ss Root -sr


LocalMachine -a sha1

2. Lier le certificat au port Master

Vérifiez la liaison d’origine à l’aide de la commande suivante :

dos

netsh http show sslcert ipport=0.0.0.0:{Master port}

Par exemple :

dos

netsh http show sslcert ipport=0.0.0.0:8391


Supprimez la liaison d’origine et configurez la nouvelle liaison à l’aide des commandes
suivantes :

dos

netsh http delete sslcert ipport=0.0.0.0:{Master port}


netsh http add sslcert ipport=0.0.0.0:{Master port} certhash={TLS/SSL
Certificate Thumbprint} certstorename=Root appid={original appid}

Par exemple :

dos

netsh http delete sslcert ipport=0.0.0.0:8391


netsh http add sslcert ipport=0.0.0.0:8391
certhash=01d207b300ca662f479beb884efe6ce328f77d53 certstorename=Root appid=
{a1f96506-93e0-4c91-9171-05a2f6739e13}

3. Mettre à jour le fichier de configuration du service Scale Out


Master

Mettez à jour le fichier de configuration du service Scale Out Master, \


<drive\>:\Program Files\Microsoft SQL Server\140\DTS\Binn\MasterSettings.config , sur

le nœud Master. Mettez à jour SSLCertThumbprint vers l’empreinte du nouveau


certificat TLS/SSL.

4. Redémarrer le service Scale Out Master

5. Reconnecter les Scale Out Workers au Scale Out Master

Pour chaque Scale Out Worker, supprimez le Worker et rajoutez-le avec Scale Out
Manager ou effectuez les opérations suivantes :

a. Installez le certificat TLS/SSL client dans le magasin racine de l’ordinateur local sur le
nœud Worker.

b. Mettez à jour le fichier de configuration du service Scale Out Worker.

Mettez à jour le fichier de configuration du service Scale Out Worker, \


<drive\>:\Program Files\Microsoft SQL Server\140\DTS\Binn\WorkerSettings.config , sur

le nœud Worker. Mettez à jour MasterHttpsCertThumbprint vers l’empreinte du


nouveau certificat TLS/SSL.
c. Redémarrez le service Scale Out Worker.

Certificat Scale Out Worker


Le certificat Scale Out Worker est généré automatiquement durant l’installation de Scale
Out Worker.

Changer le certificat Scale Out Worker


Si vous souhaitez changer le certificat Scale Out Worker, effectuez les opérations
suivantes :

1. Créer un certificat

Créez et installez un certificat à l’aide de la commande suivante :

dos

MakeCert.exe -n CN={worker machine name};CN={worker machine ip}


SSISScaleOutWorker.cer -r -ss My -sr LocalMachine

Par exemple :

dos

MakeCert.exe -n CN=WorkerMachine;CN=10.0.2.8 SSISScaleOutWorker.cer -r -ss


My -sr LocalMachine

2. Installer le certificat client dans le magasin racine de l’ordinateur


local sur le nœud Worker

3. Donner au service l’accès au certificat


Supprimez l’ancien certificat et donnez au service Scale Out Worker l’accès au nouveau
certificat à l’aide de la commande suivante :

dos

certmgr.exe /del /c /s /r localmachine My /n {CN of the old certificate}


winhttpcertcfg.exe -g -c LOCAL_MACHINE\My -s {CN of the new certificate} -a
{the account running Scale Out Worker service}
Par exemple :

dos

certmgr.exe /del /c /s /r localmachine My /n WorkerMachine


winhttpcertcfg.exe -g -c LOCAL_MACHINE\My -s WorkerMachine -a
SSISScaleOutWorker140

4. Mettre à jour le fichier de configuration du service Scale Out


Worker
Mettez à jour le fichier de configuration du service Scale Out Worker, \
<drive\>:\Program Files\Microsoft SQL Server\140\DTS\Binn\WorkerSettings.config , sur

le nœud Worker. Mettez à jour WorkerHttpsCertThumbprint vers l’empreinte du


nouveau certificat.

5. Installer le certificat client dans le magasin racine de l’ordinateur


local sur le nœud master

6. Redémarrer le service Scale Out Worker

Étapes suivantes
Pour plus d’informations, consultez les articles suivants :

SSIS (SQL Server Integration Services) Scale Out Master


SSIS (SQL Server Integration Services) Scale Out Worker
Prise en charge de Scale Out pour la
haute disponibilité
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Dans SSIS Scale Out, la haute disponibilité côté Scale Out Worker est fournie par
l’exécution de packages avec plusieurs Scale Out Workers.

La haute disponibilité côté Scale Out Master est obtenue avec la fonctionnalité Always
On pour le catalogue SSIS et le cluster de basculement Windows. Dans cette solution,
plusieurs instances de Scale Out Master sont hébergées dans un cluster de basculement
Windows. Quand le service Scale Out Master ou SSISDB est arrêté sur le nœud principal,
le service ou SSISDB sur le nœud secondaire continue d’accepter les demandes
d’utilisateur et de communiquer avec les Scale Out Workers.

La haute disponibilité côté Scale Out Master peut aussi être obtenue au moyen d’une
instance de cluster de basculement SQL Server. Consultez Prise en charge de Scale Out
pour la haute disponibilité au moyen d’une instance de cluster de basculement SQL
Server.

Pour configurer la haute disponibilité côté Scale Out Master à l’aide de la fonctionnalité
Always On pour le catalogue SSIS, suivez les étapes ci-dessous :

1. Prérequis
Configurez un cluster de basculement Windows. Pour obtenir des instructions, consultez
le billet de blog Installation de la fonctionnalité de cluster de basculement et des outils
pour Windows Server 2012 . Installez la fonctionnalité et les outils sur tous les nœuds
de cluster.

2. Installer Scale Out Master sur le nœud


principal
Installez les services SQL Server Moteur de base de données, Integration Services et
Scale Out Master sur le nœud principal pour Scale Out Master.

Pendant l’installation, effectuez les étapes suivantes :


2.1 Définir le compte exécutant le service Scale Out
Master sur un compte de domaine
Ce compte doit pouvoir accéder ultérieurement à SSISDB sur le nœud secondaire dans
le cluster de basculement Windows. Étant donné que le service Scale Out Master et
SSISDB peuvent basculer séparément, ils peuvent se trouver sur des nœuds différents
après le basculement.

2.2 Inclure le nom d’hôte DNS du service Scale Out


Master dans les noms communs (CN) du certificat Scale
Out Master
Ce nom d’hôte est le point de terminaison de Scale Out Master, qui est créé en tant que
service générique en cluster dans le cluster de basculement (voir l’étape 7). (Veillez à
fournir un nom d’hôte DNS, et non un nom de serveur.)
3. Installer Scale Out Master sur le nœud
secondaire
Installez les services SQL Server Moteur de base de données, Integration Services et
Scale Out Master sur le nœud secondaire pour Scale Out Master.

Utilisez le même certificat Scale Out Master que celui utilisé sur le nœud principal.
Exportez le certificat TLS/SSL Scale Out Master sur le nœud principal avec une clé privée,
puis installez-le dans le magasin de certificats racine de l’ordinateur local sur le nœud
secondaire. Sélectionnez ce certificat quand vous installez Scale Out Master sur le nœud
secondaire.
7 Notes

Vous pouvez configurer plusieurs Scale Out Masters de sauvegarde en répétant ces
opérations pour le Scale Out Master sur d’autres nœuds secondaires.

4. Configurer la prise en charge de SSISDB pour


Always On
Pour configurer la prise en charge de SSISDB pour Always On, suivez les instructions
dans Always On pour le catalogue SSIS (SSISDB).

Vous devez également créer un écouteur de groupe de disponibilité pour le groupe de


disponibilité auquel vous ajoutez SSISDB. Consultez Créer ou configurer un écouteur de
groupe de disponibilité.

5. Mettre à jour le fichier de configuration du


service Scale Out Master
Mettez à jour le fichier de configuration du service Scale Out Master ( \
<drive\>:\Program Files\Microsoft SQL Server\140\DTS\Binn\MasterSettings.config )
sur le nœud principal et chaque nœud secondaire. Définissez SqlServerName sur nom
DNS de l’écouteur de groupe de disponibilité],[port] .

6. Activer la journalisation de l’exécution des


packages
La journalisation dans SSISDB est effectuée par la connexion
##MS_SSISLogDBWorkerAgentLogin## . Le mot de passe est généré automatiquement
pour cette connexion. Pour effectuer la journalisation de tous les réplicas de SSISDB,
effectuez les opérations suivantes

6.1 Changer le mot de passe de


##MS_SSISLogDBWorkerAgentLogin## sur l’instance SQL
Server principale

6.2 Ajouter la connexion au nœud SQL Server secondaire

6.3 Mettre à jour la chaîne de connexion utilisée pour la


journalisation
Appelez la procédure stockée [catalog].[update_logdb_info] avec les valeurs de
paramètre suivantes :

@server_name = '[Availability Group Listener DNS name],[Port]'

@connection_string = 'Data Source=[Availability Group Listener DNS name],


[Port];Initial Catalog=SSISDB;User

Id=##MS_SSISLogDBWorkerAgentLogin##;Password=[Password]];'

7. Configurer le rôle du service Scale Out


Master du cluster de basculement Windows
Server
1. Dans le Gestionnaire du cluster de basculement, connectez-vous au cluster pour
Scale-out. Sélectionnez le cluster. Sélectionnez Action dans le menu, puis
sélectionnez Configurer un rôle.
2. Dans la boîte de dialogue Assistant Haute disponibilité, sélectionnez Service
générique dans la page Sélectionner un rôle. Sélectionnez SQL Server Integration
Services Scale Out Master 14.0 dans la page Sélectionner un service.

3. Dans la page Point d’accès client, entrez le nom d’hôte DNS du service Scale Out
Master.

4. Terminez l’Assistant.

Sur les machines virtuelles Azure, cette opération de configuration nécessite des étapes
supplémentaires. L’explication complète de ces concepts et de ces étapes dépasse le
cadre de cet article.

1. Vous devez configurer un domaine Azure. Le clustering de basculement Windows


Server nécessite que tous les ordinateurs du cluster soient membres du même
domaine. Pour plus d’informations, consultez Activer Azure Active Directory
Domain Services à l’aide du portail Azure.

2. Vous devez configurer un équilibreur de charge Azure. Cette opération est


obligatoire pour l’écouteur du groupe de disponibilité. Pour plus d’informations,
consultez Tutoriel : équilibrer la charge du trafic interne vers les machines virtuelles
avec un équilibreur de charge de base à l’aide du portail Azure.

8. Mettre à jour l’adresse Scale Out Master dans


SSISDB
Sur l’instance SQL Server principale, exécutez la procédure stockée [catalog].
[update_master_address] avec la valeur de paramètre @MasterAddress =
N'https://[Scale Out Master service DNS host name]:[Master Port]' .

9. Ajouter les Scale Out Workers


Maintenant, vous pouvez ajouter des Scale Out Workers avec Integration Services Scale
Out Manager. Entrez [SQL Server Availability Group Listener DNS name],[Port] dans
la page de connexion.

Mettre à niveau Scale Out dans un


environnement à haute disponibilité
Pour mettre à niveau Scale Out dans un environnement à haute disponibilité, suivez les
étapes de mise à niveau d’Always On pour le catalogue SSIS, mettez à niveau Scale Out
Master et Scale Out Worker sur chaque ordinateur, puis recréez le rôle du cluster de
basculement Windows Server à l’étape 7 ci-dessus avec la nouvelle version du service
Scale Out Master.

Étapes suivantes
Pour plus d’informations, consultez les articles suivants :

SSIS (SQL Server Integration Services) Scale Out Master


SSIS (SQL Server Integration Services) Scale Out Worker
Prise en charge de Scale Out pour la
haute disponibilité au moyen d’une
instance de cluster de basculement SQL
Server
Article • 30/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour configurer la haute disponibilité côté Scale Out Master au moyen d’une instance de
cluster de basculement SQL Server, suivez les étapes ci-dessous :

1. Prérequis
Configurez un cluster de basculement Windows. Pour obtenir des instructions, consultez
le billet de blog Installation de la fonctionnalité de cluster de basculement et des outils
pour Windows Server 2012 . Installez la fonctionnalité et les outils sur tous les nœuds
de cluster.

2. Installer un cluster de basculement SQL


Server
Installez un cluster de basculement SQL Server. Pour obtenir des instructions, consultez
Installation d’un cluster de basculement SQL Server. Durant l’installation, dans la page
Sélection de fonctionnalités, sélectionnez Services Moteur de base de données. Notez le
nom réseau SQL Server, car vous en aurez besoin ultérieurement pour la configuration.

Ajoutez un nœud secondaire au cluster de basculement SQL Server.

3. Installer Scale Out Master sur le nœud


principal
Installez Integration Services et Scale Out Master sur le nœud principal à l’aide de
l’Assistant Installation pour une installation non-cluster.

Durant le processus d’installation, ajoutez le nom réseau SQL Server aux noms communs
(CN) dans le certificat Scale Out Master.

7 Notes

Si vous souhaitez effectuer le basculement de SSISDB et du service Scale Out


Master séparément, suivez les étapes décrites dans 2. Installer Scale Out Master
sur le nœud principal pour configurer Scale Out Master.

4. Installer Scale Out Master sur le nœud


secondaire
Suivez les étapes décrites dans 3. Installer Scale Out Master sur le nœud secondaire

5. Mettre à jour le fichier de configuration du


service Scale Out Master
Mettez à jour le fichier de configuration du service Scale Out Master
(<lecteur>:\Program Files\Microsoft SQL Server\140\DTS\Binn\MasterSettings.config)
sur les nœuds principal et secondaire. Changez la valeur SqlServerName par [nom
réseau SQL Server]//[nom de l’instance] ou [nom réseau SQL Server] pour l’instance par
défaut.

6. Ajouter le service Scale Out Master au rôle


SQL Server dans le cluster de basculement
Windows
Dans le Gestionnaire du cluster de basculement, connectez-vous au cluster pour Scale-
out. Sélectionnez Rôles dans l’Explorateur, cliquez avec le bouton droit sur le rôle SQL
Server et sélectionnez Ajouter une ressource, Service générique.
Dans l’Assistant Nouvelle ressource, sélectionnez le service Scale Out Master et terminez
l’Assistant.

Mettez le service Scale Out Master en ligne.

7 Notes

Si vous souhaitez effectuer le basculement de SSISDB et du service Scale Out


Master séparément, suivez les étapes décrites dans 7. Configurer le rôle du service
Scale Out Master du cluster de basculement Windows

7. Installer Scale Out Workers


Installez Scale Out Worker sur les nœuds Worker. Durant le processus d’installation,
spécifiez https://[nom réseau SQL Server]:[port master] pour le point de terminaison
master.

7 Notes

Si vous souhaitez effectuer le basculement de SSISDB et du service Scale Out


Master séparément, spécifiez le nom d’hôte DNS du service Scale Out Master au
lieu du nom réseau SQL Server.

8. Installer le certificat client Scale Out Worker


Installez le certificat Worker sur tous les nœuds du cluster de basculement SQL Server.
Consultez Installer le certificat client Scale Out Worker.

7 Notes

Scale Out Manager n’a pas de cluster de basculement SQL Server pris en charge. Si
vous utilisez Scale Out Manager pour ajouter Scale Out Worker, vous devez
toujours installer manuellement le certificat Worker sur tous les nœuds Master.

Étapes suivantes
Pour plus d’informations, consultez les articles suivants :

SSIS (SQL Server Integration Services) Scale Out Master


SSIS (SQL Server Integration Services) Scale Out Worker
Résoudre les problèmes de Scale-out
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

SSIS Scale Out implique la communication entre la base de données de catalogues SSIS
SSISDB , le service Scale Out Master et le service Scale Out Worker. Parfois, cette
communication est interrompue en raison par exemple d’erreurs de configuration ou
d’un défaut d’autorisations d’accès. Cet article vous aide à résoudre les problèmes liés à
la configuration de Scale-out.

Pour étudier les problèmes que vous rencontrez, suivez les étapes ci-après une par une
jusqu’à ce que votre problème soit résolu.

Scale Out Master échoue

Symptômes
Scale Out Master ne peut pas se connecter à SSISDB.

Les propriétés Master n’apparaissent pas dans Scale Out Manager.

Les propriétés Master ne sont pas renseignées dans la vue [catalog].


[master_properties] .

Solution
1. Vérifiez si Scale-out est activé.

Dans l’Explorateur d’objets de SSMS, cliquez avec le bouton droit sur SSISDB, puis
vérifiez que la fonctionnalité Scale Out est activée.
Si la valeur de propriété est False, activez Scale-out en appelant la procédure
stockée [catalog].[enable_scaleout] .

2. Vérifiez si le nom SQL Server spécifié dans le fichier de configuration de Scale Out
Master est correct et redémarrez le service Scale Out Master.

Scale Out Worker échoue

Symptômes
Scale Out Worker ne peut pas se connecter à Scale Out Master.

Scale Out Worker n’apparaît pas une fois ajouté à Scale Out Manager.

Scale Out Worker n’apparaît pas dans la vue [catalog].[worker_agents] .

Le service Scale Out Worker est en cours d’exécution, mais Scale Out Worker est
hors connexion.

Solution
Vérifiez les messages d’erreur dans le journal du service Scale Out Worker sous \
<drive\>:\Users\\*[account running worker
service]*\AppData\Local\SSIS\Cluster\Agent .
Aucun point de terminaison à l’écoute

Symptômes
"System.ServiceModel.EndpointNotFoundException: Aucun point de terminaison à l’écoute
sur https:// [NomMachine]:[Port] /ClusterManagement/ pouvant accepter le message. »

Solution
1. Vérifiez si le numéro de port spécifié dans le fichier de configuration du service
Scale Out Master est correct et redémarrez le service Scale Out Master.

2. Vérifiez si le point de terminaison maître spécifié dans la configuration du service


Scale Out Worker est correct et redémarrez le service Scale Out Worker.

3. Vérifiez si le port de pare-feu est ouvert sur le nœud Scale Out Master.

4. Résolvez tout problème de connexion entre les nœuds Scale Out Master et Scale
Out Worker.

Impossible d’établir une relation d’approbation

Symptômes
""System.ServiceModel.Security.SecurityNegotiationException: Impossible d’établir une
relation d’approbation pour le canal sécurisé SSL/TLS avec l’autorité '[NomMachine]:
[Port]'. »

"System.Net.WebException: Le serveur a clos la connexion sous-jacente : Impossible


d’établir une relation d’approbation pour le canal sécurisé SSL/TLS. »

"System.Security.Authentication.AuthenticationException: Le certificat distant n’est pas


valide selon la procédure de validation. »

Solution
1. Installez le certificat Scale Out Master dans le magasin de certificats racine de
l’ordinateur local sur le nœud Scale Out Worker si ce n’est déjà fait, puis
redémarrez le service Scale Out Worker.
2. Vérifiez si le nom d’hôte dans le point de terminaison maître est inclus dans les
noms communs du certificat Scale Out Master. Si ce n’est pas le cas, réinitialisez le
point de terminaison maître dans le fichier de configuration de Scale Out Worker
et redémarrez le service Scale Out Worker.

7 Notes

Si vous ne pouvez pas changer le nom d’hôte du point de terminaison maître


en raison des paramètres DNS, vous devez changer le certificat Scale Out
Master. Consultez Gérer les certificats dans SQL Server Integration Services
Scale Out.

3. Vérifiez si l’empreinte numérique du master spécifiée dans la configuration de


Scale Out Worker correspond à l’empreinte du certificat Scale Out Master.

Impossible d’établir un canal sécurisé

Symptômes
"System.ServiceModel.Security.SecurityNegotiationException: Impossible d’établir un canal
sécurisé pour SSL/TLS avec l’autorité '[NomMachine]:[Port]'. »

"System.Net.WebException: La demande a été abandonnée : Impossible de créer un canal


sécurisé SSL/TLS. »

Solution
Vérifiez si le compte exécutant le service Scale Out Worker a accès au certificat Scale Out
Worker en exécutant la commande suivante :

dos

winhttpcertcfg.exe -l -c LOCAL_MACHINE\MY -s {CN of the worker certificate}

Si ce n’est pas le cas, accordez l’accès en exécutant la commande suivante et redémarrez


le service Scale Out Worker.

dos

winhttpcertcfg.exe -g -c LOCAL_MACHINE\My -s {CN of the worker certificate}


-a {the account running Scale Out Worker service}
Requête HTTP interdite

Symptômes
"System.ServiceModel.Security.MessageSecurityException: La requête HTTP a été interdite
avec le schéma d’authentification client 'Anonyme'. »

"System.Net.WebException: Le serveur distant a retourné une erreur : (403) Interdit. »

Solution
1. Installez le certificat Scale Out Worker dans le magasin de certificats racine de
l’ordinateur local sur le nœud Scale Out Master si ce n’est déjà fait, puis
redémarrez le service Scale Out Worker.

2. Nettoyez les certificats inutiles dans le magasin de certificats racine de l’ordinateur


local sur le nœud Scale Out Master.

3. Configurez Schannel pour ne plus envoyer la liste des autorités de certification


racine de confiance pendant le processus de négociation TLS/SSL, en ajoutant
l’entrée de Registre suivante au nœud Scale Out Master.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNE

Nom de la valeur : SendTrustedIssuerList

Type de valeur : REG_DWORD

Données de la valeur : 0 (False)

4. S’il n’est pas possible de nettoyer tous les certificats non signés comme décrit à
l’étape 2, attribuez à la clé de Registre suivante la valeur 2.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNE

Nom de la valeur : ClientAuthTrustMode

Type de valeur : REG_DWORD

Données de la valeur : 2
7 Notes

S’il existe des certificats non signés automatiquement dans le magasin de


certificats racine, l’authentification par certificat client échoue. Pour plus
d’informations, voir Internet Information Services (IIS) 8 peut rejeter les
demandes de certificat client avec une erreur HTTP 403.7 ou 403.16 .

Erreur de requête HTTP

Symptômes
« System.ServiceModel.CommunicationException : Une erreur s’est produite lors de la
requête HTTP à https://[nom_machine]:[port]/ClusterManagement/. Cela peut être dû au
fait que le certificat de serveur n’est pas configuré correctement avec HTTP.SYS pour
HTTPS. Une autre raison possible est une non-correspondance de la liaison de sécurité
entre le client et le serveur. »

Solution
1. Vérifiez si le certificat Scale Out Master est correctement lié au port dans le point
de terminaison maître sur le nœud Master en exécutant la commande suivante :

dos

netsh http show sslcert ipport=0.0.0.0:{Master port}

Vérifiez si le hachage de certificat affiché correspond à l’empreinte du certificat


Scale Out Master. Si la liaison n’est pas correcte, réinitialisez-la en exécutant les
commandes suivantes et redémarrez le service Scale Out Worker.

dos

netsh http delete sslcert ipport=0.0.0.0:{Master port}


netsh http add sslcert ipport=0.0.0.0:{Master port} certhash={Master
certificate thumbprint} certstorename=Root appid={random guid}

Impossible d’ouvrir le magasin de certificats

Symptômes
La validation échoue au moment de la connexion de Scale Out Worker à Scale Out
Master dans Scale Out Manager avec le message d’erreur « Impossible d’ouvrir le
magasin de certificats sur l’ordinateur » .

Solution
1. Exécutez Scale Out Manager en tant qu’administrateur. Si vous l’ouvrez avec SSMS,
vous devez exécuter SSMS en tant qu’administrateur.

2. Démarrez le service Registre à distance sur l’ordinateur s’il n’est pas en cours
d’exécution.

L’exécution ne démarre pas

Symptômes
L’exécution dans Scale-out ne démarre pas.

Solution
Vérifiez l’état des ordinateurs que vous avez sélectionnés pour exécuter le package dans
la vue [catalog].[worker_agents] . Au moins un Worker doit être en ligne et activé.

Aucun journal

Symptômes
Les packages s’exécutent correctement, mais aucun message n’est journalisé.

Solution
Vérifiez si l’authentification SQL Server est autorisée par l’instance de SQL Server qui
héberge SSISDB.

7 Notes

Si vous avez changé le compte pour la journalisation Scale-out, consultez Changer


le compte pour la journalisation Scale-out et vérifiez la chaîne de connexion
utilisée pour la journalisation.
Les messages d’erreur ne sont pas utiles

Symptômes
Les messages d’erreur dans le rapport d’exécution des packages ne sont pas suffisants
pour résoudre les problèmes.

Solution
Des journaux d’exécution supplémentaires sont disponibles sous TasksRootFolder
configuré dans WorkerSettings.config . Par défaut, ce dossier est \<drive\>:\Users\\
[account]\AppData\Local\SSIS\ScaleOut\Tasks . [compte] fait référence au compte

exécutant le service Scale Out Worker, avec la valeur par défaut SSISScaleOutWorker140 .

Pour localiser le journal de l’exécution des packages avec [ID_exécution] , exécutez la


commande Transact-SQL suivante pour obtenir [ID_tâche] . Ensuite, recherchez le nom
de sous-dossier contenant [ID_tâche] sous TasksRootFolder .

SQL

SELECT [TaskId]
FROM [SSISDB].[internal].[tasks] tasks, [SSISDB].[internal].[executions]
executions
WHERE executions.execution_id = *Your Execution Id* AND tasks.JobId =
executions.job_id

2 Avertissement

Cette requête n’est fournie qu’à des fins de résolution de problèmes. Les vues
internes référencées dans la requête feront l’objet de modifications dans le futur.

Étapes suivantes
Pour plus d’informations, consultez les articles suivants sur l’installation et la
configuration de SSIS Scale Out :

Bien démarrer avec SSIS (SQL Server Integration Services) Scale Out sur un seul
ordinateur
Procédure pas à pas : Configurer Integration Services (SSIS) Scale Out
Serveur et catalogue Integration
Services (SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Après avoir conçu et testé des packages dans SQL Server Data Tools, vous pouvez
déployer les projets qui contiennent les packages sur un serveur Integration Services.

Le serveur Integration Services est une instance du moteur de base de données SQL
Server qui héberge la base de données SSISDB. La base de données stocke les objets
suivants : packages, projets, paramètres, autorisations, propriétés du serveur et
historique opérationnel.

La base de données SSISDB expose les informations d'objet dans des vues publiques
que vous pouvez interroger. La base de données fournit également des procédures
stockées que vous pouvez appeler pour gérer les objets.

Avant de pouvoir déployer des projets sur le serveur Integration Services, vous devez
créer le catalogue SSISDB.

Vous trouverez une vue d’ensemble des fonctionnalités du catalogue SSISDB sur la page
Catalogue SSIS.

Haute disponibilité
Tout comme les autres bases de données utilisateur, la base de données SSISDB prend
en charge la mise en miroir et la réplication de bases de données. Pour plus
d’informations sur la mise en miroir et la réplication, consultez Mise en miroir de bases
de données (SQL Server).

Vous pouvez également assurer la haute disponibilité de la base de données SSISDB et


de son contenu en utilisant SSIS et les groupes de disponibilité Always On. Pour plus
d’informations, consultez Always On pour le catalogue SSIS (SSISDB. Consultez
également ce billet de blog de Matt Masson, SSIS with Always On , sur
blogs.msdn.com.

Serveur Integration Services dans SQL Server


Management Studio
Quand vous vous connectez à une instance du moteur de base de données SQL Server
qui héberge la base de données SSISDB, vous voyez les objets suivants dans
l’Explorateur d’objets :

Base de données SSISDB

La base de données SSISDB apparaît sous le nœud Bases de données dans


l'Explorateur d'objets. Vous pouvez interroger les vues et appeler les procédures
stockées qui gèrent le serveur Integration Services et les objets stockés sur le
serveur.

Catalogues Integration Services

Sous le nœud Catalogues Integration Services se trouvent des dossiers pour les
environnements et les projets Integration Services.

Tâches associées
Afficher la liste des packages sur le serveur Integration Services

Déployer des projets et des packages Integration Services (SSIS)

Exécuter des packages Integration Services (SSIS)

Contenu associé
Entrée de blog, SSIS et Always On , sur blogs.msdn.com.
Catalogue SSIS
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le catalogue SSISDB est l’élément central pour l’utilisation des projets Integration
Services (SSIS) que vous avez déployés sur le serveur Integration Services. Ainsi, c'est
dans ce catalogue que vous définissez les paramètres de projet et de package,
configurez les environnements pour spécifier des valeurs d'exécution pour les packages,
exécutez et résolvez les problèmes relatifs aux packages, et gérez les opérations du
serveur Integration Services .

7 Notes

Cet article décrit le catalogue SSIS de manière générale et le catalogue SSIS en


cours d’exécution au niveau local. Vous pouvez également créer le catalogue SSIS
dans Azure SQL Database, et déployer et exécuter des packages SSIS dans Azure.
Pour plus d’informations, consultez Effectuer un « lift-and-shift » des charges de
travail SQL Server Integration Services vers le cloud.

Bien que vous puissiez également exécuter des packages SSIS sur Linux, le
catalogue SSIS n’est pas pris en charge sur Linux. Pour plus d’informations,
consultez Extraire, transformer et charger des données sur Linux avec SSIS.

Les objets stockés dans le catalogue SSISDB sont les projets, les packages, les
paramètres, les environnements et l'historique opérationnel.

Vous inspectez les objets, les paramètres et les données opérationnelles stockés dans le
catalogue SSISDB en interrogeant les vues de la base de données SSISDB . Vous gérez
des objets en appelant des procédures stockées situées dans la base de données
SSISDB ou à l'aide de l'interface utilisateur du catalogue SSISDB . Dans de nombreux
cas, la même tâche peut être effectuée dans l'interface utilisateur ou en appelant une
procédure stockée.

Pour maintenir la base de données SSISDB , il est recommandé d'appliquer des


stratégies d'entreprise standard pour la gestion des bases de données utilisateur. Pour
plus d'informations sur la création de plans de maintenance, consultez Maintenance
Plans.

Le catalogue SSISDB et la base de données SSISDB prennent en charge Windows


PowerShell. Pour plus d'informations sur l'utilisation de SQL Server avec Windows
PowerShell, consultez SQL Server PowerShell. Pour des exemples d'utilisation de
Windows PowerShell pour exécuter des tâches telles que le déploiement d'un projet,
consultez l'entrée de blog SSIS et PowerShell dans SQL Server 2012 , sur
blogs.msdn.com.

Pour plus d’informations sur l’affichage des données opérationnelles, consultez


Surveiller les packages en cours d’exécution et autres opérations.

Vous accédez au catalogue SSISDB de SQL Server Management Studio en vous


connectant au moteur de base de données de SQL Server , puis en développant le
nœud Catalogues Integration Services dans l'Explorateur d'objets. Vous accédez à la
base de données SSISDB de SQL Server Management Studio en développant le nœud
Bases de données dans l'Explorateur d'objets.

7 Notes

Vous ne pouvez pas renommer la base de données SSISDB .

7 Notes

Si l'instance SQL Server à laque la base de données SSISDB est rattachée s'arrête
ou ne répond pas, le processus ISServerExec.exe prend fin. Un message est écrit
dans un journal des événements Windows.

Si les ressources SQL Server basculent dans le cadre d’un basculement de cluster,
les packages en cours d’exécution ne redémarrent pas. Vous pouvez utiliser les
points de contrôle pour redémarrer les packages. Pour plus d'informations,
consultez Redémarrer des packages à l'aide de points de contrôle.

Fonctionnalités et capacités
Identificateurs d’objets de catalogue

Configuration du catalogue

autorisations

Dossiers

Projets et packages

Paramètres
Environnements serveur, variables de serveur et références d’environnement
serveur

Exécutions et validations

Identificateurs d'objets de catalogue


Lorsque vous créez un objet dans le catalogue, attribuez-lui un nom. Ce nom constitue
l'identificateur de l'objet. SQL Server définit des règles quant aux caractères pouvant
être utilisés dans un identificateur. Les noms des objets suivants doivent respecter les
règles liées aux identificateurs.

Dossier

Projet

Environnement

Paramètre

Variable d’environnement

Dossier, projet, environnement


Lorsque vous renommez un dossier, un projet ou un environnement, respectez les
règles suivantes.

Les caractères non valides sont les caractères ASCII/Unicode de 1 à 31, les
guillemets ("), le signe inférieur à (<), le signe supérieur à (>), la barre verticale (|),
le retour arrière (\b), la valeur null (\0) et la tabulation (\t).

Le nom ne peut pas contenir d'espaces de début ni de fin.

@ ne doit pas être utilisé comme premier caractère, mais il peut l'être par la suite.

La longueur du nom doit être supérieure à 0 et inférieure ou égale à 128.

Paramètre
Lorsque vous affectez un nom à un paramètre, respectez les règles suivantes :

Le premier caractère du nom doit être une lettre, ainsi que défini dans la norme
Unicode 2.0, ou un trait de soulignement (_).
Les caractères suivants peuvent être des lettres ou des nombres conformément à
la norme Unicode 2.0, ou un trait de soulignement (_).

Variable d’environnement
Lorsque vous attribuez un nom à une variable d'environnement, respectez les règles
suivantes :

Les caractères non valides sont les caractères ASCII/Unicode de 1 à 31, les
guillemets ("), le signe inférieur à (<), le signe supérieur à (>), la barre verticale (|),
le retour arrière (\b), la valeur null (\0) et la tabulation (\t).

Le nom ne peut pas contenir d'espaces de début ni de fin.

@ ne doit pas être utilisé comme premier caractère, mais il peut l'être par la suite.

La longueur du nom doit être supérieure à 0 et inférieure ou égale à 128.

Le premier caractère du nom doit être une lettre, ainsi que défini dans la norme
Unicode 2.0, ou un trait de soulignement (_).

Les caractères suivants peuvent être des lettres ou des nombres conformément à
la norme Unicode 2.0, ou un trait de soulignement (_).

Configuration du catalogue
Pour définir précisément le comportement du catalogue, vous devez ajuster ses
propriétés. Les propriétés du catalogue définissent la façon dont les données sensibles
sont chiffrées, ainsi que la façon dont les opérations et les données du contrôle de
version des projets sont conservées. Pour définir les propriétés du catalogue, utilisez la
boîte de dialogue Propriétés du catalogue ou appelez la procédure stockée
catalog.configure_catalog (base de données SSISDB). Pour voir les propriétés, utilisez la
boîte de dialogue ou interrogez catalog.configure_catalog (base de données SSISDB).
Vous pouvez accéder à cette boîte de dialogue en cliquant avec le bouton droit sur
SSISDB dans l’Explorateur d’objets.

Nettoyage des opérations et des versions de projet


Les données d'état de nombreuses opérations du catalogue sont stockées dans des
tables de base de données internes. Ainsi, le catalogue effectue le suivi de l'état des
exécutions de packages et des déploiements de projets. Pour limiter la taille des
données opérationnelles, le travail de maintenance de serveur SSIS dans SQL Server
Management Studio est utilisé pour supprimer les anciennes données. Ce travail de
l'Agent SQL Server est créé lors de l'installation de Integration Services .

Vous pouvez mettre à jour ou redéployer un projet Integration Services en le déployant


avec le même nom dans le même dossier du catalogue. Par défaut, chaque fois que
vous redéployez un projet, le catalogue SSISDB en conserve la version précédente. Pour
limiter la taille des données opérationnelles, le travail de maintenance de serveur SSIS
est utilisé pour supprimer les anciennes versions des projets.

Pour exécuter le travail de maintenance du serveur SSIS, SSIS crée la connexion SQL
Server ##MS_SSISServerCleanupJobLogin## . Cette connexion est réservée à un usage
interne par SSIS.

Les propriétés de catalogue SSISDB suivantes définissent le comportement de ce travail


de l'Agent SQL Server . Vous pouvez voir et modifier les propriétés en utilisant la boîte
de dialogue Propriétés du catalogue ou catalog.catalog_properties (base de données
SSISDB) et catalog.configure_catalog (base de données SSISDB).

Nettoyer les journaux régulièrement


L’étape de travail de nettoyage des opérations s’exécute quand cette propriété a la
valeur True.

Période de rétention ( jours)


Définit l'âge maximal des données opérationnelles autorisées (en jours). Les données
plus anciennes sont supprimées.

La valeur minimale est de un jour. La valeur maximale est limitée uniquement par la
valeur maximale des données SQL Server int. Pour plus d’informations sur ce type de
données, consultez int, bigint, smallint et tinyint (Transact-SQL).

Supprimer régulièrement les anciennes versions


L’étape de travail de nettoyage des versions de projet s’exécute quand cette propriété a
la valeur True.

Nombre maximal de versions par projet


Définit le nombre de versions d’un projet stockées dans le catalogue. Les versions
antérieures des projets sont supprimées.

Algorithme de chiffrement
La propriété Algorithme de chiffrement spécifie le type de chiffrement utilisé pour
chiffrer les valeurs des paramètres sensibles. Vous pouvez faire votre choix parmi les
types de chiffrement suivants.
AES_256 (par défaut)

AES_192

AES_128

DESX

TRIPLE_DES_3KEY

TRIPLE_DES

DES

Lorsque vous déployez un projet Integration Services sur le serveur Integration Services ,
le catalogue chiffre automatiquement les données du package et les valeurs sensibles.
Le catalogue déchiffre automatiquement les données lorsque vous les récupérez. Le
catalogue SSISDB utilise le niveau de protection ServerStorage . Pour plus
d'informations, consultez Access Control for Sensitive Data in Packages.

La modification de l'algorithme de chiffrement est une opération qui prend du temps.


Tout d'abord, le serveur doit utiliser l'algorithme précédemment spécifié pour déchiffrer
toutes les valeurs de configuration. Le serveur doit ensuite utiliser le nouvel algorithme
pour ré-chiffrer les valeurs. Pendant ce temps, aucune autre opération Integration
Services ne peut être effectuée sur le serveur. Ainsi, pour permettre aux opérations
Integration Services de continuer de façon ininterrompue, l’algorithme de chiffrement
est une valeur en lecture seule dans la boîte de dialogue de Management Studio.

Pour modifier le paramètre de la propriété Algorithme de chiffrement , définissez la


base de données SSISDB en mode mono-utilisateur, puis appelez la procédure stockée
catalog.configure_catalog. Utilisez ENCRYPTION_ALGORITHM pour l’argument
property_name . Pour connaître les valeurs de propriétés prises en charge, consultez
catalog.catalog_properties (base de données SSISDB). Pour plus d’informations sur la
procédure stockée, consultez catalog.configure_catalog (base de données SSISDB).

Pour plus d’informations sur le mode mono-utilisateur, consultez Définir une base de
données en mode mono-utilisateur. Pour plus d’informations sur le chiffrement et les
algorithmes de chiffrement dans SQL Server, consultez les rubriques de la section
Chiffrement SQL Server.

Une clé principale de base de données est utilisée pour le chiffrement. La clé est
générée lorsque vous créez le catalogue.

Le tableau suivant répertorie les noms des propriétés apparaissant dans la boîte de
dialogue Propriétés du catalogue et les propriétés correspondantes en vue de base de
données.

Nom de la propriété (boîte de dialoguePropriétés Nom de la propriété (vue de base de


du catalogue ) données)

Nom de l'algorithme de chiffrement ENCRYPTION_ALGORITHM

Nettoyer les journaux régulièrement OPERATION_CLEANUP_ENABLED​

Période de rétention (jours) RETENTION_WINDOW

Supprimer régulièrement les anciennes versions VERSION_CLEANUP_ENABLED

Nombre maximal de versions par projet MAX_PROJECT_VERSIONS

Niveau d'enregistrement par défaut au niveau du SERVER_LOGGING_LEVEL


serveur

Autorisations
Les projets, les environnements et les packages sont contenus dans des dossiers qui
sont des objets sécurisables. Vous pouvez accorder des autorisations à un dossier,
notamment l'autorisation de MANAGE_OBJECT_PERMISSIONS.
MANAGE_OBJECT_PERMISSIONS vous permet de déléguer l'administration du contenu
du dossier à un utilisateur sans avoir à accorder à celui-ci l'appartenance au rôle
ssis_admin. Vous pouvez également accorder des autorisations relatives à des projets,
des environnements et des opérations. Les opérations incluent l'initialisation de
Integration Services, le déploiement de projets, la création et le démarrage d'exécutions,
la validation de projets et de packages, ainsi que la configuration du catalogue SSISDB .

Pour plus d’informations sur les rôles de base de données, consultez Rôles au niveau de
la base de données.

Le catalogue SSISDB utilise un déclencheur DDL, ddl_cleanup_object_permissions, pour


appliquer l'intégrité des informations d'autorisations sur les éléments sécurisables SSIS.
Le déclencheur est activé lorsqu'un principal de base de données, tel qu'un utilisateur de
base de données, un rôle de base de données ou un rôle d'application de base de
données, est supprimé de la base de données SSISDB.

Si le principal a accordé ou refusé des autorisations à d'autres principaux, révoquez les


autorisations données par le fournisseur d'autorisations, avant que le principal puisse
être supprimé. Sinon, un message d'erreur est retourné lorsque le système essaie de
supprimer le principal. Le déclencheur supprime tous les enregistrements d'autorisation
dans lesquels le principal de la base de données est un bénéficiaire.
Il est recommandé de ne pas désactiver le déclencheur car il garantit qu'il n'existe aucun
enregistrement d'autorisation orphelin après la suppression d'un principal de la base de
données SSISDB .

Gestion des autorisations


Vous pouvez gérer les autorisations à l’aide de l’interface utilisateur de SQL Server
Management Studio , des procédures stockées et de l’espace de noms
Microsoft.SqlServer.Management.IntegrationServices .

Pour gérer les autorisations à l’aide de l’IU de SQL Server Management Studio, servez-
vous des boîtes de dialogue suivantes :

Dans le cas d'un dossier, utilisez la page Autorisations de la Folder Properties


Dialog Box.

Dans le cas d'un projet, utilisez la page Autorisations de la Project Properties


Dialog Box.

Pour gérer les autorisations en utilisant Transact-SQL, appelez catalog.grant_permission


(base de données SSISDB), catalog.deny_permission (base de données SSISDB) et
catalog.revoke_permission (base de données SSISDB). Pour voir les autorisations
effectives du principal actuel pour tous les objets, interrogez
catalog.effective_object_permissions (base de données SSISDB). Cette rubrique fournit
les descriptions des différents types d'autorisations. Pour voir les autorisations attribuées
explicitement à l’utilisateur, interrogez catalog.explicit_object_permissions (base de
données SSISDB).

Dossiers
Un dossier contient un ou plusieurs projets et environnements du catalogue SSISDB .
Vous pouvez utiliser la vue catalog.folders (base de données SSISDB) pour accéder aux
informations sur les dossiers du catalogue. Vous pouvez utiliser les procédures stockées
suivantes pour gérer les dossiers :

catalog.create_folder (base de données SSISDB)

catalog.delete_folder (base de données SSISDB)

catalog.rename_folder (base de données SSISDB)

catalog.set_folder_description (base de données SSISDB)


Projets et packages
Chaque projet peut contenir plusieurs packages. Les projets et les packages peuvent
contenir des paramètres et des références aux environnements. Vous pouvez accéder
aux paramètres et aux références d'environnement à l'aide de la Configure Dialog Box.

Vous pouvez effectuer d’autres tâches de projet en appelant les procédures stockées
suivantes :

catalog.delete_project (base de données SSISDB)

catalog.deploy_project (base de données SSISDB)

catalog.get_project (base de données SSISDB)

catalog.move_project (base de données SSISDB)

catalog.restore_project (base de données SSISDB)

Ces vues fournissent des détails sur les packages, les projets et les versions des projets.

catalog.projects (base de données SSISDB)

catalog.packages (base de données SSISDB)

catalog.object_versions (base de données SSISDB)

Paramètres
Vous utilisez des paramètres pour affecter des valeurs aux propriétés des packages au
moment de l'exécution de ces packages. Pour définir la valeur d’un package ou d’un
paramètre de projet, et pour effacer la valeur, appelez
catalog.set_object_parameter_value (base de données SSISDB) et
catalog.clear_object_parameter_value (base de données SSISDB). Pour définir la valeur
d’un paramètre d’une instance d’exécution, appelez
catalog.set_execution_parameter_value (base de données SSISDB). Vous pouvez
récupérer les valeurs des paramètres par défaut en appelant
catalog.get_parameter_values (base de données SSISDB).

Ces vues affichent les paramètres de tous les packages et projets, ainsi que les valeurs
de paramètre utilisées pour une instance d'exécution.

catalog.object_parameters (base de données SSISDB)

catalog.execution_parameter_values (base de données SSISDB)


Environnements serveur, variables de serveur et
références d'environnement serveur
Les environnements serveur contiennent des variables de serveur. Les valeurs des
variables peuvent être utilisées lorsqu'un package est exécuté ou validé sur le serveur
Integration Services .

Les procédures stockées suivantes vous permettent d'exécuter de nombreuses autres


tâches de gestion sur les environnements et les variables.

catalog.create_environment (base de données SSISDB)

catalog.delete_environment (base de données SSISDB)

catalog.move_environment (base de données SSISDB)

catalog.rename_environment (base de données SSISDB)

catalog.set_environment_property (base de données SSISDB)

catalog.create_environment_variable (base de données SSISDB)

catalog.delete_environment_variable (base de données SSISDB)

catalog.set_environment_variable_property (base de données SSISDB)

catalog.set_environment_variable_value (base de données SSISDB)

En appelant la procédure stockée catalog.set_environment_variable_protection (base de


données SSISDB), vous pouvez définir le bit de sensibilité d’une variable.

Pour utiliser la valeur d'une variable de serveur, spécifiez la référence entre le projet et
l'environnement serveur. Vous pouvez utiliser les procédures stockées suivantes pour
créer et supprimer des références. Vous pouvez également indiquer si l'environnement
peut se trouver dans le même dossier que le projet ou dans un dossier différent.

catalog.create_environment_reference (base de données SSISDB)

catalog.delete_environment_reference (base de données SSISDB)

catalog.set_environment_reference_type (base de données SSISDB)

Pour plus de détails sur les environnements et les variables, interrogez ces vues.

catalog.environments (base de données SSISDB)

catalog.environment_variables (base de données SSISDB)


catalog.environment_references (base de données SSISDB)

Exécutions et validations
Une exécution est une instance d'une exécution de package. Appelez
catalog.create_execution (base de données SSISDB) et catalog.start_execution (base de
données SSISDB) pour créer et démarrer une exécution. Pour arrêter une exécution ou
une validation de package/projet, appelez catalog.stop_operation (base de données
SSISDB).

Pour suspendre un package en cours d'exécution et créer un fichier de vidage, appelez


la procédure stockée catalog.create_execution_dump. Le fichier de vidage fournit des
informations sur l'exécution d'un package, ce qui peut vous aider à résoudre les
problèmes d'exécution. Pour plus d'informations sur la génération et la configuration de
fichiers de vidage, consultez Generating Dump Files for Package Execution.

Pour plus de détails sur les exécutions, les validations et les messages enregistrés
pendant les opérations, ainsi que pour obtenir des informations contextuelles sur les
erreurs, interrogez ces vues.

catalog.executions (base de données SSISDB)

catalog.operations (base de données SSISDB)

catalog.operation_messages (base de données SSISDB)

catalog.extended_operation_info (base de données SSISDB)

catalog.event_messages

catalog.event_message_context

Vous pouvez valider des projets et des packages en appelant les procédures stockées
catalog.validate_project (base de données SSISDB) et catalog.validate_package (base de
données SSISDB). La vue catalog.validations (base de données SSISDB) fournit des
informations sur les validations, comme les références d’environnement de serveur
prises en compte dans la validation, s’il s’agit d’une validation des dépendances ou
d’une validation complète, et si le runtime 32 bits ou 64 bits est utilisé pour exécuter le
package.

Créer le catalogue SSIS


Après avoir conçu et testé des packages dans SQL Server Data Tools, vous pouvez
déployer les projets qui contiennent les packages sur un serveur Integration Services .
Avant cela, le serveur Integration Services doit contenir le catalogue SSISDB . Le
programme d'installation de SQL Server 2012 (11.x) ne crée pas automatiquement le
catalogue ; vous devez le créer manuellement à l'aide des instructions suivantes.

Vous pouvez créer le catalogue SSISDB dans SQL Server Management Studio. Vous
pouvez également créer le catalogue par programmation en utilisant Windows
PowerShell.

Pour créer le catalogue SSISDB dans SQL Server


Management Studio
1. Ouvrez SQL Server Management Studio.

2. Connectez-vous au moteur de base de données SQL Server .

3. Dans l’Explorateur d’objets, développez le nœud du serveur, cliquez avec le bouton


droit sur le nœud Catalogues Integration Services , puis cliquez sur Créer un
catalogue.

4. Cliquez sur Activer l'intégration du CLR.

Le catalogue utilise des procédures stockées du CLR.

5. Cliquez sur Activer l’exécution automatique des procédures stockées Integration


Services au démarrage de SQL Server pour permettre à la procédure stockée
catalog.startup de s’exécuter à chaque redémarrage de l’instance de serveur SSIS .

La procédure stockée effectue la maintenance de l'état des opérations pour le


catalogue SSISDB. Elle corrige l’état des packages en cours d’exécution si l’instance
de serveur SSIS s’arrête.

6. Entrez un mot de passe, puis cliquez sur OK.

Le mot de passe protège la clé principale de la base de données utilisée pour le


chiffrement des données du catalogue. Enregistrez le mot de passe dans un
emplacement sécurisé. Il est également recommandé de sauvegarder la clé
principale de base de données. Pour plus d'informations, consultez Back Up a
Database Master Key.

Pour créer le catalogue SSISDB par programmation


1. Exécutez le script PowerShell suivant :

# Load the IntegrationServices Assembly


[Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Managem
ent.IntegrationServices")

# 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=localhost;Initial
Catalog=master;Integrated Security=SSPI;"
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection
$sqlConnectionString

# Create the Integration Services object


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

# Provision a new SSIS Catalog


$catalog = New-Object $ISNamespace".Catalog" ($integrationServices,
"SSISDB", "P@assword1")
$catalog.Create()

Vous trouverez d’autres exemples d’utilisation de Windows PowerShell et de


l’espace de noms Microsoft.SqlServer.Management.IntegrationServices dans
l’entrée de blog SSIS et PowerShell dans SQL Server 2012 , sur blogs.msdn.com.
Pour obtenir une vue d'ensemble de l'espace de noms et des exemples de code,
consultez l'entrée de blog, A Glimpse of the SSIS Catalog Managed Object
Model , sur blogs.msdn.com.

Boîte de dialogue Propriétés du catalogue


Utilisez la boîte de dialogue Propriétés du catalogue pour configurer le catalogue
SSISDB. Les propriétés de catalogue définissent la façon dont les données sensibles sont
chiffrées, la façon dont les opérations et les données du contrôle de version du projet
sont conservées et le délai d'attente des opérations de validation. Le catalogue SSISDB
est une base de données qui représente le point d’administration et de stockage central
pour les projets, les packages, les paramètres et les environnements Integration Services
.
Vous pouvez également consulter les propriétés de catalogue dans la vue
catalog.catalog_properties et les définir à l’aide de la procédure stockée
catalog.configure_catalog . Pour plus d’informations, consultez

catalog.catalog_properties (base de données SSISDB) et catalog.configure_catalog (base


de données SSISDB).

Que voulez-vous faire ?

Ouvrez la boîte de dialogue Propriétés du catalogue.

Configurer les options

Ouvrez la boîte de dialogue Propriétés du catalogue.


1. Ouvrez SQL Server Management Studio.

2. Connectez-vous au moteur de base de données Microsoft SQL Server.

3. Dans l’Explorateur d’objets, développez le nœud Integration Services , cliquez


avec le bouton droit sur SSISDB, puis cliquez sur Propriétés.

Configurer les options

Options
Le tableau décrit certaines propriétés de la boîte de dialogue et les propriétés
correspondantes dans la vue catalog.catalog_properties .

Nom de la Nom de la propriété (vue Description


propriété catalog.catalog_properties)
(boîte de
dialogue
Propriétés du
catalogue)
Nom de la Nom de la propriété (vue Description
propriété catalog.catalog_properties)
(boîte de
dialogue
Propriétés du
catalogue)

Nom de ENCRYPTION_ALGORITHM Spécifie le type de chiffrement utilisé pour


l'algorithme de chiffrer les valeurs des paramètres
chiffrement sensibles dans le catalogue. Les valeurs
possibles sont les suivantes :

DES

TRIPLE_DES

TRIPLE_DES_3KEY

DESPX

AES_128

AES_192

AES_256 (par défaut)

Nombre MAX_PROJECT_VERSIONS Indiquez combien de versions d’un projet


maximal de sont stockées dans le catalogue. Les
versions par versions antérieures des projets qui
projet dépassent la limite maximale autorisée
sont supprimées lors de l’exécution du
travail de nettoyage des versions de
projets.

Nettoyer les OPERATION_CLEANUP_ENABLED Définissez la propriété sur True pour


journaux indiquer que le travail de l'Agent SQL
régulièrement Server, à savoir le nettoyage des
opérations, doit être exécuté. Sinon,
définissez la propriété sur False.

Période de RETENTION_WINDOW Spécifiez l'âge maximal des données


rétention (jours) opérationnelles autorisées (en jours). Les
données plus anciennes que le nombre de
jours spécifié sont supprimées par le travail
de l’Agent SQL, à savoir le nettoyage des
opérations.
Sauvegarder, restaurer et déplacer le catalogue
SSIS
S’applique à : SQL Server 2016 et ultérieur Azure SQL Database Azure
Synapse Analytics Analytics Platform System (PDW)

SQL Server 2019 Integration Services (SSIS) comprend la base de données SSISDB.
Interrogez les vues de la base de données SSISDB pour inspecter les objets, les
paramètres et les données opérationnelles stockés dans le catalogue SSISDB . Cette
rubrique fournit des instructions sur la sauvegarde et la restauration de la base de
données.

Le catalogue SSISDB stocke les packages que vous avez déployés sur le serveur
Integration Services. Pour plus d’informations sur le catalogue, consultez Catalogue SSIS.

Pour sauvegarder la base de données SSIS


1. Ouvrez SQL Server Management Studio et connectez-vous à une instance de SQL
Server.

2. Sauvegardez la clé principale de la base de données SSISDB, à l'aide de


l'instruction Transact-SQL BACKUP MASTER KEY. La clé est stockée dans un fichier
que vous spécifiez. Utilisez un mot de passe pour chiffrer la clé principale dans le
fichier.

Pour plus d’informations sur l’instruction, consultez BACKUP MASTER KEY


(Transact-SQL).

Dans l’exemple suivant, la clé principale est exportée vers le fichier c:\temp
directory\RCTestInstKey . Le mot de passe LS2Setup! est utilisé pour chiffrer la clé
principale.

backup master key to file = 'c:\temp\RCTestInstKey'


encryption by password = 'LS2Setup!'

3. Sauvegardez la base de données SSISDB à l’aide de la boîte de dialogue


Sauvegarder la base de données dans SQL Server Management Studio. Pour plus
d’informations, consultez Procédure : sauvegarder une base de données
(SQL Server Management Studio).
4. Générez le script CREATE LOGIN pour ##MS_SSISServerCleanupJobLogin## en
effectuant les actions suivantes. Pour plus d'informations, consultez CREATE LOGIN
(Transact-SQL).

a. Dans l’Explorateur d’objets de SQL Server Management Studio, développez le


nœud Sécurité , puis le nœud Connexions .

b. Cliquez avec le bouton droit sur ##MS_SSISServerCleanupJobLogin## , puis


cliquez sur Générer un script de la connexion en tant que>CREATE
To>Nouvelle fenêtre d’éditeur de requête.

5. Si vous restaurez la base de données SSISDB sur une instance SQL Server où le
catalogue SSISDB n’a jamais été créé, générez le script CREATE PROCEDURE pour
sp_ssis_startup en effectuant les actions suivantes. Pour plus d’informations,
consultez CREATE PROCEDURE (Transact-SQL).

a. Dans l’Explorateur d’objets, développez le nœud Bases de données , puis le


nœud Clé principale>Programmabilité>Procédures stockées .

b. Cliquez avec le bouton droit sur dbo.sp_ssis_startup, puis cliquez sur Générer
un script de la procédure stockée en tant que>CREATE To>Nouvelle fenêtre
d’éditeur de requête.

6. Assurez-vous que Le SQL Server Agent a démarré.

7. Si vous restaurez la base de données SSISDB sur une instance SQL Server où le
catalogue SSISDB n’a jamais été créé, générez un script pour la tâche de
maintenance de serveur SSIS en effectuant les opérations suivantes. Le script est
créé automatiquement dans SQL Server Agent quand le catalogue SSISDB est créé.
Le travail permet de nettoyer les journaux d'opérations de nettoyage en dehors de
la période de conservation et de supprimer les versions antérieures des projets.

a. Dans l’Explorateur d’objets, développez le nœud SQL Server Agent , puis le


nœud Travaux .

b. Cliquez avec le bouton droit sur le travail de maintenance de serveur SSIS, puis
cliquez sur Générer un script du travail en tant que>CREATE To>Nouvelle
fenêtre d’éditeur de requête.

Pour restaurer la base de données SSIS


1. Si vous restaurez la base de données SSISDB sur une instance SQL Server où le
catalogue SSISDB n’a jamais été créé, activez le CLR en exécutant la procédure
stockée sp_configure . Pour plus d’informations, consultez sp_configure (Transact-
SQL) et l’option clr enabled.

use master
sp_configure 'clr enabled', 1
reconfigure

2. Vous restaurez la base de données SSISDB sur une instance SQL Server où le
catalogue SSISDB n'a jamais été créé, créez la clé asymétrique et la connexion à
partir de la clé asymétrique et accordez l'autorisation UNSAFE à la connexion.

Create Asymmetric Key MS_SQLEnableSystemAssemblyLoadingKey


FROM Executable File = 'C:\Program Files\Microsoft SQL
Server\YourSQLServerDefaultCompatibilityLevel\DTS\Binn\Microsoft.SqlSer
ver.IntegrationServices.Server.dll'

Vous pouvez trouver la valeur de YourSQLServerDefaultCompatibilityLevel dans


une liste des niveaux de compatibilité par défaut de SQL Server.

Integration Services Les procédures stockées CLR exigent l’octroi d’autorisations


UNSAFE à la connexion, car cette dernière nécessite un accès supplémentaire aux
ressources restreintes, par exemple l’API Win32 de Microsoft. Pour plus
d’informations sur l’autorisation de code UNSAFE, consultez Création d’un
assembly.

Create Login ##MS_SQLEnableSystemAssemblyLoadingUser## FROM Asymmetric


Key MS_SQLEnableSystemAssemblyLoadingKey
Grant Unsafe Assembly to ##MS_SQLEnableSystemAssemblyLoadingUser##

3. Restaurez la base de données SSISDB à partir de la sauvegarde, à l’aide de la boîte


de dialogue Restaurer la base de données dans SQL Server Management Studio.
Pour plus d'informations, voir les rubriques suivantes :

Restaurer la base de données (page Général)

Restaurer la base de données (page Fichiers)

Restaurer la base de données (page Options)


4. Exécutez les scripts que vous avez créés dans la procédure Pour sauvegarder la
base de données SSIS pour ##MS_SSISServerCleanupJobLogin##, sp_ssis_startup
et le travail de maintenance de serveur SSIS. Assurez-vous que SQL Server Agent a
démarré.

5. Exécutez l’instruction suivante pour définir la procédure sp_ssis_startup d’exécution


automatique. Pour plus d’informations, consultez sp_procoption (Transact-SQL).

EXEC sp_procoption N'sp_ssis_startup','startup','on'

6. Mappez l’utilisateur SSISDB ##MS_SSISServerCleanupJobUser## (base de données


SSISDB) à ##MS_SSISServerCleanupJobLogin##, à l’aide de la boîte de dialogue
Propriétés de la connexion dans SQL Server Management Studio.

7. Restaurez la clé principale à l'aide de l'une des méthodes suivantes. Pour plus
d’informations sur le chiffrement, consultez Hiérarchie de chiffrement.

Méthode 1

Utilisez cette méthode si vous avez déjà effectué une sauvegarde de la clé
principale de base de données et si vous disposez du mot de passe de
chiffrement de la clé principale.

Restore master key from file = 'c:\temp\RCTestInstKey'


Decryption by password = 'LS2Setup!' -- 'Password used to
encrypt the master key during SSISDB backup'
Encryption by password = 'LS3Setup!' -- 'New Password'
Force

7 Notes

Assurez-vous que le compte de service SQL Server dispose des


autorisations nécessaires pour lire le fichier de clé de sauvegarde.

7 Notes

Le message d’avertissement suivant s’affiche dans SQL Server


Management Studio si la clé principale de la base de données n’a pas
encore été chiffrée par la clé principale du service. Ignorez le message
d'avertissement.

Impossible de déchiffrer la clé principale active. Cette erreur a été


ignorée parce que l'option FORCE a été spécifiée.

L'argument FORCE spécifie que le processus de restauration doit


continuer même si la clé principale de base de données actuelle n'est
pas ouverte. Pour le catalogue SSISDB, comme la clé principale de la
base de données n’a pas été ouverte sur l’instance où est restaurée la
base de données, ce message s’affiche.

Méthode 2

Utilisez cette méthode si vous disposez du mot de passe d'origine utilisé


pour créer SSISDB.

open master key decryption by password = 'LS1Setup!' --'Password


used when creating SSISDB'
Alter Master Key Add encryption by Service Master Key

8. Déterminez si le schéma de catalogue SSISDB et les binaires Integration Services


(assembly SQLCLR et ISServerExec) sont compatibles en exécutant
catalog.check_schema_version.

9. Pour vérifier que la base de données SSISDB a été restaurée correctement,


effectuez des opérations sur le catalogue SSISDB, par exemple exécutez des
packages déployés sur le serveur Integration Services . Pour plus d’informations,
consultez la page Exécuter des packages Integration Services (SSIS).

Pour déplacer la base de données SSIS


Suivez les instructions pour déplacer les bases de données utilisateur. Pour plus
d’informations, consultez Déplacer des bases de données utilisateur.

Veillez à sauvegarder la clé principale de la base de données SSISDB et à protéger


le fichier de sauvegarde. Pour plus d’informations, consultez Pour sauvegarder la
base de données SSIS.

Vérifiez que les objets Integration Services (SSIS) appropriés sont créés dans la
nouvelle instance SQL Server où le catalogue SSISDB n’a pas encore été créé.
Mettre à niveau le catalogue SSIS (SSISDB)
Exécutez l’Assistant Mise à niveau de SSISDB pour mettre à niveau la base de données
du catalogue SSIS, SSISDB, quand celle-ci est plus ancienne que la version actuelle de
l’instance SQL Server. La base de données peut être plus ancienne quand l’une des
conditions suivantes est remplie.

Vous avez restauré la base de données à partir d’une ancienne version de SQL
Server.

Vous n’avez pas supprimé la base de données d’un groupe de disponibilité Always
On avant la mise à niveau de l’instance SQL Server. Cette condition empêche la
mise à niveau automatique de la base de données. Pour plus d’informations,
consultez Upgrading SSISDB in an availability group.

L’assistant peut uniquement mettre à niveau la base de données sur une instance de
serveur local.

Mettre à niveau le catalogue SSIS (SSISDB) en exécutant


l’Assistant Mise à niveau de SSISDB
1. Sauvegardez la base de données de catalogues SSIS, SSISDB.

2. Dans SQL Server Management Studio, développez le serveur local puis développez
Catalogues Integration Services.

3. Cliquez avec le bouton droit sur SSISDB, puis sélectionnez Mise à niveau de base
de données pour lancer l’Assistant Mise à niveau de SSISDB. Vous pouvez aussi
lancer l’Assistant Mise à niveau de SSISDB en exécutant C:\Program
Files\Microsoft SQL Server\140\DTS\Binn\ISDBUpgradeWizard.exe avec des

autorisations élevées sur le serveur local.


4. Sur la page Sélectionner une instance , sélectionnez une instance de SQL Server
sur le serveur local.

) Important

L’assistant peut uniquement mettre à niveau la base de données sur une


instance de serveur local.

Sélectionnez la case à cocher pour indiquer que vous avez sauvegardé la base de
données SSISDB avant d’exécuter l’assistant.
5. Sélectionnez Mettre à niveau pour mettre à niveau la base de données du
catalogue SSIS.

6. Sur la page Résultat , passez en revue les résultats.


Always On pour le catalogue SSIS (SSISDB)
La fonctionnalité des groupes de disponibilité AlwaysOn est une solution de haute
disponibilité et de récupération d’urgence qui offre une alternative au niveau de
l’entreprise à la mise en miroir de bases de données. Un groupe de disponibilité prend
en charge un environnement de basculement pour un ensemble discret de bases de
données utilisateur, appelées bases de données de disponibilité, qui basculent de
concert. Pour plus d’informations, consultez Groupes de disponibilité AlwaysOn.

Pour assurer la haute disponibilité du catalogue SSIS (base de données SSISDB) et de


son contenu (projets, packages, journaux d’exécution, etc.), vous pouvez ajouter la base
de données SSISDB (de la même façon que toute autre base de données utilisateur) à
un groupe de disponibilité AlwaysOn. Quand un basculement se produit, le nœud
secondaire devient automatiquement le nouveau nœud primaire.

) Important
Quand un basculement se produit, les packages en cours d’exécution ne
redémarrent pas ou ne reprennent pas.

Dans cette section :

1. Composants requis

2. Configurer la prise en charge de SSIS pour AlwaysOn

3. Mise à niveau de la base de données SSISDB dans un groupe de disponibilité

Prérequis
Avant d’activer la prise en charge d’Always On pour la base de données SSISDB,
effectuez les étapes suivantes.

1. Configurez un cluster de basculement Windows. Pour obtenir des instructions, voir


le billet de blog Installing the Failover Cluster Feature and Tools for Windows
Server 2012 (Installation de la fonctionnalité de cluster de basculement et des
outils pour Windows Server 2012). Installez la fonctionnalité et les outils sur tous
les nœuds de cluster.

2. Installez SQL Server 2016 avec la fonctionnalité Integration Services (SSIS) sur
chaque nœud du cluster.

3. Activez les groupes de disponibilité Always On pour chaque instance SQL Server.
Pour plus d’informations, consultez Activer et désactiver les groupes de
disponibilité AlwaysOn (SQL Server) .

Configurer la prise en charge de SSIS pour AlwaysOn


Étape 1 : Créer un catalogue Integration Services

Étape 2 : Ajouter la base de données SSISDB à un groupe de disponibilité Always


On

Étape 3 : Activer la prise en charge de SSIS pour Always On

) Important

Vous devez exécuter les étapes suivantes sur le nœud primaire du groupe de
disponibilité.
Vous devez activer la prise en charge d’Always On par SSISaprès avoir ajouté
la base de données SSISDB à un groupe de disponibilité Always On.

Étape 1 : créer un catalogue Integration Services


1. Lancez SQL Server Management Studio , puis connectez-vous à une instance SQL
Server dans le cluster que vous voulez définir comme nœud primaire du groupe
de disponibilité AlwaysOn pour la base de données SSISDB.

2. Dans l’Explorateur d’objets, développez le nœud du serveur, cliquez avec le bouton


droit sur le nœud Catalogues Integration Services , puis cliquez sur Créer un
catalogue.

3. Cliquez sur Activer l'intégration du CLR. Le catalogue utilise des procédures


stockées du CLR.

4. Cliquez sur Activer l’exécution automatique des procédures stockées Integration


Services au démarrage de SQL Server pour permettre à la procédure stockée
catalog.startup de s’exécuter à chaque redémarrage de l’instance de serveur SSIS .
La procédure stockée effectue la maintenance de l'état des opérations pour le
catalogue SSISDB. Elle résout l’état de tous les packages en cours d’exécution si et
quand l’instance de serveur SSIS s’arrête.

5. Entrez un mot de passe, puis cliquez sur OK. Le mot de passe protège la clé
principale de la base de données utilisée pour le chiffrement des données du
catalogue. Enregistrez le mot de passe dans un emplacement sécurisé. Il est
également recommandé de sauvegarder la clé principale de base de données. Pour
plus d'informations, consultez Back Up a Database Master Key.

Étape 2 : ajouter la base de données SSISDB à un groupe de


disponibilité AlwaysOn
La procédure à suivre pour ajouter la base de données SSISDB à un groupe de
disponibilité AlwaysOn est presque identique à celle qui permet d’ajouter n’importe
quelle autre base de données utilisateur à un groupe de disponibilité. Voir Utiliser
l’Assistant groupe de disponibilité.

Indiquez le mot de passe que vous avez spécifié durant la création du catalogue SSIS sur
la page Sélectionner les bases de données de l’Assistant Nouveau groupe de
disponibilité.
Étape 3 : activer la prise en charge de SSIS pour AlwaysOn
Après avoir créé le catalogue de services d’intégration, cliquez avec le bouton droit sur
le nœud Catalogues de services d’intégration, puis cliquez sur Activer la prise en
charge d’Always On. Vous devez voir la boîte de dialogue Activer la prise en charge
d’Always On suivante. Si cette option de menu est désactivée, vérifiez que vous disposez
de tous les composants requis, puis cliquez sur Actualiser.
2 Avertissement

Le basculement automatique de la base de données SSISDB n’est pas pris en


charge tant que vous n’activez pas la prise en charge de SSIS pour AlwaysOn.

Les réplicas secondaires récemment ajoutés à partir du groupe de disponibilité Always


On apparaissent dans le tableau. Cliquez sur le bouton de connexion pour chaque
réplica figurant dans la liste, puis entrez les informations d’identification
d’authentification pour la connexion au réplica. Le compte d’utilisateur doit être
membre du groupe sysadmin sur chaque réplica pour pouvoir activer la prise en charge
d’Always On par SSIS. Une fois connecté à chaque réplica, cliquez sur OK pour activer la
prise en charge de SSIS pour AlwaysOn.

Si l’option Activer la prise en charge d’Always On du menu contextuel semble


désactivée une fois que vous avez rempli les autres prérequis, essayez d’effectuer les
actions suivantes :

1. Actualisez le menu contextuel en cliquant sur l’option Actualiser.


2. Vérifiez que vous vous connectez au nœud principal. Vous devez activer la prise en
charge d’Always On sur le nœud principal.
3. Vérifiez que la version de SQL Server est au moins égale à 13.0. SSIS prend en
charge Always On uniquement sur SQL Server 2016 et les versions ultérieures.
Mise à niveau de la base de données SSISDB dans un
groupe de disponibilité
Si vous mettez à niveau SQL Server à partir d’une version précédente et si la base de
données SSISDB se trouve dans un groupe de disponibilité AlwaysOn, la mise à niveau
peut être bloquée par la règle « Vérification : SSISDB est dans des groupes de
disponibilité AlwaysOn ». Ce blocage se produit parce que la mise à niveau s’exécute en
mode mono-utilisateur, alors qu’une base de données de disponibilité doit être une
base de données multi-utilisateurs. Par conséquent, durant une mise à niveau ou une
mise à jour corrective, toutes les bases de données de disponibilité, y compris la base de
données SSISDB, sont mises hors connexion, et ne sont pas mises à niveau ou corrigées.
Pour permettre la poursuite de la mise à niveau, supprimez la base de données SSISDB
du groupe de disponibilité, mettez à niveau ou corrigez chaque nœud, puis rajoutez la
base de données SSISDB au groupe de disponibilité.

Si la règle « Vérification : SSISDB dans un groupe de disponibilité Always On » vous


bloque, mettez à niveau SQL Server en effectuant les étapes suivantes.

1. Supprimez la base de données SSISDB du groupe de disponibilité. Pour plus


d’informations, consultez Supprimer une base de données secondaire d’un groupe
de disponibilité (SQL Server) et Supprimer une base de données primaire d’un
groupe de disponibilité (SQL Server).

2. Cliquez sur Réexécuter dans l’Assistant Mise à niveau. La règle « Vérification :


SSISDB dans un groupe de disponibilité Always On » ne bloque plus.

3. Cliquez sur Suivant pour continuer la mise à niveau.

4. Une fois tous les nœuds mis à niveau, ajoutez la base de données SSISDB au
groupe de disponibilité AlwaysOn. Pour plus d’informations, consultez Ajouter une
base de données à un groupe de disponibilité (SQL Server).

Si rien ne vous bloque pendant la mise à niveau de SQL Server et que la base de
données SSISDB se trouve dans un groupe de disponibilité Always On, mettez à niveau
la base de données SSISDB séparément après avoir mis à niveau le moteur de base de
données SQL Server. Utilisez l’Assistant Mise à niveau de SSIS pour mettre à niveau la
base de données SSISDB comme décrit dans la procédure suivante.

1. Déplacez la base de données SSISDB hors du groupe de disponibilité, ou


supprimez le groupe de disponibilité si la base de données SSISDB est la seule
base de données figurant dans le groupe de disponibilité. Pour effectuer cette
tâche, lancez SQL Server Management Studio sur le nœud principal du groupe de
disponibilité.
2. Supprimez la base de données SSISDB de tous les nœuds de réplica.

3. Mettez à niveau la base de données SSISDB sur le nœud primaire.


Dansl’Explorateur d’objets de SQL Server Management Studio, développez
Catalogues Integration Services, cliquez avec le bouton droit sur SSISDB, puis
sélectionnez Mise à niveau de la base de données. Suivez les instructions de l’
Assistant Mise à niveau de SSISDB pour mettre à niveau la base de données.
Lancez l’Assistant Mise à niveau de SSIDB localement sur le nœud principal.

4. Suivez les instructions de l’étape 2 : Ajouter la base de données SSISDB à un


groupe de disponibilité Always On pour rajouter la base de données SSISDB à un
groupe de disponibilité.

5. Suivez les instructions de l’étape 3 : Activer la prise en charge de SSIS pour Always
On.

Catalogue et délégation SSISDB dans les


scénarios à double tronçon
Par défaut, l’appel à distance des packages SSIS stockés dans le catalogue SSISDB ne
prend pas en charge la délégation des informations d’identification, parfois appelée
double tronçon.

Imaginez un scénario dans lequel un utilisateur se connecte à la machine cliente A et


lance SQL Server Management Studio (SSMS). À partir de SSMS, l’utilisateur se connecte
à un serveur SQL Server hébergé sur la machine B, qui a le catalogue SSISDB. Le
package SSIS est stocké sous ce catalogue SSISDB et le package se connecte à son tour
à un service SQL Server qui s’exécute sur la machine C (le package peut également
accéder à d’autres services). Quand l’utilisateur appelle l’exécution du package SSIS à
partir de la machine A, SSMS passe d’abord les informations d’identification de
l’utilisateur de la machine A à la machine B (où le processus de runtime SSIS exécute le
package). Le processus de runtime d’exécution SSIS (ISServerExec.exe) est maintenant
nécessaire pour déléguer les informations d’identification de l’utilisateur de la machine B
à la machine C pour que l’exécution s’effectue correctement. Cependant, la délégation
des informations d’identification n’est pas activée par défaut.

Un utilisateur peut activer la délégation des informations d’identification en octroyant le


droit Approuver cet utilisateur pour la délégation à tous les services (Kerberos
uniquement) au compte de service SQL Server (sur la machine B), qui lance
ISServerExec.exe en tant que processus enfant. Ce processus est appelé « configuration
d’une délégation non contrainte » ou « délégation ouverte » pour un compte de service
SQL Server. Avant d’octroyer ce droit, demandez-vous s’il est conforme aux exigences
de sécurité de votre organisation.

SSISDB ne prend pas en charge la délégation contrainte. Dans un environnement à


double tronçon, si le compte de service du serveur SQL Server qui héberge le catalogue
SSISDB (la machine B dans notre exemple) est configuré pour la délégation contrainte,
ISServerExec.exe ne peut pas déléguer les informations d’identification à la troisième
machine (la machine C). Ceci s’applique aux scénarios dans lesquels Windows Credential
Guard est activé, qui nécessite impérativement la configuration de la délégation
contrainte.

Contenu associé
Entrée de blog, SSIS and PowerShell in SQL Server 2012 , sur blogs.msdn.com.

Entrée de blog Conseils pour le contrôle d'accès du catalogue SSIS , sur


blogs.msdn.com.

Entrée de blog, A Glimpse of the SSIS Catalog Managed Object Model , sur
blogs.msdn.com.
Afficher la liste des packages sur le
serveur Integration Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous pouvez afficher la liste des packages stockés sur le serveur Integration Services de
deux façons :

Accès Transact-SQL
Pour afficher la liste des packages stockés sur le serveur, interrogez l’affichage
catalog.packages (base de données SSISDB).

Dans SQL Server Management Studio


Pour afficher les packages stockés sur le serveur à l’aide de l’Explorateur d’objets dans
SQL Server Management Studio, procédez comme indiqué ci-dessous.

Pour afficher les packages à l'aide de SQL Server


Management Studio
1. Dans SQL Server Management Studio, connectez-vous au serveur Integration
Services . Autrement dit, connectez-vous à l'instance du Moteur de base de
données SQL Server qui héberge la base de données Integration Services .

2. Dans l'Explorateur d'objets, développez l'arborescence pour afficher le nœud


Integration Services Catalogues .

3. Développez le nœud Catalogues Integration Services pour afficher le nœud


SSISDB .

4. Développez le nœud SSISDB pour afficher une liste d'un ou de plusieurs dossiers.
Chaque dossier contient un ou plusieurs projets dans le dossier Projets et chaque
projet contient un ou plusieurs packages dans le dossier Packages .
Référence de Transact-SQL catalogue
Integration Services (SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vues (catalogue Integration Services)

Procédures stockées (catalogue Integration Services)

Fonctions [Catalogue Integration Services]


Parcourir tous les principaux, boîte de
dialogue
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Parcourir tous les principaux pour sélectionner un principal
de base de données et modifier les autorisations du principal sur le projet sélectionné
ou sur tous les projets contenus dans un dossier sélectionné.

Que voulez-vous faire ?

Ouvrir la boîte de dialogue Parcourir tous les principaux

Configurer les options

Ouvrir la boîte de dialogue Parcourir tous les


principaux
1. Dans SQL Server Management Studio, connectez-vous au serveur Integration
Services .

Vous vous connectez à l’instance du Moteur de base de données SQL Server qui
héberge le catalogue SSISDB.

2. Dans l'Explorateur d'objets, développez l'arborescence pour afficher le nœud


Integration Services Catalogues .

3. Développez le nœud SSISDB .

4. Pour changer les autorisations du principal sur tous les projets contenus dans un
dossier sélectionné, cliquez avec le bouton droit sur le dossier, puis cliquez sur
Propriétés.

Pour changer les autorisations du principal sur un projet sélectionné, développez le


dossier qui contient le projet, cliquez avec le bouton droit sur le projet, puis cliquez
sur Propriétés.

5. Sélectionnez la page Autorisations , puis cliquez sur Parcourir.

Configurer les options


Cette page affiche les principaux de la vue catalogue, sys.database_principals, de la base
de données SSISDB.

La sélection de principaux les ajoute à la liste Connexions ou rôles dans la page


Autorisations de la boîte de dialogue parent lorsque vous cliquez sur OK et fermez la
boîte de dialogue Parcourir tous les principaux . Après avoir ajouté des principaux à la
liste Connexions ou rôles , vous pouvez modifier leurs autorisations sur le projet
sélectionné.

Sélection de colonne
Sélectionnez cette option pour ajouter le principal à la liste Connexions ou rôles dans la
page Autorisations de la boîte de dialogue parent.

Colonne Icône
Icône qui correspond au Type du principal.

Nom
Nom du principal.

Type
Type du principal. Les types courants sont :

Utilisateur SQL

Utilisateur Windows

Rôle de base de données


Boîte de dialogue Configurer
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Configurer pour configurer les paramètres, les


gestionnaires de connexions, ainsi que les références aux environnements, pour les
packages et les projets.

Que voulez-vous faire ?

Ouvrir la boîte de dialogue Configurer

Définir les options de la page Paramètres

Définir les options de la page Références

Ouvrir la boîte de dialogue Configurer


1. Dans SQL Server Management Studio, connectez-vous au serveur Integration
Services .

Vous vous connectez à l’instance du Moteur de base de données SQL Server qui
héberge la base de données SSISDB.

2. Dans l'Explorateur d'objets, développez l'arborescence pour afficher le nœud


Integration Services Catalogues .

3. Développez le nœud SSISDB .

4. Développez le dossier qui contient le package ou le projet à configurer.

5. Cliquez avec le bouton droit sur le package ou le projet, puis cliquez sur
Configurer.

Définir les options de la page Paramètres


Utilisez la page Paramètres pour afficher les noms et valeurs des paramètres, ainsi que
pour modifier ces valeurs.

Sélectionnez l’étendue des paramètres affichés sous les onglets Paramètres et


Gestionnaires de connexions , dans la liste déroulante Étendue .
Vous trouverez ci-dessous la liste des options de l'onglet Paramètres .

Conteneur
Indique l'objet qui contient le paramètre.

Nom
Indique le nom du paramètre.

Valeur
Indique la valeur du paramètre. Cliquez sur le bouton de sélection pour modifier la
valeur dans la boîte de dialogue Définir la valeur du paramètre .

Vous trouverez ci-dessous la liste des options de l'onglet Gestionnaires de connexions .


Utilisez cet onglet pour modifier les valeurs des propriétés du Gestionnaire de
connexions. Les paramètres sont automatiquement générés sur le serveur SSIS pour les
propriétés.

Conteneur
Indique l'objet qui contient le gestionnaire de connexions.

Nom
Indique le nom du gestionnaire de connexions.

Nom de la propriété
Indique le nom de la propriété du gestionnaire de connexions.

Valeur
Indique la valeur affectée à la propriété du gestionnaire de connexions. Cliquez sur le
bouton de sélection pour modifier la valeur dans la boîte de dialogue Définir la valeur
du paramètre . Vous pouvez entrer une valeur littérale, mapper une variable
d'environnement qui contient la valeur à utiliser, ou utiliser la valeur par défaut du
package.

Définir les options de la page Références


Utilisez la page Références pour ajouter et supprimer des références aux
environnements, ainsi que pour accéder aux propriétés des environnements.

Un environnement spécifie des valeurs d’exécution des packages contenus dans les
projets que vous avez déployés sur le serveur Integration Services.

Environment
Indique l'environnement.
Dossier d'environnement
Indique le dossier qui contient l'environnement.

Ouvrir
Cliquez pour ouvrir la boîte de dialogue Propriétés d’environnement .

Ajouter
Cliquez pour ajouter une référence à un environnement. Dans la boîte de dialogue
Parcourir les environnements , cliquez sur un environnement, puis cliquez sur OK.

Vous pouvez sélectionner un environnement contenu dans n'importe quel dossier de


projet sous le nœud SSISDB .

Remove
Cliquez sur un environnement répertorié dans la zone Références , puis sur Supprimer.
Propriétés du dossier, boîte de dialogue
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un dossier contient des projets et des environnements dans le catalogue SSISDB .


Chaque dossier définit des autorisations qui s'appliquent au contenu du dossier. Pour
plus d’informations sur les autorisations Integration Services, consultez
catalog.grant_permission (SSISDB Database).

Pour définir la description et les autorisations


d'un dossier
1. Cliquez avec le bouton droit sur le dossier et sélectionnez Propriétés.

2. Dans la page Général , sélectionnez Description sous Général , puis entrez une
description facultative.

3. Dans la page Autorisations , cliquez sur Parcourir, sélectionnez un ou plusieurs


principaux de base de données, puis cliquez sur OK.

4. Sélectionnez un nom sous Connexions ou rôles et spécifiez les autorisations


appropriées sous Autorisations.

5. Cliquez sur OK pour accepter les modifications et fermer la boîte de dialogue


Propriétés du dossier .

Voir aussi
Serveur Integration Services (SSIS)
catalog.grant_permission (base de données SSISDB)
Propriétés du package, boîte de
dialogue
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Propriétés du package pour visualiser les propriétés des
packages stockés sur le serveur Integration Services.

Pour plus d’informations, consultez Serveur Integration Services (SSIS).

Que voulez-vous faire ?

Ouvrir la boîte de dialogue Propriétés du package

Configurer les options

Ouvrir la boîte de dialogue Propriétés du


package
1. Dans SQL Server Management Studio, connectez-vous au serveur Integration
Services .

Vous vous connectez à l’instance du Moteur de base de données SQL Server qui
héberge la base de données SSISDB.

2. Dans l'Explorateur d'objets, développez l'arborescence pour afficher le nœud


Integration Services Catalogues .

3. Développez le nœud SSISDB .

4. Développez le dossier qui contient le package dont vous souhaitez afficher les
propriétés.

5. Cliquez avec le bouton droit sur le package, puis sélectionnez Propriétés.

Configurer les options


Utilisez la page Général pour afficher les propriétés du package sélectionné.

Toutes les propriétés affichées dans la page Général sont en lecture seule.
Nom
Affiche le nom du package.

Identificateur
Indique l'ID du package.

Point d’entrée
La valeur True indique que le package est démarré directement. La valeur False indique
que le package est démarré par un autre package via la tâche d'exécution du package.
La valeur par défaut est True.

Vous définissez cette propriété dans SQL Server Data Tools (SSDT) pour les packages
parents et enfants en cliquant avec le bouton droit sur le package dans l’Explorateur de
solutions, puis en cliquant sur Package de point d’entrée.

Description
Affiche la description facultative du package.
Propriétés du projet, boîte de dialogue
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un projet Integration Services est une unité de déploiement. Chaque projet peut
contenir des packages, des paramètres et des références d'environnement. Un projet est
un objet sécurisable et peut définir des autorisations pour les principaux de base de
données. Quand un projet est redéployé, la version précédente du projet peut être
stockée dans le catalogue Integration Services.

Les paramètres du projet et les paramètres du package peuvent être utilisés pour
affecter des valeurs aux propriétés dans des packages au moment de l'exécution.
Certains paramètres requièrent des valeurs avant que le package puisse être exécuté.
Les valeurs de paramètre qui référencent des variables d'environnement requièrent que
le projet utilise la référence d'environnement correspondante avant l'exécution.

Que voulez-vous faire ?

Ouvrir la boîte de dialogue Propriétés du projet

Définir les options sur la page Général

Définir les options sur la page Autorisations

Ouvrir la boîte de dialogue Propriétés du projet


1. Dans SQL Server Management Studio, connectez-vous au serveur Integration
Services .

Vous vous connectez à l’instance du Moteur de base de données SQL Server qui
héberge la base de données SSISDB.

2. Dans l'Explorateur d'objets, développez l'arborescence pour afficher le nœud


Integration Services Catalogues .

3. Développez le nœud SSISDB .

4. Développez le dossier qui contient le projet dont vous souhaitez définir les
propriétés.

5. Cliquez avec le bouton droit sur le projet, puis cliquez sur Propriétés.
Définir les options sur la page Général
Utilisez la page Général pour afficher les propriétés du projet.

Nom
Indique le nom du projet.

Identificateur
Indique l'ID de projet.

Description
Affiche la description facultative du projet.

Version du projet
Indique la version du projet.

Date du déploiement
Indique la date et l'heure auxquelles le projet a été déployé ou redéployé.

Définir les options sur la page Autorisations


Utilisez la page Autorisations pour afficher et définir les autorisations explicites du
projet.

Parcourir
Cliquez sur Parcourir pour sélectionner les utilisateurs et les rôles auxquels vous
souhaitez affecter des autorisations à l’aide de la boîte de dialogue Parcourir tous les
principaux .

Nom
Indique le nom de l'utilisateur ou du rôle.

Type
Indique le type d'utilisateur ou de rôle.

Permission
Indique les autorisations.

Fournisseur d'autorisations
Indique l'utilisateur ou le rôle qui accorde l'autorisation.

Octroyer
Si Accorder est sélectionné, l’autorisation est accordée à l’utilisateur ou au rôle
sélectionné.
Deny
Si Refuser est sélectionné, l’autorisation est refusée à l’utilisateur ou au rôle sélectionné.
Boîte de dialogue de versions du projet
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Versions du projet pour afficher les versions d'un projet et
pour restaurer une version précédente.

Vous pouvez également afficher les versions antérieures dans la vue


catalog.object_versions (base de données SSISDB) et utiliser la procédure stockée
catalog.restore_project (base de données SSISDB) pour les restaurer.

Que voulez-vous faire ?

Ouvrir la boîte de dialogue Versions du projet

Restaurer une version de projet

Ouvrir la boîte de dialogue Versions du projet


1. Dans SQL Server Management Studio, connectez-vous au serveur Integration
Services .

Autrement dit, connectez-vous à l'instance du Moteur de base de données SQL


Server qui héberge la base de données Integration Services .

2. Dans l'Explorateur d'objets, développez l'arborescence pour afficher le nœud


Integration Services Catalogues .

3. Développez le nœud Catalogues Integration Services pour afficher le nœud


SSISDB .

4. Le nœud SSISDB contient un ou plusieurs dossiers, qui contiennent chacun un ou


plusieurs projets. Développez le dossier qui contient le projet qui vous intéresse.

5. Cliquez avec le bouton droit sur le projet, puis cliquez sur Versions.

Dans la boîte de dialogue Versions du projet , le tableau Versions affiche la liste des
versions de projet déployées sur le serveur, avec la date et l’heure de déploiement de la
version, la date et l’heure de restauration de la version (si elle a été restaurée), la
description de la version et un identificateur de version. La version active est indiquée
par une coche dans la colonne En cours du tableau.
Restaurer une version de projet
Pour restaurer une version antérieure d'un projet, sélectionnez la version dans le tableau
Versions , puis cliquez sur Restaurer la version sélectionnée. Le projet est restauré à la
version sélectionnée et cette dernière est indiquée par une coche dans la colonne En
cours du tableau Versions .
Boîte de dialogue Définir la valeur du
paramètre
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Définir la valeur du paramètre pour définir les valeurs des
paramètres et les propriétés des gestionnaires de connexions, pour les projets et
packages.

Que voulez-vous faire ?

Ouvrir la boîte de dialogue Définir la valeur du paramètre

Configurer les options

Ouvrir la boîte de dialogue Définir la valeur du


paramètre
1. Dans SQL Server Management Studio, connectez-vous au serveur Integration
Services .

Vous vous connectez à l’instance du Moteur de base de données SQL Server qui
héberge la base de données SSISDB.

2. Dans l'Explorateur d'objets, développez l'arborescence pour afficher le nœud


Integration Services Catalogues .

3. Développez le nœud SSISDB .

4. Cliquez avec le bouton droit sur un package ou un projet, cliquez sur Configurer,
puis cliquez sur le bouton de sélection sous l’onglet Paramètres ou l’onglet
Gestionnaires de connexions .

Configurer les options


Paramètre
Indique le nom du paramètre.

Type
Indique le type de données de la valeur de paramètre.
Description
Affiche une description facultative du paramètre.

Modifier la valeur
Sélectionnez cette option pour modifier la valeur du paramètre.

Utiliser la valeur par défaut du package


Sélectionnez cette option afin d'utiliser le paramètre par défaut stocké dans le package.

Utiliser la variable d'environnement


Sélectionnez cette option pour utiliser une valeur de variable stockée dans
l'environnement, qui est référencé par le projet ou le package. Pour ajouter une
référence d'environnement à un projet ou package, utilisez la boîte de dialogue
Configurer . Pour plus d'informations, consultez Configure Dialog Box.
Boîte de dialogue Valider
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Utilisez la boîte de dialogue Valider pour examiner les problèmes usuels d'un projet ou
package Integration Services .

En cas de problème, un message s'affiche en haut de la boîte de dialogue. Sinon, le


terme Prêt s'affiche en haut.

Que voulez-vous faire ?

Ouvrir la boîte de dialogue Valider

Définir les options sur la page Général

Ouvrir la boîte de dialogue Valider


1. Dans SQL Server Management Studio, connectez-vous au serveur Integration
Services .

Vous vous connectez à l’instance du Moteur de base de données SQL Server qui
héberge la base de données SSISDB.

2. Dans l'Explorateur d'objets, développez l'arborescence pour afficher le nœud


Integration Services Catalogues .

3. Développez le nœud SSISDB .

4. Développez le dossier qui contient le projet ou package à valider.

5. Cliquez avec le bouton droit sur le projet ou le package, puis cliquez sur Valider.

Définir les options sur la page Général


Environment
Sélectionnez l'environnement à utiliser pour valider le projet ou le package.

Runtime 32 bits
Sélectionnez cette option afin d'utiliser un runtime 32 bits pour exécuter un package.
L'onglet Paramètres indique les valeurs de paramètres que vous utilisez pour valider le
projet ou le package. Voici les options de l'onglet Paramètres.

Conteneur
Indique l'objet qui contient le paramètre.

Paramètre
Indique le nom des paramètres.

Valeur
Indique la valeur du paramètre.

L'onglet Gestionnaires de connexions indique les valeurs de propriétés du gestionnaire


de connexions que vous utilisez pour valider le projet ou le package.

Voici les options de l'onglet Gestionnaires de connexions .

Conteneur
Indique l'objet qui contient le gestionnaire de connexions.

Nom
Indique le nom du gestionnaire de connexions.

Nom de la propriété
Indique le nom de la propriété du gestionnaire de connexions.

Valeur
Indique la valeur affectée à la propriété du gestionnaire de connexions.
Service Integration Services (Service
SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les rubriques de cette section décrivent le service Integration Services , un service


Windows de gestion des packages Integration Services . Ce service n'est pas obligatoire
pour créer, enregistrer et exécuter des packages Integration Services. SQL Server 2012
(11.x) prend en charge le service Integration Services pour la compatibilité avec les
versions antérieures de Integration Services.

À compter de SQL Server 2012 (11.x), Integration Services stocke des objets, des
paramètres et des données opérationnelles dans la base de données SSISDB pour les
projets que vous avez déployés sur le serveur Integration Services à l’aide du modèle de
déploiement de projet. Le serveur Integration Services , qui est une instance du moteur
de base de données SQL Server , héberge la base de données. Pour plus d’informations
sur la base de données, consultez Catalogue SSIS. Pour plus d’informations sur le
déploiement de projets sur le serveur Integration Services, consultez Déployer des
projets et des packages Integration Services (SSIS).

Fonctionnalités de gestion
Le service Integration Services est un service Windows pour la gestion des packages
Integration Services . Le service Integration Services n'est disponible que dans SQL
Server Management Studio.

L’exécution du service Integration Services offre les fonctionnalités de gestion suivantes :

Démarrage des packages stockés localement et à distance

Arrêt des packages exécutés localement et à distance

Surveillance des packages exécutés localement et à distance

Importation et exportation de packages

Gestion du stockage des packages

Personnalisation des dossiers de stockage

Arrêt des packages exécutés si le service est arrêté


Affichage du journal des événements Windows

Connexion à plusieurs serveurs Integration Services

Type de démarrage
Le service Integration Services est installé quand vous installez le composant Integration
Services de SQL Server. Par défaut, le service Integration Services est démarré et le type
de démarrage du service est défini comme étant automatique. Le service doit être en
cours d'exécution pour surveiller les packages stockés dans le magasin de packages SSIS
. Le magasin de packages SSIS peut aussi bien être la base de données msdb dans une
instance de SQL Server que les dossiers désignés dans le système de fichiers.

Le service Integration Services n’est pas nécessaire si vous souhaitez seulement


concevoir et exécuter des packages Integration Services . Cependant, le service est
nécessaire pour répertorier et surveiller les packages à l’aide de SQL Server
Management Studio.

Gérer le service
Lorsque vous installez le composant Integration Services de SQL Server, le service
Integration Services est également installé. Par défaut, le service Integration Services est
démarré et le type de démarrage du service est défini comme étant automatique.
Toutefois, vous devez également installer SQL Server Management Studio pour utiliser le
service afin de gérer les packages Integration Services stockés et en cours d'exécution.

7 Notes

Pour vous connecter directement à une instance du service Integration Services


existant, vous devez utiliser la version de SQL Server Management Studio (SSMS)
correspondant à la version de SQL Server sur lequel s’exécute le service Integration
Services. Par exemple, pour vous connecter au service Integration Services existant
s’exécutant sur une instance de SQL Server 2016, vous devez utiliser la version de
SSMS publiée pour SQL Server 2016. Téléchargez SQL Server Management Studio
(SSMS).

Dans la boîte de dialogue Se connecter au serveur de SSMS, vous ne pouvez pas


entrer le nom d’un serveur sur lequel une version antérieure du service Integration
Services s’exécute. Toutefois, pour gérer des packages stockés sur un serveur
distant, vous ne devez pas vous connecter à l’instance du service Integration
Services sur ce serveur distant. Au lieu de cela, modifiez le fichier de configuration
du service Integration Services afin que SQL Server Management Studio affiche les
packages stockés sur le serveur distant.

Vous ne pouvez installer qu'une seule instance du service Integration Services sur un
ordinateur. Le service n'est pas spécifique à une instance particulière du Moteur de base
de données. Vous vous connectez au service en utilisant le nom de l'ordinateur sur
lequel il s'exécute.

Vous pouvez gérer le service Integration Services à l’aide de l’un des composants
logiciels enfichables MMC (Microsoft Management Console) suivants : Gestionnaire de
configuration SQL Server ou Services. Avant de pouvoir gérer des packages dans SQL
Server Management Studio, vous devez vérifier que le service a démarré.

Par défaut, le service Integration Services est configuré pour gérer les packages dans la
base de données msdb de l’instance du Moteur de base de données qui est installée au
même moment que Integration Services. Si une instance du Moteur de base de données
n’est pas installée au même moment, le service Integration Services est configuré pour
gérer les packages dans la base de données msdb de l’instance locale par défaut du
Moteur de base de données. Pour gérer des packages stockés dans une instance
nommée ou une instance distante du Moteur de base de donnéesou dans plusieurs
instances du Moteur de base de données, vous devez modifier le fichier de
configuration du service.

Par défaut, le service Integration Services est configuré pour arrêter l'exécution des
packages à l'arrêt du service. Toutefois, le service Integration Services n'attend pas l'arrêt
des packages et certains packages peuvent continuer à être exécutés après l'arrêt du
service Integration Services .

Si le service Integration Services est arrêté, vous pouvez continuer à exécuter des
packages par le biais de l’Assistant Importation et Exportation de SQL Server , du
concepteur SSIS , de l’utilitaire d’exécution de package et de l’utilitaire d’invite de
commandes dtexec (dtexec.exe). Vous ne pouvez cependant pas surveiller les packages
en cours d'exécution.

Par défaut, le service Integration Services s'exécute dans le contexte du compte SERVICE
RESEAU. Il est recommandé d’exécuter le service SQL Server Integration Services sous un
compte disposant d’autorisations limitées, comme le compte SERVICE RÉSEAU.
L’exécution du service SQL Server Integration Services sous un compte disposant de
privilèges élevés représente un risque potentiel de sécurité.

Le service Integration Services écrit dans le journal d'événements de Windows. Vous


pouvez afficher les événements du service dans SQL Server Management Studio. Vous
pouvez également consulter les événements du service à l'aide de l'Observateur
d'événements Windows.

Définir les propriétés du service


Le service Integration Services gère et surveille les packages dans SQL Server
Management Studio. Lors de l'installation initiale de SQL Server Integration Services, le
service Integration Services est démarré et le type de démarrage du service est un
démarrage automatique.

Après avoir installé le service Integration Services , vous pouvez définir les propriétés du
service en utilisant le composant logiciel enfichable Gestionnaire de configuration SQL
Server ou Services MMC.

Pour configurer d'autres fonctionnalités importantes du service, y compris les


emplacements auxquels il stocke et gère les packages, vous devez modifier le fichier de
configuration du service.

Pour définir les propriétés du service Integration Services


à l'aide du Gestionnaire de configuration SQL Server
1. Dans le menu Démarrer , pointez sur Tous les programmes, sur Microsoft SQL
Server, sur Outils de configuration, puis cliquez sur Gestionnaire de configuration
SQL Server.

2. Dans le composant logiciel enfichable Gestionnaire de configuration SQL Server ,


recherchez SQL Server Integration Services dans la liste des services, cliquez avec
le bouton droit sur SQL Server Integration Services, puis cliquez sur Propriétés.

3. Dans la boîte de dialogue Propriétés de SQL Server Integration Services , vous


pouvez effectuer les actions suivantes :

Cliquez sur l’onglet Ouvrir une session pour afficher les informations
d’ouverture de session, comme le nom du compte.

Cliquez sur l’onglet Service pour afficher les informations relatives au service,
comme le nom de l’ordinateur hôte, puis spécifiez le mode de démarrage du
service Integration Services .

7 Notes
L’onglet Avancé ne contient aucune information sur le service
Integration Services .

4. Cliquez sur OK.

5. Dans le menu Fichier , cliquez sur Quitter pour fermer le composant logiciel
enfichable Gestionnaire de configuration SQL Server .

Pour définir les propriétés du service Integration Services


à l’aide de Services
1. Dans le Panneau de configuration, si vous utilisez l’affichage classique, cliquez sur
Outils d’administration. Si vous utilisez l’affichage des catégories, cliquez sur
Performance et maintenance puis sur Outils d’administration.

2. Cliquez sur Services.

3. Dans le composant logiciel enfichable Services , recherchez SQL Server


Integration Services dans la liste des services, cliquez avec le bouton droit sur SQL
Server Integration Services, puis cliquez sur Propriétés.

4. Dans la boîte de dialogue Propriétés de SQL Server Integration Services , vous


pouvez effectuer les actions suivantes :

Cliquez sur l’onglet General (Général). Pour activer le service, sélectionnez le


type de démarrage manuel ou automatique. Pour désactiver le service,
sélectionnez Désactiver dans la zone Type de démarrage . Le fait de
sélectionner Désactiver n'arrête pas le service s'il est en cours d'exécution.

Si le service est déjà activé, vous pouvez cliquer sur Arrêter pour arrêter le
service ou sur Démarrer pour le démarrer.

Cliquez sur l’onglet Ouvrir une session pour afficher ou modifier les
informations d’ouverture de session.

Cliquez sur l’onglet Récupération pour afficher les réponses par défaut de
l’ordinateur à l’échec du service. Vous pouvez modifier ces options pour les
adapter à votre environnement.

Cliquez sur l’onglet Dépendances pour afficher la liste des services


dépendants. Le service Integration Services n’a pas de dépendances.

5. Cliquez sur OK.


6. Si le type de démarrage est manuel ou automatique, vous pouvez si vous le
souhaitez cliquer avec le bouton droit sur SQL Server Integration Services , puis
cliquer sur Démarrer, Arrêter ou Redémarrer.

7. Dans le menu Fichier , cliquez sur Quitter pour fermer le composant logiciel
enfichable Services .

Accorder des autorisations au service


Dans les versions précédentes de SQL Server, par défaut, lorsque vous installiez
SQL Server, tous les utilisateurs du groupe Utilisateurs dans Utilisateurs et groupes
locaux avaient accès au service Integration Services. Quand vous installez
SQL Server 2016 (13.x) ou des versions ultérieures, les utilisateurs n’ont pas accès au
service Integration Services. Ce service est sécurisé par défaut. Une fois SQL Server
installé, l'administrateur doit accorder l'accès au service.

Pour accorder l'accès au service Integration Services


1. Exécutez Dcomcnfg.exe. Dcomcnfg.exe fournit une interface utilisateur qui permet
de modifier certains paramètres du Registre.

2. Dans la boîte de dialogue Services de composants, développez le nœud Services


de composants > Ordinateurs > Poste de travail > Configuration DCOM.

3. Cliquez avec le bouton droit sur Microsoft SQL Server Integration Services 13.0,
puis cliquez sur Propriétés.

4. Sous l'onglet Sécurité , cliquez sur Modifier dans la zone Autorisations


d'exécution et d'activation .

5. Ajoutez des utilisateurs et affectez les autorisations appropriées, puis cliquez sur
OK.

6. Répétez les étapes 4 à 5 pour les autorisations d'accès.

7. Redémarrez SQL Server Management Studio.

8. Redémarrez le service Integration Services .

Événement journalisé en l’absence d’autorisations


Si le compte de service de l’agent SQL Server n’a pas le modèle DCOM (Distributed
Component Object Model) Integration Services [Autorisations de lancement et
d’activation], l’événement suivant est ajouté aux journaux des événements système
quand l’agent SQL Server exécute les travaux du package SSIS :

Log Name: System


Source: **Microsoft-Windows-DistributedCOM**
Date: 1/9/2019 5:42:13 PM
Event ID: **10016**
Task Category: None
Level: Error
Keywords: Classic
User: NT SERVICE\SQLSERVERAGENT
Computer: testmachine
Description:
The application-specific permission settings do not grant Local Activation
permission for the COM Server application with CLSID
{xxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
and APPID
{xxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
to the user NT SERVICE\SQLSERVERAGENT SID (S-1-5-80-344959196-2060754871-
2302487193-2804545603-1466107430) from address LocalHost (Using LRPC)
running in the application container Unavailable SID (Unavailable). This
security permission can be modified using the Component Services
administrative tool.

Configurer le service
Lorsque vous installez Integration Services, le processus d'installation crée et installe le
fichier de configuration pour le service Integration Services . Ce fichier de configuration
par défaut contient les paramètres suivants :

Les packages reçoivent une commande d'arrêt lorsque le service s'arrête.

Les dossiers racine à afficher pour Integration Services dans l'Explorateur d'objets
de SQL Server Management Studio sont les dossiers MSDB et File System.

Dans le système de fichiers géré par le service Integration Services, les packages se
trouvent à l’emplacement %ProgramFiles%\Microsoft SQL
Server\130\DTS\Packages.

Ce fichier de configuration spécifie également quelle base de données msdb contient


les packages que le service Integration Services gère. Par défaut, le service Integration
Services est configuré pour gérer les packages dans la base de données msdb de
l’instance du Moteur de base de données qui est installée au même moment que
Integration Services. Si une instance du Moteur de base de données n’est pas installée
au même moment, le service Integration Services est configuré pour gérer les packages
dans la base de données msdb de l’instance locale par défaut du Moteur de base de
données.

Exemple de fichier de configuration par défaut


L'exemple suivant présente un fichier de configuration par défaut qui spécifie les
paramètres suivants :

Arrêt des packages exécutés si le service Integration Services est arrêté.

Les dossiers racine pour le stockage de package dans Integration Services sont les
dossiers MSDB et File System.

Le service gère les packages qui sont stockés dans la base de données msdb de
l'instance locale par défaut de SQL Server.

Le service gère des packages qui sont stockés dans le système de fichiers du
dossier Packages.

Exemple de fichier de configuration par défaut

XML

\<?xml version="1.0" encoding="utf-8"?>


\<DtsServiceConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<StopExecutingPackagesOnShutdown>true</StopExecutingPackagesOnShutdown>
<TopLevelFolders>
\<Folder xsi:type="SqlServerFolder">
<Name>MSDB</Name>
<ServerName>.</ServerName>
</Folder>
\<Folder xsi:type="FileSystemFolder">
<Name>File System</Name>
<StorePath>..\Packages</StorePath>
</Folder>
</TopLevelFolders>
</DtsServiceConfiguration>

Modifiez le fichier de configuration


Vous pouvez modifier le fichier de configuration de manière à permettre aux packages
de poursuivre leur exécution en cas d'arrêt du service, à afficher des dossiers racine
supplémentaires dans l'Explorateur d'objets ou à spécifier un dossier différent ou des
dossiers supplémentaires dans le système de fichiers que doit gérer le service
Integration Services . Par exemple, vous pouvez créer des dossiers racines
supplémentaires de type, SqlServerFolder, pour gérer des packages dans les bases de
données msdb d’instances supplémentaires du Moteur de base de données.

7 Notes

Certains caractères ne sont pas valides dans les noms de dossiers. Les caractères
valides des noms de dossiers sont déterminés par la classe .NET
FrameworkSystem.IO.Path et le champ GetInvalidFilenameChars . Le champ
GetInvalidFilenameChars fournit un tableau de caractères propre à la plateforme,
qui ne peuvent pas être spécifiés dans des arguments de chaîne de chemin
transmis aux membres de la classe Path . Le jeu des caractères non valides peut
varier selon le système de fichiers. En général, les caractères non valides sont le
guillemet ("), le caractère « inférieur à » (<) et la barre verticale (|).

Cependant, pour gérer des packages stockés dans une instance nommée ou une
instance distante du Moteur de base de données, vous devez modifier le fichier de
configuration. Si vous ne mettez pas à jour le fichier de configuration, vous ne pouvez
pas utiliser l’Explorateur d’objets dans SQL Server Management Studio pour consulter
des packages stockés dans la base de données msdb sur l’instance nommée ou
l’instance distante. Si vous essayez d'utiliser l' Explorateur d'objets pour consulter ces
packages, le message d'erreur suivant apparaît :

Failed to retrieve data for this request. (Microsoft.SqlServer.SmoEnum)

The SQL Server specified in Integration Services service configuration is not

present or is not available. This might occur when there is no default instance of
SQL Server on the computer. For more information, see the topic "Configuring the

Integration Services Service" in SQL Server 2008 Books Online.

Login Timeout Expired

An error has occurred while establishing a connection to the server. When

connecting to SQL Server 2008, this failure may be caused by the fact that under
the default settings SQL Server does not allow remote connections.

Named Pipes Provider: Could not open a connection to SQL Server [2]. (MsDtsSvr).

Pour modifier le fichier de configuration pour le service Integration Services , utilisez un


éditeur de texte.

) Important
Après avoir modifié le fichier de configuration de service, vous devez redémarrer le
service afin d'utiliser la configuration de service mise à jour.

Exemple de fichier de configuration modifié


L'exemple suivant illustre un fichier de configuration modifié pour Integration Services.
Ce fichier concerne une instance nommée de SQL Server appelée InstanceName , située
sur un serveur nommé ServerName .

Exemple de fichier de configuration modifié pour une instance nommée de SQL


Server

XML

\<?xml version="1.0" encoding="utf-8"?>


\<DtsServiceConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<StopExecutingPackagesOnShutdown>true</StopExecutingPackagesOnShutdown>
<TopLevelFolders>
\<Folder xsi:type="SqlServerFolder">
<Name>MSDB</Name>
<ServerName>ServerName\InstanceName</ServerName>
</Folder>
\<Folder xsi:type="FileSystemFolder">
<Name>File System</Name>
<StorePath>..\Packages</StorePath>
</Folder>
</TopLevelFolders>
</DtsServiceConfiguration>

Modifier l’emplacement du fichier de configuration


La clé de Registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL
Server\130\SSIS\ServiceConfigFile spécifie l’emplacement et le nom du fichier de
configuration utilisé par le service Integration Services. La valeur par défaut de la clé de
Registre est C:\Program Files\Microsoft SQL Server\130\DTS\Binn\MsDtsSrvr.ini.xml.
Vous pouvez mettre à jour la valeur de la clé de Registre pour utiliser un nom et un
emplacement différents pour le fichier de configuration. Notez que le numéro de
version présent dans le chemin (120 pour SQL Server SQL Server 2014 (12.x), 130 pour
SQL Server 2016 (13.x), etc.) varie en fonction de la version de SQL Server.

U Attention
La modification incorrecte du Registre peut entraîner de graves problèmes et
nécessiter la réinstallation du système d'exploitation. Microsoft ne garantit pas que
les problèmes résultant d'une modification incorrecte du Registre peuvent être
résolus. Avant de modifier le Registre, sauvegardez toutes vos données
importantes. Pour plus d'informations sur la méthode de sauvegarde, de
restauration et de modification du Registre, consultez l'article Microsoft Description
du Registre de Microsoft Windows de la Base de connaissances .

Lorsqu'il démarre, le service Integration Services charge le fichier de configuration. Toute


modification de l'entrée de Registre nécessite le redémarrage du service.

Se connecter au service local


Avant de vous connecter au service Integration Services , l'administrateur doit vous
accorder l'accès.

Pour se connecter au service Integration Services


1. Ouvrez SQL Server Management Studio.

2. Cliquez sur Explorateur d'objets dans le menu Affichage .

3. Sur la barre d'outils de l'Explorateur d'objets, cliquez sur Connecter, puis sur
Integration Services.

4. Dans la boîte de dialogue Se connecter au serveur , entrez un nom de serveur.


Vous pouvez utiliser un point (.), (local) ou localhost pour indiquer le serveur local.

5. Cliquez sur Connecter.

Se connecter à un serveur SSIS distant


Pour se connecter à une instance de Integration Services sur un serveur distant, que ce
soit à partir de SQL Server Management Studio ou d’une autre application de gestion,
les utilisateurs de l’application ont besoin d’un ensemble de droits sur le serveur.

) Important

Pour vous connecter directement à une instance du service Integration Services


existant, vous devez utiliser la version de SQL Server Management Studio (SSMS)
correspondant à la version de SQL Server sur lequel s’exécute le service Integration
Services. Par exemple, pour vous connecter au service Integration Services existant
s’exécutant sur une instance de SQL Server 2016, vous devez utiliser la version de
SSMS publiée pour SQL Server 2016. Téléchargez SQL Server Management Studio
(SSMS).

Pour gérer les packages stockés sur un serveur distant, vous n’avez pas besoin de
vous connecter à l’instance du service Integration Services de ce serveur distant. Au
lieu de cela, modifiez le fichier de configuration du service Integration Services afin
que SQL Server Management Studio affiche les packages stockés sur le serveur
distant.

Connexion à Integration Services sur un serveur distant

Pour se connecter à Integration Services sur un serveur distant

1. Ouvrez SQL Server Management Studio.

2. Sélectionnez Fichieret Connecter l’Explorateur d’objets pour afficher la boîte de


dialogue Se connecter au serveur .

3. Sélectionnez Integration Services dans la liste Type de serveur .

4. Tapez le nom d’un serveur SQL Server Integration Services dans la zone de texte
Nom du serveur.

7 Notes

Le service Integration Services n'est pas spécifique à l'instance. Vous vous


connectez au service en utilisant le nom de l'ordinateur sur lequel le service
Integration Services s'exécute.

5. Cliquez sur Connecter.

7 Notes

La boîte de dialogue Rechercher les serveurs n’affiche pas les instances distantes
de Integration Services. De plus, les options disponibles sous l’onglet Options de
connexion de la boîte de dialogue Se connecter au serveur (cliquez sur le bouton
Options pour les afficher) ne s’appliquent pas aux connexions Integration Services .
Suppression de l'erreur « Accès refusé »
Lorsqu'un utilisateur muni des droits suffisants tente de se connecter à une instance de
Integration Services sur un serveur distant, ce dernier répond par un message d'erreur
lui indiquant que l'accès est refusé. Vous pouvez éviter ce message d'erreur en vous
assurant que les utilisateurs bénéficient des autorisations DCOM requises.

Pour configurer les droits des utilisateurs distants dans Windows


Server 2003 ou Windows XP
1. Si l'utilisateur n'est pas membre du groupe Administrateurs local, ajoutez
l'utilisateur au groupe des utilisateurs Distributed COM. Pour ce faire, vous pouvez
utiliser le composant logiciel enfichable MMC Gestion de l’ordinateur accessible à
partir du menu Outils d’administration .

2. Ouvrez le Panneau de configuration, double-cliquez sur Outils d’administration ,


puis sur Services de composants pour démarrer le composant logiciel enfichable
MMC Services de composants.

3. Développez le nœud Services de composants dans le volet gauche de la console.


Développez le nœud Ordinateurs et Poste de travail, puis cliquez sur le nœud
Configuration DCOM .

4. Sélectionnez le nœud Configuration DCOM , puis sélectionnez SQL Server


Integration Services 11.0 dans la liste des applications configurables.

5. Cliquez avec le bouton droit sur SQL Server Integration Services 11.0, puis
sélectionnez Propriétés.

6. Dans la boîte de dialogue Propriétés de SQL Server Integration Services 11.0 ,


sélectionnez l’onglet Sécurité .

7. Sous Autorisations d’exécution et d’activation, sélectionnez Personnaliser, puis


cliquez sur Modifier pour ouvrir la boîte de dialogue Autorisation d’exécution .

8. Dans la boîte de dialogue Autorisation d’exécution , ajoutez ou supprimez des


utilisateurs, puis affectez les autorisations appropriées aux utilisateurs et groupes
concernés. Les autorisations disponibles sont Exécution locale, Exécution à
distance, Activation locale et Activation à distance. Les droits d'exécution octroient
ou refusent l'autorisation de démarrer et d'arrêter le service ; les droits d'activation
octroient ou refusent l'autorisation de se connecter au service.

9. Cliquez sur OK pour fermer la boîte de dialogue.


10. Sous Autorisations d’accès, répétez les étapes 7 et 8 pour assigner les
autorisations appropriées aux utilisateurs et groupes concernés.

11. Fermez le composant logiciel enfichable MMC.

12. Redémarrez le service Integration Services .

Pour configurer les droits des utilisateurs distants dans Windows


2000 avec les derniers Service Packs
1. Exécutez dcomcnfg.exe à l’invite de commandes.

2. Dans la page Applications de la boîte de dialogue des propriétés de configuration


de Distributed COM , sélectionnez SQL Server Integration Services 11.0, puis
cliquez sur Propriétés.

3. Sélectionnez la page Security .

4. Utilisez les deux boîtes de dialogue distinctes pour configurer les autorisations
d’accès et les autorisations d’exécution. Aucune distinction entre accès local et
accès à distance n'est possible : les autorisations d'accès englobent l'accès local et
l'accès à distance, et les autorisations d'exécution incluent l'exécution locale et
l'exécution à distance.

5. Fermez les boîtes de dialogue et dcomcnfg.exe.

6. Redémarrez le service Integration Services .

Connexion à l'aide d'un compte local


Si vous travaillez sous un compte Windows local sur un ordinateur client, vous pouvez
vous connecter au service Integration Services sur un ordinateur distant uniquement si
un compte local porte le même nom et mot de passe et si les droits appropriés existent
sur l'ordinateur distant.

Le service Windows SSIS ne prend pas en charge la


délégation
SSIS ne prend pas en charge la délégation d’informations d'identification, parfois
appelée « double saut ». Dans ce scénario, vous opérez sur un ordinateur client, SSIS est
installé sur un deuxième ordinateur et SQL Server sur un troisième ordinateur. Bien que
SSMS transmette correctement vos informations d’identification de l’ordinateur client au
deuxième ordinateur (où SSIS est en cours d’exécution), SSIS ne peut pas déléguer vos
informations d’identification du deuxième ordinateur au troisième ordinateur (où SQL
Server est en cours d’exécution).

Configurer le pare-feu
Le système de Pare-feu Windows permet d’empêcher l’accès non autorisé à des
ressources informatiques via une connexion réseau. Pour accéder à Integration Services
à travers ce pare-feu, vous devez configurer le pare-feu de façon à autoriser l’accès.

) Important

Pour gérer les packages stockés sur un serveur distant, vous n’avez pas besoin de
vous connecter à l’instance du service Integration Services de ce serveur distant. Au
lieu de cela, modifiez le fichier de configuration du service Integration Services afin
que SQL Server Management Studio affiche les packages stockés sur le serveur
distant.

Le service Integration Services utilise le protocole DCOM.

De nombreux systèmes de pare-feu sont disponibles. Si vous exécutez un autre pare-feu


que le Pare-feu Windows, consultez la documentation de votre pare-feu pour obtenir
des informations spécifiques au système utilisé.

Si le pare-feu prend en charge le filtrage au niveau application, vous pouvez utiliser


l'interface utilisateur fournie par Windows pour spécifier les exceptions qui sont
autorisées à traverser le pare-feu, telles que certains programmes ou services.
Autrement, vous devez configurer DCOM de façon à utiliser un jeu de ports TCP limité.
Le lien vers le site Web de Microsoft fourni ci-dessus contient des informations sur la
façon de spécifier les ports TCP à utiliser.

Le service Integration Services utilise le port 135 ; ce port ne peut pas être modifié. Vous
devez ouvrir le port TCP 135 pour accéder au gestionnaire de contrôle de services.
Celui-ci effectue des tâches telles que le démarrage et l’arrêt des services Integration
Services , et la transmission de demandes de contrôle au service en cours d’exécution.

Les informations de la section suivante sont spécifiques au Pare-feu Windows. Vous


pouvez configurer le système de Pare-feu Windows en exécutant une commande à
l’invite de commandes, ou en définissant des propriétés dans la boîte de dialogue Pare-
feu Windows.

Pour plus d’informations sur les paramètres par défaut du Pare-feu Windows et pour
obtenir une description des ports TCP qui affectent le moteur de base de données,
Analysis Services, Reporting Services et Integration Services, consultez Configurer le
Pare-feu Windows pour autoriser l’accès à SQL Server.

Configuration d’un Pare-feu Windows


Vous pouvez utiliser les commandes suivantes pour ouvrir le port TCP 135, ajouter
MsDtsSrvr.exe à la liste d'exceptions et spécifier la portée du déblocage pour le pare-
feu.

Pour configurer un Pare-feu Windows à l'aide de la fenêtre d'invite


de commandes

1. Exécutez la commande suivante :

dos

netsh firewall add portopening protocol=TCP port=135 name="RPC


(TCP/135)" mode=ENABLE scope=SUBNET

2. Exécutez la commande suivante :

dos

netsh firewall add allowedprogram program="%ProgramFiles%\Microsoft SQL


Server\100\DTS\Binn\MsDtsSrvr.exe" name="SSIS Service" scope=SUBNET

7 Notes

Pour ouvrir le pare-feu pour tous les ordinateurs et également pour ceux sur
Internet, remplacez scope=SUBNET par scope=ALL.

La procédure suivante décrit la façon d'utiliser l'interface utilisateur Windows pour ouvrir
le port TCP 135, ajouter MsDtsSrvr.exe à la liste d'exceptions et spécifier la portée du
déblocage pour le pare-feu.

Pour configurer un pare-feu à l’aide de la boîte de dialogue Pare-


feu Windows
1. Dans le Panneau de configuration, double-cliquez sur Pare-feu Windows.
2. Dans la boîte de dialogue Pare-feu Windows , cliquez sur l’onglet Exceptions , puis
sur Ajouter un programme.

3. Dans la boîte de dialogue Ajouter un programme , cliquez sur Parcourir, naviguez


jusqu’au dossier Program Files\Microsoft SQL Server\100\DTS\Binn, cliquez sur
MsDtsSrvr.exe, puis sur Ouvrir. Cliquez sur OK pour fermer la boîte de dialogue
Ajouter un programme .

4. Sous l’onglet Exceptions , cliquez sur Ajouter un port.

5. Dans la boîte de dialogue Ajouter un port , tapez RPC(TCP/135) ou un autre nom


descriptif dans la zone Nom, tapez 135 dans la zone Numéro de port , puis
sélectionnez TCP.

) Important

Integration Services Le service utilise toujours le port 135. Vous ne pouvez pas
spécifier un autre port.

6. Dans la boîte de dialogue Ajouter un port , vous pouvez éventuellement cliquer


sur Modifier l’étendue pour modifier l’étendue par défaut.

7. Dans la boîte de dialogue Modifier l’étendue , sélectionnez Uniquement mon


réseau (ou sous-réseau) ou tapez une liste personnalisée, puis cliquez sur OK.

8. Pour fermer la boîte de dialogue Ajouter un port , cliquez sur OK.

9. Pour fermer la boîte de dialogue Pare-feu Windows , cliquez sur OK.

7 Notes

Pour configurer le Pare-feu Windows, cette procédure utilise l’élément Pare-


feu Windows du Panneau de configuration. L’élément Pare-feu Windows
configure uniquement le pare-feu du profil d’emplacement réseau actuel.
Toutefois, vous pouvez également configurer le Pare-feu Windows à l’aide de
l’outil en ligne de commande netsh ou du composant logiciel enfichable
MMC (Microsoft Management Console) appelé Pare-feu Windows avec
fonctions avancées de sécurité. Pour plus d’informations sur ces outils,
consultez Configurer le Pare-feu Windows pour autoriser l’accès à SQL
Server.
Gestion de packages (Service SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La gestion de packages inclut la surveillance, la gestion, l’importation et l’exportation de


packages.

Magasin de packages
Integration Services fournit deux dossiers de premier niveau pour l’accès aux packages :

Exécution des packages


Packages stockés

Le dossier Exécution des packages répertorie les packages en cours d'exécution sur le
serveur. Le dossier Packages stockés répertorie les packages enregistrés dans le
magasin de packages. Ce sont les seuls packages gérés par le service Integration
Services . Le magasin de packages peut comprendre la base de données msdb et/ou les
dossiers du système de fichiers répertoriés dans le fichier de configuration du service
Integration Services . Le fichier de configuration indique la base de données msdb et les
dossiers du système de fichiers à gérer. Il est possible que vous disposiez également de
packages stockés ailleurs dans le système de fichiers qui ne sont pas gérés par le service
Integration Services .

Les packages que vous enregistrez dans msdb sont stockés dans une table nommée
sysssispackages. Quand vous enregistrez des packages dans msdb, vous pouvez les
regrouper dans des dossiers logiques. L’utilisation de dossiers logiques vous permet
d’organiser les packages selon leur finalité ou bien de les filtrer dans la table
sysssispackages. Créez des dossiers logiques dans SQL Server Management Studio. Par
défaut, tous les dossiers logiques que vous ajoutez à la base de données msdb sont
inclus automatiquement dans le magasin de packages.

Les dossiers logiques que vous créez sont représentés sous forme de lignes dans la
table sysssispackagefolders de msdb. Les colonnes folderid et parentfolderid de
sysssispackagefolders définissent l’arborescence des dossiers. Les dossiers logiques
racines de msdb correspondent aux lignes de sysssispackagefolders ayant des valeurs
Null dans la colonne parentfolderid. Pour plus d’informations, consultez sysssispackages
(Transact-SQL) et sysssispackagefolders (Transact-SQL&).
Lorsque vous ouvrez SQL Server Management Studio puis que vous vous connectez à
Integration Services, les dossiers msdb gérés par le service Integration Services
apparaissent dans le dossier Packages stockés. Si le fichier de configuration spécifie des
dossiers de système de fichiers racines, le dossier Packages stockés répertorie
également les packages enregistrés dans le système de fichiers dans ces mêmes
dossiers et dans tous les sous-dossiers.

Vous pouvez stocker des packages dans n'importe quel dossier de système de fichiers
mais ces dossiers ne seront pas consignés dans la liste des sous-dossiers du dossier
Packages stockés , à moins que vous n'ajoutiez le dossier à la liste des dossiers dans le
fichier de configuration du magasin de packages. Pour plus d’informations sur le fichier
de configuration, consultez Service Integration Services (Service SSIS).

Le dossier Exécution des packages ne contient aucun sous-dossier et n'est pas


extensible.

Par défaut, le dossier Packages stockés contient deux dossiers : File System et MSDB. Le
dossier File System répertorie les packages enregistrés dans le système de fichiers. Le
fichier de configuration du service Integration Services indique l'emplacement de ces
fichiers. Le dossier par défaut est le dossier Packages, situé dans %Program
Files%\Microsoft SQL Server\100\DTS. Le dossier MSDB répertorie les packages
Integration Services enregistrés dans la base de données SQL Server msdb sur le
serveur. La table sysssispackages contient les packages enregistrés dans la base de
données msdb.

Pour visualiser la liste des packages stockés dans le magasin de packages, vous devez
ouvrir SQL Server Management Studio et vous connecter à Integration Services.

Surveiller les packages en cours d’exécution


Le dossier Exécution des packages répertorie les packages en cours d’exécution. Pour
afficher des informations relatives aux packages en cours d'exécution sur la page
Résumé de SQL Server Management Studio, cliquez sur le dossier Exécution des
packages . Des informations telles que la durée d'exécution des packages en cours
d'exécution figurent sur la page Résumé . Vous pouvez également actualiser l'affichage
du dossier pour obtenir les informations les plus récentes.

Pour afficher des informations sur un seul package en cours d'exécution sur la page
Résumé , cliquez sur le package. La page Résumé affiche des informations telles que la
version et la description du package.
Pour arrêter un package en cours d’exécution dans le dossier Exécution des packages,
cliquez avec le bouton droit sur le package, puis cliquez sur Arrêter.

Afficher les packages dans SSMS


Cette procédure explique comment se connecter à Integration Services dans SQL Server
Management Studio et visualiser la liste des packages gérés par le service Integration
Services .

Pour se connecter à Integration Services


1. Cliquez sur Démarrer, pointez sur Tous les programmes, puis sur Microsoft SQL
Server 2005et cliquez sur SQL Server Management Studio.

2. Dans la boîte de dialogue Se connecter au serveur , sélectionnez Integration


Services dans la liste Type de serveur , indiquez un nom de serveur dans la zone
Nom du serveur , puis cliquez sur Se connecter.

) Important

Si vous ne pouvez pas vous connecter à Integration Services, il est probable


que le service Integration Services ne soit pas en cours d'exécution. Pour
connaître l'état du service, cliquez sur Démarrer, pointez sur Tous les
programmes, sur Microsoft SQL Server, sur Outils de configuration, puis
cliquez sur Gestionnaire de configuration SQL Server. Dans le volet gauche,
cliquez sur Services SQL Server. Dans le volet droit, recherchez le service
Integration Services . Démarrez le service, il n'est pas déjà en cours
d'exécution.

SQL Server Management Studio s'ouvre. Par défaut, la fenêtre Explorateur d'objets
est ouverte et positionnée dans l'angle inférieur gauche de SQL Server
Management Studio. Si l'Explorateur d'objets n'est pas ouvert, dans le menu
Affichage , cliquez sur Explorateur d'objets .

Pour visualiser les packages gérés par le service


Integration Services
1. Dans l'Explorateur d'objets, développez le dossier Packages stockés.
2. Développez les sous-dossiers du dossier Packages stockés afin d'afficher les
packages.

Importer et exporter des packages


Les packages peuvent être enregistrés dans la table sysssispackages de la base de
données msdb de SQL Server ou dans le système de fichiers.

Le magasin de packages, qui est le stockage logique que le service Integration Services
contrôle et gère, peut inclure la base de données msdb et les dossiers du système de
fichiers spécifiés dans le fichier de configuration pour le service Integration Services .

Vous pouvez importer et exporter des packages entre les types de stockage suivants :

Les dossiers du système de fichiers n'importe où dans le système de fichiers.

Les dossiers dans le magasin de packages SSIS. Les deux dossiers par défaut sont
appelés « Système de fichiers » et « MSDB ».

La base de données msdb SQL Server .

Integration Services vous donne la possibilité d'importer et d'exporter des packages, et


ce faisant, de modifier le format et l'emplacement de stockage des packages. Les
fonctionnalités d’importation et d’exportation vous permettent d’ajouter des packages
au système de fichiers, au magasin de packages ou à la base de données msdb, et de
copier des packages d’un format de stockage vers un autre. Par exemple, les packages
enregistrés dans msdb peuvent être copiés dans le système de fichiers et vice versa.

Vous pouvez aussi copier un package dans un format différent à l’aide de l’utilitaire
d’invite de commandes dtutil (dtutil.exe). Pour plus d’informations, consultez dtutil
Utility.

Vous pouvez importer ou exporter un package Integration Services depuis ou vers les
emplacements suivants :

Vous pouvez importer un package stocké dans une instance de Microsoft SQL
Server, dans le système de fichiers ou dans le magasin de packages SSIS. Le
package importé est enregistré dans SQL Server ou dans un dossier dans le
magasin de packages SSIS .

Vous pouvez exporter un package stocké dans une instance de SQL Server, dans le
système de fichiers ou dans le magasin de packages SSIS vers un format ou un
emplacement de stockage différent.
Toutefois, il existe des restrictions relatives à l'importation et à l'exportation d'un
package entre des versions différentes de SQL Server:

Vous pouvez importer dans une instance de SQL Server 2008 (10.0.x) des packages
provenant d’une instance de SQL Server 2005 (9.x), mais vous ne pouvez pas
exporter de packages vers une instance de SQL Server 2005 (9.x).

Dans une instance de SQL Server 2005 (9.x), vous ne pouvez pas importer de
packages provenant d’une instance de SQL Server 2008 (10.0.x), ni exporter de
packages vers une telle instance.

Les procédures ci-dessous montrent comment utiliser SQL Server Management Studio
pour importer et exporter un package.

Pour importer un package à l'aide de SQL Server


Management Studio
1. Cliquez sur Démarrer, pointez sur Microsoft SQL Server, puis cliquez sur SQL
Server Management Studio.

2. Dans la boîte de dialogue Se connecter au serveur , définissez les options


suivantes :

Dans la zone Type de serveur , sélectionnez Integration Services.

Dans la zone Nom du serveur, indiquez le nom du serveur ou cliquez sur


<Parcourir>, puis recherchez le serveur à utiliser.

3. Si l'Explorateur d'objets n'est pas ouvert, dans le menu Affichage , cliquez sur
Explorateur d'objets.

4. Dans l'Explorateur d'objets, développez le dossier Packages stockés .

5. Développez les sous-dossiers afin de rechercher celui dans lequel vous souhaitez
importer un package.

6. Cliquez avec le bouton droit sur le dossier, puis cliquez sur Importer un package.
Effectuez ensuite l'une des opérations suivantes :

Pour importer à partir d'une instance de SQL Server, sélectionnez l'option


SQL Server , puis spécifiez le serveur et le mode d'authentification. Si vous
sélectionnez l'authentification SQL Server , indiquez un nom d'utilisateur et
un mot de passe.
Cliquez sur le bouton Parcourir (...) , sélectionnez le package à importer, puis
cliquez sur OK.

Pour importer à partir d'un système de fichiers, sélectionnez l'option Système


de fichiers .

Cliquez sur le bouton Parcourir (...) , sélectionnez le package à importer, puis


cliquez sur Ouvrir.

Pour importer à partir du magasin de packages SSIS , sélectionnez l'option


Magasin de packages SSIS et spécifiez le serveur.

Cliquez sur le bouton Parcourir (...) , sélectionnez le package à importer, puis


cliquez sur OK.

7. Si vous le souhaitez, mettez à jour le nom du package.

8. Pour mettre à jour le niveau de protection du package, cliquez sur le bouton


Parcourir (...) et sélectionnez un niveau de protection différent dans la boîte de
dialogue Niveau de protection du package . Si l'option Chiffrer les données
sensibles avec un mot de passe ou Chiffrer toutes les données avec un mot de
passe est sélectionnée, tapez un mot de passe et confirmez-le.

9. Cliquez sur OK pour terminer l'importation.

Pour exporter un package à l'aide de SQL Server


Management Studio
1. Cliquez sur Démarrer, pointez sur Microsoft SQL Server, puis cliquez sur SQL
Server Management Studio.

2. Dans la boîte de dialogue Se connecter au serveur , définissez les options


suivantes :

Dans la zone Type de serveur , sélectionnez Integration Services.

Dans la zone Nom du serveur, indiquez le nom du serveur ou cliquez sur


<Parcourir>, puis recherchez le serveur à utiliser.

3. Si l'Explorateur d'objets n'est pas ouvert, dans le menu Affichage , cliquez sur
Explorateur d'objets.

4. Dans l'Explorateur d'objets, développez le dossier Packages stockés .

5. Développez les sous-dossiers pour localiser le package à exporter.


6. Cliquez avec le bouton droit sur le package, cliquez sur Exporter, puis effectuez
l’une des opérations suivantes :

Pour exporter un package vers une instance de SQL Server, sélectionnez


l'option SQL Server , puis indiquez le serveur et sélectionnez le mode
d'authentification. Si vous sélectionnez l'authentification SQL Server ,
indiquez un nom d'utilisateur et un mot de passe.

Cliquez sur le bouton Parcourir (...) , puis développez le dossier Packages


SSIS pour rechercher le dossier dans lequel enregistrer le package. Si vous le
souhaitez, mettez à jour le nom par défaut du package, puis cliquez sur OK.

Pour exporter un package vers le système de fichiers, sélectionnez l'option


Système de fichiers .

Cliquez sur le bouton Parcourir (...) pour rechercher le dossier dans lequel
exporter le package, tapez le nom du fichier de package, puis cliquez sur
Enregistrer.

Pour exporter un package vers le magasin de packages SSIS , sélectionnez


l'option Magasin de packages SSIS , puis indiquez le serveur.

Cliquez sur le bouton Parcourir (...) , développez le dossier Packages SSIS,


puis sélectionnez le dossier dans lequel enregistrer le package. Si vous le
souhaitez, entrez un nouveau nom pour le package dans la zone de texte
Nom du package . Sélectionnez OK.

7. Pour mettre à jour le niveau de protection du package, cliquez sur le bouton


Parcourir (...) et sélectionnez un niveau de protection différent dans la boîte de
dialogue Niveau de protection du package . Si l'option Chiffrer les données
sensibles avec un mot de passe ou Chiffrer toutes les données avec un mot de
passe est sélectionnée, tapez un mot de passe et confirmez-le.

8. Cliquez sur OK pour terminer l'exportation.

Référence de l'interface utilisateur de la boîte


de dialogue Importer un package
Utilisez la boîte de dialogue Importer un package , disponible dans SQL Server
Management Studio, pour importer un package Integration Services et pour définir ou
modifier son niveau de protection.
Options
Emplacement du package
Sélectionnez le type d'emplacement de stockage dans lequel importer le package. Les
options suivantes sont disponibles :

SQL Server

Système de fichiers

Magasin de packages SSIS

Serveur
Tapez le nom d’un serveur ou sélectionnez-en un dans la liste.

Authentification
Sélectionnez l'authentification Windows ou l'authentification SQL Server . Cette option
est disponible uniquement si l’emplacement de stockage est SQL Server.

) Important

Dans la mesure du possible, utilisez l’authentification Windows.

Type d’authentification
Sélectionnez un type d'authentification.

Nom d'utilisateur
Si vous utilisez l’authentification SQL Server , entrez un nom d’utilisateur.

Mot de passe
Si vous utilisez l’authentification SQL Server , entrez un mot de passe.

Chemin d'accès au package


Tapez le chemin du package ou cliquez sur le bouton Parcourir (...) pour rechercher le
package.

Nom du package
Éventuellement, renommez le package. Par défaut, son nom est celui du package à
importer.

Niveau de protection
Cliquez sur le bouton Parcourir (...) et, dans la boîte de dialogue Niveau de protection
du package, mettez à jour le niveau de protection. Pour plus d’informations, consultez
Boîte de dialogue Niveau de protection du package.
Référence de l'interface utilisateur de la boîte
de dialogue Exporter un package
Utilisez la boîte de dialogue Exporter un package , disponible dans SQL Server
Management Studio, pour exporter un package Integration Services vers un autre
emplacement et éventuellement modifier son niveau de protection.

Options
Emplacement du package
Sélectionnez le type de stockage vers lequel exporter le package. Les options suivantes
sont disponibles :

SQL Server

Système de fichiers

Magasin de packages SSIS

Serveur
Tapez le nom d’un serveur ou sélectionnez-en un dans la liste.

Authentification
Sélectionnez l'authentification Windows ou l'authentification SQL Server . Cette option
est disponible uniquement si l’emplacement de stockage est SQL Server.

) Important

Dans la mesure du possible, utilisez l’authentification Windows.

Type d’authentification
Sélectionnez un type d'authentification.

Nom d'utilisateur
Si vous utilisez l’authentification SQL Server , entrez un nom d’utilisateur.

Mot de passe
Si vous utilisez l’authentification SQL Server , entrez un mot de passe.

Chemin d'accès au package


Tapez le chemin du package ou cliquez sur le bouton Parcourir (...) pour rechercher le
dossier dans lequel stocker le package.
Niveau de protection
Cliquez sur le bouton Parcourir (...) et mettez à jour le niveau de protection dans la boîte
de dialogue Niveau de protection du package. Pour plus d’informations, consultez
Boîte de dialogue Niveau de protection du package.

Sauvegarder et restaurer les packages


Les packages SQL Server Integration Services peuvent être enregistrés dans le système
de fichiers ou dans msdb, base de données système SQL Server. Les packages
enregistrés dans msdb peuvent être sauvegardés et restaurés à l’aide des fonctionnalités
de sauvegarde et de restauration de SQL Server .

Pour plus d’informations sur la sauvegarde et la restauration de la base de données


msdb, cliquez sur l’une des rubriques suivantes :

Sauvegarder et restaurer des bases de données SQL Server

Sauvegarder et restaurer des bases de données système (SQL Server)

Integration Services comprend l’utilitaire d’invite de commandes dtutil (dtutil.exec) qui


permet de gérer les packages. Pour plus d’informations, consultez dtutil Utility.

Fichiers de configuration
Tous les fichiers de configuration inclus dans les packages sont stockés dans le système
de fichiers. Ces fichiers ne sont pas sauvegardés en même temps que la base de
données msdb. Vous devez donc vérifier que les fichiers de configuration sont
sauvegardés régulièrement dans le cadre de votre plan de sécurisation des packages
enregistrés dans msdb. Pour inclure les configurations dans la sauvegarde de la base de
données msdb, vous devez envisager d’utiliser le type de configuration SQL Server à la
place des configurations basées sur les fichiers.

Packages stockés dans le système de fichiers


La sauvegarde des packages enregistrés dans le système de fichiers doit être incluse
dans le plan de sauvegarde du système de fichiers du serveur. Le ficher de configuration
du service Integration Services , dont le nom par défaut est MsDtsSrvr.ini.xml, donne la
liste des dossiers sur le serveur contrôlé par le service. Vous devez vous assurer que ces
dossiers sont sauvegardés. En outre, les packages peuvent être stockés dans d'autres
dossiers sur le serveur et vous devez vous assurer que ces dossiers sont inclus dans la
sauvegarde.
Voir aussi
Service Integration Services (Service SSIS)
Événements consignés par le service
Integration Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le service Integration Services consigne différents messages dans le journal des


événements des applications Windows. Le service enregistre ces messages lorsque le
service démarre, lorsqu'il s'arrête et lorsque certains problèmes se produisent.

Cette rubrique fournit des informations sur les messages d'événements courants que le
service enregistre dans le journal des événements des applications. Le service
Integration Services consigne tous les messages décrits dans cette rubrique avec
SQLISService comme source d’événement.

Pour des informations générales sur le service Integration Services, consultez Service
Integration Services (Service SSIS).

Messages d’état du service


Quand vous sélectionnez Integration Services pour l’installation, le service Integration
Services est installé et démarré, et son type de démarrage est défini sur Automatique.

ID de Nom symbolique Texte Notes


l’événement

256 DTS_MSG_SERVER_STARTING Démarrage du Le service est sur le point


service Microsoft de démarrer.
SSIS.

257 DTS_MSG_SERVER_STARTED Microsoft SSIS Le service a démarré.


Service démarré.

260 DTS_MSG_SERVER_START_FAILED Microsoft SSIS Le service n'a pas pu


Échec du démarrer. Cette inaptitude
démarrage du à démarrer peut résulter
service.%nErreur : d'une installation
%1 endommagée ou d'un
compte de service
inapproprié.
ID de Nom symbolique Texte Notes
l’événement

258 DTS_MSG_SERVER_STOPPING Arrêt du service Le service est en cours


Microsoft SSIS.% d'arrêt et si vous
n%nArrêtez tous configurez le service pour
les packages en cela, tous les packages en
cours d’exécution cours d'exécution seront
à la fin de arrêtés. Vous pouvez
l’opération : %1 définir une valeur vraie ou
fausse dans le fichier de
configuration qui
détermine si le service
doit cesser d'exécuter des
packages lorsque le
service lui-même s'arrête.
Le message pour cet
événement inclut la valeur
de ce paramètre.

259 DTS_MSG_SERVER_STOPPED Service Microsoft Le service s'est arrêté.


SSIS
arrêté.%nVersion
du serveur %1

Messages du fichier de paramètres


Les paramètres pour le service Integration Services sont stockés dans un fichier XML que
vous pouvez modifier. Pour plus d’informations, consultez Service Integration Services
(Service SSIS).

ID de Nom symbolique Texte Notes


l’événement

274 DTS_MSG_SERVER_MISSING_CONFIG_REG Service Microsoft L'entrée du


SSIS : %nparamètre Registre qui
de Registre spécifiant contient le
que le fichier de chemin
configuration n’existe d'accès du
pas. %nTentative de fichier de
chargement du configuration
fichier de n'existe pas
configuration par ou est vide.
défaut en cours.
ID de Nom symbolique Texte Notes
l’événement

272 DTS_MSG_SERVER_MISSING_CONFIG Le fichier de Le fichier de


configuration du configuration
service Microsoft lui-même
SSIS n’existe n'existe pas à
pas.%nChargement l'emplacement
avec les paramètres spécifié.
par défaut.

273 DTS_MSG_SERVER_BAD_CONFIG Le fichier de Le fichier de


configuration du configuration
service Microsoft n'a pas pu
SSIS est être lu ou
incorrect.%nErreur n'est pas
lors de la lecture du valide. Cette
fichier de erreur peut
configuration : résulter d'une
%1%n%nChargement erreur de
du serveur avec les syntaxe XML
paramètres par dans le fichier.
défaut.

Autres messages
ID de Nom symbolique Texte Notes
l’événement

336 DTS_MSG_SERVER_STOPPING_PACKAGE Service Microsoft Le service essaie


SSIS : arrêt de d'arrêter un
l’exécution du package en cours
package.%nID d'exécution. Vous
d’instance du pouvez analyser et
package : %1%nID arrêter des
du package : packages en cours
%2%nNom : d'exécution dans
%3%nDescription : Management
%4%nPackage Studio. Pour plus
d’informations sur
la gestion des
packages dans
Management
Studio, consultez
Package
Management
(Service SSIS).
Afficher les événements
Il existe deux outils dans lesquels vous pouvez afficher les événements du service
Integration Services :

La boîte de dialogue Visionneuse du fichier journal dans SQL Server Management


Studio. La boîte de dialogue Visionneuse du fichier Journal comprend des options
permettant d’exporter et de filtrer le journal et d’effectuer des recherches. Pour
plus d’informations sur les options de la Visionneuse du fichier Journal, consultez
Visionneuse du fichier journal - Aide (F1).

L'Observateur d'événements Windows.

Pour obtenir une description des événements consignés par le service Integration
Services , consultez Événements consignés par le service Integration Services.

Pour afficher les événements du service Integration


Services dans SQL Server Management Studio
1. Ouvrez SQL Server Management Studio.

2. Dans le menu Fichier , cliquez sur Connecter l’Explorateur d’objets.

3. Dans la boîte de dialogue Se connecter au serveur , sélectionnez le type de


serveur Integration Services , sélectionnez ou recherchez le serveur auquel la
connexion doit être établie, puis cliquez sur Se connecter.

4. Dans l’Explorateur d’objets, cliquez avec le bouton droit sur Integration Services ,
puis sélectionnez Afficher les journaux.

5. Pour afficher les événements Integration Services , sélectionnez SQL Server


Integration Services. L’option Événements NT est automatiquement sélectionnée
et effacée avec l’option SQL Server Integration Services .

Pour afficher les événements du service Integration


Services dans l'Observateur d'événements Windows
1. Dans le Panneau de configuration, si vous utilisez l’affichage classique, cliquez sur
Outils d’administration. Si vous utilisez l’affichage des catégories, cliquez sur
Performance et maintenance puis sur Outils d’administration.

2. Cliquez sur Observateur d’événements.


3. Dans la boîte de dialogue Observateur d’événements , cliquez sur Application.

4. Dans le composant logiciel enfichable Application , recherchez dans la colonne


Source l’entrée dont la valeur est SQLISService, cliquez sur cette entrée avec le
bouton droit, puis cliquez sur Propriétés.

5. Si vous le souhaitez, cliquez sur la flèche vers le haut ou le bas pour afficher
l'événement précédent ou suivant.

6. Vous pouvez également cliquez sur l'icône Copier dans le Presse-papiers pour
copier les informations sur l'événement.

7. Choisissez d'afficher les données d'événements sous forme d'octets ou de mots.

8. Cliquez sur OK.

9. Dans le menu Fichier , cliquez sur Quitter pour fermer la boîte de dialogue
Observateur d’événements .

Tâches associées
Pour plus d’informations sur l’affichage des entrées de journal, consultez Événements
journalisés par un package Integration Services
Integration Services (SSIS) dans un
cluster
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le clustering Integration Services n’est pas recommandé, car le service Integration


Services n’est pas un service cluster ou prenant en charge les clusters. De plus, il ne
prend pas en charge le basculement d’un nœud de cluster à un autre. Par conséquent,
dans un environnement cluster, Integration Services doit être installé et démarré en tant
que service autonome sur chaque nœud du cluster.

Même si le service Integration Services n’est pas un service cluster, vous pouvez le
configurer manuellement pour qu’il fonctionne en tant que ressource de cluster après
avoir installé séparément Integration Services sur chaque nœud du cluster.

Toutefois, si en mettant en place un environnement matériel cluster, votre objectif est de


bénéficier d'une haute disponibilité, vous pouvez y parvenir sans configurer le service
Integration Services en tant que ressource de cluster. Pour gérer vos packages sur
n’importe quel nœud du cluster à partir de n’importe quel nœud du cluster, modifiez le
fichier de configuration du service Integration Services sur chaque nœud du cluster.
Vous modifiez chacun des fichiers de configuration pour pointer vers toutes les
instances disponibles de SQL Server sur lesquelles les packages sont stockés. Cette
solution apporte la haute disponibilité dont la plupart des clients ont besoin, sans les
problèmes potentiels rencontrés lorsque le service Integration Services est configuré en
tant que ressource de cluster. Pour plus d’informations sur la façon de changer le fichier
de configuration, consultez Service Integration Services (Service SSIS).

Il est essentiel de comprendre le rôle du service Integration Services pour prendre une
décision informée sur la configuration du service dans un environnement cluster. Pour
plus d’informations, consultez Service Integration Services (Service SSIS).

Inconvénients
La configuration du service Integration Services en tant que ressource de cluster
présente certains inconvénients potentiels, indiqués ci-dessous :

Quand un basculement se produit, les packages en cours d’exécution ne


redémarrent pas.
Vous pouvez récupérer des échecs de package en redémarrant les packages à
partir des points de contrôle. Vous pouvez effectuer le redémarrage à partir des
points de contrôle sans configurer le service en tant que ressource de cluster. Pour
plus d'informations, consultez Redémarrer des packages à l'aide de points de
contrôle.

Lorsque vous configurez le service Integration Services dans un groupe de


ressources différent de SQL Server, vous ne pouvez pas utiliser Management
Studio à partir d’ordinateurs clients pour gérer les packages stockés dans la base
de données msdb. Le service Integration Services ne peut pas déléguer
d’informations d’identification dans ce scénario à deux tronçons.

Lorsque plusieurs groupes de ressources SQL Server incluent le service Integration


Services dans un cluster, un basculement peut avoir des résultats inattendus.
Considérons le scénario suivant. Groupe1, qui inclut le service SQL Server et le
service Integration Services , s’exécute sur le Nœud A. Groupe2, qui inclut
également le service SQL Server et le service Integration Services , s’exécute sur le
Nœud B. Groupe2 bascule sur le Nœud A. La tentative de démarrage d’une autre
instance du service Integration Services sur le Nœud A échoue, car le service
Integration Services est un service à instance unique. Le fait que le service SQL
Server essayant de basculer sur le Nœud A échoue également ou non dépend de
la configuration du service Integration Services dans Groupe2. Si le service
Integration Services a été configuré pour affecter les autres services dans le groupe
de ressources, le service SQL Server qui procède au basculement échouera car le
service Integration Services a échoué. Si le service a été configuré pour ne pas
affecter les autres services dans le groupe de ressources, le service SQL Server
pourra basculer sur le Nœud A. À moins que le service Integration Services dans
Groupe2 n’ait été configuré pour ne pas affecter les autres services dans le groupe
de ressources, l’échec du service Integration Services qui procède au basculement
peut aussi provoquer l’échec du service SQL Server qui procède au basculement.

Configurer le service en tant que ressource de


cluster
Pour les clients concluant que les avantages de la configuration du service Integration
Services en tant que ressource de cluster compensent les inconvénients, cette section
contient les instructions de configuration nécessaires. Microsoft ne recommande
toutefois pas de configurer le service Integration Services en tant que ressource de
cluster.
Pour configurer le service Integration Services en tant que ressource de cluster, vous
devez effectuer les tâches suivantes.

Installez Integration Services sur un cluster.

Pour installer Integration Services sur un cluster, vous devez installer Integration
Services sur chaque nœud du cluster.

Configurez Integration Services en tant que ressource de cluster.

Integration Services étant installé sur chaque nœud du cluster, vous devez le
configurer en tant que ressource de cluster. Lorsque vous configurez le service
Integration Services en tant que ressource de cluster, vous pouvez ajouter le
service au même groupe de ressources que le Moteur de base de données SQL
Serverou à un groupe différent. Le tableau suivant présente les avantages et
inconvénients possibles de la sélection d'un groupe de ressources.

Lorsque Integration Services et SQL Lorsque Integration Services et SQL Server se


Server se trouvent dans le même trouvent dans des groupes de ressources
groupe de ressources différents

Les ordinateurs clients peuvent utiliser Les ordinateurs clients ne peuvent pas utiliser
SQL Server Management Studio pour SQL Server Management Studio pour gérer des
gérer des packages stockés dans la packages stockés dans la base de données msdb.
base de données msdb, car le Moteur Le client peut se connecter au serveur virtuel sur
de base de données SQL Server et le lequel le service Integration Services s’exécute.
service Integration Services s’exécutent Toutefois, cet ordinateur ne peut pas déléguer les
tous deux sur le même serveur virtuel. informations d'identification de l'utilisateur au
Cette configuration évite les problèmes serveur virtuel sur lequel SQL Server s'exécute. Ce
de délégation du scénario double saut. scénario est appelé scénario double saut.

Le service Integration Services est en Le service Integration Services n'est pas en


concurrence avec d'autres services SQL concurrence avec d'autres services SQL Server
Server pour les ressources de pour les ressources de processeurs et d'autres
processeurs et d'autres ressources ressources informatiques, car les différents
informatiques. groupes de ressources sont configurés sur des
nœuds différents.

Le chargement et l'enregistrement de Le chargement et l'enregistrement de packages


packages dans la base de données dans la base de données msdb peuvent être plus
msdb sont plus rapides et génèrent lents et générer plus de trafic réseau.
moins de trafic réseau parce que les
deux services s'exécutent sur le même
ordinateur.
Lorsque Integration Services et SQL Lorsque Integration Services et SQL Server se
Server se trouvent dans le même trouvent dans des groupes de ressources
groupe de ressources différents

Les deux services sont en ligne ou hors Le service Integration Services peut être en ligne
connexion en même temps. pendant que le Moteur de base de données SQL
Server est hors connexion. Ainsi, les packages
stockés dans la base de données msdb du
Moteur de base de données SQL Server ne sont
pas disponibles.

Le service Integration Services ne peut Le service Integration Services peut être déplacé
pas être déplacé rapidement vers un plus rapidement vers un autre nœud si
autre nœud si nécessaire. nécessaire.

Une fois que vous avez choisi le groupe de ressources auquel vous ajouterez
Integration Services, vous devez configurer Integration Services en tant que
ressource de cluster dans ce groupe.

Configurez le service Integration Services et le magasin de packages.

Une fois que vous avez configuré Integration Services en tant que ressource de
cluster, vous devez modifier l'emplacement et le contenu du fichier de
configuration du service Integration Services sur chaque nœud du cluster. Grâce à
ces modifications, le fichier de configuration et le magasin de packages sont à la
disposition de tous les nœuds en cas de basculement. Après avoir modifié
l'emplacement et le contenu du fichier de configuration, vous devez mettre le
service en ligne.

Mettez le service Integration Services en ligne en tant que ressource de cluster.

Après la configuration du service Integration Services sur un cluster ou un serveur, vous


devrez peut-être configurer des autorisations DCOM pour parvenir à vous connecter au
service à partir d'un ordinateur client. Pour plus d’informations, consultez Service
Integration Services (Service SSIS).

Le service Integration Services ne peut pas déléguer d'informations d'identification. Par


conséquent, vous ne pouvez pas utiliser Management Studio pour gérer les packages
stockés dans la base de données msdb dans les conditions suivantes :

Le service Integration Services et SQL Server s'exécutent sur des serveurs distincts
ou des serveurs virtuels.

Le client qui exécute SQL Server Management Studio est un troisième ordinateur.
Le client peut se connecter au serveur virtuel sur lequel le service Integration Services
s’exécute. Toutefois, cet ordinateur ne peut pas déléguer les informations
d'identification de l'utilisateur au serveur virtuel sur lequel SQL Server s'exécute. Ce
scénario est appelé scénario double saut.

Pour installer Integration Services sur un cluster


1. Installez et configurez un cluster avec un ou plusieurs nœuds.

2. (Facultatif) Installez des services cluster, par exemple le Moteur de base de


données SQL Server.

3. Installez Integration Services sur chaque nœud du cluster.

Pour configurer Integration Services en tant que


ressource de cluster
1. Ouvrez l' Administrateur de clusters.

2. Dans l'arborescence de la console, sélectionnez le dossier Groupes.

3. Dans le volet de résultats, sélectionnez le groupe auquel vous prévoyez d'ajouter


Integration Services:

Pour ajouter Integration Services en tant que ressource de cluster au même


groupe de ressources que SQL Server, sélectionnez le groupe auquel SQL
Server appartient.

Pour ajouter Integration Services en tant que ressource de cluster à un


groupe différent de SQL Server, sélectionnez un groupe autre que le groupe
auquel SQL Server appartient.

4. Dans le menu Fichier , pointez sur Nouveau, puis cliquez sur Ressource.

5. Dans la page Nouvelle ressource de l’Assistant Ressource, tapez un nom et


sélectionnez Service générique comme Type de service. Ne modifiez pas la valeur
de Groupe. Cliquez sur Suivant.

6. Dans la page Propriétaires possibles , ajoutez ou supprimez les nœuds du cluster


en tant que propriétaires possibles de la ressource. Cliquez sur Suivant.

7. Pour ajouter des dépendances, dans la page Dépendances , sélectionnez une


ressource sous Ressources disponibles, puis cliquez sur Ajouter. En cas de
basculement, SQL Server et le disque partagé qui stocke les packages Integration
Services doivent être de nouveau en ligne avant la mise en ligne d' Integration
Services . Après avoir sélectionné les dépendances, cliquez sur Suivant.

Pour en savoir plus, voir Add Dependencies to a SQL Server Resource.

8. Sur la page Paramètres de service générique , saisissez MsDtsServer dans la zone


du nom de service. Cliquez sur Suivant.

9. Dans la page Réplication du Registre , cliquez sur Ajouter pour ajouter la clé de
Registre qui identifie l'emplacement du fichier de configuration du service
Integration Services . Ce fichier doit se trouver sur un disque partagé situé dans le
même groupe de ressources que le service Integration Services .

10. Dans la boîte de dialogue Clé de Registre , tapez SOFTWARE\Microsoft\Microsoft


SQL Server\100\SSIS\ServiceConfigFile. Cliquez sur OK, puis sur Terminer.

Le service Integration Services a maintenant été ajouté en tant que ressource de


cluster.

Pour configurer le service Integration Services et le


magasin de packages
1. Localisez le fichier de configuration à l'emplacement %ProgramFiles%\Microsoft
SQL Server\100\DTS\Binn\MsDtsSrvr.ini.xml. Copiez-le sur le disque partagé du
groupe auquel vous avez ajouté le service Integration Services .

2. Sur le disque partagé, créez un dossier nommé Packages , qui doit servir de
magasin de packages. Accordez aux groupes et utilisateurs appropriés des
autorisations en écriture et pour répertorier des dossiers sur le nouveau dossier.

3. Sur le disque partagé, ouvrez le fichier de configuration dans un éditeur de texte


ou XML. Remplacez la valeur de l’élément ServerName par le nom du serveur
virtuel SQL Server qui se trouve dans le même groupe de ressources.

4. Modifiez la valeur de l’élément StorePath pour qu’elle corresponde au chemin


complet du dossier Packages que vous avez créé sur le disque partagé lors d’une
étape précédente.

5. Sur chaque nœud, mettez à jour la valeur de la clé


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL
Server\100\SSIS\ServiceConfigFile dans le Registre en indiquant le nom et le
chemin complet du fichier de configuration du service sur le disque partagé.
Pour mettre le service Integration Services en ligne
Dans l’Administrateur de clusters, sélectionnez le service Integration Services ,
cliquez avec le bouton droit et sélectionnez Mettre en ligne dans le menu
contextuel. Le service Integration Services est maintenant en ligne en tant que
ressource de cluster.
Vue d'ensemble de la sécurité
(Integration Services)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La sécurité dans SQL Server Integration Services est constituée de plusieurs couches qui
fournissent un environnement de sécurité complet et souple. Ces couches de sécurité
incluent l’utilisation de signatures numériques, de propriétés de package, de rôles de
base de données SQL Server et d’autorisations de système d’exploitation. La plupart de
ces fonctionnalités de sécurité se répartissent dans les catégories suivantes : identité et
contrôle d'accès.

Limitation des menaces et des risques de


vulnérabilité
Bien que Integration Services inclue divers mécanismes de sécurité, les packages et les
fichiers que les packages créent ou utilisent peuvent être exploités à des fins
malveillantes.

Le tableau ci-dessous répertorie ces risques ainsi que les mesures proactives que vous
pouvez prendre pour réduire ces risques.

Menace ou Définition Limitation des risques


vulnérabilité

Source du La source d'un package correspond Identifiez la source d'un package en


package à l'individu ou à l'organisation qui a utilisant une signature numérique et
créé le package. L'exécution d'un exécutez uniquement des packages
package à partir d'une source provenant de sources connues et
inconnue ou non approuvée peut approuvées. Pour plus d’informations,
être risquée. consultez Identifier la source de packages
à l’aide de signatures numériques.
Menace ou Définition Limitation des risques
vulnérabilité

Contenu Le contenu d'un package inclut les Contrôlez l'accès à un package et au


d'un package éléments dans le package et leurs contenu en procédant comme suit :
propriétés. Les propriétés peuvent
contenir des données sensibles 1) Pour contrôler l’accès au package lui-
telles qu'un mot de passe ou une même, appliquez les fonctionnalités de
chaîne de connexion. Les éléments sécurité SQL Server aux packages
de package, tels qu'une instruction enregistrés dans la base de données msdb
SQL, peuvent révéler la structure de d’une instance de SQL Server. Aux
votre base de données. packages enregistrés dans le système de
fichiers, appliquez les fonctionnalités de
sécurité du système de fichiers, telles que
les listes de contrôle d'accès (ACL).

2) Pour contrôler l’accès au contenu du


package, définissez le niveau de protection
de celui-ci.

Pour plus d’informations, consultez Vue


d’ensemble de la sécurité (Integration
Services) et Contrôle d’accès pour les
données sensibles présentes dans les
packages.

Sortie d'un Lorsque vous configurez un Pour protéger les configurations et les
package package de façon à utiliser des journaux que le package enregistre dans
configurations, des points de les tables de la base de données SQL
contrôle et une journalisation, le Server , utilisez les fonctionnalités de
package stocke ces informations en sécurité SQL Server .
dehors du package. Les
informations stockées à l'extérieur Pour contrôler l'accès aux fichiers, utilisez
du package peuvent contenir des les listes de contrôle d'accès (ACL)
données sensibles. disponibles dans le système de fichiers.

Pour plus d’informations, consultez


Accéder aux fichiers utilisés par des
packages

Fonctionnalités d'identité
En implémentant des fonctionnalités d'identité dans vos packages, vous pouvez
atteindre l'objectif suivant :

S'assurer d'ouvrir et d'exécuter uniquement des packages provenant de sources


approuvées.
Pour vous assurer d'ouvrir et d'exécuter uniquement des packages provenant de sources
approuvées, vous devez tout d'abord identifier leur source. Pour ce faire, signez les
packages avec des certificats. Puis, lorsque vous ouvrez ou exécutez le package, vous
pouvez vérifier la présence et la validité des signatures numériques à l'aide d'
Integration Services . Pour plus d’informations, consultez Identifier la source de
packages à l’aide de signatures numériques.

Fonctionnalités de contrôle d'accès


En implémentant des fonctionnalités d'identité dans vos packages, vous pouvez
atteindre l'objectif suivant :

S'assurer que seuls les utilisateurs autorisés ouvrent et exécutent des packages.

Pour vous assurer que seuls les utilisateurs autorisés ouvrent et exécutent des packages,
vous devez contrôler l'accès aux informations suivantes.

Contrôler l'accès au contenu des packages, en particulier les données sensibles.

Contrôler l'accès aux packages et configurations de package stockés dans SQL


Server.

Contrôler l’accès aux packages et aux fichiers connexes tels que les configurations,
journaux et fichiers de point de contrôle stockés dans le système de fichiers.

Contrôler l'accès au service Integration Services et aux informations sur les


packages que le service affiche dans SQL Server Management Studio.

Contrôle de l'accès au contenu des packages


Pour restreindre l’accès au contenu d’un package, vous pouvez chiffrer le package en
définissant sa propriété ProtectionLevel. Vous pouvez définir cette propriété au niveau
de protection requis par votre package. Par exemple, dans un environnement de
développement en équipe, vous pouvez chiffrer un package à l'aide d'un mot de passe
uniquement connu des membres de l'équipe qui travaillent sur celui-ci.

Lorsque vous définissez la propriété ProtectionLevel d’un package, Integration Services


détecte automatiquement les propriétés sensibles et les gère en fonction du niveau de
protection spécifié. Par exemple, vous définissez la propriété ProtectionLevel d’un
package à un niveau qui chiffre les informations sensibles à l’aide d’un mot de passe.
Pour ce package, Integration Services chiffre automatiquement les valeurs de toutes les
propriétés sensibles et n'affichera pas les données correspondantes sans que le mot de
passe correct ne soit fourni.
En général, Integration Services identifie des propriétés comme étant sensibles si elles
contiennent des informations telles qu’un mot de passe ou une chaîne de connexion, ou
si ces propriétés correspondent aux variables ou aux nœuds XML générés par la tâche.
Le fait qu' Integration Services considère une propriété comme sensible repose sur le
fait que le développeur du composant Integration Services , tel qu'un gestionnaire de
connexions ou une tâche, l'a désignée comme sensible. Les utilisateurs ne peuvent pas
ajouter de propriétés à, ni en supprimer de, la liste des propriétés considérées sensibles.
Si vous écrivez des tâches personnalisées, des gestionnaires de connexions ou des
composants de flux de données, vous pouvez spécifier les propriétés Integration
Services à considérer comme sensibles.

Pour plus d'informations, consultez Access Control for Sensitive Data in Packages.

Contrôle de l'accès aux packages


Vous pouvez enregistrer des packages Integration Services dans la base de données
d'une instance de SQL Serverou dans le système de fichiers sous la forme de fichiers
XML avec l'extension .dtsx. Pour plus d’informations, consultez Enregistrer des packages.

Enregistrement de packages dans la base de données msdb

L'enregistrement des packages dans la base de données msdb permet d'assurer la


sécurité au niveau du serveur, de la base de données et de la table. Dans la base de
données msdb, les packages Integration Services sont stockés dans la table
sysssispackages. Les packages étant enregistrés dans les tables sysssispackages et
sysdtspackages de la base de données msdb, ils sont automatiquement sauvegardés
lors de la sauvegarde de la base de données msdb.

SQL Server Vous pouvez également protéger les packages stockés dans la base de
données msdb en appliquant des rôles au niveau de la base de données Integration
Services . Integration Services inclut trois rôles fixes au niveau de la base de données :
db_ssisadmin, db_ssisltduser et db_ssisoperator pour le contrôle de l’accès aux
packages. Un rôle de lecture et d'écriture peut être associé à chaque package. Vous
pouvez également définir des rôles personnalisés au niveau de la base de données pour
les utiliser dans les packages Integration Services . Les rôles ne peuvent être
implémentés que sur les packages enregistrés dans la base de données msdb d'une
instance de SQL Server. Pour plus d’informations, consultez Rôles Integration Services
(Service SSIS).

Enregistrement de packages dans le système de fichiers


Si vous stockez des packages dans le système de fichiers plutôt que dans la base de
données msdb, veillez à sécuriser les fichiers de package et les dossiers qui les
contiennent.

Contrôle de l'accès aux fichiers utilisés par des packages


Les packages configurés pour utiliser des configurations, des points de contrôle et une
journalisation génèrent des informations stockées en dehors du package. Ces
informations peuvent être sensibles et doivent être protégées. Les fichiers de point de
contrôle ne peuvent être enregistrés que dans le système de fichiers, mais les
configurations et les journaux peuvent l'être dans le système de fichiers ou dans les
tables d'une base de données SQL Server . Les configurations et les journaux enregistrés
dans SQL Server bénéficient de la sécurité SQL Server , mais les informations écrites
dans le système de fichiers requièrent une sécurité supplémentaire.

Pour plus d’informations, consultez Accéder aux fichiers utilisés par des packages.

Stockage sécurisé des configurations de package


Les configurations de package peuvent être enregistrées dans une table d'une base de
données SQL Server ou dans le système de fichiers.

Les configurations peuvent être enregistrées dans n'importe qu'elle base de données
SQL Server , et non pas uniquement dans la base de données msdb. Vous pouvez donc
spécifier la base de données qui sert de référentiel de configurations de package. Vous
pouvez également spécifier le nom de la table qui contiendra les configurations :
Integration Services crée alors automatiquement la table avec la structure correcte.
L'enregistrement des configurations dans une table permet d'assurer la sécurité au
niveau du serveur, de la base de données et de la table. En outre, les configurations
enregistrées dans SQL Server sont automatiquement sauvegardées lors de la
sauvegarde de la base de données.

Si vous stockez des configurations dans le système de fichiers plutôt que dans SQL
Server, veillez à sécuriser les dossiers qui contiennent les fichiers de configuration de
package.

Pour plus d'informations sur les configurations, consultez Package Configurations.

Contrôle de l'accès au service Integration Services


SQL Server Management Studio utilise le service SQL Server pour établir la liste des
packages stockés. Pour empêcher tout utilisateur non autorisé de consulter des
informations sur les packages stockées sur des ordinateurs locaux et distants, et par
conséquent d'accéder à des informations privées, restreignez l'accès aux ordinateurs qui
exécutent le service SQL Server .

Pour plus d’informations, consultez Accéder au service Integration Services.

Accéder aux fichiers utilisés par des packages


Le niveau de protection de package ne protège pas les fichiers stockés en dehors du
package. Il s'agit des fichiers suivants :

Fichiers de configuration

fichiers de point de contrôle

Fichiers journaux

Ces fichiers doivent être protégés séparément, notamment s'ils contiennent des
informations sensibles.

Fichiers de configuration
Si une configuration contient des informations sensibles, telles que des informations de
connexion et de mot de passe, vous devez penser à enregistrer la configuration dans
SQL Server, ou à utiliser une liste de contrôle d’accès pour limiter l’accès à
l’emplacement ou au dossier de stockage des fichiers et pour autoriser l’accès
uniquement à certains comptes. En règle générale, vous accordez l'accès aux comptes
que vous autorisez à exécuter des packages et à ceux qui gèrent et résolvent les
problèmes des packages, ce qui peut comprendre l'inspection du contenu des fichiers
de configuration, des fichiers de point de contrôle et des fichiers journaux. SQL Server
fournit le stockage le plus sécurisé, car il offre une protection aux niveaux du serveur et
des bases de données. Pour enregistrer des configurations dans SQL Server, vous utilisez
le type de configuration SQL Server . Pour enregistrer dans le système de fichiers, vous
utilisez le type de configuration XML.

Pour plus d’informations, consultez Configurations de package, Créer des configurations


de packageet Considérations sur la sécurité pour une installation SQL Server.

fichiers de point de contrôle


De même, si le fichier de point de contrôle utilisé par le package contient des
informations sensibles, vous devez utiliser une liste de contrôle d'accès pour sécuriser
l'emplacement ou le dossier de stockage du fichier. Les fichiers de points de contrôle
contiennent des informations d'état relatives à la progression du package, ainsi que les
valeurs actuelles de certaines variables. Par exemple, le package peut inclure une
variable personnalisée qui contient un numéro de téléphone. Pour plus d'informations,
consultez Redémarrer des packages à l'aide de points de contrôle.

Fichiers journaux
Les entrées de journaux qui sont écrites dans le système de fichiers doivent également
être sécurisées au moyen d'une liste de contrôle d'accès. Elles peuvent aussi être
stockées dans des tables SQL Server et protégées par la sécurité SQL Server . Les entrées
de journaux peuvent inclure des informations sensibles. Par exemple, si le package
contient une tâche d'exécution SQL qui construit une instruction SQL faisant référence à
un numéro de téléphone, l'entrée de journal de l'instruction SQL inclut le numéro de
téléphone. L'instruction SQL peut également révéler des informations confidentielles
relatives à des noms de tables et de colonnes dans des bases de données. Pour plus
d’informations, consultez Journalisation d’Integration Services (SSIS).

Accéder au service Integration Services


Les niveaux de protection des packages peuvent définir des restrictions quant aux
utilisateurs autorisés à modifier et exécuter un package. Une protection supplémentaire
est nécessaire pour limiter les utilisateurs autorisés à afficher la liste des packages
actuellement en cours d’exécution sur un serveur et ceux qui peuvent arrêter les
packages en cours d’exécution dans SQL Server Management Studio.

SQL Server Management Studio utilise le service SQL Server pour établir la liste des
packages en cours d’exécution. Les membres du groupe Administrateurs de Windows
peuvent afficher et arrêter tous les packages en cours d'exécution. Les utilisateurs
n'appartenant pas au groupe Administrateurs de Windows ne peuvent afficher et arrêter
que les packages qu'ils ont démarrés.

Il est important de restreindre l'accès aux ordinateurs qui exécutent un service SQL
Server , notamment un service SQL Server qui peut énumérer des dossiers distants. Tout
utilisateur authentifié peut demander l'énumération des packages. Même si le service ne
trouve pas le service, il énumère les dossiers. Ces noms de dossiers peuvent être utilisés
par un utilisateur malveillant. Si un administrateur a configuré le service pour qu'il
énumère les dossiers sur un ordinateur distant, les utilisateurs peuvent également voir
des noms de dossiers qu'ils ne pourraient pas voir en temps normal.
Tâches associées
La liste suivante contient des liens vers les rubriques qui indiquent comment effectuer
une tâche particulière relative à la sécurité.

Créer un rôle défini par l'utilisateur

Affecter un rôle de lecture et d'écriture à un package

Implémenter une stratégie de signature en définissant une valeur du Registre

Signer un package à l'aide d'un certificat numérique

Définir ou modifier le niveau de protection des packages


Contrôle d'accès pour les données
sensibles présentes dans les packages
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour protéger les données d'un package Integration Services , vous pouvez définir un
niveau de protection qui permet de protéger uniquement les données sensibles ou
toutes les données du package. En outre, vous pouvez chiffrer ces données avec un mot
de passe ou une clé utilisateur ou vous fier à la base de données pour chiffrer les
données. De plus, le niveau de protection que vous utilisez pour un package n'est pas
nécessairement statique, mais change tout au long du cycle de vie du package. On
définit souvent un niveau de protection pendant le développement et un autre dès le
déploiement du package.

7 Notes

Outre les niveaux de protection décrits dans cette rubrique, vous pouvez utiliser
des rôles fixes au niveau de la base de données pour protéger les packages
enregistrés sur le serveur Integration Services .

Définition des informations sensibles


Dans un package Integration Services , les informations suivantes sont définies comme
sensibles:

La partie mot de passe d'une chaîne de connexion. Cependant, si vous sélectionnez


une option qui chiffre toutes les données, la chaîne de connexion toute entière
sera considérée comme sensible.

Les nœuds XML générés par la tâche qui sont marqués comme sensibles. Le
marquage des nœuds XML est contrôlé par Integration Services et ne peut pas
être modifié par les utilisateurs.

Toute variable marquée comme sensible. Le marquage des variables est contrôlé
par Integration Services.

Le fait qu' Integration Services considère une propriété comme sensible repose sur le
fait que le développeur du composant Integration Services , tel qu'un gestionnaire de
connexions ou une tâche, l'a désignée comme sensible. Les utilisateurs ne peuvent pas
ajouter de propriétés à la liste des propriétés considérées sensibles, ni en supprimer.

Chiffrement
Le chiffrement, tel qu’il est utilisé par les niveaux de protection des packages, est
effectué au moyen de l’API de protection des données (DPAPI) Microsoft , qui fait partie
de l’API de chiffrement (CryptoAPI).

Les niveaux de protection de package qui chiffrent les packages à l'aide de mots de
passe nécessitent que vous fournissiez également un mot de passe. Si vous changez de
niveau de protection en passant d'un niveau qui n'utilise pas de mot de passe à un
niveau qui en utilise, un mot de passe vous sera demandé.

En outre, pour les niveaux de protection utilisant un mot de passe, Integration Services
utilise l’algorithme de chiffrement Triple DES avec une longueur de clé de 192 bits,
disponible dans la bibliothèque de classes .NET Framework (FCL).

Niveaux de protection
Le tableau suivant décrit les niveaux de protection fournis par Integration Services . Les
valeurs entre parenthèses sont des valeurs de l’énumération DTSProtectionLevel . Ces
valeurs apparaissent dans la fenêtre Propriétés que vous utilisez pour configurer les
propriétés du package lorsque vous travaillez avec des packages dans SQL Server Data
Tools (SSDT).

Niveau de protection Description

Ne pas enregistrer les Supprime les valeurs des propriétés sensibles dans le package
informations sensibles lors de son enregistrement. Ce niveau de protection n'effectue
(DontSaveSensitive) pas de chiffrement, mais empêche les propriétés marquées
comme sensibles d'être enregistrées avec le package, rendant
de ce fait les données sensibles inaccessibles aux autres
utilisateurs. Si un utilisateur différent ouvre le package, les
informations sensibles sont remplacées par des espaces et
l'utilisateur doit fournir les informations sensibles.

Utilisé avec l’utilitaire dtutil (dtutil.exe), ce niveau de


protection correspond à la valeur 0.
Niveau de protection Description

Chiffrer avec mot de passe Utilise un mot de passe pour chiffrer l'ensemble du package.
(EncryptAllWithPassword) Le package est chiffré à l'aide d'un mot de passe fourni par
l'utilisateur lorsque le package est créé ou exporté. Pour ouvrir
le package dans le concepteur SSIS ou exécuter le package à
l’aide de l’utilitaire d’invite de commandes dtexec , l’utilisateur
doit fournir le mot de passe du package. Sans le mot de passe,
l'utilisateur ne peut pas accéder au package ni l'exécuter.

En cas d’utilisation avec l’utilitaire dtutil , ce niveau de


protection correspond à la valeur 3.

Chiffrer tout avec la clé Utilise une clé basée sur le profil utilisateur actuel pour chiffrer
utilisateur l'ensemble du package. Seul l’utilisateur qui a créé ou exporté
(EncryptAllWithUserKey) le package peut ouvrir ce dernier dans le concepteur SSIS ou
l’exécuter à l’aide de l’utilitaire d’invite de commandes dtexec .

Avec l’utilitaire dtutil , ce niveau de protection correspond à la


valeur 4.

Remarque : pour les niveaux de protection s’appuyant sur une


clé utilisateur, Integration Services se base sur les normes
DPAPI. Pour plus d’informations sur DPAPI, consultez la
bibliothèque MSDN à l’adresse
https://msdn.microsoft.com/library.

Chiffrer les données sensibles Utilise un mot de passe pour chiffrer uniquement les valeurs
avec un mot de passe des propriétés sensibles dans le package. DPAPI est utilisé
(EncryptSensitiveWithPassword) pour ce chiffrement. Les données sensibles sont enregistrées
en tant que partie du package, mais ces données sont
chiffrées à l'aide d'un mot de passe fourni par l'utilisateur
actuel lorsque le package est créé ou exporté. Pour ouvrir le
package dans le concepteur SSIS , l'utilisateur doit fournir le
mot de passe du package. Si le mot de passe n'est pas fourni,
le package est ouvert sans les données sensibles et l'utilisateur
actuel doit fournir de nouvelles valeurs pour les données
sensibles. Si l'utilisateur tente d'exécuter le package sans
fournir de mot de passe, l'exécution du package échoue. Pour
plus d'informations sur les mots de passe et l'exécution de
lignes de commande, consultez dtexec Utility.

Avec l’utilitaire dtutil , ce niveau de protection correspond à la


valeur 2.
Niveau de protection Description

Chiffrer les données sensibles Utilise une clé basée sur le profil utilisateur actuel pour chiffrer
avec une clé utilisateur uniquement les valeurs des propriétés sensibles dans le
(EncryptSensitiveWithUserKey) package. Seul le même utilisateur qui utilise le même profil
peut charger le package. Si un utilisateur différent ouvre le
package, les informations sensibles sont remplacées par des
espaces et l'utilisateur actuel doit fournir de nouvelles valeurs
pour les informations sensibles. Si l'utilisateur tente d'exécuter
le package, l'exécution du package échoue. DPAPI est utilisé
pour ce chiffrement.

Avec l’utilitaire dtutil , ce niveau de protection correspond à la


valeur 1.

Remarque : pour les niveaux de protection s’appuyant sur une


clé utilisateur, Integration Services se base sur les normes
DPAPI. Pour plus d’informations sur DPAPI, consultez la
bibliothèque MSDN à l’adresse
https://msdn.microsoft.com/library.

Se fier au stockage du serveur Protège le package entier à l'aide des rôles de base de
pour le chiffrement données SQL Server . Cette option est prise en charge quand
(ServerStorage) un package est enregistré dans la base de données msdb SQL
Server . En outre, le catalogue SSISDB utilise le niveau de
protection ServerStorage

Cette option n'est pas prise en charge lorsqu'un package est


enregistré dans le système de fichiers à partir de SQL Server
Data Tools (SSDT).

Paramètre de niveau de protection et catalogue


SSISDB
Le catalogue SSISDB utilise le niveau de protection ServerStorage . Lorsque vous
déployez un projet Integration Services sur le serveur Integration Services , le catalogue
chiffre automatiquement les données du package et les valeurs sensibles. Le catalogue
déchiffre automatiquement les données lorsque vous les récupérez.

Si vous exportez le projet (.ispac) du serveur Integration Services vers le système de


fichiers, le système change automatiquement le niveau de protection en
EncryptSensitiveWithUserKey. Si vous importez un projet à l'aide de l' Assistant
Importation de projet Integration Services dans SQL Server Data Tools (SSDT), la
propriété ProtectionLevel dans la fenêtre Propriétés indique une valeur de
EncryptSensitiveWithUserKey.
Définition du niveau de protection en fonction
du cycle de vie du package
Vous définissez le niveau de protection d’un package SQL Server Integration Services
lorsque vous commencez son développement dans SQL Server Data Tools (SSDT). Plus
tard, lorsque le package est déployé, importé ou exporté à partir de Integration Services
dans SQL Server Management Studio, ou copié à partir de SQL Server Data Tools (SSDT)
vers SQL Server, le magasin de packages SSIS ou le système de fichiers, vous pouvez
mettre à jour le niveau de protection du package. Par exemple, si vous créez et
enregistrez des packages sur votre ordinateur avec une des options de niveau de
protection à clé utilisateur, vous souhaiterez sans doute modifier le niveau de protection
lorsque vous donnerez le package à d'autres utilisateurs, pour qu'ils puissent l'ouvrir.

En général, vous modifiez le niveau de protection selon les étapes suivantes :

1. Pendant le développement, laissez le niveau de protection de packages défini à la


valeur par défaut, EncryptSensitiveWithUserKey. Ce paramètre aide à s'assurer
que seul le développeur peut afficher les valeurs sensibles dans le package. Ou
vous pouvez envisager d'utiliser EncryptAllWithUserKeyou DontSaveSensitive.

2. Lorsqu'il est temps de déployer les packages, vous devez affecter un niveau de
protection qui ne dépend pas de la clé utilisateur du développeur. Par conséquent,
vous devez sélectionner en général EncryptSensitiveWithPasswordou
EncryptAllWithPassword. Chiffrez les packages en assignant un mot de passe fort
temporaire également connu de l'équipe d'exploitation dans l'environnement de
production.

3. Une fois que les packages ont été déployés dans l'environnement de production,
l'équipe d'exploitation peut rechiffrer les packages déployés en assignant un mot
de passe fort connu uniquement d'eux. Ils peuvent également chiffrer les packages
déployés en sélectionnant EncryptSensitiveWithUserKey ou
EncryptAllWithUserKey, et en utilisant les informations d'identification locales du
compte qui exécutera les packages.

Définir ou modifier le niveau de protection des


packages
Pour contrôler l’accès au contenu des packages et aux valeurs sensibles qu’ils
contiennent, telles que les mots de passe, définissez la valeur de la propriété
ProtectionLevel . Les packages contenus dans un projet doivent avoir le même niveau
de protection que le projet pour permettre sa génération. Si vous modifiez le paramètre
de propriété ProtectionLevel du projet, vous devez mettre à jour manuellement le
paramètre de propriété des packages.

Pour obtenir une vue d’ensemble des fonctionnalités de sécurité dans Integration
Services, consultez Vue d’ensemble de la sécurité (Integration Services).

Les procédures dans cette rubrique décrivent comment utiliser SQL Server Data Tools
(SSDT) ou l’utilitaire en ligne de commande dtutil pour modifier la propriété
ProtectionLevel .

7 Notes

En plus des procédures dans cette rubrique, vous pouvez en général définir ou
modifier la propriété ProtectionLevel d’un package quand vous importez ou
exportez le package. Vous pouvez également modifier la propriété ProtectionLevel
d’un package quand vous utilisez l’Assistant Importation et exportation SQL Server
pour enregistrer un package.

Pour définir ou modifier le niveau de protection d'un


package dans les outils de données SQL Server
1. Examinez les valeurs disponibles pour la propriété ProtectionLevel dans la section
Niveaux de protection, puis déterminez la valeur appropriée pour votre package.

2. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services qui
contient le package.

3. Ouvrez le package dans le Concepteur SSIS .

4. Si la fenêtre Propriétés n'affiche pas les propriétés du package, cliquez sur l'aire de
conception.

5. Dans la fenêtre Propriétés, dans le groupe Sécurité , sélectionnez la valeur


appropriée pour la propriété ProtectionLevel .

Si vous sélectionnez un niveau de protection qui requiert un mot de passe, entrez


le mot de passe comme valeur de la propriété PackagePassword .

6. Dans le menu Fichier , sélectionnez Enregistrer les éléments sélectionnés pour


enregistrer le package modifié.
Pour définir ou modifier le niveau de protection de
package à l'invite de commandes
1. Examinez les valeurs disponibles pour la propriété ProtectionLevel dans la section
Niveaux de protection, puis déterminez la valeur appropriée pour votre package.

2. Examinez les mappages pour l’option Encrypt dans la rubrique Utilitaire dtutilet
déterminez l’entier approprié à utiliser comme valeur de la propriété
ProtectionLevel sélectionnée.

3. Ouvrez une fenêtre d’invite de commandes.

4. À l’invite de commandes, naviguez jusqu’au dossier qui contient le ou les packages


pour lesquels vous souhaitez définir la propriété ProtectionLevel .

Les exemples de syntaxe affichés à l'étape suivante supposent que ce dossier est le
dossier actif.

5. Définissez ou modifiez le niveau de protection des packages en utilisant une


commande semblable à celle des exemples suivants :

La commande suivante définit la propriété ProtectionLevel d’un package


dans le système de fichiers au niveau 2, « Chiffrer les données sensibles avec
un mot de passe », avec le mot de passe « strongpassword » :

dtutil.exe /file "C:\Package.dtsx" /encrypt


file;"C:\Package.dtsx";2;strongpassword

La commande suivante définit la propriété ProtectionLevel de tous les


packages dans un dossier spécifique dans le système de fichiers au niveau 2,
« Chiffrer les données sensibles avec un mot de passe », avec le mot de passe
« strongpassword » :

for %f in (*.dtsx) do dtutil.exe /file %f /encrypt

file;%f;2;strongpassword

Si vous utilisez une commande semblable dans un fichier de commandes,


entrez l'espace réservé de fichier, « % f », comme « %% f » dans le fichier de
commandes.

Boîte de dialogue Niveau de protection du


package
Utilisez la boîte de dialogue Niveau de protection du package pour mettre à jour le
niveau de protection d'un package. Le niveau de protection détermine la méthode de
protection (par mot de passe ou par clé utilisateur) et l'étendue de la protection du
package. La protection peut inclure toutes les données ou uniquement les données
sensibles.

Pour comprendre les exigences et les options de la sécurité du package, il peut être utile
de consulter Vue d’ensemble de la sécurité (Integration Services).

Options
Niveau de protection du package
Sélectionnez un niveau de protection dans la liste.

Mot de passe
Si vous utilisez le niveau de protection Chiffrer les données sensibles avec un mot de
passe ou Chiffrer toutes les données avec un mot de passe , tapez un mot de passe.

Retapez le mot de passe


Entrez à nouveau le mot de passe.

Boîte de dialogue Mot de passe du package


Utilisez la boîte de dialogue Mot de passe du package pour fournir le mot de passe
d'un package qui est chiffré par un mot de passe. Vous devez fournir un mot de passe si
le package utilise le niveau de protection Chiffrer les données sensibles avec un mot de
passeou Chiffrer toutes les données avec un mot de passe .

Options
Mot de passe
Entrez le mot de passe.

Voir aussi
Packages Integration Services (SSIS)
Vue d’ensemble de la sécurité (Integration Services)
Utilitaire dtutil
Identifier la source de packages à l'aide
de signatures numériques
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Il est possible de signer un package Integration Services avec un certificat numérique


pour identifier sa source. Après avoir signé un package avec un certificat numérique,
vous pouvez utiliser Integration Services pour vérifier la signature numérique avant de
charger le package. Pour vérifier la signature à l’aide d’ Integration Services , vous devez
définir une option dans SQL Server Data Tools (SSDT) ou dans l’utilitaire dtexec
(dtexec.exe), ou définir une valeur de Registre facultative.

Signer un package à l’aide d’un certificat


numérique
Avant de pouvoir signer un package avec un certificat numérique, vous devez obtenir ou
créer le certificat. Une fois que vous possédez le certificat, vous pouvez l'utiliser pour
signer le package. Pour plus d’informations sur la façon d’obtenir un certificat et de
signer un package avec ce certificat, consultez Signer un package à l’aide d’un certificat
numérique.

Définir une option pour vérifier la signature


d’un package
SQL Server Data Tools (SSDT) et l’utilitaire dtexec proposent tous les deux une option
qui configure Integration Services pour la vérification de la signature numérique d’un
package signé. L’utilisation de SQL Server Data Tools (SSDT) ou de l’utilitaire dtexec
dépend de si vous souhaitez vérifier tous les packages ou simplement des packages
spécifiques :

Pour vérifier la signature numérique de tous les packages avant de charger les
packages au moment de la conception, définissez l'option Vérifier la signature
numérique lors du chargement d'un package dans SQL Server Data Tools (SSDT).
Cette option est un paramètre global pour tous les packages dans SQL Server Data
Tools (SSDT).
Pour vérifier la signature numérique d’un package individuel, spécifiez l’option
/VerifyS[igned] quand vous utilisez l’utilitaire dtexec pour exécuter le package.
Pour plus d'informations, consultez Utilitaire dtexec.

Définir une valeur du Registre pour vérifier la


signature d’un package
Integration Services prend également en charge une valeur de Registre facultative,
BlockedSignatureStates, que vous pouvez utiliser pour gérer la stratégie de chargement
des packages signés et non signés d’une organisation. La valeur de Registre peut
empêcher le chargement de packages si les packages ne sont pas signés ou s'ils
possèdent des signatures non valides ou non approuvées. Pour plus d’informations sur
la définition de cette valeur de Registre, consultez Implémenter une stratégie de
signature en définissant une valeur du Registre.

7 Notes

La valeur de Registre BlockedSignatureStates facultative peut spécifier un


paramètre plus restrictif que l’option de signature numérique définie dans SQL
Server Data Tools (SSDT) ou au niveau de la ligne de commande dtexec . Dans cette
situation, le paramètre du Registre plus restrictif a priorité sur les autres
paramètres.

Implémenter une stratégie de signature en


définissant une valeur du Registre
Vous pouvez utiliser une valeur du Registre facultative pour gérer la stratégie d'une
organisation pour charger des packages signés ou non signés. Si vous utilisez cette
valeur du Registre, vous devez créer cette valeur du Registre sur tous les ordinateurs sur
lesquels les packages Integration Services s'exécuteront et sur lesquels vous souhaitez
appliquer la stratégie. Une fois la valeur du Registre définie, Integration Services vérifiera
les signatures avant de charger les packages.

La procédure présentée dans cet article explique comment ajouter la valeur DWORD
facultative BlockedSignatureStates à la clé de Registre
HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\150\SSIS\Setup\DTSPath.

7 Notes
Un emplacement de registre sous 150 représente SQL Server 2019, sous 140 il
représente SQL Server 2017, sous 130 il représente SQL Server 2016, sous 120 il
représente SQL Server 2014 et sous 110 il représente SQL Server 2012.

La valeur de données dans BlockedSignatureStates détermine si un package doit être


bloqué s’il possède une signature non approuvée ou non valide, ou s’il n’est pas signé.

En ce qui concerne l’état des signatures utilisées pour signer les packages, la valeur du
Registre BlockedSignatureStates emploie les définitions suivantes :

Une signature valide est une signature qui peut être lue correctement.

Une signature non valide est une signature dont la somme de contrôle déchiffrée
(hachage unidirectionnel du code de package chiffré par une clé privée) ne
correspond pas à la somme de contrôle déchiffrée calculée dans le cadre du
chargement des packages Integration Services .

Une signature approuvée est une signature créée à l’aide d’un certificat numérique
signé par une autorité de certification racine de confiance. Ce paramètre n'exige
pas la recherche du signataire dans la liste Éditeurs approuvés de l'utilisateur.

Une signature non approuvée est une signature qui ne peut pas être vérifiée en
tant que signature émise par une autorité de certification racine de confiance ou
bien une signature qui n’est pas actuelle.

Le tableau suivant répertorie les valeurs valides des données DWORD et leur stratégie
associée.

Value Description

0 Pas de restriction administrative.

1 Bloquer les signatures non valides.

Ce paramètre ne bloque pas les packages non signés.

2 Bloquer les signatures non valides et non approuvées.

Ce paramètre ne bloque pas les packages non signés mais bloque les signatures
générées automatiquement.

3 Bloquer les signatures non valides et non approuvées et les packages non signés.

Ce paramètre bloque lui aussi les signatures générées automatiquement.


7 Notes

Le paramètre recommandé pour BlockedSignatureStates est 3. Ce paramètre offre


une protection maximale contre des packages non signés ou des signatures non
valides ou non approuvées. Néanmoins, ce paramètre recommandé peut ne pas
convenir dans tous les cas. Pour plus d’informations sur la signature des ressources
numériques, consultez la rubriqueIntroduction to Code Signing(Introduction à la
signature du code) dans MSDN Library.

Pour implémenter une stratégie de signature pour des


packages
1. Dans le menu Démarrer , cliquez sur Exécuter.

2. Dans la boîte de dialogue Exécuter, tapez Regeditet cliquez sur OK.

3. Localisez la clé de registre


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS.

4. Cliquez avec le bouton droit sur MSDTS, pointez sur Nouveau, puis cliquez sur
Valeur DWORD.

5. Mettez à jour le nom de la nouvelle valeur en utilisant BlockedSignatureStates.

6. Cliquez avec le bouton droit sur BlockedSignatureStates et cliquez sur Modifier.

7. Dans la boîte de dialogue Édition de la valeur DWORD , tapez la valeur 0, 1, 2 ou


3.

8. Cliquez sur OK.

9. Dans le menu Fichier , cliquez sur Quitter.

Signer un package à l'aide d'un certificat


numérique
Cette rubrique décrit comment signer un package Integration Services à l'aide d'un
certificat numérique. Vous pouvez utiliser une signature numérique avec d'autres
paramètres pour empêcher le chargement et l'exécution d'un package non valide.

Avant de pouvoir signer un package Integration Services , vous devez effectuer les
tâches suivantes :
Créez ou obtenez une clé privée à associer au certificat et stockez cette clé privée
sur l'ordinateur local.

Obtenez un certificat en vue de la signature du code à partir d'une autorité de


certification approuvée. Vous pouvez utiliser l'une des méthodes suivantes pour
obtenir ou créer un certificat :

Obtenez un certificat à partir d'une autorité de certification commerciale


publique qui émet des certificats.

Obtenez un certificat à partir d'un serveur de certificats, qui permet à une


organisation d'émettre des certificats de façon interne. Vous devez ajouter le
certificat racine utilisé pour signer le certificat dans le magasin Autorités de
certification racines de confiance . Pour ajouter le certificat racine, vous pouvez
utiliser le composant logiciel enfichable MMC ( Microsoft Management
Console) Certificats. Pour plus d'informations, consultez la rubrique «Services de
certificats» dans MSDN Library (éventuellement en anglais).

Créez votre propre certificat à des fins de test uniquement. L'outil de création
de certificat Makecert.exe génère des certificats X.509 à des fins de tests. Pour
plus d’informations, consultez la rubrique «Outil Certificate Creation Tool
(Makecert.exe)» dans MSDN Library.

Pour plus d'informations sur les certificats, recherchez le composant logiciel


enfichable Certificats dans l'aide en ligne. Pour plus d'informations sur la façon de
signer des ressources numériques, consultez la rubrique «Signature et vérification
de code à l'aide d'Authenticode» dans MSDN Library (éventuellement en anglais).

Assurez-vous que le certificat a été activé pour la signature de code. Pour


déterminer si un certificat est activé pour la signature du code, examinez les
propriétés du certificat dans le composant logiciel enfichable Certificats.

Stockez le certificat dans le magasin Personnel.

Après avoir terminé les tâches précédentes, vous pouvez utiliser la procédure suivante
pour signer un package.

Pour signer un package


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package à signer.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.


3. Dans le concepteur SSIS , dans le menu SSIS , cliquez sur Signature numérique.

4. Dans la boîte de dialogue Signature numérique , cliquez sur Signer.

5. Dans la boîte de dialogue Sélectionner un certificat , sélectionnez un certificat.

6. (Facultatif) Cliquez sur Afficher le certificatpour afficher les informations sur le


certificat.

7. Cliquez sur OK pour fermer la boîte de dialogue Sélectionner un certificat .

8. Cliquez sur OK pour fermer la boîte de dialogue Signature numérique .

9. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Bien que le package ait été signé, vous devez maintenant configurer Integration
Services pour vérifier la signature numérique avant de charger le package.

Référence de l'interface utilisateur de la boîte


de dialogue Signature numérique
Utilisez la boîte de dialogue Signature numérique pour signer un package par une
signature numérique ou pour la supprimer. La boîte de dialogue Signature numérique
est disponible via l'option Signature numérique dans le menu SSIS dans SQL Server
Data Tools (SSDT).

Pour plus d’informations, voir Signer un package à l’aide d’un certificat numérique.

Options
Signe
Cliquez sur cette option pour ouvrir la boîte de dialogue Sélectionner un certificat et
sélectionner le certificat à utiliser.

Remove
Cliquez sur cette option pour supprimer la signature numérique.

Voir aussi
Packages Integration Services (SSIS)
Vue d’ensemble de la sécurité (Integration Services)
Rôles Integration Services (Service SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

SQL Server Integration Services fournit certains rôles fixes de niveau base de données
pour aider à sécuriser l’accès aux packages stockés dans SQL Server. Les rôles
disponibles diffèrent selon que vous enregistrez les packages dans la base de données
du catalogue SSIS (SSISDB) ou dans la base de données msdb.

Rôles dans la base de données du catalogue


SSIS (SSISDB)
La base de données du catalogue SSIS (SSISDB) fournit les rôles fixes au niveau de la
base de données décrits ci-après. Ces rôles contribuent à sécuriser l’accès aux packages
et aux informations sur ces derniers.

ssis_admin: ce rôle fournit un accès administratif complet à la base de données du


catalogue SSIS.

ssis_logreader : ce rôle fournit les autorisations d’accès à toutes les vues associées
aux journaux des opérations SSISDB.

La liste de vues est la suivante : [catalog].[projects], [catalog].[packages], [catalog].


[operations], [catalog].[extended_operation_info], [catalog].[operation_messages],
[catalog].[event_messages], [catalog].[execution_data_statistics], [catalog].
[execution_component_phases], [catalog].[execution_data_taps], [catalog].
[event_message_context], [catalog].[executions], [catalog].[executables], [catalog].
[executable_statistics], [catalog].[validations], [catalog].
[execution_parameter_values] et [catalog].[execution_property_override_values].

Par conception, des autorisations sont accordées sur les vues et les procédures stockées
qui sont affectées au rôle public de rôle fixe SQL Server. Les autorisations ne donnent
pas aux utilisateurs l’accès pour exécuter ou modifier des packages, mais uniquement
des autorisations pour interagir avec le mécanisme interne de la base de données
SSISDB, et qui, à leur tour, déterminent les autorisations réelles.

Rôles dans la base de données msdb


SQL Server Integration Services inclut trois rôles fixes de niveau base de données
db_ssisadmin, db_ssisltduser et db_ssisoperator. Ces rôles permettent de contrôler
l’accès aux packages enregistrés dans la base de données msdb. Vous affectez des rôles
à un package à l'aide de SQL Server Management Studio. Les affectations de rôles sont
enregistrées dans la base de données ms .

Actions de lecture et d'écriture


Le tableau suivant décrit les actions de lecture et d’écriture de Windows et des rôles
fixes de niveau base de données dans Integration Services.

Role Action de Action d'écriture


lecture
Role Action de Action d'écriture
lecture

db_ssisadmin Énumérer Importer des packages.


ses
ou packages. Supprimer ses packages.

sysadmin Énumérer Supprimer tous les packages.


tous les
packages. Modifier les rôles de ses packages.

Afficher ses Modifier tous les rôles de package.


packages.

Afficher
tous les **** Avertissement ****Il se peut que les membres du rôle
packages. db_ssisadmin et du rôle dc_admin puissent élever leurs
privilèges à sysadmin. Cette élévation de privilège peut se
Exécuter produire, car ces rôles peuvent modifier les packages
ses Integration Services et les packages Integration Services
packages. peuvent être exécutés par SQL Server à l’aide du contexte de
sécurité sysadmin de l’Agent SQL Server . Pour vous prémunir
Exécuter contre cette élévation de privilège lors de l'exécution de plans
tous les de maintenance, de jeux d'éléments de collecte de données et
packages. d'autres packages Integration Services , configurez des travaux
de l'Agent SQL Server qui exécutent des packages pour
Exporter ses l'utilisation d'un compte proxy doté de privilèges limités ou
packages. ajoutez uniquement des membres sysadmin aux rôles
db_ssisadmin et dc_admin.
Exporter
tous les
packages.

Exécuter
tous les
packages
dans
l'Agent SQL
Server .
Role Action de Action d'écriture
lecture

db_ssisltduser Énumérer Importer des packages.


ses
packages. Supprimer ses packages.

Énumérer Modifier les rôles de ses packages.


tous les
packages.

Afficher ses
packages.

Exécuter
ses
packages.

Exporter ses
packages.

db_ssisoperator Énumérer Aucun


tous les
packages.

Afficher
tous les
packages.

Exécuter
tous les
packages.

Exporter
tous les
packages.

Exécuter
tous les
packages
dans
l'Agent SQL
Server .
Role Action de Action d'écriture
lecture

Administrateurs Afficher les Arrêter tous les packages en cours d'exécution.


Windows détails
d'exécution
de tous les
packages
en cours
d'exécution.

Table sysssispackages
La table sysssispackages dans la base de données msdb contient les packages
enregistrés dans SQL Server. Pour plus d’informations, consultez sysssispackages
(Transact-SQL).

La table sysssispackages inclut des colonnes contenant des informations sur les rôles
affectés aux packages.

Le rôle readerrole spécifie le rôle qui bénéficie d'un accès en lecture au package.

La colonne writerrole spécifie le rôle qui bénéficie d'un accès en écriture au


package.

La colonne ownersid contient l'identificateur de sécurité unique de l'utilisateur qui


a créé le package. Cette colonne définit le propriétaire du package.

Autorisations
Par défaut, les autorisations des rôles fixes de niveau base de données db_ssisadmin et
db_ssisoperator et l’identificateur de sécurité unique de l’utilisateur qui a créé le
package s’appliquent au rôle de lecteur pour les packages, tandis que les autorisations
du rôle db_ssisadmin et l’identificateur de sécurité unique de l’utilisateur qui a créé le
package s’appliquent au rôle de rédacteur. Un utilisateur doit être membre du rôle
db_ssisadmin, db_ssisltduserou db_ssisoperator pour bénéficier d’un accès en lecture
au package. Un utilisateur doit être membre du rôle db_ssisadmin pour bénéficier d’un
accès en écriture.

Accès aux packages


Les rôles fixes au niveau de la base de données fonctionnent conjointement avec les
rôles définis par l'utilisateur. Les rôles définis par l’utilisateur sont les rôles que vous
créez dans SQL Server Management Studio , puis que vous utilisez pour attribuer des
autorisations aux packages. Pour accéder à un package, un utilisateur doit être membre
du rôle défini par l’utilisateur et du rôle fixe pertinent de niveau base de données
Integration Services . Par exemple, si des utilisateurs sont membres du rôle défini par
l’utilisateur AuditUsers affecté à un package, ils doivent aussi être membres du rôle
db_ssisadmin, db_ssisltduserou db_ssisoperator pour disposer d’un accès en lecture au
package.

Si vous n'affectez pas des rôles définis par l'utilisateur aux packages, les rôles de base de
données fixes déterminent l'accès aux packages.

Si vous voulez utiliser des rôles définis par l’utilisateur, vous devez les ajouter à la base
de données msdb avant de pouvoir les affecter à des packages. Vous pouvez créer de
nouveaux rôles de base de données dans SQL Server Management Studio.

Les rôles de niveau base de données Integration Services accordent des droits sur les
tables système Integration Services de la base de données msdb.

SQL Server (le service MSSQLSERVER) doit être démarré pour que vous puissiez vous
connecter au moteur de base de données et accéder à la base de données msdb .

Pour affecter des rôles dans les packages, vous devez effectuer les tâches suivantes.

Ouvrir l'Explorateur d'objets et se connecter à Integration Services

Avant de pouvoir affecter des rôles à des packages à l'aide de SQL Server
Management Studio, vous devez ouvrir l'Explorateur d'objets dans SQL Server
Management Studio et vous connecter à Integration Services.

Le service Integration Services doit être démarré pour que vous puissiez vous
connecter à Integration Services.

Affecter des rôles de lecture et d'écriture aux packages

Vous pouvez affecter un rôle de lecture et d'écriture à chaque package.

Affecter un rôle de lecture et d'écriture à un


package
Vous pouvez affecter un rôle de lecture et d'écriture à chaque package.

Affecter un rôle de lecture et d'écriture à un package


1. Dans l'Explorateur d'objets, localisez la connexion Integration Services .

2. Développez le dossier Packages stockés, puis le sous-dossier contenant le package


auquel vous voulez affecter des rôles.

3. Cliquez avec le bouton droit sur le package auquel vous voulez affecter des rôles.

4. Dans la boîte de dialogue Rôles de package , sélectionnez un rôle de lecture dans


la liste Rôle Lecteur et un rôle d'écriture dans la liste Rôle Rédacteur .

5. Cliquez sur OK.

Créer un rôle défini par l'utilisateur

Pour créer un rôle défini par l'utilisateur


1. Ouvrez SQL Server Management Studio.

2. Cliquez sur Explorateur d'objets dans le menu Affichage .

3. Dans la barre d'outils de l'Explorateur d'objets, cliquez sur Connecter, puis sur
Moteur de base de données.

4. Dans la boîte de dialogue Se connecter au serveur , entrez un nom de serveur et


sélectionnez un mode d'authentification. Vous pouvez utiliser un point (.), (local)
ou localhost pour indiquer le serveur local.

5. Cliquez sur Connecter.

6. Développez Bases de données, Bases de données système, msdb, Sécurité et Rôles.

7. Dans le nœud Rôles, cliquez avec le bouton droit sur Rôles de base de données,
puis cliquez sur Nouveau rôle de base de données.

8. Sur la page Général, entrez un nom, et, si vous le souhaitez, spécifiez un


propriétaire et des schémas appartenant à un rôle et ajoutez des membres de rôle.

9. Vous pouvez également cliquer sur Autorisations pour configurer les autorisations
pour les objets.

10. Vous pouvez également cliquer sur Propriétés étendues pour configurer les
éventuelles propriétés étendues.

11. Cliquez sur OK.


Référence de l'interface utilisateur de la boîte
de dialogue Rôles de package
Utilisez la boîte de dialogue Rôles de package , disponible dans SQL Server
Management Studio, pour spécifier les rôles au niveau de la base de données qui
possèdent un accès en lecture au package et les rôles au niveau de la base de données
qui possèdent un accès en écriture au package. Les rôles au niveau de la base de
données s’appliquent uniquement aux packages stockés dans la base de données SQL
Server msdb.

Les rôles répertoriés dans la boîte de dialogue sont les rôles actuels de la base de
données système msdb . Si aucun rôle n'est sélectionné, les rôles Integration Services
par défaut s'appliquent. Par défaut, le rôle de lecteur inclut db_ssisadmin,
db_ssisoperatoret l’utilisateur qui a créé le package. Un utilisateur membre de l'un de
ces rôles ou qui a créé les packages peut énumérer, consulter, exporter et exécuter des
packages. Par défaut, le rôle de rédacteur inclut db_ssisadmin et l’utilisateur qui a créé
le package. Un utilisateur membre de ce rôle et l'utilisateur qui a créé les packages
peuvent importer, supprimer et modifier des packages.

La colonne ownersid de la table sysssispackages contient l'identificateur de sécurité


unique de l'utilisateur qui a créé le package.

Options
Nom du package
Spécifiez le nom du package.

Rôle Lecteur
Sélectionnez un rôle dans la liste.

Rôle Rédacteur
Sélectionnez un rôle dans la liste.
Surveiller les packages en cours
d’exécution et autres opérations
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous pouvez surveiller les exécutions des packages Integration Services , les validations
de projet et d’autres opérations en utilisant un ou plusieurs des outils suivants. Certains
outils tels que les drainages de données ne sont disponibles que pour les projets
déployés sur le serveur Integration Services .

Journaux d’activité

Pour plus d’informations, consultez Journalisation d’Integration Services (SSIS).

Rapports

Pour plus d'informations, consultez Reports for the Integration Services Server.

Les vues

Pour plus d’informations, consultez Affichages (Catalogue Integration Services.

Compteurs de performance

Pour plus d’informations, consultez Compteurs de performances.

Drainages de données

7 Notes

Cet article décrit comment monitorer des packages SSIS en cours d’exécution de
manière générale et comment les monitorer au niveau local. Vous pouvez
également exécuter et monitorer des packages SSIS dans Azure SQL Database.
Pour plus d’informations, consultez Effectuer un « lift-and-shift » des charges de
travail SQL Server Integration Services vers le cloud.

Bien que vous puissiez également exécuter des packages SSIS sur Linux, aucun outil
de monitoring n’est fourni sur Linux. Pour plus d’informations, consultez Extraire,
transformer et charger des données sur Linux avec SSIS.

Types d'opération
Plusieurs types d’opérations différents sont surveillés dans le catalogue SSISDB , sur le
serveur Integration Services . Plusieurs messages peuvent être associés à chaque
opération. Chaque message peut être classifié dans l'un des différents types. Par
exemple, un message peut être de type Informations, Warning ou Error. Pour obtenir la
liste complète des types de messages, consultez la documentation de l’affichage
Transact-SQL catalog.operation_messages (base de données SSISDB). Pour obtenir la
liste complète des types d’opérations, consultez catalog.operations (base de données
SSISDB).

Neuf types d'état différents sont utilisés pour indiquer l'état d'une opération. Pour
obtenir la liste complète des types de statuts, consultez l’affichage catalog.operations
(base de données SSISDB).

Boîte de dialogue Opérations actives


Utilisez la boîte de dialogue Opérations actives pour afficher l'état des opérations
Integration Services en cours d'exécution sur le serveur Integration Services , par
exemple les opérations de déploiement, de validation et d'exécution de package. Ces
données sont stockées dans le catalogue SSISDB.

Pour plus d’informations sur les affichages Transact-SQL associés, consultez


catalog.operations (base de données SSISDB), catalog.validations (base de données
SSISDB) et catalog.executions (base de données SSISDB)

Ouvrir la boîte de dialogue Opérations actives


1. Ouvrez SQL Server Management Studio.

2. Se connecter au moteur de base de données Microsoft SQL Server

3. Dans l’Explorateur d’objets, développez le nœud Integration Services , cliquez


avec le bouton droit sur SSISDB, puis cliquez sur Opérations actives.

Configurer les options


Type
Spécifie le type d'opération. Voici les valeurs possibles pour le champ Type et les valeurs
correspondantes dans la colonne operations_type de la vue catalog.operations de
Transact-SQL.

Description du champ de type Valeur operations_type


Description du champ de type Valeur operations_type

Initialisation d'Integration Services 1

Nettoyage des opérations (travail de l'Agent SQL) 2

Nettoyage des versions du projet (travail de l'Agent SQL) 3

Déployer le projet 101

Restaurer le projet 106

Créer et démarrer l'exécution du package 200

Arrêter l'opération (arrêt d'une validation ou d'une exécution) 202

Valider le projet 300

Valider le package 301

Configurer le catalogue 1 000

Stop
Cliquez pour arrêter une opération en cours d'exécution.

Affichage et arrêt des packages exécutés sur le


serveur Integration Services
La base de données SSISDB stocke l'historique de l'exécution dans des tables internes
qui ne sont pas visibles par les utilisateurs. Cependant, elle expose les informations dont
vous avez besoin via des vues publiques que vous pouvez interroger. Elle fournit
également des procédures stockées que vous pouvez appeler pour effectuer des tâches
courantes liées aux packages.

En général, vous gérez des objets Integration Services sur le serveur dans SQL Server
Management Studio. Cependant, vous pouvez également interroger les vues de base de
données et appeler les procédures stockées directement, ou écrire du code personnalisé
qui appelle l'API managé. SQL Server Management Studio et l'API managé interrogent
les vues et appellent les procédures stockées pour effectuer de nombreuses tâches. Par
exemple, vous pouvez afficher la liste des packages Integration Services qui sont en
cours d'exécution sur le serveur, et demander l'arrêt de packages si nécessaire.

Affichage de la liste de packages en cours d'exécution


Vous pouvez afficher la liste des packages en cours d'exécution sur le serveur dans la
boîte de dialogue Opérations actives . Pour plus d'informations, consultez Active
Operations Dialog Box.

Pour plus d'informations sur les autres méthodes que vous pouvez utiliser pour afficher
la liste de packages en cours d'exécution, consultez les rubriques suivantes.

Accès Transact-SQL
Pour afficher la liste des packages qui s’exécutent sur le serveur, interrogez la vue,
catalog.executions (base de données SSISDB) pour les packages qui ont l’état 2.

Accès par programmation via l'API managé


Consultez l’espace de noms Microsoft.SqlServer.Management.IntegrationServices et ses
classes.

Arrêt d'un package en cours d'exécution


Vous pouvez demander l'arrêt d'un package en cours d’exécution dans la boîte de
dialogue Opérations actives . Pour plus d'informations, consultez Active Operations
Dialog Box.

Pour plus d'informations sur les autres méthodes que vous pouvez utiliser pour arrêter
l'exécution d'un package, consultez les rubriques suivantes.

Accès Transact-SQL
Pour arrêter un package en cours d’exécution sur le serveur, appelez la procédure
stockée, catalog.stop_operation (base de données SSISDB).

Accès par programmation via l'API managé


Consultez l’espace de noms Microsoft.SqlServer.Management.IntegrationServices et ses
classes.

Affichage de l'historique des packages qui ont été


exécutés
Pour afficher l’historique des packages exécutés dans Management Studio, utilisez le
rapport Toutes les exécutions . Pour plus d’informations sur le rapport Toutes les
exécutions et d’autres rapports standard, consultez Rapports du serveur Integration
Services.

Pour plus d'informations sur les autres méthodes que vous pouvez utiliser pour afficher
l'historique des packages en cours d'exécution, consultez les rubriques suivantes.
Accès Transact-SQL
Pour afficher des informations relatives aux packages qui ont été exécutés, interrogez la
vue, catalog.executions (base de données SSISDB).

Accès par programmation via l'API managé


Consultez l’espace de noms Microsoft.SqlServer.Management.IntegrationServices et ses
classes.

Rapports du serveur Integration Services


Dans la version actuelle de SQL Server Integration Services, les rapports standard sont
disponibles dans SQL Server Management Studio pour vous aider à superviser les
projets Integration Services déployés sur le serveur Integration Services. Ces rapports
vous aident à consulter l'état et l'historique du package et, si nécessaire, à identifier la
cause des erreurs d'exécution du package.

En haut de chaque page de rapport, l'icône de retour permet de revenir à la page


précédente, l'icône de rafraîchissement actualise les informations affichées dans la page
et l'icône d'impression vous permet d'imprimer la page en cours.

Pour plus d’informations sur le déploiement de packages sur le serveur Integration


Services, consultez Déployer des projets et des packages Integration Services (SSIS).

Tableau de bord Integration Services


Le rapport Tableau de bord Integration Services fournit une vue d’ensemble de toutes
les exécutions de package sur l’instance de SQL Server . Pour chaque package qui s'est
exécuté sur le serveur, le tableau de bord vous permet de « zoomer » pour rechercher
des détails spécifiques sur les erreurs d'exécution du package qui se sont produites.

Le rapport affiche les sections d'informations suivantes.

Section Description

Informations Affiche le nombre d'exécutions à différents états (échec, en cours d'exécution,


sur réussi, autres) au cours des dernières 24 heures.
l'exécution

Informations Affiche le nombre total de packages exécutés au cours des dernières 24 heures.
sur le
package
Section Description

Informations Affiche les connexions utilisées durant les exécutions qui se sont soldées par un
de échec au cours des dernières 24 heures.
connexion

Informations Affiche les détails des exécutions terminées qui se sont produites au cours des
détaillées dernières 24 heures. Par exemple, cette section présente le nombre d'exécutions
sur les qui se sont soldées par un échec par rapport au nombre total d'exécutions, à la
packages durée des exécutions (en secondes) et à la durée moyenne des exécutions au
cours des trois derniers mois.

Pour afficher des informations supplémentaires pour un package, cliquez sur Vue
d’ensemble, Tous les messageset Performances de l’exécution.

Le rapport Performances de l’exécution indique la durée de la dernière instance


d’exécution, ainsi que les heures de début et de fin et l’environnement qui a été
appliqué.

Le graphique et la table associée inclus dans le rapport Performances de


l’exécution indiquent la durée des 10 dernières exécutions réussies du package.
Le tableau indique également la durée moyenne d'exécution sur une période de
trois mois. Différents environnements et valeurs littérales ont pu être appliqués au
moment de l'exécution de ces 10 exécutions réussies du package.

Enfin, le rapport Performances de l’exécution affiche le temps d’activité et le


temps total écoulé des composants de flux de données du package. Le temps
d'activité fait référence au temps total d'exécution d'un composant au cours de
toutes les phases, et le temps total fait référence au temps total écoulé pour un
composant. Le rapport affiche ces informations uniquement pour les composants
de package lorsque le niveau de journalisation de la dernière exécution du
package est défini sur Performances ou Commentaires.

Le rapport Vue d’ensemble indique l’état des tâches du package. Le rapport


Messages indique les messages d’événements et les messages d’erreur du
package et les tâches, par exemple les heures de début et de fin et le nombre de
lignes écrites.

Vous pouvez également cliquer sur Afficher les messages dans le rapport Vue
d’ensemble pour accéder au rapport Messages . Vous pouvez également cliquer
sur Afficher la vue d’ensemble dans le rapport Messages pour accéder au rapport
Vue d’ensemble .

Vous pouvez filtrer la table affichée dans une page en cliquant sur Filtrer et en
sélectionnant des critères dans la boîte de dialogue Paramètres du filtre . Les critères de
filtre disponibles dépendent des données qui sont affichées. Vous pouvez modifier
l’ordre de tri du rapport en cliquant sur l’icône de tri dans la boîte de dialogue
Paramètres du filtre .
Rapport Toutes les exécutions
Le rapport Toutes les exécutions affiche un résumé de toutes les exécutions d’
Integration Services effectuées sur le serveur. Il peut y avoir plusieurs exécutions de
l'exemple de package. Contrairement au rapport Tableau de bord Integration Services ,
vous pouvez configurer le rapport Toutes les exécutions pour afficher les exécutions qui
ont démarré au cours d’une plage de dates. Les dates peuvent couvrir plusieurs jours,
mois ou années.

Le rapport affiche les sections d'informations suivantes.

Section Description

Filtrer Indique le filtre actif appliqué au rapport, tel que la plage d'heures de début.

Informations Indique l'heure de début, l'heure de fin, la durée d'exécution de chaque package.
sur Vous pouvez afficher la liste des valeurs de paramètre utilisées avec une exécution
l'exécution de package, telles que les valeurs qui ont été passées à un package enfant à l'aide
de la tâche d'exécution de package. Pour afficher la liste des paramètres, cliquez
sur Vue d'ensemble.

Pour plus d’informations sur l’utilisation de la tâche d’exécution de package afin de


rendre des valeurs disponibles dans un package enfant, consultez Tâche d’exécution de
package.

Pour plus d’informations sur les paramètres, consultez Paramètres des projets et des
packages Integration Services (SSIS).

Toutes les connexions


Le rapport Toutes les connexions fournit les informations suivantes pour les connexions
qui ont échoué, pour les exécutions qui se sont produites sur l’instance de SQL Server .

Le rapport affiche les sections d'informations suivantes.

Section Description

Filtrer Indique le filtre actif appliqué au rapport, tel que les connexions avec une chaîne
spécifiée et la plage Heure du dernier échec .

Vous définissez la plage Heure du dernier échec pour afficher uniquement les échecs
de connexion qui se sont produits pendant une plage de dates. La plage peut couvrir
plusieurs jours, mois ou années.

Détails Affiche la chaîne de connexion, le nombre d'exécutions pendant lesquelles une


connexion a échoué et la date du dernier échec de connexion.
Rapport Toutes les opérations
Le rapport Toutes les opérations affiche un résumé de toutes les opérations Integration
Services effectuées sur le serveur, notamment les déploiements, validations et
exécutions de package, ainsi que d’autres opérations d’administration. Comme avec le
Tableau de bord Integration Services, vous pouvez appliquer un filtre à la table afin de
réduire les informations affichées.

Rapport Toutes les validations


Le rapport Toutes les validations affiche un résumé de toutes les validations d’
Integration Services effectuées sur le serveur. Le résumé affiche les informations
relatives à chaque validation telles que l'état, l'heure de début et l'heure de fin. Chaque
entrée du résumé inclut un lien vers les messages générés pendant la validation.
Comme avec le Tableau de bord Integration Services, vous pouvez appliquer un filtre à
la table afin de réduire les informations affichées.

Rapports personnalisés
Vous pouvez ajouter un rapport personnalisé (fichier .rdl) au nœud de catalogue SSISDB
sous le nœud Catalogues Integration Services dans SQL Server Management Studio.
Avant d'ajouter le rapport, vérifiez que vous utilisez une convention d'affectation des
noms en trois parties pour qualifier le projet référencé comme table source. Dans le cas
contraire, SQL Server Management Studio affiche une erreur. La convention d’affectation
de noms est <base de données>.<propriétaire>.<objet>. Par exemple, le nom «
SSISDB.interne.exécutions ».

7 Notes

Quand vous ajoutez des rapports personnalisés au nœud SSISDB sous le nœud
Bases de données , le préfixe SSISDB n’est pas nécessaire.

Pour obtenir des instructions sur la manière de créer et d’ajouter un rapport


personnalisé, consultez Ajouter un rapport personnalisé à Management Studio.

Afficher les rapports du serveur Integration


Services
Dans la version actuelle de SQL Server Integration Services, les rapports standard sont
disponibles dans SQL Server Management Studio pour vous aider à superviser les
projets Integration Services déployés sur le serveur Integration Services. Pour plus
d’informations sur les rapports, consultez Rapports du serveur Integration Services.

Pour afficher les rapports du serveur Integration Services


1. Dans SQL Server Management Studio, développez le nœud Catalogues
Integration Services dans l’Explorateur d’objets.

2. Cliquez avec le bouton droit sur SSISDB, cliquez sur Rapports, puis cliquez sur
Rapports standard.

3. Cliquez sur une ou plusieurs des valeurs suivantes pour afficher un rapport.

Tableau de bord Integration Services

Toutes les exécutions

Toutes les validations

Toutes les opérations

Toutes les connexions

Voir aussi
Exécution de projets et de packages
Rapports de dépannage pour l’exécution des packages
Événements journalisés par un package
Integration Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un package Integration Services consigne différents messages d'événements dans le


journal des événements des applications Windows. Un package enregistre ces messages
lorsqu'il démarre, lorsqu'il s'arrête et lorsque certains problèmes se produisent.

Cette rubrique fournit des informations sur les messages d'événements courants qu'un
package enregistre dans le journal des événements des applications. Par défaut, un
package enregistre certains de ces messages même si vous n'avez pas activé
l'enregistrement sur le package. Toutefois, il existe d'autres messages que le package
enregistrera seulement si vous avez activé l'enregistrement sur le package. Que le
package enregistre ces messages par défaut ou parce que l'enregistrement a été activé,
la source d'événements pour les messages est SQLISPackage.

Pour obtenir des informations générales sur l’exécution des packages SSIS, consultez
Exécution des projets et des packages.

Pour plus d’informations sur la résolution des packages en cours d’utilisation, consultez
Outils de dépannage pour l’exécution des packages.

Messages relatifs à l'état du package


Lorsque vous exécutez un package Integration Services , le package enregistre
généralement différents messages sur la progression et l'état du package. Le tableau ci-
dessous répertorie ces messages.

7 Notes

Le package enregistrera les messages du tableau ci-dessous même si vous n'avez


pas activé l'enregistrement pour le package.

ID de Nom symbolique Texte Notes


l’événement

12288 DTS_MSG_PACKAGESTART Package « » L'exécution du package a


démarré. commencé.
ID de Nom symbolique Texte Notes
l’événement

12289 DTS_MSG_PACKAGESUCCESS Fin du Le package s'est exécuté avec


package « » succès et ne s'exécute plus.
réussie.

12290 DTS_MSG_PACKAGECANCEL Le package « Le package ne s'exécute plus


%1!s! » a été parce qu'il a été annulé.
annulé.

12291 DTS_MSG_PACKAGEFAILURE Échec du Le package n'a pas pu s'exécuter


package « ». avec succès et son exécution s'est
arrêtée.

Par défaut, dans une nouvelle installation, Integration Services est configuré de façon à
ne pas journaliser certains événements en rapport avec l'exécution de packages dans le
journal des événements des applications. Ce paramètre limite le nombre d’entrées de
journal des événements quand vous utilisez la fonctionnalité du collecteur de données
de la version actuelle de SQL Server Integration Services. Les événements qui ne sont
pas enregistrés incluent l'ID d'événement 12288, « le Package a démarré », et l'ID
d'événement 12289, « le Package a fini avec succès ». Pour enregistrer ces événements
dans le journal des événements des applications, ouvrez le Registre pour y apporter des
modifications. Dans le Registre, recherchez le nœud
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\SSIS et
modifiez la valeur DWORD du paramètre LogPackageExecutionToEventLog en
remplaçant 0 par 1. Toutefois, dans une installation de mise à niveau, Integration
Services est configuré pour enregistrer ces deux événements. Pour désactiver
l'enregistrement, modifiez la valeur du paramètre LogPackageExecutionToEventLog en
remplaçant 1 par 0.

Messages associés à la journalisation des


packages
Si vous avez activé l’enregistrement sur le package, le journal des événements des
applications représente l’une des destinations prises en charge par les fonctionnalités
d’enregistrement facultatives dans les packages Integration Services . Pour plus
d’informations, consultez Journalisation d’Integration Services (SSIS).

Lorsque vous avez activé l'enregistrement sur le package et que l'emplacement du


journal correspond au journal des événements des applications, le package enregistre
les entrées en rapport aux informations suivantes :
Messages sur la phase dans laquelle le package se trouve au cours de son
exécution.

Messages sur les événements particuliers qui se produisent alors que le package
s'exécute.

Messages sur les phases d'exécution du package

ID de Nom symbolique Texte Notes


l’événement

12544 DTS_MSG_EVENTLOGENTRY Nom d'événement Lorsque vous


: %1%r Message : configurez la
%9%r Opérateur : journalisation
%2%r Nom de la du package
source : %3%r ID dans le
de la source : journal des
%4%r ID événements
d'exécution : des
%5%r Heure de applications,
début : %6%r différents
Heure de fin : messages
%7%r Code de utilisent ce
données : %8 format
générique.

12556 DTS_MSG_EVENTLOGENTRY_PACKAGESTART Nom d'événement Le package a


: %1%r Message : démarré.
%9%r Opérateur :
%2%r Nom de la
source : %3%r ID
de la source :
%4%r ID
d'exécution :
%5%r Heure de
début : %6%r
Heure de fin :
%7%r Code de
données : %8
ID de Nom symbolique Texte Notes
l’événement

12547 DTS_MSG_EVENTLOGENTRY_PREVALIDATE Nom d'événement La validation


: %1%r Message : de l'objet est
%9%r Opérateur : sur le point
%2%r Nom de la de
source : %3%r ID commencer.
de la source :
%4%r ID
d'exécution :
%5%r Heure de
début : %6%r
Heure de fin :
%7%r Code de
données : %8

12548 DTS_MSG_EVENTLOGENTRY_POSTVALIDATE Nom d'événement La validation


: %1%r Message : de l'objet est
%9%r Opérateur : terminée.
%2%r Nom de la
source : %3%r ID
de la source :
%4%r ID
d'exécution :
%5%r Heure de
début : %6%r
Heure de fin :
%7%r Code de
données : %8

12552 DTS_MSG_EVENTLOGENTRY_PROGRESS Nom d'événement Ce message


: %1%r Message : générique
%9%r Opérateur : signale la
%2%r Nom de la progression
source : %3%r ID du package.
de la source :
%4%r ID
d'exécution :
%5%r Heure de
début : %6%r
Heure de fin :
%7%r Code de
données : %8
ID de Nom symbolique Texte Notes
l’événement

12546 DTS_MSG_EVENTLOGENTRY_POSTEXECUTE Nom d'événement L'objet a fini


: %1%r Message : son travail.
%9%r Opérateur :
%2%r Nom de la
source : %3%r ID
de la source :
%4%r ID
d'exécution :
%5%r Heure de
début : %6%r
Heure de fin :
%7%r Code de
données : %8

12557 DTS_MSG_EVENTLOGENTRY_PACKAGEEND Nom d'événement L'exécution


: %1%r Message : du package
%9%r Opérateur : est terminée.
%2%r Nom de la
source : %3%r ID
de la source :
%4%r ID
d'exécution :
%5%r Heure de
début : %6%r
Heure de fin :
%7%r Code de
données : %8

Messages relatifs aux événements qui se produisent


Le tableau ci-dessous répertorie seulement certains des messages générés par des
événements. Pour obtenir une liste plus complète des messages d’erreur,
d’avertissement et d’informations utilisés par Integration Services , consultez Guide de
référence des erreurs et des messages propres à Integration Services.

ID de Nom symbolique Texte Notes


l’événement
ID de Nom symbolique Texte Notes
l’événement

12251 DTS_MSG_EVENTLOGENTRY_TASKFAILED Nom d'événement La tâche a


: %1%r Message : échoué.
%9%r Opérateur :
%2%r Nom de la
source : %3%r ID
de la source :
%4%r ID
d'exécution :
%5%r Heure de
début : %6%r
Heure de fin :
%7%r Code de
données : %8

12250 DTS_MSG_EVENTLOGENTRY_ERROR Nom d'événement Ce message


: %1%r Message : signale une
%9%r Opérateur : erreur qui
%2%r Nom de la s'est produite.
source : %3%r ID
de la source :
%4%r ID
d'exécution :
%5%r Heure de
début : %6%r
Heure de fin :
%7%r Code de
données : %8

12249 DTS_MSG_EVENTLOGENTRY_WARNING Nom d'événement Ce message


: %1%r Message : signale un
%9%r Opérateur : avertissement
%2%r Nom de la qui s'est
source : %3%r ID produit.
de la source :
%4%r ID
d'exécution :
%5%r Heure de
début : %6%r
Heure de fin :
%7%r Code de
données : %8
ID de Nom symbolique Texte Notes
l’événement

12258 DTS_MSG_EVENTLOGENTRY_INFORMATION Nom d'événement Ce message


: %1%r Message : signale des
%9%r Opérateur : informations
%2%r Nom de la qui ne sont
source : %3%r ID pas associées
de la source : à une erreur
%4%r ID ou à un
d'exécution : avertissement.
%5%r Heure de
début : %6%r
Heure de fin :
%7%r Code de
données : %8

Afficher les entrées de journal dans la fenêtre


Journaux d’événements
Cette procédure explique comment exécuter un package et afficher les entrées de
journal qu'il écrit. Vous pouvez visualiser les entrées du journal en temps réel. Les
entrées de journal écrites dans la fenêtre Journaux d’événements peuvent également
être copiées et enregistrées pour une analyse ultérieure.

Il n’est pas nécessaire d’écrire les entrées de journal dans un journal pour écrire ces
entrées dans la fenêtre Journaux d’événements .

Pour afficher les entrées de journal


1. Dans SQL Server Data Tools, ouvrez le projet Integration Services contenant le
package souhaité.

2. Dans le menu SSIS , cliquez sur Journaux d'événements. Vous pouvez


éventuellement afficher la fenêtre Journaux d’événements en mappant la
commande View.LogEvents à une combinaison de clés de votre choix dans la page
Clavier de la boîte de dialogue Options .

3. Dans le menu Déboguer , cliquez sur Démarrer le débogage.

Dès que l’exécution rencontre les événements et les messages personnalisés


activés à des fins de journalisation, les entrées de journal de chaque événement ou
message sont écrites dans la fenêtre Journaux d’événements .
4. Dans le menu Déboguer , cliquez sur Arrêter le débogage.

Les entrées de journal restent disponibles dans la fenêtre Journaux d’événements


jusqu’à la prochaine exécution du package, l’exécution d’un autre package ou la
fermeture de SQL Server Data Tools.

5. Affichez les entrées de journal dans la fenêtre Journaux d’événements .

6. Le cas échéant, cliquez sur les entrées de journal à copier, cliquez avec le bouton
droit, puis cliquez sur Copier.

7. Vous pouvez également double-cliquer sur une entrée de journal, puis dans la
boîte de dialogue Entrée de journal , afficher les détails d’une seule entrée de
journal.

8. Dans la boîte de dialogue Entrée de journal , cliquez sur les flèches haut et bas
pour afficher l’entrée de journal précédente ou suivante, puis cliquez sur l’icône de
copie pour copier l’entrée de journal.

9. Ouvrez un éditeur de texte, collez, puis enregistrez l'entrée de journal dans un


fichier texte.
Journalisation d'Integration Services
(SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

SQL Server Integration Services contient des modules fournisseur d'informations que
vous pouvez utiliser pour implémenter la journalisation dans les packages, les
conteneurs et les tâches. Avec la journalisation, vous pouvez capturer des informations
d'exécution sur un package qui vous aideront à auditer et à résoudre les problèmes d'un
package à chaque exécution. Un journal peut ainsi capturer le nom de l'opérateur ayant
exécuté le package et l'heure à laquelle le package a débuté et s'est terminé.

Vous pouvez configurer l'étendue des informations enregistrées lors d'une exécution de
package sur le serveur Integration Services . Pour plus d’informations, consultez Activer
la journalisation des exécutions de package sur le serveur SSIS.

Vous pouvez également inclure la journalisation lorsque vous exécutez un package à


l'aide de l'utilitaire d'invite de commandes dtexec . Pour plus d'informations sur les
arguments d'invite de commandes prenant en charge la journalisation, consultez dtexec
Utility.

Configurer la journalisation dans les Outils de


données SQL Server
Les journaux sont associés aux packages et configurés au niveau du package. Chaque
tâche ou conteneur dans un package peut journaliser des informations dans n'importe
quel journal de package. Les tâches et conteneurs d'un package peuvent être activés
pour la journalisation même si le package lui-même ne l'est pas. Par exemple, vous
pouvez activer la journalisation sur une tâche d'exécution SQL sans activer la
journalisation sur le package parent. Un package, un conteneur ou une tâche peuvent
écrire dans plusieurs journaux. Vous pouvez activer la journalisation sur le package
uniquement, ou choisir d'activer la journalisation sur une tâche ou un conteneur
individuel contenu dans le package.

Lorsque vous ajoutez le journal à un package, vous choisissez le module fournisseur


d'informations et l'emplacement du journal. Le module fournisseur d'informations
spécifie le format des données du journal, par exemple, une base de données SQL
Server ou un fichier texte.
Integration Services comprend les modules fournisseurs d'informations suivants :

Le module fournisseur d'informations pour les fichiers texte, qui enregistre les
entrées du journal dans des fichiers texte ASCII au format CSV. L'extension de nom
de fichier par défaut de ce fournisseur est .log.

Le module fournisseur d'informations pour le SQL Server Profiler , qui enregistre


des traces que vous pouvez ensuite afficher à l'aide de SQL Server Profiler.
L'extension de nom de fichier par défaut de ce fournisseur est .trc.

7 Notes

Vous ne pouvez pas utiliser le module fournisseur d’informations SQL Server


Profiler dans un package exécuté en mode 64 bits.

Le module fournisseur d'informations pour SQL Server , qui enregistre les entrées
du journal dans la table sysssislog d'une base de données SQL Server . Vous
pouvez rencontrer une baisse des performances si vous vous connectez à une base
de données système comme une base de données master ou msdb. Une bonne
pratique consiste à créer une base de données séparée pour la journalisation
Integration Services.

Le module fournisseur d'informations pour les événements Windows, qui


enregistre les entrées du journal des applications dans le journal des événements
Windows sur l'ordinateur local.

Le module fournisseur d'informations pour les fichiers XML, qui enregistre les
fichiers journaux dans un fichier XML. L'extension de nom de fichier par défaut de
ce fournisseur est .xml.

Si vous ajoutez un module fournisseur d'informations à un package ou configurez la


journalisation par programmation, vous pouvez utiliser un ProgID ou un ClassID pour
identifier ce module, au lieu d'utiliser les noms affichés par le concepteur SSIS dans la
boîte de dialogue Configurer les journaux SSIS .

Le tableau suivant énumère les ProgID et ClassID des modules fournisseurs


d'informations inclus dans Integration Services , ainsi que l'emplacement des journaux
dans lesquels les modules fournisseurs d'informations écrivent.

Module ProgID ClassID Location


fournisseur
d'informations
Module ProgID ClassID Location
fournisseur
d'informations

Fichier texte DTS.LogProviderTextFile {0A039101- Le gestionnaire de


ACC1-4E06- connexions de fichiers utilisé
943F- par le module fournisseur
279948323883} d'informations spécifie le
chemin d'accès du fichier
texte.

SQL Server DTS.LogProviderSQLProfiler {E93F6300- Le gestionnaire de


Profiler AE0C-4916- connexions de fichiers utilisé
A7BF- par le module fournisseur
A8D0CE12C77A} d'informations spécifie le
chemin d'accès du fichier
utilisé par SQL Server Profiler.

SQL Server DTS.LogProviderSQLServer {94150B25- Le gestionnaire de


6AEB-4C0D- connexions OLE DB utilisé par
996D- le module fournisseur
D37D1C4FDEDA} d’informations spécifie la
base de données SQL Server
contenant la table sysssislog
avec les entrées de journal.

Journal des DTS.LogProviderEventLog {071CC8EB- Le journal des applications


événements C343-4CFF- dans l'Observateur
Windows 8D58- d'événements Windows
564B92FCA3CF} contient les informations de
journalisation de Integration
Services .

Fichier XML DTS.LogProviderXMLFile {440945A4- Le gestionnaire de


2A22-4F19- connexions de fichiers utilisé
B577- par le module fournisseur
EAF5FDDC5F7A} d'informations spécifie le
chemin d'accès du fichier
XML.

Vous pouvez également créer des modules fournisseurs d'informations personnalisés.


Pour plus d’informations, consultez Creating a Custom Log Provider.

Les modules fournisseurs d'informations d'un package sont membres de la collection


des modules fournisseurs d'informations du package. Si vous créez un package et
implémentez la journalisation à l'aide du concepteur SSIS , vous pouvez afficher la liste
des membres de la collection dans les dossiers Module fournisseur d'informations de
l'onglet Explorateur de package du concepteur SSIS .
Un module fournisseur d'informations est configuré en indiquant le nom et la
description du module et en spécifiant le gestionnaire de connexions qu'il utilise. Le
module fournisseur d'informations SQL Server utilise un gestionnaire de connexions OLE
DB. Le fichier texte, SQL Server Profileret les modules fournisseurs d'informations pour
les fichiers XML utilisent tous des gestionnaires de connexions de fichiers. Le module
fournisseur d'informations pour les événements Windows n'utilise pas de gestionnaire
de connexions, car il écrit directement dans le journal des événements Windows. Pour
plus d'informations, consultez OLE DB Connection Manager et File Connection Manager.

Personnalisation de la journalisation
Pour personnaliser la journalisation d'un événement ou d'un message personnalisé,
Integration Services fournit un schéma d'informations fréquemment journalisées à
inclure dans les entrées de journal. Le schéma de journal Integration Services définit les
informations que vous pouvez journaliser. Vous pouvez sélectionner les éléments à
partir du schéma de journal pour chaque entrée de journal.

Un package et ses conteneurs et tâches ne doivent pas journaliser la même information,


et les tâches au sein du même package ou conteneur peuvent journaliser des
informations différentes. Par exemple, un package peut journaliser des informations
d'opérateur lorsque le package démarre, une tâche peut journaliser la source de l'échec
de la tâche et une autre tâche peut journaliser les informations lorsque des erreurs
surviennent. Si un package et ses conteneurs et tâches utilisent plusieurs journaux, les
mêmes informations sont écrites dans tous les journaux.

Vous pouvez sélectionner un niveau de journalisation adapté à vos besoins en spécifiant


les événements à journaliser et les informations à journaliser pour chaque événement.
Vous pouvez estimer que certains événements fournissent des informations plus utiles
que d'autres. Par exemple, vous pouvez ne journaliser que les noms d'ordinateur et
d'opérateur pour l'événement PreExecute tout en journalisant toutes les informations
disponibles pour l'événement Error .

Pour empêcher les fichiers journaux d'occuper de grands volumes sur l'espace disque ou
pour éviter une journalisation excessive qui pourrait nuire aux performances, vous
pouvez limiter la journalisation en sélectionnant des informations et événements
spécifiques à journaliser. Par exemple, vous pouvez configurer un journal pour qu'il ne
capture que la date et le nom de l'ordinateur pour chaque erreur.

Dans le concepteur SSIS , vous pouvez définir les options de journalisation en utilisant la
boîte de dialogue Configurer les journaux SSIS .
Schéma de journal
Le tableau suivant décrit les éléments du schéma de journal.

Élément Description

Computer Le nom de l'ordinateur sur lequel l'événement du journal est survenu.

Opérateur L'identité de l'utilisateur ayant lancé le package.

SourceName Le nom du conteneur ou de la tâche dans laquelle l'événement du journal est


survenu.

SourceID L'identificateur unique du package ; la boucle Foreach, la boucle For ou le


conteneur de séquences ; ou la tâche dans laquelle l'événement du journal est
survenu.

ExecutionID L'identificateur global unique (GUID) de l'instance d'exécution du package.

Remarque : l’exécution d’un package unique peut créer des entrées de journal
avec des valeurs différentes pour l’élément ExecutionID. Par exemple, lorsque vous
exécutez un package dans SQL Server Data Tools, la phase de validation peut créer
des entrées de journal avec un élément ExecutionID correspondant à SQL Server
Data Tools. Toutefois, la phase d'exécution peut créer des entrées de journal avec
un élément ExecutionID correspondant à dtshost.exe. Autre exemple : lorsque
vous exécutez un package qui contient des tâches d'exécution de package,
chacune de ces tâches exécute un package enfant. Ces packages enfants peuvent
créer des entrées de journal comportant un élément ExecutionID différent de celui
des entrées de journal créées par le package parent.

MessageText Un message associé à l'entrée de journal.

DataBytes Un tableau d'octets spécifique à l'entrée du journal. La signification de ce champ


varie en fonction de l'entrée du journal.

Le tableau suivant décrit trois éléments supplémentaires du schéma de journal qui ne


sont pas disponibles sous l'onglet Détails de la boîte de dialogue Configurer les
journaux SSIS .

Élément Description

StartTime Heure à laquelle le conteneur ou la tâche commence à s'exécuter.

EndTime Heure à laquelle le conteneur ou la tâche arrête de s'exécuter.


Élément Description

DataCode Valeur entière facultative qui contient généralement une valeur de l’énumération
DTSExecResult qui indique le résultat de l’exécution du conteneur ou de la tâche :

0 - Succès

1 - Échec

2 - Terminée

3 - Annulée

Entrées du journal
Integration Services prend en charge les entrées de journal sur des événements
prédéfinis et fournit des entrées de journal personnalisées pour de nombreux objets
Integration Services . La boîte de dialogue Configurer les journaux SSIS du concepteur
SSIS répertorie ces événements et ces entrées de journal personnalisées.

Le tableau suivant décrit les événements prédéfinis qui peuvent être activés pour écrire
des entrées de journal lorsque des événements générés à l'exécution surviennent. Ces
entrées de journal s'appliquent aux exécutables, au package et aux conteneurs et tâches
inclus dans le package. Le nom de l'entrée de journal est le même que l'événement
généré à l'exécution et qui a provoqué l'écriture de l'entrée de journal.

Événements Description

OnError Écrit une entrée de journal lorsqu'une erreur se produit.

OnExecStatusChanged Écrit une entrée de journal lorsqu'une tâche (et non un conteneur)
est interrompue ou reprise pendant le débogage.

OnInformation Écrit une entrée de journal pendant la validation et l'exécution d'un


exécutable pour rapporter des informations.

OnPostExecute Écrit une entrée de journal immédiatement après la fin de l'exécution


de l'exécutable.

OnPostValidate Écrit une entrée de journal lorsque la validation de l'exécutable est


terminée.

OnPreExecute Écrit une entrée de journal immédiatement avant le début de


l'exécution de l'exécutable.

OnPreValidate Écrit une entrée de journal lorsque la validation de l'exécutable


débute.
Événements Description

OnProgress Écrit une entrée de journal lorsqu'une progression quantifiable a été


réalisée par l'exécutable.

OnQueryCancel Écrit une entrée de journal pour chaque point de jonction dans le
traitement de la tâche où il est possible d'annuler l'exécution.

OnTaskFailed Écrit une entrée de journal lorsqu'une tâche échoue.

OnVariableValueChanged Écrit une entrée de journal lorsque la valeur d'une variable est
modifiée.

OnWarning Écrit une entrée de journal lorsqu'un avertissement survient.

PipelineComponentTime Pour chaque composant de flux de données, écrit une entrée de


journal pour chaque phase de validation et d'exécution. L'entrée de
journal spécifie le temps de traitement de chaque phase.

Diagnostic Écrit une entrée de journal qui fournit des informations de diagnostic.

DiagnosticEx Par exemple, vous pouvez enregistrer un message avant et après


chaque appel à un fournisseur de données externes. Pour plus
d’informations, consultez Outils de dépannage pour l’exécution des
packages.

Consignez l’événement DiagnosticEx lorsque vous souhaitez


rechercher les noms des colonnes dans le flux de données qui
contiennent des erreurs. Cet événement consigne un mappage de
lignage de flux de données dans le journal. Vous pouvez alors
rechercher le nom de colonne dans ce mappage de lignage à l’aide
de l’identificateur de colonne capturé par une sortie d’erreur. Pour
plus d’informations, consultez Gestion des erreurs dans les données.

Notez que l’événement DiagnosticEx ne conserve pas l’espace blanc


dans sa sortie XML afin réduire la taille du journal. Pour améliorer la
lisibilité, copiez le journal dans un éditeur XML (dans Visual Studio,
par exemple) prenant en charge la mise en forme XML et la mise en
surbrillance de la syntaxe.

Remarque : si vous consignez l’événement DiagnosticEx avec le


fournisseur de journaux SQL Server, la sortie risque d’être tronquée.
Le champ message du module fournisseur d’informations SQL Server
est de type nvarchar(2048). Pour prévenir le risque de troncation,
utilisez un fournisseur de journaux différent lorsque vous consignez
l’événement DiagnosticEx .

Le package ainsi que de nombreuses tâches contiennent des entrées du journal


personnalisées qui peuvent être activées pour la journalisation. Par exemple, la tâche
d’envoi de courrier fournit l’entrée de journal personnalisée SendMailTaskBegin , qui
journalise les informations quand l’exécution de la tâche démarre, mais avant d’envoyer
un message électronique. Pour plus d’informations, consultez Custom Messages for
Logging.

Différentiation entre des copies de packages


Les données de journalisation incluent le nom et le GUID du package auxquels les
entrées de journal appartiennent. Si vous créez un package par copie d'un package
existant, le nom et le GUID du package existant sont également copiés. Il est donc
possible que deux packages aient le même nom et le même GUID, ce qui les rend
difficiles à distinguer dans les données du journal.

Pour lever l'ambiguïté, vous devez mettre à jour le nom et le GUID des nouveaux
packages. Dans SQL Server Data Tools (SSDT), vous pouvez régénérer le GUID dans la
propriété ID et mettre à jour la valeur de la propriété Name dans la fenêtre Propriétés.
Vous pouvez également modifier le GUID et le nom par programmation ou en utilisant
l'invite de commandes dtutil . Pour plus d’informations, consultez Définir les propriétés
d’un package et Utilitaire dtutil.

Options de journalisation des parents


Souvent, les options de journalisation des tâches et conteneurs de séquences et de
boucles For ou Foreach correspondent à celle du package ou du conteneur parent. Dans
ce cas, vous pouvez configurer ces éléments pour qu'ils héritent des options de
journalisation de leur conteneur parent. Par exemple, dans un conteneur de boucles For
qui contient une tâche d'exécution SQL, cette tâche peut utiliser les options de
journalisation définies pour le conteneur de boucles For. Pour utiliser les options de
journalisation des parents, définissez la propriété LoggingMode du conteneur avec la
valeur UseParentSetting. Vous pouvez définir cette propriété dans la fenêtre Propriétés
de SQL Server Data Tools (SSDT) ou via la boîte de dialogue Configurer les journaux
SSIS dans le concepteur SSIS .

Modèles de journalisation
Dans la boîte de dialogue Configurer les journaux SSIS , vous pouvez également créer
et enregistrer comme modèles les configurations de journalisation fréquemment
utilisées, puis utiliser ces modèles dans différents packages. Cette procédure facilite
l'application d'une stratégie de journalisation cohérente à différents packages et la
modification des paramètres de journaux par la mise à jour et l'application des modèles.
Les modèles sont stockés sous forme de fichiers XML.
Pour configurer la journalisation à l'aide de la boîte de dialogue Configurer les
journaux SSIS

1. Activez le package et ses tâches pour la journalisation. La journalisation peut


s'effectuer au niveau du package, du conteneur et de la tâche. Vous pouvez
spécifier différents journaux pour les packages, conteneurs et tâches.

2. Sélectionnez un module fournisseur d'informations et ajoutez un journal pour le


package. Les journaux ne peuvent être créés qu'au niveau du package, et une
tâche ou un conteneur doit utiliser un des journaux créés pour le package. Chaque
journal est associé à l'un des modules fournisseurs d'informations suivants : fichier
texte, SQL Server Profiler, SQL Server, journal des événements Windows ou fichier
XML. Pour plus d’informations, consultez Activer la journalisation des packages
dans les outils de données SQL Server.

3. Sélectionnez les événements et les informations de schéma de journal pour


chaque événement que vous voulez capturer dans le journal. Pour plus
d’informations, consultez Configurer la journalisation à l’aide d’un fichier de
configuration enregistré.

Configuration du module fournisseur d'informations


Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par
programmation.

Un module fournisseur d'informations est créé et configuré dans le cadre de


l'implémentation d'un package.

Après avoir créé un module fournisseur d'informations, vous pouvez l'afficher et


modifier ses propriétés dans la fenêtre Propriétés de SQL Server Data Tools (SSDT).

Pour plus d’informations sur la définition par programmation de ces propriétés,


consultez la documentation relative à la classe LogProvider .

Journalisation des tâches de flux de données


La tâche de flux de données fournit un grand nombre d'entrées de journal
personnalisées à l'aide desquelles vous pouvez analyser et améliorer les performances.
Vous pouvez, par exemple, analyser les composants susceptibles de provoquer des
fuites de mémoire ou contrôler le temps nécessaire à l'exécution d'une tâche en
particulier. Pour obtenir une liste de ces entrées de journal personnalisées et un exemple
de sortie de journalisation, consultez Data Flow Task.
Capturez les noms des colonnes dans lesquelles des erreurs se
produisent

Lorsque vous configurez une sortie d’erreur dans le flux de données, par défaut, la sortie
d’erreur fournit uniquement l’identificateur numérique de la colonne dans laquelle
l’erreur s’est produite. Pour plus d’informations, consultez Gestion des erreurs dans les
données.

Vous pouvez rechercher des noms de colonne en activant la journalisation et en


sélectionnant l’événement DiagnosticEx . Cet événement consigne un mappage de
lignage de flux de données dans le journal. Vous pouvez ensuite rechercher le nom de
colonne à partir de son identificateur dans ce mappage de lignage. Notez que
l’événement DiagnosticEx ne conserve pas l’espace blanc dans sa sortie XML afin
réduire la taille du journal. Pour améliorer la lisibilité, copiez le journal dans un éditeur
XML (dans Visual Studio, par exemple) prenant en charge la mise en forme XML et la
mise en surbrillance de la syntaxe.

Utiliser l'événement PipelineComponentTime


L'entrée de journal personnalisée la plus utile est peut-être l'événement
PipelineComponentTime. Cette entrée de journal signale le nombre de millisecondes
que chaque composant dans le flux de données passe sur chacune des cinq étapes de
traitement majeures. Le tableau suivant décrit ces étapes de traitement. Integration
Services Les développeurs reconnaîtront ces étapes comme étant les méthodes
principales d’un PipelineComponent.

Étape Description

Valider Le composant recherche des valeurs de propriété et des paramètres de


configuration valides.

PreExecute Le composant effectue un traitement unique avant de commencer à traiter les


lignes de données.

PostExecute Le composant effectue un traitement unique après avoir traité toutes les lignes de
données.

ProcessInput Le composant de transformation ou de destination traite les lignes de données


entrantes qu'une source ou une transformation en amont lui a passées.

PrimeOutput Le composant source ou de transformation remplit les tampons de données à


passer à un composant de transformation ou de destination en aval.

Lorsque vous activez l'événement PipelineComponentTime, Integration Services


consigne un message pour chaque étape de traitement effectuée par chaque
composant. Les entrées de journal suivantes illustrent un sous-ensemble des messages
consignés par l'exemple de package Integration Services CalculatedColumns :

The component "Calculate LineItemTotalCost" (3522) spent 356 milliseconds in

ProcessInput.

The component "Sum Quantity and LineItemTotalCost" (3619) spent 79 milliseconds in

ProcessInput.

The component "Calculate Average Cost" (3662) spent 16 milliseconds in


ProcessInput.

The component "Sort by ProductID" (3717) spent 125 milliseconds in ProcessInput.

The component "Load Data" (3773) spent 0 milliseconds in ProcessInput.

The component "Extract Data" (3869) spent 688 milliseconds in PrimeOutput filling

buffers on output "OLE DB Source Output" (3879).

The component "Sum Quantity and LineItemTotalCost" (3619) spent 141 milliseconds in

PrimeOutput filling buffers on output "Aggregate Output 1" (3621).

The component "Sort by ProductID" (3717) spent 16 milliseconds in PrimeOutput

filling buffers on output "Sort Output" (3719).

Ces entrées de journal montrent que la tâche de flux de données a passé la plupart du
temps dans les étapes suivantes, répertoriées ici dans l'ordre décroissant :

La source OLE DB nommée "Extract Data" a passé 688 ms à charger des données.

La transformation de colonne dérivée nommée "Calcule LineItemTotalCost" a passé


356 ms à effectuer des calculs sur les lignes entrantes.

La transformation d’agrégation nommée « Sum Quantity and LineItemTotalCost » a


passé un total de 220 ms (141 ms dans PrimeOutput et 79 ms dans ProcessInput) à
effectuer des calculs et à passer les données à la transformation suivante.

Activer la journalisation des packages dans les


outils de données SQL Server
Cette procédure décrit comment ajouter des journaux à un package, configurer la
journalisation au niveau du package et enregistrer la configuration dans un fichier XML.
Vous ne pouvez ajouter des journaux qu'au niveau du package, mais le package n'a pas
besoin d'effectuer une journalisation pour activer la journalisation dans les conteneurs
inclus dans ce package.

) Important

Si vous déployez le projet Integration Services sur le serveur Integration Services , le


niveau de journalisation que vous définissez pour l'exécution du package remplace
l'enregistrement du package que vous configurez dans SQL Server Data Tools
(SSDT).

Par défaut, les conteneurs du package utilisent la même configuration de journalisation


que leur conteneur parent. Pour plus d’informations sur la définition des options de
journalisation pour les conteneurs individuels, consultez Configurer la journalisation à
l’aide d’un fichier de configuration enregistré.

Pour activer la journalisation dans un package


1. Dans SQL Server Data Tools, ouvrez le projet Integration Services contenant le
package souhaité.

2. Dans le menu SSIS , cliquez sur Enregistrement.

3. Sélectionnez un module fournisseur d'informations dans la liste Type de


fournisseur , puis cliquez sur Ajouter.

4. Dans la colonne Configuration, sélectionnez un gestionnaire de connexions ou


cliquez sur <Nouvelle connexion> afin de créer un gestionnaire de connexions du
type approprié pour le module fournisseur d’informations. En fonction du module
fournisseur sélectionné, utilisez l'un des gestionnaires de connexions suivants :

Pour les fichiers texte, utilisez un gestionnaire de connexions de fichiers. Pour


plus d’informations, consultez File Connection Manager

Pour SQL Server Profiler, utilisez un gestionnaire de connexions de fichiers.

Pour SQL Server, utilisez un gestionnaire de connexions OLE DB. Pour plus
d’informations, consultez OLE DB Connection Manager.

Pour le journal des événements Windows, ne faites rien : SSIS crée


automatiquement le journal.

Pour les fichiers XML, utilisez un gestionnaire de connexions de fichiers.

5. Répétez les étapes 3 et 4 pour chaque journal à utiliser dans le package.


7 Notes

Un package peut utiliser plusieurs journaux du même type.

6. Vous pouvez également cocher la case du niveau du package, sélectionner les


journaux à utiliser pour la journalisation au niveau du package, puis cliquer sur
l’onglet Détails .

7. Sur l'onglet Détails , activez Événements pour enregistrer toutes les entrées de
journal ou désactivez Événements pour sélectionner des événements individuels.

8. Éventuellement, cliquez sur Avancé pour spécifier les informations à journaliser.

7 Notes

Par défaut, toutes les informations sont journalisées.

9. Sous l’onglet Détails, cliquez sur Enregistrer. La boîte de dialogue Enregistrer sous
s’affiche. Recherchez l'emplacement où enregistrer la configuration de
journalisation, tapez un nom de fichier pour la nouvelle configuration de journal,
puis cliquez sur Enregistrer.

10. Cliquez sur OK.

11. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Configurer les journaux SSIS (boîte de


dialogue)
Utilisez la boîte de dialogue Configurer les journaux SSIS pour définir les options de
journalisation d’un package.

Que voulez-vous faire ?

1. Ouvrir la boîte de dialogue Configurer les journaux SSIS

2. Configurer les options du volet Conteneurs

3. Configurer les options sous l'onglet Fournisseurs et journaux

4. Configurer les options sous l'onglet Détails


Ouvrir la boîte de dialogue Configurer les journaux SSIS
Pour ouvrir la boîte de dialogue Configurer les journaux SSIS

Dans le concepteur SSIS , dans le menu SSIS , cliquez sur Enregistrement .

Configurer les options du volet Conteneurs


Utilisez le volet Conteneurs de la boîte de dialogue Configurer les journaux SSIS pour
activer l’enregistrement du fichier journal du package et de ses conteneurs.

Options

Containers
Activez les cases à cocher dans la vue hiérarchique pour activer l'enregistrement du
fichier journal du package et de ses conteneurs :

Si la case à cocher est désactivée, l'enregistrement du container dans le fichier


journal n'est pas activé. Activez-la pour permettre l'enregistrement.

Si elle est grisée, le conteneur utilise les options d'enregistrement dans le journal
de son parent. Cette option n'est pas disponible pour le package.

Si elle est activée, le conteneur définit ses propres options d'enregistrement dans
le journal.

Si un conteneur est grisé alors que vous voulez définir ses options d'enregistrement
dans le journal, cliquez sur sa case à cocher deux fois. Le premier clic désactive la case à
cocher et le deuxième l'active, vous permettant ainsi de choisir le module fournisseur
d'informations à utiliser et de sélectionner les informations à enregistrer.

Configurer les options sous l'onglet Fournisseurs et


journaux
Utilisez l’onglet Fournisseurs et journaux de la boîte de dialogue Configurer les
journaux SSIS pour créer et configurer des journaux permettant de capturer des
événements à l’exécution.

Options
Type de fournisseur
Sélectionnez un type de module fournisseur d'informations dans la liste.
Ajouter
Ajoutez un journal du type spécifié à la collection de modules fournisseurs
d'informations du package.

Nom
Activez ou désactivez les journaux pour les conteneurs ou les tâches sélectionnés dans
le volet Conteneurs de la boîte de dialogue Configurer les journaux SSIS à l’aide des
cases à cocher. Le champ de nom est modifiable. Utilisez le nom par défaut du
fournisseur ou tapez un nom descriptif unique.

Description
Le champ de description est modifiable. Cliquez sur cette option, puis modifiez la
description par défaut du journal.

Configuration
Sélectionnez un gestionnaire de connexions existant dans la liste ou cliquez sur
<Nouvelle connexion> pour créer un gestionnaire de connexions. En fonction du type
de module fournisseur d'informations, vous pouvez configurer un gestionnaire de
connexions OLE DB ou un gestionnaire de connexions de fichiers. Le module fournisseur
d’informations du journal des événements Microsoft Windows ne nécessite aucune
connexion.

Rubriques connexes : Gestionnaire de connexions OLE DB , Gestionnaire de connexions


de fichiers

Supprimer
Sélectionnez un module fournisseur d’informations, puis cliquez sur Supprimer.

Configurer les options sous l'onglet Détails


Utilisez l’onglet Détails de la boîte de dialogue Configurer les journaux SSIS pour
spécifier les événements à enregistrer dans le journal et les détails des informations à
consigner. Les informations sélectionnées s'appliquent à tous les modules fournisseurs
d'informations du package. Par exemple, vous ne pouvez pas écrire d’informations dans
l’instance SQL Server et écrire des informations différentes dans un fichier texte.

Options
Événements
Activez ou désactivez les événements à enregistrer dans le journal.

Description
Affichez la description de l'événement.
Avancée
Sélectionnez ou désélectionnez les événements à enregistrer dans le journal et les
informations à enregistrer pour chaque événement. Cliquez sur Simple pour masquer
tous les détails de l’enregistrement dans le journal à l’exception de la liste des
événements. Les informations suivantes peuvent être enregistrées dans le journal :

Valeur Description

Ordinateur Nom de l'ordinateur sur lequel s'est produit l'événement enregistré.

Opérateur Nom de l'utilisateur qui a démarré le package.

SourceName Nom du package, du conteneur ou de la tâche dans lequel s'est produit


l'événement enregistré.

SourceID GUID (Global Unique IDentifier) du package, du conteneur ou de la tâche dans


lequel s'est produit l'événement enregistré.

ExecutionID GUID de l'instance d'exécution du package.

MessageText Un message associé à l'entrée de journal.

DataBytes Réservé pour un usage futur.

De base
Sélectionnez ou désélectionnez les événements à enregistrer dans le journal. Cette
option masque les détails d'enregistrement à l'exception de la liste des événements. Si
vous sélectionnez un événement, tous les détails d'enregistrement dans le journal sont
sélectionnés pour l'événement par défaut. Cliquez sur Avancé pour afficher tous les
détails d’enregistrement.

Load
Spécifiez un fichier XML existant à utiliser comme modèle de configuration des options
d'enregistrement dans le journal.

Save
Enregistrez les détails de la configuration en tant que modèle dans un fichier XML.

Configurer la journalisation à l'aide d'un fichier


de configuration enregistré
Cette procédure permet de configurer la journalisation de nouveaux conteneurs dans un
package en chargeant un fichier de configuration de journalisation déjà enregistré.
Par défaut, tous les conteneurs d'un package utilisent la même configuration de
journalisation que leur conteneur parent. Par exemple, les tâches d'une boucle Foreach
utilisent la même configuration de journalisation que la boucle Foreach.

Pour configurer la journalisation pour un conteneur


1. Dans SQL Server Data Tools, ouvrez le projet Integration Services contenant le
package souhaité.

2. Dans le menu SSIS , cliquez sur Enregistrement.

3. Développez l'arborescence du package et sélectionnez le conteneur à configurer.

4. Sous l’onglet Fournisseurs et journaux , sélectionnez les journaux à utiliser pour le


conteneur.

7 Notes

Vous ne pouvez créer des journaux qu'au niveau du package. Pour plus
d’informations, consultez Activer la journalisation des packages dans les
outils de données SQL Server.

5. Cliquez sur l’onglet Détails , puis sur Charger.

6. Recherchez le fichier de configuration de journalisation que vous voulez utiliser et


cliquez sur Ouvrir.

7. Si vous le souhaitez, sélectionnez une entrée de journal différente à consigner en


cochant la case correspondante dans la colonne Événements . Cliquez sur Avancé
pour sélectionner le type d’information à consigner pour cette entrée.

7 Notes

Le nouveau conteneur peut inclure des entrées de journal supplémentaires


qui ne sont pas disponibles pour le conteneur utilisé à l'origine pour créer la
configuration de journalisation. Ces entrées de journal supplémentaires
doivent être sélectionnées manuellement si vous voulez qu'elles soient
journalisées.

8. Pour enregistrer la version mise à jour de la configuration de journalisation, cliquez


sur Enregistrer.
9. Pour enregistrer le package mis à jour, cliquez sur Enregistrer les éléments
sélectionnés dans le menu Fichier .

Activer la journalisation des exécutions de


package sur le serveur SSIS
Cette rubrique explique comment définir ou modifier le niveau de journalisation d'un
package lorsque vous exécutez un package déployé sur le serveur Integration Services .
Le niveau de journalisation que vous définissez lorsque vous exécutez le package
remplace la journalisation du package configurée lors de la création dans SQL Server
Data Tools (SSDT). Pour plus d’informations, consultez Activer la journalisation des
packages dans les outils de données SQL Server .

Examiner et ajuster la propriété niveau de journalisation


par défaut d’un serveur
1. Dans l’instance SQL Server, accédez au package dans l’explorateur d’objets.

2. Sélectionnez Catalogue Integration Services.

3. Cliquez avec le bouton droit sur SSISDB, puis sélectionnez Propriétés.

4. Dans Propriétés du catalogue, recherchez la zone de groupe Journal des


opérations et l’entrée Niveau de journalisation par défaut à l’échelle du service.

Vous pouvez choisir parmi les niveaux de journalisation intégrés décrits dans cette
rubrique, ou choisir un niveau de journalisation personnalisé existant. Le niveau de
journalisation sélectionné s'applique par défaut à tous les packages déployés sur le
catalogue SSIS. Il s'applique également par défaut à une étape de travail de l'Agent SQL
qui exécute un package SSIS.

Vous pouvez également spécifier le niveau de journalisation d’un package individuel en


procédant selon l'une des méthodes suivantes. Cette rubrique présente la première
méthode.

Configuration d'une instance d'un package d'exécution à l'aide de la boîte de


dialogue Exécuter le package

Définition des paramètres pour une instance d’exécution à l’aide de


catalog.set_execution_parameter_value (Base de données SSISDB)
Configuration d'un travail de l'Agent SQL Server pour une exécution de package à
l'aide de la boîte de dialogue Nouvelle étape de travail.

Définir le niveau de journalisation d'un package à l'aide


de la boîte de dialogue Exécuter le package
1. Dans SQL Server Management Studio, naviguez jusqu'au package dans
l'Explorateur d'objets.

2. Cliquez avec le bouton droit sur le package, puis sélectionnez Exécuter.

3. Dans la boîte de dialogue Exécuter le package , sélectionnez l'onglet Avancé .

4. Sous Niveau de journalisation, sélectionnez le niveau de journalisation. Cette


rubrique contient une description des valeurs disponibles.

5. Terminez toutes les autres configurations du package, puis cliquez sur OK pour
l'exécuter.

Sélectionner un niveau de journalisation


Les niveaux de journalisation intégrés suivants sont disponibles. Vous pouvez également
sélectionner un niveau de journalisation personnalisé existant. Cette rubrique contient
une description des niveaux de journalisation personnalisés.

Niveau de Description
journalisation

None La journalisation est désactivée. Seul l'état d'exécution du package est


enregistré.

De base Tous les événements sont enregistrés, sauf les événements personnalisés et de
diagnostic. Il s’agit de la valeur par défaut.

RuntimeLineage Collecte les données nécessaires au suivi des informations de lignage dans le
flux de données. Vous pouvez analyser ces informations de lignage pour
mapper la relation de lignage entre différentes tâches. Les éditeurs de logiciels
indépendants et les développeurs peuvent créer des outils de mappage de
lignage personnalisés à l’aide de ces informations.
Niveau de Description
journalisation

Performances Seules les statistiques de performances, et les événements OnError et


OnWarning, sont enregistrés.

Le rapport Performances de l'exécution affiche le temps d'activité et le temps


total écoulé des composants de flux de données du package. Ces informations
sont disponibles si le niveau de journalisation de la dernière exécution du
package a été défini sur Performances ou Commentaires. Pour plus
d'informations, consultez Reports for the Integration Services Server.

La vue catalog.execution_component_phases affiche les heures de début et de


fin des composants de flux de données, pour chaque phase d’exécution. Cette
vue affiche ces informations pour ces composants uniquement lorsque le
niveau de journalisation de l'exécution du package est défini sur Performances
ou Commentaires.

Commentaires Tous les événements sont enregistrés, y compris les événements personnalisés
et de diagnostic.

Les événements personnalisés sont notamment les événements consignés par


les tâches Integration Services . Pour plus d'informations sur les événements
personnalisés, consultez Custom Messages for Logging.

L'événement DiagnosticEx est un exemple d'événement de diagnostic. Chaque


fois qu'une tâche d'exécution de package exécute un package enfant, cet
événement capture les valeurs de paramètres passées aux packages enfants.

L’événement DiagnosticEx vous permet également d’obtenir les noms des


colonnes dans lesquelles des erreurs se produisent au niveau des lignes. Cet
événement consigne un mappage de lignage de flux de données dans le
journal. Vous pouvez alors rechercher le nom de colonne dans ce mappage de
lignage à l’aide de l’identificateur de colonne capturé par une sortie d’erreur.
Pour plus d’informations, consultez Gestion des erreurs dans les données.

La valeur de la colonne de message pour DiagnosticEx est du texte XML. Pour


afficher le texte du message pour une exécution de package, interrogez
l’affichage catalog.operation_messages (Base de données SSISDB). Notez que
l’événement DiagnosticEx ne conserve pas l’espace blanc dans sa sortie XML
afin réduire la taille du journal. Pour améliorer la lisibilité, copiez le journal dans
un éditeur XML (dans Visual Studio, par exemple) prenant en charge la mise en
forme XML et la mise en surbrillance de la syntaxe.

La vue catalog.execution_data_statistics affiche une ligne chaque fois qu’un


composant de flux de données envoie des données à un composant en aval,
pour une exécution de package. Le niveau de journalisation doit avoir la valeur
Commentaires pour capturer ces informations dans la vue.
Créer et gérer des niveaux de journalisation personnalisés
à l'aide de la boîte de dialogue de gestion des niveaux de
journalisation personnalisés
Vous pouvez créer des niveaux de journalisation personnalisés qui collectent
uniquement les statistiques et les événements que vous souhaitez. Vous pouvez
également capturer le contexte des événements, notamment les valeurs de variables, les
chaînes de connexion et les propriétés de composants. Lorsque vous exécutez un
package, vous pouvez sélectionner un niveau de journalisation personnalisé partout où
vous pouvez sélectionner un niveau de journalisation intégré.

 Conseil

Pour capturer les valeurs des variables d’un package, la propriété


IncludeInDebugDump des variables doit être définie sur True.

1. Pour créer et gérer des niveaux de journalisation personnalisés, dans SQL Server
Management Studio, cliquez avec le bouton droit sur la base de données SSISDB,
sélectionnez Niveau de journalisation personnalisé pour ouvrir la boîte de
dialogue Gestion du niveau de journalisation personnalisée . La liste Niveaux de
journalisation personnalisés contient tous les niveaux de journalisation
personnalisés existants.

2. Pour créer un niveau de journalisation personnalisé, cliquez sur Créer, puis


indiquez un nom et une description. Dans les onglets Statistiques et Événements ,
sélectionnez les statistiques et les événements que vous souhaitez collecter. Dans
l’onglet Événements , vous pouvez également sélectionner l’option Inclure le
contexte pour des événements individuels. Ensuite, cliquez sur Enregistrer.

3. Pour mettre à jour un niveau de journalisation personnalisé existant, sélectionnez-


le dans la liste, reconfigurez-le, puis cliquez sur Enregistrer.

4. Pour supprimer un niveau de journalisation personnalisé existant, sélectionnez-le


dans la liste, puis cliquez sur Supprimer.

Autorisations des niveaux de journalisation personnalisés.

Tous les utilisateurs de la base de données SSISDB peuvent voir les niveaux de
journalisation personnalisés et sélectionner un niveau de journalisation
personnalisé lorsqu'ils exécutent des packages.
Seuls les utilisateurs avec un rôle ssis_admin ou sysadmin peuvent créer, mettre à
jour ou supprimer des niveaux de journalisation personnalisés.

Messages personnalisés pour la journalisation


SQL Server Integration Services fournit un ensemble complet d’événements
personnalisés permettant d’écrire des entrées de journal pour des packages et bon
nombre de tâches. Vous pouvez utiliser ces entrées pour enregistrer des informations
détaillées sur l'avancement, les résultats et les problèmes d'exécution en enregistrant
des événements prédéfinis ou des messages définis par l'utilisateur en vue d'une
analyse ultérieure. Vous pouvez ainsi enregistrer l'heure de début et de fin d'une
insertion en bloc pour identifier des problèmes de performances lors de l'exécution du
package.

Les entrées de journal personnalisées constituent un ensemble qui se distingue de


l'ensemble des événements de journalisation standard, disponibles pour les packages et
tous les conteneurs et tâches. Ces entrées sont conçues pour capturer des informations
utiles sur une tâche spécifique d'un package. Par exemple, l'une des entrées de journal
personnalisées pour la tâche d'exécution de requêtes SQL consigne l'instruction SQL
que la tâche exécute dans le journal.

Toutes les entrées de journal contiennent des informations de date et d'heure, y compris
les entrées qui sont écrites automatiquement au début et à la fin d'un package. La
plupart des événements de journal écrivent plusieurs entrées dans le journal. C'est
généralement le cas lorsque l'événement comprend plusieurs phases. Par exemple,
l’événement du journal ExecuteSQLExecutingQuery consigne trois entrées : la première
une fois que la tâche a acquis une connexion à la base de données, la seconde une fois
que la tâche a commencé à préparer l’instruction SQL et la troisième à la fin de
l’exécution de l’instruction SQL.

Les objets Integration Services suivants possèdent des entrées de journal personnalisées
:

Package

Tâche d’insertion en bloc

tâche de flux de données

Tâche d'exécution DTS 2000

Tâche d’exécution de processus

Tache d’exécution de requêtes SQL


Tâches du système de fichiers

Tâche FTP

Tâche MSMQ

Tâche de script

Tache Envoyer un message

Tâche de transfert de bases de données

Tâche de transfert de messages d’erreur

Tâche de transfert de travaux

Tâche de transfert de connexions

Tâche de transfert de procédures stockées de master

Tâche de transfert d’objets SQL Server

Tâche de services Web

Tâche Lecteur de données WMI

Tâche Observateur d’événement WMI

Tâche XML

Entrées du journal

Paquet
Le tableau suivant répertorie les entrées de journal personnalisées pour les packages.

Entrée du Description
journal

PackageStart Indique que le package a commencé à s'exécuter. Cette entrée de journal est
automatiquement écrite au journal. Vous ne pouvez pas l'exclure.

PackageEnd Indique que le package est terminé. Cette entrée de journal est automatiquement
écrite au journal. Vous ne pouvez pas l'exclure.
Entrée du Description
journal

Diagnostic Fournit des informations sur la configuration système qui affecte l'exécution du
package, notamment le nombre d'exécutables pouvant s'exécuter simultanément.

L’entrée de journal Diagnostic inclut également des entrées avant et après les
appels effectués auprès des fournisseurs de données externes.

tâche d'insertion en bloc


Le tableau suivant répertorie les entrées de journal personnalisées de la tâche
d'insertion en bloc.

Entrée du journal Description

DTSBulkInsertTaskBegin Indique que l'insertion en bloc a commencé.

DTSBulkInsertTaskEnd Indique que l'insertion en bloc est terminée.

DTSBulkInsertTaskInfos Fournit des informations détaillées concernant la tâche.

tâche de flux de données

Le tableau suivant répertorie les entrées de journal personnalisées pour la tâche de flux
de données.

Entrée du journal Description

BufferSizeTuning Indique que la tâche de flux de données a modifié la taille du


tampon. L'entrée de journal décrit les raisons de cette
modification de taille et indique la nouvelle taille temporaire du
tampon.

OnPipelinePostEndOfRowset Indique qu’un composant a reçu son signal de fin d’ensemble de


lignes, qui est défini par le dernier appel de la méthode
ProcessInput . Une entrée est écrite pour chaque composant du
flux de données qui traite l'entrée. L'entrée inclut le nom du
composant.

OnPipelinePostPrimeOutput Indique que le composant a terminé son dernier appel de la


méthode PrimeOutput . Selon le flux de données, plusieurs
entrées de journal peuvent être écrites. Si le composant est une
source, cela signifie que le composant a terminé le traitement des
lignes.
Entrée du journal Description

OnPipelinePreEndOfRowset Indique qu’un composant est sur le point de recevoir son signal
de fin d’ensemble de lignes, qui est défini par le dernier appel de
la méthode ProcessInput . Une entrée est écrite pour chaque
composant du flux de données qui traite l'entrée. L'entrée inclut
le nom du composant.

OnPipelinePrePrimeOutput Indique que le composant est sur le point de recevoir son appel
de la méthode PrimeOutput . Selon le flux de données, plusieurs
entrées de journal peuvent être écrites.

OnPipelineRowsSent Indique le nombre de lignes fournies à une entrée de composant


par un appel de la méthode ProcessInput . L'entrée du journal
inclut le nom du composant.

PipelineBufferLeak Donne des informations sur tout composant qui maintient


l'activité des tampons après la fermeture du gestionnaire de
tampons. Cela signifie que des ressources des tampons n'ont pas
été libérées et qu'elles peuvent provoquer des fuites de mémoire.
L'entrée du journal fournit le nom du composant et l'ID du
tampon.

PipelineExecutionPlan Indique le plan d'exécution du flux de données. L'entrée du


journal donne des informations sur la façon dont les tampons
sont envoyés aux composants. Ces informations, conjuguées à
l'entrée PipelineExecutionTrees, décrivent ce qui se passe dans la
tâche.

PipelineExecutionTrees Indique les arborescences d'exécution de la disposition du flux de


données. Le planificateur du moteur du flux de données utilise les
arborescences pour construire le plan d’exécution du flux de
données.

PipelineInitialization Donne des informations d'initialisation relatives à la tâche. Ces


informations incluent les répertoires à utiliser pour le stockage
temporaire des données blob, la taille par défaut de la mémoire
tampon, ainsi que le nombre de lignes contenues dans une
mémoire tampon. Selon la configuration de la tâche de flux de
données, plusieurs entrées de journal peuvent être écrites.

Tâche d'exécution DTS 2000

Le tableau suivant répertorie les entrées de journal personnalisées pour la tâche


d'exécution DTS 2000.

Entrée du journal Description


Entrée du journal Description

ExecuteDTS80PackageTaskBegin Indique que la tâche a commencé l'exécution d'un


package DTS 2000.

ExecuteDTS80PackageTaskEnd Indique que la tâche est terminée.

Remarque : il est possible que le package DTS 2000


continue à s’exécuter à la fin de la tâche.

ExecuteDTS80PackageTaskTaskInfo Fournit des informations détaillées concernant la tâche.

ExecuteDTS80PackageTaskTaskResult Indique le résultat d'exécution du package DTS 2000 que


la tâche a exécuté.

Tâche d'exécution de processus


Le tableau suivant répertorie les entrées de journal personnalisées pour la tâche
d'exécution de processus.

Entrée du journal Description

ExecuteProcessExecutingProcess Donne des informations sur le processus d'exécution de


l'exécutable dont est chargé la tâche.

Deux entrées de journal sont écrites. La première contient des


informations sur le nom et l'emplacement de l'exécutable que
la tâche exécute, tandis que la seconde enregistre la sortie de
l'exécutable.

ExecuteProcessVariableRouting Fournit des informations sur les variables qui doivent être
acheminées vers l'entrée et les sorties de l'exécutable. Les
entrées du journal sont écrites pour stdin (l'entrée), stdout (la
sortie) et stderr (la sortie des erreurs).

Tâche d’exécution de requêtes SQL

Le tableau suivant décrit les entrées de journal personnalisées pour la tâche d'exécution
SQL.

Entrée du journal Description


Entrée du journal Description

ExecuteSQLExecutingQuery Fournit des informations sur les phases d'exécution de l'instruction


SQL. Des entrées de journal sont écrites lorsque la tâche acquiert la
connexion à la base de données, lorsqu'elle commence à préparer
l'instruction SQL et à la fin de l'exécution de l'instruction SQL.
L'entrée de journal concernant la phase de préparation inclut
l'instruction SQL que la tâche utilise.

Tâches du système de fichiers


Le tableau suivant décrit l'entrée de journal personnalisée pour la tâche de système de
fichiers.

Entrée du journal Description

FileSystemOperation Indique l'opération que la tâche effectue. L'entrée de journal est écrite au
démarrage de l'opération du système de fichiers et inclut des
informations sur la source et la destination.

Tâche FTP
Le tableau suivant répertorie les entrées de journal personnalisées pour la tâche FTP.

Entrée du journal Description

FTPConnectingToServer Indique que la tâche a lancé une connexion au serveur FTP.

FTPOperation Indique le démarrage et le type d'une opération FTP effectuée par la


tâche.

Message Queue Task


Le tableau suivant répertorie les entrées de journal personnalisées de la tâche MSMQ.

Entrée du journal Description

MSMQAfterOpen Indique que la tâche a fini d'ouvrir la file d'attente des messages.

MSMQBeforeOpen Indique que la tâche a commencé l'ouverture de la file d'attente des


messages.

MSMQBeginReceive Indique que la tâche a commencé la réception d'un message.

MSMQBeginSend Indique que la tâche a commencé l'envoi d'un message.


Entrée du journal Description

MSMQEndReceive Indique que la tâche a terminé la réception d'un message.

MSMQEndSend Indique que la tâche a terminé l’envoi d’un message.

MSMQTaskInfo Fournit des informations détaillées concernant la tâche.

MSMQTaskTimeOut Indique que le délai de la tâche a expiré.

Tâche de script
Le tableau suivant décrit l'entrée de journal personnalisée pour la tâche de script.

Entrée du journal Description

ScriptTaskLogEntry Indique les résultats de l'implémentation de la journalisation dans le script.


Une entrée de journal est écrite pour chaque appel de la méthode Log de
l’objet Dts . L'entrée est écrite à l'exécution du code. Pour plus
d’informations, consultez Journalisation dans la tâche de script.

tache Envoyer un message


Le tableau suivant répertorie les entrées de journal personnalisées pour la tâche Envoyer
un message.

Entrée du journal Description

SendMailTaskBegin Indique que la tâche a commencé l'envoi d'un message électronique.

SendMailTaskEnd Indique que la tâche a terminé l'envoi d'un message électronique.

SendMailTaskInfo Fournit des informations détaillées concernant la tâche.

Tâche de transfert de bases de données

Le tableau suivant répertorie les entrées de journal personnalisées pour la tâche de


transfert de bases de données.

Entrée du journal Description

SourceDB Spécifie la base de données que la tâche a copiée.

SourceSQLServer Spécifie l'ordinateur à partir duquel la base de données a été copiée.


Tâche de transfert de messages d'erreur
Le tableau suivant répertorie les entrées de journal personnalisées pour la tâche de
transfert de messages d'erreur.

Entrée du journal Description

TransferErrorMessagesTaskFinishedTransferringObjects Indique que la tâche a terminé le


transfert des messages d'erreur.

TransferErrorMessagesTaskStartTransferringObjects Indique que la tâche a commencé le


transfert des messages d'erreur.

Tâche de transfert de travaux


Le tableau suivant répertorie les entrées de journal personnalisées pour la tâche de
transfert de travaux.

Entrée du journal Description

TransferJobsTaskFinishedTransferringObjects Indique que la tâche a terminé le transfert des


travaux de l’Agent SQL Server .

TransferJobsTaskStartTransferringObjects Indique que la tâche a commencé le transfert des


travaux de l'Agent SQL Server .

Tâche de transfert de connexions

Le tableau suivant répertorie les entrées de journal personnalisées pour la tâche de


transfert de connexions.

Entrée du journal Description

TransferLoginsTaskFinishedTransferringObjects Indique que la tâche a terminé le transfert des


connexions.

TransferLoginsTaskStartTransferringObjects Indique que la tâche a commencé le transfert


des connexions.

Tâche de transfert de procédures stockées de master


Le tableau suivant répertorie les entrées de journal personnalisées pour la tâche de
transfert de procédures stockées de master.
Entrée du journal Description

TransferStoredProceduresTaskFinishedTransferringObjects Indique que la tâche a terminé le


transfert des procédures stockées
définies par l’utilisateur qui existent
dans la base de données master .

TransferStoredProceduresTaskStartTransferringObjects Indique que la tâche a commencé le


transfert des procédures stockées
définies par l’utilisateur qui existent
dans la base de données master .

Tâche de transfert d'objets SQL Server


Le tableau suivant répertorie les entrées de journal personnalisées pour la tâche de
transfert d'objets SQL Server .

Entrée du journal Description

TransferSqlServerObjectsTaskFinishedTransferringObjects Indique que la tâche a terminé le


transfert des objets de base de
données SQL Server .

TransferSqlServerObjectsTaskStartTransferringObjects Indique que la tâche a commencé le


transfert des objets de base de
données SQL Server .

Tâche de services Web

Le tableau suivant répertorie les entrées de journal personnalisées pour la tâche de


services Web.

Entrée du journal Description

WSTaskBegin La tâche a commencé à accéder à un service Web.

WSTaskEnd La tâche a terminé une méthode de service Web.

WSTaskInfo Donne des informations détaillées relatives à la tâche.

Tâche Lecteur de données WMI


Le tableau suivant répertorie les entrées de journal personnalisées de la tâche Lecteur
de données WMI.
Entrée du journal Description

WMIDataReaderGettingWMIData Indique que la tâche a commencé la lecture des données


WMI.

WMIDataReaderOperation Indique la requête WQL que la tâche a exécutée.

Tâche Observateur d'événement WMI

Le tableau suivant répertorie les entrées de journal personnalisées de la tâche


Observateur d'événement WMI.

Entrée du journal Description

WMIEventWatcherEventOccurred Indique que l'événement surveillé par la tâche s'est


produit.

WMIEventWatcherTimedout Indique que le délai de la tâche a expiré.

WMIEventWatcherWatchingForWMIEvents Indique que la tâche a commencé l'exécution de la


requête WQL. L'entrée inclut la requête.

Tâche XML

Le tableau suivant décrit l'entrée de journal personnalisée de la tâche XML.

Entrée du journal Description

XMLOperation Fournit des informations sur l'opération que la tâche effectue.

Tâches associées
La liste suivante contient des liens vers les rubriques qui indiquent comment effectuer
les tâches relatives à la fonctionnalité de journalisation.

Événements journalisés par un package Integration Services


Compteurs de performances
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Reporting Services installe un ensemble de compteurs de performances qui vous


permettent de superviser les performances du moteur de flux de données. Par exemple,
le compteur Mémoires tampon spoulées permet de déterminer si des tampons de
données sont écrits temporairement sur le disque lors de l'exécution d'un package.
Cette permutation diminue les performances et indique que la mémoire de l'ordinateur
est insuffisante.

7 Notes

Si vous installez Integration Services sur un ordinateur qui exécute Windows


Server 2003, puis que vous mettez à niveau cet ordinateur vers Windows
Server 2008, le processus de mise à niveau supprime les compteurs de
performances de Integration Services de l’ordinateur. Pour restaurer les compteurs
de performances de Integration Services sur l’ordinateur, exécutez le programme
d’installation de SQL Server en mode réparation.

7 Notes

Les compteurs de performances ne sont pas pris en charge dans les scénarios SSIS
Scale Out.

Le tableau suivant décrit les compteurs de performance.

Compteur de Description
performances

Octets BLOB Le nombre d'octets des données d'objet BLOB (Binary Large Object) que le
lus moteur de flux de données a lu à partir de toutes les sources.

Octets BLOB Le nombre d'octets des données BLOB que le moteur de flux de données a écrit
écrits sur toutes les destinations.

Fichiers BLOB Nombre de fichiers BLOB que le moteur de flux de données utilise actuellement
utilisés pour la mise en file d'attente.
Compteur de Description
performances

Mémoire La quantité de mémoire en cours d'utilisation. Cela peut inclure à la fois la


tampon mémoire physique et la mémoire virtuelle. Quand ce nombre est supérieur à la
quantité de mémoire physique, le compte Mémoires tampon spoulées
augmente, ce qui indique une augmentation de l’échange de mémoire.
L'augmentation de l'échange de mémoire ralentit les performances du moteur
de flux de données.

Tampons en Nombre d'objets de mémoire tampon, de tous les types, que tous les
cours composants de flux de données et le moteur de flux de données utilisent
d'utilisation actuellement.

Mémoires Nombre de mémoires tampon actuellement écrites sur le disque. Si le moteur de


tampon flux de données est à cours de mémoire physique, les mémoires tampons non
spoulées utilisées actuellement sont écrites sur le disque puis rechargées en cas de
besoin.

Mémoire Le volume total de mémoire, en octets, que toutes les mémoires tampons plates
tampon plate utilisent. Les mémoires tampons plates sont des blocs de mémoire utilisés par
un composant pour stocker des données. Une mémoire tampon plate est un
grand bloc d'octets, auquel l'accès se fait octet par octet.

Mémoires Nombre de mémoires tampons plates que le moteur de flux de données utilise.
tampons Toutes les mémoires tampons plates sont des mémoires tampons privées.
plates en
cours
d'utilisation

Mémoire Le volume total de mémoire utilisé par toutes les mémoires tampons privées.
tampon privée Une mémoire tampon n'est pas privée si le moteur de flux de données la crée
pour prendre en charge le flux de données. Une mémoire tampon privée est une
mémoire tampon qu'une transformation utilise seulement pour un travail
temporaire. Par exemple, la transformation d'agrégation utilise des mémoires
tampons privées pour son travail.

Mémoires Le nombre de mémoires tampons utilisées par les transformations.


tampons
privées en
cours
d'utilisation

Lignes lues Le nombre de lignes produites par une source. Le nombre n'inclut pas les lignes
lues à partir des tables de références par la transformation de recherche.

Lignes écrites Le nombre de lignes offertes vers une destination. Le nombre ne reflète pas les
lignes écrites vers la banque de données de destination.
Vous utilisez le composant logiciel enfichable MMC (Microsoft Management Console)
Performance pour créer un journal qui capture les compteurs de performances.

Pour plus d’informations sur l’amélioration des performances, consultez Fonctionnalités


de performances de flux de données.

Obtenir des statistiques sur les compteurs de


performance
Pour les projets Integration Services déployés sur le serveur Integration Services, vous
pouvez obtenir des statistiques sur les compteurs de performances avec la fonction
dm_execution_performance_counters (base de données SSISDB).

Dans l'exemple suivant, la fonction retourne des statistiques pour une exécution en
cours ayant l'ID 34.

SQL

select * from [catalog].[dm_execution_performance_counters] (34)

Dans l’exemple suivant, la fonction retourne des statistiques pour toutes les exécutions
en cours sur le serveur Integration Services.

SQL

select * from [catalog].[dm_execution_performance_counters] (NULL)

) Important

Si vous êtes membre du rôle de base de données ssis_admin , les statistiques de


performances de toutes les exécutions en cours sont retournées. Si vous n’êtes pas
membre du rôle de base de données ssis_admin , les statistiques de performances
des exécutions en cours pour lesquelles vous disposez d’autorisations de lecture
sont retournées.

Contenu associé
Vidéo : Mesure et présentation des performances de vos packages SSIS dans
l’entreprise (Vidéo liée à SQL Server), sur le site msdn.microsoft.com.
Article du Support technique : Le compteur de performance SSIS n’est plus
disponible dans l’Analyseur de performances après la mise à niveau vers Windows
Server 2008 , sur le site support.microsoft.com.

Ajouter un journal pour les compteurs de


performances de flux de données
Cette procédure décrit comment ajouter un journal pour les compteurs de
performances fournis par le moteur de flux de données.

7 Notes

Si vous installez Integration Services sur un ordinateur qui exécute Windows


Server 2003, puis que vous mettez à niveau cet ordinateur vers Windows
Server 2008, le processus de mise à niveau supprime les compteurs de
performances de Integration Services de l’ordinateur. Pour restaurer les compteurs
de performances de Integration Services sur l’ordinateur, exécutez le programme
d’installation de SQL Server en mode réparation.

Pour ajouter un journal des compteurs de performances


1. Dans le Panneau de configuration, si vous utilisez l’affichage classique, cliquez sur
Outils d’administration. Si vous utilisez l’affichage des catégories, cliquez sur
Performances et maintenance , puis sur Outils d’administration.

2. Cliquez sur Performances.

3. Dans la boîte de dialogue Performances , développez Journaux et alertes de


performances, cliquez avec le bouton droit sur Journaux de compteurs, puis
cliquez sur Nouveaux paramètres de journal. Tapez le nom du journal. Par
exemple, tapez MonJournal.

4. Cliquez sur OK.

5. Dans la boîte de dialogue MonJournal , cliquez sur Ajouter des compteurs.

6. Cliquez sur Utiliser les compteurs locaux de l’ordinateur pour journaliser les
compteurs de performances sur l’ordinateur local ou cliquez sur Choisir les
compteurs sur : et sélectionnez un ordinateur dans la liste pour journaliser les
compteurs de performances sur l’ordinateur spécifié.
7. Dans la boîte de dialogue Ajouter des compteurs , sélectionnez SQL Server :
pipeline SSIS dans la liste Objet de performance .

8. Pour sélectionner les compteurs de performances, effectuez l'une des actions


suivantes :

Sélectionnez Tous les compteurs pour journaliser tous les compteurs de


performances.

Sélectionnez Sélectionner les compteurs dans la liste et sélectionnez les


compteurs de performances à utiliser.

9. Cliquez sur Add.

10. Cliquez sur Fermer.

11. Dans la boîte de dialogue MonJournal , vérifiez la liste des compteurs de


performances journalisés dans la liste Compteurs .

12. Pour ajouter des compteurs supplémentaires, répétez les étapes 5 à 10.

13. Cliquez sur OK.

7 Notes

Vous devez démarrer le service Journaux et alertes de performance à l'aide


d'un compte local ou d'un compte de domaine membre du groupe
Administrateurs.

Voir aussi
Exécution de projets et de packagesÉvénements journalisés par un package Integration
Services
Résoudre les problèmes des packages
Integration Services (SSIS)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Dans cette section


Outils de dépannage pour le développement des packages
Outils de dépannage de la connectivité des packages
Outils de dépannage pour l’exécution des packages
Résolution des problèmes des rapports pour le développement de packages
Générer de fichiers de vidage pour l’exécution des packages
Outils de dépannage pour le
développement des packages
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Integration Services comprend des fonctionnalités et des outils que vous pouvez utiliser
pour dépanner les packages quand vous les développez dans SQL Server Data Tools
(SSDT).

Dépannage des problèmes de validation au


moment de la conception
Dans la version actuelle de Integration Services, quand un package est ouvert, le
système valide toutes les connexions avant de valider tous les composants de flux de
données, et définit toutes les connexions qui sont lentes ou non disponibles pour
travailler hors connexion. Cela permet de réduire le délai de validation du flux de
données du package.

Quand un package est ouvert, vous pouvez également désactiver une connexion en
cliquant avec le bouton droit sur le gestionnaire de connexions dans la zone
Gestionnaires de connexions et en cliquant sur Travailler hors connexion. Cela peut
accélérer les opérations exécutées dans le concepteur SSIS.

Les connexions définies pour travailler hors connexion, restent hors connexion jusqu'à
ce que vous effectuiez une des actions suivantes :

Vous tester la connexion en cliquant avec le bouton droit sur le gestionnaire de


connexions dans la zone Gestionnaires de connexions du concepteur SSIS et vous
cliquez sur Tester la connectivité.

Par exemple, une connexion est initialement définie pour travailler hors connexion
lorsque le package est ouvert. Vous modifiez la chaîne de connexion pour résoudre
le problème et cliquez sur Tester la connectivité pour tester la connexion.

Rouvrir le package ou rouvrir le projet qui contient le package. La validation est


réexécutée sur toutes les connexions dans le package.

Integration Services inclut les fonctionnalités supplémentaires suivantes pour vous aider
à éviter des erreurs de validation :
Définir tous les packages et toutes les connexions pour travailler hors connexion
quand les sources de données ne sont pas disponibles. Vous pouvez activer
Travailler hors connexion à partir du menu SSIS . Contrairement à la propriété
DelayValidation , l’option Travailler hors connexion est disponible avant même
que vous n’ouvriez un package. Vous pouvez également activer l’option Travailler
hors connexion pour accélérer les opérations exécutées dans le concepteur, puis la
désactiver dès que vous souhaitez valider votre package.

Configurer la propriété DelayValidation dans les éléments de package qui ne


sont pas valides avant l’exécution. Pour éviter toute erreur de validation, vous
pouvez affecter la valeur True à la propriété DelayValidation dans les éléments de
package dont la configuration n’est pas valide au moment de la conception. Par
exemple, vous pouvez disposer d'une tâche Flux de données qui utilise une table
de destination qui n'existe pas jusqu'à ce qu'une tâche d'exécution SQL crée la
table au moment de l'exécution. La propriété DelayValidation peut être activée au
niveau du package ou au niveau des tâches individuelles et des conteneurs inclus
dans le package. En règle générale, pour éviter les mêmes erreurs de validation au
moment de l’exécution, vous devez laisser cette propriété avec la valeur True dans
les mêmes éléments de package lors du déploiement du package.

La propriété DelayValidation peut être définie sur une tâche Flux de données mais
pas sur des composants de flux de données individuels. Vous pouvez obtenir un
résultat similaire en affectant la valeur ValidateExternalMetadata à la propriété
ValidateExternalMetadata. Néanmoins, si cette propriété affiche la valeur false, le
composant n'a pas connaissance des modifications apportées aux métadonnées
des sources de données externes.

Si les objets de base de données utilisés par le package sont verrouillés lorsque la
validation se produit, le processus de validation peut cesser de répondre. Dans ces
circonstances, le concepteur SSIS cesse également de répondre. Vous pouvez reprendre
la validation à l’aide de Management Studio pour fermer la session associée dans SQL
Server. Vous pouvez aussi éviter ce problème en utilisant les paramètres décrits dans
cette section.

Dépannage du flux de contrôle


Integration Services comprend les fonctionnalités et outils suivants que vous pouvez
utiliser pour dépanner le flux de contrôle dans les packages lors de leur développement
:

Définir des points d’arrêt dans des tâches, des conteneurs et le package. Vous
pouvez définir des points d’arrêt à l’aide d’outils graphiques fournis par le
concepteur SSIS . Les points d'arrêt peuvent être activés au niveau du package ou
au niveau des tâches individuelles et des conteneurs inclus dans le package.
Certaines tâches et certains conteneurs présentent des conditions d'arrêt
supplémentaires pour la définition des points d'arrêt. Par exemple, vous pouvez
activer une condition d'arrêt sur le conteneur de boucles For qui suspend
l'exécution au début de chaque itération de la boucle.

Utiliser les fenêtres de débogage. Lorsque vous exécutez un package doté de


points d'arrêt, les fenêtres de débogage dans SQL Server Data Tools (SSDT)
fournissent un accès aux valeurs des variables et aux messages d'état.

Vérifier les informations sous l’onglet Progression. SSIS Le concepteur fournit des
informations supplémentaires sur le flux de contrôle quand vous exécutez un
package dans SQL Server Data Tools (SSDT). L'onglet Progression énumère les
tâches et les conteneurs par ordre d'exécution et indique les heures de début et de
fin, les avertissements et les messages d'erreur pour chaque tâche et chaque
conteneur, y compris le package lui-même.

Pour plus d’informations sur ces fonctionnalités, consultez Débogage du flux de


contrôle.

Dépannage du flux de données


Integration Services comprend les fonctionnalités et outils suivants que vous pouvez
utiliser pour dépanner les flux de données dans les packages lors du développement de
ces derniers :

Effectuer des tests uniquement avec un sous-ensemble de vos données. Si vous


voulez dépanner le flux de données dans un package en utilisant seulement un
échantillon du dataset, vous pouvez inclure une transformation d'échantillonnage
du pourcentage ou de ligne pour créer un exemple de données en ligne à
l'exécution. Pour plus d’informations, consultez Transformation de
l’échantillonnage du pourcentage et Transformation d’échantillonnage de lignes.

Utiliser les visionneuses de données pour analyser les données quand elles
circulent dans le flux de données. Les visionneuses de données affichent des
valeurs des données lors de leur déplacement entre des sources, des
transformations et des destinations. Une visionneuse de données peut afficher des
données dans une grille. Vous pouvez copier les données d'une visionneuse de
données vers le Presse-papiers, puis coller les données dans un fichier ou une
feuille de calcul Excel. Pour plus d’informations, consultez Débogage d’un flux de
données .
Configurer les sorties d’erreur dans les composants de flux de données qui les
prennent en charge. De nombreuses sources, transformations et destinations de
flux de données prennent également en charge les sorties d'erreur. En configurant
la sortie d'erreur d'un composant de flux de données, vous pouvez diriger les
données contenant des erreurs vers une autre destination. Par exemple, vous
pouvez capturer les données qui ont échoué ou qui ont été tronquées dans un
fichier texte séparé. Vous pouvez aussi associer des visionneuses de données aux
sorties d'erreur et examiner uniquement les données erronées. Au moment de la
conception, les sorties d'erreur capturent des valeurs de données problématiques
pour vous aider à développer des packages qui prennent effectivement en charge
les données réelles. Néanmoins, tandis que les autres outils et fonctionnalités de
dépannage ne sont utiles qu'au moment de la conception, les sorties d'erreur le
restent également dans l'environnement de production. Pour plus d’informations,
consultez Gestion des erreurs dans les données.

Capturer le nombre de lignes traitées. Quand vous exécutez un package dans le


concepteur SSIS , le nombre de lignes transmises par le biais d’un chemin est
affiché dans le concepteur de flux de données. Ce nombre est mis à jour
régulièrement lorsque des données empruntent le chemin d'accès. Vous pouvez
également ajouter une transformation de nombre de lignes au flux de données
pour capturer le nombre de lignes final dans une variable. Pour plus
d’informations, voir Row Count Transformation.

Vérifier les informations sous l’onglet Progression. SSIS Le concepteur fournit des
informations supplémentaires sur les flux de données quand vous exécutez un
package dans SQL Server Data Tools (SSDT). L'onglet Progression répertorie les
composants de flux de données par ordre d'exécution et comprend des
informations sur la progression de chaque phase du package (sous forme de
pourcentage) et le nombre de lignes écrites sur la destination.

Pour plus d’informations sur ces fonctionnalités, consultez Débogage d’un flux de
données.

Dépannage des scripts


Microsoft Visual Studio Tools for Applications (VSTA) est l’environnement de
développement dans lequel vous écrivez les scripts utilisés par la tâche de script et le
composant Script. VSTA fournit les fonctionnalités et outils suivants que vous pouvez
utiliser pour résoudre les problèmes liés aux scripts lors du développement des
packages :
Définissez des points d'arrêt dans des scripts pour des tâches de script. VSTA
prend en charge le débogage de scripts pour les tâches de script uniquement. Les
points d'arrêt que vous définissez dans les tâches de script sont intégrés à ceux
que vous définissez pour les packages, et les tâches et conteneurs du package, ce
qui permet un débogage transparent de tous les éléments de package.

7 Notes

Lorsque vous déboguez un package qui contient plusieurs tâches de script, le


débogueur accède aux points d'arrêt d'une seule tâche de script et ignore les
points d'arrêt des autres tâches de script. Si une tâche de script fait partie
d'un conteneur de boucle Foreach ou For, le débogueur ignore les points
d'arrêt de la tâche de script après la première itération de la boucle.

Pour plus d’informations, consultez Script de débogage. Pour obtenir des suggestions
sur la façon de déboguer le composant Script, consultez Codage et débogage du
composant Script.

Dépannage des erreurs sans description


Si vous rencontrez un numéro d’erreur Integration Services accompagné d’aucune
description lors du développement du package, vous pouvez rechercher la description
dans le Guide de référence des erreurs et des messages propres à Integration Services.
La liste ne comporte actuellement aucune information de dépannage.

Voir aussi
Outils de dépannage pour l’exécution des packages
Fonctionnalités de performances de flux de données
Débogage du flux de contrôle
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

SQL Server Data Tools (SSDT) et Microsoft Integration Services incluent des
fonctionnalités et des outils permettant de résoudre les problèmes du flux de contrôle
d’un package Integration Services.

Integration Services prend en charge les points d’arrêt sur les conteneurs et les
tâches.

SSIS - Le concepteur SSIS fournit des rapports de progression au moment de


l’exécution.

SQL Server Data Tools (SSDT) propose des fenêtres de débogage.

Points d’arrêt
SSIS Le concepteur propose la boîte de dialogue Définir des points d’arrêt dans laquelle
vous pouvez définir des points d’arrêt en activant des conditions d’arrêt et en spécifiant
le nombre d’occurrences d’un point d’arrêt avant la suspension de l’exécution du
package. Les points d'arrêt peuvent être activés au niveau du package ou au niveau du
composant. Si des conditions d’arrêt sont activées au niveau de la tâche ou du
conteneur, l’icône de point d’arrêt apparaît en regard de la tâche ou du conteneur sur la
surface de dessin de l’onglet Flux de contrôle . Si les conditions d’arrêt sont activées au
niveau du package, l’icône de point d’arrêt apparaît sur l’étiquette de l’onglet Flux de
contrôle .

Lorsqu'un point d'arrêt est atteint, l'icône de point d'arrêt se transforme pour vous aider
à identifier la source du point d'arrêt. Vous pouvez ajouter, supprimer et modifier des
points d'arrêt au cours de l'exécution du package.

Integration Services propose dix conditions d’arrêt que vous pouvez activer sur toutes
les tâches et tous les conteneurs. Dans la boîte de dialogue Définir des points d’arrêt ,
vous pouvez activer des points d’arrêt pour les conditions suivantes :

Condition d'arrêt Description


Condition d'arrêt Description

Quand la tâche ou le Appelée lorsqu'une tâche est sur le point de s'exécuter. Cet
conteneur reçoit événement est déclenché par une tâche ou un conteneur
l’événement immédiatement avant son exécution.
OnPreExecute .

Quand la tâche ou le Appelée immédiatement après la fin de la logique d'exécution de la


conteneur reçoit tâche. Cet événement est déclenché par une tâche ou un conteneur
l’événement immédiatement après son exécution.
OnPostExecute .

Quand la tâche ou le Appelée par une tâche ou un conteneur lorsqu'une erreur se produit.
conteneur reçoit
l’événement OnError .

Quand la tâche ou le Appelée lorsque la tâche est dans un état qui ne justifie pas une
conteneur reçoit erreur, mais garantit un avertissement.
l’événement OnWarning .

Quand la tâche ou le Appelée lorsque la tâche doit fournir des informations.


conteneur reçoit
l’événement
OnInformation .

Quand la tâche ou le Appelée par l'hôte de la tâche lorsqu'il échoue.


conteneur reçoit
l’événement
OnTaskFailed .

Quand la tâche ou le Appelée pour mettre à jour la progression de l'exécution de la tâche.


conteneur reçoit
l’événement OnProgress .

Quand la tâche ou le Appelée à tout moment du traitement de la tâche lorsque vous


conteneur reçoit pouvez annuler l'exécution de la tâche.
l’événement
OnQueryCancel .

Quand la tâche ou le Appelée par le runtime Integration Services lorsque la valeur d'une
conteneur reçoit variable change. L’événement RaiseChangeEvent de la variable doit
l’événement avoir la valeur true pour déclencher cet événement.
OnVariableValueChanged
. ** Avertissement ** La variable associée à ce point d’arrêt doit être
définie dans l’étendue du conteneur. Si la variable est définie dans
l'étendue du package, le point d'arrêt n'obtient pas de
correspondance.
Condition d'arrêt Description

Quand la tâche ou le Appelée par les tâches pour déclencher des événements
conteneur reçoit personnalisés définis par la tâche.
l’événement
OnCustomEvent .

Outre les conditions d'arrêt disponibles pour toutes les tâches et tous les conteneurs,
certaines tâches et certains conteneurs proposent des conditions d'arrêt spéciales
permettant de définir des points d'arrêt. Vous pouvez ainsi activer une condition d'arrêt
sur le conteneur de boucles For définissant un point d'arrêt qui suspend l'exécution au
début de chaque itération de la boucle.

Pour le rendre plus flexible et plus puissant, vous pouvez modifier le comportement
d'un point d'arrêt en spécifiant les options suivantes :

Le nombre d'accès, ou le nombre maximal d'occurrences d'une condition d'arrêt


avant suspension de l'exécution.

Le type du nombre d'accès, ou la règle spécifiant à quel moment la condition


d'arrêt déclenche le point d'arrêt.

Les types du nombre d'accès, à l'exception du type Toujours, sont qualifiés de manière
plus approfondie par le nombre d'accès. Par exemple, si le type est « Égal au nombre
d'accès » et si le nombre d'accès est 5, l'exécution est suspendue à la sixième occurrence
de la condition d'arrêt.

Le tableau suivant décrit les types de nombre d'accès.

Type du Description
nombre
d'accès

Toujours L'exécution est toujours suspendue lorsque le point d'arrêt est atteint.

Égal au L'exécution est suspendue lorsque le nombre de fois où s'est produit le point
nombre d'arrêt est égal au nombre d'accès.
d'accès

Supérieur ou L'exécution est suspendue lorsque le nombre de fois où s'est produit le point
égal au d'arrêt est supérieur ou égal au nombre d'accès.
nombre
d'accès

Multiple du L'exécution est suspendue lorsqu'un multiple du nombre d'accès est atteint. Par
nombre exemple, si vous définissez cette option sur 5, l'exécution est suspendue une
d'accès fois toutes les cinq fois.
Pour définir des points d'arrêt
Déboguer un package en définissant des points d’arrêt sur une tâche ou un
conteneur

Rapport de progression
SSIS Le concepteur propose deux types de rapports de progression : les codes de
couleur sur l’aire de conception de l’onglet Flux de contrôle et les messages de
progression sous l’onglet Progression .

Lorsque vous exécutez un package, le concepteur SSIS indique la progression de


l'exécution en affichant chaque tâche ou conteneur dans une couleur qui indique l'état
de l'exécution. En fonction de la couleur, vous pouvez déterminer si l'élément est en
attente d'exécution, s'il est en cours d'exécution, s'il s'est terminé avec succès ou s'il
s'est terminé avec des erreurs. Les codes de couleur disparaissent dès que vous arrêtez
l'exécution du package.

Le tableau suivant indique les couleurs utilisées pour décrire l'état de l'exécution.

Couleur État de l'exécution

Gris En attente d'exécution

Jaune Exécution en cours

Vert Exécuté avec succès

mis en surbrillance Exécuté avec des erreurs

L’onglet Progression énumère les tâches et les conteneurs dans l’ordre d’exécution et
indique les heures de début et de fin, les avertissements et les messages d’erreur. À la
fin de l’exécution du package, les informations de progression restent disponibles sous
l’onglet Résultats d’exécution .

7 Notes

Pour activer ou désactiver l'affichage de messages sous l'onglet Progression ,


basculez l'option Création de rapports de progression de débogage dans le menu
SSIS .

Le diagramme qui suit représente l’onglet Progression .


Fenêtres de débogage
SQL Server Data Tools (SSDT) propose de nombreuses fenêtres que vous pouvez utiliser
pour travailler avec les points d’arrêt et déboguer les packages qui contiennent des
points d’arrêt. Pour en savoir plus sur chacune des fenêtres, ouvrez-les et appuyez sur F1
pour afficher l'aide.

Pour ouvrir ces fenêtres dans SQL Server Data Tools (SSDT), cliquez sur le menu
Déboguer , pointez sur Fenêtres, puis cliquez sur Points d’arrêt, Sortieou Immédiat.

La table suivante décrit chaque fenêtre.

Fenêtre Description

Points Énumère les points d'arrêt d'un package et donne accès aux options permettant
d’arrêt d'activer ou de supprimer des points d'arrêt.

Output Affiche les messages d’état relatifs aux fonctionnalités de SQL Server Data Tools
(SSDT).

Immédiat Utilisée pour déboguer et évaluer des expressions, et imprimer des valeurs variables.

Déboguer un package en définissant des points


d'arrêt sur une tâche ou un conteneur
Cette section décrit la procédure de définition des points d'arrêt dans un package, une
tâche, un conteneur de boucle For ou Foreach ou un conteneur de séquences.
Pour définir des points d'arrêt dans un package, une
tâche ou un conteneur
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Double-cliquez sur le package dans lequel vous souhaitez définir des points
d'arrêt.

3. Dans le concepteur SSIS, effectuez les opérations suivantes :

Pour définir des points d’arrêt dans l’objet package, cliquez sur l’onglet Flux
de contrôle , placez le curseur n’importe où sur l’arrière-plan de l’aire de
conception, cliquez avec le bouton droit, puis cliquez sur Modifier les points
d’arrêt.

Pour définir des points d’arrêt dans un flux de contrôle de package, cliquez
sur l’onglet Flux de contrôle , cliquez avec le bouton droit sur une tâche, un
conteneur de boucle For ou Foreach ou un conteneur de séquences, puis
cliquez sur Modifier les points d’arrêt.

Pour définir des points d’arrêt dans un gestionnaire d’événements, cliquez sur
l’onglet Gestionnaire d’événements , cliquez avec le bouton droit sur une
tâche, un conteneur de boucle For ou Foreach ou un conteneur de
séquences, puis cliquez sur Modifier les points d’arrêt.

4. Dans la boîte de dialogue Définir les points d’arrêt de <nom_conteneur>,


sélectionnez les points d’arrêt à activer.

5. Vous pouvez également modifier le type du nombre d'accès et la valeur du


nombre d'accès pour chaque point d'arrêt.

6. Pour enregistrer le package, cliquez sur Enregistrer les éléments sélectionnés dans
le menu Fichier .

Définir des points d’arrêt


Utilisez la boîte de dialogue Définir des points d'arrêt pour spécifier les événements
pour lesquels activer des points d'arrêt et pour gérer le contrôle du point d'arrêt.

Options
Activé
Sélectionnez cette option pour activer un point d'arrêt sur un événement.

Break Condition
Affichez la liste des événements disponibles sur lesquels définir des points d'arrêt.

Hit Count Type


Spécifiez le moment où le point d'arrêt entre en vigueur.

Valeur Description

Toujours L'exécution est toujours suspendue lorsque le point d'arrêt est atteint.

Égal au L'exécution est suspendue lorsque le nombre de fois où s'est produit le point
nombre d'arrêt est égal au nombre d'accès.
d'accès

Supérieur ou L'exécution est suspendue lorsque le nombre de fois où s'est produit le point
égal au d'arrêt est supérieur ou égal au nombre d'accès.
nombre
d'accès

Multiple du L'exécution est suspendue lorsqu'un multiple du nombre d'accès est atteint. Par
nombre exemple, si vous définissez cette option sur 5, l'exécution est suspendue une
d'accès fois toutes les cinq fois.

Nombre d'accès
Spécifiez le nombre d'accès à partir duquel déclencher un arrêt. Cette option n'est pas
disponible si le point d'arrêt est constamment en vigueur.

Voir aussi
Outils de dépannage pour le développement des packages
Déboguer un script en définissant des points d’arrêt dans une tâche de script et un
composant de script
Script de débogage
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous écrivez les scripts utilisés par la tâche de script et le composant de script dans
Microsoft Visual Studio Tools for Applications (VSTA).

Vous définissez et écrivez les points d'arrêt dans VSTA. Vous pouvez gérer les points
d’arrêt dans VSTA, mais également avec la boîte de dialogue Définir des points d’arrêt
fournie par le Concepteur SSIS . Pour plus d’informations, consultez Débogage du flux
de contrôle.

La boîte de dialogue Définir des points d’arrêt inclut les points d’arrêt du script. Ces
points d'arrêt apparaissent au bas de la liste des points d'arrêt et mentionnent le
numéro de ligne et le nom de la fonction dans laquelle le point d'arrêt apparaît. Vous
pouvez supprimer un point d’arrêt de script à partir de la boîte de dialogue Définir des
points d’arrêt .

Au moment de l'exécution, les points d'arrêt définis sur des lignes de code dans le script
sont intégrés à ceux définis sur le package ou sur les tâches et conteneurs du package.
Le débogueur peut s'exécuter à partir d'un point d'arrêt dans le script jusqu'à un point
d'arrêt défini sur le package, la tâche ou le conteneur, et inversement. Par exemple, un
package peut contenir des points d’arrêt définis sur les conditions d’arrêt qui se
produisent quand le package reçoit les événements OnPreExecute et OnPostExecute ,
et peut aussi contenir une tâche de script qui contient des points d’arrêt sur des lignes
de son script. Dans ce scénario, l’exécution du package peut être suspendue selon la
condition d’arrêt associée à l’événement OnPreExecute , se poursuivre jusqu’aux points
d’arrêt du script, puis continuer jusqu’à la condition d’arrêt associée à l’événement
OnPostExecute .

Pour plus d’informations sur le débogage de la tâche de Script et du composant Script,


consultez Codage et débogage de la tâche de script et Codage et débogage du
composant Script.

Pour définir un point d'arrêt dans Visual Studio for


Applications
Déboguer un script en définissant des points d’arrêt dans une tâche de script et un
composant de script
Voir aussi
Outils de dépannage pour le développement des packages
Débogage d'un flux de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Microsoft Integration Services et le concepteur SSIS incluent des fonctionnalités et des


outils permettant de résoudre les problèmes des flux de données d’un package
Integration Services.

SSIS - Le concepteur SSIS fournit des visionneuses de données.

SSIS - Le concepteur SSIS et les transformations Integration Services fournissent


des nombres de lignes.

SSIS - Le concepteur SSIS fournit des rapports de progression au moment de


l’exécution.

Visionneuses de données
Les visionneuses de données affichent les données entre deux composants d'un flux de
données. Elles permettent d'afficher les données lorsque celles-ci sont extraites d'une
source de données et intègrent pour la première fois un flux de données, avant et après
la mise à jour des données par une transformation et avant le chargement des données
dans leur destination.

Pour afficher les données, vous devez attacher des visionneuses au chemin d'accès qui
connecte deux composants de flux de données. Le fait de pouvoir afficher les données
entre deux composants de flux de données facilite l'identification des valeurs de
données inattendues, permet de voir les modifications apportées par une
transformation aux valeurs des colonnes et permet de découvrir la raison pour laquelle
une transformation échoue. Par exemple, si vous découvrez qu'une recherche dans une
table de référence échoue et que vous souhaitez corriger cette erreur, vous voudrez
peut-être ajouter une transformation qui fournit des données par défaut pour les
colonnes vides.

Une visionneuse de données peut afficher des données dans une grille. Dans une grille,
vous sélectionnez les colonnes à afficher. Les valeurs des colonnes sélectionnées
s'affichent sous forme de tableau.

Vous pouvez également inclure plusieurs visionneuses de données dans un chemin


d'accès. Vous pouvez afficher les mêmes données dans différents formats ; par exemple
créer un graphique et une grille des données, ou créer des visionneuses de données
distinctes pour différentes colonnes de données.

Quand vous ajoutez une visionneuse de données à un chemin, le concepteur SSIS ajoute
une icône de visionneuse de données sur l’aire de conception de l’onglet Flux de
données , en regard du chemin. Les transformations acceptant les sorties multiples
(telles que la transformation de fractionnement conditionnel) peuvent inclure une
visionneuse de données sur chaque chemin d'accès.

Au moment de l’exécution, une fenêtre Visionneuse de données s’ouvre et affiche les


informations spécifiées par le format de la visionneuse de données. Par exemple, une
visionneuse de données qui utilise le format de grille affiche les données des colonnes
sélectionnées, le nombre de lignes de sortie transmises au composant du flux de
données et le nombre de lignes affichées. Ces informations s'affichent tampon par
tampon et, selon la largeur des lignes dans le flux de données, un tampon peut contenir
plus ou moins de lignes.

Dans la boîte de dialogue Visionneuse de données , vous pouvez copier les données
dans le Presse-papiers, effacer toutes les données de la table, reconfigurer la
visionneuse de données, reprendre le flux de données, ainsi que détacher ou attacher la
visionneuse de données.

Pour ajouter une visionneuse de données


Ajouter une visionneuse de données à un flux de données

Nombres de lignes
Le nombre de lignes transférées via un chemin est affiché sur l’aire de conception de
l’onglet Flux de données du concepteur SSIS en regard du chemin. Ce nombre est mis à
jour régulièrement quand les données empruntent le chemin.

Vous pouvez également ajouter une transformation de nombre de lignes au flux de


données pour capturer le nombre de lignes final dans une variable. Pour plus
d’informations, voir Row Count Transformation.

Rapport de progression
Quand vous exécutez un package, le concepteur SSIS indique la progression sur l’aire de
conception de l’onglet Flux de données en affichant chaque composant du flux de
données dans une couleur qui indique son état. Lorsque les composants commencent à
effectuer leur travail, ils passent à la couleur jaune et une fois terminés, ils passent à la
couleur verte. Une couleur rouge indique que le composant a échoué.

Le tableau suivant décrit les codes de couleur.

Couleur Description

Aucune En attente d'être appelé par le moteur de flux de données.


couleur

Jaune Exécution d'une transformation, extraction de données ou chargement de


données en cours.

Vert Exécuté avec succès.

rouge Exécuté avec des erreurs.

Analyse des flux de données


Vous pouvez utiliser la vue de base de données catalog.execution_data_statisticsSSISDB
pour analyser le flux de données des packages. Cette vue affiche une ligne à chaque fois
qu'un composant de flux de données envoie des données à un composant en aval. Les
informations peuvent être utilisées pour mieux comprendre les lignes envoyées à
chaque composant.

7 Notes

Le niveau de journalisation doit avoir la valeur Commentaires afin de capturer des


informations avec la vue catalog.execution_data_statistics.

L'exemple suivant affiche le nombre de lignes transmises entre les composants d'un
package.

SQL

use SSISDB
select package_name, task_name, source_component_name,
destination_component_name, rows_sent
from catalog.execution_data_statistics
where execution_id = 132
order by source_component_name, destination_component_name

L'exemple suivant calcule le nombre de lignes par milliseconde envoyées par chaque
composant pour une exécution spécifique. Les valeurs calculées sont les suivantes :
total_rows - Somme de toutes les lignes envoyées par le composant

wall_clock_time_ms - Durée d’exécution écoulée totale en millisecondes pour


chaque composant

num_rows_per_millisecond - Nombre de lignes par milliseconde envoyées par


chaque composant

La clause HAVING est utilisée pour éviter une erreur de division par zéro dans les
calculs.

SQL

use SSISDB
select source_component_name, destination_component_name,
sum(rows_sent) as total_rows,
DATEDIFF(ms,min(created_time),max(created_time)) as wall_clock_time_ms,
((0.0+sum(rows_sent)) /
(datediff(ms,min(created_time),max(created_time)))) as
[num_rows_per_millisecond]
from [catalog].[execution_data_statistics]
where execution_id = 132
group by source_component_name, destination_component_name
having (datediff(ms,min(created_time),max(created_time))) > 0
order by source_component_name desc

Configurer une sortie d'erreur dans un


composant de flux de données
De nombreux composants de flux de données prennent en charge les sorties d’erreur, et
en fonction du composant, le concepteur SSIS offre différentes manières de configurer
une sortie d’erreur. En plus de configurer une sortie d'erreur, vous pouvez également
configurer les colonnes d'une sortie d'erreur. Cela inclut la configuration des colonnes
ErrorCode et ErrorColumn ajoutées par le composant.

Configuration d'une sortie d'erreur


Pour configurer une sortie d'erreur, vous avez deux options :

Utilisez la boîte de dialogue Configurer la sortie d’erreur . Cette boîte de dialogue


vous permet de configurer une sortie d'erreur sur n'importe quel composant de
flux de données prenant en charge les sorties d'erreur.
Utilisez la boîte de dialogue de l'éditeur pour le composant. Certains composants
vous permettent de configurer directement des sorties d'erreur dans la boîte de
dialogue de l'éditeur. Toutefois, vous ne pouvez pas configurer des sorties d’erreur
dans la boîte de dialogue de l’éditeur pour la source ADO NET, la transformation
d’importation de colonne, la transformation de commande OLE DB ou la
destination SQL Server Compact.

Les procédures suivantes décrivent l'utilisation de ces boîtes de dialogue pour


configurer des sorties d'erreur.

Pour configurer une sortie d'erreur à l'aide de la boîte de dialogue


Configurer la sortie d'erreur

1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Dans le concepteur SSIS , cliquez sur l’onglet Flux de données .

4. Faites glisser la sortie d'erreur, représentée par la flèche rouge, du composant qui
est la source des erreurs vers un autre composant du flux de données.

5. Dans la boîte de dialogue Configurer la sortie d’erreur , sélectionnez une action


dans les colonnes Erreur et Troncation pour chaque colonne de sortie du
composant.

6. Pour enregistrer le package mis à jour, dans le menu Fichier , cliquez sur
Enregistrer les éléments sélectionnés.

Pour ajouter une sortie d'erreur à l'aide de la boîte de dialogue de


l'éditeur du composant
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Dans le concepteur SSIS , cliquez sur l’onglet Flux de données .

4. Double-cliquez sur les composants de flux de données pour lesquels vous voulez
configurer une sortie d'erreur, et en fonction du composant, procédez de l'une des
manières suivantes :
Cliquez sur Configurer la sortie d’erreur.

Cliquez sur Sortie d’erreur.

5. Définissez l’option Erreur pour chaque colonne.

6. Définissez l’option Troncation pour chaque colonne.

7. Cliquez sur OK.

8. Pour enregistrer le package mis à jour, dans le menu Fichier , cliquez sur
Enregistrer les éléments sélectionnés.

Configuration des colonnes de sortie d'erreur


Pour configurer les colonnes de sortie d’erreur, vous devez utiliser l’onglet Propriétés
d’entrée et de sortie dans la boîte de dialogue Éditeur avancé .

Pour configurer des colonnes de sortie d'erreur

1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Dans le concepteur SSIS , cliquez sur l’onglet Flux de données .

4. Cliquez avec le bouton droit sur le composant dont vous voulez configurer les
colonnes de sortie d’erreur et cliquez sur Afficher l’éditeur avancé.

5. Cliquez sur l’onglet Propriétés d’entrée et de sortie et développez Sortie d’erreur


de <nom du composant>, puis Colonnes de sortie.

6. Cliquez sur une colonne et mettez à jour ses propriétés.

7 Notes

La liste des colonnes comprend les colonnes de l’entrée du composant, les


colonnes ErrorCode et ErrorColumn ajoutées par des sorties d'erreur
précédentes et les colonnes ErrorCode et ErrorColumn ajoutées par ce
composant.

7. Cliquez sur OK.


8. Pour enregistrer le package mis à jour, dans le menu Fichier , cliquez sur
Enregistrer les éléments sélectionnés.

Ajouter une visionneuse de données à un flux


de données
Cette rubrique explique comment ajouter et configurer une visionneuse de données
dans un flux de données. Une visionneuse de données affiche des données déplacées
entre deux composants de flux de données Par exemple, une visionneuse de données
peut afficher les données extraites d'une source de données avant qu'une
transformation dans le flux de données modifie les données.

Un chemin d'accès connecte des composants d'un flux de données en reliant la sortie
d'un composant à l'entrée d'un autre composant.

Avant que vous puissiez ajouter des visionneuses de données à un package, celui-ci doit
inclure une tâche de flux de données et au moins deux composants de flux de données
connectés.

Associe une visionneuse de données à une sortie d’erreur pour afficher la description de
l’erreur et le nom de la colonne dans laquelle l’erreur s’est produite. Par défaut, la sortie
d’erreur inclut uniquement des identificateurs numériques pour l’erreur et la colonne.

Pour ajouter une visionneuse de données à un flux de


données
1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Dans l'Explorateur de solutions, double-cliquez sur le package pour l'ouvrir.

3. Cliquez sur l'onglet Flux de contrôle , s'il n'est pas déjà sélectionné.

4. Cliquez sur la tâche de flux de données au flux de données de laquelle vous voulez
joindre une visionneuse de données, puis cliquez sur l'onglet Flux de données .

5. Cliquez avec le bouton droit sur un chemin entre deux composants de flux de
données, puis cliquez sur Modifier.

6. Dans la page Général , vous pouvez afficher et modifier les propriétés du chemin
d'accès. Par exemple, dans la liste déroulante PathAnnotation , vous pouvez
sélectionner l’annotation qui apparaît en regard du chemin.
7. Dans la page Métadonnées , vous pouvez afficher les métadonnées de la colonne
et les copier dans le presse-papiers.

8. Dans la page Visionneuse de données , cliquez sur Activer la visionneuse de


données.

9. Dans la zone Colonnes à afficher, sélectionnez les colonnes à afficher dans la vue
de source de données. Par défaut, toutes les colonnes disponibles sont
sélectionnées et figurent dans la liste Colonnes affichées . Déplacez les colonnes
que vous ne voulez pas utiliser dans la liste Colonnes inutilisées en les
sélectionnant et en cliquant sur la flèche gauche.

7 Notes

Dans la grille, les valeurs qui représentent les types de données DT_DATE,
DT_DBTIME2, DT_FILETIME, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 et
DT_DBTIMESTAMPOFFSET apparaissent sous forme de chaînes au format ISO
8601 et un espace de séparation remplace le séparateur T . Les valeurs qui
représentent les types de données DT_DATE et DT_FILETIME incluent sept
chiffres pour les fractions de seconde. Étant donné que le type de données
DT_FILETIME stocke uniquement trois chiffres pour les fractions de seconde, la
grille affiche des zéros pour les quatre chiffres restants. Les valeurs qui
représentent le type de données DT_DBTIMESTAMP incluent trois chiffres pour
les fractions de seconde. Pour les valeurs qui représentent les types de
données DT_DBTIME2, DT_DBTIMESTAMP2 et DT_DBTIMESTAMPOFFSET, le
nombre de chiffres pour les fractions de seconde correspond à l'échelle
spécifiée pour le type de données de la colonne. Pour plus d'informations sur
les formats ISO 8601, consultez Date and Time Formats. Pour plus
d'informations sur les types de données, consultez Integration Services Data
Types.

10. Cliquez sur OK.

Drainage des flux de données


Vous pouvez ajouter un drainage des données au niveau du chemin d’un flux de
données d’un package au moment de l’exécution et diriger la sortie à partir du drainage
des données vers un fichier externe. Pour utiliser cette fonctionnalité, vous devez
déployer votre projet SSIS à l'aide du modèle de déploiement de projet sur un serveur
SSIS. Après avoir déployé le package sur le serveur, vous devez exécuter des scripts T-
SQL sur la base de données SSISDB pour ajouter des drainages de données avant
d'exécuter le package. Voici un exemple de scénario :

1. Créez une instance d’exécution d’un package à l’aide de la procédure stockée


catalog.create_execution (base de données SSISDB).

2. Ajoutez un drainage de données à l’aide d’une procédure stockée


catalog.add_data_tap ou catalog.add_data_tap_by_guid .

3. Démarrez l’instance d’exécution du package à l’aide de catalog.start_execution


(base de données SSISDB).

Voici un exemple de script SQL qui exécute les étapes décrites dans le scénario ci-dessus
:

SQL

Declare @execid bigint


EXEC [SSISDB].[catalog].[create_execution] @folder_name=N'ETL Folder',
@project_name=N'ETL Project', @package_name=N'Package.dtsx',
@execution_id=@execid OUTPUT
EXEC [SSISDB].[catalog].add_data_tap @execution_id = @execid,
@task_package_path = '\Package\Data Flow Task', @dataflow_path_id_string =
'Paths[Flat File Source.Flat File Source Output]', @data_filename =
'output.txt'
EXEC [SSISDB].[catalog].[start_execution] @execid

Les paramètres folder_name, project_name et package_name de la procédure stockée


create_execution correspondent au dossier, au projet et au package dans le catalogue
Integration Services. Vous pouvez obtenir les noms de dossier, projet et package à
utiliser dans l'appel de create_execution dans SQL Server Management Studio comme le
montre l'image suivante. Si le projet SSIS ne s'affiche pas ici, vous n'avez peut-être pas
encore déployé le projet sur le serveur SSIS. Cliquez avec le bouton droit sur le projet
SSIS dans Visual Studio, puis cliquez sur Déployer pour déployer le projet sur le serveur
SSIS prévu.

Au lieu de taper des instructions SQL, générez le script d'exécution de package en


procédant comme suit :

1. Cliquez avec le bouton droit sur Package.dtsx , puis sélectionnez Exécuter.

2. Cliquez sur le bouton de la barre d'outils Script pour générer le script.

3. Ajoutez l'instruction add_data_tap avant l'appel de start_execution.


Le paramètre task_package_path de la procédure stockée add_data_tap correspond à la
propriété PackagePath de la tâche de flux de données dans Visual Studio. Dans Visual
Studio, cliquez avec le bouton droit sur Tâche de flux de données, puis cliquez sur
Propriétés pour lancer la fenêtre Propriétés. Notez la valeur de la propriété PackagePath
pour l’utiliser comme valeur du paramètre task_package_path de l’appel de procédure
stockée add_data_tap.

Le paramètre dataflow_path_id_string de la procédure stockée add_data_tap correspond


à la propriété IdentificationString du chemin de flux de données auquel vous voulez
ajouter un drainage de données. Pour obtenir dataflow_path_id_string, cliquez sur le
chemin de flux de données (flèche entre les tâches du flux de données), et notez la
valeur de la propriété IdentificationString dans la fenêtre Propriétés.

Quand vous exécutez le script, le fichier de sortie est stocké dans <Program
Files>\Microsoft SQL Server\110\DTS\DataDumps. S’il existe déjà un fichier du même
nom, un nouveau fichier avec un suffixe (par exemple output[1].txt) est créé.

Comme mentionné précédemment, vous pouvez également utiliser la procédure


stockée catalog.add_data_tap_by_guidplutôt que add_data_tap. Cette procédure stockée
accepte l'ID de tâche de flux de données comme paramètre au lieu de
task_package_path. L'ID de tâche de flux de données est disponible dans la fenêtre
Propriétés de Visual Studio.

Suppression d'un drainage de données


Vous pouvez supprimer un drainage de données avant de lancer l’exécution à l’aide de
la procédure stockée catalog.remove_data_tap . Cette procédure stockée accepte l'ID de
drainage de données comme paramètre, que vous pouvez obtenir en tant que résultat
de la procédure stockée add_data_tap.

SQL

DECLARE @tap_id bigint


EXEC [SSISDB].[catalog].add_data_tap @execution_id = @execid,
@task_package_path = '\Package\Data Flow Task', @dataflow_path_id_string =
'Paths[Flat File Source.Flat File Source Output]', @data_filename =
'output.txt' @data_tap_id=@tap_id OUTPUT
EXEC [SSISDB].[catalog].remove_data_tap @tap_id

Création de la liste de tous les drainages de données


Vous pouvez également afficher la liste de tous les drainages de données à l'aide de
l'affichage catalog.execution_data_taps. Cet exemple extrait les drainages de données
pour une instance d'exécution de spécification (ID : 54).

SQL

select * from [SSISDB].[catalog].execution_data_taps where


execution_id=@execid

Observation relative aux performances


Le fait d'activer le niveau de journalisation détaillée et d'ajouter des drainages de
données augmente les opérations d'E/S effectuées par votre solution d'intégration de
données. Par conséquent, il est recommandé d'ajouter des drainages de données
uniquement à des fins de dépannage.

Vidéo
Cette vidéo sur TechNet montre comment ajouter/utiliser des drainages de données
dans le catalogue SQL Server 2012 SSISDB qui permettent de déboguer des packages
par programmation et de capturer les résultats partiels au moment de l’exécution. Elle
explique également comment répertorier/supprimer ces drainages de données et les
meilleures pratiques pour l'utilisation des drainages de données dans des packages
SSIS.

Voir aussi
Gestion des erreurs dans les données
Outils de dépannage de la connectivité
des packages
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Integration Services inclut des fonctionnalités et des outils que vous pouvez utiliser pour
dépanner la connectivité entre les packages et les sources de données à partir
desquelles les packages extraient et chargent des données.

Dépannage des problèmes liés aux fournisseurs


de données externes
Beaucoup de packages échouent lorsqu'ils communiquent avec des fournisseurs de
données externes. Néanmoins, les messages que retournent ces fournisseurs à
Integration Services apportent souvent des informations insuffisantes pour commencer
à résoudre cet échec de communication. Pour traiter ce problème, Integration Services
inclut des messages de journalisation qui vous permettent de résoudre les problèmes
d'interaction d'un package avec des sources de données externes.

Activez la journalisation et sélectionnez l’événement Diagnostic du package


pour afficher les messages de dépannage. Les composants Integration Services
suivants peuvent écrire un message dans le journal avant et après chaque appel à
un fournisseur de données externes :

Gestionnaire de connexions OLE DB, source OLE DB et destination OLE DB

Gestionnaire de connexions ADO.NET et source ADO NET

Tâche d'exécution de requêtes SQL

Transformation de recherche, transformation de commande OLE DB et


transformation de dimension à variation lente

Les messages de journal contiennent le nom de la méthode appelée. Par exemple,


ils peuvent inclure la méthode Open d’un objet OLE DB Connection ou la méthode
ExecuteNonQuery d’un objet Command. Les messages ont le format suivant, où
'%1!s!' est un emplacement réservé pour les informations de méthode :
ExternalRequest_pre: The object is ready to make the following external
request: '%1!s!'.
ExternalRequest_post: '%1!s!'. The external request has completed.

Pour résoudre les problèmes d’interaction avec le fournisseur de données externes,


passez en revue le journal pour savoir si chaque message transmis « avant »
( ExternalRequest_pre dispose d’un message transmis « après »
( ExternalRequest_post ) correspondant. Si aucun message postérieur
correspondant n'existe, vous savez alors que le fournisseur de données externes
n'a pas répondu comme prévu.

L'exemple suivant présente quelques exemples de lignes d'un journal contenant


ces messages de journalisation :

ExternalRequest_pre: The object is ready to make the following external


request: 'ITransactionJoin::JoinTransaction'.
ExternalRequest_post: 'ITransactionJoin::JoinTransaction succeeded'.
The external request has completed.
ExternalRequest_pre: The object is ready to make the following external
request: 'IDbConnection.Open'.
ExternalRequest_post: 'IDbConnection.Open succeeded'. The external
request has completed.
ExternalRequest_pre: The object is ready to make the following external
request: 'IDbConnection.CreateCommand'.
ExternalRequest_post: 'IDbConnection.CreateCommand finished'. The
external request has completed."
ExternalRequest_pre: The object is ready to make the following external
request: 'IDbCommand.ExecuteReader'.
ExternalRequest_post: 'IDbCommand.ExecuteReader finished'. The external
request has completed."
ExternalRequest_pre: The object is ready to make the following external
request: 'IDataReader.GetSchemaTable'.
ExternalRequest_post: 'IDataReader.GetSchemaTable finished'. The
external request has completed."
ExternalRequest_pre: The object is ready to make the following external
request: 'IDataReader.Close'.
ExternalRequest_post: 'IDataReader.Close finished'. The external
request has completed."
ExternalRequest_pre: The object is ready to make the following external
request: 'IDbConnection.Close'.
ExternalRequest_post: 'IDbConnection.Close finished'. The external
request has completed."

Voir aussi
Outils de dépannage pour le développement des packages
Outils de dépannage pour l’exécution des packages
Outils de dépannage pour l'exécution
des packages
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Integration Services intègre des fonctionnalités et des outils que vous pouvez utiliser
pour résoudre des problèmes liés aux packages que vous exécutez après les avoir
menés à terme et les avoir déployés.

Au moment de la conception, SQL Server Data Tools (SSDT) fournit des points d'arrêt
permettant d'arrêter l'exécution des packages, une fenêtre Progression et des
visionneuses de données à l'aide desquelles vous pouvez observer les données qui
traversent le flux de données. Néanmoins, ces fonctionnalités ne sont pas disponibles
lorsque vous exécutez des packages que vous avez déployés. Les principales techniques
de dépannage des packages déployés sont les suivantes :

Détection et traitement des erreurs liées aux packages par le biais de gestionnaires
d'événements.

Capture de données incorrectes à l'aide de sorties d'erreur.

Suivi des étapes d'exécution des packages à l'aide de la fonction de journalisation.

Vous pouvez également suivre les conseils et les techniques suivantes pour éviter tout
problème lors de l'exécution des packages :

Renforcez l'intégrité des données à l'aide de transactions. Pour plus


d’informations, consultez Transactions Integration Services.

Utilisez des points de contrôle pour redémarrer les packages à compter du point
de défaillance. Pour plus d'informations, consultez Redémarrer des packages à
l'aide de points de contrôle.

Détecter et traiter les erreurs liées aux


packages par le biais de gestionnaires
d'événements
Vous pouvez répondre aux nombreux événements engagés par le package et les objets
de ce dernier par le biais de gestionnaires d'événements.
Créez un gestionnaire d'événements pour l'événement OnError. Dans le
gestionnaire d'événements, vous pouvez recourir à une tâche Envoyer un message
pour signaler l'échec à un administrateur, utiliser une tâche de script et une
logique personnalisée pour recueillir des informations système à des fins de
dépannage, ou bien nettoyer les ressources temporaires ou des résultats
incomplets. Pour plus d’informations, consultez Gestionnaires d’événements
Integration Services (SSIS).

Résoudre les problèmes liés à des données


incorrectes à l'aide de sorties d'erreur
Vous pouvez exploiter la sortie d'erreur disponible dans nombre de composants de flux
de données pour orienter les lignes contenant des erreurs vers une destination distincte
en vue d'une analyse ultérieure. Pour plus d’informations, consultez Gestion des erreurs
dans les données.

Capturez les données incorrectes à l'aide de sorties d'erreur. Transmettez les


lignes qui contiennent des erreurs à une destination distincte, telle qu'une table
d'erreurs ou un fichier texte. La sortie d'erreur ajoute automatiquement deux
colonnes numériques renfermant le numéro de l'erreur responsable du rejet de la
ligne, ainsi que l'ID de la colonne dans laquelle l'erreur est survenue.

Dotez les sorties d'erreur d'informations conviviales. Vous pouvez faciliter le


travail d’analyse de la sortie d’erreur en ajoutant le message d’erreur ainsi que le
nom de la colonne, en plus des deux identificateurs numériques fournis par la
sortie d’erreur. Pour découvrir un exemple montrant comment ajouter ces deux
colonnes à l’aide de scripts, voir Amélioration d'une sortie d'erreur à l'aide du
composant Script.

Ou obtenez le nom des colonnes en enregistrant l’événement DiagnosticEx. Cet


événement consigne un mappage de lignage de flux de données dans le journal.
Vous pouvez alors rechercher le nom de colonne dans ce mappage de lignage à
l’aide de l’identificateur de colonne capturé par une sortie d’erreur. Pour plus
d’informations, consultez Gestion des erreurs dans les données.

La valeur de la colonne de message pour DiagnosticEx est du texte XML. Pour


afficher le texte du message pour une exécution de package, interrogez l’affichage
catalog.operation_messages (Base de données SSISDB). Notez que l’événement
DiagnosticEx ne conserve pas l’espace blanc dans sa sortie XML afin réduire la
taille du journal. Pour améliorer la lisibilité, copiez le journal dans un éditeur XML
(dans Visual Studio, par exemple) prenant en charge la mise en forme XML et la
mise en surbrillance de la syntaxe.

Résoudre les problèmes liés à l'exécution des


packages à l'aide de rapports d'opérations
Des rapports d'opérations standard sont disponibles dans SQL Server Management
Studio pour vous aider à contrôler les packages Integration Services déployés dans le
catalogue Integration Services . Ces rapports de package vous aident à consulter l'état
et l'historique du package et, si nécessaire, à identifier la cause des erreurs.

Pour plus d’informations, voir Rapports de dépannage pour l’exécution des packages.

Résoudre les problèmes liés à l'exécution des


packages à l'aide de vues SSISDB
Vous pouvez interroger plusieurs vues de base de données SSISDB pour contrôler les
informations relatives à l'exécution des packages et à d'autres opérations. Pour plus
d’informations, consultez Surveiller les packages en cours d’exécution et autres
opérations.

Résoudre les problèmes liés à l'exécution des


packages à l'aide de la journalisation
Vous pouvez contrôler la plupart des opérations réalisées dans vos packages en cours
d'exécution en activant la fonction de journalisation. Les modules fournisseur
d'informations permettent de capturer des informations sur des événements spécifiques
à des fins d'analyse ultérieure, puis d'enregistrer ces informations dans une table de
base de données, un fichier plat, un fichier XML ou un autre format de sortie pris en
charge.

Activez la journalisation. Vous pouvez affiner la sortie de journalisation en


choisissant uniquement les événements et les éléments d'information que vous
souhaitez capturer. Pour plus d’informations, consultez Journalisation d’Integration
Services (SSIS).

Sélectionnez l'événement Diagnostic du package pour résoudre les problèmes


inhérents au fournisseur. Il existe des messages de journalisation qui vous
permettent de résoudre les problèmes d'interaction d'un package avec des sources
de données externes. Pour plus d’informations, voir Outils de dépannage de la
connectivité des packages.

Améliorez la sortie de journalisation par défaut. La journalisation ajoute


généralement des lignes à la destination de journalisation à chaque exécution d'un
package. Bien que chaque ligne de la sortie de journalisation identifie le package
par son nom et son identificateur unique, ainsi que l'exécution du package par un
ExecutionID unique, une grande partie de la sortie de journalisation au sein d'une
seule liste peut s'avérer difficile à analyser.

L'approche suivante est une suggestion possible pour améliorer la sortie de


journalisation par défaut et la rendre plus facile pour la génération de rapports :

1. Créez une table parent chargée de consigner chaque exécution d'un


package. Cette table parent dispose d'une seule ligne pour chaque exécution
d'un package et utilise l'ExecutionID pour établir un lien avec les
enregistrements enfants de la table de journalisation Integration Services .
Vous pouvez exécuter une tâche d'exécution SQL au début de chaque
package pour créer cette nouvelle ligne et enregistrer l'heure de début. Vous
pouvez ensuite utiliser une autre tâche d'exécution SQL à la fin du package
pour mettre à jour la ligne avec l'heure de fin, la durée et l'état.

2. Ajoutez des informations d'audit au flux de données. Vous pouvez utiliser la


transformation d'audit pour ajouter aux lignes du flux de données des
informations sur l'exécution de package ayant entraîné la création ou la
modification de chaque ligne. La transformation d'audit met neuf éléments
d'information à disposition, notamment les variables PackageName et
ExecutionInstanceGUID. Pour plus d’informations, voir Transformation
d’Audit. Si vous disposez d'informations personnalisées que vous aimeriez
inclure dans chaque ligne à des fins d'audit, vous pouvez les ajouter aux
lignes dans le flux de données à l'aide d'une transformation de colonne
dérivée. Pour plus d'informations, consultez Transformation de colonne
dérivée.

3. Si possible, capturez les données sur le nombre de lignes. Si possible, créez


une table séparée pour les informations concernant le nombre de lignes dans
laquelle chaque instance d'exécution de package est identifiée par son
ExecutionID. Utilisez la transformation de calcul du nombre de lignes pour
enregistrer le nombre de lignes dans une série de variables à des étapes
critiques du flux de données. À la fin du flux de données, utilisez une tâche
d'exécution SQL pour insérer la série de valeurs dans une ligne de la table en
vue d'une analyse et d'un rapport ultérieurs.
Pour plus d'informations sur cette approche, consultez la section « ETL Auditing
and Logging » dans le livre blanc MicrosoftProject REAL: Business Intelligence ETL
Design Practices (en anglais).

Résoudre les problèmes liés à l'exécution des


packages à l'aide de fichiers de vidage du
débogage
Dans Integration Services, vous pouvez créer des fichiers de vidage du débogage qui
fourniront des informations sur l'exécution d'un package. Pour plus d’informations, voir
Generating Dump Files for Package Execution.

Résoudre les problèmes de validation au


moment de l'exécution
Il est possible, parfois, que vous ne parveniez pas à vous connecter à vos sources de
données ou que des parties de votre package ne puissent pas être validées jusqu'à ce
que les précédentes tâches du package aient été exécutées. Integration Services vous
permettent d'éviter des erreurs de validation susceptibles de survenir dans ces
conditions :

Configurez la propriété DelayValidation dans les éléments de package non


valides lors du chargement du package. Pour éviter des erreurs de validation lors
du chargement du package, vous pouvez affecter à DelayValidation la valeur True
dans des éléments de package dont la configuration n'est pas valide. Par exemple,
vous pouvez disposer d'une tâche Flux de données qui utilise une table de
destination qui n'existe pas jusqu'à ce qu'une tâche d'exécution SQL crée la table
au moment de l'exécution. La propriété DelayValidation peut être activée au
niveau du package ou au niveau des tâches individuelles et des conteneurs inclus
dans le package.

La propriété DelayValidation peut être définie sur une tâche Flux de données mais
pas sur des composants de flux de données individuels. Vous pouvez obtenir un
résultat similaire en affectant la valeur ValidateExternalMetadata à la propriété
ValidateExternalMetadata. Néanmoins, si cette propriété affiche la valeur false, le
composant n'a pas connaissance des modifications apportées aux métadonnées
des sources de données externes. Quand la valeur trueest définie, la propriété
ValidateExternalMetadata peut permettre d’éviter des problèmes de blocage
provoqués par un verrouillage dans la base de données, surtout quand le package
utilise des transactions.

Résoudre les problèmes d'autorisations au


moment de l'exécution
Si vous rencontrez des erreurs lorsque vous tentez d'exécuter des packages déployés à
l'aide de l'Agent SQL Server , il est possible que les comptes employés par ce dernier ne
disposent pas des autorisations nécessaires. Pour plus d'informations sur la résolution
des problèmes liés aux packages que vous exécutez à partir des travaux de l'Agent SQL
Server , consultez Un package SSIS n'est pas exécuté lorsque vous appelez le package
SSIS à partir d'une étape de travail de SQL Server Agent . Pour plus d’informations sur
l’exécution de packages à partir des travaux de l’Agent SQL Server , consultez Travaux de
l’Agent SQL Server pour les packages.

Pour se connecter à des sources de données Excel ou Access, l'Agent SQL Server
requiert un compte doté de l'autorisation de lire, écrire, créer et supprimer des fichiers
temporaires dans le dossier spécifié par les variables d'environnement TEMP et TMP.

Résoudre les problèmes liés à la version 64 bits


Certains fournisseurs de données ne sont pas disponibles sur la plateforme 64
bits. C’est notamment le cas du fournisseur Microsoft Jet OLE DB, qui est
nécessaire pour se connecter à des sources de données Excel ou Access : il n’est
pas disponible dans une version 64 bits.

Résoudre les erreurs sans description


Si vous rencontrez une erreur Integration Services sans description qui l'accompagne,
vous pouvez localiser cette dernière dans le Guide de référence des erreurs et des
messages propres à Integration Services en recherchant l'erreur d'après son numéro. La
liste ne comporte actuellement aucune information de dépannage.

Tâches associées
Débogage d’un flux de données
Dépannage des rapports pour
l'exécution des packages
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Dans la version actuelle de SQL Server Integration Services, deux rapports standard sont
disponibles dans SQL Server Management Studio pour vous aider à superviser et à
dépanner les packages Integration Services déployés dans le catalogue Integration
Services. Deux types de rapports de package peuvent notamment vous aider à consulter
l'état d'exécution du package et à identifier la cause des erreurs d'exécution.

Tableau de bord Integration Services - Ce rapport fournit une vue d’ensemble de


toutes les exécutions de package sur l’instance de SQL Server au cours des
dernières 24 heures. Le rapport affiche des informations telles que l'état, le type
d'opération, le nom du package, etc., pour chaque package.

L'heure de début, l'heure de fin et la durée peuvent être interprétées comme suit :

Si le package fonctionne toujours, alors Durée = heure actuelle - heure de


début

Si le package est terminé, alors Durée = heure de fin - heure de début

Pour chaque package qui s'est exécuté sur le serveur, le tableau de bord vous
permet de « zoomer » pour rechercher des détails spécifiques sur les erreurs
d'exécution du package qui se sont produites. Pour un exemple, cliquez sur Vue
d’ensemble pour afficher un aperçu détaillé de l’état des tâches dans l’exécution,
ou Tous les messages pour afficher les messages détaillés capturés dans le cadre
de l’exécution du package.

Vous pouvez filtrer la table affichée dans une page en cliquant sur Filtrer et en
sélectionnant des critères dans la boîte de dialogue Paramètres du filtre . Les
critères de filtre disponibles dépendent des données qui sont affichées. Vous
pouvez modifier l’ordre de tri du rapport en cliquant sur l’icône de tri dans la boîte
de dialogue Paramètres du filtre .

Activité - Rapport Toutes les exécutions - Ce rapport affiche un résumé de toutes


les exécutions de Integration Services exécutées sur le serveur. Le résumé affiche
les informations relatives à chaque exécution telles que l'état, l'heure de début et
l'heure de fin. Chaque entrée de résumé inclut des liens vers des informations
concernant l'exécution, notamment les messages générés pendant l'exécution et
les données de performances. Comme avec le Tableau de bord Integration
Services, vous pouvez appliquer un filtre à la table afin de réduire les informations
affichées.

Contenu associé
Rapports pour le serveur Integration Services

Outils de dépannage pour l’exécution des packages


Générer de fichiers de vidage pour
l'exécution des packages
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Dans Integration Services, vous pouvez créer des fichiers de vidage du débogage qui
fourniront des informations sur l'exécution d'un package. Les informations contenues
dans ces fichiers peuvent vous aider à résoudre des problèmes d’exécution du package.

7 Notes

Les fichiers de vidage de débogage peuvent contenir des informations sensibles.


Pour protéger les informations sensibles, vous pouvez utiliser une liste de contrôle
d'accès (ACL) afin de restreindre l'accès aux fichiers ou copier les fichiers dans un
dossier avec accès limité. Par exemple, nous vous recommandons de supprimer
toutes les informations sensibles ou confidentielles avant d'envoyer vos fichiers de
débogage aux services de support technique de Microsoft .

Lorsque vous déployez un projet sur le serveur Integration Services , vous pouvez créer
des fichiers de vidage qui fournissent des informations sur l'exécution des packages
contenus dans le projet. Lorsque le processus ISServerExec.exe se termine, les fichiers de
vidage sont créés. Vous pouvez spécifier qu'un fichier de vidage doit être créé lorsque
des erreurs se produisent durant l'exécution du package. Pour ce faire, sélectionnez
l'option Vider en cas d'erreurs dans la boîte de dialogue Exécuter le package . Vous
pouvez également utiliser les procédures stockées suivantes :

catalog.set_execution_parameter_value (base de données SSISDB)

Appelez cette procédure stockée pour configurer un fichier de vidage à créer


lorsqu'une erreur ou un événement se produit, et lorsque des événements
spécifiques se produisent, au cours de l'exécution d'un package.

catalog.create_execution_dump

Appelez cette procédure stockée pour obliger un package à interrompre son


exécution et créer un fichier de vidage.

Si vous déployez des packages à l’aide du modèle de déploiement de package, vous


créez les fichiers de vidage du débogage à l’aide de l’utilitaire dtexec ou de l’utilitaire
dtutil pour spécifier une option de vidage du débogage sur la ligne de commande. Pour
plus d'informations, consultez dtexec Utility et dtutil Utility. Pour plus d’informations sur
les modèles de déploiement de package, consultez Déploiement de projets et de
packages Integration Services (SSIS) et Déploiement de packages hérités (SSIS).

Format des fichiers de vidage du débogage


Lorsque vous spécifiez une option de vidage de débogage, Integration Services crée les
fichiers de vidage de débogage suivants :

Un fichier de vidage de débogage .mdmp. Il s'agit d'un fichier binaire.

Fichier de vidage de débogage .tmp. Il s'agit d'un fichier au format texte.

Par défaut, Integration Services stocke ces fichiers dans le dossier <lecteur>:\Program
Files\Microsoft SQL Server\110\Shared\ErrorDumps.

Le tableau ci-dessous décrit uniquement certaines sections du fichier .tmp. Le fichier


.tmp inclut des données supplémentaires qui ne sont pas répertoriées dans ce tableau.

Type Description Exemple


d'informations

Environnement Version de système # Vidage texte SSIS effectué le 13/09/2007 à 13:50:34


d'exploitation,
données d'utilisation # PID 4120
de la mémoire, ID de
processus et nom #Nom de l'image [C:\Program Files\Microsoft SQL
d'image de Server\110\DTS\Binn\DTExec.exe]
processus. Les
informations # OS major=6 minor=0 build=6000
d'environnement se
trouvent au début # Exécution sur 2 processeurs amd64 sous WOW64
du fichier .tmp.
# Mémoire : 58 % utilisés. Physical: 845M/2044M
Paging: 2404M/4095M (avail/total)

Chemin d'accès Chemin d'accès et # Module chargé :


et version des numéro de version c:\bb\Sql\DTS\src\bin\debug\i386\DTExec.exe
bibliothèques de chaque DLL que (10.0.1069.5)
de liens le système charge
dynamiques pendant le # Module chargé : C:\Windows\SysWOW64\ntdll.dll
(DLL) traitement d'un (6.0.6000.16386)
package.
# Module chargé : C:\Windows\syswow64\kernel32.dll
(6.0.6000.16386)
Type Description Exemple
d'informations

Messages Messages récents [M:1] Ring buffer entry: (*pRecord)


récents émis par le système.
Inclut l'heure, le [D:2]
type, la description <<<CRingBufferLogging::RingBufferLoggingRecord>>>
et l'ID de thread de ( @ 0282F1A8 )
chaque message.
[E:3] Time Stamp: 2007-09-13 13:50:32.786
(szTimeStamp)

[E:3] Thread ID: 2368 (ThreadID)

[E:3] Event Name: OnError (EventName)

[E:3] Source Name: (SourceName)

[E:3] Source ID: (SourceID)

[E:3] Execution ID: (ExecutionGUID)

[E:3] Data Code: -1073446879 (DataCode)

[E:3] Description : Le composant est manquant, n’est


pas enregistré, ne peut pas être mis à niveau, ou des
interfaces obligatoires sont manquantes. Informations
de contact de ce composant : « ».

Informations connexes
Exécuter le package, boîte de dialogue
Vues (catalogue Integration Services)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette section décrit les vues Transact-SQL qui sont disponibles pour l’administration des
projets Integration Services déployés dans une instance de SQL Server.

Interrogez les vues Integration Services pour inspecter les objets, les paramètres et les
données opérationnelles stockés dans le catalogue SSISDB.

Le nom par défaut du catalogue est SSISDB. Les objets stockés dans le catalogue
incluent des projets, des packages, des paramètres, des environnements et l'historique
opérationnel.

Vous pouvez utiliser directement les vues de base de données et les procédures
stockées, ou écrire du code personnalisé qui appelle l'API managée. Management
Studio et l'API managée interrogent les vues et appellent les procédures stockées
décrites dans cette section pour effectuer de nombreuses tâches.

Dans cette section


catalog.catalog_properties (base de données SSISDB)
Affiche les propriétés du catalogue Integration Services.

catalog.effective_object_permissions (base de données SSISDB)


Affiche les autorisations efficaces pour l'entité actuelle pour tous les objets dans le
catalogue Integration Services.

catalog.environment_variables (base de données SSISDB)


Affiche les détails de la variable d'environnement pour tous les environnements dans le
catalogue Integration Services.

catalog.environments (base de données SSISDB)


Affiche les détails de l'environnement pour tous les environnements dans le catalogue
Integration Services. Les environnements contiennent des variables qui peuvent être
référencées par les projets Integration Services.

catalog.execution_parameter_values (base de données SSISDB)


Affiche les valeurs de paramètre effectives utilisées par les packages Integration Services
pendant une instance d'exécution.
catalog.executions (base de données SSISDB)
Affiche les instances d'exécution du package dans le catalogue Integration Services.
Packages exécutés avec la tâche d'exécution du package dans la même instance
d'exécution comme package parent.

catalog.explicit_object_permissions (base de données SSISDB)


Affiche uniquement les autorisations affectées explicitement à l'utilisateur.

catalog.extended_operation_info (base de données SSISDB)


Affiche les informations étendues pour toutes les opérations dans le catalogue
Integration Services.

catalog.folders (base de données SSISDB)


Affiche les dossiers dans le catalogue Integration Services.

catalog.object_parameters (base de données SSISDB)


Affiche les paramètres de tous les packages et projets dans le catalogue Integration
Services.

catalog.object_versions (base de données SSISDB)


Affiche les versions d'objets dans le catalogue Integration Services. Dans cette version,
seules les versions des projets sont prises en charge par cette vue.

catalog.operation_messages (base de données SSISDB)


Affiche des messages entrés pendant des opérations dans le catalogue Integration
Services.

catalog.operations (base de données SSISDB)


Affiche les détails de toutes les opérations dans le catalogue Integration Services.

catalog.packages (base de données SSISDB)


Affiche les détails pour tous les packages qui s'affichent dans le catalogue Integration
Services.

catalog.environment_references (base de données SSISDB)


Affiche les références environnementales pour tous les projets dans le catalogue
Integration Services.

catalog.projects (base de données SSISDB)


Affiche les détails pour tous les projets qui s'affichent dans le catalogue Integration
Services.

catalog.validations (base de données SSISDB)


Affiche les détails de toutes les validations du package et du projet dans le catalogue
Integration Services.
catalog.master_properties (base de données SSISDB)
Affiche les propriétés d’Integration Services Scale Out Master.

catalog.worker_agents (base de données SSISDB)


Affiche les informations d’Integration Services Scale Out Worker.
catalog.catalog_properties (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les propriétés du catalogue Integration Services.

Nom de la colonne Type de données Description

property_name nvarchar (256) Nom de la propriété de catalogue.

property_value nvarchar (256) Valeur de la propriété de catalogue.

Notes
Cette vue affiche une ligne pour chaque propriété de catalogue.

Nom de la propriété Description

DEFAULT_EXECUTION_MODE Mode d’exécution par défaut à l’échelle du serveur


pour les packages : Server (0) ou Scale Out (1).

ENCRYPTION_ALGORITHM Type d'algorithme de chiffrement utilisé pour chiffrer


des données sensibles. Les valeurs prises en charge
incluent : DES , TRIPLE_DES , TRIPLE_DES_3KEY , DESX ,
AES_128 , AES_192 et AES_256 . Remarque : la base de
données de catalogue doit être en mode mono-
utilisateur pour modifier cette propriété.

IS_SCALEOUT_ENABLED Si la valeur est True , la fonctionnalité SSIS Scale Out


est activée. Si vous n’avez pas activé Scale Out, cette
propriété peut ne pas apparaître dans la vue.

MAX_PROJECT_VERSIONS Nombre de nouvelles versions du projet qui sont


conservées pour un projet unique. Quand le
nettoyage de version est permis, les versions
antérieures au-delà de ce nombre sont supprimées.
Nom de la propriété Description

OPERATION_CLEANUP_ENABLED Quand la valeur est TRUE , les détails et les messages


de l’opération plus anciens que
RETENTION_WINDOW (jours) sont supprimés du
catalogue. Lorsque la valeur est FALSE , tous les
détails et les messages de l'opération sont stockés
dans le catalogue. Remarque : un travail SQL Server
effectue le nettoyage de l'opération.

RETENTION_WINDOW Nombre de jours que les détails et les messages de


l'opération sont stockés dans le catalogue. Lorsque
la valeur est -1 , la période de conservation est
infinie. Remarque : Si aucun nettoyage n’est
souhaité, affectez à
OPERATION_CLEANUP_ENABLED la valeur FALSE.

SCHEMA_BUILD Numéro de build du schéma de la base de données


du catalogue SSISDB. Ce numéro change chaque
fois que le catalogue SSISDB est créé ou mis à
niveau.

SCHEMA_VERSION Numéro de version principale du schéma de la base


de données du catalogue SSISDB. Ce numéro
change chaque fois que le catalogue SSISDB est créé
ou que la version principale est mise à niveau.

VALIDATION_TIMEOUT Les validations sont arrêtées si elles ne s’achèvent


pas dans le nombre de secondes spécifié par cette
propriété.

SERVER_CUSTOMIZED_LOGGING_LEVEL Niveau de journalisation personnalisée par défaut


pour le serveur Integration Services. Si vous n’avez
pas créé de niveaux de journalisation personnalisée,
cette propriété peut ne pas apparaître dans la vue.

SERVER_LOGGING_LEVEL Niveau de journalisation par défaut pour le serveur


Integration Services.

SERVER_OPERATION_ENCRYPTION_LEVEL Quand la valeur est 1 ( PER_EXECUTION ), le certificat et


la clé symétrique utilisés pour la protection des
paramètres d’exécution sensibles et des journaux
d’exécution sont créés pour chaque exécution.
Quand la valeur est 2 ( PER_PROJECT ), le certificat et la
clé symétrique sont créés une fois par projet. Pour
plus d’informations sur cette propriété, consultez la
section Notes sur la procédure stockée SSIS
catalog.cleanup_server_log.
Nom de la propriété Description

VERSION_CLEANUP_ENABLED Quand la valeur est TRUE , seul le nombre de versions


de projet MAX_PROJECT_VERSIONS est stocké dans
le catalogue et toutes les autres versions de projet
seront supprimées. Quand la valeur est FALSE,
toutes les versions du projet sont stockées dans le
catalogue. Remarque : un travail SQL Server effectue
le nettoyage de l'opération.

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin


catalog.effective_object_permissions
(base de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les autorisations efficaces pour l'entité actuelle pour tous les objets dans le
catalogue Integration Services.

Nom de la Type de Description


colonne données

object_type smallint Type d'objet sécurisable. Les types d'objets sécurisables incluent le
dossier ( 1 ), le projet ( 2 ), l'environnement ( 3 ) et l'opération ( 4 ).

object_id bigint Identificateur unique (ID) ou clé primaire de l'objet.

permission_type smallint Type de l'autorisation.

Notes
Cette vue affiche les types d'autorisation répertoriés dans le tableau suivant :

Valeur Nom de l'autorisation Description de Types d'objet


permission_type l'autorisation applicables

1 READ Permet au principal de Dossier, projet,


lire des informations environnement,
considérées comme opération
faisant partie de l'objet,
telles que les propriétés.
Il n'autorise pas le
principal à énumérer ou
à lire le contenu
d'autres objets
contenus dans l'objet.
Valeur Nom de l'autorisation Description de Types d'objet
permission_type l'autorisation applicables

2 MODIFY Permet au principal de Dossier, projet,


modifier des environnement,
informations opération
considérées comme
faisant partie de l'objet,
telles que les propriétés.
Il ne permet pas au
principal de modifier
d'autres objets
contenus dans l'objet.

3 Exécutez Permet au principal Project


d'exécuter tous les
packages dans le projet.

4 MANAGE_PERMISSIONS Permet au principal Dossier, projet,


d'affecter des environnement,
autorisations aux objets. opération

100 CREATE_OBJECTS Permet au principal de Dossier


créer des objets dans le
dossier.

101 READ_OBJECTS Permet au principal de Dossier


lire tous les objets dans
le dossier.

102 MODIFY_OBJECTS Permet au principal de Dossier


modifier tous les objets
dans le dossier.

103 EXECUTE_OBJECTS Permet au principal Dossier


d'exécuter tous les
packages de tous les
projets dans le dossier.

104 MANAGE_OBJECT_PERMISSIONS Permet au principal de Dossier


gérer des autorisations
sur tous les objets dans
le dossier.

Seuls les objets sur lesquels l'appelant a des autorisations sont évalués. Les autorisations
sont calculées selon les éléments suivants :

Autorisations explicites

Autorisations héritées
Appartenance du principal dans les rôles

Appartenance du principal dans les groupes

Autorisations
Les utilisateurs peuvent consulter uniquement des autorisations efficaces pour eux-
mêmes et pour les rôles dont ils sont membres.
catalog.environment_variables (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les détails de la variable d'environnement pour tous les environnements dans le
catalogue Integration Services.

Nom de la Type de Description


colonne données

variable_id bigint Identificateur (ID) unique de la variable d'environnement.

environment_id bigint ID unique de l'environnement auquel la variable est associée.

name sysname Nom de la variable d'environnement.

description nvarchar(1024) Description de la variable d'environnement.

type nvarchar(128) Type de données de la variable d'environnement.

sensible bit Lorsque la valeur est 1 , la variable est sensible et est chiffrée
lorsqu'elle est stockée. Lorsque la valeur est 0 , la variable
n'est pas sensible et la valeur est stockée dans en texte en
clair.

value sql_variant Valeur de la variable d’environnement. Quand sensitive est 0 ,


la valeur en texte en clair est indiquée. Quand sensitive est 1 ,
la valeur NULL s’affiche.

Notes
Cette vue affiche une ligne pour chaque variable d'environnement dans le catalogue.

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur l'environnement correspondant

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin


7 Notes

Lorsque vous avez l'autorisation pour effectuer une opération sur le serveur, vous
avez également l'autorisation pour consulter les informations de l'opération. La
sécurité au niveau de la ligne est imposée ; uniquement les lignes que vous avez
l'autorisation d'afficher s'affichent.
catalog.environment_references (base
de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les références environnementales pour tous les projets dans le catalogue
SSISDB.

Nom de la colonne Type de Description


données

reference_id bigint Identificateur (ID) unique de la référence.

project_id bigint ID unique du projet.

reference_type char(1) Indique si l'environnement peut se trouver dans


le même dossier que le projet (référence relative)
ou dans un dossier différent (référence absolue).
Lorsque la valeur est R , l'environnement est
localisé à l'aide d'une référence relative. Lorsque
la valeur est A , l'environnement est localisé à
l'aide d'une référence absolue.

environment_folder_name sysname Nom du dossier si l'environnement est localisé à


l'aide d'une référence absolue.

environment_name sysname Nom de l'environnement qui est référencé par le


projet.

validation_status char(1) État de la validation.

last_validation_time datatimeoffset(7) Heure de la dernière validation.

Notes
Cette vue affiche une ligne pour chaque référence environnementale dans le
catalogue.

Un projet peut avoir des références environnementales relatives ou absolues. Les


références relatives font référence à l'environnement par nom et requièrent qu'il
réside dans le même dossier que le projet. Les références absolues font référence à
l'environnement par nom et par dossier et peuvent faire référence aux
environnements qui résident dans un dossier différent que le projet. Un projet
peut référencer plusieurs environnements.

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur le projet correspondant

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin.

7 Notes

Si vous avez l'autorisation READ sur un projet, vous avez également l'autorisation
READ sur toutes les packages et les références environnementales associés à ce
projet. La sécurité au niveau de la ligne est imposée ; uniquement les lignes que
vous avez l'autorisation d'afficher s'affichent.
catalog.environments (base de données
SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les détails de l'environnement pour tous les environnements dans le catalogue
Integration Services. Les environnements contiennent des variables qui peuvent être
référencées par les projets Integration Services.

Nom de la Type de Description


colonne données

environment_id bigint Identificateur (ID) unique de l'environnement.

name sysname Nom de l’environnement.

folder_id bigint ID unique du dossier dans lequel l'environnement réside.

description nvarchar(1024) Description de l'environnement. Cette valeur est facultative.

created_by_sid varbinary(85) Identificateur de sécurité (SID) unique de l'utilisateur qui a


créé l'environnement.

created_by_name nvarchar(128) Nom de l'utilisateur qui a créé l'environnement.

created_time datetimeoffset Date et heure de création de l'environnement.

Notes
Cette vue affiche une ligne pour chaque environnement dans le catalogue. Les noms
d'environnement sont uniques uniquement en ce qui concerne le dossier dans lequel ils
se trouvent. Par exemple, un environnement nommé E1 peut exister dans plusieurs
dossiers dans le catalogue, mais chaque dossier peut avoir un seul environnement
nommé E1 .

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur l'environnement

Appartenance au rôle de base de données ssis_admin


Appartenance au rôle serveur sysadmin

7 Notes

La sécurité au niveau de la ligne est imposée ; uniquement les lignes que vous avez
l'autorisation d'afficher s'affichent.
catalog.event_message_context
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche des informations sur les conditions associées aux messages d'événements
d'exécution, pour les exécutions sur le serveur Integration Services.

Nom de la colonne Type de Description


données

Context_id bigint ID unique du contexte de l'erreur.

Event_message_id bigint ID unique du message auquel le contexte est associé.

Context_depth int À mesure que la profondeur augmente, le contexte


s'éloigne de l'erreur. Lorsqu'une erreur se produit, la
profondeur du contexte commence à 1. La valeur 0
indique l'état du package avant le démarrage de
l'exécution.

Package_path Nvarchar(max) Chemin d'accès au package de la source du contexte.

Context_type SMALLINT Type de l'objet qui est la source du contexte. Consultez


la section Remarques pour obtenir la liste des types de
contexte.

Context_source_name Nvarchar(4000) Nom de l'objet qui est la source du contexte.

Context_source_id Nvarchar(38) ID unique de l'objet qui est la source du contexte.

Property_name Nvarchar(4000) Nom de la propriété associée à la source du contexte.

Property_value Sql_variant Valeur de la propriété associée à la source du contexte.

Notes
Le tableau suivant répertorie les types de contexte.

Valeur du type Nom de type Description


de contexte

10 Tâche État d'une tâche lorsqu'une erreur s'est produite.

20 Pipeline L'erreur provient d'un composant de pipeline : source,


destination ou composant de transformation.
Valeur du type Nom de type Description
de contexte

30 Séquence État d'une séquence.

40 Boucle For État d'une boucle For.

50 Boucle Foreach État d'une boucle Foreach.

60 Paquet État du package lorsqu'une erreur s'est produite.

70 Variable Valeur de variable

80 Gestionnaire de Propriétés d'un gestionnaire de connexions.


connexions

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur l'opération

Appartenance au rôle de base de données ssis_admin.

Appartenance au rôle serveur sysadmin.


catalog.event_messages
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche des informations sur les messages qui ont été enregistrés pendant les
opérations.

Nom de la colonne Type de Description


données

Event_message_ID bigint ID unique du message d'événement.

Operation_id bigint Type d’opération.

Pour obtenir la liste des types d’opération, consultez


catalog.operations (base de données SSISDB).

Message_time datetimeoffset(7) Heure à laquelle le message a été créé.

Message_type SMALLINT Type de message affiché. Pour plus d’informations


sur les types de messages, consultez
catalog.operation_messages (base de données
SSISDB).

Message_source_type SMALLINT Source du message.

message nvarchar(max) Texte du message.

Extended_info_id bigint ID des informations supplémentaires relatives au


message d’opération, qui se trouve dans la vue
catalog.extended_operation_info (base de données
SSISDB).

Package_name nvarchar(260) Nom du fichier de package.

Event_name nvarchar(1024) Événement d'exécution associé au message.

Message_source_name nvarchar(4000) Composant de package qui est la source du


message.

Message_source_id nvarchar(38) ID unique de la source du message.

Subcomponent_name nvarchar(4000) Composant de flux de données qui est la source du


message.

Lorsque des messages sont retournés par le moteur


Integration Services, SSIS.Pipeline s'affiche dans
cette colonne.
Nom de la colonne Type de Description
données

Package_path nvarchar(max) Chemin d'accès unique du composant dans le


package.

Execution_path nvarchar(max) Chemin d'accès complet du package parent jusqu'au


point auquel le composant est exécuté.

Ce chemin d'accès capture également les itérations


d'un composant.

threadID int ID du thread qui s'exécute lorsque le message est


enregistré.

Message_code int Code associée au message.

Notes
Cette vue affiche les types de source de message suivants.

message_source_type Description

10 API d'entrée, telles que T-SQL et les procédures stockées CLR

20 Processus externe utilisé pour exécuter le package (ISServerExec.exe)

30 Objets de niveau package

40 Tâches de flux de contrôle

50 Conteneurs de flux de contrôle

60 Tâche de flux de données

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur l'opération

Appartenance au rôle de base de données ssis_admin.

Appartenance au rôle serveur sysadmin.

Voir aussi
catalog.event_message_context
catalog.executable_statistics
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche une ligne pour chaque fichier exécutable exécuté, y compris chaque itération
d'un fichier exécutable.

Un exécutable est une tâche ou un conteneur que vous ajoutez au flux de contrôle d'un
package.

Nom de la Type de Description


colonne données

Statistics_id bigint ID unique des données.

Execution_id bigint ID unique de l'instance de l'exécution.

La vue catalog.executions fournit des informations


supplémentaires sur les exécutions. Pour plus
d’informations, consultez catalog.executions (base de
données SSISDB).

Executable_id bigint ID unique du composant de package.

La vue catalog.executables fournit des informations


supplémentaires sur les fichiers exécutables. Pour plus
d’informations, consultez catalog.executables.

Execution_path nvarchar(max) Chemin d'exécution complet du composant de package,


y compris chaque itération du composant.

Start_time datetimeoffset(7) Heure à laquelle le fichier exécutable entre dans la


phase de pré-exécution.

End_time datetimeoffset(7) Heure à laquelle le fichier exécutable entre dans la


phase de post-exécution.

Execution_duration int Durée passée par le fichier exécutable en phase


d'exécution. Cette valeur est exprimée en millisecondes.
Nom de la Type de Description
colonne données

Execution_result SMALLINT Les valeurs possibles sont les suivantes :

0 (réussite)

1 (échec)

2 (achèvement)

3 (annulé)

Execution_value sql_variant Valeur retournée par l'exécution. Il s'agit d'une valeur


définie par l'utilisateur.

Autorisations
La vue requiert l'une des autorisations suivantes :

Autorisation READ sur l'instance de l'exécution.

Appartenance au rôle de base de données ssis_admin.

Appartenance au rôle serveur sysadmin.


catalog.executables
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette vue affiche une ligne pour chaque fichier exécutable dans l'exécution spécifiée.

Un exécutable est une tâche ou un conteneur que vous ajoutez au flux de contrôle d'un
package.

Nom de la colonne Type de données Description

executable_id bigint Identificateur unique du fichier exécutable.

execution_id bigint Identificateur unique de l'instance d'exécution.

executable_name nvarchar(4000) Nom du fichier exécutable.

executable_guid nvarchar(38) GUID du fichier exécutable.

package_name nvarchar(260) Nom du package.

package_path nvarchar(max) Chemin du package.

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur l'instance d'exécution

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

7 Notes

Lorsque vous avez l'autorisation pour effectuer une opération sur le serveur, vous
avez également l'autorisation pour consulter les informations de l'opération. La
sécurité au niveau de la ligne est imposée ; uniquement les lignes que vous avez
l'autorisation d'afficher s'affichent.

Notes
catalog.execution_component_phases
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche le temps consacré à chaque phase d'exécution par un composant de flux de


données.

Nom de la colonne Type de Description


données

phase_stats_id bigint Identificateur (ID) unique de la phase.

execution_id bigint ID unique de l'instance d'exécution.

package_name nvarchar(260) Nom du premier package démarré pendant


l'exécution.

task_name nvarchar(4000) Nom de la tâche de flux de données.

subcomponent_name nvarchar(4000) Nom du composant de flux de données.

phase nvarchar(128) Nom de la phase d'exécution.

start_time datetimeoffset(7) Heure de début de la phase.

end_time datetimeoffset(7) Heure de fin de la phase.

execution_path nvarchar(max) Chemin d'exécution de la tâche de flux de données.

Remarques
Cette vue affiche une ligne pour chaque phase d'exécution d'un composant de flux de
données, par exemple Validate, Pre-Execute, Post-Execute, PrimeOutput et ProcessInput.
Chaque ligne affiche l'heure de début et de fin d'une phase d'exécution spécifique.

Exemple
L’exemple suivant utilise la vue catalog.execution_component_phases pour déterminer
le temps total d’exécution d’un package spécifique au cours de toutes les phases
(active_time), ainsi que le temps total écoulé pour le package (total_time).

2 Avertissement
La vue catalog.execution_component_phases fournit ces informations lorsque le
niveau de journalisation de l'exécution du package est défini sur Performances ou
Commentaires. Pour plus d’informations, consultez Activer la journalisation des
exécutions de package sur le serveur SSIS.

SQL

use SSISDB
select package_name, task_name, subcomponent_name, execution_path,
SUM(DATEDIFF(ms,start_time,end_time)) as active_time,
DATEDIFF(ms,min(start_time), max(end_time)) as total_time
from catalog.execution_component_phases
where execution_id = 1841
group by package_name, task_name, subcomponent_name, execution_path
order by package_name, task_name, subcomponent_name, execution_path

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur l'instance d'exécution

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

7 Notes

Lorsque vous avez l'autorisation pour effectuer une opération sur le serveur, vous
avez également l'autorisation pour consulter les informations de l'opération. La
sécurité au niveau de la ligne est imposée ; uniquement les lignes que vous avez
l'autorisation d'afficher s'affichent.
catalog.execution_data_statistics
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette vue affiche une ligne chaque fois qu'un composant de flux de données envoie des
données à un composant en aval, pour une exécution de package donnée. Les
informations de cette vue peuvent être utilisées pour calculer le débit des données pour
un composant.

Nom de la colonne Type de Description


données

data_stats_id bigint Identificateur (ID) unique des données.

execution_id bigint ID unique de l'instance d'exécution.

package_name nvarchar(260) Nom du premier package démarré pendant


l'exécution.

task_name nvarchar(4000) Nom de la tâche de flux de données.

dataflow_path_id_string nvarchar(4000) Chaîne d'identification du chemin d'accès de


flux de données.

dataflow_path_name nvarchar(4000) Nom du chemin d'accès de flux de données.

source_component_name nvarchar(4000) Nom du composant de flux de données


ayant envoyé les données.

destination_component_name nvarchar(4000) Nom du composant de flux de données


ayant reçu les données.

rows_sent bigint Nombre de lignes envoyées à partir du


composant source.

created_time datatimeoffset(7) Heure à laquelle les valeurs ont été


obtenues.

execution_path nvarchar(max) Chemin d'accès d'exécution du composant.

Remarques
Lorsqu'il existe plusieurs sorties du composant, une ligne est ajoutée pour chacune
d'elles.
Par défaut, lors du démarrage d'une exécution, les informations sur le nombre de
lignes envoyées ne sont pas enregistrées.

Pour afficher ces données pour une exécution de package donnée, définissez le
niveau de journalisation sur Verbose. Pour plus d’informations, consultez Activer la
journalisation des exécutions de package sur le serveur SSIS.

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur l'instance d'exécution

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

7 Notes

Lorsque vous avez l'autorisation pour effectuer une opération sur le serveur, vous
avez également l'autorisation pour consulter les informations de l'opération. La
sécurité au niveau de la ligne est imposée ; uniquement les lignes que vous avez
l'autorisation d'afficher s'affichent.
catalog.execution_data_taps
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche des informations pour chaque drainage de données défini dans une exécution.

Nom de la colonne Type de Description


données

data_tap_id bigint Identificateur (ID) unique du drainage de données.

execution_id bigint Identificateur unique (ID) de l'instance d'exécution.

package_path nvarchar(max) Chemin d'accès au package pour la tâche de flux de


données où les données sont drainées.

dataflow_path_id_string nvarchar(4000) Chaîne d'identification du chemin d'accès de flux de


données.

dataflow_task_guid uniqueidentifier Identificateur (ID) unique de la tâche de flux de


données.

max_rows int Nombre de lignes à capturer. Si cette valeur n'est


spécifiée, toutes les lignes sont capturées.

filename nvarchar(4000) Nom du fichier de vidage de données. Pour plus


d’informations, voir Generating Dump Files for
Package Execution.

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur l'instance d'exécution

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

7 Notes

Lorsque vous avez l'autorisation pour effectuer une opération sur le serveur, vous
avez également l'autorisation pour consulter les informations de l'opération. La
sécurité au niveau de la ligne est imposée ; uniquement les lignes que vous avez
l'autorisation d'afficher s'affichent.

Voir aussi
Générer de fichiers de vidage pour l’exécution des packages
catalog.execution_parameter_values
(base de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les valeurs de paramètre effectives utilisées par les packages Integration Services
pendant une instance d'exécution.

Nom de la colonne Type de Description


données

execution_parameter_id bigint Identificateur (ID) unique du paramètre d'exécution.

execution_id bigint ID unique de l'instance d'exécution.

object_type smallint Lorsque la valeur est 20 , le paramètre est un


paramètre de projet. Lorsque la valeur est 30 , le
paramètre est un paramètre de package. Quand la
valeur est 50 , le paramètre est l’un des éléments
suivants :

LOGGING_LEVEL

DUMP_ON_ERROR

DUMP_ON_EVENT

DUMP_EVENT_CODE

CALLER_INFO

SYNCHRONIZED

parameter_data_type nvarchar(128) Type de données du paramètre.

parameter_name sysname Le nom du paramètre.

parameter_value sql_variant Valeur du paramètre. Quand sensitive est 0 , la valeur


en texte en clair est indiquée. Quand sensitive est 1 , la
valeur NULL s’affiche.

sensible bit Lorsque la valeur est 1 , la valeur de paramètre est


sensible. Lorsque la valeur est 0 , la valeur de
paramètre n'est pas sensible.
Nom de la colonne Type de Description
données

obligatoire bit Lorsque la valeur est 1 , la valeur de paramètre est


obligatoire pour démarrer l'exécution. Lorsque la
valeur est 0 , la valeur de paramètre n'est pas
obligatoire pour démarrer l'exécution.

value_set bit Lorsque la valeur est 1 , la valeur de paramètre a été


affectée. Lorsque la valeur est 0 , la valeur de
paramètre n'a pas été affectée.

runtime_override bit Lorsque la valeur est 1 , la valeur d'origine a été


modifiée avant le démarrage de l'exécution. Lorsque la
valeur est 0 , la valeur de paramètre est la valeur
d'origine définie.

Notes
Cette vue affiche une ligne pour chaque paramètre d'exécution dans le catalogue. Une
valeur de paramètre d'exécution est la valeur affectée à un paramètre du projet ou à un
paramètre du package pendant une instance d'exécution unique.

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur l'instance d'exécution

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

7 Notes

Lorsque vous avez l'autorisation pour effectuer une opération sur le serveur, vous
avez également l'autorisation pour consulter les informations de l'opération. La
sécurité au niveau de la ligne est imposée ; uniquement les lignes que vous avez
l'autorisation d'afficher s'affichent.
catalog.execution_property_override_val
ues
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les valeurs de remplacement de la propriété définies pendant l'exécution du


package.

Nom de la Type de Description


colonne données

property_id bigint Identificateur unique de valeur de remplacement de la


propriété.

execution_id bigint ID unique de l'instance d'exécution.

property_path nvarchar(4000) Chemin d'accès à la propriété dans le package.

property_value nvarchar(max) Valeur de remplacement de la propriété.

sensible bit Lorsque la valeur est 1, la propriété est sensible et est chiffrée
lorsqu'elle est stockée. Lorsque la valeur est 0, la propriété
n'est pas sensible et la valeur est stockée dans en texte en
clair.

Remarques
Cette vue affiche une ligne pour chaque exécution dans laquelle les valeurs des
propriétés ont été remplacées à l’aide de la section Substitutions de propriété sous
l’onglet Avancé de la boîte de dialogue Exécuter le package. Le chemin d’accès de la
propriété est dérivé de la propriété Chemin d’accès au package de la tâche du package.

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur l'instance d'exécution

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin


7 Notes

Lorsque vous avez l'autorisation pour effectuer une opération sur le serveur, vous
avez également l'autorisation pour consulter les informations de l'opération. La
sécurité au niveau de la ligne est imposée ; uniquement les lignes que vous avez
l'autorisation d'afficher s'affichent.
catalog.executions (base de données
SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les instances d'exécution du package dans le catalogue Integration Services.


Packages exécutés avec la tâche d'exécution du package dans la même instance
d'exécution comme package parent.

Nom de la colonne Type de données Description

execution_id bigint Identificateur unique (ID) de l’instance


d’exécution.

folder_name sysname(nvarchar(128)) Nom du dossier qui contient le projet.

project_name sysname(nvarchar(128)) Nom du projet.

package_name nvarchar(260) Nom du premier package démarré


pendant l'exécution.

reference_id bigint Environnement référencé par


l'instance d'exécution.

reference_type char(1) Indique si l'environnement peut se


trouver dans le même dossier que le
projet (référence relative) ou dans un
dossier différent (référence absolue).
Lorsque la valeur est R ,
l'environnement est localisé à l'aide
d'une référence relative. Lorsque la
valeur est A , l'environnement est
localisé à l'aide d'une référence
absolue.

environment_folder_name nvarchar(128) Nom du dossier qui contient


l'environnement.

environment_name nvarchar(128) Nom de l'environnement référencé


pendant l'exécution.

project_lsn bigint Version du projet qui correspond à


l'instance d'exécution. Ce nombre
n'est pas obligatoirement séquentiel.
Nom de la colonne Type de données Description

executed_as_sid varbinary(85) SID de l'utilisateur qui a démarré


l'exécution.

executed_as_name nvarchar(128) Nom du principal de la base de


données utilisé pour démarrer
l'instance d'exécution.

use32bitruntime bit Indique si l'exécution 32 bits est


utilisée pour exécuter le package sur
un système d'exploitation 64 bits.
Quand la valeur est 1 , l’exécution 32
bits est utilisée. Lorsque la valeur est
0 , l'exécution 64 bits est utilisée.

operation_type smallint Type d’opération. La fonction


operation_type de 200 signifie
l’exécution de Create/Start.

created_time datetimeoffset L’heure à laquelle l’instance a été


initialisée. N’oubliez pas qu’il y a un
décalage entre l’heure d’initiation et
de début.

object_type smallint Type d'objet. L'objet peut être un


projet ( 20 ) ou un package ( 30 ).

object_id bigint ID de l'objet affecté par l'opération.

status int État de l'opération. Les valeurs


possibles sont Créé ( 1 ), En cours
d'exécution ( 2 ), Annulé ( 3 ), Échec ( 4 ),
En attente ( 5 ), Arrêté prématurément
( 6 ), Opération réussie ( 7 ), Arrêt en
cours ( 8 ) et Fin ( 9 ).

start_time datetimeoffset Heure de démarrage de l'instance


d'exécution.

end_time datetimeoffsset Heure d'exécution de l'instance


d'exécution.

caller_sid varbinary(85) ID de sécurité (SID) de l'utilisateur si


l'Authentification Windows a été
utilisée pour se connecter.

caller_name nvarchar(128) Nom du compte qui a effectué


l'opération.
Nom de la colonne Type de données Description

process_id int ID de processus externe, le cas


échéant.

stopped_by_sid varbinary(85) ID de sécurité (SID) de l'utilisateur qui


a arrêté l'instance d'exécution.

stopped_by_name nvarchar(128) Nom de l'utilisateur qui a arrêté


l'instance d'exécution.

dump_id uniqueidentifier ID d'un vidage d'exécution.

nom_serveur nvarchar(128) Informations relatives à l'instance et


au serveur Windows pour une
instance spécifique de SQL Server.

machine_name nvarchar(128) Nom de l'ordinateur sur lequel


s'exécute l'instance du serveur.

worker_agent_id uniqueidentifier ID d’agent de Worker de Scale Out


Worker.

total_physical_memory_kb bigint La mémoire physique totale (en


mégaoctets) sur le serveur au
démarrage de l'exécution.

available_physical_memory_kb bigint La mémoire physique disponible (en


mégaoctets) sur le serveur au
démarrage de l'exécution.

total_page_file_kb bigint La mémoire de page totale (en


mégaoctets) sur le serveur au
démarrage de l'exécution.

available_page_file_kb bigint La mémoire de page disponible (en


mégaoctets) sur le serveur au
démarrage de l'exécution.

cpu_count int Nombre d'UC logiques sur le serveur


au démarrage de l'exécution.

executed_count int Nombre de fois où l’opération a été


exécutée.

Notes
Cette vue affiche une ligne pour chaque instance d'exécution dans le catalogue.
Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur l'instance d'exécution

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

7 Notes

La sécurité au niveau de la ligne est imposée ; uniquement les lignes que vous avez
l'autorisation d'afficher s'affichent.
catalog.explicit_object_permissions
(base de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche uniquement les autorisations affectées explicitement à l'utilisateur.

Nom de la Type de Description


colonne données

object_type smallint Type d'objet sécurisable. Les types d'objets sécurisables incluent le
dossier ( 1 ), le projet ( 2 ), l'environnement ( 3 ) et l'opération ( 4 ).

object_id bigint Identificateur unique (ID) ou clé primaire de l'objet sécurisé.

principal_id int ID du principal de base de données.

permission_type smallint Type de l'autorisation.

is_deny bit Indique si l'autorisation a été refusée ou accordée. Lorsque la


valeur est 1 , l'autorisation a été refusée. Lorsque la valeur est 0 ,
l'autorisation n'a pas été refusée.

grantor_id int ID du principal qui a accordé l'autorisation.

Notes
Cette vue affiche les types d'autorisation répertoriés dans le tableau suivant :

Valeur Nom de l'autorisation Description de Types d'objet


permission_type l'autorisation applicables

1 READ Permet au principal de Dossier, projet,


lire des informations environnement,
considérées comme opération
faisant partie de l'objet,
telles que les propriétés.
Il n'autorise pas le
principal à énumérer ou
à lire le contenu
d'autres objets
contenus dans l'objet.
Valeur Nom de l'autorisation Description de Types d'objet
permission_type l'autorisation applicables

2 MODIFY Permet au principal de Dossier, projet,


modifier des environnement,
informations opération
considérées comme
faisant partie de l'objet,
telles que les propriétés.
Il ne permet pas au
principal de modifier
d'autres objets
contenus dans l'objet.

3 Exécutez Permet au principal Project


d'exécuter tous les
packages dans le projet.

4 MANAGE_PERMISSIONS Permet au principal Dossier, projet,


d'affecter des environnement,
autorisations aux objets. opération

100 CREATE_OBJECTS Permet au principal de Dossier


créer des objets dans le
dossier.

101 READ_OBJECTS Permet au principal de Dossier


lire tous les objets dans
le dossier.

102 MODIFY_OBJECTS Permet au principal de Dossier


modifier tous les objets
dans le dossier.

103 EXECUTE_OBJECTS Permet au principal Dossier


d'exécuter tous les
packages de tous les
projets dans le dossier.

104 MANAGE_OBJECT_PERMISSIONS Permet au principal de Dossier


gérer des autorisations
sur tous les objets dans
le dossier.

Autorisations
Cette vue ne donne pas une vue complète des autorisations pour le principal actuel.
L'utilisateur doit également vérifier si le principal est un membre de rôles et de groupes
auxquels des autorisations sont affectées.
catalog.extended_operation_info (base
de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les informations étendues pour toutes les opérations dans le catalogue
Integration Services.

Nom de la Type de Description


colonne données

info_id bigint Identificateur unique (ID) des informations étendues.

operation_id bigint ID unique de l'opération qui correspond aux informations


étendues.

object_name nvarchar(260) Nom de l'objet.

object_type smallint Type d'objet affecté par l'opération. L'objet peut être un
dossier ( 10 ), un projet ( 20 ), un package ( 30 ), un
environnement ( 40 ) ou une instance d'exécution ( 50 ).

reference_id bigint ID unique de la référence utilisée dans l'opération.

status int État de l'opération. Les valeurs possibles sont Créé ( 1 ), En


cours d'exécution ( 2 ), Annulé ( 3 ), Échec ( 4 ), En attente ( 5 ),
Arrêté prématurément ( 6 ), Opération réussie ( 7 ), Arrêt en
cours ( 8 ) et Fin ( 9 ).

start_time datetimeoffset(7) Date et heure du début de l'opération.

end_time datetimeoffset(7) Date et heure auxquelles l'opération s'est terminée.

Notes
Une seule opération peut avoir plusieurs lignes d'informations étendues.

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur l'opération


Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

7 Notes

Lorsque vous avez l'autorisation pour effectuer une opération sur le serveur, vous
avez également l'autorisation pour consulter les informations de l'opération. La
sécurité au niveau de la ligne est imposée ; uniquement les lignes que vous avez
l'autorisation d'afficher s'affichent.
catalog.folders (base de données
SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les dossiers dans le catalogue Integration Services.

Nom de la Type de données Description


colonne

id bigint Identificateur unique du dossier.

name sysname(nvarchar(128) Nom du dossier, qui est unique dans le catalogue


Integration Services.

description nvarchar(1024) Description du dossier.

created_by_sid varbinary(85) Identificateur de sécurité (SID) unique de


l'utilisateur qui a créé le dossier.

created_by_name nvarchar(128) Nom de l'utilisateur qui a créé le dossier.

created_time datetimeoffset(7) Date et heure de création du dossier.

Notes
Cette vue affiche une ligne pour chaque dossier dans le catalogue.

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur le dossier

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

7 Notes

Lorsque vous avez l'autorisation pour effectuer une opération sur le serveur, vous
avez également l'autorisation pour consulter les informations de l'opération. La
sécurité au niveau de la ligne est imposée ; uniquement les lignes que vous avez
l'autorisation d'afficher s'affichent.
catalog.object_parameters (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les paramètres de tous les packages et projets dans le catalogue Integration
Services.

Nom de la colonne Type de données Description

parameter_id bigint Identificateur (ID) unique du paramètre.

project_id bigint ID unique du projet.

object_type smallint Type de paramètre. La valeur est 20 pour


un paramètre du projet et 30 pour un
paramètre du package.

object_name sysname Nom du projet ou package correspondant.

parameter_name sysname(nvarchar(128)) Le nom du paramètre.

data_type nvarchar(128) Type de données du paramètre.

obligatoire bit Lorsque la valeur est 1 , la valeur de


paramètre est obligatoire pour démarrer
l'exécution. Lorsque la valeur est 0 , la
valeur de paramètre n'est pas obligatoire
pour démarrer l'exécution.

sensible bit Lorsque la valeur est 1 , la valeur de


paramètre est sensible. Lorsque la valeur
est 0 , la valeur de paramètre n'est pas
sensible.

description nvarchar(1024) Description facultative du package.

design_default_value sql_variant Valeur par défaut du paramètre qui a été


affecté pendant la conception du projet
ou du package.

default_value sql_variant Valeur par défaut utilisée actuellement sur


le serveur.
Nom de la colonne Type de données Description

value_type char(1) Indique la valeur de type de paramètre. Ce


champ affiche V quand parameter_value
est une valeur littérale et R quand la
valeur est affectée en référençant une
variable d’environnement.

value_set bit Lorsque la valeur est 1 , la valeur de


paramètre a été affectée. Lorsque la valeur
est 0 , la valeur de paramètre n'a pas été
affectée.

referenced_variable_name nvarchar(128) Nom de la variable d'environnement


affectée à la valeur du paramètre. La
valeur par défaut est NULL.

validation_status char(1) Identifié à titre d'information uniquement.


Inutilisé dans SQL Server 2019 (15.x).

last_validation_time datetimeoffset(7) Identifié à titre d'information uniquement.


Inutilisé dans SQL Server 2019 (15.x).

Autorisations
Pour consulter des lignes dans cette vue, vous devez avoir l'une des autorisations
suivantes :

Autorisation READ sur le projet

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

La sécurité au niveau de la ligne est imposée ; uniquement les lignes que vous avez
l'autorisation d'afficher s'affichent.
catalog.object_versions (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les versions d'objets dans le catalogue Integration Services. Dans cette version,
seules les versions des projets sont prises en charge par cette vue.

Nom de la Type de données Description


colonne

object_version_lsn bigint Identificateur unique (ID) de la version de l'objet.


Ce nombre n'est pas obligatoirement séquentiel.

object_id bigint ID unique de l'objet.

object_type smallint Type d'objet. Une valeur de 20 sera affichée pour


les projets.

object_name sysname(nvarchar(128)) Nom de l'objet.

description nvarchar(1024) Description du projet.

created_by nvarchar(128) Nom de l'utilisateur qui a ajouté l'objet au


catalogue.

created_time datetimeoffset Date et heure auxquelles l'objet a été ajouté au


catalogue.

restored_by nvarchar(128) Nom de l'utilisateur qui a restauré l'objet.

last_restored_time datetimeoffset Date et heure auxquelles l'objet a été restauré


dernièrement.

Notes
Cette vue affiche une ligne pour chaque version d'un objet dans le catalogue.

Autorisations
Pour consulter des lignes dans cette vue, vous devez avoir l'une des autorisations
suivantes :
Autorisation READ sur l'objet

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

7 Notes

La sécurité au niveau de la ligne est imposée ; uniquement les lignes que vous avez
l'autorisation d'afficher s'affichent.
catalog.operation_messages (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche des messages entrés pendant des opérations dans le catalogue Integration
Services.

Nom de la colonne Type de Description


données

operation_message_id bigint Identificateur (ID) unique du message.

operation_id bigint ID unique de l'opération.

message_time datetimeoffset(7) Date et heure de création du message.

message_type smallint Type de message affiché.

message_source_type smallint ID du type de source du message.

message nvarchar(max) Texte du message.

extended_info_id bigint ID des informations supplémentaires relatives au


message d’opération, trouvé dans la vue
extended_operation_info.

Notes
Cette vue affiche une ligne pour chaque message entré pendant une opération dans le
catalogue. Le message peut être généré par le serveur, par le processus d'exécution du
package ou par le moteur d'exécution.

Cette vue affiche les types de message suivants :

Valeur Description
message_type

-1 Unknown

120 Error

110 Avertissement
Valeur Description
message_type

70 Information

10 Pré-valider

20 Post-valider

30 Pré-exécuter

40 Post-exécuter

60 Avancement

50 StatusChange

100 QueryCancel

130 TaskFailed

90 Diagnostic

200 Custom

140 DiagnosticEx

Chaque fois qu'une tâche d'exécution de package exécute un package enfant,


enregistre cet événement. Le message d'événement inclut les valeurs de
paramètre passées aux packages enfants.

La valeur de la colonne de message pour DiagnosticEx est du texte XML.

400 NonDiagnostic

80 VariableValueChanged

Cette vue affiche les types de source de message suivants.

message_source_type Description

10 API d'entrée, telles que T-SQL et les procédures stockées CLR

20 Processus externe utilisé pour exécuter le package (ISServerExec.exe)

30 Objets de niveau package

40 Tâches de flux de contrôle

50 Conteneurs de flux de contrôle

60 Tâche de flux de données


Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur l'opération

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

7 Notes

Lorsque vous avez l'autorisation pour effectuer une opération sur le serveur, vous
avez également l'autorisation pour consulter les informations de l'opération. La
sécurité au niveau de la ligne est imposée ; uniquement les lignes que vous avez
l'autorisation d'afficher s'affichent.
catalog.operations (base de données
SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les détails de toutes les opérations dans le catalogue Integration Services.

Nom de la Type de Description


colonne données

operation_id bigint Identificateur (ID) unique de l'opération.

operation_type smallint Type d’opération.

created_time datetimeoffset Heure à laquelle l'opération a été créée.

object_type smallint Type d'objet affecté par l'opération. L'objet peut être un
dossier ( 10 ), un projet ( 20 ), un package ( 30 ), un
environnement ( 40 ) ou une instance d'exécution ( 50 ).

object_id bigint ID de l'objet affecté par l'opération.

object_name nvarchar(260) Nom de l'objet.

status int État de l'opération. Les valeurs possibles sont Créé ( 1 ), En


cours d'exécution ( 2 ), Annulé ( 3 ), Échec ( 4 ), En attente
( 5 ), Arrêté prématurément ( 6 ), Opération réussie ( 7 ),
Arrêt en cours ( 8 ) et Fin ( 9 ).

start_time datetimeoffset Heure de début de l'opération, si disponible.

end_time datetimeoffsset Heure à laquelle l'opération s'est terminée.

caller_sid varbinary(85) ID de sécurité (SID) de l'utilisateur si l'Authentification


Windows a été utilisée pour se connecter.

caller_name nvarchar(128) Nom du compte qui a effectué l'opération.

process_id int ID de processus externe, le cas échéant.

stopped_by_sid varbinary(85) SID de l'utilisateur qui a arrêté l'opération.

stopped_by_name nvarchar(128) Nom de l'utilisateur qui a arrêté l'opération.

nom_serveur nvarchar(128) Informations relatives à l'instance et au serveur Windows


pour une instance spécifique de SQL Server.
Nom de la Type de Description
colonne données

machine_name nvarchar(128) Nom de l'ordinateur sur lequel s'exécute l'instance du


serveur.

Notes
Cette vue affiche une ligne pour chaque opération dans le catalogue Integration
Services. Elle permet à l'administrateur d'énumérer toutes les opérations logiques
effectuées sur le serveur, telles que le déploiement d'un projet ou l'exécution d'un
package.

Cette vue affiche les types d’opération suivants, répertoriés dans la colonne
operation_type :

Valeur Description operation_type Description Description


operation_type object_id object_name

1 Initialisation Integration NULL NULL


Services

2 Période de conservation NULL NULL

(Travail de l'Agent SQL)

3 MaxProjectVersion NULL NULL

(Travail de l'Agent SQL)

101 deploy_project ID de projet Nom du projet

(Procédure stockée)

102 get_project ID de projet Nom du projet

(Procédure stockée)

106 restore_project ID de projet Nom du projet

(Procédure stockée)

200 create_execution et ID de projet NULL


start_execution

(Procédures stockées)
Valeur Description operation_type Description Description
operation_type object_id object_name

202 stop_operation ID de projet NULL

(Procédure stockée)

300 validate_project ID de projet Nom du projet

(Procédure stockée)

301 validate_package ID de projet Nom du package

(Procédure stockée)

1000 configure_catalog NULL NULL

(Procédure stockée)

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur l'opération

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

7 Notes

Lorsque vous avez l'autorisation pour effectuer une opération sur le serveur, vous
avez également l'autorisation pour consulter les informations de l'opération. La
sécurité au niveau de la ligne est imposée ; uniquement les lignes que vous avez
l'autorisation d'afficher s'affichent.
catalog.packages (base de données
SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les détails pour tous les packages qui s’affichent dans le catalogue SSISDB.

Nom de la colonne Type de Description


données

package_id bigint Identificateur (ID) unique du package.

name nvarchar (256) Nom unique du package.

package_guid uniqueidentifier Identificateur global unique (GUID) qui identifie le


package.

description nvarchar(1024) Description facultative du package.

package_format_version int Version de SQL Server utilisée pour développer le


package.

version_major int Version principale du package.

version_minor int Version secondaire du package.

version_build int Version de la build du package.

version_comments nvarchar(1024) Commentaires facultatifs sur la version du


package.

version_guid uniqueidentifier GUID qui identifie de manière unique la version du


package.

project_id bigint ID unique du projet.

entry_point bit Une valeur de 1 signifie que le package est


destiné à être démarré directement. Une valeur 0
signifie que le package est destiné à être démarré
par un autre package avec la tâche d'exécution du
package. La valeur par défaut est 1 .

validation_status char(1) État de la validation.

last_validation_time datetimeoffset(7) Heure de la dernière validation.


Notes
Cette vue affiche une ligne pour chaque package dans le catalogue.

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur le projet correspondant

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin.

7 Notes

Si vous avez l'autorisation READ sur un projet, vous avez également l'autorisation
READ sur toutes les packages et les références environnementales associés à ce
projet. La sécurité au niveau de la ligne est imposée ; uniquement les lignes que
vous avez l'autorisation d'afficher s'affichent.
catalog.projects (base de données
SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les détails pour tous les projets qui s’affichent dans le catalogue SSISDB.

Nom de la colonne Type de Description


données

project_id bigint Identificateur (ID) unique du projet.

folder_id bigint ID unique du dossier où le projet réside.

name sysname Nom du projet.

description nvarchar(1024) Description facultative du projet.

project_format_version int Version de SQL Server utilisée pour développer le


projet.

deployed_by_sid varbinary(85) Identificateur de sécurité (SID) de l'utilisateur qui a


installé le projet.

deployed_by_name nvarchar(128) Nom de l'utilisateur qui a installé le projet.

last_deployed_time datetimeoffset(7) Date et heure auxquelles le projet a été déployé ou


a été redéployé.

created_time datetimeoffset(7) Date et heure de création du projet.

object_version_lsn bigint Version du projet. Ce nombre n'est pas


obligatoirement séquentiel.

validation_status char(1) État de validation.

last_validation_time datetimeoffset(7) Heure de la dernière validation.

Notes
Cette vue affiche une ligne pour chaque projet dans le catalogue.

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur le projet

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin.

7 Notes

Si vous avez l'autorisation READ sur un projet, vous avez également l'autorisation
READ sur toutes les packages et les références environnementales associés à ce
projet. La sécurité au niveau de la ligne est imposée ; uniquement les lignes que
vous avez l'autorisation d'afficher s'affichent.
catalog.validations (base de données
SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les détails de toutes les validations du package et du projet dans le catalogue
Integration Services.

Nom de la Type de données Description


colonne

validation_id bigint Identificateur (ID) unique de la validation.

environment_scope Char (1) Indique les références environnementales considérées


par la validation. Lorsque la valeur est A , toutes les
références environnementales associées au projet sont
incluses dans la validation. Lorsque la valeur est S ,
seule une référence environnementale unique est
incluse. Lorsque la valeur est D , aucune référence
environnementale n'est incluse et chaque paramètre
doit avoir une valeur par défaut littérale pour passer la
validation.

validate_type Char (1) Type de validation à réaliser. Les types de validation


possibles sont la validation de dépendance ( D ) ou la
validation complète ( F ). La validation du package est
toujours une validation complète.

folder_name nvarchar(128) Nom du dossier qui contient le projet correspondant.

project_name nvarchar(128) Nom du projet.

project_lsn bigint Version du projet validé.

use32bitruntime bit Indique si l'exécution 32 bits est utilisée pour exécuter


le package sur un système d'exploitation 64 bits.
Quand la valeur est 1 , l’exécution 32 bits est utilisée.
Lorsque la valeur est 0 , l'exécution 64 bits est utilisée.

reference_id bigint ID unique de la référence d'environnement de projet


utilisée par le projet pour référencer un
environnement.

operation_type smallint Type d’opération. Les opérations affichées dans cette


vue incluent la validation de projet ( 300 ) et la
validation du package ( 301 ).
Nom de la Type de données Description
colonne

object_name nvarhcar(260) Nom de l'objet.

object_type smallint Type d'objet. L'objet peut être un projet ( 20 ) ou un


package ( 30 ).

object_id bigint ID de l'objet affecté par l'opération.

start_time datetimeoffset(7) Heure de début de l'opération, si disponible.

end_time datetimeoffsset(7) Heure à laquelle l'opération s'est terminée.

status int État de l'opération. Les valeurs possibles sont Créé


( 1 ), En cours d'exécution ( 2 ), Annulé ( 3 ), Échec ( 4 ),
En attente ( 5 ), Arrêté prématurément ( 6 ), Opération
réussie ( 7 ), Arrêt en cours ( 8 ) et Fin ( 9 ).

caller_sid varbinary(85) ID de sécurité (SID) de l'utilisateur si l'Authentification


Windows a été utilisée pour se connecter.

caller_name nvarchar(128) Nom du compte qui a effectué l'opération.

process_id int ID de processus externe, le cas échéant.

stopped_by_sid varbinary(85) SID de l'utilisateur qui a arrêté l'opération.

stopped_by_name nvarchar(128) Nom de l'utilisateur qui a arrêté l'opération.

nom_serveur nvarchar(128) Informations relatives à l'instance et au serveur


Windows pour une instance spécifique de SQL Server.

machine_name nvarchar(128) Nom de l'ordinateur sur lequel s'exécute l'instance du


serveur.

dump_id uniqueidentifier ID du vidage d'exécution.

Notes
Cette vue affiche une ligne pour chaque validation dans le catalogue Integration
Services.

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Autorisation READ sur l'opération correspondante


Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

7 Notes

Lorsque vous avez l'autorisation pour effectuer une opération sur le serveur, vous
avez également l'autorisation pour consulter les informations de l'opération. La
sécurité au niveau de la ligne est imposée ; uniquement les lignes que vous avez
l'autorisation d'afficher s'affichent.
catalog.master_properties (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les propriétés d’Integration Services Scale Out Master.

Nom de la colonne Type de données Description

property_name nvarchar (256) Nom de la propriété de Scale Out Master.

property_value nvarchar(max) Valeur de la propriété de Scale Out Master.

Notes
Cette vue affiche une ligne pour chaque propriété de Scale Out Master. Les propriétés
affichées par cette vue incluent les éléments suivants :

Nom de la propriété Description

CLUSTER_LOGDB_SERVER Serveur SQL Server qui héberge la base de données du journal.

LAST_ONLINE_TIME Dernière fois que Scale Out Master était en ligne.

MACHINE_IP Adresse IP de la machine.

MACHINE_NAME Nom de l'ordinateur.

MASTER_ADDRESS Point de terminaison de Scale Out Master.

MASTER_SERVICE_PORT Port dans le point de terminaison de Scale Out Master.

SSLCERT_THUMBPRINT Empreinte du certificat de Scale Out Master.

Autorisations
Tous les membres du rôle de base de données public ont l’autorisation de lecture sur
cette vue.
catalog.worker_agents (base de données
SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Affiche les informations de l’Integration Services Scale Out Worker.

Nom de la Type de Description


colonne données

WorkerAgentId uniqueidentifier ID d’agent de Worker de Scale Out Worker.

IsEnabled bit Indique si le Scale Out Worker est activé.

DisplayName nvarchar (256) Nom complet de Scale Out Worker.

Description nvarchar (256) Description de Scale Out Worker.

MachineName nvarchar (256) Nom de machine pour Scale Out Worker.

Étiquettes nvarchar(max) Balises de Scale Out Worker.

UserAccount nvarchar (256) Compte d’utilisateur exécutant le service Scale Out


Worker.

LastOnlineTime datetimeoffset(7) Dernière fois que le Scale Out Worker était en ligne.

Notes
Cette vue affiche une ligne par connexion du Scale Out Worker au Scale Out Master
utilisant le catalogue SSISDB.

Autorisations
Cette vue requiert l'une des autorisations suivantes :

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle de base de données ssis_cluster_executor

Appartenance au rôle serveur sysadmin


Procédures stockées (catalogue
Integration Services)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Cette section décrit les procédures stockées Transact-SQL qui sont disponibles pour
l'administration des projets Integration Services déployés dans une instance de SQL
Server.

Appelez les procédures stockées Integration Services pour ajouter, supprimer, modifier
ou exécuter des objets stockés dans le catalogue SSISDB.

Le nom par défaut du catalogue est SSISDB. Les objets stockés dans le catalogue
incluent des projets, des packages, des paramètres, des environnements et l'historique
opérationnel.

Vous pouvez utiliser directement les vues de base de données et les procédures
stockées, ou écrire du code personnalisé qui appelle l'API managée. Management
Studio et l'API managée interrogent les vues et appellent les procédures stockées
décrites dans cette section pour effectuer de nombreuses tâches.

Dans cette section


catalog.add_data_tap
Ajoute un drainage de données sur la sortie d'un composant dans un flux de données
de package.

catalog.add_data_tap_by_guid
Ajoute un drainage de données à un chemin de flux de données spécifique dans un flux
de données de package.

catalog.check_schema_version
Détermine si le schéma de catalogue SSISDB et les binaires Integration Services
(assembly ISServerExec et SQLCLR) sont compatibles.

catalog.clear_object_parameter_value (base de données SSISDB)


Efface la valeur d'un paramètre pour un projet ou un package Integration Services
existant stocké sur le serveur.
catalog.configure_catalog (base de données SSISDB)
Configure le catalogue Integration Services en définissant une propriété de catalogue
sur une valeur spécifiée.

catalog.create_environment (base de données SSISDB)


Crée un environnement dans le catalogue Integration Services.

catalog.create_environment_reference (base de données SSISDB)


Crée une référence environnementale pour un projet dans le catalogue Integration
Services.

catalog.create_environment_variable (base de données SSISDB)


Crée une variable d'environnement dans le catalogue Integration Services.

catalog.create_execution (base de données SSISDB)


Crée une instance d'exécution dans le catalogue Integration Services.

catalog.create_execution_dump
Provoque la suspension d'un package en cours d'exécution et la création d'un fichier de
vidage par ce dernier.

catalog.create_folder (base de données SSISDB)


Crée un dossier dans le catalogue Integration Services.

catalog.delete_environment (base de données SSISDB)


Supprime un environnement d'un dossier dans le catalogue Integration Services.

catalog.delete_environment_reference (base de données SSISDB)


Supprime une référence environnementale d'un projet dans le catalogue Integration
Services.

catalog.delete_environment_variable (base de données SSISDB)


Supprime une variable d'environnement d'un environnement dans le catalogue
Integration Services.

catalog.delete_folder (base de données SSISDB)


Supprime un dossier du catalogue Integration Services.

catalog.delete_project (base de données SSISDB)


Supprime un projet existant d'un dossier dans le catalogue Integration Services.

catalog.deny_permission (base de données SSISDB)


Refuse une autorisation sur un objet sécurisable dans le catalogue Integration Services.
catalog.deploy_project (base de données SSISDB)
Déploie un projet dans un dossier dans le catalogue Integration Services ou met à jour
un projet existant qui a été déployé précédemment.

catalog.get_parameter_values (base de données SSISDB)


Résout et extrait les valeurs de paramètre par défaut d'un projet et les packages
correspondants dans le catalogue Integration Services.

catalog.get_project (base de données SSISDB)


Extrait les propriétés d'un projet existant dans le catalogue Integration Services.

catalog.grant_permission (base de données SSISDB)


Accorde une autorisation sur un objet sécurisable dans le catalogue Integration Services.

catalog.move_environment (base de données SSISDB)


Déplace un environnement d'un dossier vers un autre dans le catalogue Integration
Services.

catalog.move_project (base de données SSISDB)


Déplace un projet d'un dossier vers un autre dans le catalogue Integration Services.

catalog.remove_data_tap
Supprime un drainage de données d'une sortie de composant dans une exécution.

catalog.rename_environment (base de données SSISDB)


Renomme un environnement dans le catalogue Integration Services.

catalog.rename_folder (base de données SSISDB)


Renomme un dossier dans le catalogue Integration Services.

catalog.restore_project (base de données SSISDB)


Restaure un projet dans le catalogue Integration Services dans une version précédente.

catalog.revoke_permission (base de données SSISDB)


Révoque une autorisation sur un objet sécurisable dans le catalogue Integration
Services.

catalog.set_environment_property (base de données SSISDB)


Définit la propriété d'un environnement dans le catalogue Integration Services.

catalog.set_environment_reference_type (base de données SSISDB)


Définit le type de référence et le nom de l'environnement associés à une référence
environnementale existante pour un projet dans le catalogue Integration Services.
catalog.set_environment_variable_property (base de données SSISDB)
Définit la propriété d'une variable d'environnement dans le catalogue Integration
Services.

catalog.set_environment_variable_protection (base de données SSISDB)


Définit le bit de critère de diffusion d'une variable d'environnement dans le catalogue
Integration Services.

catalog.set_environment_variable_value (base de données SSISDB)


Définit la valeur d'une variable d'environnement dans le catalogue Integration Services.

catalog.set_execution_parameter_value (base de données SSISDB)


Définit la valeur d'un paramètre pour une instance d'exécution dans le catalogue
Integration Services .

catalog.set_execution_property_override_value
Définit la valeur d'une propriété pour une instance d'exécution dans le catalogue
Integration Services.

catalog.set_folder_description (base de données SSISDB)


Définit la description d'un dossier dans le catalogue Integration Services.

catalog.set_object_parameter_value (base de données SSISDB)


Définit la valeur d'un paramètre dans le catalogue Integration Services. Associe la valeur
à une variable d'environnement ou affecte une valeur littérale qui sera utilisée par
défaut si aucune autre valeur n'est affectée.

catalog.start_execution (base de données SSISDB)


Démarre une instance d'exécution dans le catalogue Integration Services.

catalog.startup
Effectue la maintenance de l'état des opérations pour le catalogue SSISDB.

catalog.stop_operation (base de données SSISDB)


Arrête une validation ou une instance d'exécution dans le catalogue Integration
Services.

catalog.validate_package (base de données SSISDB)


Valide de façon asynchrone un package dans le catalogue Integration Services.

catalog.validate_project (base de données SSISDB)


Valide de façon asynchrone un projet dans le catalogue Integration Services.

catalog.add_execution_worker (base de données SSISDB)


Ajoute un Integration Services Scale Out Worker à une instance d’exécution dans Scale
Out.

catalog.enable_worker_agent (base de données SSISDB)


Active un Scale Out Worker pour Scale Out Master utilisant ce catalogue Integration
Services.

catalog.disable_worker_agent (base de données SSISDB)


Désactive un Scale Out Worker pour Scale Out Master utilisant ce catalogue Integration
Services.
catalog.add_data_tap
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Ajoute un drainage de données sur la sortie d'un composant dans un flux de données
de package, pour une instance d'exécution.

Syntaxe
SQL

catalog.add_data_tap [ @execution_id = ] execution_id


, [ @task_package_path = ] task_package_path
, [ @dataflow_path_id_string = ] dataflow_path_id_string
, [ @data_filename = ] data_filename
, [ @max_rows = ] max_rows
, [ @data_tap_id = ] data_tap_id OUTPUT

Arguments
[ @execution_id = ] execution_id
ID de l'exécution contenant le package. execution_id est de type bigint.

[ @task_package_path = ] task_package_path
Chemin d'accès de package de la tâche de flux de données. La propriété PackagePath
de la tâche de flux de données spécifie le chemin d’accès. Le chemin d'accès respecte la
casse. Pour rechercher le chemin d’accès au package, dans SQL Server Data Tools cliquez
avec le bouton droit sur la tâche de flux de données, puis cliquez sur Propriétés. La
propriété PackagePath s’affiche dans la fenêtre Propriétés.

task_package_path est de type nvarchar(max) .

[ @dataflow_path_id_string = ] dataflow_path_id_string
Chaîne d’identification du chemin d’accès de flux de données. Un chemin d'accès
connectent deux composants de flux de données. La propriété IdentificationString du
chemin d’accès spécifie la chaîne.

Pour rechercher la chaîne d’identification, dans SQL Server Data Tools cliquez avec le
bouton droit sur le chemin d’accès entre deux composants de flux de données, puis
cliquez sur Propriétés. La propriété IdentificationString s’affiche dans la fenêtre
Propriétés.

dataflow_path_id_string est de type nvarchar(4000) .

[ @data_filename = ] data_filename
Nom du fichier qui stocke les données drainées. Si la tâche de flux de données s'exécute
à l'intérieur d'un conteneur de boucles Foreach ou For, des fichiers distincts stockent les
données drainées pour chaque itération de la boucle. Chaque fichier a pour préfixe un
nombre qui correspond à une itération.

Par défaut, le fichier est stocké dans le dossier <lecteur>:\Program Files\Microsoft SQL
Server\130\DTS\DataDumps.

data_filename est de type nvarchar(4000) .

[ @max_rows = ] max_rows
Nombre de lignes capturées pendant le drainage de données. Si cette valeur n'est pas
spécifiée, toutes les lignes sont capturées. max_rows est de type int.

[ @data_tap_id = ] data_tap_id
Retourne l'ID de la collecte de données. data_tap_id est de type bigint.

Exemple
Dans l’exemple suivant, un drainage de données est créé sur le chemin d’accès de flux
de données, 'Paths[OLE DB Source.OLE DB Source Output] , dans la tâche de flux de
données, \Package\Data Flow Task . Les données drainées sont stockées dans le fichier
output0.txt dans le dossier DataDumps (<lecteur>:\Program Files\Microsoft SQL
Server\130\DTS\DataDumps).

SQL

Declare @execution_id bigint


Exec SSISDB.Catalog.create_execution
@folder_name='Packages',@project_name='SSISPackages',
@package_name='Package.dtsx',@reference_id=Null, @use32bitruntime=False,
@execution_id=@execution_id OUTPUT

Exec SSISDB.Catalog.set_execution_parameter_value @execution_id,50,


'LOGGING_LEVEL', 0

Exec SSISDB.Catalog.add_data_tap @execution_id,


@task_package_path='\Package\Data Flow Task', @dataflow_path_id_string =
'Paths[OLE DB Source.OLE DB Source Output]', @data_filename = 'output0.txt'
Exec SSISDB.Catalog.start_execution @execution_id

Remarques
Pour ajouter des collectes de données, l’instance d’exécution doit avoir l’état Créé
(valeur 1 dans la colonne état de la vue catalog.operations (SSISDB Database)). La valeur
d'état change lorsque vous exécutez l'exécution. Vous pouvez créer une exécution en
appelant catalog.create_execution (base de données SSISDB).

Les considérations suivantes sont à prendre en compte pour la procédure stockée


add_data_tap.

Si une exécution contient un package parent et un ou plusieurs packages enfants,


vous devez ajouter un drainage de données pour chaque package pour lequel
vous souhaitez effectuer un drainage de données.

Si un package contient plusieurs tâches de flux de données portant le même nom,


task_package_path identifie de manière unique la tâche de flux de données qui
contient la sortie du composant drainé.

Lorsque vous ajoutez une collecte de données, celle-ci n'est pas validée tant que le
package n'est pas exécuté.

Il est recommandé de limiter le nombre de lignes capturées pendant le drainage


des données, pour éviter de générer des fichiers de données de grande taille. Si
l'ordinateur sur lequel la procédure stockée est exécutée, manque d'espace de
stockage pour les fichiers de données, le package cesse de s'exécuter et un
message d'erreur est consigné dans un journal.

L'exécution de la procédure stockée add_data_tap affecte les performances du


package. Il est recommandé d'exécuter la procédure stockée seulement pour
résoudre des problèmes de données.

Pour accéder au fichier qui stocke les données drainées, vous devez être
administrateur sur l'ordinateur sur lequel la procédure stockée est exécutée. Vous
devez également être l'utilisateur qui a démarré l'exécution contenant le package
avec le drainage de données.

Codes de retour
0 (succès)
Lorsque la procédure stockée échoue, elle génère une erreur.

Jeu de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations MODIFY sur l'instance d'exécution

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit les conditions provoquant l'échec de la procédure stockée.

L'utilisateur ne dispose pas des autorisations MODIFY.

Le drainage de données du composant spécifié, dans le package spécifié, a déjà


été ajouté.

La valeur spécifiée pour le nombre de lignes à capturer n'est pas valide.

Spécifications

Ressources externes
Entrée de blog, SSIS 2012 : aperçu de Data Taps sur le site rafael-salas.com.

Voir aussi
catalog.add_data_tap_by_guid
catalog.add_data_tap_by_guid
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Ajoute un drainage de données à un chemin de flux de données spécifique dans un flux


de données de package, pour une instance d'exécution.

Syntaxe
SQL

catalog.add_data_tap_by_guid [ @execution_id = ] execution_id


, [ @dataflow_task_guid = ] dataflow_task_guid
, [ @dataflow_path_id_string = ] dataflow_path_id_string
, [ @data_filename = ] data_filename
, [ @max_rows = ] max_rows
, [ @data_tap_id = ] data_tap_id

Arguments
[ @execution_id = ] execution_id
ID de l'exécution contenant le package. execution_id est de type bigint.

[ @dataflow_task_guid = ] dataflow_task_guid
ID du flux de tâches de données dans le package qui contient le chemin d'accès au flux
de données à drainer. dataflow_task_guid est de type uniqueidentifier.

[ @dataflow_path_id_string = ] dataflow_path_id_string
Chaîne d’identification du chemin d’accès de flux de données. Un chemin d'accès
connectent deux composants de flux de données. La propriété IdentificationString du
chemin d’accès spécifie la chaîne.

Pour rechercher la chaîne d’identification, dans SQL Server Data Tools cliquez avec le
bouton droit sur le chemin d’accès entre deux composants de flux de données, puis
cliquez sur Propriétés. La propriété IdentificationString s’affiche dans la fenêtre
Propriétés.

dataflow_path_id_string est de type nvarchar(4000) .


[ @data_filename = ] data_filename
Nom du fichier qui stocke les données drainées. Si la tâche de flux de données s'exécute
à l'intérieur d'un conteneur de boucles Foreach ou For, des fichiers distincts stockent les
données drainées pour chaque itération de la boucle. Chaque fichier a pour préfixe un
nombre qui correspond à une itération. Les fichiers de drainage de données sont écrits
dans le dossier « <SQL Server installation folder>\130\DTS\ ». data_filename est de type
nvarchar(4000) .

[ @max_rows = ] max_rows
Nombre de lignes capturées pendant le drainage de données. Si cette valeur n'est pas
spécifiée, toutes les lignes sont capturées. max_rows est de type int.

[ @data_tap_id = ] data_tap_id
ID de la collecte de données. data_tap_id est de type bigint.

Exemple
Dans l’exemple suivant, un drainage de données est créé sur le chemin d’accès de flux
de données, Paths[SRC DimDCVentor.OLE DB Source Output] , dans la tâche de flux de
données {D978A2E4-E05D-4374-9B05-50178A8817E8} . Les données drainées sont stockées
dans le fichier DCVendorOutput.csv.

SQL

exec catalog.add_data_tap_by_guid @execution_id,


'{D978A2E4-E05D-4374-9B05-50178A8817E8}',
'Paths[SRC DimDCVentor.OLE DB Source Output]',
'D:\demos\datafiles\DCVendorOutput.csv'

Notes
Pour ajouter des collectes de données, l’instance d’exécution doit avoir l’état Créé
(valeur 1 dans la colonne état de la vue catalog.operations (SSISDB Database)). La valeur
d'état change lorsque vous exécutez l'exécution. Vous pouvez créer une exécution en
appelant catalog.create_execution (base de données SSISDB).

Les considérations suivantes sont à prendre en compte pour la procédure stockée


add_data_tap_by_guid.

Lorsque vous ajoutez un drainage de données, celui-ci n'est pas validé tant que le
package n'est pas exécuté.
Il est recommandé de limiter le nombre de lignes capturées pendant le drainage
des données, pour éviter de générer des fichiers de données de grande taille. Si
l'ordinateur sur lequel la procédure stockée est exécutée ne dispose pas d'assez
d'espace de stockage pour les fichiers de données, la procédure arrête l'exécution.

L'exécution de la procédure stockée add_data_tap_by_guid affecte les


performances du package. Il est recommandé d'exécuter la procédure stockée
seulement pour résoudre des problèmes de données.

Pour accéder au fichier qui stocke les données drainées, vous devez disposer
d'autorisations d'administrateur sur l'ordinateur où la procédure stockée est
exécutée, ou vous devez être l'utilisateur qui a lancé l'exécution qui contient le
package avec le drainage de données.

Codes de retour
0 (succès)

Lorsque la procédure stockée échoue, elle génère une erreur.

Jeu de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations MODIFY sur l'instance d'exécution

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit les conditions provoquant l'échec de la procédure stockée.

L'utilisateur ne dispose pas des autorisations MODIFY.

Le drainage de données du composant spécifié, dans le package spécifié, a déjà


été ajouté.
La valeur spécifiée pour le nombre de lignes à capturer n'est pas valide.

Spécifications

Voir aussi
catalog.add_data_tap
catalog.add_execution_worker (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server 2017 (14.x) et versions plus récentes

Ajoute un Integration Services Scale Out Worker à une instance d’exécution dans Scale
Out.

Syntaxe
SQL

catalog.add_execution_worker [ @execution_id = ] execution_id, [


@workeragent_id = ] workeragent_id

Arguments
[ @execution_id = ] execution_id
Identificateur unique de l'instance d'exécution. execution_id est de type bigint.

[@workeragent_id = ] workeragent_id
ID d’agent de Worker d’un Scale Out Worker. workeragent_id est de type
uniqueIdentifier.

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :
Autorisations READ et MODIFY sur l'instance d'exécution

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

L’utilisateur n’a pas les autorisations appropriées.

L’identificateur d’exécution n’est pas valide.

L’ID d’agent de Worker n’est pas valide.

L’exécution n’a pas lieu dans Scale Out.

Voir aussi
Exécuter des packages dans Scale-out.
catalog.check_schema_version
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Détermine si le schéma de catalogue SSISDB et les binaires Integration Services


(assembly ISServerExec et SQLCLR) sont compatibles.

ISServerExec.exc enregistre un message d'erreur lorsque le schéma et les fichiers


binaires sont incompatibles.

La version du schéma SSISDB est incrémentée quand le schéma change lors de


l'application des correctifs logiciels et lors des mises à niveau. Il est recommandé
d'exécuter cette procédure stockée après qu'une sauvegarde SSISDB a été restaurée afin
de garantir que le schéma et les fichiers binaires sont compatibles.

Syntaxe
SQL

catalog.check_schema_version [ @use32bitruntime = ] use32bitruntime

Arguments
[ @use32bitruntime= ] use32bitruntime
Lorsque le paramètre est défini sur 1, c’est la version 32 bits de dtexec qui est appelée.
use32bitruntime est de type int.

Valeur du code de retour


Retourne 0 en cas de réussite.

Jeu de résultats
Retourne une table qui a le format suivant :
Nom de la colonne Type de Description
données

SERVER_BUILD decimal Version de SQL Server. Par exemple, 14.0.3335.7


correspond à un serveur exécutant SQL
Server 2014.

SCHEMA_VERSION tinyint Numéro de version de SQL Server. Par exemple, 6


et 7 correspondent à SQL Server 2017 et 2019,
respectivement.

SCHEMA_BUILD string Build de schéma.

ASSEMBLY_BUILD string Build d’assembly.

SHARED_COMPONENT_VERSION string Version du composant partagé.

Autorisations
Cette procédure stockée requiert l'autorisation suivante :

Appartenance au rôle de base de données ssis_admin.


catalog.clear_object_parameter_value
(base de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Efface la valeur d'un paramètre pour un projet ou un package Integration Services


existant stocké sur le serveur.

Syntaxe
SQL

catalog.clear_object_parameter [ @folder_name = ] folder_name


, [ @project_name = ] project_name
, [ @object_type = ] object_type
, [ @object_name = ] object_name
, [ @parameter_ name = ] parameter_name

Arguments
[ @folder_name = ] folder_name
Nom du dossier qui contient le projet. folder_name est de type nvarchar(128) .

[ @project_name = ] project_name
Nom de projet. project_name est de type nvarchar(128) .

[ @object_type = ] object_type
Type d'objet. Les valeurs valides incluent 20 pour un projet et 30 pour un package.
object_type est de type smallInt.

[ @ object _name = ] object _name


Nom du package. object _name est de type nvarchar(260).

[ @parameter_ name = ] parameter_name


Le nom du paramètre. parameter_ name est de type nvarchar(128).

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur le projet

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur de
procédure stockée clear_object_parameter :

Un type d'objet non valide est spécifié ou le nom d'objet est introuvable dans le
projet.

Le projet n'existe pas, n'est pas accessible ou n'est pas valide.

Un nom de paramètre non valide est spécifié.

L’utilisateur n’a pas les autorisations appropriées.


catalog.configure_catalog (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Configure le catalogue Integration Services en définissant une propriété de catalogue


sur une valeur spécifiée.

Syntaxe
SQL

catalog.configure_catalog [ @property_name = ] property_name , [


@property_value = ] property_value

Arguments
[ @property_name = ] property_name
Nom de la propriété de catalogue. property_name est de type nvarchar(255). Pour plus
d’informations sur les propriétés disponibles, consultez catalog.catalog_properties (base
de données SSISDB).

[ @property_value = ] property_value
Valeur de la propriété de catalogue. property_value est de type nvarchar(255). Pour plus
d’informations sur les valeurs de propriété, consultez catalog.catalog_properties (base
de données SSISDB).

Codet de retour
0 (réussite) ou 1 (échec)

Jeux de résultats
None
Notes
Cette procédure stockée détermine si le property_value est valide pour chaque
property_name.

Cette procédure stockée peut être effectuée uniquement lorsqu'il n'y a pas d'exécution
active, c'est-à-dire pas d'exécutions en attente, en file d'attente, en cours d'exécution ou
suspendues.

Pendant que le catalogue est configuré, toutes les autres procédures stockées du
catalogue échouent avec le message d’erreur « La configuration du serveur est en cours
».

Lorsque le catalogue est configuré, une entrée est écrite dans le journal des opérations.

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

La propriété n'existe pas

La valeur de la propriété n'est pas valide


catalog.create_customized_logging_level
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server 2016 (13.x) et versions ultérieures

Créer un niveau de journalisation personnalisée. Pour plus d’informations sur les niveaux
de journalisation personnalisée, consultez Journalisation Integration Services (SSIS).

Syntaxe
SQL

catalog.create_customized_logging_level [ @level_name = ] level_name


, [ @level_description = ] level_description
, [ @profile_value = ] profile_value
, [ @events_value = ] events_value
, [ @level_id = ] level_id OUT

Arguments
[ @level_name = ] level_name
Nom du nouveau niveau de journalisation personnalisée.

level_name est de type nvarchar(128).

[ @level_description = ] level_description
Description du nouveau niveau de journalisation personnalisée.

level_description est de type nvarchar(max).

[ @profile_value = ] profile_value
Statistiques que le nouveau niveau de journalisation personnalisée doit journaliser.

Les valeurs valides pour les statistiques sont indiquées ci-après. Ces valeurs
correspondent aux valeurs sous l’onglet Statistiques de la boîte de dialogue Gestion du
niveau de journalisation personnalisée.

Exécution = 0

Volume = 1
Performances = 2

profile_value est de type bigint.

[ @events_value = ] events_value
Événements que le nouveau niveau de journalisation personnalisée doit journaliser.

Les valeurs valides pour les événements sont indiquées ci-après. Ces valeurs
correspondent aux valeurs sous l’onglet Événements de la boîte de dialogue Gestion du
niveau de journalisation personnalisée.

Événements sans contexte d’événement Événements avec contexte d’événement

OnVariableValueChanged = 0 OnVariableValueChanged_IncludeContext = 32

OnExecutionStatusChanged = 1 OnExecutionStatusChanged_IncludeContext = 33

OnPreExecute = 2 OnPreExecute_IncludeContext = 34

OnPostExecute = 3 OnPostExecute_IncludeContext = 35

OnPreValidate = 4 OnPreValidate_IncludeContext = 36

OnPostValidate = 5 OnPostValidate_IncludeContext = 37

OnWarning = 6 OnWarning_IncludeContext = 38

OnInformation = 7 OnInformation_IncludeContext = 39

OnError = 8 OnError_IncludeContext = 40

OnTaskFailed = 9 OnTaskFailed_IncludeContext = 41

OnProgress = 10 OnProgress_IncludeContext = 42

OnQueryCancel = 11 OnQueryCancel_IncludeContext= 43

OnBreakpointHit = 12 OnBreakpointHit_IncludeContext = 44

OnCustomEvent = 13 OnCustomEvent_IncludeContext = 45

Diagnostic = 14 Diagnostic_IncludeContext = 46

DiagnosticEx = 15 DiagnosticEx_IncludeContext = 47

NonDiagnostic = 16 NonDiagnostic_IncludeContext = 48

events_value est de type bigint.


[ @level_id = ] level_id OUT
ID du nouveau niveau de journalisation personnalisée.

level_id est de type bigint.

Remarques
Pour combiner plusieurs valeurs dans Transact-SQL pour l’argument profile_value ou
events_value, suivez cet exemple. Pour capturer les événements OnError (8) et
DiagnosticEx (15), la formule permettant de calculer events_value est 2^8 + 2^15 =
33024 .

Codes de retour
0 (succès)

Lorsque la procédure stockée échoue, elle génère une erreur.

Jeu de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

L’appartenance au rôle de base de données ssis_admin

L’appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit les conditions provoquant l'échec de la procédure stockée.

L’utilisateur ne dispose pas des autorisations requises.


catalog.create_environment (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Crée un environnement dans le catalogue Integration Services.

Syntaxe
SQL

catalog.create_environment [ @folder_name = ] folder_name


, [ @environment_name = ] environment_name
[ , [ @environment_description = ] environment_description ]

Arguments
[@folder_name =] nom_dossier
Nom du dossier destiné à contenir l’environnement. folder_name est de type
nvarchar(128) .

[@environment_name =] nom_environnement
Nom de l’environnement. environment_name est de type nvarchar(128) .

[@environment_description=] description_environnement
Description facultative de l'environnement. environment_description est de type
nvarchar(1024).

Valeur du code de retour


0 (succès)

Jeux de résultats
None
Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur le dossier

Appartenance au rôle de base de données ssis_admin

d'un rôle de base de données ;

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

Le nom du dossier est introuvable

Un environnement qui a le même nom existe déjà dans le dossier spécifié

Remarques
Le nom de l'environnement doit être unique dans le dossier.
catalog.create_environment_reference
(base de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Crée une référence environnementale pour un projet dans le catalogue Integration


Services.

Syntaxe
SQL

catalog.create_environment_reference [ @folder_name = ] folder_name


, [ @project_name = ] project_name
, [ @environment_name = ] environment_name
, [ @reference_type = ] reference_type
[ , [ @environment_folder_name = ] environment_folder_name ]
[ , [ @reference_id = ] reference_id OUTPUT ]

Arguments
[ @folder_name = ] folder_name
Nom du dossier du projet qui référence l'environnement. folder_name est de type
nvarchar(128) .

[ @project_name = ] project_name
Nom du projet qui référence l'environnement. project_name est de type nvarchar(128) .

[ @environment_name = ] environment_name
Nom de l'environnement référencé. environment_name est de type nvarchar(128) .

[ @reference_type = ] reference_type
Indique si l'environnement peut se trouver dans le même dossier que le projet
(référence relative) ou dans un dossier différent (référence absolue). Utilisez la valeur R
pour indiquer une référence relative. Utilisez la valeur A pour indiquer une référence
absolue. reference_type est de type char(1) .
[ @environment_folder_name = ] environment_folder_name
Nom du dossier dans lequel l'environnement référencé se trouve. Cette valeur est
obligatoire pour les références absolues. environment_folder_name est de type
nvarchar(128) .

[ @reference_id = ] reference_id
Retourne l'identificateur unique de la nouvelle référence. Ce paramètre est facultatif.
reference_id est de type bigint.

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur le projet, et autorisation READ sur


l'environnement

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

Le nom du dossier n'est pas valide.

Le nom du projet n'est pas valide.

L'utilisateur n'a pas les autorisations appropriées

Une référence absolue est spécifiée en utilisant le caractère A dans le paramètre


reference_location, mais le nom du dossier n’a pas été spécifié avec le paramètre
environment_folder_name.
Notes
Un projet peut avoir des références environnementales relatives ou absolues. Les
références relatives font référence à l'environnement par nom et requièrent qu'il réside
dans le même dossier que le projet. Les références absolues font référence à
l'environnement par nom et par dossier et peuvent faire référence aux environnements
qui résident dans un dossier différent que le projet. Un projet peut référencer plusieurs
environnements.
catalog.create_environment_variable
(base de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Crée une variable d'environnement dans le catalogue Integration Services.

Syntaxe
SQL

catalog.create_environment_variable [ @folder_name = ] folder_name


, [ @environment_name = ] environment_name
, [ @variable_name = ] variable_name
, [ @data_type = ] data_type
, [ @sensitive = ] sensitive
, [ @value = ] value
, [ @description = ] description

Arguments
[@folder_name =] nom_dossier
Nom du dossier qui contient l'environnement. folder_name est de type nvarchar(128) .

[@environment_name =] nom_environnement
Nom de l’environnement. environment_name est de type nvarchar(128) .

[@variable_name =] nom_variable
Nom de la variable d’environnement. variable_name est de type nvarchar(128).

[@data_type =] type_données
Type de données de la variable. Les types de données de variable d’environnement pris
en charge incluent Boolean, Byte, DateTime, Double, Int16, Int32, Int64, Single, String,
UInt32 et UInt64. Les types de données de variable d’environnement non pris en charge
incluent Char, DBNull, Object et Sbyte. Le type de données du paramètre data_type est
nvarchar (128).
[@sensitive =] sensible
Indique si la variable contient une valeur sensible ou pas. Utilisez une valeur de 1 pour
indiquer que la valeur de la variable d'environnement est sensible ou une valeur de 0
pour indiquer qu'elle n'est pas sensible. Une valeur sensible est chiffrée lorsqu'elle est
stockée. Une valeur qui n’est pas sensible est stockée en texte en clair. Sensitive est de
type bit.

[@value =] valeur
Valeur de la variable d’environnement. value est de type sql_variant.

[@description =] description
Description de la variable d'environnement. value est de type nvarchar(1024).

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur l'environnement

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

Le nom du dossier, le nom de l'environnement ou la variable d'environnement


n'est pas valide

Le nom de variable existe déjà dans l'environnement

L’utilisateur n’a pas les autorisations appropriées


Notes
Une variable d'environnement peut être utilisée pour affecter efficacement une valeur à
un paramètre du projet ouà un paramètre du package pour une utilisation dans
l'exécution d'un package. Les variables d'environnement permettent d'organiser les
valeurs de paramètre. Les noms de variable doivent être uniques dans un
environnement.

La procédure stockée valide le type de données de la variable pour s'assurer qu'elle est
prise en charge par le catalogue Integration Services.

 Conseil

Envisagez d’utiliser le type de données Int16 dans Integration Services au lieu du


type de données Sbyte non pris en charge.

La valeur passée à cette procédure stockée avec le paramètre value est convertie d’un
type de données Integration Services en un type de données SQL Server selon le tableau
suivant :

Type de données Type de données de SQL Server


Integration Services

Booléen bit

Byte binary, varbinary

DateTime datetime, datetime2, datetimeoffset, smalldatetime

Double Valeur numérique exacte : decimal, numeric ; Valeur numérique


approchée : float, real

Int16 smallint

Int32 int

Int64 bigint

Unique Valeur numérique exacte : decimal, numeric ; Valeur numérique


approchée : float, real

Chaîne varchar, nvarchar, char

UInt32 int (int est le mappage le plus proche de Uint32.)

UInt64 bigint (int est le mappage le plus proche de Uint64.)


catalog.create_execution (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Crée une instance d'exécution dans le catalogue Integration Services.

Cette procédure stockée utilise le niveau de journalisation par défaut du serveur.

Syntaxe
SQL

catalog.create_execution [ @folder_name = ] folder_name


, [ @project_name = ] project_name
, [ @package_name = ] package_name
[ , [ @reference_id = ] reference_id ]
[ , [ @use32bitruntime = ] use32bitruntime ]
[ , [ @runinscaleout = ] runinscaleout ]
[ , [ @useanyworker = ] useanyworker ]
, [ @execution_id = ] execution_id OUTPUT

Arguments
[@folder_name =] nom_dossier
Nom du dossier qui contient le package qui sera exécuté. folder_name est de type
nvarchar(128) .

[@project_name =] project_name
Nom du projet qui contient le package à exécuter. project_name est de type
nvarchar(128) .

[@package_name =] package_name
Nom du package qui sera exécuté. package_name est de type nvarchar(260).

[@reference_id =] reference_id
Identificateur unique d'une référence environnementale. Ce paramètre est facultatif.
reference_id est de type bigint.
[@use32bitruntime =] use32bitruntime
Indique si l'exécution 32 bits doit être utilisée pour exécuter le package sur un système
d'exploitation 64 bits. Utilisez la valeur 1 pour exécuter le package avec l’exécution 32
bits quand un système d’exploitation 64 bits est exécuté. Utilisez la valeur 0 pour
exécuter le package avec l'exécution 64 bits lorsqu'un système d'exploitation 64 bits est
exécuté. Ce paramètre est facultatif. Use32bitruntime est de type bit.

[@runinscaleout =] runinscaleout
Indique si l’exécution a lieu dans Scale Out. Utilisez la valeur 1 pour exécuter le package
dans Scale Out. Utilisez la valeur 0 pour exécuter le package sans Scale Out. Ce
paramètre est facultatif. S’il n’est pas spécifié, sa valeur est définie sur
DEFAULT_EXECUTION_MODE dans [SSISDB].[catalog].[catalog_properties]. runinscaleout
est de type bit.

[@useanyworker =] useanyworker
Indique si un Scale Out Worker est autorisé à effectuer l’exécution.

Utilisez la valeur 1 pour exécuter le package avec n’importe quel Scale Out Worker.
Quand vous définissez @useanyworker sur true, tout Worker dont le nombre
maximal de tâches (tel que spécifié dans son fichier de configuration) n’est pas
encore atteint est disponible pour exécuter le package. Pour plus d’informations
sur le fichier de configuration du worker, consultez Integration Services (SSIS) Scale
Out Worker.

Utilisez la valeur 0 pour indiquer que tous les Scale Out Workers ne sont pas
autorisés à exécuter le package. Quand vous définissez @useanyworker sur false,
vous devez spécifier les Workers qui sont autorisés à exécuter le package à l’aide
de Scale Out Manager ou en appelant la procédure stockée [catalog].
[add_execution_worker] . Si vous spécifiez un worker qui exécute déjà un autre

package, le worker termine l’exécution du package en cours avant de demander


une autre exécution.

Ce paramètre est facultatif. S’il n’est pas spécifié, sa valeur est définie sur 1.
useanyworker est de type bit.

[@execution_id =] execution_id
Retourne l'identificateur unique d'une instance d'exécution. execution_id est de type
bigint.

Remarques
Une exécution est utilisée pour spécifier les valeurs de paramètre qui sont utilisées par
un package pendant une instance d'exécution unique du package.

Si une référence environnementale est spécifiée avec le paramètre reference_id, la


procédure stockée remplit les paramètres du package et du projet avec les valeurs
littérales ou les valeurs référencées des variables d’environnement correspondantes. Si
la référence environnementale est spécifiée, les valeurs de paramètre par défaut sont
utilisées pendant l'exécution du package. Pour déterminer exactement quelles valeurs
sont utilisées pour une instance particulière d’exécution, utilisez la valeur du paramètre
de sortie execution_id de cette procédure stockée et interrogez la vue
execution_parameter_values.

Seuls les packages marqués comme packages de point d'entrée peuvent être spécifiés
dans une exécution. Si un package qui n'est pas un point d'entrée est spécifié,
l'exécution échoue.

Exemple
L’exemple suivant appelle catalog.create_execution pour créer une instance d’exécution
pour le package Child1.dtsx, qui n’est pas dans Scale Out. Project1 Integration Services
contient le package. L'exemple appelle catalog.set_execution_parameter_value afin de
définir des valeurs pour les paramètres Parameter1, Parameter2 et LOGGING_LEVEL.
L'exemple appelle catalog.start_execution pour démarrer une instance d'exécution.

SQL

Declare @execution_id bigint


EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Child1.dtsx',
@execution_id=@execution_id OUTPUT, @folder_name=N'TestDeply4',
@project_name=N'Integration Services Project1', @use32bitruntime=False,
@reference_id=Null
Select @execution_id
DECLARE @var0 sql_variant = N'Child1.dtsx'
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,
@object_type=20, @parameter_name=N'Parameter1', @parameter_value=@var0
DECLARE @var1 sql_variant = N'Child2.dtsx'
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,
@object_type=20, @parameter_name=N'Parameter2', @parameter_value=@var1
DECLARE @var2 smallint = 1
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,
@object_type=50, @parameter_name=N'LOGGING_LEVEL', @parameter_value=@var2
EXEC [SSISDB].[catalog].[start_execution] @execution_id
GO
Valeur du code de retour
0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et EXECUTE sur le projet et, si applicable, autorisations READ


sur les environnements référencés

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Si @runinscaleout a pour valeur 1, cette procédure stockée requiert l’une des


autorisations suivantes :

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle de base de données ssis_cluster_executor

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

Le package n’existe pas.

L’utilisateur n’a pas les autorisations appropriées.

La référence environnementale, reference_id, n’est pas valide.

Le package spécifié n'est pas un package de point d'entrée.

Le type de données de la variable d'environnement référencée est différent du


type de données du paramètre du projet ou du package.
Le projet ou le package contient des paramètres qui requièrent des valeurs, mais
aucune valeur n'a été affectée.

Les variables d’environnement référencées ne peuvent pas être trouvées dans


l’environnement spécifié par la référence environnementale, reference_id.

Voir aussi
catalog.start_execution (base de données SSISDB)
catalog.set_execution_parameter_value (base de données SSISDB)
catalog.add_execution_worker (base de données SSISDB)
catalog.create_execution_dump
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Provoque la suspension d'un package en cours d'exécution et la création d'un fichier de


vidage par ce dernier. Le fichier est stocké dans le dossier <lecteur>:\Program
Files\Microsoft SQL Server\130\Shared\ErrorDumps.

Syntaxe
SQL

catalog.create_execution_dump [ @execution_id = ] execution_id

Arguments
[ @execution_id = ] execution_id
ID d'exécution du package en cours d'exécution. execution_id est de type bigint.

Exemple
Dans l'exemple suivant, le package en cours d'exécution dont l'ID d'exécution est 88 est
invité à créer un fichier de vidage.

SQL

EXEC create_execution_dump @execution_id = 88

Codes de retour
0 (succès)

Lorsque la procédure stockée échoue, elle génère une erreur.


Jeu de résultats
None

Autorisations
Cette procédure stockée requiert que les utilisateurs soient membres du rôle de base de
données ssis_admin.

Erreurs et avertissements
La liste suivante décrit les conditions provoquant l'échec de la procédure stockée.

L'ID d'exécution spécifié n'est pas valide.

Le package a déjà été exécuté.

Le package crée actuellement un fichier de vidage.

Voir aussi
Générer de fichiers de vidage pour l’exécution des packages
catalog.create_folder (base de données
SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Crée un dossier dans le catalogue Integration Services.

Syntaxe
SQL

catalog.create_folder [ @folder_name = ] folder_name, [ @folder_id = ]


folder_id OUTPUT

Arguments
[@folder_name =] nom_dossier
Nom du nouveau dossier. folder_name est de type nvarchar(128) .

[@folder_name =] folder_id
Identificateur (ID) unique du dossier. folder_id est de type bigint.

Valeur du code de retour


L'identificateur du dossier est retourné.

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Appartenance au rôle de base de données ssis_admin


Appartenance au rôle serveur sysadmin

Erreurs et avertissements
Si un dossier avec le même nom existe déjà, la procédure stockée retourne une erreur.
catalog.delete_customized_logging_leve
l
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Supprime un niveau de journalisation personnalisée existant. Pour plus d’informations


sur les niveaux de journalisation personnalisée, consultez Journalisation Integration
Services (SSIS).

Syntaxe
SQL

catalog.delete_customized_logging_level [ @level_name = ] level_name

Arguments
[ @level_name = ] level_name
Nom du niveau de journalisation personnalisée existant à supprimer.

level_name est de type nvarchar(128).

Notes

Codes de retour
0 (succès)

Lorsque la procédure stockée échoue, elle génère une erreur.

Jeu de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

L’appartenance au rôle de base de données ssis_admin

L’appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit les conditions provoquant l'échec de la procédure stockée.

L’utilisateur ne dispose pas des autorisations requises.


catalog.delete_environment (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Supprime un environnement d'un dossier dans le catalogue Integration Services.

Syntaxe
SQL

catalog.delete_environment [ @folder_name = ] folder_name , [


@environment_name = ] environment_name

Arguments
[ @folder_name = ] folder_name
Nom du dossier qui contient l'environnement. folder_name est de type nvarchar(128) .

[ @environment_name = ] environment_name
Nom de l’environnement qui sera supprimé. environment_name est de type
nvarchar(128) .

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :
Autorisations READ et MODIFY sur l'environnement

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

L'environnement spécifié n'existe pas.

L’utilisateur n’a pas les autorisations appropriées


catalog.delete_environment_reference
(base de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Supprime une référence environnementale d'un projet dans le catalogue Integration


Services.

Syntaxe
SQL

catalog.delete_environment_reference [ @reference_id = ] reference_id

Arguments
[ @reference_id = ] reference_id
Identificateur unique de la référence environnementale. reference_id est de type bigint.

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisation MODIFY sur le projet

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin


Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

L'identificateur de référence environnementale n'est pas valide

L’utilisateur n’a pas les autorisations appropriées


catalog.delete_environment_variable
(base de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Supprime une variable d'environnement d'un environnement dans le catalogue


Integration Services.

Syntaxe
SQL

catalog.delete_environment_variable [ @folder_name = ] folder_name


, [ @environment_name = ] environment_name
, [ @variable_name = ] variable_name

Arguments
[ @folder_name = ] folder_name
Nom du dossier qui contient l'environnement. folder_name est de type nvarchar(128) .

[ @environment_name = ] environment_name
Nom de l'environnement qui contient la variable. environment_name est de type
nvarchar(128) .

[ @variable_name = ] variable_name
Nom de la variable qui sera supprimée. variable_name est de type nvarchar(128).

Valeur du code de retour


0 (succès)

Jeux de résultats
None
Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur l'environnement

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

Le nom de l'environnement n'est pas valide.

La variable d'environnement n'existe pas


catalog.delete_folder (base de données
SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Supprime un dossier du catalogue Integration Services.

Syntaxe
SQL

catalog.delete_folder [ @folder_name = ] folder_name

Arguments
[ @folder_name = ] folder_name
Nom du dossier qui sera supprimé. folder_name est de type nvarchar(128) .

Valeur du code de retour


Aucun

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
Retourne un message pour confirmer la suppression du dossier.
catalog.delete_project (base de données
SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Supprime un projet existant d'un dossier dans le catalogue Integration Services.

Syntaxe
SQL

catalog.delete_project [ @folder_name = ] folder_name , [ @project_name = ]


project_name

Arguments
[ @folder_name = ] folder_name
Nom du dossier qui contient le projet. folder_name est de type nvarchar(128).

[ @project_name = ] project_name
Nom du projet à supprimer. project_name est de type nvarchar(128).

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur le projet


Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur de
procédure stockée delete_project :

Le projet n'existe pas

Le dossier n'existe pas

L’utilisateur n’a pas les autorisations appropriées

Notes
Tous les objets et les références environnementales du projet correspondant sont
supprimés avec le projet. Toutefois, les versions du projet et les archives d'exploitation
pertinentes sont conservées jusqu'à la prochaine exécution du travail de nettoyage de
l'opération.
catalog.deny_permission (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Refuse une autorisation sur un objet sécurisable dans le catalogue Integration Services.

Syntaxe
SQL

catalog.deny_permission [ @object_type = ] object_type


, [ @object_id = ] object_id
, [ @principal_id = ] principal_id
, [ @permission_type = ] permission_type

Arguments
[ @object_type = ] object_type
Type d'objet sécurisable. Les types d’objets sécurisables incluent le dossier ( 1 ), le projet
( 2 ), l’environnement ( 3 ) et l’opération ( 4 ). object_type est de type smallint.

[ @object_id = ] object_id
Identificateur unique (ID) ou clé primaire de l'objet sécurisable. object_id est de type
bigint.

[ @principal_id = ] principal_id
ID du principal qui sera refusé. principal_id est de type int.

[ @permission_type = ] permission_type
Type d'autorisation qui sera refusée. permission_type est de type smallint.

Codet de retour
0 (succès)

1 (object_class n’est pas valide)


2 (object_id n’existe pas)

3 (le principal n’existe pas)

4 (l’autorisation n’est pas valide)

5 (autre erreur)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisation MANAGE_PERMISSIONS sur l'objet

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Notes
Cette procédure stockée vous permet de refuser les types d'autorisation décrits dans le
tableau suivant :

Valeur Nom de l'autorisation Description de Types d'objet


permission_type l'autorisation applicables

1 READ Permet au principal de Dossier, projet,


lire des informations environnement,
considérées comme opération
faisant partie de l'objet,
telles que les propriétés.
Il n'autorise pas le
principal à énumérer ou
à lire le contenu
d'autres objets
contenus dans l'objet.
Valeur Nom de l'autorisation Description de Types d'objet
permission_type l'autorisation applicables

2 MODIFY Permet au principal de Dossier, projet,


modifier des environnement,
informations opération
considérées comme
faisant partie de l'objet,
telles que les propriétés.
Il ne permet pas au
principal de modifier
d'autres objets
contenus dans l'objet.

3 Exécutez Permet au principal Project


d'exécuter tous les
packages dans le projet.

4 MANAGE_PERMISSIONS Permet au principal Dossier, projet,


d'affecter des environnement,
autorisations aux objets. opération

100 CREATE_OBJECTS Permet au principal de Dossier


créer des objets dans le
dossier.

101 READ_OBJECTS Permet au principal de Dossier


lire tous les objets dans
le dossier.

102 MODIFY_OBJECTS Permet au principal de Dossier


modifier tous les objets
dans le dossier.

103 EXECUTE_OBJECTS Permet au principal Dossier


d'exécuter tous les
packages de tous les
projets dans le dossier.

104 MANAGE_OBJECT_PERMISSIONS Permet au principal de Dossier


gérer des autorisations
sur tous les objets dans
le dossier.

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :
Si permission_type est spécifié, la procédure refuse l’autorisation affectée
explicitement au principal pour l’objet. Même s'il n'y a pas de telles instances, la
procédure retourne toujours une valeur de code de réussite ( 0 ).

Si permission_type est omis, la procédure refuse toutes les autorisations pour le


principal spécifié à l’objet spécifié.
catalog.deploy_packages
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Déploie un ou plusieurs packages dans un dossier du catalogue Integration Services ou


met à jour un package existant qui a été déployé.

Syntaxe
SQL

catalog.deploy_packages [ @folder_name = ] folder_name


, [ @project_name = ] project_name
, [ @packages_table = ] packages_table
[, [ @operation_id OUTPUT = ] operation_id OUTPUT]

Arguments
[ @folder_name = ] folder_name
Nom du dossier. folder_name est de type nvarchar(128) .

[ @project_name = ] project_name
Nom du projet dans le dossier. project_name est de type nvarchar(128) .

[ @packages_table = ] packages_table
Contenu binaire du (des) fichier(s) de package (.dtsx) Integration Services.
packages_table est de type [catalog].[Package_Table_Type]

[ @operation_id = ] operation_id
Retourne l'identificateur unique de l'opération de déploiement. operation_id est de type
bigint.

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations CREATE_OBJECTS sur le projet ou autorisations MODIFY sur le


package pour mettre à jour un package.

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur de cette
procédure stockée :

Un paramètre fait référence à un objet qui n’existe pas, un paramètre essaie de


créer un objet qui existe déjà, ou un paramètre n’est pas valide d’une autre
manière.

L'utilisateur n'a pas des autorisations suffisantes.


catalog.deploy_project (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Déploie un projet dans un dossier dans le catalogue Integration Services ou met à jour
un projet existant qui a été déployé précédemment.

Syntaxe
SQL

catalog.deploy_project [@folder_name =] folder_name


, [ @project_name = ] project_name
, [ @project_stream = ] projectstream
[ , [ @operation_id = ] operation_id OUTPUT ]

Arguments
[ @folder_name = ] folder_name
Nom du dossier où le projet est déployé. folder_name est de type nvarchar(128) .

[@project_name =] project_name
Nom du nouveau projet ou du projet mis à jour dans le dossier. project_name est de
type nvarchar(128) .

[@projectstream =] projectstream
Contenu binaire du fichier de déploiement d'un projet Integration Services (extension
.ispac).

Vous pouvez utiliser une instruction SELECT avec la fonction OPENROWSET et le


fournisseur d'ensembles de lignes BULK pour récupérer le contenu binaire du fichier.
Pour obtenir un exemple, consultez Déployer des projets et des packages Integration
Services (SSIS). Pour plus d’informations sur la clause OPENROWSET, consultez
OPENROWSET (Transact-SQL).

projectstream est de type varbinary(MAX)


[@operation_id =] operation_id
Retourne l'identificateur unique de l'opération de déploiement. operation_id est de type
bigint.

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations CREATE_OBJECTS sur le dossier pour déployer un nouveau projet ou


des autorisations MODIFY sur le projet pour mettre à jour un projet

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur de cette
procédure stockée :

Un paramètre fait référence à un objet qui n'existe pas, un paramètre essaie de


créer un objet qui existe déjà, ou un paramètre n'est pas valide d'une autre
manière

La valeur du paramètre @project_name ne correspond pas au nom du projet dans


le fichier de déploiement

L'utilisateur n'a pas des autorisations suffisantes.

Notes
Pendant un déploiement ou une mise à jour de projet, la procédure stockée ne vérifie
pas le niveau de protection des packages individuels dans le projet.
catalog.disable_worker_agent (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Désactive un Scale Out Worker pour Scale Out Master utilisant ce catalogue Integration
Services.

Syntaxe
SQL

catalog.disable_worker_agent [ @WorkerAgentId = ] WorkerAgentId

Arguments
[@WorkerAgentId =] WorkerAgentId ID d’agent de Worker de Scale Out Worker.
WorkerAgentId est de type uniqueidentifier.

Exemple
Cet exemple désactive Scale Out Worker sur MachineA.

SQL

SELECT WorkerAgentId, MachineName FROM [catalog].[worker_agents]


GO
-- Result: --
-- WorkerAgentId MachineName --
-- 6583054A-E915-4C2A-80E4-C765E79EF61D MachineA --

EXEC [catalog].[disable_worker_agent] '6583054A-E915-4C2A-80E4-C765E79EF61D'


GO

Valeur du code de retour


0 (succès)
Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
Si l’ID d’agent de Worker n’est pas valide, la procédure stockée retourne une erreur.
catalog.enable_worker_agent (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Active un Scale Out Worker pour Scale Out Master utilisant ce catalogue Integration
Services.

Syntaxe
SQL

catalog.enable_worker_agent [ @WorkerAgentId = ] WorkerAgentId

Arguments
[@WorkerAgentId =] WorkerAgentId ID d’agent de Worker de Scale Out Worker.
WorkerAgentId est de type uniqueidentifier.

Exemple
Cet exemple active Scale Out Worker sur MachineA.

SQL

SELECT WorkerAgentId, MachineName FROM [catalog].[worker_agents]


GO
-- Result: --
-- WorkerAgentId MachineName --
-- 6583054A-E915-4C2A-80E4-C765E79EF61D MachineA --

EXEC [catalog].[enable_worker_agent] '6583054A-E915-4C2A-80E4-C765E79EF61D'


GO

Valeur du code de retour


0 (succès)
Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
Si l’ID d’agent de Worker n’est pas valide, la procédure stockée retourne une erreur.
catalog.get_parameter_values (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Résout et extrait les valeurs de paramètre par défaut d'un projet et les packages
correspondants dans le catalogue Integration Services.

Syntaxe
SQL

catalog.get_parameter_values [ @folder_name = ] folder_name


, [ @project_name = ] project_name
, [ @package_name = ] package_name
[ , [ @reference_id = ] reference_id ]

Arguments
[ @folder_name = ] folder_name
Nom du dossier qui contient le projet. folder_name est de type nvarchar(128) .

[ @project_name = ] project_name
Nom du projet où les paramètres résident. project_name est de type nvarchar(128) .

[ @package_name = ] package_name
Nom du package. Spécifiez le nom du package pour extraire tous les paramètres du
projet et les paramètres d'un package spécifique. package_name est de type
nvarchar(260).

[ @reference_id = ] reference_id
Identificateur unique d’une référence environnementale. Ce paramètre est facultatif.
reference_id est de type bigint.

Valeur du code de retour


0 (succès)

Jeux de résultats
Retourne une table qui a le format suivant :

Nom de la colonne Type de Description


données

object_type smallint Type de paramètre. La valeur est 20 pour un paramètre


du projet et 30 pour un paramètre du package.

parameter_data_type nvarchar(128) Type de données du paramètre.

parameter_name sysname Le nom du paramètre.

parameter_value sql_variant Valeur du paramètre.

sensible bit Lorsque la valeur est 1 , la valeur de paramètre est


sensible. Lorsque la valeur est 0 , la valeur de paramètre
n'est pas sensible.

obligatoire bit Lorsque la valeur est 1 , la valeur de paramètre est


obligatoire pour démarrer l'exécution. Lorsque la valeur
est 0 , la valeur de paramètre n'est pas obligatoire pour
démarrer l'exécution.

value_set bit Lorsque la valeur est 1 , la valeur de paramètre a été


affectée. Lorsque la valeur est 0 , la valeur de paramètre
n'a pas été affectée.

7 Notes

Les valeurs littérales sont affichées en texte en clair. NULL est affiché au lieu des
valeurs sensibles.

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ sur le projet et, si applicable, autorisations READ sur les
environnements référencés

Appartenance au rôle de base de données ssis_admin


Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

Le package est introuvable dans le dossier ou le projet spécifié

L’utilisateur n’a pas les autorisations appropriées

La référence environnementale spécifiée n'existe pas


catalog.get_project (base de données
SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Récupère le flux binaire d'un projet déployé sur le serveur Integration Services.

Syntaxe
SQL

catalog.get_project [ @folder_name = ] folder_name , [ @project_name = ]


project_name

Arguments
[ @folder_name = ] folder_name
Nom du dossier qui contient le projet. folder_name est de type nvarchar(128).

[ @project_name = ] project_name
Nom du projet. project_name est de type nvarchar(128).

Valeur du code de retour


0 (succès)

Jeux de résultats
Le flux binaire du projet est retourné sous forme de varbinary(MAX). Aucun résultat
n'est retourné si le dossier ou le projet est introuvable.

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :
Autorisations READ sur le projet

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur de
procédure stockée get_project :

Le projet n'existe pas

Le dossier n'existe pas

L’utilisateur n’a pas les autorisations appropriées


catalog.grant_permission (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Accorde une autorisation sur un objet sécurisable dans le catalogue Integration Services.

Syntaxe
SQL

catalog.grant_permission [ @object_type = ] object_type


, [ @object_id = ] object_id
, [ @principal_id = ] principal_id
, [ @permission_type = ] permission_type

Arguments
[ @object_type = ] object_type
Type d'objet sécurisable. Les types d’objets sécurisables incluent le dossier ( 1 ), le projet
( 2 ), l’environnement ( 3 ) et l’opération ( 4 ). object_type est de type smallint.

[ @object_id = ] object_id
Identificateur unique (ID) de l'objet sécurisable. object_id est de type bigint.

[ @principal_id = ] principal_id
ID du principal auquel accorder l'autorisation. principal_id est de type int.

[ @permission_type = ] permission_type
Type d'autorisation à accorder. permission_type est de type smallint.

Codet de retour
0 (succès)

1 (object_class n’est pas valide)

2 (object_id n’existe pas)


3 (le principal n’existe pas)

4 (l’autorisation n’est pas valide)

5 (autre erreur)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations ASSIGN_PERMISSIONS sur l'objet

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Cette procédure ne peut pas être appelée par des connexions authentifiées par SQL
Server. Elle ne peut pas être appelée par la connexion sa.

Notes
Cette procédure stockée vous permet d'accorder les types d'autorisation décrits dans le
tableau suivant :

Valeur Nom de l'autorisation Description de Types d'objet


permission_type l'autorisation applicables

1 READ Permet au principal de Dossier, projet,


lire des informations environnement,
considérées comme opération
faisant partie de l'objet,
telles que les propriétés.
Il n'autorise pas le
principal à énumérer ou
à lire le contenu
d'autres objets
contenus dans l'objet.
Valeur Nom de l'autorisation Description de Types d'objet
permission_type l'autorisation applicables

2 MODIFY Permet au principal de Dossier, projet,


modifier des environnement,
informations opération
considérées comme
faisant partie de l'objet,
telles que les propriétés.
Il ne permet pas au
principal de modifier
d'autres objets
contenus dans l'objet.

3 Exécutez Permet au principal Project


d'exécuter tous les
packages dans le projet.

4 MANAGE_PERMISSIONS Permet au principal Dossier, projet,


d'affecter des environnement,
autorisations aux objets. opération

100 CREATE_OBJECTS Permet au principal de Dossier


créer des objets dans le
dossier.

101 READ_OBJECTS Permet au principal de Dossier


lire tous les objets dans
le dossier.

102 MODIFY_OBJECTS Permet au principal de Dossier


modifier tous les objets
dans le dossier.

103 EXECUTE_OBJECTS Permet au principal Dossier


d'exécuter tous les
packages de tous les
projets dans le dossier.

104 MANAGE_OBJECT_PERMISSIONS Permet au principal de Dossier


gérer des autorisations
sur tous les objets dans
le dossier.

Erreurs et avertissements
Consultez la section qui traite des valeurs de code de retour pour les erreurs et les
messages pertinents.
catalog.move_environment (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Déplace un environnement d'un dossier vers un autre dans le catalogue Integration


Services.

Syntaxe
SQL

catalog.move_environment [ @source_folder = ] source_folder


, [ @environment_name = ] environment_name
, [ @destination_folder = ] destination_folder

Arguments
[ @source_folder = ] source_folder
Nom du dossier source, où l'environnement réside avant le déplacement. source_folder
est de type nvarchar(128).

[ @environment_name = ] environment_name
Nom de l'environnement qui sera supprimé. environment_name est de type
nvarchar(128) .

[ @destination_folder = ] destination_folder
Nom du dossier de destination, où l'environnement réside après le déplacement.
destination_folder est de type nvarchar(128).

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur l'environnement

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

L'environnement n'existe pas dans le dossier source

Le dossier de destination a déjà un environnement avec le même nom

L’utilisateur n’a pas les autorisations appropriées

Notes
Les références environnementales des projets ne suivent pas l'environnement pendant
le déplacement. Les références environnementales doivent être mises à jour en
conséquence. Cette procédure stockée réussira même si les références
environnementales sont arrêtées en déplaçant un environnement. Les références
environnementales doivent être mises à jour après que cette procédure stockée s'est
achevée.

7 Notes

Un projet peut avoir des références environnementales relatives ou absolues. Les


références relatives font référence à l'environnement par nom et requièrent que
l'environnement réside dans le même dossier que le projet. Les références absolues
font référence à l'environnement par nom et dossier, et aux environnements qui
résident dans un dossier différent de celui du projet.
catalog.move_project - base de données
SSISDB
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Déplace un projet d'un dossier vers un autre dans le catalogue Integration Services.

Syntaxe
SQL

catalog.move_project [ @source_folder = ] source_folder


, [ @project_name = ] project_name
, [ @destination_folder = ] destination_folder

Arguments
[ @source_folder = ] source_folder
Nom du dossier source, où le projet réside avant le déplacement. source_folder est de
type nvarchar(128).

[ @project_name = ] project_name
Nom du projet qui sera supprimé. project_name est de type nvarchar(128) .

[ @destination_folder = ] destination_folder
Nom du dossier de destination, où le projet réside après le déplacement.
destination_folder est de type nvarchar(128).

Valeur du code de retour


0 (succès)

Jeux de résultats
None
Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur le projet que vous souhaitez déplacer et


autorisation CREATE_OBJECTS sur le dossier de destination

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur de cette
procédure stockée :

Le projet n'existe pas

Le dossier source n'existe pas

Le dossier de destination n'existe pas ou le dossier de destination contient déjà un


projet avec le même nom

L’utilisateur n’a pas les autorisations appropriées

Notes
Lorsqu'un projet est déplacé d'un dossier source vers un dossier de destination, le projet
dans le dossier source et les références environnementales correspondantes sont
supprimés. Dans le dossier de destination, un projet et des références
environnementales identiques sont créés. Les références environnementales relatives
seront résolues dans un dossier différent après le déplacement. Les références absolues
seront résolues dans le même dossier après le déplacement.

7 Notes

Un projet peut avoir des références environnementales relatives ou absolues. Les


références relatives font référence à l'environnement par nom et requièrent que
l'environnement réside dans le même dossier que le projet. Les références absolues
font référence à l'environnement par nom et dossier, et aux environnements qui
résident dans un dossier différent de celui du projet.
catalog.remove_data_tap
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Supprime un drainage de données d'une sortie de composant dans une exécution.


L'identificateur unique du drainage de données est associé à une instance d'exécution.

Syntaxe
SQL

catalog.remove_data_tap [ @data_tap_id = ] data_tap_id

Arguments
[ @data_tap_id = ] data_tap_id
Identificateur unique du drainage de données créé à l'aide de la procédure stockée
catalog.add_data_tap. data_tap_id est de type bigint.

Notes
Lorsqu'un package contient plusieurs tâches de flux de données du même nom, le
drainage de données est ajouté à la première tâche de flux de données avec le
nom donné.

Pour supprimer des collectes de données, l’instance d’exécution doit avoir l’état
Créé (valeur 1 dans la colonne état de la vue catalog.operations (SSISDB
Database)).

Codes de retour
0 (succès)

Lorsque la procédure stockée échoue, elle génère une erreur.

Jeu de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations MODIFY sur l'instance d'exécution

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit les conditions provoquant l'échec de la procédure stockée.

L'utilisateur ne dispose pas des autorisations MODIFY.

Voir aussi
catalog.add_data_tap
catalog.add_data_tap_by_guid
catalog.rename_customized_logging_lev
el
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Renomme un niveau de journalisation personnalisée existant. Pour plus d’informations


sur les niveaux de journalisation personnalisée, consultez Journalisation Integration
Services (SSIS).

Syntaxe
SQL

catalog.rename_customized_logging_level [ @old_name = ] old_name


, [ @new_name = ] new_name

Arguments
[ @old_name = ] old_name
Nom du niveau de journalisation personnalisée existant à renommer.

old_name est de type nvarchar(128).

[ @new_name = ] new_name
Nouveau nom du niveau de journalisation personnalisée spécifié.

new_name est de type nvarchar(128).

Notes

Codes de retour
0 (succès)

Lorsque la procédure stockée échoue, elle génère une erreur.

Jeu de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

L’appartenance au rôle de base de données ssis_admin

L’appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit les conditions provoquant l'échec de la procédure stockée.

L’utilisateur ne dispose pas des autorisations requises.


catalog.rename_environment (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Renomme un environnement dans le catalogue Integration Services.

Syntaxe
SQL

catalog.rename_environment [ @folder_name = ] folder_name


, [ @environment_name = ] environment_name
, [ @new_environment_name= ] new_environment_name

Arguments
[ @folder_name = ] folder_name
Nom du dossier qui contient l'environnement. folder_name est de type nvarchar(128) .

[ @environment_name = ] environment_name
Nom d'origine de l'environnement. environment_name est de type nvarchar(128) .

[ @new_environment_name = ] new_environment_name
Nouveau nom de l'environnement. new_environment_name est de type nvarchar(128).

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations MODIFY sur l'environnement

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

Le nom d'environnement d'origine n'est pas valide

Le nouveau nom a déjà été utilisé dans un environnement existant

Notes
Les références environnementales des projets ne sont pas mises à jour
automatiquement lorsque vous renommez l'environnement. Les références
environnementales doivent être mises à jour en conséquence. Cette procédure stockée
réussira même si les références environnementales sont arrêtées en modifiant le nom
d'un environnement. Les références environnementales doivent être mises à jour après
que cette procédure stockée s'est achevée.

7 Notes

Lorsqu'une référence environnementale n'est pas valide, la validation et l'exécution


des packages correspondants qui utilisent ces références échoueront.
catalog.rename_folder (base de données
SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Renomme un dossier dans le catalogue Integration Services.

Syntaxe
SQL

catalog.rename_folder [ @old_name = ] old_name , [ @new_name = ] new_name

Arguments
[ @old_name = ] old_name
Nom d'origine du dossier. old_name est de type nvarchar(128).

[ @new_name = ] new_name
Nouveau nom du dossier. new_name est de type nvarchar(128).

Valeur du code de retour


Aucun

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin


Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

Le nom du dossier d'origine n'est pas valide

Le nouveau nom a déjà été utilisé dans un dossier existant


catalog.restore_project (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Restaure un projet dans le catalogue Integration Services dans une version précédente.

Syntaxe
SQL

catalog.restore_project [ @folder_name = ] folder_name


, [ @project_name = ] project _name
, [ @object_version_lsn = ] object_version_lsn

Arguments
[ @folder_name = ] folder_name
Nom du dossier qui contient le projet. folder_name est de type nvarchar(128) .

[ @project _name = ] project_name


Nom du projet. project_name est de type nvarchar(128) .

[ @object_version_lsn = ] object_version_lsn
Version du projet. object_version_lsn est de type bigint.

Valeur du code de retour


0 (succès)

Jeux de résultats
Les détails du projet sont retournés sous forme de varbinary(MAX) dans le cadre du jeu
de résultats si le project_name est trouvé.
NO RESULT SET est retourné si le projet ne peut pas être restauré dans le dossier
spécifié.

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur le projet

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

La version du projet n'existe pas ou ne correspond pas au nom du projet

Le projet n'existe pas

L’utilisateur n’a pas les autorisations appropriées

Notes
Lorsqu'un projet est restauré, tous les paramètres reçoivent les valeurs par défaut et
toutes les références environnementales restent inchangées. Le nombre maximal de
versions du projet conservées dans le catalogue est déterminé par le propriété de
catalogue MAX_VERSIONS_PER_PROJECT, comme indiqué dans la vue
catalog_property.

2 Avertissement

Les références environnementales peuvent ne plus être valides une fois qu'un
projet a été restauré.
catalog.revoke_permission (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Révoque une autorisation sur un objet sécurisable dans le catalogue Integration


Services.

Syntaxe
SQL

catalog.revoke_permission [ @object_type = ] object_type


, [ @object_id = ] object_id
, [ @principal_id = ] principal_id
, [ @permission_type = ] permission_type

Arguments
[ @object_type = ] object_type
Type d'objet sécurisable. Les types d’objets sécurisables incluent le dossier ( 1 ), le projet
( 2 ), l’environnement ( 3 ) et l’opération ( 4 ). object_type est de type smallint.

[ @object_id = ] object_id
Identificateur unique (ID) de l’objet sécurisable. object_id est de type bigint.

[ @principal_id = ] principal_id
ID du principal auquel révoquer l'autorisation. principal_id est de type int.

[ @permission_type = ] permission_type
Type de l'autorisation. permission_type est de type smallint.

Codet de retour
0 (succès)

1 (object_class n’est pas valide)


2 (object_id n’existe pas)

3 (le principal n’existe pas)

4 (l’autorisation n’est pas valide)

5 (autre erreur)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations ASSIGN_PERMISSIONS sur l'objet

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Notes
Si permission_type est spécifié, la procédure stockée supprime l’autorisation affectée
explicitement au principal pour l’objet. Même s'il n'y a pas de telles instances, la
procédure retourne une valeur de code de réussite ( 0 ). Si permission_type est omis, la
procédure stockée supprime toutes les autorisations du principal à l’objet.

7 Notes

Le principal peut encore avoir l'autorisation spécifiée sur l'objet s'il est membre
d'un rôle qui a l'autorisation spécifiée.

Cette procédure stockée vous permet de révoquer les types d'autorisation décrits dans
le tableau suivant :

Valeur Nom de l'autorisation Description de Types d'objet


permission_type l'autorisation applicables
Valeur Nom de l'autorisation Description de Types d'objet
permission_type l'autorisation applicables

1 READ Permet au principal de Dossier, projet,


lire des informations environnement,
considérées comme opération
faisant partie de l'objet,
telles que les propriétés.
Il n'autorise pas le
principal à énumérer ou
à lire le contenu
d'autres objets
contenus dans l'objet.

2 MODIFY Permet au principal de Dossier, projet,


modifier des environnement,
informations opération
considérées comme
faisant partie de l'objet,
telles que les propriétés.
Il ne permet pas au
principal de modifier
d'autres objets
contenus dans l'objet.

3 Exécutez Permet au principal Project


d'exécuter tous les
packages dans le projet.

4 MANAGE_PERMISSIONS Permet au principal Dossier, projet,


d'affecter des environnement,
autorisations aux objets. opération

100 CREATE_OBJECTS Permet au principal de Dossier


créer des objets dans le
dossier.

101 READ_OBJECTS Permet au principal de Dossier


lire tous les objets dans
le dossier.

102 MODIFY_OBJECTS Permet au principal de Dossier


modifier tous les objets
dans le dossier.

103 EXECUTE_OBJECTS Permet au principal Dossier


d'exécuter tous les
packages de tous les
projets dans le dossier.
Valeur Nom de l'autorisation Description de Types d'objet
permission_type l'autorisation applicables

104 MANAGE_OBJECT_PERMISSIONS Permet au principal de Dossier


gérer des autorisations
sur tous les objets dans
le dossier.
catalog.set_customized_logging_level_d
escription
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Change la description d’un niveau de journalisation personnalisée existant. Pour plus


d’informations sur les niveaux de journalisation personnalisée, consultez Journalisation
Integration Services (SSIS).

Syntaxe
SQL

catalog.set_customized_logging_level_description [ @level_name = ]
level_name
, [ @level_description = ] level_description

Arguments
[ @level_name = ] level_name
Nom d’un niveau de journalisation personnalisée existant.

level_name est de type nvarchar(128).

[ @level_description = ] level_description
Nouvelle description du niveau de journalisation personnalisée spécifié.

level_description est de type nvarchar(1024).

Notes

Codes de retour
0 (succès)

Lorsque la procédure stockée échoue, elle génère une erreur.


Jeu de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

L’appartenance au rôle de base de données ssis_admin

L’appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit les conditions provoquant l'échec de la procédure stockée.

L’utilisateur ne dispose pas des autorisations requises.


catalog.set_customized_logging_level_va
lue
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Change les statistiques ou les événements journalisés par un niveau de journalisation


personnalisée existant. Pour plus d’informations sur les niveaux de journalisation
personnalisée, consultez Journalisation Integration Services (SSIS).

Syntaxe
SQL

catalog.set_customized_logging_level_value [ @level_name = ] level_name


, [ @property_name = ] property_name
, [ @property_value = ] property_value

Arguments
[ @level_name = ] level_name
Nom d’un niveau de journalisation personnalisée existant.

level_name est de type nvarchar(128).

[ @property_name = ] property_name
Nom de la propriété à changer. Les valeurs valides sont PROFILE et EVENTS.

property_name est de type nvarchar(128).

[ @property_value = ] property_value
Nouvelle valeur de la propriété spécifiée du niveau de journalisation personnalisée
spécifié.

Pour obtenir la liste des valeurs valides pour le profil et les événements, consultez
catalog.create_customized_logging_level.

property_value est de type bigint.

Notes
Codes de retour
0 (succès)

Lorsque la procédure stockée échoue, elle génère une erreur.

Jeu de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

L’appartenance au rôle de base de données ssis_admin

L’appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit les conditions provoquant l'échec de la procédure stockée.

L’utilisateur ne dispose pas des autorisations requises.


catalog.set_environment_property (base
de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Définit la propriété d'un environnement dans le catalogue Integration Services.

Syntaxe
SQL

catalog.set_environment_property [ @folder_name = ] folder_name


, [ @environment_name = ] environment_name
, [ @property_name = ] property_name
, [ @property_value = ] property_value

Arguments
[ @folder_name = ] folder_name
Nom du dossier qui contient l'environnement. folder_name est de type nvarchar(128) .

[ @environment_name = ] environment_name
Nom de l’environnement. environment_name est de type nvarchar(128) .

[ @property_name = ] property_name
Nom d'une propriété d'environnement. property_name est de type nvarchar(128).

[ @property_value = ] property_value
Valeur de la propriété d'environnement. property_value est de type nvarchar(1024).

Valeur du code de retour


0 (succès)

Jeux de résultats
None
Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur l'environnement

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

Le nom du dossier n'est pas valide.

Le nom de la propriété n'est pas valide.

Le nom de l'environnement n'est pas valide.

Remarques
Dans cette version finale, seule la propriété Description peut être définie. La valeur de
la propriété Description ne peut pas dépasser 4000 caractères.
catalog.set_environment_reference_type
(base de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Définit le type de référence et le nom de l'environnement associés à une référence


environnementale existante pour un projet dans le catalogue Integration Services.

Syntaxe
SQL

catalog.set_environment_reference_location [ @reference_id = reference_id


, [ @reference_type = ] reference_type
[ , [ @environment_folder_name = ] environment_folder_name ]

Arguments
[ @reference_id = ] reference_id
Identificateur unique de la référence environnementale qui sera mise à jour. reference_id
est de type bigint.

[ @reference_type = ] reference_type
Indique si l'environnement peut se trouver dans le même dossier que le projet
(référence relative) ou dans un dossier différent (référence absolue). Utilisez la valeur R
pour indiquer une référence relative. Utilisez la valeur A pour indiquer une référence
absolue. reference_type est de type char(1) .

[ @environment_folder_name = ] environment_folder_name
Dossier dans lequel l'environnement se trouve. Cette valeur est obligatoire pour les
références absolues. environment_folder_name est de type nvarchar(128) .

Valeur du code de retour


0 (succès)
Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur le projet, et autorisation READ sur


l'environnement

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

Le nom du dossier, le nom de l’environnement ou l’ID de référence n’est pas valide

L'utilisateur n'a pas les autorisations appropriées

Une référence absolue est spécifiée en utilisant le caractère A dans le paramètre


reference_location, mais le nom du dossier n’a pas été spécifié avec le paramètre
environment_folder_name.

Notes
Un projet peut avoir des références environnementales relatives ou absolues. Les
références relatives font référence à l'environnement par nom et requièrent qu'il réside
dans le même dossier que le projet. Les références absolues font référence à
l'environnement par nom et par dossier et peuvent faire référence aux environnements
qui résident dans un dossier différent que le projet. Un projet peut référencer plusieurs
environnements.

) Important

Si une référence relative est spécifiée, la valeur de paramètre


environment_folder_name n’est pas utilisée, et le nom du dossier d’environnement
est défini automatiquement sur NULL. Si une référence absolue est spécifiée, le
nom du dossier d’environnement doit être fourni dans le paramètre
environment_folder_name.
catalog.set_environment_variable_prope
rty (base de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Définit la propriété d'une variable d'environnement dans le catalogue Integration


Services.

Syntaxe
SQL

catalog.set_environment_variable_property [ @folder_name = ] folder_name


, [ @environment_name = ] environment_name
, [ @variable_name = ] variable_name
, [ @property_name = ] property_name
, [ @property_value = ] property_value

Arguments
[ @folder_name = ] folder_name
Nom du dossier qui contient l'environnement. folder_name est de type nvarchar(128) .

[ @environment_name = ] environment_name
Nom de l’environnement. environment_name est de type nvarchar(128) .

[ @variable_name = ] variable_name
Nom de la variable d’environnement. variable_name est de type nvarchar(128).

[ @property_name = ] property_name
Nom de la propriété de variable d'environnement. property_name est de type
nvarchar(128).

[ @property_value = ] property_value
Valeur de la propriété de variable d'environnement. property_value est de type
nvarchar(4000).
Valeur du code de retour
0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur l'environnement

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

Le nom du dossier n'est pas valide.

Le nom de l'environnement n'est pas valide.

Le nom de la variable d'environnement n'est pas valide

Le nom de la propriété de variable d'environnement n'est pas valide

L’utilisateur n’a pas les autorisations appropriées

Notes
Dans cette version finale, seule la propriété Description peut être définie. La valeur de
la propriété Description ne peut pas dépasser 4000 caractères.
catalog.set_environment_variable_prote
ction (base de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Définit le bit de critère de diffusion d'une variable d'environnement dans le catalogue


Integration Services.

Syntaxe
SQL

catalog.set_environment_variable_protection [ @folder_name = ] folder_name


, [ @environment_name = ] environment_name
, [ @variable_name = ] variable_name
, [ @sensitive = ] sensitive

Arguments
[ @folder_name = ] folder_name
Nom du dossier qui contient l'environnement. folder_name est de type nvarchar(128) .

[ @environment_name = ] environment_name
Nom de l’environnement. environment_name est de type nvarchar(128) .

[ @variable_name = ] variable_name
Nom de la variable d’environnement. variable_name est de type nvarchar(128).

[ @sensitive = ] sensitive
Indique si la variable contient une valeur sensible ou pas. Utilisez une valeur de 1 pour
indiquer que la valeur de la variable d'environnement est sensible ou une valeur de 0
pour indiquer qu'elle n'est pas sensible. Une valeur sensible est chiffrée lorsqu'elle est
stockée. Une valeur qui n'est pas sensible est stockée en texte en clair. Le paramètre
sensitive est de type bit.

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur l'environnement

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

Le nom du dossier n'est pas valide.

Le nom de l'environnement n'est pas valide.

Le nom de la variable d'environnement n'est pas valide

L’utilisateur n’a pas les autorisations appropriées


catalog.set_environment_variable_value
(base de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Définit la valeur d'une variable d'environnement dans le catalogue Integration Services.

Syntaxe
SQL

catalog.set_environment_variable_value [ @folder_name = ] folder_name


, [ @environment_name = ] environment_name
, [ @variable_name = ] variable _name
, [ @value = ] value

Arguments
[ @folder_name = ] folder_name
Nom du dossier qui contient l'environnement. folder_name est de type nvarchar(128) .

[ @environment_name = ] environment_name
Nom de l’environnement. environment_name est de type nvarchar(128) .

[ @variable _name = ] variable _name


Nom de la variable d’environnement. variable_name est de type nvarchar(128).

[ @value = ] value
Valeur de la variable d’environnement. value est de type sql_variant.

Valeur du code de retour


0 (succès)

Jeux de résultats
None
Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur l'environnement

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

Le nom du dossier n'est pas valide.

Le nom de l'environnement n'est pas valide.

Le nom de la variable d'environnement n'est pas valide

L'utilisateur n'a pas les autorisations appropriées.


catalog.set_execution_parameter_value
(base de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Définit la valeur d'un paramètre pour une instance d'exécution dans le catalogue
Integration Services .

Une valeur de paramètre ne peut pas être modifiée après qu'une instance d'exécution a
commencé.

Syntaxe
SQL

catalog.set_execution_parameter_value [ @execution_id = execution_id


, [ @object_type = ] object_type
, [ @parameter_name = ] parameter_name
, [ @parameter_value = ] parameter_value

Arguments
[ @execution_id = ] execution_id
Identificateur unique de l'instance d'exécution. execution_id est de type bigint.

[ @object_type = ] object_type
Type de paramètre.

Pour les paramètres suivants, affectez la valeur 50 à object_type

LOGGING_LEVEL

CUSTOMIZED_LOGGING_LEVEL

DUMP_ON_ERROR

DUMP_ON_EVENT

DUMP_EVENT_CODE
CALLER_INFO

SYNCHRONIZED

Utilisez la valeur 20 pour indiquer un paramètre du projet ou la valeur 30 pour indiquer


un paramètre du package.

object_type est de type smallint.

[ @parameter_name = ] parameter_name
Le nom du paramètre. parameter_name est de type nvarchar(128).

[ @parameter_value = ] parameter_value
Valeur du paramètre. parameter_value est de type sql_variant.

Notes
Pour découvrir les valeurs de paramètre utilisées pour une exécution donnée, interrogez
la vue catalog.execution_parameter_values.

Pour spécifier l’étendue des informations enregistrées durant une exécution de package,
attribuez au paramètre parameter_name la valeur LOGGING_LEVEL et au paramètre
parameter_value l’une des valeurs suivantes.

Définissez le paramètre object_type sur 50.

Valeur Description

0 None

La journalisation est désactivée. Seul l'état d'exécution du package est enregistré.

1 De base

Tous les événements sont enregistrés, sauf les événements personnalisés et de


diagnostic. Il s’agit de la valeur par défaut.

2 Performances

Seules les statistiques de performances, et les événements OnError et OnWarning, sont


enregistrés.
Valeur Description

3 Commentaires

Tous les événements sont enregistrés, y compris les événements personnalisés et de


diagnostic.
Les événements personnalisés sont notamment ces événements consignés par les tâches
Integration Services. Pour plus d’informations, consultez Messages personnalisés pour la
journalisation.

4 Lignage de l’exécution

Collecte les données nécessaires au suivi du lignage dans le flux de données.

100 Niveau de journalisation personnalisée

Spécifiez les valeurs du paramètre CUSTOMIZED_LOGGING_LEVEL. Pour plus


d’informations sur les valeurs que vous pouvez spécifier, consultez
catalog.create_customized_logging_level.

Pour plus d’informations sur les niveaux de journalisation personnalisée, consultez


Activer la journalisation des exécutions de package sur le serveur SSIS.

Pour spécifier que le serveur Integration Services doit générer des fichiers de vidage
quand une erreur se produit pendant une exécution de package, définissez les valeurs
de paramètre suivantes pour une instance d’exécution qui n’a pas été exécutée.

Paramètre Valeur

execution_id Identificateur unique de l'instance d'exécution

object_type 50

parameter_name 'DUMP_ON_ERROR

parameter_value 1

Pour spécifier que le serveur Integration Services doit générer des fichiers de vidage
quand des événements se produisent pendant une exécution de package, définissez les
valeurs de paramètre suivantes pour une instance d’exécution qui n’a pas été exécutée.

Paramètre Valeur

execution_id Identificateur unique de l'instance d'exécution

object_type 50

parameter_name 'DUMP_ON_EVENT
Paramètre Valeur

parameter_value 1

Pour spécifier les événements pendant une exécution de package qui provoquent la
génération de fichiers de vidage par le serveur Integration Services, définissez les valeurs
de paramètre suivantes pour une instance d’exécution qui n’a pas été exécutée. Séparez
plusieurs codes d'événement à l'aide d'un point-virgule.

Paramètre Valeur

execution_id Identificateur unique de l'instance d'exécution

object_type 50

parameter_name DUMP_EVENT_CODE

parameter_value Un ou plusieurs codes d'événement

Exemples

R. Générer des fichiers de vidage pour les erreurs


L'exemple suivant spécifie que le serveur Integration Services doit générer des fichiers
de vidage lorsqu'une erreur se produit pendant une exécution de package.

SQL

exec catalog.create_execution 'TR2','Recurring ETL',


'Dim_DCVendor.dtsx',NULL, 0,@execution_id out
exec catalog.set_execution_parameter_value @execution_id, 50,
'DUMP_ON_ERROR',1

B. Générer des fichiers de vidage pour les événements


L'exemple suivant spécifie que le serveur Integration Services doit générer des fichiers
de vidage lorsque des événements se produisent pendant une exécution de package, et
identifie l'événement qui provoque la génération des fichiers par le serveur.

SQL

exec catalog.create_execution 'TR2','Recurring ETL',


'Dim_DCVendor.dtsx',NULL, 0,@execution_id out
exec catalog.set_execution_parameter_value @execution_id, 50,
'DUMP_ON_EVENT',1

declare @event_code nvarchar(50)


set @event_code = '0xC020801C'
exec catalog.set_execution_parameter_value @execution_id, 50,
'DUMP_EVENT_CODE', @event_code

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur l'instance d'exécution

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

L’utilisateur n’a pas les autorisations appropriées

L'identificateur d'exécution n'est pas valide.

Le nom du paramètre n'est pas valide.

Le type de données de la valeur de paramètre ne correspond pas au type du


paramètre.

Voir aussi
catalog.execution_parameter_values (base de données SSISDB)
Générer de fichiers de vidage pour l’exécution des packages
catalog.set_execution_property_override
_value
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Définit la valeur d'une propriété pour une instance d'exécution dans le catalogue
Integration Services.

Syntaxe
SQL

catalog.set_execution_property_override_value [ @execution_id = execution_id


, [ @property_path = ] property_path
, [ @property_value = ] property_value
, [ @sensitive = ] sensitive

Arguments
[ @execution_id = ] execution_id
Identificateur unique de l'instance d'exécution. execution_id est de type bigint.

[ @property_path = ] property_path
Chemin d'accès à la propriété dans le package. property_path est de type
nvarchar(4000).

[ @property_value = ] property_value
Valeur de remplacement à affecter à la propriété. property_value est de type
nvarchar(max) .

[ @sensitive = ] sensitive
Lorsque la valeur est 1, la propriété est sensible et est chiffrée lorsqu'elle est stockée.
Lorsque la valeur est 0, la propriété n'est pas sensible et la valeur est stockée dans en
texte en clair. L’argument sensitive est de type bit.

Remarques
Cette procédure remplit la même fonction que la section Substitutions de propriété
sous l’onglet Avancé de la boîte de dialogue Exécuter le package. Le chemin d’accès de
la propriété est dérivé de la propriété Chemin d’accès au package de la tâche du
package.

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

L’utilisateur n’a pas les autorisations appropriées

L'identificateur d'exécution n'est pas valide.

Le chemin de la propriété n'est pas valide.

Le type de données de la valeur de propriété ne correspond pas au type de


propriété.

Voir aussi
catalog.set_execution_parameter_value (base de données SSISDB)
catalog.set_folder_description (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Définit la description d'un dossier dans le catalogue Integration Services.

Syntaxe
SQL

catalog.set_folder_description [ @folder_name = ] folder_name


, [ @folder_description = ] folder_description

Arguments
[ @folder_name = ] folder_name
Nom du dossier. folder_name est de type nvarchar(128) .

[ @folder_description = ] folder_description
Description du dossier. folder_description est de type nvarchar(MAX).

Valeur du code de retour


Aucun

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Appartenance au rôle de base de données ssis_admin


Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La procédure stockée retourne un message pour confirmer le paramètre de la nouvelle
description du dossier.
catalog.set_object_parameter_value
(base de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Définit la valeur d'un paramètre dans le catalogue Integration Services. Associe la valeur
à une variable d’environnement ou affecte une valeur littérale qui est utilisée par défaut
quand aucune autre valeur n’est affectée.

Syntaxe
SQL

catalog.set_object_parameter_value [ @object_type = ] object_type


, [ @folder_name = ] folder_name
, [ @project_name = ] project_name
, [ @parameter_name = ] parameter_name
, [ @parameter_value = ] parameter_value
[ , [ @object_name = ] object_name ]
[ , [ @value_type = ] value_type ]

Arguments
[@object_type =] object_type
Type de paramètre. Utilisez la valeur 20 pour indiquer un paramètre du projet ou la
valeur 30 pour indiquer un paramètre du package. object_type est de type smallInt.

[@folder_name =] nom_dossier
Nom du dossier qui contient le paramètre. folder_name est de type nvarchar(128) .

[@project_name =] project_name
Nom du projet qui contient le paramètre. project_name est de type nvarchar(128) .

[@parameter_name =] parameter_name
Le nom du paramètre. parameter_name est de type nvarchar(128).

[@parameter_value =] parameter_value
Valeur du paramètre. parameter_value est de type sql_variant.
[@object_name =] object_name
Nom du package. Cet argument est obligatoire lorsque le paramètre est un paramètre
du package. object_name est de type nvarchar(260).

[@value_type =] value_type
Type de valeur du paramètre. Utilisez le caractère V pour indiquer que parameter_value
est une valeur littérale qui est utilisée par défaut quand aucune autre valeur n’est
affectée avant l’exécution. Utilisez le caractère R pour indiquer que parameter_value est
une valeur référencée et qu’elle a été définie sur le nom d’une variable d’environnement.
Cet argument est facultatif, le caractère V est utilisé par défaut. value_type est de type
char(1).

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur le projet

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur de
procédure stockée :

Le type de paramètre n'est pas valide.

Le nom du projet n'est pas valide.

Pour les paramètres du package, le nom du package n'est pas valide

Le type de valeur n'est pas valide.


L’utilisateur n’a pas les autorisations appropriées

Notes
Si aucun value_type n’est spécifié, une valeur littérale pour parameter_value est
utilisée par défaut. Quand une valeur littérale est utilisée, le value_set dans la vue
object_parameters est défini sur 1 . Une valeur de paramètre NULL n'est pas
autorisée.

Si value_type contient le caractère R , qui dénote une valeur référencée,


parameter_value fait référence au nom d’une variable d’environnement.

La valeur 20 peut être utilisée pour object_type afin de dénoter un paramètre du


projet. Dans ce cas, une valeur pour object_name n’est pas nécessaire, et toute
valeur spécifiée pour object_name est ignorée. Cette valeur est utilisée lorsque
l'utilisateur souhaite définir un paramètre du projet.

La valeur 30 peut être utilisée pour object_type afin de dénoter un paramètre du


package. Dans ce cas, une valeur pour object_name est utilisée pour dénoter le
package correspondant. Si object_name n’est pas spécifié, la procédure stockée
retourne une erreur et termine.
catalog.set_worker_agent_property
(base de données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Définit la propriété d’un Integration Services Scale Out Worker.

Syntaxe
SQL

catalog.set_worker_agent_property [ @WorkerAgentId = ] WorkerAgentId


, [ @PropertyName = ] PropertyName
, [ @PropertyValue = ] PropertyValue

Arguments
[@WorkerAgentId =] WorkerAgentId
ID d’agent de Worker de Scale Out Worker. WorkerAgentId est de type uniqueidentifier.

[@PropertyName =] PropertyName
Nom de la propriété. PropertyName est de type nvarchar(256).

[@PropertyValue =] PropertyValue
Valeur de la propriété. PropertyValue est de type nvarchar(max) .

Notes
Les noms de propriété valides sont DisplayName, Description et Tags.

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

L’utilisateur n’a pas les autorisations appropriées

L’ID d’agent de Worker n’est pas valide.

Le nom de la propriété n’est pas valide.

La valeur de propriété n’est pas valide.


catalog.startup
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Effectue la maintenance de l'état des opérations pour le catalogue SSISDB.

La procédure stockée résout l'état de tous les packages et cours d'exécution si et quand
l'instance de serveur SSIS s'arrête.

Vous avez la possibilité d’exécuter automatiquement la procédure stockée chaque fois


que l’instance de serveur SSIS est redémarrée ; sélectionnez l’option Activer l’exécution
automatique des procédures stockées Integration Services au démarrage de SQL
Server dans la boîte de dialogue Créer un catalogue.

Syntax
SQL

catalog.startup

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur l'instance d'exécution, autorisations READ et


EXECUTE sur le projet, et si applicable, autorisations READ sur l'environnement
référencé

Appartenance au rôle de base de données ssis_admin


Appartenance au rôle serveur sysadmin
catalog.start_execution (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Démarre une instance d'exécution dans le catalogue Integration Services.

Syntaxe
SQL

catalog.start_execution [ @execution_id = ] execution_id [, [ @retry_count =


] retry_count]

Arguments
[@execution_id =] execution_id
Identificateur unique de l'instance d'exécution. execution_id est de type bigint.

[@retry_count =] retry_count
Nombre de nouvelles tentatives en cas d’échec de l’exécution. Il prend effet uniquement
si l’exécution a lieu dans Scale Out. Ce paramètre est facultatif. S’il n’est pas spécifié, sa
valeur est définie sur 0. retry_count est de type int.

Remarques
Une exécution est utilisée pour spécifier les valeurs de paramètre qui sont utilisées par
un package pendant une instance d’exécution unique du package. Le projet
correspondant peut être redéployé une fois une instance d'exécution créée et avant son
démarrage. Dans ce cas, l’instance d’exécution référence un projet obsolète. Cette
référence non valide provoque l’échec de la procédure stockée.

7 Notes

Les exécutions peuvent être démarrées uniquement une fois. Pour démarrer une
instance d’exécution, elle doit avoir l’état Created (valeur 1 dans la colonne status
de la vue catalog.operations).

Exemple
L'exemple suivant appelle catalog.create_execution pour créer une instance d'exécution
pour le package Child1.dtsx. Project1 Integration Services contient le package.
L'exemple appelle catalog.set_execution_parameter_value afin de définir des valeurs
pour les paramètres Parameter1, Parameter2 et LOGGING_LEVEL. L'exemple appelle
catalog.start_execution pour démarrer une instance d'exécution.

SQL

Declare @execution_id bigint


EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Child1.dtsx',
@execution_id=@execution_id OUTPUT, @folder_name=N'TestDeply4',
@project_name=N'Integration Services Project1', @use32bitruntime=False,
@reference_id=Null
Select @execution_id
DECLARE @var0 sql_variant = N'Child1.dtsx'
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,
@object_type=20, @parameter_name=N'Parameter1', @parameter_value=@var0
DECLARE @var1 sql_variant = N'Child2.dtsx'
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,
@object_type=20, @parameter_name=N'Parameter2', @parameter_value=@var1
DECLARE @var2 smallint = 1
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,
@object_type=50, @parameter_name=N'LOGGING_LEVEL', @parameter_value=@var2
EXEC [SSISDB].[catalog].[start_execution] @execution_id
GO

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :
Autorisations READ et MODIFY sur l'instance d'exécution, autorisations READ et
EXECUTE sur le projet, et si applicable, autorisations READ sur l'environnement
référencé

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

L’utilisateur n’a pas les autorisations appropriées

L'identificateur d'exécution n'est pas valide.

L'exécution a déjà démarré, ou a déjà été effectuée ; les exécutions peuvent être
démarrées une seule fois

La référence environnementale associée au projet n'est pas valide

Les valeurs de paramètre obligatoires n'ont pas été définies

La version du projet associée à l'instance d'exécution est obsolète ; seule la version


la plus actuelle d'un projet peut être exécutée
catalog.stop_operation (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Arrête une validation ou une instance d'exécution dans le catalogue Integration


Services.

Syntaxe
SQL

catalog.stop_operation [ @operation_id = ] operation_id

Arguments
[ @operation_id = ] operation_id
Identificateur unique de la validation ou de l'instance d'exécution. operation_id est de
type bigint.

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur la validation ou l'instance d'exécution

Appartenance au rôle de base de données ssis_admin


Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :

L’utilisateur n’a pas les autorisations appropriées

L'identificateur de l'opération n'est pas valide

L'opération a déjà été arrêtée

Remarques
Un seul utilisateur à la fois doit arrêter une opération dans le catalogue Integration
Services. Si plusieurs utilisateurs essaient d'arrêter l'opération, la procédure stockée
réussira (valeur 0 ) à la première tentative, mais les tentatives suivantes généreront une
erreur.
catalog.update_logdb_info (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server 2017 (14.x) et versions plus récentes

Met à jour les informations de journalisation Integration Services Scale Out.

Syntaxe
SQL

catalog.update_logdb_info [ @server_name = ] server_name, [


@connection_string = ] connection_string

Arguments
[ @server_name = ] server_name
Serveur SQL Server utilisé pour la journalisation Scale Out. server_name est de type
nvarchar.

[ @connection_string = ] connection_string
Chaîne de connexion utilisée pour la journalisation Scale Out. connection_string est de
type nvarchar.

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :
Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin


catalog.update_master_address (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server 2017 (14.x) et versions plus récentes

Met à jour le point de terminaison Integration Services Scale Out Master.

Syntaxe
SQL

catalog.update_master_address [ @MasterAddress = ] masterAddress

Arguments
[ @MasterAddress = ] masterAddress
Point de terminaison Scale Out Master. masterAddress est de type nvarchar.

Valeur du code de retour


0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin


catalog.validate_package (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Valide de façon asynchrone un package dans le catalogue Integration Services.

Syntaxe
SQL

catalog.validate_package [ @folder_name = ] folder_name


, [ @project_name = ] project_name
, [ @package_name = ] package_name
, [ @validation_id = ] validation_id OUTPUT
[ , [ @use32bitruntime = ] use32bitruntime ]
[ , [ @environment_scope = ] environment_scope ]
[ , [ @reference_id = ] reference_id ]

Arguments
[ @folder_name = ] folder_name
Nom du dossier qui contient le package. folder_name est de type nvarchar(128) .

[ @project_name = ] project_name
Nom du projet qui contient le package. project_name est de type nvarchar(128) .

[ @package_name = ] package_name
Nom du package. package_name est de type nvarchar(260).

[ @validation_id = ] validation_id
Retourne l'identificateur unique (ID) de la validation. validation_id est de type bigint.

[ @use32bitruntime = ] use32bitruntime
Indique si l'exécution 32 bits doit être utilisée pour exécuter le package sur un système
d'exploitation 64 bits. Utilisez la valeur 1 pour exécuter le package avec l’exécution 32
bits quand un système d’exploitation 64 bits est exécuté. Utilisez la valeur 0 pour
exécuter le package avec l'exécution 64 bits lorsqu'un système d'exploitation 64 bits est
exécuté. Ce paramètre est facultatif. use32bitruntime est de type bit.

[ @environment_scope = ] environment_scope
Indique les références environnementales considérées par la validation. Lorsque la
valeur est A , toutes les références environnementales associées au projet sont incluses
dans la validation. Lorsque la valeur est S , seule une référence environnementale unique
est incluse. Lorsque la valeur est D , aucune référence environnementale n'est incluse et
chaque paramètre doit avoir une valeur par défaut littérale pour passer la validation. Ce
paramètre est facultatif. Le caractère D est utilisé par défaut. environment_scope est de
type char(1).

[ @reference_id = ] reference_id
ID unique de la référence environnementale. Ce paramètre est obligatoire uniquement
quand une référence environnementale unique est incluse dans la validation, quand
environment_scope est S . reference_id est de type bigint.

Codet de retour
0 (succès)

Jeux de résultats
None

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ sur le projet et, si applicable, autorisations READ sur les
environnements référencés

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit quelques conditions qui peuvent générer une erreur ou un
avertissement :
Le nom du projet ou le nom de package n'est pas valide

L’utilisateur n’a pas les autorisations appropriées

Un ou plusieurs environnements référencés inclus dans la validation ne


contiennent pas de variables référencées

La validation du package échoue

L'environnement référencé n'existe pas

Les variables référencées ne peuvent pas être trouvées dans les environnements
référencés inclus dans la validation

Les variables sont référencées dans les paramètres du package, mais aucun
environnement référencé n'a été inclus dans la validation

Notes
La validation aide à identifier les problèmes qui peuvent empêcher le package de
s’exécuter avec succès. Utilisez les vues catalog.validations ou catalog.operations pour
surveiller l’état de validation.
catalog.validate_project (base de
données SSISDB)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Valide de façon asynchrone un projet dans le catalogue Integration Services.

Syntaxe
SQL

catalog.validate_project [ @folder_name = ] folder_name


, [ @project_name = ] project_name
, [ @validate_type = ] validate_type
, [ @validation_id = ] validation_id OUTPUT
[ , [ @use32bitruntime = ] use32bitruntime ]
[ , [ @environment_scope = ] environment_scope ]
[ , [ @reference_id = ] reference_id ]

Arguments
[ @folder_name = ] folder_name
Nom d'un dossier qui contient le projet. folder_name est de type nvarchar(128) .

[ @project_name = ] project_name
Nom du projet. project_name est de type nvarchar(128) .

[ @validate_type = ] validate_type
Indique le type de validation à réaliser. Utilisez le caractère F pour effectuer une
validation complète. Ce paramètre est facultatif, le caractère F sera utilisé par défaut.
validate_type est de type char(1).

[ @validation_id = ] validation_id
Retourne l'identificateur unique (ID) de la validation. validation_id est de type bigint.

[ @use32bitruntime = ] use32bitruntime
Indique si l'exécution 32 bits doit être utilisée pour exécuter le package sur un système
d'exploitation 64 bits. Utilisez la valeur 1 pour exécuter le package avec l’exécution 32
bits quand un système d’exploitation 64 bits est exécuté. Utilisez la valeur 0 pour
exécuter le package avec l'exécution 64 bits lorsqu'un système d'exploitation 64 bits est
exécuté. Ce paramètre est facultatif. use32bitruntime est de type bit.

[ @environment_scope = ] environment_scope
Indique les références environnementales considérées par la validation. Lorsque la
valeur est A , toutes les références environnementales associées au projet sont incluses
dans la validation. Lorsque la valeur est S , seule une référence environnementale unique
est incluse. Lorsque la valeur est D , aucune référence environnementale n'est incluse et
chaque paramètre doit avoir une valeur par défaut littérale pour passer la validation. Ce
paramètre est facultatif, le caractère D sera utilisé par défaut. environment_scope est de
type char(1).

[ @reference_id = ] reference_id
ID unique de la référence environnementale. Ce paramètre est obligatoire uniquement
quand une référence environnementale unique est incluse dans la validation, quand
environment_scope est S . reference_id est de type bigint.

Codet de retour
0 (succès)

Jeux de résultats
La sortie des étapes de validation est retournée sous la forme de sections différentes du
jeu de résultats.

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ sur le projet et, si applicable, autorisations READ sur les
environnements référencés

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante fournit quelques conditions qui peuvent générer une erreur ou un
avertissement :

La validation échoue pour un ou plusieurs packages dans le projet

La validation échoue si un ou plusieurs des environnements référencés inclus dans


la validation ne contiennent pas de variables référencées

Le type validé spécifié n'est pas valide.

Le nom du projet ou l'ID de référence d'environnement n'est pas valide

L’utilisateur n’a pas les autorisations appropriées

Notes
La validation aide à identifier les problèmes qui empêchent les packages dans le projet
de s'exécuter avec succès. Utilisez les vues catalog.validations ou catalog.operations
pour surveiller l’état de validation.

Seuls les environnements qui sont accessibles par l'utilisateur peuvent être utilisés dans
la validation. La sortie de validation est envoyée au client sous forme d'un jeu de
résultats.

Dans cette version, la validation de projet ne prend pas en charge la validation de


dépendance.

La validation complète confirme que toutes les variables d'environnement référencées


sont recherchées dans les environnements référencés inclus dans la validation. Les
résultats de la validation complète répertorient des références environnementales qui ne
sont pas des variables d'environnement valides et référencées et qui sont introuvables
dans les environnements référencés inclus dans la validation.
catalog.cleanup_server_execution_keys
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Supprime les certificats et les clés symétriques de la base de données SSISDB.

Syntaxe
SQL

catalog.cleanup_server_execution_keys [ @cleanup_flag = ] cleanup_flag ,


[ @delete_batch_size = ] delete_batch_size

Arguments
[ @cleanup_flag = ] cleanup_flag
Indique si les certificats et les clés symétriques de niveau exécution (1) ou de niveau
projet (2) doivent être supprimés.

Utilisez le niveau d’exécution (1) uniquement quand


SERVER_OPERATION_ENCRYPTION_LEVEL est défini sur PER_EXECUTION (1).

Utilisez le niveau de projet (2) uniquement quand


SERVER_OPERATION_ENCRYPTION_LEVEL est défini sur PER_PROJECT (2). Les certificats
et clés symétriques sont supprimés uniquement pour les projets qui ont été supprimés,
et pour lesquels les journaux des opérations ont été nettoyés.

[ @delete_batch_size = ] delete_batch_size
Nombre de clés et certificats à supprimer. La valeur par défaut est 1000.

Codet de retour
0 (réussite) et 1 (échec).

Jeux de résultats
Aucun.
Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et EXECUTE sur le projet et, si applicable, autorisations READ


sur les environnements référencés.

L’appartenance au rôle de base de données ssis_admin.

Appartenance au rôle serveur sysadmin.

Erreurs et avertissements
Cette procédure stockée génère des erreurs dans les scénarios suivants :

Il existe une ou plusieurs opérations actives dans la base de données SSISDB.

La base de données SSISDB n’est pas en mode mono-utilisateur.

Remarques
SQL Server 2012 Service Pack 2 a ajouté la propriété
SERVER_OPERATION_ENCRYPTION_LEVEL à la table internal.catalog_properties. Cette
propriété a deux valeurs possibles :

PER_EXECUTION (1) : le certificat et la clé symétrique utilisés pour la protection des


paramètres d’exécution sensibles et des journaux d’exécution sont créés pour
chaque exécution. Il s’agit de la valeur par défaut. Vous risquez de rencontrer des
problèmes de performances (blocages, échecs de travaux de maintenance, etc.)
dans un environnement de production, car les certificats/clés sont générés pour
chaque exécution. Toutefois, ce paramètre offre un niveau de sécurité supérieur à
l’autre valeur (2).

PER_PROJECT (2) : le certificat et la clé symétrique utilisés pour protéger les


paramètres sensibles sont créés pour chaque projet. Vous obtenez de meilleures
performances qu’avec le niveau PER_EXECUTION, car la clé et le certificat sont
générés une fois par projet et non à chaque exécution.

Vous devez exécuter la procédure stockée catalog.cleanup_server_log avant de pouvoir


changer SERVER_OPERATION_ENCRYPTION_LEVEL de 1 en 2 (ou de 2 en 1). Avant
d’exécuter cette procédure stockée, effectuez les opérations suivantes :
1. Vérifiez que la valeur de la propriété OPERATION_CLEANUP_ENABLED est définie
sur TRUE dans la table catalog.catalog_properties (base de données SSISDB).

2. Définissez la base de données Integration Services (SSISDB) sur le mode mono-


utilisateur. Dans SQL Server Management Studio, lancez la boîte de dialogue
Propriétés de la base de données pour SSISDB, puis, sous l’onglet Options,
définissez la propriété Restreindre l’accès sur le mode mono-utilisateur
(SINGLE_USER). Après avoir exécuté la procédure stockée cleanup_server_log,
définissez la valeur de la propriété sur la valeur d’origine.

3. Exécutez la procédure stockée catalog.cleanup_server_log.

4. À présent, changez la valeur de la propriété


SERVER_OPERATION_ENCRYPTION_LEVEL dans la table catalog.catalog_properties
(base de données SSISDB).

5. Exécutez la procédure stockée catalog.cleanup_server_execution_keys pour


nettoyer les clés et les certificats dans la base de données SSISDB. La suppression
des certificats et des clés de la base de données SSISDB pouvant prendre
beaucoup de temps, elle doit être exécutée régulièrement pendant les heures
creuses.

Vous pouvez spécifier l’étendue ou le niveau (exécution ou projet) et le nombre de


clés à supprimer. La taille de lot par défaut pour la suppression est 1000. Quand
vous définissez le niveau sur 2, les clés et les certificats ne sont supprimés que si
les projets associés ont été supprimés.

Pour plus d’informations, consultez l’article suivant de la Base de connaissances :


CORRECTIF : problèmes de performance quand vous utilisez SSISDB comme magasin de
déploiement dans SQL Server 2012

Exemple
L’exemple suivant appelle la procédure stockée cleanup_server_execution_keys.

SQL

USE [SSISDB]
GO

DECLARE@return_value int

EXEC@return_value = [internal].[cleanup_server_execution_keys]
@cleanup_flag = 1,
@delete_batch_size = 500
SELECT'Return Value' = @return_value

GO
catalog.cleanup_server_log
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

S’applique à : SQL Server

Nettoie les journaux des opérations pour que la base de données SSISDB soit dans un
état qui autorise la modification de la valeur de la propriété
SERVER_OPERATION_ENCRYPTION_LEVEL.

Syntaxe
SQL

catalog.cleanup_server_log

Arguments
Aucun.

Codet de retour
0 (réussite) et 1 (échec).

Jeux de résultats
Aucun.

Autorisations
Cette procédure stockée requiert l'une des autorisations suivantes :

Autorisations READ et EXECUTE sur le projet et, si applicable, autorisations READ


sur les environnements référencés.

L’appartenance au rôle de base de données ssis_admin.

Appartenance au rôle serveur sysadmin.


Erreurs et avertissements
Cette procédure stockée génère des erreurs dans les scénarios suivants :

Il existe une ou plusieurs opérations actives dans la base de données SSISDB.

La base de données SSISDB n’est pas en mode mono-utilisateur.

Remarques
SQL Server 2012 Service Pack 2 a ajouté la propriété
SERVER_OPERATION_ENCRYPTION_LEVEL à la table internal.catalog_properties. Cette
propriété a deux valeurs possibles :

PER_EXECUTION (1) : le certificat et la clé symétrique utilisés pour la protection des


paramètres d’exécution sensibles et des journaux d’exécution sont créés pour
chaque exécution. Vous risquez de rencontrer des problèmes de performances
(blocages, échecs de travaux de maintenance, etc.) dans un environnement de
production, car les certificats/clés sont générés pour chaque exécution. Toutefois,
ce paramètre offre un niveau de sécurité supérieur à l’autre valeur (2).

PER_PROJECT (2) : le certificat et la clé symétrique utilisés pour protéger les


paramètres sensibles sont créés pour chaque projet. PER_PROJECT (2) est la valeur
par défaut. Ce paramètre procure de meilleures performances que le niveau
PER_EXECUTION, car la clé et le certificat sont générés une fois par projet et non à
chaque exécution.

Vous devez exécuter la procédure stockée catalog.cleanup_server_log avant de pouvoir


changer SERVER_OPERATION_ENCRYPTION_LEVEL de 2 en 1 ou de 1 en 2. Avant
d’exécuter cette procédure stockée, effectuez les opérations suivantes :

1. Vérifiez que la valeur de la propriété OPERATION_CLEANUP_ENABLED est définie


sur TRUE dans la table catalog.catalog_properties (base de données SSISDB).

2. Définissez la base de données Integration Services (SSISDB) sur le mode mono-


utilisateur. Dans SQL Server Management Studio, lancez la boîte de dialogue
Propriétés de la base de données pour SSISDB, puis, sous l’onglet Options,
définissez la propriété Restreindre l’accès sur le mode mono-utilisateur
(SINGLE_USER). Après avoir exécuté la procédure stockée cleanup_server_log,
définissez la valeur de la propriété sur la valeur d’origine.

3. Exécutez la procédure stockée catalog.cleanup_server_log.


4. À présent, changez la valeur de la propriété
SERVER_OPERATION_ENCRYPTION_LEVEL dans la table catalog.catalog_properties
(base de données SSISDB).

5. Exécutez la procédure stockée catalog.cleanup_server_execution_keys pour


nettoyer les clés et les certificats dans la base de données SSISDB. La suppression
des certificats et des clés de la base de données SSISDB pouvant prendre
beaucoup de temps, elle doit être exécutée régulièrement pendant les heures
creuses.

Vous pouvez spécifier l’étendue ou le niveau (exécution ou projet) et le nombre de


clés à supprimer. La taille de lot par défaut pour la suppression est 1000. Quand
vous définissez le niveau sur 2, les clés et les certificats ne sont supprimés que si
les projets associés ont été supprimés.

Pour plus d’informations, consultez l’article suivant de la Base de connaissances :


CORRECTIF : problèmes de performance quand vous utilisez SSISDB comme magasin de
déploiement dans SQL Server 2012

Exemple
L’exemple suivant appelle la procédure stockée cleanup_server_log.

SQL

USE [SSISDB]
GO

DECLARE@return_value int
EXEC@return_value = [internal].[cleanup_server_log]
SELECT'Return Value' = @return_value
GO
Fonctions -
dm_execution_performance_counters
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Retourne les statistiques de performance pour une exécution en cours sur le serveur
Integration Services.

Syntaxe
SQL

dm_execution_performance_counters [ @execution_id = ] execution_id

Arguments
[ @execution_id = ] execution_id
Identificateur unique de l'exécution qui contient un ou plusieurs packages. Packages
exécutés avec la tâche d'exécution du package dans la même exécution comme package
parent.

Si un ID d'exécution n'est pas spécifié, les statistiques de performance de plusieurs


exécutions sont retournées. Si vous êtes membre du rôle de base de données
ssis_admin , les statistiques de performances de toutes les exécutions en cours sont
retournées. Si vous n’êtes pas membre du rôle de base de données ssis_admin , les
statistiques de performances des exécutions en cours pour lesquelles vous disposez
d’autorisations de lecture sont retournées. execution_id est un BigInt.

Notes
Le tableau suivant répertorie les valeurs de nom de compteur retournées par la fonction
dm_execution_performance_counter.

Nom de Description
compteur
Nom de Description
compteur

Octets BLOB lus Nombre d'octets des données d'objet BLOB (Binary Large Object) que le
moteur de flux de données lit à partir de toutes les sources.

Octets BLOB Nombre d'octets des données BLOB que le moteur de flux de données écrit
écrits sur toutes les destinations.

Fichiers BLOB Nombre de fichiers BLOB que le moteur de flux de données utilise pour la
utilisés mise en file d'attente.

Mémoire tampon Quantité de mémoire utilisée par les mémoires tampons Integration Services,
y compris la mémoire physique et virtuelle.

Tampons en cours Nombre d'objets de mémoire tampon, de tous types, utilisés par tous les
d'utilisation composants de flux de données et le moteur de flux de données.

Mémoires Nombre de mémoires tampons écrites sur le disque.


tampon spoulées

Mémoire tampon Quantité de mémoire, en octets, utilisée par toutes les mémoires tampons
plate plates. Les mémoires tampons plates sont des blocs de mémoire utilisés par
un composant pour stocker des données.

Mémoires Nombre de mémoires tampons plates utilisées par le moteur de flux de


tampons plates données. Toutes les mémoires tampons plates sont des mémoires tampons
en cours privées.
d'utilisation

Mémoire tampon Quantité de mémoire utilisée par toutes les mémoires tampons privées. Une
privée mémoire tampon privée est une mémoire tampon qu'une transformation
utilise pour un travail temporaire.

Une mémoire tampon n’est pas privée si le moteur de flux de données la


crée pour prendre en charge le flux de données.

Mémoires Nombre de mémoires tampons utilisées par les transformations pour un


tampons privées travail temporaire.
en cours
d'utilisation

Lignes lues Nombre total de lignes lues par l’exécution.

Lignes écrites Nombre total de lignes écrites par l'exécution.

Renvoie
La fonction dm_execution_performance_counters retourne une table comportant les
colonnes suivantes, pour une exécution en cours. Les informations retournées
concernent tous les packages contenus dans l'exécution. Si aucune exécution n'est en
cours, une table vide est retournée.

Nom de la Type de colonne Description Notes


colonne

execution_id BigInt Identificateur unique de


l'exécution qui contient le
NULL n’est pas package.
une valeur valide.

counter_name nvarchar(128) Nom du compteur. Consultez la section


Notes des valeurs.

counter_value BigInt Valeur retournée par le compteur.

Exemples

R. Retourner des statistiques pour une exécution en cours


Dans l'exemple suivant, la fonction retourne des statistiques pour une exécution en
cours ayant l'ID 34.

SQL

select * from [catalog].[dm_execution_performance_counters] (34)

B. Retourner des statistiques pour toutes les exécutions


en cours
Dans l'exemple suivant, la fonction retourne des statistiques pour toutes les exécutions
en cours sur le serveur Integration Services, selon les autorisations dont vous disposez.

SQL

select * from [catalog].[dm_execution_performance_counters] (NULL)

Autorisations
Cette fonction requiert l'une des autorisations suivantes :

Autorisations READ et MODIFY sur l'instance d'exécution

Appartenance au rôle de base de données ssis_admin

Appartenance au rôle serveur sysadmin

Erreurs et avertissements
La liste suivante décrit les conditions provoquant l'échec de la fonction.

L'utilisateur ne dispose pas des autorisations MODIFY pour l'exécution spécifiée.

L’ID d’exécution spécifié n’est pas valide.


Guide de référence des erreurs et des
événements (Integration Services)
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette section de la documentation contient des informations sur plusieurs erreurs et


événements liés à Integration Services. Les informations sur les causes et les solutions
sont incluses pour les messages d'erreur.

Pour plus d’informations sur les messages d’erreur liés à Integration Services, et
notamment obtenir une liste de la plupart de ces erreurs et leur description, consultez
Guide de référence des erreurs et des messages propres à Integration Services.
Toutefois, la liste n'inclut actuellement aucune information de dépannage.

) Important

Parmi les erreurs que vous pouvez rencontrer quand vous utilisez Integration
Services, beaucoup d’entre elles proviennent d’autres composants. Il peut s’agir,
par exemple, d’erreurs de fournisseurs OLE DB, d’autres composants de base de
données comme le moteur de base de données et Analysis Services, ou d’autres
services ou composants comme le système de fichiers, le serveur SMTP ou
Microsoft Message Queueing. Pour trouver des informations sur ces messages
d'erreur externes, consultez la documentation spécifique au composant.

Messages d'erreur
Nom symbolique de l'erreur Description
Nom symbolique de l'erreur Description

DTS_E_CACHELOADEDFROMFILE Indique que le


package ne
peut pas
s'exécuter en
raison de la
tentative
d'écriture d'une
transformation
du cache dans
le cache en
mémoire.
Toutefois, un
Gestionnaire de
connexions du
cache a déjà
chargé un
fichier cache
dans le cache
en mémoire.

DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER Indique que le


package ne
peut pas
s'exécuter parce
qu'une
connexion
spécifiée a
échoué.

DTS_E_CANNOTCONVERTBETWEENUNICODEANDNONUNICODESTRINGCOLUMN Indique qu'un


composant de
flux de données
tente de
transmettre des
données de
chaîne Unicode
à un autre
composant qui
attend des
données de
chaîne non-
Unicode dans la
colonne
correspondante,
ou inversement.
Nom symbolique de l'erreur Description

DTS_E_CANNOTCONVERTBETWEENUNICODEANDNONUNICODESTRINGCOLUMNS Indique qu'un


composant de
flux de données
tente de
transmettre des
données de
chaîne Unicode
à un autre
composant qui
attend des
données de
chaîne non-
Unicode dans la
colonne
correspondante,
ou inversement.

DTS_E_CANTINSERTCOLUMNTYPE Indique qu’il est


impossible
d'ajouter la
colonne à la
table de la base
de données
parce que la
conversion
entre le type de
données de la
colonne
Integration
Services et le
type de
données de la
colonne de
base de
données n'est
pas prise en
charge.

DTS_E_CONNECTIONNOTFOUND Indique que le


package ne
peut pas
s'exécuter parce
que le
gestionnaire de
connexions
spécifié est
introuvable.
Nom symbolique de l'erreur Description

DTS_E_CONNECTIONREQUIREDFORMETADATA Indique que le


Concepteur
SSIS doit se
connecter à une
source de
données pour
récupérer de
nouvelles
métadonnées
ou des
métadonnées
mises à jour
pour une source
ou une
destination, et
qu’il n’est pas
en mesure de se
connecter à la
source de
données.

DTS_E_MULTIPLECACHEWRITES Indique que le


package ne
peut pas
s'exécuter en
raison de la
tentative
d'écriture d'une
transformation
du cache dans
le cache en
mémoire.
Toutefois, une
autre
transformation
du cache a déjà
écrit dans le
cache en
mémoire.
Nom symbolique de l'erreur Description

DTS_E_PRODUCTLEVELTOLOW Indique que le


package ne
peut pas
s’exécuter car la
version
appropriée de
SQL Server
Integration
Services n’est
pas installée.

DTS_E_READNOTFILLEDCACHE Indique qu'une


transformation
de recherche
tente de lire des
données dans le
cache en
mémoire en
même temps
que la
transformation
du cache écrit
les données
dans le cache.

DTS_E_UNPROTECTXMLFAILED Indique que le


système n'a pas
déchiffré un
nœud XML
protégé.

DTS_E_WRITEWHILECACHEINUSE Indique qu'une


transformation
de cache tente
d'écrire des
données dans le
cache en
mémoire en
même temps
qu'une
transformation
de recherche lit
les données
dans le cache
en mémoire.
Nom symbolique de l'erreur Description

DTS_W_EXTERNALMETADATACOLUMNSOUTOFSYNC Indique que les


métadonnées
de colonne
dans la source
de données ne
correspondent
pas aux
métadonnées
de colonne
dans le
composant
source ou de
destination
connecté à la
source de
données.

Événements (SQLISPackage)
Pour plus d’informations, consultez Événements journalisés par un package Integration
Services.

Événement Description

SQLISPackage_12288 Indique qu'un package a démarré.

SQLISPackage_12289 Indique qu'un package a terminé son exécution avec succès.

SQLISPACKAGE_12291 Indique qu'un package n'a pas pu terminer son exécution et s'est arrêté.

SQLISPackage_12546 Indique qu'une tâche ou tout autre exécutable dans un package a fini
son travail.

SQLISPackage_12549 Indique qu'un message d'avertissement a été déclenché dans un


package.

SQLISPackage_12550 Indique qu'un message d'erreur a été déclenché dans un package.

SQLISPackage_12551 Indique qu'un package n'a pas fini son travail et s'est interrompu.

SQLISPackage_12557 Indique qu'un package a terminé son exécution.

Événements (SQLISService)
Pour plus d’informations, consultez Événements journalisés par le service Integration
Services.

Événement Description

SQLISService_256 Indique que le service est sur le point de démarrer.

SQLISService_257 Indique que le service a démarré.

SQLISService_258 Indique que le service est sur le point de s'arrêter.

SQLISService_259 Indique que le service s'est arrêté.

SQLISService_260 Indique que le service a essayé de démarrer, en vain.

SQLISService_272 Indique que le fichier de configuration n'existe pas à l'emplacement spécifié.

SQLISService_273 Indique que le fichier de configuration n'a pas pu être lu ou n'est pas valide.

SQLISService_274 Indique que l'entrée de Registre qui contient l'emplacement du fichier de


configuration n'existe pas ou est vide.

Voir aussi
Guide de référence des erreurs et des messages propres à Integration Services
Guide de référence des erreurs et des
messages propres à Integration Services
Article • 30/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les tableaux suivants répertorient les erreurs, les avertissements et les messages
d'information prédéfinis de Integration Services , par ordre croissant en fonction de leur
numéro pour chaque catégorie, avec leurs codes numériques et noms symboliques.
Chacune de ces erreurs est définie comme un champ de la classe
Microsoft.SqlServer.Dts.Runtime.Hresults dans l’espace de noms
Microsoft.SqlServer.Dts.Runtime.

Cette liste peut être utile lorsque vous rencontrez un code d'erreur sans sa description.
La liste ne comporte actuellement aucune information de dépannage.

Cette liste contient les groupes de messages suivants :

Messages d’erreur (DTS_E_*)


Messages d’avertissement (DTS_W_*)
Messages d’information (DTS_I_*)
Messages généraux et d’événement (DTS_MSG_*)
Messages de réussite (DTS_S_*)
Messages d’erreur des composants de flux de données (DTSBC_E_*)

) Important

Nombre des messages d'erreur que vous pouvez rencontrer lorsque vous utilisez
Integration Services proviennent d'autres composants. Cet article présente toutes
les erreurs déclenchées par les composants Integration Services. Si l'erreur que
vous rencontrez ne figure pas dans la liste, cela signifie qu'elle a été déclenchée par
un composant autre que Integration Services. Il peut s'agir, par exemple, de
fournisseurs OLE DB, d'autres composants de base de données tels que le Moteur
de base de données et Analysis Services, ou d'autres services ou composants tels
que le système de fichiers, le serveur SMTP ou Message Queuing (également
appelé MSMQ), etc. Pour trouver des informations sur ces messages d'erreur
externes, consultez la documentation spécifique au composant.

Messages d’erreur
Les noms symboliques des messages d’erreur de Integration Services commencent par
DTS_E_ .

Valeur Nom Description


hexadécimale symbolique
&
Code décimal

0x8002F347 DTS_E_STOR Remplacement de la procédure stockée « %1 » à la destination.


-2147290297 EDPROCSTA
SK_OVERW
RITINGSPAT
DESTINATIO
N

0x8020837E DTS_E_ADO Le type de données « %1! » rencontré sur la colonne « %2! » n'est pas
-2145352834 SRCUNKNO pris en charge pour %3. Cette colonne sera convertie en DT_NTEXT.
WNTYPEMA
PPEDTONTE
XT

0x8020838C DTS_E_XML La colonne %1 dans la table %2 du schéma XML ne comporte pas de


-2145352820 SRCSCHEM mappage dans les colonnes de métadonnées externes.
ACOLUMN
NOTINEXTE
RNALMETA
DATA

0xC0000032 DTS_E_NOTI Un objet interne ou une variable n'a pas été initialisé. C'est une erreur
-1073741774 NITIALIZED interne au produit. Cette erreur est retournée lorsqu'une variable doit
avoir une valeur valide et que ce n'est pas le cas.

0xC0000033 DTS_E_EXPI La période d'évaluation d'Integration Services a expiré.


-1073741773 RED

0xC0000034 DTS_E_NEG Une valeur négative ne peut pas être attribuée à cette propriété. Cette
-1073741772 ATIVEVALUE erreur se produit lorsqu'une valeur négative est attribuée à une
SNOTALLO propriété ne pouvant contenir que des valeurs positives, telle que la
WED propriété COUNT.

0xC0000035 DTS_E_NEG Les index ne peuvent pas être négatifs. Cette erreur se produit
-1073741771 ATIVEINDEX lorsqu'une valeur négative est utilisée en tant qu'index d'une
NOTALLOW collection.
ED

0xC00060AB DTS_E_INVA Nom de serveur « % 1 » non valide. Le service SSIS ne prenant pas en
-1073717077 LIDSSISSER charge les instances multiples, utilisez uniquement le nom de serveur
VERNAME au lieu de « nom de serveur\instance ».
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0008445 DTS_E_SCRI La migration de scripts VSA ne peut pas être effectuée sur les
-1073707963 PTMIGRATI plateformes 64 bits, en raison d'un défaut de prise en charge du
ONFAILED6 concepteur Visual Tools for Applications. Sur les plateformes 64 bits,
4BIT exécutez la migration sous WOW64.

0xC000931A DTS_E_COM L'exécution de la commande a généré des erreurs.


-1073704166 MANDDEST
INATIONAD
APTERSTATI
C_ERRORSI
NCOMMAN
D

0xC000F427 DTS_E_SSISS Pour exécuter un package SSIS en dehors de SQL Server Data Tools
-1073679321 TANDALON (SSDT) , vous devez installer 1 % d'Integration Services ou plus.
ENOTINSTA
LLED

0xC0010001 DTS_E_VARI La variable est introuvable. Ceci se produit lorsqu'une tentative est
-1073676287 ABLENOTFO effectuée pour extraire une variable de la collection Variables sur un
UND conteneur au cours de l'exécution du package, et que la variable est
absente. Le nom de la variable a peut-être été modifié ou la variable
n'est pas créée.

0xC0010003 DTS_E_VARI Erreur lors de la tentative d'écriture vers une variable en lecture seule,
-1073676285 ABLEREADO « %1 ».
NLY

0xC0010004 DTS_E_MAN Impossible de trouver les répertoires contenant les composants Tasks
-1073676284 AGEDCOMP et Data Flow Task. Vérifiez l'intégrité de votre installation.
ONENTSTO
RENOTFOU
ND

0xC0010006 DTS_E_PACK Le nom du package est trop long. La limite est 128 caractères.
-1073676282 AGENAMET Raccourcissez le nom du package.
OOLONG

0xC0010007 DTS_E_PACK La description du package est trop longue. La limite est 1 024
-1073676281 AGEDESCRI caractères. Raccourcissez la description du package.
PTIONTOOL
ONG
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0010008 DTS_E_VERC La propriété VersionComments est trop longue. La limite est 1 024
-1073676280 OMMENTST caractères. Essayez de raccourcir la propriété VersionComments.
OOLONG

0xC0010009 DTS_E_ELEM L'élément est introuvable dans une collection. Cette erreur se produit
-1073676279 ENTNOTFO lorsque vous essayez d'extraire un élément d'une collection sur un
UND conteneur au cours de l'exécution du package et que l'élément est
absent.

0xC001000A DTS_E_PACK Le package spécifié n'a pas pu être chargé de la base de données SQL
-1073676278 AGENOTFO Server.
UND

0xC001000C DTS_E_INVA L'assignation de la valeur de variable n'est pas valide. Cette erreur se
-1073676276 LIDVARIABL produit lorsqu'un client ou une tâche assigne un objet d'exécution à la
EVALUE valeur d'une variable.

0xC001000D DTS_E_RESE Erreur lors de l'assignation de l'espace de noms à la variable. L'espace


-1073676275 RVEDNAME de noms « System » est réservé pour l'utilisation système. Cette erreur
SPACE se produit lorsqu'un composant ou une tâche tente de créer une
variable avec l'espace de noms « System ».

0xC001000E DTS_E_CON La connexion « %1 » est introuvable. Cette erreur est retournée par la
-1073676274 NECTIONN collection Connections lorsque l'élément de connexion spécifique est
OTFOUND introuvable.

0xC001000F DTS_E_64BIT La variable « %1 » est un entier 64 bits, non pris en charge dans ce
-1073676273 VARIABLERE système d'exploitation. Cette variable a été remaniée en entier 32 bits.
CAST

0xC0010010 DTS_E_CAN Une tentative de modification d'un attribut de lecture seule sur la
-1073676272 TCHANGERE variable « %1 » s'est produite. Cette erreur se produit lorsqu'un
ADONLYATR attribut de lecture seule d'une variable est modifié pendant
UNTIME l'exécution. Les attributs de lecture seule ne peuvent être changés que
lors de la conception.

0xC0010011 DTS_E_VARI Tentative non valide de définir une variable vers une référence de
-1073676271 ABLEINVALI conteneur. Les variables ne sont pas autorisées à référencer des
DCONTAINE conteneurs.
RREF

0xC0010013 DTS_E_INVA Assignation d'une valeur ou d'un objet non valide à la variable « %1 ».
-1073676269 LIDVARVAL Cette erreur se produit lorsqu'une valeur n'est pas appropriée aux
UE variables.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0010014 DTS_E_GENE Une ou plusieurs erreurs se sont produites. D'autres erreurs


-1073676268 RICERROR spécifiques devraient précéder celle-ci pour fournir des informations
détaillées sur les erreurs. Ce message est utilisé en tant que valeur
retournée par les fonctions qui ont rencontré les erreurs.

0xC0010016 DTS_E_INVA Erreur lors de l'obtention ou de la définition d'une valeur de tableau.


-1073676266 LIDARRAYV Le type « % 1 » n'est pas autorisé. Ceci se produit lors du chargement
ALUE d'un tableau dans une variable.

0xC0010017 DTS_E_UNS Type non pris en charge dans le tableau. Ceci se produit lors de
-1073676265 UPPORTEDA l'enregistrement d'un tableau de types non pris en charge dans une
RRAYTYPE variable.

0xC0010018 DTS_E_PERSI Erreur lors du chargement de la valeur « %1 » du nœud « %2 ».


-1073676264 STENCEERR
OR

0xC0010019 DTS_E_INVA Le nœud « %1 » n'est pas valide. Ceci se produit lors de l'échec de
-1073676263 LIDNODE l'enregistrement.

0xC0010020 DTS_E_ERRO Échec du chargement de la tâche « %1 », type « %2 ». Les informations


-1073676256 RLOADINGT de contact de cette tâche sont « %3 ».
ASK

0xC0010021 DTS_E_ERRO L'élément « %1 » n'existe pas dans la collection « %2 ».


-1073676255 RELEMENT
NOTINCOLL

0xC0010022 DTS_E_MISS L'élément ObjectData est absent du bloc XML d'un objet hébergé. Ceci
-1073676254 INGOBJECT se produit lorsque l'analyseur XML tente de chercher l'élément de
DATA données d'un objet, sans succès.

0xC0010023 DTS_E_VARI La variable « %1 » est introuvable. Cette erreur se produit lors de la


-1073676253 ABLENOTFO tentative d'extraction d'une variable d'une collection de variables sur
UNDINCOLL un conteneur au cours de l'exécution du package et que la variable est
absente. Un nom de variable a peut-être changé ou la variable n'est
pas créée.

0xC0010025 DTS_E_HASE Le package ne peut pas s'exécuter, car il contient des tâches qui n'ont
-1073676251 MPTYTASKH pas pu se charger.
OSTS

0xC0010026 DTS_E_TASK Échec de chargement de la tâche. Les informations de contact de cette


-1073676250 ISEMPTY tâche sont « %1 ».
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0010027 DTS_E_ERRO Erreur lors du chargement de la tâche « %1 ».


-1073676249 RLOADINGT
ASKNOCON
TACT

0xC0010028 DTS_E_ERRO Erreur lors du chargement de la tâche. Ceci se produit lorsque le


-1073676248 RATLOADTA chargement d'une tâche à partir de XML échoue.
SK

0xC0010200 DTS_E_MUL Le %1 ne peut pas écrire dans le cache parce que le %2 y a déjà
-1073675776 TIPLECACHE effectué une opération d'écriture.
WRITES

0xC0010201 DTS_E_SETC Échec de préparation du cache pour les nouvelles données.


-1073675775 ACHEFORIN
SERTFAILED

0xC0010202 DTS_E_SETC Échec de marquage du cache comme étant rempli des données.
-1073675774 ACHEFORFI
LLFAILED

0xC0010203 DTS_E_READ Le cache n'est pas initialisé et ne peut pas être lu par %1.
-1073675773 UNINITIALIZ
EDCACHE

0xC0010204 DTS_E_SETC Échec de préparation du cache pour la fourniture des données.


-1073675772 ACHEFORRE
ADFAILED

0xC0010205 DTS_E_READ Une opération d'écriture dans le cache est actuellement effectuée par
-1073675771 NOTFILLED %1 et le cache ne peut pas être lu par %2.
CACHE

0xC0010206 DTS_E_WRIT Le cache est lu à partir de %1 et il ne peut pas y être écrit par %2.
-1073675770 EWHILECAC
HEINUSE

0xC0011001 DTS_E_CAN Impossible de charger l'objet d'exécution à partir du nœud XML


-1073672191 TLOADFRO spécifié. Ceci se produit lors de la tentative de chargement d'un
MNODE package ou d'un autre objet à partir d'un nœud XML dont le type est
incorrect, tel qu'un nœud XML non SSIS.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0011002 DTS_E_OPE Impossible d'ouvrir le fichier de package « %1 » en raison de l'erreur


-1073672190 NPACKAGEF 0x%2!8.8X! "%3". Ceci se produit lors du chargement d'un package et
ILE que le fichier ne peut s'ouvrir ou se charger correctement dans le
document XML. Soit un nom de fichier incorrect a été spécifié lors de
l'appel de la méthode LoadPackage, soit le format du fichier XML
spécifié est incorrect.

0xC0011003 DTS_E_LOA Impossible de charger XML en raison de l'erreur 0x%1!8.8X! « %2 ».


-1073672189 DPACKAGEX Ceci se produit lors du chargement d'un package et que le fichier ne
ML peut s'ouvrir ou se charger correctement dans le document XML. Soit
le nom du fichier fourni à la méthode LoadPackage est incorrect, soit
le format du fichier XML spécifié est incorrect.

0xC0011004 DTS_E_LOA Impossible de charger XML à partir du fichier de package « %1 » en


-1073672188 DPACKAGEX raison de l'erreur 0x%2!8.8X! "%3". Ceci se produit lors du chargement
MLFILE d'un package et que le fichier ne peut pas s'ouvrir ou se charger
correctement dans un document XML. Soit le nom du fichier fourni à
la méthode LoadPackage est incorrect, soit le format du fichier XML
spécifié est incorrect.

0xC0011005 DTS_E_OPE Impossible d'ouvrir le fichier de package. Ceci se produit lors du


-1073672187 NFILE chargement d'un package et que le fichier ne peut pas s'ouvrir ou se
charger correctement dans un document XML. Soit le nom du fichier
fourni à la méthode LoadPackage est incorrect, soit le format du fichier
XML spécifié est incorrect.

0xC0011006 DTS_E_UNA Impossible de décoder un format binaire dans le package.


-1073672186 BLETODECO
DEBINARYF
ORMAT

0xC0011007 DTS_E_FUN Impossible de charger le package en XML, car son format XML n'est
-1073672185 DAMENTALL pas valide. Une erreur spécifique de l'analyseur XML sera publiée.
OADINGERR
OR

0xC0011008 DTS_E_LOA Erreur lors du chargement à partir de XML. Aucune information


-1073672184 DFROMXML supplémentaire ne peut être fournie pour ce problème, car aucun
objet Events n'a été passé là où des informations détaillées sur l'erreur
peuvent être stockées.

0xC0011009 DTS_E_XML Impossible de créer une instance du modèle d'objet de document


-1073672183 DOMERROR XML. MSXML n'est peut-être pas enregistré.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC001100D DTS_E_CAN Impossible de charger le package. Ceci se produit lors de la tentative


-1073672179 NOTLOADO de chargement d'une version de package plus ancienne, ou le fichier
LDPACKAGE de package se rapporte à un objet dont la structure n'est pas valide.
S

0xC001100E DTS_E_SAVE Impossible d'enregistrer le fichier de package.


-1073672178 FILE

0xC001100F DTS_E_SAVE Impossible d'enregistrer le fichier de package « %1 » avec l'erreur


-1073672177 PACKAGEFIL 0x%2!8.8X! "%3".
E

0xC001200D DTS_E_IDTS L'objet doit hériter de IDTSName100 et ce n'est pas le cas.


-1073668083 NAMENOTS
UPPORTED

0xC0012018 DTS_E_CON Le format de l'entrée de configuration « %1 » est incorrect, car il ne


-1073668072 FIGFORMAT commence pas par le séparateur de packages. Il n'y a pas de
INVALID_PA séparateur « \packages ».
CKAGEDELI
MITER

0xC0012019 DTS_E_CON Le format de l'entrée de configuration « %1 » est incorrect. Ceci peut


-1073668071 FIGFORMAT se produire en raison d'un séparateur absent ou d'erreurs de format,
INVALID comme un séparateur de tableaux non valide.

0xC001201B DTS_E_CON Échec de l'exportation du fichier de configuration.


-1073668069 FIGFILEFAILE
DEXPORT

0xC0012021 DTS_E_PROP La collection Properties ne peut pas être modifiée.


-1073668063 ERTIESCOLL
ECTIONREA
DONLY

0xC0012022 DTS_E_DTRX Impossible d'enregistrer le fichier de configuration. Le fichier est peut-


-1073668062 MLSAVEFAIL être en lecture seule.
URE

0xC0012023 DTS_E_FAILP La propriété FailPackageOnFailure n'est pas applicable au conteneur


-1073668061 ACKAGEON de package.
FAILURENA

0xC0012024 DTS_E_TASK La tâche « %1 » ne peut pas s'exécuter sur la version installée


-1073668060 PRODUCTLE d'Integration Services %2. La version %3 ou une version ultérieure est
VEL requise.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0012029 DTS_E_UNA Impossible d'enregistrer xml dans « %1 ». Le fichier est peut-être en


-1073668055 BLETOSAVET lecture seule.
OFILE

0xC0012037 DTS_E_CON Impossible de convertir un type dans la configuration « %1 » pour le


-1073668041 FIGTYPECO chemin d'accès au package « %2 ». Ceci se produit lorsqu'une valeur
NVERSIONF de configuration ne peut être convertie d'une chaîne dans le type de
AILED destination approprié. Vérifiez la valeur de la configuration pour vous
assurer qu'elle peut être convertie dans le type de propriété ou de
variable de destination.

0xC0012049 DTS_E_CON Échec de la configuration. Ceci est un avertissement générique pour


-1073668023 FIGFAILED tous les types de configuration. D'autres avertissements doivent
précéder celui-ci avec plus d'informations.

0xC0012050 DTS_E_REM Le package n'a pas pu être validé par la tâche ExecutePackage. Le
-1073668016 OTEPACKAG package ne peut pas s'exécuter.
EVALIDATIO
N

0xC0013001 DTS_E_FAILT Impossible de créer le mutex « %1 », avec l'erreur 0x%2!8.8X!.


-1073663999 OCREATEM
UTEX

0xC0013002 DTS_E_MUT Le mutex « %1 » existe déjà et est détenu par un autre utilisateur.
-1073663998 EXOWNBYD
IFFUSER

0xC0013003 DTS_E_WAIT Impossible d'acquérir le mutex « %1 », avec l'erreur 0x%2!8.8X!.


-1073663997 FORMUTEXF
AILED

0xC0013004 DTS_E_FAILT Impossible de libérer le mutex « %1 », avec l'erreur 0x%2!8.8X!.


-1073663996 ORELEASEM
UTEX

0xC0014003 DTS_E_INVA Le pointeur de tâche du wrapper n'est pas valide. Le wrapper a un


-1073659901 LIDTASKPOI pointeur non valide vers une tâche.
NTER

0xC0014004 DTS_E_ALRE L'exécutable a été ajouté à la collection Executables d'un autre


-1073659900 ADYADDED conteneur. Ceci se produit lorsqu'un client essaie d'ajouter un
exécutable à plusieurs collections Executables. Vous devez supprimer
l'exécutable de la collection Executables actuelle avant d'essayer de
l'ajouter.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0014005 DTS_E_UNK Le type de connexion « %1 » spécifié pour le gestionnaire de


-1073659899 NOWNCON connexions « %2 » n'est pas reconnu comme type de gestionnaire de
NECTIONM connexions valide. Cette erreur est retournée lorsqu'une tentative est
ANAGERTYP effectuée de créer un gestionnaire de connexions pour un type de
E connexion inconnu. Vérifiez l'orthographe du nom du type de
connexion.

0xC0014006 DTS_E_COLL Un objet a été créé, mais la tentative de l'ajouter à une collection a
-1073659898 ECTIONCOU échoué. Ceci peut se produire en raison d'une insuffisance de
LDNTADD mémoire.

0xC0014007 DTS_E_ODB Une erreur s'est produire lors de la création d'un environnement
-1073659897 CERROREN ODBC (Open Database Connectivity).
V

0xC0014008 DTS_E_ODB Une erreur s'est produite lors de la création d'une connexion de base
-1073659896 CERRORDB de données ODBC (Open Database Connectivity).
C

0xC0014009 DTS_E_ODB Une erreur s'est produite en essayant d'établir une connexion ODBC
-1073659895 CERRORCO (Open Database Connectivity) avec le serveur de base de données.
NNECT

0xC001400A DTS_E_CON Le qualificateur est déjà défini sur cette instance du gestionnaire de
-1073659894 NECTIONM connexions. Le qualificateur peut être défini une seule fois par
ANAGERQU instance.
ALIFIERALRE
ADYSET

0xC001400B DTS_E_CON Le qualificateur n'a pas été défini sur cette instance du gestionnaire de
-1073659893 NECTIONM connexions. La définition du qualificateur est nécessaire pour terminer
ANAGERQU l'initialisation.
ALIFIERNOT
SET

0xC001400C DTS_E_CON Ce gestionnaire de connexions ne prend pas en charge la spécification


-1073659892 NECTIONM des qualificateurs.
ANAGERQU
ALIFIERNOT
SUPPORTED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC001400D DTS_E_CAN Le gestionnaire de connexions « 0x%1 » ne peut pas être dupliqué


-1073659891 NOTCLONE pour une exécution extra-processus.
CONNECTI
ONMANAG
ER

0xC001400E DTS_E_NOS Le module fournisseur d'informations de SQL Server Profiler n'a pas
-1073659890 QLPROFILER réussi à charger pfclnt.dll. Veuillez vérifier que SQL Server Profiler est
DLL installé.

0xC001400F DTS_E_LOGF L'infrastructure d'enregistrement SSIS a échoué avec le code d'erreur


-1073659889 AILED 0x%1!8.8X!. L'erreur indique que ce problème d'enregistrement n'est
pas imputable à un module fournisseur d'informations spécifique.

0xC0014010 DTS_E_LOGP Le module fournisseur d'informations « %1 » a échoué avec le code


-1073659888 ROVIDERFAI d'erreur 0x%2!8.8X! (%3). Ceci indique une erreur d'enregistrement
LED imputable au module fournisseur d'informations spécifié.

0xC0014011 DTS_E_SAVE La méthode SaveToSQLServer a rencontré le code d'erreur OLE DB


-1073659887 TOSQLSERV 0x%1!8.8X! (%2). L'instruction SQL émise a échoué.
ER_OLEDB

0xC0014012 DTS_E_LOA La méthode LoadFromSQLServer a rencontré le code d'erreur OLE DB


-1073659886 DFROMSQL 0x%1!8.8X! (%2). L'instruction SQL émise a échoué.
SERVER_OL
EDB

0xC0014013 DTS_E_REM La méthode RemoveFromSQLServer a rencontré le code d'erreur OLE


-1073659885 OVEFROMS DB 0x%1!8.8X! (%2) L'instruction SQL émise a échoué.
QLSERVER_
OLEDB

0xC0014014 DTS_E_EXIST La méthode ExistsOnSQLServer a rencontré le code d'erreur OLE DB


-1073659884 SONSQLSER 0x%1!8.8X! (%2). L'instruction SQL émise a échoué.
VER_OLEDB

0xC0014015 DTS_E_CON OLE DB n'a pas réussi à créer une connexion de base de données lors
-1073659883 NECTIONST de l'utilisation de la chaîne de connexion fournie.
RING

0xC0014016 DTS_E_FRO Lors de l'ajout d'une contrainte de précédence, un exécutable From a


-1073659882 MEXECISNO été spécifié, mais il n'est pas un enfant de ce conteneur.
TCHILD
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0014017 DTS_E_TOEX Lors de l'ajout d'une contrainte de précédence, l'exécutable To spécifié


-1073659881 ECISNOTCHI n'est pas un enfant de ce conteneur.
LD

0xC0014018 DTS_E_ODB Une erreur s'est produite en essayant d'inscrire une connexion ODBC
-1073659880 CTRANSACT dans une transaction. SQLSetConnectAttr n'a pas pu définir l'attribut
IONENLIST SQL_ATTR_ENLIST_IN_DTC.

0xC0014019 DTS_E_CON Le gestionnaire de connexions « %1 » n'obtiendra pas de connexion,


-1073659879 NECTIONOF car la propriété OfflineMode du package a la valeur TRUE. Lorsque
FLINE OfflineMode a la valeur TRUE, il est impossible d'obtenir des
connexions.

0xC001401A DTS_E_BEGI Le Runtime SSIS n'a pas réussi à démarrer la transaction distribuée en
-1073659878 NTRANSAC raison de l'erreur 0x%1!8.8X! « %2 ». La transaction DTC n'a pas pu
TION démarrer. Ceci a pu se produire parce que le service MSDTC n'est pas
en cours d'exécution.

0xC001401B DTS_E_SETQ La méthode SetQualifier ne peut pas être appelée sur un gestionnaire
-1073659877 UALIFIERDE de connexions au cours de l'exécution du package. Cette méthode est
SIGNTIMEO utilisée uniquement au moment de la conception.
NLY

0xC001401C DTS_E_SQLP Pour qu'il soit possible de stocker ou de modifier des packages dans
-1073659876 ERSISTENCE SQL Server, la version de la base de données et du runtime SSIS
VERSION doivent être identiques. Le stockage de packages dans des versions
antérieures n'est pas pris en charge.

0xC001401D DTS_E_CON La validation de la connexion « %1 » a échoué.


-1073659875 NECTIONVA
LIDATIONFA
ILED

0xC001401E DTS_E_INVA Le nom de fichier « %1 » spécifié dans la connexion n'est pas valide.
-1073659874 LIDFILENAM
EINCONNEC
TION

0xC001401F DTS_E_MUL Il n'est pas possible de spécifier plusieurs noms de fichiers sur une
-1073659873 TIPLEFILESO connexion lorsque la propriété Retain a la valeur TRUE. Des barres
NRETAINED verticales ont été détectées sur la chaîne de connexion, ce qui signifie
CONNECTI que plusieurs noms de fichiers sont spécifiés et, de plus, la propriété
ON Retain a la valeur TRUE.

0xC0014020 DTS_E_ODB Une erreur ODBC %1!d! s’est produite.


-1073659872 CERROR
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0014021 DTS_E_PREC La contrainte de précédence comportait une erreur entre « %1 » et «


-1073659871 EDENCECO %2 ».
NSTRAINT

0xC0014022 DTS_E_FAILE Impossible de remplir la collection ForEachEnumeratorInfos avec des


-1073659870 DPOPNATIV ForEachEnumerators natifs. Le code d'erreur était le suivant : %1.
EFEE

0xC0014023 DTS_E_GETE La méthode GetEnumerator de l'énumérateur ForEach a échoué avec


-1073659869 NUMERATO le code d'erreur 0x%1!8.8X! « %2 ». Ceci se produit lorsque
R l'énumérateur ForEach ne parvient pas à effectuer l'énumération.

0xC0014024 DTS_E_CAN Les données de certificat brutes ne peuvent pas être obtenues auprès
-1073659868 TGETCERTD de l'objet de certificat fourni (erreur : %1). Ceci se produit lorsque
ATA CPackage::put_CertificateObject ne peut pas instancier l'objet
ManagedHelper , lorsque l'objet ManagedHelper échoue ou lorsque
l'objet ManagedHelper retourne un tableau mal formé.

0xC0014025 DTS_E_CAN Impossible de créer un contexte de certificat (erreur : %1). Ceci se


-1073659867 TCREATECER produit dans CPackage::put_CertificateObject ou dans
TCONTEXT CPackage::LoadFromXML lorsque la fonction CryptoAPI
correspondante échoue.

0xC0014026 DTS_E_CAN L'ouverture du magasin de certificats MY a échoué avec le code


-1073659866 TOPENCERT d'erreur « %1 ». Ceci se produit dans
STORE CPackage::LoadUserCertificateByName et
CPackage::LoadUserCertificateByHash.

0xC0014027 DTS_E_CAN Le certificat spécifié par le nom dans le magasin MY est introuvable
-1073659865 TFINDCERTB (erreur : %1). Ceci se produit dans
YNAME CPackage::LoadUserCertificateByName.

0xC0014028 DTS_E_CAN Impossible de trouver le certificat spécifié par hachage dans le


-1073659864 TFINDCERTB magasin « MY » (erreur : %1). Se produit dans
YHASH CPackage::LoadUserCertificateByHash.

0xC0014029 DTS_E_INVA La valeur de hachage n'est pas un tableau unidimensionnel d'octets


-1073659863 LIDCERTHA (erreur : %1). Ceci se produit dans
SHFORMAT CPackage::LoadUserCertificateByHash.

0xC001402A DTS_E_CANT Les données du tableau sont inaccessibles (erreur : %1). Cette erreur
-1073659862 ACCESSARR peut se produire partout où GetDataFromSafeArray est appelé.
AYDATA
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC001402B DTS_E_CREA L'objet ManagedHelper de SSIS a échoué en cours de création avec


-1073659861 TEMANAGE l'erreur 0x%1!8.8X! « %2 ». Ceci se produit partout où
DHELPERFAI CoCreateInstance CLSID_DTSManagedHelper échoue.
LED

0xC001402C DTS_E_OLED Le Runtime SSIS a échoué l'inscription de la connexion OLE DB dans


-1073659860 BTRANSACT une transaction distribuée avec l'erreur 0x%1!8.8X! « %2 ».
IONENLIST

0xC001402D DTS_E_SIGN La signature du package a échoué avec l'erreur 0x%1!8.8X! « %2 ».


-1073659859 PACKAGEFAI Ceci se produit lorsque la méthode ManagedHelper.SignDocument
LED échoue.

0xC001402E DTS_E_CHEC Échec de la recherche d'enveloppe de signature XML dans le XML du


-1073659858 KENVELOPE package avec l'erreur 0x%1!8.8X! « %2 ». Ceci se produit dans
FAILED CPackage::LoadFromXML.

0xC001402F DTS_E_GETX Échec de l'obtention de la source XML à partir de l'objet XML DOM
-1073659857 MLSOURCEF avec l'erreur 0x%1!8.8X! « %2 ». Cela se produit lorsque
AILED IXMLDOMDocument::get_xml échoue.

0xC0014030 DTS_E_PACK La signature de chiffrement du package n'a pas réussi la vérification en


-1073659856 AGEVERIFIC raison de l'erreur 0x%1!8.8X! « %2 ». Ceci se produit lorsque
ATIONFAILE l'opération de vérification de la signature échoue.
D

0xC0014031 DTS_E_GETK Échec de l'obtention de la paire de clés de chiffrement associées au


-1073659855 EYFROMCER certificat spécifié avec l'erreur 0x%1!8.8X! « %2 ». Vérifiez que vous
TFAILED avez la paire de clés correspondant au certificat émis. Cette erreur se
produit généralement en tentant de signer un document à l'aide d'un
certificat dont la personne n'a pas la clé privée.

0xC0014032 DTS_E_INVA La signature numérique n'est pas valide. Le contenu du package a été
-1073659854 LIDSIGNATU modifié.
RE

0xC0014033 DTS_E_UNT La signature numérique est valide ; toutefois le signataire n'est pas
-1073659853 RUSTEDSIG approuvé et, par conséquent, l'authenticité ne peut être garantie.
NATURE

0xC0014034 DTS_E_TRA La connexion ne prend pas en charge l'inscription dans une


-1073659852 NSACTIONE transaction distribuée.
NLISTNOTS
UPPORTED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0014035 DTS_E_PACK Impossible d'appliquer la protection de package avec l'erreur


-1073659851 AGEPROTEC 0x%1!8.8X! « %2 ». Cette erreur se produit lors d'un enregistrement en
T Xml.

0xC0014036 DTS_E_PACK Impossible de supprimer la protection de package avec l'erreur


-1073659850 AGEUNPRO 0x%1!8.8X! « %2 ». Ceci se produit dans la méthode
TECT CPackage::LoadFromXML.

0xC0014037 DTS_E_PACK Le package est chiffré avec un mot de passe. Le mot de passe n'est pas
-1073659849 AGEPASSW spécifié ou est incorrect.
ORD

0xC0014038 DTS_E_DUPL Une contrainte de précédence existe déjà entre les exécutables
-1073659848 ICATECONS spécifiés. Plusieurs contraintes de précédence ne sont pas autorisées.
TRAINT

0xC0014039 DTS_E_PACK Le package n'a pas pu se charger en raison de l'erreur 0x%1!8.8X! « %2


-1073659847 AGELOADFA ». Ceci se produit lorsque CPackage::LoadFromXML échoue.
ILED

0xC001403A DTS_E_PACK Impossible de trouver l'objet de package dans l'enveloppe XML signée
-1073659846 AGEOBJECT avec l'erreur 0x%1!8.8X! « %2 ». Ceci se produit lorsque l'enveloppe
NOTENVEL XML signée ne contient pas de package SSIS, comme prévu.
OPED

0xC001403B DTS_E_JAGG Les longueurs des tableaux de paramètres, de types et de descriptions


-1073659845 EDEVENTIN ne sont pas égales. Les longueurs doivent être égales. Ceci se produit
FO lorsque les longueurs des tableaux sont différentes. Il doit y avoir une
entrée par paramètre dans chaque tableau.

0xC001403C DTS_E_GETP Une erreur OLE DB 0x%1!8.8X! s'est produite lors de l'énumération des
-1073659844 ACKAGEINF packages. Une instruction SQL a été émise et a échoué.
OS

0xC001403D DTS_E_UNK Le type de module fournisseur d'informations « %1 » spécifié pour le


-1073659843 NOWNLOG module « %2 » n'est pas reconnu comme étant un type valide. Cette
PROVIDERT erreur se produit lors d'une tentative de création d'un module
YPE fournisseur d'informations pour un type de module inconnu. Vérifiez
l'orthographe du nom du type de module fournisseur d'informations.

0xC001403E DTS_E_UNK Le type de module fournisseur d'informations n'est pas reconnu


-1073659842 NOWNLOG comme étant valide. Cette erreur se produit lors d'une tentative de
PROVIDERT création d'un module fournisseur d'informations pour un type de
YPENOSUBS module inconnu. Vérifiez l'orthographe du nom du type de module
fournisseur d'informations.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC001403F DTS_E_UNK Le type de connexion spécifié pour le gestionnaire de connexions n'est


-1073659841 NOWNCON pas valide. Cette erreur se produit lorsqu'une tentative est effectuée
NECTIONM de créer un gestionnaire de connexions pour un type de connexion
ANAGERTYP inconnu. Vérifiez l'orthographe du nom du type de connexion.
ENOSUBS

0xC0014040 DTS_E_PACK Une erreur s'est produite lors de la tentative de suppression du


-1073659840 AGEREMOV package « %1 » de SQL Server.
EFAILED

0xC0014042 DTS_E_FOLD Une erreur s'est produite lors de la création d'un dossier sur SQL
-1073659838 ERADDFAILE Server nommé « %1 » dans le dossier « %2 ».
D

0xC0014043 DTS_E_CREA La méthode CreateFolderOnSQLServer a rencontré le code d'erreur


-1073659837 TEFOLDERO OLE DB 0x%1!8.8X! (%2) L'instruction SQL émise a échoué.
NSQLSERVE
R_OLEDB

0xC0014044 DTS_E_FOLD Une erreur s'est produite en renommant le dossier « %1\\%2 » en


-1073659836 ERRENAMEF « %1\\%3 » sur SQL Server.
AILED

0xC0014045 DTS_E_REN La méthode RenameFolderOnSQLServer a rencontré le code d'erreur


-1073659835 AMEFOLDE OLE DB 0x%1!8.8X! (%2). L'instruction SQL émise a échoué.
RONSQLSER
VER_OLEDB

0xC0014046 DTS_E_FOLD Erreur lors de la suppression du dossier SQL Server « %1 ».


-1073659834 ERDELETEFA
ILED

0xC0014047 DTS_E_REM La méthode RemoveFolderOnSQLServer a rencontré le code d'erreur


-1073659833 OVEFOLDER OLE DB 0x%1!8.8X! (%2). L'instruction SQL émise a échoué.
FROMSQLS
ERVER_OLE
DB

0xC0014048 DTS_E_INVA Le chemin d'accès du package spécifié ne contient pas de nom de


-1073659832 LIDPATHTOP package. Ceci se produit lorsque le chemin d'accès ne contient pas au
ACKAGE moins une barre oblique inverse ou une barre oblique.

0xC0014049 DTS_E_FOLD Le dossier « %1 » est introuvable.


-1073659831 ERNOTFOU
ND
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC001404A DTS_E_FIND En essayant de rechercher un dossier sur SQL, une erreur OLE DB s'est
-1073659830 FOLDERON produite avec le code d'erreur 0x%1!8.8X! (%2).
SQLSERVER
_OLEDB

0xC001404B DTS_E_OPE Le module fournisseur d'informations SSIS n'a pas réussi à ouvrir le
-1073659829 NLOGFAILE journal. Code d’erreur : 0x%1!8.8X!.
D

0xC001404C DTS_E_GETC Échec de l'obtention de la collection ConnectionInfos avec l'erreur


-1073659828 ONNECTIO 0x%1!8.8X! « %2 ». Cette erreur se produit lorsque l'appel à
NINFOS IDTSApplication100::get_ConnectionInfos échoue.

0xC001404D DTS_E_VARI Blocage détecté lors de la tentative de verrouillage de variables. Les


-1073659827 ABLEDEADL verrous ne peuvent être obtenus à l'issue de 16 tentatives. Le délai
OCK d'attente des verrous a expiré.

0xC001404E DTS_E_NOT La collection Variables n'a pas été retournée de VariableDispenser.


-1073659826 DISPENSED L'opération qui a été tentée n'est autorisée que sur les collections
distribuées.

0xC001404F DTS_E_VARI Cette collection Variables a déjà été déverrouillée. La méthode Unlock
-1073659825 ABLESALRE n'est appelée qu'une seule fois sur une collection Variables distribuée.
ADYUNLOC
KED

0xC0014050 DTS_E_VARI Échec du déverrouillage d'une ou plusieurs variables.


-1073659824 ABLEUNLOC
KFAILED

0xC0014051 DTS_E_DISP La collection Variables est retournée de VariableDispenser et ne peut


-1073659823 ENSEDREAD être modifiée. Il n'est pas possible d'ajouter des éléments à une
ONLY collection distribuée ni d'en supprimer.

0xC0014052 DTS_E_VARI La variable « %1 » figure déjà dans la liste des verrouillages en lecture.
-1073659822 ABLEALREA Une variable ne peut être ajoutée qu'une seule fois soit à la liste des
DYONREAD verrous de lecture, soit à celle des verrous d'écriture.
LIST

0xC0014053 DTS_E_VARI La variable « %1 » figure déjà dans la liste des verrouillages en écriture.
-1073659821 ABLEALREA Une variable ne peut être ajoutée qu'une seule fois soit à la liste des
DYONWRIT verrous de lecture, soit à celle des verrous d'écriture.
ELIST
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0014054 DTS_E_LOCK Impossible de verrouiller la variable « %1 » pour l'accès en lecture avec


-1073659820 VARIABLEF l'erreur 0x%2!8.8X! "%3".
ORREAD

0xC0014055 DTS_E_LOCK Impossible de verrouiller la variable « %1 » pour l'accès en lecture/


-1073659819 VARIABLEF écriture avec l'erreur 0x%2!8.8X! "%3".
ORWRITE

0xC0014056 DTS_E_CUST L'événement personnalisé « %1 » est déjà déclaré avec une autre liste
-1073659818 OMEVENTC de paramètres. Une tâche essaye de déclarer un événement
ONFLICT personnalisé qu'une autre tâche a déjà déclaré avec une liste de
paramètres différente.

0xC0014057 DTS_E_EVEN La tâche fournissant l'événement personnalisé « %1 » ne permet pas à


-1073659817 THANDLER cet événement d'être géré dans le package. L'événement personnalisé
NOTALLOW a été déclaré avec AllowEventHandlers = FALSE.
ED

0xC0014059 DTS_E_UNS VariableDispenser a reçu une collection Variables non fiable. Cette
-1073659815 AFEVARIABL opération ne peut pas être répétée.
ESALREADY
SET

0xC001405A DTS_E_INVA GetPackagePath a été appelé sur ForEachEnumerator, mais aucun


-1073659814 LIDPARENTP chemin d'accès du package ForEachLoop n'a été spécifié.
ACKAGEPAT
H

0xC001405B DTS_E_VARI Un blocage a été détecté lors de la tentative de verrouillage de la


-1073659813 ABLEDEADL variable « %1 » pour l'accès en lecture. Un verrou n'a pas pu être
OCK_READ obtenu à l'issue de 16 tentatives et son délai d'attente a expiré.

0xC001405C DTS_E_VARI Un blocage a été détecté lors de la tentative de verrouillage des


-1073659812 ABLEDEADL variables « %1 » pour l’accès en lecture/écriture. Un verrou ne peut
OCK_READ pas être obtenu à l’issue de 16 tentatives. Le délai d'attente des
WRITE verrous a expiré.

0xC001405D DTS_E_VARI Un blocage a été détecté lors de la tentative de verrouillage des


-1073659811 ABLEDEADL variables « %1 » pour l'accès en lecture, et des variables « %2 » pour
OCK_BOTH l'accès en lecture/écriture. Un verrou ne peut pas être obtenu à l’issue
de 16 tentatives. Le délai d'attente des verrous a expiré.

0xC001405E DTS_E_PACK Le niveau de protection du package nécessite un mot de passe, mais la


-1073659810 AGEPASSW propriété PackagePassword est vide.
ORDEMPTY
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC001405F DTS_E_DECR Impossible de déchiffrer un nœud XML chiffré, car le mot de passe n'a
-1073659809 YPTXML_PA pas été spécifié ou est incorrect. Le chargement du package tentera de
SSWORD poursuivre l'opération sans les informations chiffrées.

0xC0014060 DTS_E_DECR Impossible de déchiffrer un package qui est chiffré avec une clé
-1073659808 YPTPACKAG utilisateur. Vous n'êtes peut-être pas l'utilisateur qui a chiffré le
E_USERKEY package ou vous n'utilisez pas le même ordinateur qui a servi à
enregistrer le package.

0xC0014061 DTS_E_SERV Le niveau de protection, ServerStorage, ne peut pas être utilisé lors de
-1073659807 ERSTORAGE l'enregistrement dans cette destination. Le système ne peut pas
DISALLOWE vérifier que la destination prend en charge la fonction de stockage
D sécurisé.

0xC0014062 DTS_E_LOA La méthode LoadFromSQLServer a échoué.


-1073659806 DFROMSQL
SERVER

0xC0014063 DTS_E_SIGN Impossible de charger le package, car l'état de la signature numérique


-1073659805 ATUREPOLI ne respecte pas la stratégie de signature. Erreur 0x%1!8.8X! "%2"
CYVIOLATIO
N

0xC0014064 DTS_E_SIGN Le package n'est pas signé.


-1073659804 ATURENOTP
RESENT

0xC0014065 DTS_E_SQLP Le module fournisseur d'informations de SQL Server Profiler n'a pas
-1073659803 ROFILERDLL réussi à charger pfclnt.dll car il est pris en charge uniquement sur les
_ONLY_X86 systèmes 32 bits.

0xC0014100 DTS_E_NAM Impossible d'ajouter l'objet, car un autre objet portant le même nom
-1073659648 EALREADYA existe déjà dans la collection. Utilisez un autre nom pour résoudre
DDED cette erreur.

0xC0014101 DTS_E_NAM Le nom d'objet ne peut être changé de « %1 » en « %2 », car un autre


-1073659647 EALREADYE objet de la collection porte déjà ce nom. Utilisez un autre nom pour
XISTS résoudre cette erreur.

0xC0014103 DTS_E_FAILE Une erreur s'est produite lors de l'énumération des dépendances du
-1073659645 DDEPENDE package. Recherchez plus d'informations dans les autres messages.
NCIES
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0014104 DTS_E_INVA Les paramètres du package actuel ne sont pas pris en charge. Modifiez
-1073659644 LIDCHECKP la propriété SaveCheckpoints ou TransactionOption.
OINT_TRAN
SACTION

0xC001410E DTS_E_CON Le gestionnaire de connexions n'a pas pu sortir de la transaction.


-1073659634 NECTIONM
ANAGERJOI
NTRANSAC
TION

0xC0015001 DTS_E_BPD L'ID de point d'arrêt spécifié existe déjà. Cette erreur se produit
-1073655807 UPLICATE lorsqu'une tâche appelle CreateBreakpoint plusieurs fois avec le même
ID. Il est possible de créer un point d'arrêt plusieurs fois avec le même
ID si la tâche appelle RemoveBreakpoint à la première création, avant
de créer le deuxième.

0xC0015002 DTS_E_BPU L'ID de point d'arrêt spécifié n'existe pas. Cette erreur se produit
-1073655806 NKNOWNID lorsqu'une tâche fait référence à un point d'arrêt qui n'existe pas.

0xC0015004 DTS_E_CAN Impossible d'ouvrir le fichier « %1 » pour l'écriture. Le fichier est en


-1073655804 TWRITETOFI lecture seule ou vous ne disposez pas des autorisations appropriées.
LE

0xC0015005 DTS_E_NOR Aucun ensemble de lignes de résultat n'est associé à l'exécution de


-1073655803 OWSETRET cette requête. Le résultat n'est pas correctement spécifié.
URNED

0xC0015105 DTS_E_DUM Les fichiers de vidage du débogage n'ont pas été générés
-1073655547 P_FAILED correctement. Le hresult est 0x%1!8.8X!.

0xC0016001 DTS_E_INVA L'URL spécifiée n'est pas valide. Ceci peut se produire lorsque l'URL du
-1073651711 LIDURL serveur ou du proxy a la valeur NULL ou en cas de format incorrect. Un
format d’URL valide est de la forme
https://ServerName:Port/ResourcePath ou
https://ServerName:Port/ResourcePath.

0xC0016002 DTS_E_INVA L'URL %1 n'est pas valide. Ceci peut se produire lorsqu'un schéma
-1073651710 LIDSCHEME autre que http ou https est spécifié, ou que le format de l'URL est
incorrect. Un format d’URL valide est de la forme
https://ServerName:Port/ResourcePath ou
https://ServerName:Port/ResourcePath.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0016003 DTS_E_WIN La connexion au serveur %1 ne peut pas être établie. Cette erreur peut
-1073651709 HTTPCANN se produire lorsque le serveur n'existe pas, ou que les paramètres du
OTCONNEC proxy sont incorrects.
T

0xC0016004 DTS_E_CON La connexion avec le serveur a été réinitialisée ou s'est interrompue.


-1073651708 NECTIONTE Réessayez plus tard.
RMINATED

0xC0016005 DTS_E_LOGI La tentative de connexion a échoué pour « %1 ». Cette erreur se


-1073651707 NFAILURE produit lorsque les informations d'identification de connexion fournies
sont incorrectes. Vérifiez ces informations.

0xC0016006 DTS_E_INVA Impossible de résoudre le nom de serveur spécifié dans l'URL %1.
-1073651706 LIDSERVER
NAME

0xC0016007 DTS_E_PROX Échec de l'authentification du proxy. Cette erreur se produit lorsque


-1073651705 YAUTH les informations d'identification de connexion ne sont pas fournies, ou
sont incorrectes.

0xC0016008 DTS_E_SECU La réponse de certificat TLS/SSL obtenue du serveur n'est pas valide.
-1073651704 REFAILURE Impossible de traiter la requête.

0xC0016009 DTS_E_TIME Le délai d'attente de la requête a expiré. Cette erreur peut se produire
-1073651703 OUT lorsque le délai d'attente spécifié est trop court ou lorsqu'une
connexion au serveur ou au proxy ne peut pas être établie. Assurez-
vous que l'URL du serveur et l'URL du proxy sont correctes.

0xC001600A DTS_E_CLIE Un certificat client est absent. Cette erreur se produit lorsque le
-1073651702 NTAUTH serveur attend un certificat client TLS/SSL et que l'utilisateur a fourni
un certificat non valide, ou n'a fourni aucun certificat. Un certificat
client doit être configuré pour cette connexion.

0xC001600B DTS_E_REDI Le serveur spécifié, URL %1, contient une redirection, et la demande
-1073651701 RECTFAILUR de redirection a échoué.
E

0xC001600C DTS_E_SERV Échec de l'authentification du serveur. Cette erreur se produit lorsque


-1073651700 ERAUTH les informations d'identification de connexion ne sont pas fournies, ou
sont incorrectes.

0xC001600D DTS_E_WIN Impossible de traiter la requête. Réessayez plus tard.


-1073651699 HTTPUNKN
OWNERROR
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC001600E DTS_E_UNK Le serveur a retourné le code - %1!u! : %2. Cette erreur se produit
-1073651698 NOWNSTAT lorsque le serveur rencontre des problèmes.
USCODE

0xC001600F DTS_E_WIN Cette plateforme n'est pas prise en charge par les services WinHttp.
-1073651697 HTTPNOTS
UPPORTED

0xC0016010 DTS_E_INVA La valeur d'expiration n'est pas valide. L'expiration doit être comprise
-1073651696 LIDTIMEOU entre %1!d! vers %2!d! (en secondes).
T

0xC0016011 DTS_E_INVA La valeur du chunk n'est pas valide. La valeur de la propriété


-1073651695 LIDCHUNKS ChunkSize doit être comprise entre %1!d! vers %2!d! (en Ko).
IZE

0xC0016012 DTS_E_CERT Erreur lors du traitement du certificat client. Cette erreur peut se
-1073651694 ERROR produire lorsque le certificat client fourni n'a pas été trouvé dans le
magasin de certificats personnels. Vérifiez que le certificat client est
valide.

0xC0016013 DTS_E_FORB Le serveur a retourné le code d'erreur « 403 - Interdit ». Cette erreur
-1073651693 IDDEN peut se produire lorsque la ressource spécifiée requiert un accès «
https », mais que la période de validité du certificat a expiré, que le
certificat n'est pas valide pour l'utilisation requise ou que le certificat a
été révoqué, ou encore que la révocation n'a pas pu être vérifiée.

0xC0016014 DTS_E_WIN Erreur lors de l'initialisation de la session HTTP avec le proxy « %1 ».


-1073651692 HTTPOPEN Cette erreur peut se produire lorsqu'un proxy non valide a été spécifié.
Le gestionnaire de connexions HTTP ne prend en charge que les
proxys de type CERN.

0xC0016015 DTS_E_OPE Erreur lors de l'ouverture du magasin de certificats.


-1073651691 NCERTSTOR
E

0xC0016016 DTS_E_UNP Impossible de déchiffrer le nœud XML protégé « %1 », avec le code


-1073651690 ROTECTXML d'erreur 0x%2!8.8X! "%3". Vous n'êtes peut-être pas autorisé à accéder
FAILED à ces informations. Cette erreur se produit en cas d'erreur de
chiffrement. Vérifiez que la clé appropriée est disponible.

0xC0016017 DTS_E_UNP Impossible de déchiffrer la chaîne de connexion protégée pour le


-1073651689 ROTECTCO serveur « %1 », avec le code d'erreur 0x%2!8.8X! "%3". Vous n'êtes
NNECTIONS peut-être pas autorisé à accéder à ces informations. Cette erreur se
TRINGFAILE produit en cas d'erreur de chiffrement. Vérifiez que la clé appropriée
D est disponible.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0016018 DTS_E_NEG Le numéro de version ne peut pas être négatif. Cette erreur se produit
-1073651688 ATIVEVERSI lorsque la propriété VersionMajor, VersionMinor ou VersionBuild du
ON package est définie sur une valeur négative.

0xC0016019 DTS_E_PACK Le package a subi une migration vers une version ultérieure au cours
-1073651687 AGEMIGRAT du chargement. Il doit être rechargé pour terminer le processus. Ceci
ED est un code d'erreur interne.

0xC0016020 DTS_E_PACK Échec de la migration du package de la version %1!d! vers la version


-1073651680 AGEMIGRAT %2!d! a échoué avec le code d’erreur 0x%3!8.8X! « %4 ».
IONFAILED

0xC0016021 DTS_E_PACK Le module de migration du package n'a pas réussi le chargement.


-1073651679 AGEMIGRAT
IONMODUL
ELOAD

0xC0016022 DTS_E_PACK Le module de migration du package a échoué.


-1073651678 AGEMIGRAT
IONMODUL
E

0xC0016023 DTS_E_CAN Impossible d'assurer la persistance de l'objet à l'aide de la persistance


-1073651677 TDETERMIN par défaut. Cette erreur se produit lorsque la persistance par défaut ne
EWHICHPR parvient pas à déterminer quels objets sont sur l'objet hébergé.
OPTOPERSI
ST

0xC0016024 DTS_E_CANT Impossible d'ajouter ou de supprimer un objet d'un package en mode


-1073651676 ADDREMOV d'exécution. Cette erreur se produit lorsqu'une tentative est effectuée
EWHENEXE d'ajouter ou de supprimer un objet d'une collection alors que le
CUTING package est en cours d'exécution.

0xC0016025 DTS_E_NOD Le nœud « %1 » est introuvable dans la persistance par défaut


-1073651675 ENOTFOUN personnalisée. Cette erreur se produit si le XML enregistré par défaut
D d'un objet extensible a été modifié de telle sorte qu'un objet
enregistré est introuvable, ou si l'objet extensible lui-même a changé.

0xC0016026 DTS_E_COLL Cette collection ne peut pas être modifiée au cours de la validation ou
-1073651674 ECTIONLOC de l'exécution du package.
KED

0xC0016027 DTS_E_COLL La collection « %1 » ne peut pas être modifiée au cours de la


-1073651673 OCKED validation ou de l'exécution du package. Impossible d'ajouter « %2 » à
la collection.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0016029 DTS_E_FTPN La connexion avec le serveur FTP n'a pas été établie.
-1073651671 OTCONNEC
TED

0xC001602A DTS_E_FTPE Une erreur s'est produite au cours de l'opération FTP demandée.
-1073651670 RROR Description détaillée de l'erreur : %1.

0xC001602B DTS_E_FTPI Le nombre de tentatives n'est pas valide. Ce nombre doit être compris
-1073651669 NVALIDRET entre %1!d! et %2!d!.
RIES

0xC001602C DTS_E_LOA Le gestionnaire de connexions FTP a besoin de la DLL suivante pour


-1073651668 DWININET fonctionner : %1.

0xC001602D DTS_E_FTPI Le port spécifié dans la chaîne de connexion n'est pas valide. Le format
-1073651667 NVALIDCON de ConnectionString est ServerName:Port. La valeur de Port doit être
NECTIONST un entier compris entre %1!d! et %2!d!.
RING

0xC001602E DTS_E_FTPC Création du dossier « %1 » ... %2.


-1073651666 REATEFOLD
ER

0xC001602F DTS_E_FTPD Suppression du dossier « %1 » ... %2.


-1073651665 ELETEFOLDE
R

0xC0016030 DTS_E_FTPC Passage du répertoire actuel à « %1 ». %2.


-1073651664 HANGEFOL
DER

0xC0016031 DTS_E_FTPFI Aucun transfert de fichier. Cette erreur peut se produire lorsqu'au
-1073651663 LESEMPTY cours d'une opération d'envoi ou de réception, aucun fichier n'est
spécifié pour le transfert.

0xC0016032 DTS_E_FTPI Le chemin d'accès local spécifié n'est pas valide. Spécifiez un chemin
-1073651662 NVALIDLOC d'accès local valide. Ceci peut se produire lorsque le chemin d'accès
ALPATH local est vide.

0xC0016033 DTS_E_FTPN Aucun fichier n'est spécifié pour la suppression.


-1073651661 OFILESTODE
LETE

0xC0016034 DTS_E_WIN Une erreur interne s'est produite lors du chargement du certificat.
-1073651660 HTTPCERTD Cette erreur peut se produire lorsque les données du certificat ne sont
ECODE pas valides.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0016035 DTS_E_WIN Une erreur interne s'est produite lors de l'enregistrement des données
-1073651659 HTTPCERTE du certificat.
NCODE

0xC0016049 DTS_E_CHEC Le fichier de point de contrôle « %1 » ne correspond pas à ce package.


-1073651639 KPOINTMIS L'ID du package et l'ID du fichier de point de contrôle ne
MATCH correspondent pas.

0xC001604A DTS_E_CHEC Un fichier de point de contrôle existant a été détecté avec du contenu
-1073651638 KPOINTFILE ne semblant pas correspondre à ce package, de sorte que le fichier ne
ALREADYEXI peut pas être écrasé pour commencer l'enregistrement des nouveaux
STS points de contrôle. Supprimez le fichier de vérification existant et
réessayez. Cette erreur se produit lorsqu'un fichier de point de
contrôle est présent, que le package est configuré pour ne pas utiliser
de fichier de point de contrôle, mais pour enregistrer les points de
contrôle. Le fichier de point de contrôle ne sera pas écrasé.

0xC001604B DTS_E_CHEC Le fichier de point de contrôle « %1 » est verrouillé par un autre


-1073651637 KPOINTFILE processus. Cette erreur peut se produire si une autre instance de ce
LOCKED package est en cours d'exécution.

0xC001604C DTS_E_OPE Le fichier de point de contrôle « %1 » n'a pas pu s'ouvrir en raison de


-1073651636 NCHECKPOI l'erreur 0x%2!8.8X! "%3".
NTFILE

0xC001604D DTS_E_CREA Le fichier de point de contrôle « %1 » a échoué au cours de la création


-1073651635 TECHECKPO en raison de l'erreur 0x%2!8.8X! "%3".
INTFILE

0xC0016050 DTS_E_FTPI Le port FTP contient une valeur non valide. La valeur du port FTP doit
-1073651632 NVALIDPOR être un entier compris entre %1!d! et %2!d!.
T

0xC00160AA DTS_E_CON La connexion au service SSIS sur l'ordinateur « %1 » a échoué :


-1073651542 NECTTOSER
VERFAILED %2.

0xC0017002 DTS_E_PROP La propriété Expression n'est pas prise en charge sur les objets
-1073647614 ERTYEXPRES Variable. Utilisez la propriété EvaluateAsExpression à la place.
SIONSDISA
BLEDONVA
RIABLES

0xC0017003 DTS_E_PROP L'expression « %1 » sur la propriété « %2 » ne peut pas être évaluée.


-1073647613 ERTYEXPRES Modifiez l'expression pour qu'elle soit valide.
SIONEVAL
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0017004 DTS_E_PROP Le résultat de l'expression « %1 » sur la propriété « %2 » ne peut pas


-1073647612 ERTYEXPRES être écrit dans la propriété. L'expression a été évaluée, mais ne peut
SIONSET pas être définie sur la propriété.

0xC0017005 DTS_E_FORL L'expression d'évaluation de la boucle n'est pas valide. L'expression


-1073647611 OOPEVALEX doit être modifiée. Il doit y avoir des messages d'erreur
PRESSIONI supplémentaires.
NVALID

0xC0017006 DTS_E_EXPR L'expression « %1 » doit être équivalente à True ou False. Modifiez


-1073647610 ESSIONNOT l'expression pour qu'elle corresponde à une valeur booléenne.
BOOLEAN

0xC0017007 DTS_E_FORL La boucle n'a aucune expression à évaluer. Cette erreur se produit
-1073647609 OOPHASNO lorsque l'expression sur la boucle For est vide. Ajoutez une expression.
EXPRESSIO
N

0xC0017008 DTS_E_FORL L'expression d'assignation de la boucle n'est pas valide et doit être
-1073647608 OOPASSIGN modifiée. Il doit y avoir des messages d'erreur supplémentaires.
EXPRESSIO
NINVALID

0xC0017009 DTS_E_FORL L'expression d'initialisation de la boucle n'est pas valide et doit être
-1073647607 OOPINITEX modifiée. Il doit y avoir des messages d'erreur supplémentaires.
PRESSIONI
NVALID

0xC001700A DTS_E_INVA Le numéro de version du package n'est pas valide. Le numéro de


-1073647606 LIDVERSION version ne peut pas être supérieur au numéro de version actuel.
NUMBER

0xC001700C DTS_E_INVA Le numéro de version du package n'est pas valide. Le numéro de


-1073647604 LIDVERNUM version est négatif.
CANTBENE
GATIVE

0xC001700D DTS_E_PACK Le package présente une ancienne version de format, mais la mise à
-1073647603 AGEUPDATE niveau automatique du format du package est désactivée.
DISABLED

0xC001700E DTS_E_EXPR Une troncation s'est produite au cours de l'évaluation de l'expression,


-1073647602 EVALTRUNC
ATIONASER
ROR
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0019001 DTS_E_FAILE Le wrapper n'a pas pu définir la valeur de la variable spécifiée dans la
-1073639423 DSETEXECV propriété ExecutionValueVariable.
ALVARIABLE

0xC0019004 DTS_E_VARI L'évaluation de l'expression de la variable « %1 » a échoué. Il y avait


-1073639420 ABLEEXPRES une erreur dans l'expression.
SIONERROR

0xC0019305 DTS_E_UNS L'opération tentée n'est pas prise en charge avec cette version de la
-1073638651 UPPORTEDS base de données.
QLVERSION

0xC001A003 DTS_E_TXNS La transaction ne peut être spécifiée lorsqu'une connexion maintenue


-1073635325 PECINVALID est utilisée. Cette erreur se produit lorsque Retain a la valeur TRUE
dans le gestionnaire de connexions, mais que AcquireConnection a été
appelé avec un paramètre de transaction non NULL.

0xC001A004 DTS_E_INCO Un contexte de transaction incompatible a été spécifié pour une


-1073635324 MPATIBLETR connexion maintenue. Cette connexion a été établie dans un autre
ANSACTION contexte de transaction. Les connexions maintenues peuvent être
CONTEXT utilisées dans un seul contexte de transaction.

0xC001B001 DTS_E_NOT L'appel de reprise a échoué, car le package n'est pas interrompu. Ceci
-1073631231 SUSPENDED se produit lorsque les appels clients reprennent, mais le package n'est
pas interrompu.

0xC001B002 DTS_E_ALRE L'appel d'exécution a échoué, car l'exécutable est déjà en cours
-1073631230 ADYEXECUT d'exécution. Cette erreur se produit lorsque le client appelle Execute
ING sur un conteneur qui est encore en cours d'exécution du dernier appel
d'exécution.

0xC001B003 DTS_E_NOT L'appel d'interruption ou de reprise a échoué, car l'exécutable n'est


-1073631229 EXECUTING pas en cours d'exécution, ou n'est pas l'exécutable de premier niveau.
Ceci se produit lorsque les appels clients s'interrompent ou reprennent
sur un exécutable qui n'est pas en train de traiter un appel
d'exécution.

0xC001C002 DTS_E_INVA Le fichier spécifié dans l'énumérateur For Each File n'est pas valide.
-1073627134 LIDFILE Vérifiez si le fichier spécifié dans l'énumérateur For Each File existe.

0xC001C010 DTS_E_VALU L’index de valeur n’est pas un entier. Mappage d'un numéro de
-1073627120 EINDEXNOT variable For Each %1!d! à la variable « %2 ».
INTEGER
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC001C011 DTS_E_VALU L'index de valeur est négatif. Le numéro de mappage de la variable


-1073627119 EINDEXNEG ForEach %1!d! sur la variable « %2 ».
ATIVE

0xC001C012 DTS_E_FORE Impossible d'appliquer le numéro de mappage de la variable ForEach


-1073627118 ACHVARIAB %1!d! à la variable « %2 ».
LEMAPPING

0xC001C013 DTS_E_OBJE Erreur lors de l'ajout d'un objet à ForEachPropertyMapping qui n'est
-1073627117 CTNOTINFO pas un enfant direct du conteneur ForEachLoop.
REACHLOO
P

0xC001F001 DTS_E_FAILE Impossible de supprimer une variable système. Cette erreur se produit
-1073614847 DSYSTEMVA lors de la suppression d'une variable qui est obligatoire. Les variables
RIABLEREM obligatoires sont des variables créées par le runtime pour que celui-ci
OVE puisse communiquer avec les tâches.

0xC001F002 DTS_E_CHA La modification de la propriété d'une variable a échoué, car c'est une
-1073614846 NGESYSTEM variable système. Les variables système sont en lecture seule.
VARIABLERE
ADONLYFAI
LED

0xC001F003 DTS_E_CHA Le changement de nom d'une variable a échoué, car c'est une variable
-1073614845 NGESYSTEM système. Les variables système sont en lecture seule.
VARIABLEN
AMEFAILED

0xC001F004 DTS_E_CHA Le changement d'espace de noms d'une variable a échoué, car c'est
-1073614844 NGESYSTEM une variable système. Les variables système sont en lecture seule.
VARIABLEN
AMESPACEF
AILED

0xC001F006 DTS_E_EVEN Le changement de nom du gestionnaire d'événements a échoué. Les


-1073614842 THANDLER noms de gestionnaires d'événements sont en lecture seule.
NAMEREAD
ONLY

0xC001F008 DTS_E_PATH Impossible d'extraire le chemin d'accès à l'objet. Ceci est une erreur
-1073614840 UNKNOWN système.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC001F009 DTS_E_RUN Le type de valeur assignée à la variable « %1 » est différent du type de


-1073614839 TIMEVARIAB variable actuel. Les variables ne peuvent pas changer de type en cours
LETYPECHA d'exécution. Les types des variables sont stricts, à l'exception des
NGE variables de type Object.

0xC001F010 DTS_E_INVA Caractères non valides dans la chaîne : « %1 ». Ceci se produit


-1073614832 LIDSTRING lorsqu'une chaîne fournie pour une valeur de propriété contient des
caractères non imprimables.

0xC001F011 DTS_E_INVA Le nom d'objet SSIS n'est pas valide. Des erreurs plus spécifiques
-1073614831 LIDOBJECT auraient été déclenchées expliquant le problème de dénomination
NAME exact.

0xC001F021 DTS_E_PROP La propriété « %1 » est en lecture seule. Ceci se produit lorsqu'une


-1073614815 ERTYREADO modification a été tentée sur une propriété en lecture seule.
NLY

0xC001F022 DTS_E_FAILE L'objet ne prend pas en charge les informations de type. Ceci se
-1073614814 DGETTYPEI produit lorsque le runtime tente d'obtenir les informations de type
NFO d'un objet pour remplir la collection Properties. L'objet doit prendre en
charge les informations de type.

0xC001F023 DTS_E_FAILE Une erreur s'est produite lors de l'extraction de la valeur de la


-1073614813 DPROPERTY propriété « %1 ». Le code d'erreur est 0x%2!8.8X!.
GET

0xC001F024 DTS_E_FAILE Une erreur s'est produite lors de l'extraction de la valeur de la


-1073614812 DPROPERTY propriété « %1 ». Le code d'erreur est 0x%2!8.8X! "%3".
GET_ERRORI
NFO

0xC001F025 DTS_E_FAILE Une erreur s'est produite lors de la définition de la valeur de la


-1073614811 DPROPERTY propriété « %1 ». L'erreur retournée est 0x%2!8.8X!.
SET

0xC001F026 DTS_E_FAILE Une erreur s'est produite lors de la définition de la valeur de la


-1073614810 DPROPERTY propriété « %1 ». L'erreur retournée est 0x%2!8.8X! "%3".
SET_ERRORI
NFO

0xC001F027 DTS_E_PROP La propriété « %1 » est en écriture seule. Cette erreur se produit lors
-1073614809 ERTYWRITE de la tentative d'extraction de la valeur d'une propriété par le biais
ONLY d'un objet de propriété alors que la propriété est en écriture seule.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC001F028 DTS_E_NODI L'objet n'implémente pas IDispatch. Cette erreur se produit lorsqu'un
-1073614808 SPATCH objet Property ou une collection Properties tente d'accéder à une
interface IDispatch sur un objet.

0xC001F029 DTS_E_NOC Impossible d'extraire la bibliothèque de types de l'objet. Cette erreur


-1073614807 ONTAINING se produit lorsque la collection Properties tente d'extraire la
TYPELIB bibliothèque de types d'un objet par le biais de son interface
IDispatch.

0xC001F02A DTS_E_INVA Impossible de créer une tâche à partir de XML pour la tâche « %1!s! »,
-1073614806 LIDTASKMO type « %2!s! » en raison de l'erreur « 0x%3!8.8X! « %4!s! ».
NIKER

0xC001F02C DTS_E_FAILE Impossible de créer un document XML « %1 ».


-1073614804 DCREATEX
MLDOCUM
ENT

0xC001F02D DTS_E_PMV Une erreur s'est produite, car il y a un mappage de propriété d'une
-1073614803 ARPROPTYP variable vers une propriété dont le type est différent. Le type de la
ESDIFFEREN propriété et le type de la variable doivent être identiques.
T

0xC001F02E DTS_E_PMIN Une tentative a été effectuée pour définir un mappage de propriété de
-1073614802 VALIDPROP sorte à cibler un type d'objet non pris en charge. Cette erreur se
MAPTARGE produit lors du passage d'un type d'objet non pris en charge à un
T mappage de propriété.

0xC001F02F DTS_E_COU Impossible de résoudre un chemin de package vers un objet dans le


-1073614801 LDNOTRES package « %1 ». Vérifiez que le chemin d'accès du package est valide.
OLVEPACKA
GEPATH

0xC001F030 DTS_E_PMN La propriété de destination du mappage de propriété est vide.


-1073614800 ODESTPROP Définissez le nom de la propriété de destination.
ERTY

0xC001F031 DTS_E_INVA Le package n'a pas réussi à restaurer au moins un mappage de


-1073614799 LIDPROPER propriété.
TYMAPPING
SFOUND

0xC001F032 DTS_E_AMBI Le nom de variable est ambigu car plusieurs variables portant ce nom
-1073614798 GUOUSVARI existent dans différents espaces de noms. Spécifiez un nom qualifié
ABLENAME par un espace de noms pour éviter toute ambiguïté.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC001F033 DTS_E_DEST L'objet de destination d'un mappage de propriété n'a pas de parent. Il
-1073614797 INATIONOB n'est pas l'enfant d'un conteneur de séquences. Il a peut-être été
JECTPAREN supprimé du package.
TLESS

0xC001F036 DTS_E_INVA Le mappage de propriété n'est pas valide. Le mappage est ignoré.
-1073614794 LIDPROPER
TYMAPPING

0xC001F038 DTS_E_PMF Erreur en alertant les mappages de propriété qu'une cible est
-1073614792 AILALERTRE supprimée.
MOVE

0xC001F03A DTS_E_INVA Mappage de propriété non valide détecté sur la boucle For Each. Ceci
-1073614790 LIDFOREAC se produit lorsque la restauration du mappage de la propriété ForEach
HPROPERTY échoue.
MAPPING

0xC001F040 DTS_E_PMP Une propriété de destination a été spécifiée sur un mappage de


-1073614784 ROPERTYIN propriété non valide. Ceci se produit lorsqu'une propriété est spécifiée
VALID sur un objet de destination qui est introuvable sur cet objet.

0xC001F041 DTS_E_INVA Impossible de créer une tâche à partir de XML. Ceci se produit lorsque
-1073614783 LIDTASKMO le runtime ne parvient pas à résoudre le nom pour créer une tâche.
NIKERNOPA Vérifiez que le nom est correct.
RAM

0xC001F080 DTS_E_COU Impossible de remplacer le fichier de point de contrôle existant par le


-1073614720 LDNOTREPL fichier de point de contrôle mis à jour. Le point de contrôle a été
ACECHECKP correctement créé dans un fichier temporaire, mais le remplacement
OINTFILE du fichier existant par le nouveau fichier a échoué.

0xC001F081 DTS_E_CHEC Le package est configuré pour toujours redémarrer à partir d'un point
-1073614719 KPOINTFILE de contrôle, mais le fichier de point de contrôle n'est pas spécifié.
NOTSPECIFI
ED

0xC001F082 DTS_E_CHEC La tentative de chargement du fichier de point de contrôle XML « %1 »


-1073614718 KPOINTLOA a échoué, avec l'erreur 0x%2!8.8X! "%3". Vérifiez que le nom de fichier
DXML est correct et que le fichier existe.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC001F083 DTS_E_LOA Le package a échoué en cours d'exécution, car il est impossible de


-1073614717 DCHECKPOI charger le fichier de point de contrôle. La poursuite de l'exécution du
NT package nécessite un fichier de point de vérification. Cette erreur se
produit généralement lorsque la propriété CheckpointUsage est
définie sur la valeur ALWAYS, qui spécifie que le package redémarre
toujours.

0xC001F185 DTS_E_NOE L'expression de condition d'évaluation sur la boucle For « %1 » est


-1073614459 VALEXPRESS vide. Il doit y avoir une expression d'évaluation booléenne dans la
ION boucle For.

0xC001F186 DTS_E_EXPR Le résultat de l'expression d'assignation « %1 » ne peut pas être


-1073614458 EVALASSIG converti en un type qui est compatible avec la variable à laquelle il a
NMENTTYP été assigné.
EMISMATCH

0xC001F187 DTS_E_EXPR Erreur lors de l'utilisation d'une variable en lecture seule « %1 » dans
-1073614457 EVALASSIG une expression d'assignation. Le résultat de l'expression ne peut pas
NMENTTOR être assigné à la variable, car celle-ci est en lecture seule. Choisissez
EADONLYV une variable dans laquelle il est possible d'écrire, ou supprimez
ARIABLE l'expression de cette variable.

0xC001F188 DTS_E_EXPR Impossible d'évaluer l'expression « %1 », car la variable « %2 » n'existe


-1073614456 EVALASSIG pas ou n'est pas accessible en écriture. Le résultat de l'expression ne
NMENTVAR peut pas être assigné à la variable, car la variable est introuvable ou
IABLELOCKF n'a pas pu être verrouillée pour l'accès en écriture.
ORWRITEFA
ILED

0xC001F189 DTS_E_EXPR L'expression « %1 » a un type de résultat de « %2 » qui ne peut pas


-1073614455 EVALRESULT être converti en un type pris en charge.
TYPENOTSU
PPORTED

0xC001F18A DTS_E_EXPR La conversion du résultat de l'expression « %1 » du type « %2 » en un


-1073614454 EVALRESULT type pris en charge a échoué, avec le code d'erreur 0x%3!8.8X!. Une
TYPECONVE erreur inattendue s'est produite en essayant de convertir le résultat de
RSIONFAILE l'expression en un type pris en charge par le moteur du runtime,
D même si la conversion du type est prise en charge.

0xC001F200 DTS_E_DTSN Le nom d'objet n'est pas valide. Le nom ne peut pas avoir la valeur
-1073614336 AME_NOTN NULL.
ULL
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC001F201 DTS_E_DTSN Le nom d'objet n'est pas valide. Le nom ne peut pas être vide.
-1073614335 AME_NOTE
MPTY

0xC001F202 DTS_E_DTSN Le nom d'objet « %1 » n'est pas valide. Le nom ne peut pas contenir
-1073614334 AME_LEGAL les caractères suivants : / \ : [ ] . =

0xC001F203 DTS_E_DTSN Le nom d'objet « %1 » n'est pas valide. Le nom ne peut pas contenir
-1073614333 AME_PRINT des caractères de contrôle qui le rendent non imprimable.
ABLE

0xC001F204 DTS_E_DTSN Le nom d'objet « %1 » n'est pas valide. Le nom ne peut pas
-1073614332 AME_NOLE commencer par un espace.
ADWHITESP

0xC001F205 DTS_E_DTSN Le nom d'objet « %1 » n'est pas valide. Le nom ne peut pas se
-1073614331 AME_NOTR terminer par un espace.
AILWHITESP

0xC001F206 DTS_E_DTSN Le nom d'objet « %1 » n'est pas valide. Le nom doit commencer par
-1073614330 AME_BEGIN un caractère alphabétique.
SWITHALPH
A

0xC001F207 DTS_E_DTSN Le nom d'objet « %1 » n'est pas valide. Le nom doit commencer par
-1073614329 AME_BEGIN un caractère alphabétique ou par le trait de soulignement « _ ».
SWITHALPH
AUNDERBA
R

0xC001F208 DTS_E_DTSN Le nom d'objet « %1 » n'est pas valide. Le nom ne peut comporter que
-1073614328 AME_ALPHA des caractères alphanumériques ou des traits de soulignement « _ ».
DIGITUNDE
RBAR

0xC001F209 DTS_E_DTSN Le nom d'objet « %1 » n'est pas valide. Le nom ne peut pas contenir
-1073614327 AME_VALID les caractères suivants : / \ : ? " < |
FILENAME

0xC001F420 DTS_E_FAILL Impossible de charger la propriété de valeur « %1 » à l'aide de la


-1073613792 OADINGPR persistance par défaut.
OPERTY
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC001F422 DTS_E_NOD Le gestionnaire de connexions « %1 » n'est pas de type « %2 »


-1073613790 ELISTENUM
_INVALIDCO
NNMGRTYP
E

0xC001F423 DTS_E_NOD « %1 » est vide


-1073613789 ELISTENUM
_XPATHISE
MPTY

0xC001F424 DTS_E_NOD Nœud de données non valide dans la section de l'énumérateur de la


-1073613788 ELISTENUM liste de nœuds
_INVALIDDA
TANODE

0xC001F425 DTS_E_NOD Aucun énumérateur ne peut être créé


-1073613787 ELISTENUM
_NOENUME
RATORCREA
TED

0xC001F427 DTS_E_OPER L'opération a échoué car le cache est en cours d'utilisation.


-1073613785 ATIONFAILC
ACHEINUSE

0xC001F428 DTS_E_PROP Impossible de modifier la propriété.


-1073613784 ERTYCANN
OTBEMODIF
IED

0xC001F429 DTS_E_PACK La mise à niveau de package a échoué.


-1073613783 AGEUPGRA
DEFAILED

0xC00220DE DTS_E_TKEX Erreur 0x%1!8.8X! lors du chargement du fichier de package « %3 ».


-1073602338 ECPACKAGE %2.
_UNABLETO
LOADFILE

0xC00220DF DTS_E_TKEX Le package n'est pas spécifié.


-1073602337 ECPACKAGE
_UNSPECIFI
EDPACKAGE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00220E0 DTS_E_TKEX La connexion n'est pas spécifiée.


-1073602336 ECPACKAGE
_UNSPECIFI
EDCONNEC
TION

0xC00220E2 DTS_E_TKEX Le gestionnaire de connexions « %1 » a un type « %2 » qui n'est pas


-1073602334 ECPACKAGE pris en charge. Seuls les gestionnaires de connexions « FILE » et «
_INCORREC OLEDB » sont pris en charge.
TCONNECTI
ONMANAG
ERTYPE

0xC00220E3 DTS_E_TKEX Erreur 0x%1!8.8X! lors du chargement du fichier de package « %3 »


-1073602333 ECPACKAGE dans un document XML. %2.
_UNABLETO
LOADXML

0xC00220E4 DTS_E_TKEX Erreur 0x%1!8.8X! lors de la préparation du chargement du package.


-1073602332 ECPACKAGE %2.
_UNABLETO
LOAD

0xC0024102 DTS_E_TASK La méthode Validate a échoué sur la tâche et a retourné le code


-1073594110 VALIDATION d'erreur 0x%1!8.8X! (%2). La méthode Validate doit réussir et indiquer
FAILED le résultat à l'aide d'un paramètre de sortie.

0xC0024104 DTS_E_TASK La méthode Execute sur la tâche a retourné le code d'erreur


-1073594108 EXECUTEFAI 0x%1!8.8X! (%2). La méthode Execute doit réussir et indiquer le
LED résultat à l'aide d'un paramètre de sortie.

0xC0024105 DTS_E_RETR Une erreur s'est produite sur la tâche « %1 » : 0x%2!8.8X! lors de
-1073594107 IEVINGDEPE l'extraction des dépendances. Le runtime extrayait les dépendances de
NDENCIES la collection de dépendances de la tâche, lorsque l'erreur s'est
produite. La tâche a peut-être implémenté de manière incorrecte une
des interfaces de dépendance.

0xC0024107 DTS_E_TASK Des erreurs se sont produites au cours de la validation de la tâche.


-1073594105 VALIDATION
ERROR
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0024108 DTS_E_CON Le format de la chaîne de connexion n'est pas valide. Il doit consister
-1073594104 NECTIONST en un ou plusieurs composants de la forme X=Y, séparés par des
RINGFORM points-virgules. Cette erreur se produit lorsqu'une chaîne de
AT connexion avec zéro composant est définie sur le gestionnaire de
connexions de la base de données.

0xC0024109 DTS_E_UNQ Les composants de la chaîne de connexion ne peuvent pas contenir


-1073594103 UOTEDSEMI des points-virgules sans guillemets. Si la valeur doit contenir un point-
COLON virgule, ajoutez des guillemets de chaque côté de la valeur. Cette
erreur se produit lorsque les valeurs de la chaîne de connexion
contiennent des points-virgules sans guillemets, telle que la propriété
InitialCatalog.

0xC002410A DTS_E_LOGP Échec de la validation d'un ou de plusieurs modules fournisseurs


-1073594102 ROVIDERVA d'informations Le package ne peut pas s'exécuter. Le package ne
LIDATIONFA s'exécute pas lorsque la validation d'un module fournisseur
ILED d'informations échoue.

0xC002410B DTS_E_INVA Valeur non valide dans le tableau.


-1073594101 LIDVALUEIN
ARRAY

0xC002410C DTS_E_ENU Un élément de l'énumérateur retourné par l'énumérateur ForEach


-1073594100 MERATIONE n'implémente pas IEnumerator, contredisant la propriété
LEMENTNO CollectionEnumerator de l'énumérateur ForEach.
TENUMERA
BLE

0xC002410D DTS_E_INVA L'énumérateur n'a pas pu récupérer l'élément au niveau de l'index «


-1073594099 LIDENUMER %1!d! ».
ATORINDEX

0xC0029100 DTS_E_AXTA Fonction introuvable.


-1073573632 SK_MISSING
_ENTRY_ME
THOD_NAM
E

0xC0029101 DTS_E_AXTA Fonction introuvable.


-1073573631 SK_EMPTY_
SCRIPT
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029102 DTS_E_AXTA La tâche de script ActiveX a été démarrée avec un élément XML
-1073573630 SK_INITIALI incorrect.
ZATION_WI
TH_WRONG
_XML_ELEM
ENT

0xC0029105 DTS_E_AXTA Gestionnaire introuvable.


-1073573627 SK_HANDLE
R_NOT_FOU
ND

0xC0029106 DTS_E_AXTA Une erreur s'est produite lors de la tentative d'extraction des langages
-1073573626 SKUTIL_ENU de script installés sur le système.
MERATE_LA
NGUAGES_F
AILED

0xC0029107 DTS_E_AXTA Une erreur s'est produite lors de la création de l'hôte de script ActiveX.
-1073573625 SKUTIL_SCRI Vérifiez que l'hôte de script est correctement installé.
PTHOST_CR
EATE_FAILE
D

0xC0029108 DTS_E_AXTA Une erreur s'est produite en essayant d'instancier l'hôte de script pour
-1073573624 SKUTIL_SCRI le langage choisi. Vérifiez que le langage de script que vous avez
PTHOSTINIT choisi est installé sur votre système.
_FAILED

0xC0029109 DTS_E_AXTA Une erreur s'est produite lors de l'ajout des variables SSIS à l'espace
-1073573623 SKUTIL_ADD de noms de l'hôte de script. Ceci peut empêcher la tâche d'utiliser les
VARIABLES_ variables SSIS dans le script.
FAILED

0xC002910A DTS_E_AXTA Une erreur irrécupérable s'est produite en essayant d'analyser le texte
-1073573622 SKUTIL_SCRI du script. Vérifiez que le moteur de script du langage choisi est
PT_PARSING correctement installé.
_FAILED

0xC002910B DTS_E_AXTA Le nom de fonction entré n'est pas valide Vérifiez qu'un nom de
-1073573621 SKUTIL_MS fonction valide a été spécifié.
G_BAD_FUN
CTION
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002910C DTS_E_AXTA Une erreur s'est produite lors de l'exécution du script. Vérifiez que le
-1073573620 SKUTIL_EXE moteur de script est correctement installé pour la langue sélectionnée.
CUTION_FAI
LED

0xC002910D DTS_E_AXTA Une erreur s'est produite lors de l'ajout de la bibliothèque de types
-1073573619 SKUTIL_ADD managée à l'hôte de script. Vérifiez que le runtime DTS 2000 est
TYPELIB_FAI installé.
LED

0xC002910E DTS_E_BITAS La tâche d'insertion en bloc a été démarrée avec un élément XML
-1073573618 K_INITIALIZ incorrect.
ATION_WIT
H_WRONG_
XML_ELEME
NT

0xC002910F DTS_E_BITAS Le nom du fichier de données n'est pas spécifié.


-1073573617 K_DATA_FILE
_NOT_SPECI
FIED

0xC0029110 DTS_E_BITAS Gestionnaire introuvable.


-1073573616 K_HANDLER
_NOT_FOUN
D

0xC0029111 DTS_E_BITAS Échec d'acquisition de la connexion spécifiée : « %1 ».


-1073573615 K_CANNOT_
ACQUIRE_C
ONNECTIO
N

0xC0029112 DTS_E_BITAS Échec de la tentative d'obtention du gestionnaire de connexions.


-1073573614 K_NO_CON
NECTION_M
ANAGER_SP
ECIFIED

0xC0029113 DTS_E_BITAS La connexion n'est pas valide.


-1073573613 K_INVALID_
CONNECTI
ON
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029114 DTS_E_BITAS La connexion a la valeur NULL.


-1073573612 K_NULL_CO
NNECTION

0xC0029115 DTS_E_BITAS L'exécution a échoué.


-1073573611 K_EXECUTE_
FAILED

0xC0029116 DTS_E_BITAS Une erreur s'est produite lors de l'extraction des tables de la base de
-1073573610 K_CANNOT_ données.
RETRIEVE_T
ABLES

0xC0029117 DTS_E_BITAS Une erreur s'est produite lors de l'extraction des colonnes de la table.
-1073573609 K_CANNOT_
RETRIEVE_C
OLUMN_INF
O

0xC0029118 DTS_E_BITAS Une erreur s'est produite dans l'opération de base de données.
-1073573608 K_ERROR_IN
_DB_OPERA
TION

0xC0029119 DTS_E_BITAS La connexion spécifiée « %1 » n'est pas valide ou pointe vers un objet
-1073573607 K_INVALIDS non valide. Indiquez une connexion valide pour continuer.
OURCECON
NECTIONN
AME

0xC002911A DTS_E_BITAS La connexion de destination spécifiée n'est pas valide. Indiquez une
-1073573606 K_INVALIDD connexion valide pour continuer.
ESTCONNEC
TIONNAME

0xC002911B DTS_E_BITAS Vous devez spécifier un nom de table pour continuer.


-1073573605 K_DESTINAT
ION_TABLE_
NOT_SPECIF
IED

0xC002911C DTS_E_BITAS Une erreur s'est produite dans LoadFromXML au niveau de la balise «
-1073573604 K_ERROR_IN %1 ».
_LOAD_FRO
M_XML
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002911D DTS_E_BITAS Une erreur s'est produite dans SaveToXML au niveau de la balise « %1
-1073573603 K_ERROR_IN ».
_SAVE_TO_X
ML

0xC002911E DTS_E_BITAS La connexion n'est pas valide.


-1073573602 KUNMANC
ONNECTIO
N_INVALID_
CONNECTI
ON

0xC002911F DTS_E_BITAS L'exécution a échoué.


-1073573601 KUNMANC
ONNECTIO
N_EXECUTE
_FAILED

0xC0029120 DTS_E_BITAS Une erreur s'est produite en extrayant les tables de la base de
-1073573600 KUNMANC données.
ONNECTIO
N_CANNOT
_RETRIEVE_T
ABLES

0xC0029121 DTS_E_BITAS Une erreur s'est produite en extrayant les colonnes de la table.
-1073573599 KUNMANC
ONNECTIO
N_CANNOT
_RETRIEVE_
COLUMN_I
NFO

0xC0029122 DTS_E_BITAS Une erreur s'est produite en essayant d'ouvrir le fichier de données.
-1073573598 KUNMANC
ONNECTIO
N_CANNOT
_OPEN_FILE

0xC0029123 DTS_E_BITAS Impossible de convertir le fichier d'entrée OEM dans le format spécifié.
-1073573597 KUNMANC
ONNECTIO
N_OEM_CO
NVERSION_
FAILED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029124 DTS_E_BITAS Erreur dans l'opération de base de données.


-1073573596 KUNMANC
ONNECTIO
N_ERROR_I
N_DB_OPER
ATION

0xC0029125 DTS_E_DTSP Aucun gestionnaire de connexions n'est spécifié.


-1073573595 ROCTASK_N
OCONNECT
IONSPECIFI
ED

0xC0029126 DTS_E_DTSP La connexion « %1 » n'est pas une connexion Analysis Services.


-1073573594 ROCTASK_C
ONNECTIO
NMANAGER
NOTOLAP

0xC0029127 DTS_E_DTSP Impossible de trouver la connexion « %1 ».


-1073573593 ROCTASK_U
NABLETOLO
CATECONN
ECTIONMA
NAGER

0xC0029128 DTS_E_DTSP La tâche Analysis Services d'exécution de DDL a reçu un nœud de


-1073573592 ROCTASK_I données de tâche non valide.
NVALIDTAS
KDATANOD
EEXE

0xC0029129 DTS_E_DTSP La tâche de traitement Analysis Services a reçu un nœud de données


-1073573591 ROCTASK_I de tâche non valide.
NVALIDTAS
KDATANOD
EPROC

0xC002912A DTS_E_DTSP Le DDL n'est pas valide.


-1073573590 ROCTASK_I
NVALIDDDL
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002912B DTS_E_DTSP Le DDL trouvé dans ProcessingCommands n'est pas valide.


-1073573589 ROCTASK_I
NVALIDDDL
PROCESSIN
GCOMMAN
DS

0xC002912C DTS_E_DTSP Le résultat d'exécution ne peut pas être enregistré dans une variable
-1073573588 ROCTASK_C en lecture seule.
ANNOTWRI
TEINAREAD
ONLYVARIA
BLE

0xC002912D DTS_E_DTSP La variable « %1 » n'est pas définie.


-1073573587 ROCTASK_I
NVALIDVARI
ABLE

0xC002912E DTS_E_DTSP Le gestionnaire de connexions « %1 » n'est pas défini.


-1073573586 ROCTASK_C
ONNECTIO
NNOTFOUN
D

0xC002912F DTS_E_DTSP Le gestionnaire de connexions « %1 » n'est pas un gestionnaire de


-1073573585 ROCTASK_I connexions FILE.
NVALIDCON
NECTION

0xC0029130 DTS_E_DTSP « %1 » n'a pas été trouvé au cours de la désérialisation.


-1073573584 ROCTASK_N
ONEXISTEN
TATTRIBUTE

0xC0029131 DTS_E_DTSP La trace a été arrêtée en raison d'une exception.


-1073573583 ROCTASK_T
RACEHASBE
ENSTOPPED

0xC0029132 DTS_E_DTSP L'exécution du DDL a échoué.


-1073573582 ROCTASK_D
DLEXECUTI
ONFAILED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029133 DTS_E_DTSP Aucun fichier n'est associé à la connexion « %1 ».


-1073573581 ROCTASK_FI
LEDOESNOT
EXIST

0xC0029134 DTS_E_DTSP La variable « %1 » n'est pas définie.


-1073573580 ROCTASK_V
ARIABLENO
TDEFINED

0xC0029135 DTS_E_DTSP La connexion de fichier « %1 » n'est pas définie.


-1073573579 ROCTASK_FI
LECONNECT
IONNOTDEF
INED

0xC0029136 DTS_E_EXEC La tâche du package Execute DTS 2000 est démarrée avec un élément
-1073573578 2000PKGTA XML incorrect.
SK_INITIALI
ZATION_WI
TH_WRONG
_XML_ELEM
ENT

0xC0029137 DTS_E_EXEC Gestionnaire introuvable.


-1073573577 2000PKGTA
SK_HANDLE
R_NOT_FOU
ND

0xC0029138 DTS_E_EXEC Le nom de package n'est pas spécifié.


-1073573576 2000PKGTA
SK_PACKAG
E_NAME_N
OT_SPECIFIE
D

0xC0029139 DTS_E_EXEC L'ID de package n'est pas spécifié.


-1073573575 2000PKGTA
SK_PACKAG
E_ID_NOT_S
PECIFIED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002913A DTS_E_EXEC Le GUID de la version de package n'est pas spécifié.


-1073573574 2000PKGTA
SK_PACKAG
E_VERSION
GUID_NOT_
SPECIFIED

0xC002913B DTS_E_EXEC Le serveur SQL n'est pas spécifié.


-1073573573 2000PKGTA
SK_SQLSER
VER_NOT_S
PECIFIED

0xC002913C DTS_E_EXEC Le nom d'utilisateur du serveur SQL n'est pas spécifié.


-1073573572 2000PKGTA
SK_SQL_USE
RNAME_NO
T_SPECIFIED

0xC002913D DTS_E_EXEC Le nom du fichier de stockage n'est pas spécifié.


-1073573571 2000PKGTA
SK_FILE_NA
ME_NOT_SP
ECIFIED

0xC002913E DTS_E_EXEC La propriété du package DTS 2000 est vide.


-1073573570 2000PKGTA
SK_DTS2000
CANTBEEM
PTY

0xC002913F DTS_E_EXEC Une erreur s'est produite lors de l'exécution du package DTS 2000.
-1073573569 2000PKGTA
SK_ERROR_I
N_PACKAGE
_EXECUTE

0xC0029140 DTS_E_EXEC Impossible de charger les serveurs SQL disponibles du réseau. Vérifiez
-1073573568 2000PKGTA la connexion réseau.
SK_SQLSER
VER_NOT_A
VAILABLE_N
ETWORK
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029141 DTS_E_EXEC Le type de données ne peut être NULL. Veuillez spécifier le type de
-1073573567 2000PKGTA données correct à utiliser pour valider la valeur.
SK_DATATYP
E_NULL

0xC0029142 DTS_E_EXEC Impossible de valider une valeur NULL par rapport à un type de
-1073573566 2000PKGTA données.
SK_NULL_V
ALUE

0xC0029143 DTS_E_EXEC Un argument obligatoire a la valeur NULL.


-1073573565 2000PKGTA
SK_NULL_V
ALUE_ARGU
MENT

0xC0029144 DTS_E_EXEC Pour activer la tâche d'exécution de package DTS 2000, démarrez le
-1073573564 2000PKGTA programme d'installation de SQL Server, puis cliquez dans la page
SK_CLS_NO Composants à installer sur le bouton Avancé pour sélectionner les
T_REGISTRE composants hérités.
D_EXCEPTIO
N

0xC0029145 DTS_E_EXEC « %1 » n'est pas un type de valeur.


-1073573563 2000PKGTA
SK_NOT_PRI
MITIVE_TYP
E

0xC0029146 DTS_E_EXEC Impossible de convertir « %1 » en « %2 ».


-1073573562 2000PKGTA
SK_CONVER
T_FAILED

0xC0029147 DTS_E_EXEC Impossible de valider « %1 » par rapport à « %2 ».


-1073573561 2000PKGTA
SK_ERROR_I
N_VALIDATE

0xC0029148 DTS_E_EXEC Une erreur s'est produite dans LoadFromXML au niveau de la balise «
-1073573560 2000PKGTA %1 ».
SK_ERROR_I
N_LOAD_FR
OM_XML
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029149 DTS_E_EXEC Une erreur s'est produite dans SaveToXML au niveau de la balise « %1
-1073573559 2000PKGTA ».
SK_ERROR_I
N_SAVE_TO_
XML

0xC002914A DTS_E_EXEC La valeur de délai d'expiration indiquée n'est pas valide. Spécifiez le
-1073573558 PROCTASK_I nombre de secondes pendant lesquelles la tâche autorise le processus
NVALIDTIM à s'exécuter. La valeur minimale du délai d'expiration est 0, ce qui
EOUT indique qu'aucun délai d'expiration n'est utilisé et que le processus
s'exécute jusqu'au bout ou jusqu'à ce qu'une erreur se produise. La
valeur maximale de délai d'expiration est 2147483 (((2^31) - 1)/1000).

0xC002914B DTS_E_EXEC Impossible de rediriger les flux si le processus peut continuer de


-1073573557 PROCTASK_ s'exécuter au-delà de la durée de vie de la tâche.
CANTREDIR
ECTIO

0xC002914C DTS_E_EXEC Le délai d'attente du processus a expiré.


-1073573556 PROCTASK_
PROCESSHA
STIMEDOUT

0xC002914D DTS_E_EXEC L'exécutable n'est pas spécifié.


-1073573555 PROCTASK_
EXECUTABL
ENOTSPECIF
IED

0xC002914E DTS_E_EXEC La variable de sortie standard est en lecture seule.


-1073573554 PROCTASK_
STDOUTVA
RREADONL
Y

0xC002914F DTS_E_EXEC La variable d'erreur standard est en lecture seule.


-1073573553 PROCTASK_
STDERRVAR
READONLY

0xC0029150 DTS_E_EXEC La tâche d'exécution du processus a reçu un nœud de données de


-1073573552 PROCTASK_ tâche qui n'est pas valide.
RECEIVEDIN
VALIDTASKD
ATANODE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029151 DTS_E_EXEC Dans l'exécution de « %2 » «%3 » au niveau de « %1 », le code de


-1073573551 PROCTASK_ sortie du processus était « %4 » alors que « %5 » était attendu.
PROCESSEXI
TCODEEXCE
EDS

0xC0029152 DTS_E_EXEC Le répertoire « %1 » n'existe pas.


-1073573550 PROCTASK_
WORKINGD
IRDOESNOT
EXIST

0xC0029153 DTS_E_EXEC Le fichier/processus « %1 » n'existe pas dans le répertoire « %2 ».


-1073573549 PROCTASK_
FILEDOESN
OTEXIST

0xC0029154 DTS_E_EXEC Le fichier/processus « %1 » n'est pas dans le chemin d'accès.


-1073573548 PROCTASK_
FILENOTINP
ATH

0xC0029156 DTS_E_EXEC Le répertoire de travail « %1 » n'existe pas.


-1073573546 PROCTASK_
WORKINGD
IRECTORYD
OESNOTEXI
ST

0xC0029157 DTS_E_EXEC Le processus s'est terminé avec le code de retour « %1 ». Cependant, «


-1073573545 PROCTASK_ %2 » était attendu.
ERROREXEC
UTIONVALU
E

0xC0029158 DTS_E_FSTA Échec de l'objet de synchronisation.


-1073573544 SK_SYNCFAI
LED

0xC0029159 DTS_E_FSTA La tâche du système de fichiers a reçu un nœud de données de tâche


-1073573543 SK_INVALID non valide.
DATA
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002915A DTS_E_FSTA Le répertoire existe déjà.


-1073573542 SK_DIRECTO
RYEXISTS

0xC002915B DTS_E_FSTA « %1 » n'est pas valide sur le type d'opération « %2 ».


-1073573541 SK_PATHNO
TVALID

0xC002915C DTS_E_FSTA La propriété de destination de l'opération « %1 » n'est pas définie.


-1073573540 SK_DESTINA
TIONNOTSE
T

0xC002915D DTS_E_FSTA La propriété source de l'opération « %1 » n'est pas définie.


-1073573539 SK_SOURCE
NOTSET

0xC002915E DTS_E_FSTA Le type de connexion « %1 » n'est pas un fichier.


-1073573538 SK_CONNEC
TIONTYPEN
OTFILE

0xC002915F DTS_E_FSTA La variable « %1 » n'existe pas.


-1073573537 SK_VARIABL
EDOESNTEX
IST

0xC0029160 DTS_E_FSTA La variable « %1 » n'est pas une chaîne.


-1073573536 SK_VARIABL
ENOTASTRI
NG

0xC0029163 DTS_E_FSTA Le fichier ou le répertoire « %1 » représenté par la connexion « %2 »


-1073573533 SK_FILEDOE n'existe pas.
SNOTEXIST

0xC0029165 DTS_E_FSTA Le gestionnaire de connexions de fichiers de destination « %1 » a un


-1073573531 SK_DESTCO type d'utilisation non valide : « %2 ».
NNUSAGET
YPEINVALID

0xC0029166 DTS_E_FSTA Le gestionnaire de connexions de fichiers sources « %1 » a un type


-1073573530 SK_SRCCON d'utilisation non valide « %2 ».
NUSAGETYP
EINVALID
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029167 DTS_E_FSTA FileSystemOperation


-1073573529 SK_LOGENT
RYGETTING
FILEOPERAT
ION

0xC0029168 DTS_E_FSTA Fournit des informations sur les opérations du système de fichiers.
-1073573528 SK_LOGENT
RYGETTING
FILEOPERAT
IONDESC

0xC0029169 DTS_E_FSTA Tâches du système de fichiers


-1073573527 SK_TASKDIS
PLAYNAME

0xC002916A DTS_E_FSTA Effectuent les opérations du système de fichiers, telles que la copie et
-1073573526 SK_TASKDES la suppression de fichiers.
CRIPTION

0xC002916B DTS_E_FTPT Échec de l'objet de synchronisation.


-1073573525 ASK_SYNCO
BJFAILED

0xC002916C DTS_E_FTPT Impossible d'obtenir la liste des fichiers.


-1073573524 ASK_UNABL
ETOOBTAIN
FILELIST

0xC002916D DTS_E_FTPT Le chemin d'accès local est vide.


-1073573523 ASK_LOCAL
PATHEMPTY

0xC002916E DTS_E_FTPT Le chemin d'accès distant est vide.


-1073573522 ASK_REMOT
EPATHEMPT
Y

0xC002916F DTS_E_FTPT La variable locale est vide.


-1073573521 ASK_LOCAL
VARIBALEE
MPTY
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029170 DTS_E_FTPT La variable distante est vide.


-1073573520 ASK_REMOT
EVARIBALEE
MPTY

0xC0029171 DTS_E_FTPT La tâche FTP a reçu un nœud de données de tâche non valide.
-1073573519 ASK_FTPRC
VDINVLDDA
TANODE

0xC0029172 DTS_E_FTPT La connexion est vide. Vérifiez qu'une connexion FTP valide est fournie.
-1073573518 ASK_CONN
ECTION_NA
ME_NULL

0xC0029173 DTS_E_FTPT La connexion spécifiée n'est pas une connexion FTP. Vérifiez qu'une
-1073573517 ASK_CONN connexion FTP valide est fournie.
ECTION_NO
T_FTP

0xC0029175 DTS_E_FTPT Impossible d'initialiser la tâche avec un élément XML qui a la valeur
-1073573515 ASK__INITIA NULL.
LIZATION_
WITH_NULL
_XML_ELEM
ENT

0xC0029176 DTS_E_FTPT Impossible d'enregistrer la tâche dans un document XML qui a la


-1073573514 ASK_SAVE_T valeur NULL.
O_NULL_XM
L_ELEMENT

0xC0029177 DTS_E_FTPT Une erreur s'est produite dans LoadFromXML au niveau de la balise «
-1073573513 ASK_ERROR %1 ».
_IN_LOAD_F
ROM_XML

0xC0029178 DTS_E_FTPT Il n'y a aucun fichier dans « %1 ».


-1073573512 ASK_NOFILE
SATLOCATI
ON
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029179 DTS_E_FTPT La variable « %1 » est vide.


-1073573511 ASK_LOCAL
VARIABLEIS
EMPTY

0xC002917A DTS_E_FTPT La variable « %1 » est vide.


-1073573510 ASK_REMOT
EVARIABLEI
SEMPTY

0xC002917B DTS_E_FTPT Le fichier « %1 » ne contient pas de chemin d'accès au fichier.


-1073573509 ASK_NOFILE
SINCONNM
GR

0xC002917C DTS_E_FTPT La variable « %1 » ne contient pas de chemin d'accès au fichier.


-1073573508 ASK_NOFILE
PATHSINLO
CALVAR

0xC002917D DTS_E_FTPT La variable « %1 » n'est pas une chaîne.


-1073573507 ASK_VARIAB
LENOTASTRI
NG

0xC002917E DTS_E_FTPT La variable « %1 » n'existe pas.


-1073573506 ASK_VARIAB
LENOTFOU
ND

0xC002917F DTS_E_FTPT Chemin d'accès non valide sur l'opération « %1 ».


-1073573505 ASK_INVALI
DPATHONO
PERATION

0xC0029180 DTS_E_FTPT « %1 » existe déjà.


-1073573504 ASK_DIRECT
ORYEXISTS

0xC0029182 DTS_E_FTPT Le type de connexion « %1 » n'est pas un fichier.


-1073573502 ASK_CONN
ECTIONTYP
ENOTFILE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029183 DTS_E_FTPT Le fichier représenté par « %1 » n'existe pas.


-1073573501 ASK_FILEDO
ESNOTEXIST

0xC0029184 DTS_E_FTPT Le répertoire n'est pas spécifié dans la variable « %1 ».


-1073573500 ASK_INVALI
DDIRECTOR
Y

0xC0029185 DTS_E_FTPT Aucun fichier trouvé dans « %1 ».


-1073573499 ASK_NOFILE
SFOUND

0xC0029186 DTS_E_FTPT Le répertoire n'est pas spécifié dans le gestionnaire de connexions de


-1073573498 ASK_NODIR fichiers « %1 ».
ECTORYPAT
HINCONMG
R

0xC0029187 DTS_E_FTPT Impossible de supprimer le fichier local « %1 ».


-1073573497 ASK_UNABL
ETODELETEL
OCALEFILE

0xC0029188 DTS_E_FTPT Impossible de supprimer le répertoire local « %1 ».


-1073573496 ASK_UNABL
ETOREMOV
ELOCALDIR
ECTORY

0xC0029189 DTS_E_FTPT Impossible de créer le répertoire local « %1 ».


-1073573495 ASK_UNABL
ETOCREATEL
OCALDIREC
TORY

0xC002918A DTS_E_FTPT Impossible de recevoir des fichiers en utilisant « %1 ».


-1073573494 ASK_UNABL
ETORECEIVE
FILES

0xC002918B DTS_E_FTPT Impossible d'envoyer des fichiers en utilisant « %1 ».


-1073573493 ASK_UNABL
ETOSENDFIL
ES
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002918C DTS_E_FTPT Impossible de créer un répertoire distant en utilisant « %1 ».


-1073573492 ASK_UNABL
ETOMAKEDI
RREMOTE

0xC002918D DTS_E_FTPT Impossible de supprimer le répertoire distant en utilisant « %1 ».


-1073573491 ASK_UNABL
ETOREMOV
EDIRREMOT
E

0xC002918E DTS_E_FTPT Impossible de supprimer des fichiers distants en utilisant « %1 ».


-1073573490 ASK_UNABL
ETODELETE
REMOTEFILE
S

0xC002918F DTS_E_FTPT Impossible de se connecter au serveur FTP en utilisant « %1 ».


-1073573489 ASK_UNABL
ETOCONNE
CTTOSERVE
R

0xC0029190 DTS_E_FTPT La variable « %1 » ne commence pas par « / ».


-1073573488 ASK_INVALI
DVARIABLE
VALUE

0xC0029191 DTS_E_FTPT Le chemin d'accès distant « %1 » ne commence pas par « / ».


-1073573487 ASK_INVALI
DREMOTEP
ATH

0xC0029192 DTS_E_DTS_ Une erreur s'est produite lors de l'acquisition de la connexion FTP.
-1073573486 E_FTPTASK_ Vérifiez que vous avez spécifié un type de connexion valide « %1 ».
CANNOT_A
CQUIRE_CO
NNECTION

0xC0029193 DTS_E_MSG Échec de l'ouverture du magasin de certificats.


-1073573485 QTASKUTIL_
CERT_OPEN
_STORE_FAI
LED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029194 DTS_E_MSG Une erreur s'est produite lors de l'extraction du nom complet du
-1073573484 QTASKUTIL_ certificat.
CERT_FAILE
D_GETTING_
DISPLAY_NA
ME

0xC0029195 DTS_E_MSG Une erreur s'est produite lors de l'extraction du nom de l'émetteur du
-1073573483 QTASKUTIL_ certificat.
CERT_FAILE
D_GETTING_
ISSUER_NA
ME

0xC0029196 DTS_E_MSG Une erreur s'est produite lors de l'extraction du nom convivial du
-1073573482 QTASKUTIL_ certificat.
CERT_FAILE
D_GETTING_
FRIENDLY_N
AME

0xC0029197 DTS_E_MSM La connexion MSMQ n'est pas définie.


-1073573481 QTASK_NO_
CONNECTI
ON

0xC0029198 DTS_E_MSM La tâche a été initialisée avec l'élément XML incorrect.


-1073573480 QTASK_INITI
ALIZATION_
WITH_WRO
NG_XML_EL
EMENT

0xC0029199 DTS_E_MSM Le nom du fichier de données est vide.


-1073573479 QTASK_DAT
A_FILE_NAM
E_EMPTY

0xC002919A DTS_E_MSM Le nom spécifié pour le fichier de données à enregistrer est vide.
-1073573478 QTASK_DAT
A_FILE_SAVE
_NAME_EM
PTY
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002919B DTS_E_MSM La taille du fichier doit être inférieure à 4 Mo.


-1073573477 QTASK_DAT
A_FILE_SIZE_
ERROR

0xC002919C DTS_E_MSM Échec de l'enregistrement du fichier de données.


-1073573476 QTASK_DAT
A_FILE_SAVE
_FAILED

0xC002919D DTS_E_MSM La valeur du filtre de chaîne est vide.


-1073573475 QTASK_STRI
NG_COMPA
RE_VALUE_
MISSING

0xC002919E DTS_E_MSM Le chemin d'accès de la file d'attente n'est pas valide.


-1073573474 QTASK_INV
ALID_QUEU
E_PATH

0xC002919F DTS_E_MSM La tâche MSMQ ne prend pas en charge l'inscription dans des
-1073573473 QTASK_NOT transactions distribuées.
_TRANSACTI
ONAL

0xC00291A0 DTS_E_MSM Le type de message n'est pas valide.


-1073573472 QTASK_INV
ALID_MESS
AGE_TYPE

0xC00291A1 DTS_E_MSM Le délai d'attente de la file d'attente des messages a expiré. Aucun
-1073573471 QTASK_TAS message n'a été reçu.
K_TIMEOUT

0xC00291A2 DTS_E_MSM La propriété spécifiée n'est pas valide. Vérifiez que le type d'argument
-1073573470 QTASK_INV est correct.
ALID_PROPE
RTY_VALUE

0xC00291A3 DTS_E_MSM Le message n'est pas authentifié.


-1073573469 QTASK_MES
SAGE_NON_
AUTHENTIC
ATED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00291A4 DTS_E_MSM Vous essayez de définir la valeur de l'algorithme de chiffrement avec


-1073573468 QTASK_INV un objet non valide.
ALID_ENCR
YPTION_AL
GO_WRAPP
ER

0xC00291A5 DTS_E_MSM La variable pour recevoir le message de chaîne est vide.


-1073573467 QTASK_VARI
ABLE_TO_RE
CEIVE_STRI
NG_MSG_E
MPTY

0xC00291A6 DTS_E_MSM La variable pour recevoir le message de variable est vide.


-1073573466 QTASK_REC
EIVE_VARIA
BLE_EMPTY

0xC00291A7 DTS_E_MSM La connexion « %1 » n'est pas de type MSMQ.


-1073573465 QTASK_CON
NECTIONTY
PENOTMSM
Q

0xC00291A8 DTS_E_MSM Le fichier de données « %1 » existe déjà à l'emplacement spécifié.


-1073573464 QTASK_DAT Impossible de remplacer le fichier puisque l'option Remplacer a la
AFILE_ALRE valeur FALSE.
ADY_EXISTS

0xC00291A9 DTS_E_MSM La variable spécifiée « %1 » qui recevra le message de chaîne est


-1073573463 QTASK_STRI introuvable dans la collection de variables du package.
NG_MSG_T
O_VARIABLE
_NOT_FOUN
D

0xC00291AA DTS_E_MSM Le gestionnaire de connexions « %1 » est vide.


-1073573462 QTASK_CON
NMNGRNU
LL
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00291AB DTS_E_MSM Le gestionnaire de connexions « %1 » n'existe pas.


-1073573461 QTASK_CON
NMNGRDO
ESNOTEXIST

0xC00291AC DTS_E_SCRI Erreur « %1 » : « %2 »\r\nLigne « %3 » Colonne « %4 » à « %5 ».


-1073573460 PTTASK_CO
MPILEERRO
RMSG

0xC00291AD DTS_E_SCRI Une erreur s'est produite lors de la compilation du script : « %1 ».


-1073573459 PTTASK_CO
MPILEERRO
RMSG2

0xC00291AE DTS_E_SCRI Erreur « %1 » : « %2 »\r\nLigne « %3 » Colonnes « %4 » - « %5


-1073573458 PTTASK_CO »\r\nTexte sur plusieurs lignes : « %6 ».
MPILEERRO
RMSG3

0xC00291AF DTS_E_SCRI Le script utilisateur a retourné un résultat d'erreur.


-1073573457 PTTASK_SCR
IPTREPORTE
DFAILURE

0xC00291B0 DTS_E_SCRI Échec du chargement des fichiers du script utilisateur.


-1073573456 PTTASK_SCR
IPTFILESFAIL
EDTOLOAD

0xC00291B1 DTS_E_SCRI Le script utilisateur a renvoyé une exception : « %1 ».


-1073573455 PTTASK_SCR
IPTTHREWE
XCEPTION

0xC00291B2 DTS_E_SCRI Impossible de créer une instance de la classe entrypoint « %1 ».


-1073573454 PTTASK_CO
ULDNOTCR
EATEENTRY
POINTCLAS
S
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00291B3 DTS_E_SCRI Une exception s'est produite lors du chargement de la tâche de script
-1073573453 PTTASK_LO de XML : « %1 ».
ADFROMX
MLEXCEPTI
ON

0xC00291B4 DTS_E_SCRI L'élément source « %1 » est introuvable dans le package.


-1073573452 PTTASK_SO
URCEITEMN
OTFOUNDE
XCEPTION

0xC00291B5 DTS_E_SCRI L'élément binaire « %1 » est introuvable dans le package.


-1073573451 PTTASK_BIN
ARYITEMNO
TFOUNDEX
CEPTION

0xC00291B6 DTS_E_SCRI « %1 » n'a pas été reconnu comme langage de script valide.
-1073573450 PTTASK_UN
RECOGNIZE
DSCRIPTLA
NGUAGEEX
CEPTION

0xC00291B7 DTS_E_SCRI Le nom de script n'est pas valide. Il ne peut pas contenir des espaces,
-1073573449 PTTASK_ILLE des barres obliques, des caractères spéciaux ni commencer par un
GALSCRIPT numéro.
NAME

0xC00291B8 DTS_E_SCRI Le langage de script spécifié n'est pas valide.


-1073573448 PTTASK_INV
ALIDSCRIPT
LANGUAGE

0xC00291B9 DTS_E_SCRI Impossible d'initialiser une tâche NULL.


-1073573447 PTTASK_CA
NTINITNULL
TASK

0xC00291BA DTS_E_SCRI L'interface utilisateur de la tâche de script doit s'initialiser avec une
-1073573446 PTTASK_MU tâche de script.
STINITWITH
RIGHTTASK
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00291BB DTS_E_SCRI L'interface utilisateur de la tâche de script n'est pas initialisée.


-1073573445 PTTASK_WA
SNOTINITE
D

0xC00291BC DTS_E_SCRI Le nom n'est pas vide.


-1073573444 PTTASK_HO
ST_NAME_C
ANT_EMPTY

0xC00291BD DTS_E_SCRI Le nom de projet n'est pas valide. Il ne peut pas contenir des espaces,
-1073573443 PTTASK_INV des barres obliques, des caractères spéciaux ni commencer par un
ALID_SCRIP numéro.
T_NAME

0xC00291BE DTS_E_SCRI Le langage de script spécifié n'est pas valide.


-1073573442 PTTASK_INV
ALID_SCRIP
T_LANGUAG
E

0xC00291BF DTS_E_SCRI Le point d'entrée est introuvable.


-1073573441 PTTASK_INV
ALID_ENTRY
_POINT

0xC00291C0 DTS_E_SCRI Le langage de script n'est pas spécifié. Vérifiez qu'un langage de script
-1073573440 PTTASK_LA valide est spécifié.
NGUAGE_E
MPTY

0xC00291C1 DTS_E_SCRI Initialisation de l'interface utilisateur : la tâche est Null.


-1073573439 PTTASK_INI
TIALIZATIO
N_WITH_NU
LL_TASK

0xC00291C2 DTS_E_SCRI L'interface utilisateur de la tâche de script est initialisée avec une tâche
-1073573438 PTTASK_UI_I incorrecte.
NITIALIZATI
ON_WITH_
WRONG_TA
SK
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00291C3 DTS_E_SEN Aucun destinataire n'est spécifié.


-1073573437 DMAILTASK
_RECIPIENT_
EMPTY

0xC00291C4 DTS_E_SEN Le serveur SMTP (Simple Mail Transfer Protocol) n'est pas spécifié.
-1073573436 DMAILTASK Indiquez un nom ou une adresse IP valide pour le serveur SMTP.
_SMTP_SER
VER_NOT_S
PECIFIED

0xC00291C5 DTS_E_SEN La tâche Envoyer un message a été lancée avec un élément XML
-1073573435 DMAILTASK incorrect.
_TASK_INITI
ALIZATION_
WITH_WRO
NG_XML_EL
EMENT

0xC00291CB DTS_E_SEN Le fichier « %1 » n'existe pas ou vous ne disposez pas des


-1073573429 DMAILTASK autorisations appropriées pour accéder au fichier.
_INVALIDAT
TACHMENT

0xC00291CD DTS_E_SEN Vérifiez que le serveur SMTP (Simple Mail Transfer Protocol) spécifié
-1073573427 DMAILTASK est valide.
_CHECK_VA
LID_SMTP_S
ERVER

0xC00291CE DTS_E_SEN La connexion « %1 » n'est pas du type File.


-1073573426 DMAILTASK
_CONNECTI
ONTYPENO
TFILE

0xC00291CF DTS_E_SEN Sur l'opération « %1 », le fichier « %2 » n'existe pas.


-1073573425 DMAILTASK
_FILEDOESN
OTEXIST
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00291D0 DTS_E_SEN La variable « %1 » n'est pas de type String.


-1073573424 DMAILTASK
_VARIABLET
YPEISNOTST
RING

0xC00291D1 DTS_E_SEN La connexion « %1 » n'est pas de type SMTP.


-1073573423 DMAILTASK
_CONNECTI
ONTYPENO
TSMTP

0xC00291D2 DTS_E_SEN La connexion « %1 » est vide.


-1073573422 DMAILTASK
_CONNMN
GRNULL

0xC00291D3 DTS_E_SEN La connexion spécifiée « %1 » n'existe pas.


-1073573421 DMAILTASK
_NOCONN
MNGR

0xC00291D4 DTS_E_SQLT Aucune instruction Transact-SQL n'est spécifiée.


-1073573420 ASK_NOSTA
TEMENTSPE
CIFIED

0xC00291D5 DTS_E_SQLT La connexion ne prend pas en charge les ensembles de résultats XML.
-1073573419 ASK_NOXM
LSUPPORT

0xC00291D6 DTS_E_SQLT Impossible de trouver le gestionnaire pour le type de connexion


-1073573418 ASK_NOHA spécifié.
NDLERFORC
ONNECTIO
N

0xC00291D7 DTS_E_SQLT Aucun gestionnaire de connexions n'est spécifié.


-1073573417 ASK_NOCO
NNECTION
MANAGER
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00291D8 DTS_E_SQLT Impossible d'obtenir une connexion à partir du gestionnaire de


-1073573416 ASK_CANN connexions.
OTACQUIRE
CONNMAN
AGER

0xC00291D9 DTS_E_SQLT Impossible d'avoir un nom de paramètre NULL.


-1073573415 ASK_NULLP
ARAMETER
NAME

0xC00291DA DTS_E_SQLT Le nom du paramètre n'est pas valide.


-1073573414 ASK_INVALI
DPARAMET
ERNAME

0xC00291DB DTS_E_SQLT Les noms de paramètre sont du type Int ou String.


-1073573413 ASK_VALIDP
ARAMETERT
YPES

0xC00291DC DTS_E_SQLT La variable « %1 » est inutilisable dans une liaison de résultat parce
-1073573412 ASK_READO qu’elle est en lecture seule.
NLYVARIABL
E

0xC00291DD DTS_E_SQLT L'index n'est pas attribué dans cette collection.


-1073573411 ASK_INDES
NOTINCOLL
ECTION

0xC00291DE DTS_E_SQLT La variable « %1 » ne peut pas être utilisée comme paramètre de «


-1073573410 ASK_ROVAR sortie » ou valeur de retour dans une liaison de paramètre car elle est
INOUTPARA en lecture seule.
METER

0xC00291DF DTS_E_SQLT L'objet n'existe pas dans cette collection.


-1073573409 ASK_OBJEC
TNOTINCOL
LECTION
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00291E0 DTS_E_SQLT Impossible d'acquérir une connexion managée.


-1073573408 ASK_UNABL
ETOACQUIR
EMANAGED
CONN

0xC00291E1 DTS_E_UNA Impossible de remplir les colonnes de résultat pour un seul type de
-1073573407 BLETOPOPR résultat de ligne. La requête a retourné un ensemble de résultats vide.
ESULT

0xC00291E2 DTS_E_SQLT Un nombre non valide de liaisons de résultats a été retourné pour le
-1073573406 ASK_INVALI ResultSetType : « %1 ».
DNUMOFRE
SULTBINDIN
GS

0xC00291E3 DTS_E_SQLT Le nom de liaison des résultats doit avoir la valeur zéro pour le jeu de
-1073573405 ASK_RESULT résultats complet et les résultats XML.
BINDTYPEF
ORROWSET
XML

0xC00291E4 DTS_E_SQLT L'indicateur de direction du paramètre n'est pas valide.


-1073573404 ASK_INVALI
DEPARAMDI
RECTIONFA
LG

0xC00291E5 DTS_E_SQLT Le fragment XML ne contient aucune donnée de tâche SQL.


-1073573403 ASK_NOSQL
TASKDATAI
NXMLFRAG
MENT

0xC00291E6 DTS_E_SQLT Le premier paramètre n'est pas un paramètre avec une valeur de
-1073573402 ASK_MULTI retour de type ou il existe plusieurs paramètres de valeur de retour de
PLERETURN type.
VALUEPARA
M

0xC00291E7 DTS_E_SQLT La connexion « %1 » n'est pas un gestionnaire de connexions de


-1073573401 ASK_CONN fichiers.
ECTIONTYP
ENOTFILE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00291E8 DTS_E_SQLT Le fichier représenté par « %1 » n'existe pas.


-1073573400 ASK_FILEDO
ESNOTEXIST

0xC00291E9 DTS_E_SQLT La variable « %1 » n'est pas de type String.


-1073573399 ASK_VARIAB
LETYPEISNO
TSTRING

0xC00291EA DTS_E_SQLT La variable « %1 » n'existe pas ou n'a pas pu être verrouillée.


-1073573398 ASK_VARIAB
LENOTFOU
ND

0xC00291EB DTS_E_SQLT Le gestionnaire de connexions « %1 » n'existe pas.


-1073573397 ASK_CANN
OTLOCATEC
ONNMANA
GER

0xC00291EC DTS_E_SQLT Échec de l'acquisition de la connexion « %1 ». La connexion n'est peut-


-1073573396 ASK_FAILED être pas configurée correctement ou vous ne disposez pas des
TOACQUIRE autorisations appropriées pour cette connexion.
CONNECTI
ON

0xC00291ED DTS_E_SQLT La liaison de résultats par nom « %1 » n'est pas prise en charge pour
-1073573395 ASK_RESULT ce type de connexion.
BYNAMENO
TSUPPORTE
D

0xC00291EE DTS_E_SQLT Un type de jeu de résultats de lignes uniques est spécifié, mais aucune
-1073573394 ASKCONN_E ligne n'est retournée.
RR_NO_RO
WS

0xC00291EF DTS_E_SQLT Aucun jeu d'enregistrements déconnectés n'est disponible pour


-1073573393 ASKCONN_E l'instruction Transact-SQL.
RR_NO_DIS
CONNECTE
D_RS
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00291F0 DTS_E_SQLT Type non pris en charge.


-1073573392 ASKCONN_E
RR_UNSUPP
ORTED_TYP
E

0xC00291F1 DTS_E_SQLT Type inconnu.


-1073573391 ASKCONN_E
RR_UNKNO
WN_TYPE

0xC00291F2 DTS_E_SQLT Type de données non pris en charge dans la liaison de paramètre
-1073573390 ASKCONN_E \"%s\".
RR_PARAM_
DATA_TYPE

0xC00291F3 DTS_E_SQLT Les noms de paramètres ne peuvent pas être une combinaison de
-1073573389 ASKCONN_E numéros d'ordre et de noms.
RR_PARAM_
NAME_MIX

0xC00291F4 DTS_E_SQLT La direction du paramètre dans la liaison de paramètre \"%s\" n'est


-1073573388 ASKCONN_E pas valide.
RR_PARAM_
DIR

0xC00291F5 DTS_E_SQLT Le type de données dans la liaison de jeu de résultats \"%s\" n'est pas
-1073573387 ASKCONN_E pris en charge.
RR_RESULT_
DATA_TYPE

0xC00291F6 DTS_E_SQLT L'index de la colonne de résultats %d n'est pas valide.


-1073573386 ASKCONN_E
RR_RESULT_
COL_INDEX

0xC00291F7 DTS_E_SQLT La colonne \"%s\" est introuvable dans le jeu de résultats.


-1073573385 ASKCONN_E
RR_UNKNO
WN_RESULT
_COL
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00291F9 DTS_E_SQLT Aucun ensemble de lignes de résultat n'est associé à l'exécution de


-1073573383 ASKCONN_E cette requête.
RR_NOROW
SET

0xC00291FA DTS_E_SQLT Les jeux d'enregistrements déconnectés ne sont pas disponibles à


-1073573382 ASKCONN_E partir des connexions ODBC.
RR_ODBC_D
ISCONNECT
ED

0xC00291FB DTS_E_SQLT Le type de données du jeu de résultats, colonne %hd, n'est pas pris en
-1073573381 ASKCONN_E charge.
RR_RESULT_
SET_DATA_T
YPE

0xC00291FC DTS_E_SQLT Impossible de charger le fichier XML avec le résultat de la requête.


-1073573380 ASKCONN_E
RR_CANT_L
OAD_XML

0xC00291FD DTS_E_TTGE Un nom de connexion ou de variable doit être indiqué pour le


-1073573379 NTASK_NOC package.
ONNORVAR
IABLE

0xC00291FE DTS_E_TTGE Impossible de créer le package.


-1073573378 NTASK_FAIL
EDCREATE

0xC00291FF DTS_E_TTGE TableMetaDataNode n'est pas de type XMLNode.


-1073573377 NTASK_BAD
TABLEMETA
DATA

0xC0029200 DTS_E_TTGE Impossible de créer le pipeline.


-1073573376 NTASK_FAIL
EDCREATEPI
PELINE

0xC0029201 DTS_E_TTGE Le type de variable est incorrect.


-1073573375 NTASK_BAD
VARIABLETY
PE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029202 DTS_E_TTGE Le gestionnaire de connexions spécifié n'est pas un gestionnaire de


-1073573374 NTASK_NOT connexions de fichiers.
FILECONNE
CTION

0xC0029203 DTS_E_TTGE Nom de fichier incorrect spécifié dans le gestionnaire de connexions «


-1073573373 NTASK_BAD %1 ».
FILENAME

0xC0029204 DTS_E_WEB La connexion est vide. Vérifiez qu'une connexion HTTP valide est
-1073573372 SERVICETAS spécifiée.
K_CONNECT
ION_NAME_
NULL

0xC0029205 DTS_E_WEB La connexion n'existe pas. Vérifiez qu'une connexion HTTP existante
-1073573371 SERVICETAS valide est spécifiée.
K_CONNECT
ION_NOT_F
OUND

0xC0029206 DTS_E_WEB La connexion spécifiée n'est pas une connexion HTTP. Vérifiez qu'une
-1073573370 SERVICETAS connexion HTTP valide est spécifiée.
K_CONNECT
ION_NOT_H
TTP

0xC0029207 DTS_E_WEB Le nom du service Web est vide. Vérifiez qu'un service Web valide est
-1073573369 SERVICETAS spécifié.
K_SERVICE_
NULL

0xC0029208 DTS_E_WEB Le nom de la méthode Web est vide. Vérifiez qu'une méthode Web
-1073573368 SERVICETAS valide est spécifiée.
K_METHOD
NAME_NUL
L

0xC0029209 DTS_E_WEB La méthode Web est vide ou n'existe pas. Vérifiez qu'une méthode
-1073573367 SERVICETAS Web existe.
K_WEBMET
HODINFO_
NULL
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002920A DTS_E_WEB L'emplacement de destination est vide. Vérifiez qu'une connexion ou


-1073573366 SERVICETAS une variable de fichier existante est spécifiée.
K_OUTPUTL
OC_NULL

0xC002920B DTS_E_WEB La variable est introuvable. Vérifiez que la variable existe dans le
-1073573365 SERVICETAS package.
K_VARIABLE
_NOT_FOUN
D

0xC002920C DTS_E_WEB Impossible d'enregistrer le résultat. Vérifiez que la variable n'est pas en
-1073573364 SERVICETAS lecture seule.
K_VARIABLE
_READONLY

0xC002920D DTS_E_WEB Une erreur s'est produite dans LoadFromXML au niveau de la balise «
-1073573363 SERVICETAS %1 ».
K_ERROR_IN
_LOAD_FRO
M_XML

0xC002920E DTS_E_WEB Une erreur s'est produite dans SaveToXML au niveau de la balise « %1
-1073573362 SERVICETAS ».
K_ERROR_IN
_SAVE_TO_X
ML

0xC002920F DTS_E_WEB Impossible d'enregistrer la tâche dans un document XML qui a la


-1073573361 SERVICETAS valeur NULL.
K_TASK_SAV
E_TO_NULL_
XML_ELEME
NT

0xC0029210 DTS_E_WEB Impossible d'initialiser la tâche avec un élément XML qui a la valeur
-1073573360 SERVICETAS NULL.
K_TASK_INIT
IALIZATION_
WITH_NULL
_XML_ELEM
ENT
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029211 DTS_E_WEB La tâche de service Web est initiée avec un élément XML incorrect.
-1073573359 SERVICETAS
K_TASK_INIT
IALIZATION_
WITH_WRO
NG_XML_EL
EMENT

0xC0029212 DTS_E_WEB Un élément XML inattendu a été trouvé.


-1073573358 SERVICETAS
K_UNEXPEC
TED_XML_EL
EMENT

0xC0029213 DTS_E_WEB Une erreur s'est produite lors de l'acquisition de la connexion HTTP.
-1073573357 SERVICETAS Vérifiez qu'un type de connexion valide est spécifié.
K_CANNOT_
ACQUIRE_C
ONNECTIO
N

0xC0029214 DTS_E_WEB Impossible d'enregistrer le résultat. Vérifiez qu'une connexion à un


-1073573356 SERVICETAS fichier existe.
K_FILE_CON
N_NOT_FOU
ND

0xC0029215 DTS_E_WEB Impossible d'enregistrer le résultat. Vérifiez que le fichier existe.


-1073573355 SERVICETAS
K_FILE_NOT
_FOUND

0xC0029216 DTS_E_WEB Impossible d'enregistrer le résultat. Le nom de fichier est vide, ou le


-1073573354 SERVICETAS fichier est utilisé par un autre processus.
K_FILE_NUL
L

0xC0029217 DTS_E_WEB Une erreur s'est produite lors de l'acquisition de la connexion au


-1073573353 SERVICETAS fichier. Vérifiez qu'une connexion à un fichier valide est spécifiée.
K_CANNOT_
ACQUIRE_FI
LE_CONNEC
TION
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029218 DTS_E_WEB Seuls les types complexes avec des valeurs de primitives, des tableaux
-1073573352 SERVICETAS de primitives et des énumérations sont pris en charge.
K_DATATYPE
_NOT_SUPP
ORTED

0xC0029219 DTS_E_WEB Seuls les types Primitive, Enum, Complex, PrimitiveArray et


-1073573351 SERVICETAS ComplexArray sont pris en charge.
K_PARAMTY
PE_NOT_SU
PPORTED

0xC002921A DTS_E_WEB Cette version de WSDL n'est pas prise en charge.


-1073573350 SERVICETAS
K_WSDL_VE
RSION_NOT
_SUPPORTE
D

0xC002921B DTS_E_WEB Initialisation avec un élément XML incorrect.


-1073573349 SERVICETAS
K_WRONG_
XML_ELEME
NT

0xC002921C DTS_E_WEB Un attribut obligatoire est introuvable.


-1073573348 SERVICETAS
K_XML_ATT
RIBUTE_NO
T_FOUND

0xC002921D DTS_E_WEB L'énumération « %1 » ne comporte aucune valeur. WSDL est


-1073573347 SERVICETAS corrompu.
K_ENUM_N
O_VALUES

0xC002921E DTS_E_WEB La connexion est introuvable.


-1073573346 SERVICETAS
K_CONNECT
IONNOTFO
UND
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002921F DTS_E_WEB Une connexion de ce nom existe déjà.


-1073573345 SERVICETAS
K_CONNECT
ION_ALREA
DY_EXISTS

0xC0029220 DTS_E_WEB Une connexion ne peut pas être NULL ou vide.


-1073573344 SERVICETAS
K_NULL_CO
NNECTION

0xC0029221 DTS_E_WEB La connexion spécifiée n'est pas une connexion HTTP. Vérifiez qu'une
-1073573343 SERVICETAS connexion HTTP valide est spécifiée.
K_NOT_HTT
P_CONNECT
ION

0xC0029222 DTS_E_WEB L'URI (Uniform Resource Identifier) ne contient aucun fichier WSDL
-1073573342 SERVICETAS valide.
K_WSDL_N
OT_FOUND

0xC0029223 DTS_E_WEB Impossible de lire le fichier WSDL. Le fichier WSDL d'entrée n'est pas
-1073573341 SERVICETAS valide. Le lecteur a retourné l'erreur suivante : « %1 ».
K_ERROR_IN
_DOWNLOA
D

0xC0029224 DTS_E_WEB La description du service ne peut pas être NULL.


-1073573340 SERVICETAS
K_SERVICE_
DESC_NULL

0xC0029225 DTS_E_WEB Le nom de service ne peut pas être NULL.


-1073573339 SERVICETAS
K_SERVICEN
ULL

0xC0029226 DTS_E_WEB L'URL ne peut pas être NULL.


-1073573338 SERVICETAS
K_WSDL_NU
LL
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029227 DTS_E_WEB Le service n'est pas disponible actuellement.


-1073573337 SERVICETAS
K_SERVICE_
NOT_FOUN
D

0xC0029228 DTS_E_WEB Le service n'est pas disponible sur le port SOAP.


-1073573336 SERVICETAS
K_SOAPPOR
T_NOT_FOU
ND

0xC0029229 DTS_E_WEB Impossible d'analyser WSDL (Web Services Description Language).


-1073573335 SERVICETAS Impossible de trouver la liaison qui correspond au port SOAP.
K_SOAPBIN
DING_NOT_
FOUND

0xC002922A DTS_E_WEB Impossible d'analyser WSDL (Web Services Description Language).


-1073573334 SERVICETAS Impossible de trouver un PortType qui correspond au port SOAP.
K_SOAPPOR
TTYPE_NOT
_FOUND

0xC002922B DTS_E_WEB Impossible de trouver le message qui correspond à la méthode


-1073573333 SERVICETAS spécifiée.
K_MSG_NO
T_FOUND

0xC002922C DTS_E_WEB Impossible de générer le proxy pour le service Web spécifié. Les
-1073573332 SERVICETAS erreurs suivantes se sont produites lors de la création du proxy « %1 ».
K_CANNOT_
GEN_PROXY

0xC002922D DTS_E_WEB Impossible de charger le proxy pour le service Web spécifié. L'erreur
-1073573331 SERVICETAS exacte est comme suit : « %1 ».
K_CANNOT_
LOAD_PROX
Y

0xC002922E DTS_E_WEB Impossible de trouver le service spécifié. L'erreur exacte est comme
-1073573330 SERVICETAS suit : « %1 ».
K_INVALID_
SERVICE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002922F DTS_E_WEB Le service Web a retourné l'erreur suivante lors de l'exécution de la


-1073573329 SERVICETAS méthode : « %1 ».
K_WEBMET
HOD_INVO
KE_FAILED

0xC0029230 DTS_E_WEB Impossible d'exécuter la méthode Web. L'erreur exacte est comme suit
-1073573328 SERVICETAS : « %1 ».
K_INVOKE_E
RR

0xC0029231 DTS_E_WEB MethodInfo ne peut pas être NULL.


-1073573327 SERVICETAS
K_METHODI
NFO_NULL

0xC0029232 DTS_E_WEB La méthode WebMethodInfo spécifiée est incorrecte. La valeur


-1073573326 SERVICETAS ParamValue fournie ne correspond pas au type ParamType.
K_VALUE_N DTSParamValue n'est pas de type PrimitiveValue.
OT_PRIMITI
VE

0xC0029233 DTS_E_WEB La méthode WebMethodInfo spécifiée est incorrecte. La valeur


-1073573325 SERVICETAS ParamValue fournie ne correspond pas au type ParamType. La valeur
K_VALUE_N DTSParamValue trouvée n'est pas de type EnumValue.
OT_ENUM

0xC0029234 DTS_E_VALU La méthode WebMethodInfo spécifiée est incorrecte. La valeur


-1073573324 E_WEBSERVI ParamValue fournie ne correspond pas au type ParamType. La valeur
CETASK_NO DTSParamValue trouvée n'est pas de type ComplexValue.
T_COMPLEX

0xC0029235 DTS_E_WEB La méthode WebMethodInfo spécifiée est incorrecte. La valeur


-1073573323 SERVICETAS ParamValue fournie ne correspond pas au type ParamType. La valeur
K_VALUE_N DTSParamValue trouvée n'est pas de type ArrayValue.
OT_ARRAY

0xC0029236 DTS_E_WEB La méthode WebMethodInfo spécifiée est incorrecte. « %1 » n'est pas


-1073573322 SERVICETAS de type Primitive.
K_TYPE_NO
T_PRIMITIVE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029237 DTS_E_WEB Le format de ArrayValue n'est pas valide. Au moins un élément doit
-1073573321 SERVICETAS figurer dans le tableau.
K_ARRAY_V
ALUE_INVAL
ID

0xC0029238 DTS_E_WEB La valeur de l'énumération ne peut pas être NULL. Sélectionnez une
-1073573320 SERVICETAS valeur par défaut pour l'énumération.
K_SELECTED
_VALUE_NU
LL

0xC0029239 DTS_E_WEB Impossible de valider une valeur NULL dans un type de données.
-1073573319 SERVICETAS
K_NULL_VAL
UE

0xC002923A DTS_E_WEB La valeur de l'énumération est incorrecte.


-1073573318 SERVICETAS
K_ENUM_VA
LUE_NOT_F
OUND

0xC002923B DTS_E_WEB La classe spécifiée ne contient aucune propriété publique du nom


-1073573317 SERVICETAS « %1 ».
K_PROP_NO
T_EXISTS

0xC002923C DTS_E_WEB Impossible de convertir « %1 » en « %2 ».


-1073573316 SERVICETAS
K_CONVERT
_FAILED

0xC002923D DTS_E_WEB Échec du nettoyage. Le proxy créé pour le service Web n'a peut-être
-1073573315 SERVICETAS pas été supprimé.
K_CLEANUP
_FAILED

0xC002923E DTS_E_WEB Impossible de créer un objet de type « %1 ». Vérifiez si le constructeur


-1073573314 SERVICETAS par défaut existe.
K_CREATE_I
NSTANCE_F
AILED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002923F DTS_E_WEB « %1 » n'est pas un type de valeur.


-1073573313 SERVICETAS
K_NOT_PRI
MITIVE_TYP
E

0xC0029240 DTS_E_WEB Impossible de valider « %1 » par rapport à « %1 ».


-1073573312 SERVICETAS
K_ERROR_IN
_VALIDATE

0xC0029241 DTS_E_WEB Le type de données ne peut être NULL. Spécifiez la valeur du type de
-1073573311 SERVICETAS données à valider.
K_DATATYPE
_NULL

0xC0029242 DTS_E_WEB Impossible d'insérer ParamValue à cette position. L'index spécifié est
-1073573310 SERVICETAS peut-être inférieur à zéro ou supérieur à la longueur.
K_INDEX_O
UT_OF_BOU
NDS

0xC0029243 DTS_E_WEB Le fichier WSDL d'entrée n'est pas valide.


-1073573309 SERVICETAS
K_WRONG_
WSDL

0xC0029244 DTS_E_WMI Échec de l'objet de synchronisation.


-1073573308 DRTASK_SY
NCOBJECTF
AILED

0xC0029245 DTS_E_WMI La requête WQL est manquante.


-1073573307 DRTASK_MI
SSINGWQL
QUERY

0xC0029246 DTS_E_WMI La destination doit être définie.


-1073573306 DRTASK_DE
STINATION
MUSTBESET
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029247 DTS_E_WMI Aucune connexion WMI n'est définie.


-1073573305 DRTASK_MI
SSINGCON
NECTION

0xC0029248 DTS_E_WMI La tâche Lecteur de données WMI a reçu un nœud de données de


-1073573304 DRTASK_INV tâche incorrect.
ALIDDATAN
ODE

0xC0029249 DTS_E_WMI Échec de la validation de la tâche.


-1073573303 DRTASK_FAI
LEDVALIDAT
ION

0xC002924A DTS_E_WMI Le fichier « %1 » n'existe pas.


-1073573302 DRTASK_FIL
EDOESNOTE
XIST

0xC002924B DTS_E_WMI Le gestionnaire de connexions « %1 » n'existe pas.


-1073573301 DRTASK_CO
NNECTION
MNGRDOES
NTEXIST

0xC002924C DTS_E_WMI La variable « %1 » n'est pas de type String ou Object.


-1073573300 DRTASK_VA
RIABLETYPEI
SNOTSTRIN
GOROBJECT

0xC002924D DTS_E_WMI La connexion « %1 » n'est pas de type « FILE ».


-1073573299 DRTASK_CO
NNECTIONT
YPENOTFILE

0xC002924E DTS_E_WMI La connexion « %1 » n'est pas de type « WMI ».


-1073573298 DRTASK_CO
NNECTIONT
YPENOTWM
I
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002924F DTS_E_WMI Le fichier « %1 » existe déjà.


-1073573297 DRTASK_FIL
EALREADYE
XISTS

0xC0029250 DTS_E_WMI Le gestionnaire de connexions « %1 » est vide.


-1073573296 DRTASK_CO
NNECTION
MANAGERE
MPTY

0xC0029251 DTS_E_WMI La variable « %1 » doit être un objet de type à affecter à une table de
-1073573295 DRTASK_VA données.
RNOTOBJEC
T

0xC0029252 DTS_E_WMI Échec de la tâche en raison d'une requête WMI non valide : « %1 ».
-1073573294 DRTASK_TA
SKFAILURE

0xC0029253 DTS_E_WMI Impossible d'écrire dans la variable « %1 » car elle est définie pour
-1073573293 DRTASK_CA conserver sa valeur d'origine.
NTWRITETO
VAR

0xC0029254 DTS_E_WMI Échec de l'objet de synchronisation.


-1073573292 EWTASK_SY
NCOBJECTF
AILED

0xC0029255 DTS_E_WMI La requête WQL est manquante.


-1073573291 EWTASK_MI
SSINGWQL
QUERY

0xC0029256 DTS_E_WMI La connexion WMI est manquante.


-1073573290 EWTASK_MI
SSINGCON
NECTION

0xC0029257 DTS_E_WMI La tâche n'a pas pu exécuter la requête WMI.


-1073573289 EWTASK_Q
UERYFAILUR
E
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029258 DTS_E_WMI La tâche Observateur d'événement WMI a reçu un nœud de données


-1073573288 EWTASK_IN de tâche non valide.
VALIDDATA
NODE

0xC0029259 DTS_E_WMI Le gestionnaire de connexions « %1 » n'existe pas.


-1073573287 EWTASK_CO
NNECTION
MNGRDOES
NTEXIST

0xC002925A DTS_E_WMI Le fichier « %1 » n'existe pas.


-1073573286 EWTASK_FIL
EDOESNOTE
XIST

0xC002925B DTS_E_WMI La variable « %1 » n'est pas de type String.


-1073573285 EWTASK_VA
RIABLETYPEI
SNOTSTRIN
G

0xC002925C DTS_E_WMI La connexion « %1 » n'est pas de type « FILE ».


-1073573284 EWTASK_CO
NNECTIONT
YPENOTFILE

0xC002925D DTS_E_WMI La connexion « %1 » n'est pas de type « WMI ».


-1073573283 EWTASK_CO
NNECTIONT
YPENOTWM
I

0xC002925E DTS_E_WMI Le fichier « %1 » existe déjà.


-1073573282 EWTASK_FIL
EALREADYE
XISTS

0xC002925F DTS_E_WMI Le gestionnaire de connexions « %1 » est vide.


-1073573281 EWTASK_CO
NNECTION
MANAGERE
MPTY
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029260 DTS_E_WMI Délai d'attente de « %1 » seconde(s) dépassé avant l'événement


-1073573280 EWTASK_TI représenté par « %2 ».
MEOUTOCC
URRED

0xC0029261 DTS_E_WMI La surveillance de la requête WQL a provoqué l'exception système


-1073573279 EWTASK_ER suivante : « %1 ». Vérifiez les erreurs dans la requête ou les
RMESSAGE droits/autorisations d'accès de la connexion WMI.

0xC0029262 DTS_E_XMLT Les opérations spécifiées ne sont pas définies.


-1073573278 ASK_NODEF
AULTOPERTI
ON

0xC0029263 DTS_E_XMLT La connexion n'est pas de type File.


-1073573277 ASK_CONN
ECTIONTYP
ENOTFILE

0xC0029264 DTS_E_XMLT Impossible d'obtenir XmlReader à partir du document XML source.


-1073573276 ASK_CANTG
ETREADERF
ROMSOURC
E

0xC0029265 DTS_E_XMLT Impossible d'obtenir XmlReader à partir du document XML modifié.


-1073573275 ASK_CANTG
ETREADERF
ROMDEST

0xC0029266 DTS_E_XMLT Impossible d'obtenir le lecteur DiffGram XDL à partir du fichier XML
-1073573274 ASK_CANTG DiffGram XDL.
ETREADERF
ROMDIFFGR
AM

0xC0029268 DTS_E_XMLT La liste de nœuds est vide.


-1073573272 ASK_EMPTY
NODELIST

0xC0029269 DTS_E_XMLT L'élément est introuvable.


-1073573271 ASK_NOELE
MENTFOUN
D
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002926A DTS_E_XMLT Les opérations spécifiées ne sont pas définies.


-1073573270 ASK_UNDEF
INEDOPERA
TION

0xC002926B DTS_E_XMLT Élément de contenu inattendu dans XPathNavigator.


-1073573269 ASK_XPATH
NAVERROR

0xC002926C DTS_E_XMLT Schéma introuvable pour appliquer la validation.


-1073573268 ASK_NOSC
HEMAFOUN
D

0xC002926D DTS_E_XMLT Une erreur de validation s'est produite lors de la validation de


-1073573267 ASK_VALIDA l'instance du document.
TIONERROR

0xC002926E DTS_E_XMLT Échec de l'objet de synchronisation.


-1073573266 ASK_SYNCO
BJECTFAILE
D

0xC002926F DTS_E_XMLT Les nœuds racines ne correspondent pas.


-1073573265 ASK_ROOTN
OODESNOT
MATCHED

0xC0029270 DTS_E_XMLT Le type d'opération d'édition de script n'est pas valide dans le script
-1073573264 ASK_INVALI d'édition final.
DEDITSCRIP
T

0xC0029271 DTS_E_XMLT Les nœuds CDATA doivent être ajoutés à la classe


-1073573263 ASK_CDATA DiffgramAddSubtrees.
NODESISSU
E

0xC0029272 DTS_E_XMLT Les nœuds de commentaires doivent être ajoutés à la classe


-1073573262 ASK_COMM DiffgramAddSubtrees.
ENTSNODEI
SSUE

0xC0029273 DTS_E_XMLT Les nœuds de texte doivent être ajoutés à la classe


-1073573261 ASK_TEXTN DiffgramAddSubtrees.
ODEISSUES
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029274 DTS_E_XMLT Les nœuds d'espaces significatifs doivent être ajoutés à la classe
-1073573260 ASK_WHITE DiffgramAddSubtrees.
SPACEISSUE

0xC0029275 DTS_E_XMLT Corrigez le tableau OperationCost de façon à ce qu'il reflète


-1073573259 ASK_DIFFEN l'énumération XmlDiffOperation.
UMISSUE

0xC0029276 DTS_E_XMLT La tâche ne contient aucune opération.


-1073573258 ASK_TASKIS
EMPTY

0xC0029277 DTS_E_XMLT Le document contient déjà des données et ne doit pas être réutilisé.
-1073573257 ASK_DOCU
MENTHASD
ATA

0xC0029278 DTS_E_XMLT Le type de nœud n'est pas valide.


-1073573256 ASK_INVALI
DENODETY
PE

0xC0029279 DTS_E_XMLT La tâche XML a reçu un nœud de données de tâche non valide.
-1073573255 ASK_INVALI
DDATANOD
E

0xC002927B DTS_E_XMLT Les données de variable ne sont pas de type String.


-1073573253 ASK_VARIAB
LETYPEISNO
TSTRING

0xC002927C DTS_E_XMLT Impossible d'obtenir l'encodage à partir du fichier XML.


-1073573252 ASK_COULD
NOTGETENC
ODINGFRO
MDOCUME
NT

0xC002927D DTS_E_XMLT La source n'est pas spécifiée.


-1073573251 ASK_MISSIN
GSOURCE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002927E DTS_E_XMLT Le second opérande n'est pas spécifié.


-1073573250 ASK_MISSIN
GSECONDO
PERAND

0xC002927F DTS_E_XMLT Diffgram XDL non valide. « %1 » est un descripteur de chemin d'accès
-1073573249 ASK_INVALI non valide.
DPATHDESC
RIPTOR

0xC0029280 DTS_E_XMLT Diffgram XDL non valide. Aucun nœud ne correspond au descripteur
-1073573248 ASK_NOMA de chemin d'accès « %1 ».
TCHINGNO
DE

0xC0029281 DTS_E_XMLT Diffgram XDL non valide. xd:xmldiff attendu comme élément racine
-1073573247 ASK_EXPECT avec l'URI de l'espace de noms « %1 ».
INGDIFFGR
AMELEMEN
T

0xC0029282 DTS_E_XMLT DiffGram XDL non valide. L'attribut srcDocHash de l'élément xd:xmldiff
-1073573246 ASK_MISSIN est manquant.
GSRCDOCA
TTRIBUTE

0xC0029283 DTS_E_XMLT DiffGram XDL non valide. L'attribut options de l'élément xd:xmldiff est
-1073573245 ASK_MISSIN manquant.
GOPTIONSA
TTRIBUTE

0xC0029284 DTS_E_XMLT DiffGram XDL non valide. La valeur de l'attribut srcDocHash n'est pas
-1073573244 ASK_INVALI valide.
DSRCDOCA
TTRIBUTE

0xC0029285 DTS_E_XMLT DiffGram XDL non valide. L'attribut des options a une valeur non
-1073573243 ASK_INVALI valide.
DOPTIONSA
TTRIBUTE

0xC0029286 DTS_E_XMLT DiffGram XDL ne s'applique pas à ce document XML. La valeur


-1073573242 ASK_SRCDO rcDocHash ne correspond pas.
CMISMATC
H
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029287 DTS_E_XMLT DiffGram XDL non valide. Plusieurs nœuds correspondent au


-1073573241 ASK_MORET descripteur de chemin d'accès « %1 » dans l'élément xd:node ou
HANONEN xd:change.
ODEMATCH
ED

0xC0029288 DTS_E_XMLT DiffGram XDL ne s'applique pas à ce document XML. Impossible


-1073573240 ASK_XMLDE d'ajouter une nouvelle déclaration XML.
CLMISMATC
H

0xC0029289 DTS_E_XMLT Erreur interne. XmlDiffPathSingleNodeList ne peut contenir qu'un seul


-1073573239 ASK_INTER nœud.
NALERROR
MORETHAN
ONENODEI
NLIST

0xC002928A DTS_E_XMLT Erreur interne. « %1 » nœuds restants après correction, 1 nœud


-1073573238 ASK_INTER attendu.
NALERROR
MORETHAN
ONENODEL
EFT

0xC002928B DTS_E_XMLT Le fichier/texte généré par XSLT n’est pas un XmlDocument valide, et
-1073573237 ASK_XSLTRE par conséquent ne peut pas être le résultat de l’opération : « %1 ».
SULTFILEISN
OTXML

0xC002928E DTS_E_XMLT Aucun fichier n'est associé à la connexion « %1 ».


-1073573234 ASK_FILEDO
ESNOTEXIST

0xC002928F DTS_E_XMLT La propriété « %1 » n'a aucun texte XML source ; le texte XML est une
-1073573233 ASK_XMLTE chaîne non valide, NULL ou vide.
XTEMPTY

0xC0029290 DTS_E_XMLT Le fichier « %1 » existe déjà.


-1073573232 ASK_FILEAL
READYEXIST
S
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0029293 DTS_E_TRA Une connexion source doit être indiquée.


-1073573229 NSFERTASK
S_SRCCONN
ECTIONREQ
UIRED

0xC0029294 DTS_E_TRA Une connexion de destination doit être indiquée.


-1073573228 NSFERTASK
S_DESTCON
NECTIONRE
QUIRED

0xC0029295 DTS_E_TRA La connexion « %1 » est introuvable dans le package.


-1073573227 NSFERTASK
S_CONNECT
IONNOTFO
UND

0xC0029296 DTS_E_TRA La connexion « %1 » spécifie une instance SQL Server dont la version
-1073573226 NSFERTASK n'est pas prise en charge pour le transfert. Seules les versions 7, 2000
S_SERVERVE et 2005 sont prises en charge.
RSIONNOTA
LLOWED

0xC0029297 DTS_E_TRA La connexion source « %1 » doit spécifier une instance SQL Server
-1073573225 NSFERTASK avec une version antérieure ou égale à la connexion de destination «
S_SRCSERVE %2 ».
RLESSEQUA
LDESTSERVE
R

0xC0029298 DTS_E_TRA Une base de données source doit être indiquée.


-1073573224 NSFERTASK
S_SRCDBRE
QUIRED

0xC0029299 DTS_E_TRA La base de données source « %1 » doit exister sur le serveur source.
-1073573223 NSFERTASK
S_SRCDBM
USTEXIST

0xC002929A DTS_E_TRA Une base de données de destination doit être indiquée.


-1073573222 NSFERTASK
S_DESTDBR
EQUIRED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002929B DTS_E_TRA Les bases de données source et de destination ne peuvent pas être
-1073573221 NSFERTASK identiques.
S_SRCDBAN
DDESTDBTH
ESAME

0xC002929C DTS_E_TRA Le nom de fichier est manquant dans les informations sur le fichier de
-1073573220 NSFERDBTA transfert %1.
SK_FILENA
MEREQUIRE
D

0xC002929D DTS_E_TRA La partie relative au dossier est manquante dans les informations sur
-1073573219 NSFERDBTA le fichier de transfert %1.
SK_FOLDER
REQUIRED

0xC002929E DTS_E_TRA La partie relative au partage réseau est manquante dans les
-1073573218 NSFERTASK informations sur le fichier de transfert %1.
S_NETSHAR
EREQUIRED

0xC002929F DTS_E_TRA Le nombre de fichiers de transfert sources et le nombre de fichiers de


-1073573217 NSFERTASK transfert de destination doivent être identiques.
S_FILELISTS
COUNTMIS
MATCH

0xC00292A0 DTS_E_DOE L'inscription dans les transactions n'est pas prise en charge.
-1073573216 SNOTSUPP
ORTTRANS
ACTIONS

0xC00292A1 DTS_E_TRA L'exception suivante s'est produite pendant un transfert de base de


-1073573215 NSFERDBTA données hors connexion : %1.
SK_OFFLINE
ERROR

0xC00292A2 DTS_E_TRA Le partage réseau « %1 » est introuvable.


-1073573214 NSFERDBTA
SK_NETSHA
REDOESNO
TEXIST
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00292A3 DTS_E_TRA Le partage réseau « %1 » est inaccessible. Erreur : %2.


-1073573213 NSFERDBTA
SK_NETSHA
RENOACCES
S

0xC00292A4 DTS_E_TRA L'utilisateur « %1 » doit être un propriétaire de base de données ou un


-1073573212 NSFERDBTA administrateur système « %2 » pour effectuer un transfert de base de
SK_USERMU données en ligne.
STBEDBOO
RSYSADMIN

0xC00292A5 DTS_E_TRA L'utilisateur « %1 » doit être administrateur système sur « %2 » pour


-1073573211 NSFERDBTA effectuer un transfert de base de données hors connexion.
SK_USERMU
STBESYSAD
MIN

0xC00292A6 DTS_E_TRA Les catalogues de texte intégral ne peuvent être inclus que lors d'un
-1073573210 NSFERDBTA transfert de base de données hors connexion entre 2 serveurs SQL
SK_FTCATAL Server 2005.
OGSOFFLIN
EYUKONON
LY

0xC00292A7 DTS_E_TRA La base de données « %1 » existe déjà sur le serveur de destination


-1073573209 NSFERDBTA « %2 ».
SK_NOOVER
WRITEDB

0xC00292A8 DTS_E_TRA Au moins un fichier source doit être indiqué.


-1073573208 NSFERDBTA
SK_MUSTHA
VESOURCEF
ILES

0xC00292A9 DTS_E_TRA Impossible de trouver le fichier « %1 » dans la base de données source


-1073573207 NSFERDBTA « %2 ».
SKS_SRCFIL
ENOTFOUN
D
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00292B3 DTS_E_MSM L'opération demandée n'est pas autorisée sur les systèmes conformes
-1073573197 QTASK_FIPS à la norme U.S. FIPS 140-2.
1402COMPL
IANCE

0xC002F210 DTS_E_SQLT L'exécution de la requête « %1 » a échoué avec l'erreur suivante : « %2


-1073548784 ASK_ERROR ». Causes possibles de cet échec : problèmes liés à la requête,
EXECUTING propriété « ResultSet » non définie correctement, paramètres non
THEQUERY définis correctement ou connexion non établie correctement.

0xC002F300 DTS_E_TRA Erreur lors de la lecture des noms des procédures stockées dans le
-1073548544 NSFERSPTA fichier XML.
SK_ERRORR
EADINGSPN
AMES

0xC002F301 DTS_E_TRA Nœud de données non valide pour la tâche de transfert de procédures
-1073548543 NSFERSPTA stockées.
SK_INVALID
DATANODE

0xC002F302 DTS_E_TRA La connexion « %1 » n'est pas de type « SMOServer ».


-1073548542 NSFERTASK
S_CONNECT
IONTYPEISN
OTSMOSER
VER

0xC002F303 DTS_E_TRA L'exécution a échoué avec l'erreur suivante : « %1 ».


-1073548541 NSFERSPTA
SK_EXECUTI
ONFAILED

0xC002F304 DTS_E_ERRO Une erreur s'est produite avec le message d'erreur suivant : « %1 ».
-1073548540 ROCCURRE
DWITHFOLL
OWINGMES
SAGE

0xC002F305 DTS_E_BITAS Échec d'exécution de l'insertion en bloc.


-1073548539 K_EXECUTIO
N_FAILED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002F306 DTS_E_FSTA Chemin de destination non valide.


-1073548538 SK_INVALID
DESTPATH

0xC002F307 DTS_E_FSTA Impossible de créer le répertoire. L'utilisateur a choisi l'échec de la


-1073548537 SK_CANTCR tâche si le répertoire existe.
EATEDIR

0xC002F308 DTS_E_SQLT La tâche comporte une option de transaction « Nécessaire » et la


-1073548536 ASK_ODBC connexion « %1 » est de type « ODBC ». Les connexions ODBC ne
NOSUPPOR prennent pas en charge les transactions.
TTRANSACT
ION

0xC002F309 DTS_E_SQLT Une erreur s'est produite lors de l'affectation d'une valeur à la variable
-1073548535 ASK_ERROR « %1 » : « %2 ».
ASSIGINGV
ALUETOVAR

0xC002F30A DTS_E_FSTA La source est vide.


-1073548534 SK_SOURCEI
SEMPTY

0xC002F30B DTS_E_FSTA La destination est vide.


-1073548533 SK_DESTINA
TIONISEMP
TY

0xC002F30C DTS_E_FSTA Le fichier ou le répertoire « %1 » n'existe pas.


-1073548532 SK_FILEDIR
NOTFOUND

0xC002F30D DTS_E_FSTA La variable « %1 » est utilisée comme source ou destination et est vide.
-1073548531 SK_VARSRC
ORDESTISE
MPTY

0xC002F30E DTS_E_FSTA Le fichier ou le répertoire « %1 » a été supprimé.


-1073548530 SK_FILEDELE
TED

0xC002F30F DTS_E_FSTA Le répertoire « %1 » a été supprimé.


-1073548529 SK_DIRECTO
RYDELETED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002F310 DTS_E_WMI La variable « %1 » doit être un objet de type à affecter à une table de
-1073548528 DRTASK_VA données.
RIABLETYPEI
SNOTOBJEC
T

0xC002F311 DTS_E_WMI La variable « %1 » ne comporte pas un type de données String.


-1073548527 DRTASK_VA
RIABLETYPEI
SNOTSTRIN
G

0xC002F312 DTS_E_FTPT Une erreur s'est produite lors de l'acquisition de la connexion FTP.
-1073548526 ASK_CANN Vérifiez qu'un type de connexion valide est spécifié dans « %1 ».
OTACQUIRE
CONNECTI
ON

0xC002F313 DTS_E_FTPT Le gestionnaire de connexions FTP « %1 » est introuvable.


-1073548525 ASK_CONN
ECTIONNOT
FOUND

0xC002F314 DTS_E_FTPT Le type de connexion d'utilisation de fichiers « %1 » doit être « %2 »


-1073548524 ASK_FILEUS pour l'opération « %3 ».
AGETYPEER
ROR

0xC002F315 DTS_E_TRA Le serveur source ne peut pas être le même que le serveur de
-1073548523 NSFERTASK destination.
S_SOURCEC
ANTBESAM
EASDESTIN
ATION

0xC002F316 DTS_E_ERR Aucun message d'erreur à transférer.


-1073548522 MSGTASK_E
MPTYSOUR
CELIST
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002F317 DTS_E_ERR Les listes de messages d'erreurs et leurs langues correspondantes sont
-1073548521 MSGTASK_D de tailles différentes.
IFFERENTM
ESSAGEAND
LANGUAGE
SIZES

0xC002F318 DTS_E_ERR L'ID du message d'erreur « %1 » se situe hors de la plage autorisée


-1073548520 MSGTASK_E des messages d'erreur définis par l'utilisateur. Les ID des messages
RRORMESS d'erreurs définis par l'utilisateur sont compris entre 50 000 et 2 147
AGEOUTOF 483 647.
RANGE

0xC002F319 DTS_E_TRA Cette tâche ne peut pas participer à une transaction.


-1073548519 NSFERTASK
S_NOTRANS
ACTIONSUP
PORT

0xC002F320 DTS_E_ERR Échec du transfert d'une partie ou de la totalité des messages d'erreur.
-1073548512 MSGTASK_F
AILEDTOTRA
NSFERERRO
RMESSAGES

0xC002F321 DTS_E_ERR Le message d'erreur « %1 » existe déjà sur le serveur de destination.


-1073548511 MSGTASK_E
RRORMESS
AGEALREAD
YEXISTS

0xC002F324 DTS_E_ERR Le message d'erreur « %1 » est introuvable sur le serveur source.


-1073548508 MSGTASK_E
RRORMESS
AGECANTBE
FOUND

0xC002F325 DTS_E_TRA L'exécution a échoué avec l'erreur suivante : « %1 ».


-1073548507 NSFERTASK
S_EXECUTIO
NFAILED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002F327 DTS_E_JOBS Échec du transfert du travail ou des travaux.


-1073548505 TASK_FAILE
DTOTRANSF
ERJOBS

0xC002F330 DTS_E_JOBS Aucun travail à transférer.


-1073548496 TASK_EMPT
YSOURCELI
ST

0xC002F331 DTS_E_JOBS Le travail « %1 » existe déjà sur le serveur de destination.


-1073548495 TASK_JOBEX
ISTSATDEST

0xC002F334 DTS_E_JOBS Le travail « %1 » est introuvable sur le serveur source.


-1073548492 TASK_JOBC
ANTBEFOU
ND

0xC002F337 DTS_E_LOGI La liste des « noms d'accès » à transférer est vide.


-1073548489 NSTASK_EM
PTYLIST

0xC002F338 DTS_E_LOGI Impossible d'obtenir la liste des « noms d'accès » à partir du serveur
-1073548488 NSTASK_CA source.
NTGETLOGI
NSNAMELIS
T

0xC002F340 DTS_E_LOGI Le nom d'accès « %1 » existe déjà sur le serveur de destination.


-1073548480 NSTASK_ER
RORLOGINE
XISTS

0xC002F342 DTS_E_LOGI Le nom d'accès « %1 » n'existe pas à la source.


-1073548478 NSTASK_LO
GINNOTFO
UND

0xC002F344 DTS_E_LOGI Échec du transfert d'une partie ou de la totalité des noms d'accès.
-1073548476 NSTASK_FAI
LEDTOTRAN
SFERLOGIN
S
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002F345 DTS_E_STOR Échec du transfert de la ou des procédures stockées. Des erreurs plus
-1073548475 EDPROCSTA détaillées devraient avoir été déclenchées.
SK_FAILEDT
OTRANSFER
SPS

0xC002F346 DTS_E_STOR La procédure stockée « %1 » est introuvable à la source.


-1073548474 EDPROCSTA
SK_STORED
PROCNOTF
OUND

0xC002F349 DTS_E_STOR La procédure stockée « %1 » existe déjà sur le serveur de destination.


-1073548471 EDPROCSTA
SK_ERRORS
TOREDPRO
CEDUREEXI
STS

0xC002F350 DTS_E_STOR Aucune procédure stockée à transférer.


-1073548464 EDPROCSTA
SK_EMPTYS
OURCELIST

0xC002F353 DTS_E_TRA Échec du transfert de l'objet ou des objets.


-1073548461 NSOBJECTS
TASK_FAILE
DTOTRANSF
EROBJECTS

0xC002F354 DTS_E_TRA La liste « d'objets » à transférer est vide.


-1073548460 NSOBJECTS
TASK_EMPT
YLIST

0xC002F355 DTS_E_TRA La procédure stockée « %1 » n'existe pas à la source.


-1073548459 NSOBJECTS
TASK_NOSP
ATSOURCE

0xC002F356 DTS_E_TRA La procédure stockée « %1 » existe déjà à la destination.


-1073548458 NSOBJECTS
TASK_SPALR
EADYATDES
T
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002F357 DTS_E_TRA Une erreur s'est produite lors de la tentative de définition de la liste
-1073548457 NSOBJECTS des procédures stockées à transférer : « %1 ».
TASK_ERRO
RHANDLIN
GSPS

0xC002F359 DTS_E_TRA La règle « %1 » n'existe pas à la source.


-1073548455 NSOBJECTS
TASK_NORU
LEATSOURC
E

0xC002F360 DTS_E_TRA La règle « %1 » existe déjà à la destination.


-1073548448 NSOBJECTS
TASK_RULE
ALREADYAT
DEST

0xC002F361 DTS_E_TRA Une erreur s'est produite lors de la tentative de définition de la liste
-1073548447 NSOBJECTS des règles à transférer : « %1 ».
TASK_ERRO
RHANDLIN
GRULES

0xC002F363 DTS_E_TRA La table « %1 » n'existe pas à la source.


-1073548445 NSOBJECTS
TASK_NOTA
BLEATSOUR
CE

0xC002F364 DTS_E_TRA La table « %1 » existe déjà à la destination.


-1073548444 NSOBJECTS
TASK_TABLE
ALREADYAT
DEST

0xC002F365 DTS_E_TRA Une erreur s'est produite lors de la tentative de définition de la liste
-1073548443 NSOBJECTS des tables à transférer : « %1 ».
TASK_ERRO
RHANDLIN
GTABLES
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002F367 DTS_E_TRA La vue « %1 » n'existe pas à la source.


-1073548441 NSOBJECTS
TASK_NOVIE
WATSOURC
E

0xC002F368 DTS_E_TRA La vue « %1 » existe déjà à la destination.


-1073548440 NSOBJECTS
TASK_VIEW
ALREADYAT
DEST

0xC002F369 DTS_E_TRA Une erreur s'est produite lors de la tentative de définition de la liste
-1073548439 NSOBJECTS des vues à transférer : « %1 ».
TASK_ERRO
RHANDLIN
GVIEWS

0xC002F371 DTS_E_TRA La fonction définie par l'utilisateur « %1 » n'existe pas à la source.


-1073548431 NSOBJECTS
TASK_NOU
DFATSOURC
E

0xC002F372 DTS_E_TRA La fonction définie par l'utilisateur « %1 » existe déjà à la destination.


-1073548430 NSOBJECTS
TASK_UDFA
LREADYATD
EST

0xC002F373 DTS_E_TRA Une erreur s'est produite lors de la tentative de définition de la liste
-1073548429 NSOBJECTS des fonctions définies par l'utilisateur à transférer : « %1 ».
TASK_ERRO
RHANDLIN
GUDFS

0xC002F375 DTS_E_TRA La valeur par défaut « %1 » n'existe pas à la source.


-1073548427 NSOBJECTS
TASK_NODE
FAULTATSO
URCE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002F376 DTS_E_TRA La valeur par défaut « %1 » existe déjà à la destination.


-1073548426 NSOBJECTS
TASK_DEFA
ULTALREAD
YATDEST

0xC002F377 DTS_E_TRA Une erreur s'est produite lors de la tentative de définition de la liste
-1073548425 NSOBJECTS des valeurs par défaut à transférer : « %1 ».
TASK_ERRO
RHANDLIN
GDEFAULTS

0xC002F379 DTS_E_TRA Le type de données défini par l'utilisateur « %1 » n'existe pas à la


-1073548423 NSOBJECTS source.
TASK_NOU
DDTATSOUR
CE

0xC002F380 DTS_E_TRA Le type de données défini par l'utilisateur « %1 » existe déjà à la


-1073548416 NSOBJECTS destination.
TASK_UDDT
ALREADYAT
DEST

0xC002F381 DTS_E_TRA Une erreur s'est produite lors de la tentative de définition de la liste
-1073548415 NSOBJECTS des types de données définis par l'utilisateur à transférer : « %1 ».
TASK_ERRO
RHANDLIN
GUDDTS

0xC002F383 DTS_E_TRA La fonction de partition « %1 » n'existe pas à la source.


-1073548413 NSOBJECTS
TASK_NOPF
ATSOURCE

0xC002F384 DTS_E_TRA La fonction de partition « %1 » existe déjà à la destination.


-1073548412 NSOBJECTS
TASK_PFALR
EADYATDES
T
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002F385 DTS_E_TRA Une erreur s'est produite lors de la tentative de définition de la liste de
-1073548411 NSOBJECTS fonctions de partition à transférer : « %1 ».
TASK_ERRO
RHANDLIN
GPFS

0xC002F387 DTS_E_TRA Le schéma de partition « %1 » n'existe pas à la source.


-1073548409 NSOBJECTS
TASK_NOPS
ATSOURCE

0xC002F388 DTS_E_TRA Le schéma de partition « %1 » existe déjà à la destination.


-1073548408 NSOBJECTS
TASK_PSALR
EADYATDES
T

0xC002F389 DTS_E_TRA Une erreur s'est produite lors de la tentative de définition de la liste
-1073548407 NSOBJECTS des schémas de partition à transférer : « %1 ».
TASK_ERRO
RHANDLIN
GPSS

0xC002F391 DTS_E_TRA Le schéma « %1 » n'existe pas à la source.


-1073548399 NSOBJECTS
TASK_NOSC
HEMAATSO
URCE

0xC002F392 DTS_E_TRA Le schéma « %1 » existe déjà à la destination.


-1073548398 NSOBJECTS
TASK_SCHE
MAALREAD
YATDEST

0xC002F393 DTS_E_TRA Une erreur s'est produite lors de la tentative de définition de la liste
-1073548397 NSOBJECTS des schémas à transférer : « %1 ».
TASK_ERRO
RHANDLIN
GSCHEMAS
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002F395 DTS_E_TRA SqlAssembly « %1 » n'existe pas à la source.


-1073548395 NSOBJECTS
TASK_NOSQ
LASSEMBLY
ATSOURCE

0xC002F396 DTS_E_TRA SqlAssembly « %1 » existe déjà à la destination.


-1073548394 NSOBJECTS
TASK_SQLA
SSEMBLYAL
READYATDE
ST

0xC002F397 DTS_E_TRA Une erreur s'est produite lors de la tentative de définition de la liste de
-1073548393 NSOBJECTS SqlAssembly à transférer : « %1 ».
TASK_ERRO
RHANDLIN
GSQLASSE
MBLIES

0xC002F399 DTS_E_TRA La fonction d'agrégation définie par l'utilisateur « %1 » n'existe pas à


-1073548391 NSOBJECTS la source.
TASK_NOAG
GREGATEAT
SOURCE

0xC002F400 DTS_E_TRA La fonction d'agrégation définie par l'utilisateur « %1 » existe déjà à la


-1073548288 NSOBJECTS destination.
TASK_AGGR
EGATEALRE
ADYATDEST

0xC002F401 DTS_E_TRA Une erreur s'est produite lors de la tentative de définition de la liste
-1073548287 NSOBJECTS des fonctions d'agrégation définies par l'utilisateur à transférer :
TASK_ERRO « %1 ».
RHANDLIN
GAGGREGA
TES

0xC002F403 DTS_E_TRA Le type défini par l'utilisateur « %1 » n'existe pas à la source.


-1073548285 NSOBJECTS
TASK_NOTY
PEATSOURC
E
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002F404 DTS_E_TRA Le type défini par l'utilisateur « %1 » existe déjà à la destination.


-1073548284 NSOBJECTS
TASK_TYPEA
LREADYATD
EST

0xC002F405 DTS_E_TRA Une erreur s'est produite lors de la tentative de définition de la liste de
-1073548283 NSOBJECTS types définis par l'utilisateur à transférer : « %1 ».
TASK_ERRO
RHANDLIN
GTYPES

0xC002F407 DTS_E_TRA XmlSchemaCollection « %1 » n'existe pas à la source.


-1073548281 NSOBJECTS
TASK_NOX
MLSCHEMA
COLLECTIO
NATSOURC
E

0xC002F408 DTS_E_TRA XmlSchemaCollection « %1 » existe déjà à la destination.


-1073548280 NSOBJECTS
TASK_XMLS
CHEMACOL
LECTIONAL
READYATDE
ST

0xC002F409 DTS_E_TRA Une erreur s'est produite lors de la tentative de définition de la liste de
-1073548279 NSOBJECTS XmlSchemaCollection à transférer : « %1 ».
TASK_ERRO
RHANDLIN
GXMLSCHE
MACOLLECT
IONS

0xC002F411 DTS_E_TRA Les objets de type « %1 » sont uniquement pris en charge entre des
-1073548271 NSOBJECTS serveurs SQL Server 2005 ou plus récents.
TASK_SUPP
ORTEDONY
UKONONLY
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002F413 DTS_E_LOGI La liste des bases de données est vide.


-1073548269 NSTASK_EM
PTYDATABA
SELIST

0xC002F414 DTS_E_TRA Le nom d'accès « %1 » n'existe pas à la source.


-1073548268 NSOBJECTS
TASK_NOLO
GINATSOUR
CE

0xC002F416 DTS_E_TRA Le nom d'accès « %1 » existe déjà à la destination.


-1073548266 NSOBJECTS
TASK_LOGI
NALREADYA
TDEST

0xC002F417 DTS_E_TRA Une erreur s'est produite lors de la tentative de définition de la liste de
-1073548265 NSOBJECTS noms d'accès à transférer : « %1 ».
TASK_ERRO
RHANDLIN
GLOGINS

0xC002F419 DTS_E_TRA Le nom d'accès « %1 » n'existe pas à la source.


-1073548263 NSOBJECTS
TASK_NOUS
ERATSOURC
E

0xC002F41B DTS_E_TRA L'utilisateur « %1 » existe déjà à la destination.


-1073548261 NSOBJECTS
TASK_USER
ALREADYAT
DEST

0xC002F41C DTS_E_TRA Une erreur s'est produite lors de la tentative de définition de la liste
-1073548260 NSOBJECTS d'utilisateurs à transférer : « %1 ».
TASK_ERRO
RHANDLIN
GUSERS
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC002F41F DTS_E_BITAS Impossible de conserver un gestionnaire de connexions pour la tâche


-1073548257 K_CANNOT dans une transaction.
RETAINCON
NINTRANSA
CTION

0xC002F421 DTS_E_SQLT Impossible d'obtenir des données XML de SQL Server au format
-1073548255 ASKOUTPUT Unicode, car le fournisseur ne prend pas en charge la propriété
ENCODING OUTPUTENCODING.
NOTSUPPO
RTED

0xC002F426 DTS_E_FTPT Pour l'opération FTP « %1 », le gestionnaire de connexions FILE « %2 »


-1073548250 ASK_FILECO est introuvable.
NNECTION
NOTFOUND

0xC002F428 DTS_E_TRA Les « noms d'accès » sont des objets de niveau serveur qui ne peuvent
-1073548248 NSOBJECTS pas être supprimés en premier, car la source et la destination se
TASK_CANN trouvent sur le même serveur. La suppression des objets en premier
OTDROPOB supprimera les noms d'accès de la source également.
JECTS

0xC002F429 DTS_E_SQLT Le paramètre « %1 » ne peut pas être négatif. (-1) est utilisé pour la
-1073548247 ASK_PARAM valeur par défaut.
SIZEERROR

0xC0040019 DTS_E_UNR Impossible de charger les objets de flux de données. Vérifiez que
-1073479655 EGISTEREDP l'inscription de Microsoft.SqlServer.PipelineXml.dll est correcte.
IPELINEXML
_LOAD

0xC0040020 DTS_E_UNR Impossible d'enregistrer les objets de flux de données. Vérifiez que
-1073479648 EGISTEREDP l'inscription de Microsoft.SqlServer.PipelineXml.dll est correcte.
IPELINEXML
_SAVE

0xC0040040 DTS_E_PIPEL Échec de l'enregistrement des objets de flux de données.


-1073479616 INE_SAVE

0xC0040041 DTS_E_PIPEL Échec du chargement des objets de flux de données


-1073479615 INE_LOAD

0xC0040042 DTS_E_SAVE Échec de l'enregistrement des objets de flux de données. Le format


-1073479614 _PERSTFOR spécifié n'est pas pris en charge.
MAT
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0040043 DTS_E_LOA Échec du chargement des objets de flux de données. Le format


-1073479613 D_PERSTFO spécifié n'est pas pris en charge.
RMAT

0xC0040044 DTS_E_SETP Échec de la définition de la propriété des événements de persistance


-1073479612 ERSIST_PRO XML pour les objets de flux de données.
PEVENTS

0xC0040045 DTS_E_SETP Échec de la définition de la propriété DOM XML de persistance pour


-1073479611 ERSIST_XML les objets de flux de données.
DOM

0xC0040046 DTS_E_SETP Échec de la définition de la propriété ELEMENT XML de persistance


-1073479610 ERSIST_XML pour les objets de flux de données.
NODE

0xC0040047 DTS_E_SETP Échec de la définition des propriétés de persistance xml pour les
-1073479609 ERSISTPROP objets de flux de données.
_FAILED

0xC0040048 DTS_E_NOC Échec de l'obtention de la collection de propriétés personnalisées pour


-1073479608 USTOMPRO les composants de flux de données.
PCOL

0xC0047000 DTS_E_CYCL Une arborescence d'exécution contient un cycle.


-1073451008 EINEXECUTI
ONTREE

0xC0047001 DTS_E_DISC L'objet %1 « %2 » (%3!d!) est déconnecté de la structure.


-1073451007 ONNECTED
OBJECT

0xC0047002 DTS_E_INVA L'ID de l'objet de structure n'est pas valide.


-1073451006 LIDOBJECTI
D

0xC0047003 DTS_E_INPU Un objet d'entrée requis n'est pas connecté à un objet de chemin.
-1073451005 TWITHOUTP
ATHS

0xC0047005 DTS_E_INVA %1 a un ID d'entrée synchrone non valide %2!d!.


-1073451003 LIDSYNCHR
ONOUSINP
UT
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0047006 DTS_E_INVA %1 a l'ID de lignage %2!d!, or %3!d! était attendu.


-1073451002 LIDOUTPUT
LINEAGEID

0xC0047008 DTS_E_DUPL Le package contient deux objets de nom dupliqué « %1 » et « %2 ».


-1073451000 ICATENAME
SINCOLLECT
ION

0xC0047009 DTS_E_INVA « %1 » et « %2 » sont dans le même groupe d'exclusions, mais n'ont


-1073450999 LIDEXCLUSI pas la même entrée synchrone.
ONGROUP

0xC004700A DTS_E_DUPL Deux objets de la même collection ont un ID de lignage dupliqué


-1073450998 ICATELINEA %1!d!. Il s'agit des objets %2 et %3.
GEIDSINCO
LLECTION

0xC004700B DTS_E_VALI Échec de la validation de la structure.


-1073450997 DATIONFAIL
EDONLAYO
UT

0xC004700C DTS_E_VALI Échec de la validation d'un ou de plusieurs composants.


-1073450996 DATIONFAIL
EDONCOM
PONENTS

0xC004700D DTS_E_VALI Échec de la validation de la structure et d'un ou plusieurs composants.


-1073450995 DATIONFAIL
ED

0xC004700E DTS_E_THRE Le moteur de la tâche de flux de données n'a pas pu démarré car il n'a
-1073450994 ADSTARTUP pas pu créer un ou plusieurs threads requis.
FAILED

0xC004700F DTS_E_CAN Un thread n'a pas pu créer une exclusion mutuelle lors de
-1073450993 TGETMUTEX l'initialisation.

0xC0047010 DTS_E_CAN Un thread n'a pas pu créer un sémaphore lors de l'initialisation.


-1073450992 TGETSEMAP
HORE

0xC0047011 DTS_E_BUFF Le système rapporte %1!d! % de mémoire. Il y a %2 octets de mémoire


-1073450991 ERFAILURED physique et %3 octets libres. Il y a %4 octets de mémoire virtuelle et
ETAILS %5 octets libres. Le fichier d'échange a %6 octets et %7 octets libres.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0047012 DTS_E_BUFF Échec d'un tampon lors de l'allocation de %1!d! octets.


-1073450990 ERALLOCFAI
LED

0xC0047013 DTS_E_CAN Impossible de créer le gestionnaire de tampons.


-1073450989 TCREATEBU
FFERMANA
GER

0xC0047015 DTS_E_BUFF La taille du type de tampon %1!d! est de %2!I64d! octets.


-1073450987 ERBADSIZE

0xC0047016 DTS_E_DAN %1 est marqué comme non résolu, mais un chemin d'accès lui est
-1073450986 GLINGWITH associé.
PATH

0xC0047017 DTS_E_INDI Échec de la validation de %1. Code d'erreur : 0x%2!8.8X!.


-1073450985 VIDUALVALI
DATIONFAIL
ED

0xC0047018 DTS_E_INDI Échec de la phase de post-exécution de %1. Code d'erreur :


-1073450984 VIDUALPOS 0x%2!8.8X!.
TEXECUTEF
AILED

0xC0047019 DTS_E_INDI Échec de la phase de préparation de %1. Code d'erreur : 0x%2!8.8X!.


-1073450983 VIDUALPRE
PAREFAILED

0xC004701A DTS_E_INDI Échec de la phase de pré-exécution de %1. Code d'erreur : 0x%2!8.8X!.


-1073450982 VIDUALPRE
EXECUTEFAI
LED

0xC004701B DTS_E_INDI Échec de la phase de nettoyage de %1. Code d'erreur : 0x%2!8.8X!.


-1073450981 VIDUALCLE
ANUPFAILE
D

0xC004701C DTS_E_INVA %1 a l'ID de lignage ID %2!d! non utilisé précédemment dans la tâche
-1073450980 LIDINPUTLI de flux de données.
NEAGEID
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC004701E DTS_E_EXEC Impossible de connecter %1 à %2 car un cycle serait créé.


-1073450978 UTIONTREE
CYCLE

0xC004701F DTS_E_CAN Impossible de comparer le type de données « %1 ». La comparaison


-1073450977 TCOMPARE de ce type de données n'est pas prise en charge. Par conséquent, il ne
peut pas être trié ou utilisé en tant que clé.

0xC0047020 DTS_E_REFU Ce thread s'est arrêté et n'accepte pas les tampons d'entrée.
-1073450976 SEDFORSH
UTDOWN

0xC0047021 DTS_E_THRE Code d'erreur SSIS DTS_E_THREADFAILED. Le thread « %1 » n'est plus


-1073450975 ADFAILED exécuté. Code d'erreur : 0x%2!8.8X!. Des messages d'erreur peuvent
être envoyés au préalable avec des informations indiquant la raison de
la non-exécution du thread.

0xC0047022 DTS_E_PRO Code d'erreur SSIS DTS_E_PROCESSINPUTFAILED. La méthode


-1073450974 CESSINPUTF ProcessInput du composant« %1 » (%2!d!) a échoué avec le code
AILED d'erreur 0x%3!8.8X! pendant le traitement de l'entrée « %4 » (%5!d!).
Le composant identifié a retourné une erreur de la méthode
ProcessInput. Cette erreur, spécifique au composant, est irrécupérable
et provoquera l'arrêt de la tâche de flux de données. Des messages
d'erreur peuvent être envoyés au préalable avec des informations
indiquant la raison de l'échec.

0xC0047023 DTS_E_CAN Impossible de réaliser un jeu de tampons virtuels.


-1073450973 TREALIZEVI
RTUALBUFF
ERS

0xC0047024 DTS_E_PIPEL Le nombre de threads requis pour ce pipeline est de %1!d!. Il excède la
-1073450972 INETOOCO limite système de %2!d!. Le pipeline nécessite trop de threads par
MPLEX rapport à la configuration. Il y a trop de sorties asynchrones ou la
valeur de la propriété EngineThreads est trop élevée. Divisez le
pipeline en plusieurs packages ou réduisez la valeur de la propriété
EngineThreads.

0xC0047028 DTS_E_SCHE Le planificateur du moteur de flux de données ne peut pas obtenir le


-1073450968 DULERCOUL nombre de sources dans la structure.
DNOTCOUN
TSOURCES
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0047029 DTS_E_SCHE Le planificateur du moteur de flux de données ne peut pas obtenir le


-1073450967 DULERCOUL nombre de destinations dans la structure.
DNOTCOUN
TDESTINATI
ONS

0xC004702A DTS_E_COM La vue du composant n'est pas disponible. Vérifiez qu'elle a été créée.
-1073450966 PONENTVIE
WISUNAVAI
LABLE

0xC004702B DTS_E_INCO L'ID de la vue du composant est incorrect. Elle n'est peut-être pas
-1073450965 RRECTCOM synchronisée. Essayez de libérer la vue du composant et de la recréer.
PONENTVIE
WID

0xC004702C DTS_E_BUFF Ce tampon n'est pas verrouillé et ne peut pas être manipulé.
-1073450964 ERNOTLOCK
ED

0xC004702D DTS_E_CAN La tâche de flux de données ne peut pas allouer de mémoire pour
-1073450963 TBUILDBUFF créer une définition de tampon. La définition du tampon comporte
ERTYPE %1!d! colonnes.

0xC004702E DTS_E_CAN La tâche de flux de données ne peut pas enregistrer un type de


-1073450962 TREGISTERB tampon. Le type contient %1!d! colonnes et concerne l'arborescence
UFFERTYPE d'exécution %2!d!.

0xC004702F DTS_E_INVA Impossible de modifier la valeur d'origine de la propriété


-1073450961 LIDUSESDIS UsesDispositions. Ce problème se produit lorsque le document XML
POSITIONSV est modifié ainsi que la valeur UsesDispositions. Cette valeur est
ALUE définie par le composant lorsqu'elle est ajoutée au package et ne peut
pas être modifiée.

0xC0047030 DTS_E_THRE La tâche de flux de données n'a pas pu initialiser un thread obligatoire
-1073450960 ADFAILEDIN et ne peut pas commencer à être exécutée. Ce thread a
ITIALIZE précédemment retourné une erreur.

0xC0047031 DTS_E_THRE La tâche de flux de données n'a pas pu créer un thread obligatoire et
-1073450959 ADFAILEDC ne peut pas s'exécuter. Cette erreur se produit généralement lorsque
REATE la mémoire est insuffisante.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0047032 DTS_E_EXEC Impossible de définir l'entrée synchrone « %1 » sur « %2 » car un cycle


-1073450958 UTIONTREE serait créé.
CYCLEADDI
NGSYNCHR
ONOUSINP
UT

0xC0047033 DTS_E_INVA La propriété personnalisée « %1 » n'est pas valide car une propriété
-1073450957 LIDCUSTOM Stock porte ce nom. Une propriété personnalisée ne peut pas avoir le
PROPERTYN même nom qu'une propriété stock sur le même objet.
AME

0xC0047035 DTS_E_BUFF Le tampon est déjà déverrouillé.


-1073450955 ERLOCKUN
DERFLOW

0xC0047036 DTS_E_INDI Échec de l'initialisation de %1. Code d'erreur retourné : 0x%2!8.8X!.


-1073450954 VIDUALCAC
HEINTERFA
CESFAILED

0xC0047037 DTS_E_INDI Échec de l'arrêt de %1. Code d'erreur retourné : 0x%2!8.8X!. Un


-1073450953 VIDUALRELE composant n'a pas pu libérer ses interfaces.
ASEINTERFA
CESFAILED

0xC0047038 DTS_E_PRIM Code d'erreur SSIS DTS_E_PRIMEOUTPUTFAILED. La méthode


-1073450952 EOUTPUTFA PrimeOutput sur %1 a retourné le code d'erreur 0x%2!8.8X!. Le
ILED composant a retourné un code d'erreur lorsque le moteur du pipeline
a appelé PrimeOutput(). La signification du code d'erreur est définie
par le composant. Cependant, l'erreur est irrécupérable et le pipeline
ne s'exécute plus. Des messages d'erreur peuvent être envoyés au
préalable avec des informations indiquant la raison de l'échec.

0xC0047039 DTS_E_THRE Code d'erreur SSIS DTS_E_THREADCANCELLED. Le thread « %1 » a


-1073450951 ADCANCELL reçu un signal d'arrêt et est en cours d'arrêt. L'utilisateur a demandé
ED l'arrêt ou une erreur dans un autre thread provoque l'arrêt du pipeline.
Des messages d'erreur peuvent être envoyés au préalable avec des
informations indiquant la raison de l'annulation du thread.

0xC004703A DTS_E_DIST Le serveur de distribution du thread « %1 » n'a pas pu initialiser la


-1073450950 RIBUTORCA propriété « %2 » dans le composant « %3 » en raison de l'erreur
NTSETPROP 0x%8.8X. Le serveur de distribution n'a pas pu initialiser la propriété du
ERTY composant et son exécution ne peut pas se poursuivre.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC004703B DTS_E_CAN La tâche de flux de données ne peut pas enregistrer un type de


-1073450949 TREGISTERV tampon d'affichage. Le type contient %1!d! colonnes et concerne l'ID
IEWBUFFER d'entrée %2!d!.
TYPE

0xC004703F DTS_E_CAN Mémoire insuffisante pour créer une arborescence d'exécution.


-1073450945 TCREATEEXE
CUTIONTRE
E

0xC0047040 DTS_E_CAN Mémoire insuffisante pour insérer un objet dans la table de hachage.
-1073450944 TINSERTINT
OHASHTABL
E

0xC0047041 DTS_E_OBJE La table de hachage ne contient pas l'objet.


-1073450943 CTNOTINHA
SHTABLE

0xC0047043 DTS_E_CAN Impossible de créer une vue du composant car une autre vue existe
-1073450941 TCREATECO déjà. Une seule vue du composant peut exister à la fois.
MPONENTV
IEW

0xC0047046 DTS_E_LAYO Dans l'entrée « %1 » (%2!d!), la collection de colonnes d'entrée


-1073450938 UTCANTSET virtuelles ne contient aucune colonne d'entrée virtuelle avec l'ID de
USAGETYPE lignage %3!d!.

0xC0047047 DTS_E_WRO Le type de l'objet demandé est incorrect.


-1073450937 NGOBJECTT
YPE

0xC0047048 DTS_E_CAN Le gestionnaire de tampons ne peut pas créer un fichier de stockage


-1073450936 TCREATESP temporaire dans un chemin d'accès de la propriété
OOLFILE BufferTempStoragePath. Le nom du fichier est incorrect, aucune
autorisation n'est définie ou les chemins d'accès sont complets.

0xC0047049 DTS_E_SEEK Le gestionnaire de tampons n'a pas trouvé le décalage %1!d! dans le
-1073450935 FAILED fichier « %2 ". Le fichier est endommagé.

0xC004704A DTS_E_EXTE Le gestionnaire de tampons ne peut pas étendre la longueur du fichier


-1073450934 NDFAILED « %1 » à %2!lu! octets. L'espace disque est insuffisant.

0xC004704B DTS_E_FILE Le gestionnaire de tampons ne peut pas écrire %1!d! octets dans le
-1073450933 WRITEFAILE fichier « %2 ». L'espace disque ou le quota de disque est insuffisant.
D
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC004704C DTS_E_FILER Le gestionnaire de tampons ne peut pas lire %1!d! octets dans le
-1073450932 EADFAILED fichier « %2 ». Le fichier est endommagé.

0xC004704D DTS_E_VIRT L'ID de tampon %1!d! prend en charge d'autres tampons virtuels et ne
-1073450931 UALNOTSE peut pas être placé en mode séquentiel.
QUENTIAL IDTSBuffer100.SetSequentialMode a été appelé sur un tampon qui
prend en charge les tampons virtuels.

0xC004704E DTS_E_BUFF Impossible d'effectuer cette opération car le tampon est en lecture
-1073450930 ERISREADO seule. Un tampon en lecture seule ne peut pas être modifié.
NLY

0xC004704F DTS_E_EXEC Impossible de définir l'ID %1 sur %2!d! car un cycle serait créé.
-1073450929 UTIONTREE
CYCLESETTI
NGID

0xC0047050 DTS_E_NOM Mémoire insuffisante du gestionnaire de tampons lors de l'extension


-1073450928 OREBUFFER de la table de types de tampon. Cette erreur est due à une condition
TYPES de mémoire insuffisante.

0xC0047051 DTS_E_CAN Le gestionnaire de tampons n'a pas pu créer un nouveau type de


-1073450927 TCREATENE tampon.
WTYPE

0xC0047053 DTS_E_SCHE Le planificateur du moteur de flux de données n'a pas pu récupérer


-1073450925 DULERBADT l'arborescence d'exécution avec l'index %1!d! dans la structure. Le
REE planificateur a reçu un nombre d'arborescences d'exécution supérieur
au nombre réel.

0xC0047056 DTS_E_CAN La tâche de flux de données n'a pas pu créer un tampon pour appeler
-1073450922 TCREATEPRI PrimeOutput pour la sortie « %3 » (%4!d!) dans le composant « %1 »
MEOUTPUT (%2!d!). Cette erreur se produit généralement en raison d'une
BUFFER condition de mémoire insuffisante.

0xC0047057 DTS_E_SCHE Le planificateur du moteur de flux de données n'a pas pu créer un


-1073450921 DULERTHRE objet thread car la mémoire est insuffisante. Cette erreur est due à une
ADMEMOR condition de mémoire insuffisante.
Y

0xC004705A DTS_E_SCHE Le planificateur du moteur de flux de données ne peut pas récupérer


-1073450918 DULEROBJE l'objet avec l'ID %1!d! dans la structure. Ce planificateur a
CT précédemment localisé un objet qui n'est plus disponible.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC004705B DTS_E_PREP La tâche de flux de données n'a pas pu préparer les tampons pour le
-1073450917 ARETREENO nœud de l'arborescence d'exécution commençant à la sortie « %1 »
DEFAILED (%2!d!).

0xC004705C DTS_E_CAN La tâche de flux de données ne peut pas créer un tampon virtuel pour
-1073450916 TCREATEVIR préparer l'exécution.
TUALBUFFE
R

0xC004705E DTS_E_NOM Le nombre maximal d'ID a été atteint. Il n'y a plus d'ID disponibles à
-1073450914 OREIDS affecter aux objets.

0xC004705F DTS_E_ALRE %1 est déjà attaché et ne peut plus être attaché. Détachez-le, puis
-1073450913 ADYATTACH réessayez.
ED

0xC0047060 DTS_E_OUT Impossible d'utiliser le nom de colonne « %1 » dans la sortie « %2 »,


-1073450912 PUTCOLUM car il est en conflit avec une colonne du même nom dans l'entrée
NNAMECO synchrone « %3 ».
NFLICT

0xC0047061 DTS_E_EOFA La tâche de flux de données ne peut pas créer un tampon pour
-1073450911 NNOUNCE marquer la fin de l'ensemble de lignes.
MENTFAILE
D

0xC0047062 DTS_E_USER Un composant utilisateur géré a levé l'exception « %1 ».


-1073450910 COMPONE
NTEXCEPTI
ON

0xC0047063 DTS_E_SCHE Le planificateur du moteur de flux de données ne peut pas allouer


-1073450909 DULERMEM suffisamment de mémoire pour les structures d'exécution. La mémoire
ORY système était insuffisante avant le début de l'exécution.

0xC0047064 DTS_E_BUFF Une condition de mémoire insuffisante a empêché la création de


-1073450908 ERNOOBJEC l'objet Buffer.
TMEMORY

0xC0047065 DTS_E_BUFF Une condition de mémoire insuffisante empêche le mappage des ID


-1073450907 ERNOMAP de lignage d'un tampon dans les index DTP_HCOL.
MEMORY
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0047066 DTS_E_INDI « %1!s! » ne peut pas mettre en cache la collection Variables et a


-1073450906 VIDUALPUT retourné le code d'erreur 0x%2!8.8X.
VARIABLESF
AILED

0xC0047067 DTS_E_INDI « %1 » n'a pas pu mettre en cache l'objet Metadata du composant et a


-1073450905 VIDUALPUT retourné le code d'erreur 0x%2!8.8X!.
COMPONE
NTMETADAT
AFAILED

0xC0047068 DTS_E_SORT La valeur SortKeyPosition de « %1 » n'est pas NULL, mais trop grande
-1073450904 EDOUTPUT (%2!ld!). Elle doit être inférieure ou égale au nombre de colonnes.
HASINVALI
DSORTKEYP
OSITION

0xC004706A DTS_E_SORT La propriété IsSorted de %1 a la valeur TRUE, mais les valeurs absolues
-1073450902 EDOUTPUT de la colonne de sortie non NULL SortKeyPositions ne forment pas une
HASINVALI séquence à croissance monolithique partant de 1.
DSORTKEYP
OSITIONS

0xC004706B DTS_E_INDI Échec de la validation de « %1 ». État de validation retourné : « %2 ».


-1073450901 VIDUALVALI
DATIONSTA
TUSFAILED

0xC004706C DTS_E_CAN Impossible de créer le composant « %1!s! ». Code d'erreur retourné :


-1073450900 TCREATECO 0x%2!8.8X! « %3!s! ». Vérifiez que le composant est correctement
MPONENT inscrit dans le Registre.

0xC004706D DTS_E_COM Le module contenant « %1 » n'est pas inscrit ou n'est pas installé
-1073450899 PONENTNO correctement.
TREGISTERE
D

0xC004706E DTS_E_COM Le module contenant « %1 » est introuvable, bien qu'il soit inscrit.
-1073450898 PONENTNO
TFOUND

0xC004706F DTS_E_BINA Le composant de script est configuré pour précompiler le script, mais
-1073450897 RYCODENO le code binaire est introuvable. Visitez l’IDE dans l’éditeur de
TFOUND composant de script en sélectionnant le bouton Créer un script afin de
générer le code binaire.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0047070 DTS_E_CAN Le gestionnaire de tampons ne peut pas créer un fichier pour spouler
-1073450896 TCREATEBL un objet long dans les répertoires nommés dans la propriété
OBFILE BLOBTempStoragePath. Le nom de fichier spécifié est incorrect, aucune
autorisation n'est définie ou les chemins d'accès sont complets.

0xC0047071 DTS_E_SYNC La valeur de la propriété SynchronousInputID sur « %1 » est %2!d!, or


-1073450895 HRONOUSI %3!d! était attendu.
DMISMATC
H

0xC0047072 DTS_E_OBJE Il n'existe aucun objet avec l'ID %1!d!.


-1073450894 CTIDNOTFO
UND

0xC0047073 DTS_E_OBJE Impossible de localiser un objet avec l'ID %1!d! en raison du code
-1073450893 CTIDLOOKU d'erreur 0x%2!8.8X!.
PFAILED

0xC0047074 DTS_E_INVA La page de codes %1!d! spécifiée dans la colonne de sortie « %2 »


-1073450892 LIDCODEPA (%3!d!) n'est pas valide. Sélectionnez une autre page de codes pour la
GE colonne de sortie « %2 ».

0xC0047075 DTS_E_INDI « %1 » n'a pas pu mettre en cache la collection EventInfos. Code


-1073450891 VIDUALPUT d'erreur retourné : 0x%2!8.8X!.
EVENTINFO
SFAILED

0xC0047077 DTS_E_DUPL Le nom de « %1 » est un doublon. Les noms doivent être uniques.
-1073450889 ICATEOUTP
UTCOLUMN
NAMES

0xC0047078 DTS_E_NOO Aucune colonne de sortie n'est associée à la colonne d'entrée « %1 »


-1073450888 UTPUTCOLU (%2!d!).
MNFORINP
UTCOLUMN

0xC0047079 DTS_E_EXCL « %1 » possède un tampon virtuel qui s'étend à partir d'une source
-1073450887 GRPNOSYN racine. Il y a un groupe d'exclusions non NULL avec une entrée
CINP synchrone de type NULL.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC004707A DTS_E_ERRO « %1 » ne peut pas être une sortie d'erreur car les sorties d'erreur ne
-1073450886 ROUTCANT peuvent pas être placées sur des sorties synchrones non exclusives.
BEONSYNC
NONEXCLU
SIVEOUTPU
T

0xC004707B DTS_E_EXPR Une erreur de division par zéro s'est produite. L'opérande droit a la
-1073450885 EVALDIVBYZ valeur zéro dans l'expression « %1 ».
ERO

0xC004707C DTS_E_EXPR Le littéral « %1 » est trop grand pour le type %2. La grandeur du
-1073450884 EVALLITERA littéral dépasse le type.
LOVERFLOW

0xC004707D DTS_E_EXPR Le résultat de l'opération binaire « %1 » sur les types de données %2


-1073450883 EVALBINAR et %3 excède la taille maximale autorisée pour les types numériques.
YOPNUMER Impossible d'effectuer une conversion implicite des types d'opérandes
ICOVERFLO en résultat numérique (DT_NUMERIC) sans perte de précision ou
W d'échelle. Pour effectuer cette opération, une conversion explicite de
l'un des opérandes ou des deux doit être effectuée à l'aide d'un
opérateur de conversion.

0xC004707E DTS_E_EXPR Le résultat de l'opération binaire « %1 » excède la taille maximale pour


-1073450882 EVALBINAR le type de données de résultat « %2 ». La grandeur du résultat de
YOPOVERFL l'opération dépasse les valeurs admises pour le type de résultat.
OW

0xC004707F DTS_E_EXPR Le résultat de l'appel de fonction « %1 » est trop grand pour le type
-1073450881 EVALFUNCT « %2 ». La grandeur du résultat de l'appel de fonction dépasse le type
IONOVERFL de l'opérande. Une conversion explicite en un type plus grand peut
OW être nécessaire.

0xC0047080 DTS_E_EXPR Les types de données« %1 » et « %2 » sont incompatibles pour


-1073450880 EVALBINAR l'opérateur binaire « %3 ». Impossible d'effectuer une conversion
YTYPEMISM implicite des types d'opérandes en types compatibles pour l'opération.
ATCH Pour effectuer cette opération, une conversion explicite de l'un des
opérandes ou des deux doit être effectuée à l'aide d'un opérateur de
conversion.

0xC0047081 DTS_E_EXPR Impossible d'utiliser le type de données « %1 » avec l'opérateur


-1073450879 EVALUNSUP binaire « %2 ». Le type de l'un des opérandes ou des deux n'est pas
PORTEDBIN pris en charge pour l'opération. Pour effectuer cette opération, une
ARYTYPE conversion explicite de l'un des opérandes ou des deux doit être
effectuée à l'aide d'un opérateur de conversion.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0047082 DTS_E_EXPR Incompatibilité de signe pour l'opérateur binaire « %1 » au niveau du


-1073450878 EVALBINAR bit dans l'opération « %2 ». Les deux opérandes de cet opérateur
YSIGNMISM doivent être positifs ou négatifs.
ATCH

0xC0047083 DTS_E_EXPR Échec de l'opération binaire « %1 ». Code d'erreur : 0x%2!8.8X!. Une


-1073450877 EVALBINAR erreur interne s'est produite ou une condition de mémoire insuffisante
YOPERATIO existe.
NFAILED

0xC0047084 DTS_E_EXPR Échec de la définition du type de résultat de l'opération binaire « %1 ».


-1073450876 EVALBINAR Code d'erreur : 0x%2!8.8X!.
YOPERATIO
NSETTYPEF
AILED

0xC0047085 DTS_E_EXPR Échec de la comparaison de « %1 » à la chaîne « %2 ».


-1073450875 EVALSTRIN
GCOMPARIS
ONFAILED

0xC0047086 DTS_E_EXPR Impossible d'utiliser le type de données « %1 » avec l'opérateur unaire


-1073450874 EVALUNSUP « %2 ». Ce type d'opérande n'est pas pris en charge pour l'opération.
PORTEDUN Pour effectuer cette opération, l'opérande doit être explicitement
NARYTYPE converti à l'aide d'un opérateur de conversion.

0xC0047087 DTS_E_EXPR Échec de l'opération unaire « %1 ». Code d'erreur : 0x%2!8.8X!. Une


-1073450873 EVALUNARY erreur interne s'est produite, ou une condition de mémoire
OPERATION insuffisante existe.
FAILED

0xC0047088 DTS_E_EXPR Échec de la définition du type de résultat de l'opération unaire « %1 ».


-1073450872 EVALUNARY Code d'erreur : 0x%2!8.8X!.
OPERATION
SETTYPEFAI
LED

0xC0047089 DTS_E_EXPR La fonction « %1 » ne prend pas en charge le type de données « %2 »


-1073450871 EVALPARAM pour le paramètre %3!d!. Impossible d'effectuer une conversion
TYPEMISMA explicite du type de paramètre en un type compatible pour la fonction.
TCH Pour effectuer cette opération, l'opérande doit être explicitement
converti à l'aide d'un opérateur de conversion.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC004708A DTS_E_EXPR La fonction « %1 » n'est pas reconnue. Le nom de la fonction n'est pas
-1073450870 EVALINVALI correct ou n'existe pas.
DFUNCTIO
N

0xC004708B DTS_E_EXPR La longueur %1!d! n'est pas valide pour la fonction « %2 ». Ce


-1073450869 EVALFNSUB paramètre ne peut pas être négatif. Modifiez la valeur du paramètre
STRINGINV de longueur en zéro ou en valeur positive.
ALIDLENGT
H

0xC004708C DTS_E_EXPR L'index de début %1!d! n'est pas valide pour la fonction « %2 ». La
-1073450868 EVALFNSUB valeur de l'index de début doit être un entier supérieur à zéro. L'index
STRINGINV de début est une valeur de base un, et non pas une valeur de base
ALIDSTARTI zéro.
NDEX

0xC004708E DTS_E_EXPR La fonction « %1 » ne peut pas mapper les caractères sur la chaîne «
-1073450866 EVALCHAR %2 ».
MAPPINGFA
ILED

0xC004708F DTS_E_EXPR « %1 » n'est pas un élément de date valide pour la fonction « %2 ».


-1073450865 EVALINVALI
DDATEPART

0xC0047090 DTS_E_EXPR Le paramètre %1!d! de la fonction NULL avec le type de données « %2


-1073450864 EVALINVALI » n'est pas valide. Les paramètres de NULL() doivent être statiques et
DNULLPARA ne peuvent pas contenir d'éléments dynamiques tels que des colonnes
M d'entrée.

0xC0047091 DTS_E_EXPR Le paramètre %1!d! de la fonction NULL avec le type de données « %2


-1073450863 EVALINVALI » n'est pas un entier. Un paramètre de NULL() doit être un entier ou un
DNULLPARA type qui peut être converti en un entier.
MTYPE

0xC0047092 DTS_E_EXPR Le paramètre %1!d! de la fonction « %2 » n'est pas statique. Ce


-1073450862 EVALFUNCT paramètre doit être statique, et il ne peut pas contenir d'éléments
IONPARAM dynamiques tels que des colonnes d'entrée.
NOTSTATIC

0xC0047093 DTS_E_EXPR Le paramètre %1!d! de la conversion en type de données « %2 » n'est


-1073450861 EVALINVALI pas valide. Les paramètres des opérateurs de conversion doivent être
DCASTPARA statiques et ne peuvent pas contenir d'éléments dynamiques tels que
M des colonnes d'entrée.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0047094 DTS_E_EXPR Le paramètre %1!d! de la conversion en type de données « %2 » n'est


-1073450860 EVALINVALI pas un entier. Un paramètre d'un opérateur de conversion doit être un
DCASTPARA entier ou un type qui peut être converti en un entier.
MTYPE

0xC0047095 DTS_E_EXPR Impossible de convertir l'expression « %1 » du type de données « %2 »


-1073450859 EVALINVALI en type de données « %3 ». La conversion requise n'est pas prise en
DCAST charge.

0xC0047096 DTS_E_EXPR Échec de l'analyse de l'expression « %1 ». Le jeton « %2 » à la ligne «


-1073450858 EVALINVALI %3 », numéro de caractère « %4 » n'est pas reconnu. Impossible
DTOKEN d'analyser l'expression car elle contient des éléments non valides à
l'emplacement spécifié.

0xC0047097 DTS_E_EXPR Une erreur s'est produite lors de l'analyse de l'expression « %1 ».


-1073450857 EVALUNEXP Échec de l'analyse de l'expression pour une raison inconnue.
ECTEDPARS
EERROR

0xC0047098 DTS_E_EXPR Échec de l'analyse de l'expression « %1 ». Code d'erreur : 0x%2!8.8X!.


-1073450856 EVALFAILED Impossible d'analyser l'expression. Elle contient peut-être des
TOPARSEEX éléments non valides ou n'est peut-être pas bien formée. Cela peut
PRESSIONW aussi se produire en raison d'une erreur de mémoire insuffisante.
ITHHR

0xC0047099 DTS_E_EXPR L'expression « %1 » n'est pas valide et ne peut pas être analysée.
-1073450855 EVALFAILED L'expression contient peut-être des éléments non valides ou n'est
TOPARSEEX peut-être pas bien formée.
PRESSION

0xC004709A DTS_E_EXPR Aucune expression à calculer. Tentative de calcul ou d'obtention de la


-1073450854 EVALEXPRES chaîne d'une expression vide.
SIONEMPTY

0xC004709B DTS_E_EXPR Échec du calcul de l'expression « %1 ». Code d'erreur : 0x%2!8.8X!.


-1073450853 EVALCOMP
UTEFAILED

0xC004709C DTS_E_EXPR Échec de la génération d'une représentation de chaîne de l'expression.


-1073450852 EVALBUILDS Code d'erreur : 0x%2!8.8X!. Échec lors de la création d'une chaîne qui
TRINGFAILE peut être affichée représentant l'expression.
D
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC004709D DTS_E_EXPR Impossible de convertir le type de données du résultat de l'expression


-1073450851 EVALCANN « % » en type de données de colonne « %2 ». Le résultat de
OTCONVERT l'expression doit être écrit dans une colonne d'entrée/sortie, mais le
RESULT type de données de l'expression ne peut pas être converti en type de
données de la colonne.

0xC004709E DTS_E_EXPR L'expression conditionnelle « %1 » de l'opérateur conditionnel


-1073450850 EVALCONDI possède un type de données non valide de « %2 ». L'expression
TIONALOPI conditionnelle de l'opérateur conditionnel doit retourner une valeur
NVALIDCON booléenne de type DT_BOOL.
DITIONTYPE

0xC004709F DTS_E_EXPR Les types de données « %1 » et « %2 » sont incompatibles pour


-1073450849 EVALCONDI l'opérateur conditionnel. Impossible d'effectuer une conversion
TIONALOPT implicite des types d'opérandes en types compatibles pour l'opération
YPEMISMAT conditionnelle. Pour effectuer cette opération, une conversion explicite
CH de l'un des opérandes ou des deux doit être effectuée à l'aide d'un
opérateur de conversion.

0xC00470A0 DTS_E_EXPR Échec de la définition du type de résultat de l'opération conditionnelle


-1073450848 EVALCONDI « %1 ». Code d'erreur : 0x%2!8.8X!.
TIONALOPS
ETTYPEFAIL
ED

0xC00470A1 DTS_E_BUFF Ce tampon est orphelin. Le gestionnaire de tampons s'est arrêté,


-1073450847 ERORPHAN laissant un tampon en cours d'utilisation. Le tampon ne sera pas
ED nettoyé. Il est possible qu'il y ait des fuites de mémoire et d'autres
problèmes.

0xC00470A2 DTS_E_EXPR Échec de la recherche de la colonne d'entrée « %1 ». Code d'erreur :


-1073450846 EVALINPUT 0x%2!8.8X!. La colonne d'entrée spécifiée est introuvable dans la
COLUMNN collection de colonnes d'entrée.
AMENOTFO
UND

0xC00470A3 DTS_E_EXPR Échec de la recherche de la colonne d'entrée avec l'ID de lignage


-1073450845 EVALINPUT %1!d!. Code d’erreur : 0x%2!8.8X!. La colonne d'entrée est introuvable
COLUMNID dans la collection de colonnes d'entrée.
NOTFOUND
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00470A4 DTS_E_EXPR L'expression contient le jeton non reconnu « %1 ». Si « %1 » est une


-1073450844 EVALNOINP variable, elle doit être exprimée sous la forme « @%1 ». Le jeton
UTCOLUMN spécifié n'est pas valide. S'il représente un nom de variable, il doit
COLLECTIO comporter le symbole @ en préfixe.
NFORCOLU
MNNAME

0xC00470A5 DTS_E_EXPR L'expression contient le jeton non reconnu « #%1!d! ».


-1073450843 EVALNOINP
UTCOLUMN
COLLECTIO
NFORCOLU
MNID

0xC00470A6 DTS_E_EXPR La variable « %1 » est introuvable dans la collection Variables. Cette


-1073450842 EVALVARIAB variable n'existe peut-être pas dans l'étendue correcte.
LENOTFOU
ND

0xC00470A7 DTS_E_EXPR Échec de l'analyse de l'expression « %1 ». L'expression contient peut-


-1073450841 EVALINVALI être un jeton non valide, un jeton incomplet ou un élément non valide.
DTOKENSTA Peut-être qu'elle n'est pas formée de manière appropriée ou qu'il
TE manque un élément obligatoire tel qu'une parenthèse.

0xC00470A8 DTS_E_BLAN Le nom de « %1 » est vide, or les noms ne peuvent pas être vides.
-1073450840 KOUTPUTC
OLUMNNA
ME

0xC00470A9 DTS_E_HASS La propriété HasSideEffects de « %1 » a la valeur TRUE, mais « %1 » est


-1073450839 IDEEFFECTS synchrone et ne peut pas avoir d'effets secondaires. Affectez la valeur
WITHSYNCI FALSE à la propriété HasSideEffects.
NP

0xC00470AA DTS_E_EXPR La valeur %1!d! spécifiée pour le paramètre de page de codes de la


-1073450838 EVALINVALI conversion en type de données « %2 » n'est pas valide. La page de
DCASTCOD codes n'est pas installée sur l'ordinateur.
EPAGE

0xC00470AB DTS_E_EXPR La valeur %1!d! spécifiée pour le paramètre de précision de la


-1073450837 EVALINVALI conversion en type de données « %2 » n'est pas valide. La précision
DCASTPREC doit être comprise entre %3!d! et %4!d! et est hors limites pour la
ISION conversion de type.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00470AC DTS_E_EXPR La valeur %1!d! spécifiée pour le paramètre d'échelle de la conversion


-1073450836 EVALINVALI en type de données « %2 » n'est pas valide. L’échelle doit être
DCASTSCAL comprise entre %3!d! et %4!d! et elle est hors limites pour la
E conversion du type. L'échelle ne doit pas dépasser la précision et doit
être positive.

0xC00470AD DTS_E_NON La propriété IsSorted de « %1 » a la valeur FALSE, mais %2!lu! des


-1073450835 SORTEDOU SortKeyPositions de ses colonnes de sortie sont différentes de zéro.
TPUTHASSO
RTKEYPOSIT
IONS

0xC00470AF DTS_E_EXPR Les pages de codes doivent correspondre aux opérandes d'opération
-1073450833 EVALCONDI conditionnelle « %1 » pour le type %2. La page de codes de
TIONALOPC l'opérande gauche ne correspond pas à la page de codes de
ODEPAGEMI l'opérande droit. Les pages de codes doivent être identiques pour
SMATCH l'opérateur conditionnel du type spécifié.

0xC00470B1 DTS_E_REFE L'entrée « %1 » (%2!d!) référence l'entrée « %3 » (%4!d!), mais le


-1073450831 RENCEDME nombre de colonnes est différent. L'entrée %5!d! comporte %6!d!
TADATABAD colonnes, tandis que l'entrée %7!d! comporte %8!d! colonnes.
COUNT

0xC00470B2 DTS_E_OBJE Il n'existe aucun objet avec l'ID de lignage %1!d!.


-1073450830 CTLINEAGEI
DNOTFOUN
D

0xC00470B3 DTS_E_FILE La colonne de sortie pour le nom de fichier est introuvable.


-1073450829 NAMEOUTP
UTCOLUMN
OTFOUND

0xC00470B4 DTS_E_FILE La colonne de sortie pour le nom de fichier n'est pas une chaîne de
-1073450828 NAMEOUTP caractères Unicode terminée par un caractère nul, de type de données
UTCOLUMN DT_WSTR.
INVALIDDAT
ATYPE

0xC00470B5 DTS_E_DIST Un serveur de distribution n'a pas pu donner un tampon au thread «


-1073450827 RIBUTORAD %1 » en raison de l'erreur 0x%2!8.8X!. Le thread cible est
DFAILED probablement en cours d'arrêt.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00470B6 DTS_E_LOCA LocaleID %1!ld! n'est pas installé sur cet ordinateur.
-1073450826 LENOTINST
ALLED

0xC00470B7 DTS_E_EXPR Le littéral de chaîne « %1 » contient une séquence d'échappement


-1073450825 EVALILLEGA hexadécimale non conforme de « \x%2 ». La séquence d'échappement
LHEXESCAP n'est pas prise en charge dans les littéraux de chaîne de l'évaluateur
EINSTRINGL d'expression. Les séquences d'échappement hexadécimales doivent
ITERAL être au format \xhhhh où h est un chiffre hexadécimal valide.

0xC00470B8 DTS_E_EXPR Le littéral de chaîne « %1 » contient une séquence d'échappement non


-1073450824 EVALILLEGA conforme de « %2 ». La séquence d'échappement n'est pas prise en
LESCAPEINS charge dans les littéraux de chaîne de l'évaluateur d'expression. Si la
TRINGLITER chaîne nécessite une barre oblique inverse, utilisez une double barre
AL oblique inverse, « \\ ».

0xC00470B9 DTS_E_NOO « %1 » ne contient aucune colonne de sortie. Une sortie asynchrone


-1073450823 UTPUTCOLU doit contenir des colonnes de sortie.
MNS

0xC00470BA DTS_E_LOBD « %1 » possède un type de données d'objet Long dans DT_TEXT,


-1073450822 ATATYPENO DT_NTEXT ou DT_IMAGE, lequel n'est pas pris en charge.
TSUPPORTE
D

0xC00470BB DTS_E_OUT Échec de l'ID de sortie %1!d! ont été fournies à l'ID de sortie %1!d! : en
-1073450821 PUTWITHM premier, %2!d! et %3!d!, puis %4!d! et %5!d!.
ULTIPLEERR
ORS

0xC00470BC DTS_E_FAILE Échec du fournisseur OLE DB lors de la vérification de la conversion du


-1073450820 DDURINGO type de données de « %1 ».
LEDBDATAT
YPECONVER
SIONCHECK

0xC00470BD DTS_E_BUFF Ce tampon représente la fin de l'ensemble de lignes et le nombre de


-1073450819 ERISEOR lignes ne peut pas être modifié. Tentative d'appel d'AddRow ou de
RemoveRow sur un tampon qui comporte un indicateur de fin
d'ensemble de lignes.

0xC00470BE DTS_E_EXPR Le type de données « %1 » n'est pas pris en charge dans une
-1073450818 EVALUNSUP expression. Le type spécifié n'est pas pris en charge ou n'est pas
PORTEDTYP valide.
E
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00470BF DTS_E_PRIM La méthode PrimeOutput a été correctement appliquée sur « %1 »,


-1073450817 EOUTPUTN mais elle n'a pas signalé la fin de l'ensemble de lignes. Il existe une
OEOR erreur dans le composant, Il existe une erreur dans le composant, car
une fin de ligne aurait dû être rapportée. Le pipeline arrêtera
l'exécution afin d'éviter des résultats imprévisibles.

0xC00470C0 DTS_E_EXPR Un dépassement s'est produit lors de la conversion du type de


-1073450816 EVALDATAC données « %1 » en « %2 ». Le type de source est trop grand pour le
ONVERSIO type de destination.
NOVERFLO
W

0xC00470C1 DTS_E_EXPR La conversion du type de données « %1 » en « %2 » n'est pas prise en


-1073450815 EVALDATAC charge. Impossible de convertir le type de source en type de
ONVERSIO destination.
NNOTSUPP
ORTED

0xC00470C2 DTS_E_EXPR L'erreur 0x%1!8.8X! s'est produite lors de la conversion du type de


-1073450814 EVALDATAC données %2 en %3.
ONVERSIO
NFAILED

0xC00470C3 DTS_E_EXPR Échec de l'opération conditionnelle « %1 ». Code d'erreur : 0x%2!8.8X!.


-1073450813 EVALCONDI Une erreur interne ou de mémoire insuffisante s'est produite.
TIONALOPE
RATIONFAIL
ED

0xC00470C4 DTS_E_EXPR Échec de la conversion de l'expression « %1 » du type de données «


-1073450812 EVALCASTF %2 » en type de données « %3 ».
AILED

0xC00470C5 DTS_E_EXPR Échec de l'évaluation de la fonction « %1 ». Code d'erreur : 0x%2!8.8X!.


-1073450811 EVALFUNCT
IONCOMPU
TEFAILED

0xC00470C6 DTS_E_EXPR Le paramètre %1!d! de la fonction « %2 » en valeur statique.


-1073450810 EVALFUNCT
IONCONVE
RTPARAMT
OMEMBERF
AILED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00470C7 DTS_E_REDI Impossible de définir la disposition de ligne d'erreur dans « %1 » pour


-1073450809 RECTROWU rediriger la ligne lorsque l'option de chargement rapide est activée et
NAVAILABLE que la taille de validation d'insertion maximale a la valeur zéro.
WITHFASTL
OADANDZE
ROMAXINS
ERTCOMMIT
SIZE

0xC00470CE DTS_E_EXPR Les pages de codes pour les opérandes de l'opérateur binaire « %1 »
-1073450802 EVALBINAR de type « %2 » doivent correspondre. Actuellement, la page de codes
YOPERATOR de l'opérande gauche ne correspond pas à la page de codes de
CODEPAGE l'opérande droit. Les pages de codes doivent être identiques pour
MISMATCH l'opérateur binaire spécifié du type donné.

0xC00470CF DTS_E_EXPR Échec de la récupération de la valeur de la variable « %1 ». Code


-1073450801 EVALVARIAB d'erreur : 0x%2!8.8X!.
LECOMPUTE
FAILED

0xC00470D0 DTS_E_EXPR Le type de données de la variable « %1 » n'est pas pris en charge dans
-1073450800 EVALVARIAB une expression.
LETYPENOT
SUPPORTED

0xC00470D1 DTS_E_EXPR Impossible de convertir l'expression « %1 » du type de données « %2 »


-1073450799 EVALCASTC en « %3 » car la page de codes de la valeur en cours de conversion
ODEPAGEMI (%4!d!) ne correspond pas à la page de codes de résultat demandée
SMATCH (%5!d!). La page de codes de la source doit correspondre à la page de
codes demandée pour la destination.

0xC00470D2 DTS_E_BUFF La taille du tampon par défaut doit être comprise entre %%1!d! et
-1073450798 ERSIZEOUT %2!d! octets. Tentative de définition de la propriété DefaultBufferSize
OFRANGE sur une valeur trop petite ou trop grande.

0xC00470D3 DTS_E_BUFF Le nombre de lignes maximal du tampon par défaut doit être
-1073450797 ERMAXROW supérieur à %1!d! lignes. Tentative de définition de la propriété
SIZEOUTOF DefaultBufferMaxRows sur une valeur trop petite.
RANGE

0xC00470D4 DTS_E_EXTE La page de codes sur %1 est %2!d! et doit être %3!d!.
-1073450796 RNALCOLU
MNMETADA
TACODEPAG
EMISMATCH
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00470D5 DTS_E_THRE Échec de l'assignation de %3!d! à la propriété EngineThreads de la


-1073450795 ADCOUNTO tâche de flux. La valeur doit être comprise entre %1!d! et %2!d!.
UTOFRANG
E

0xC00470D6 DTS_E_EXPR Échec de l'analyse de l'expression « %1 ». Guillemet simple inattendu à


-1073450794 EVALINVALI la ligne « %2 », numéro de caractère « %3 ».
DTOKENSIN
GLEQUOTE

0xC00470D7 DTS_E_EXPR Échec de l'analyse de l'expression « %1 ». Signe égal (=) inattendu à la


-1073450793 EVALINVALI ligne « %2 », numéro de caractère « %3 ». Un double signe égal (==)
DTOKENSIN peut être requis à l'emplacement spécifié.
GLEEQUAL

0xC00470DA DTS_E_INDI Le composant « %1 » n'a pas pu mettre en cache la collection de suivi


-1073450790 VIDUALPUT des références d'objets en cours d'exécution et a retourné le code
REFTRACKE d'erreur 0x%2!8.8X!.
RFAILED

0xC00470DB DTS_E_EXPR Il existe plusieurs colonnes d'entrée nommées « %1 ». La colonne


-1073450789 EVALAMBIG d'entrée souhaitée doit être spécifiée de façon unique en tant que
UOUSINPUT [Component Name].[%2] ou référencée par un ID de lignage.
COLUMNN Actuellement, la colonne d'entrée spécifiée existe dans plusieurs
AME composants.

0xC00470DC DTS_E_EXPR Échec de la recherche de la colonne d'entrée nommée « [%1].[%2] ».


-1073450788 EVALDOTTE La colonne d'entrée est introuvable dans la collection de colonnes
DINPUTCOL d'entrée.
UMNNAME
NOTFOUND

0xC00470DD DTS_E_EXPR Il existe plusieurs variables nommées « %1 ». La variable souhaitée doit


-1073450787 EVALAMBIG être spécifiée de façon unique en tant que @[Namespace::%2]. La
UOUSVARIA variable existe dans plusieurs espaces de noms.
BLENNAME

0xC00470DE DTS_E_RED Le planificateur du moteur de flux de données n'a pas pu réduire le


-1073450786 UCTIONFAIL plan d'exécution pour le pipeline. Affectez la valeur False à la propriété
ED OptimizedMode.

0xC00470DF DTS_E_EXPR La fonction SQRT ne peut pas être exécutée sur des valeurs négatives,
-1073450785 EVALSQRTI or une valeur négative a été transmise à cette fonction.
NVALIDPAR
AM
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00470E0 DTS_E_EXPR La fonction LN ne peut pas être exécutée sur des valeurs NULL ou
-1073450784 EVALLNINV négatives, or une valeur NULL ou négative a été transmise à cette
ALIDPARAM fonction.

0xC00470E1 DTS_E_EXPR La fonction LOG ne peut pas être exécutée sur des valeurs NULL ou
-1073450783 EVALLOGIN négatives, or une valeur NULL ou négative a été transmise à cette
VALIDPARA fonction.
M

0xC00470E2 DTS_E_EXPR Impossible d'évaluer les paramètres transmis à la fonction POWER.


-1073450782 EVALPOWE Résultat indéterminé.
RINVALIDPA
RAM

0xC00470E3 DTS_E_NOC L'exécution ne peut pas fournir un événement d'annulation en raison


-1073450781 ANCELEVEN de l'erreur 0x%1!8.8X!.
T

0xC00470E4 DTS_E_CAN Le pipeline a reçu une demande d'annulation et s'arrête.


-1073450780 CELRECEIVE
D

0xC00470E5 DTS_E_EXPR Le résultat de l'opération moins unaire (négation) « %1 » dépasse la


-1073450779 EVALUNARY taille maximale autorisée pour le type de données de résultat « %2 ».
OPOVERFLO La grandeur du résultat de l'opération dépasse les valeurs admises
W pour le type de résultat.

0xC00470E6 DTS_E_EXPR L'espace réservé « %1 » a été trouvé dans une expression. Il doit être
-1073450778 EVALPLACE remplacé par un paramètre ou un opérande réel.
HOLDERINE
XPRESSION

0xC00470E7 DTS_E_EXPR La longueur %1!d! spécifiée pour la fonction « %2 » est négative et


-1073450777 EVALFNRIG n'est pas valide. Le paramètre de longueur doit être positif.
HTINVALIDL
ENGTH

0xC00470E8 DTS_E_EXPR Le nombre de répétitions %1!d! est négatif et n'est pas valide pour la
-1073450776 EVALFNREP fonction « %2 ». Le paramètre du nombre de répétitions ne peut pas
LICATEINVA être négatif.
LIDREPEATC
OUNT
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00470EA DTS_E_EXPR Échec de la lecture de la variable « %1 ». Code d'erreur : 0x%2!8.8X!.


-1073450774 EVALVARIAB
LECOULDN
OTBEREAD

0xC00470EC DTS_E_EXPR Pour les opérandes d'une opération binaire, le type de données
-1073450772 EVALBINAR DT_STR est uniquement pris en charge pour les colonnes d'entrée et
YOPDTSTRN les opérations de conversion. L'expression « %1 » a un opérande
OTSUPPORT DT_STR qui n'est pas une colonne d'entrée ou le résultat d'une
ED conversion, et elle ne peut pas être utilisée dans une opération binaire.
Pour effectuer cette opération, l'opérande doit être explicitement
converti à l'aide d'un opérateur de conversion.

0xC00470ED DTS_E_EXPR Pour les opérandes d'un opérateur conditionnel, le type de données
-1073450771 EVALCONDI DT_STR est uniquement pris en charge pour les colonnes d'entrée et
TIONALOPD les opérations de conversion. L'expression « %1 » a un opérande
TSTRNOTSU DT_STR qui n'est pas une colonne d'entrée ou le résultat d'une
PPORTED conversion, et elle ne peut pas être utilisée avec l'opération
conditionnelle. Pour effectuer cette opération, l'opérande doit être
explicitement converti à l'aide d'un opérateur de conversion.

0xC00470EE DTS_E_EXPR Le nombre d'occurrences %1!d! n'est pas valide pour la fonction « %2
-1073450770 EVALFNFIN ». Ce paramètre doit être supérieur à zéro.
DSTRINGIN
VALIDOCCU
RRENCECO
UNT

0xC00470EF DTS_E_INDI « %1 » n'a pas pu mettre en cache la collection LogEntryInfos et a


-1073450769 VIDUALPUT retourné le code d'erreur 0x%2!8.8X!.
LOGENTRYI
NFOS

0xC00470F0 DTS_E_EXPR Le paramètre DATEPART spécifié pour la fonction « %1 » n'est pas


-1073450768 EVALINVALI valide. Ce doit être une chaîne statique. Ce paramètre ne peut pas
DDATEPART contenir d'éléments dynamiques tels que des colonnes d'entrée et
NODE doit être de type DT_WSTR.

0xC00470F1 DTS_E_EXPR La valeur %1!d! spécifiée pour le paramètre de longueur de la


-1073450767 EVALINVALI conversion en type de données %2 est négative et non valide. La
DCASTLENG longueur doit être positive.
TH
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00470F2 DTS_E_EXPR La valeur %1!d! spécifiée pour le paramètre de page de codes de la


-1073450766 EVALINVALI fonction NULL avec le type de données « %2 » n'est pas valide. La
DNULLCOD page de codes n'est pas installée sur l'ordinateur.
EPAGE

0xC00470F3 DTS_E_EXPR La valeur %1!d! spécifiée pour le paramètre de précision de la fonction


-1073450765 EVALINVALI NULL avec le type de données « %2 » est hors limites. La précision doit
DNULLPREC être comprise entre %3!d! et %4!d!.
ISION

0xC00470F4 DTS_E_EXPR La valeur %1!d! spécifiée pour le paramètre d'échelle de la fonction


-1073450764 EVALINVALI NULL avec le type de données %2 est hors limites. L'échelle doit être
DNULLSCAL comprise entre %3!d! et %4!d!. L'échelle ne doit pas dépasser la
E précision et ne doit pas être négative.

0xC00470F5 DTS_E_EXPR La valeur %1!d! spécifiée pour le paramètre de longueur de la fonction


-1073450763 EVALINVALI « NULL » avec le type de données %2 est négative et n'est pas valide.
DNULLLENG La longueur doit être positive.
TH

0xC00470F6 DTS_E_NEG Impossible d'affecter une valeur négative à %1.


-1073450762 ATIVESNOT
ALLOWED

0xC00470F7 DTS_E_FAST Impossible d'affecter la valeur TRUE à la propriété personnalisée « %1


-1073450761 PARSENOTA » de « %2 ». Le type de données de la colonne doit être l'un des
LLOWED suivants : DT_I1, DT_I2, DT_I4, DT_I8, DT_UI1, DT_UI2, DT_UI4, DT_UI8,
DT_DBTIMESTAMP, DT_DBTIMESTAMP2, DT_DBTIMESTAMPOFFSET,
DT_DATE, DT_DBDATE, DT_DBTIME, DT_DBTIME2, ou DT_FILETIME.

0xC00470F8 DTS_E_CAN Impossible de rattacher « %1 ». Supprimez le chemin d'accès, ajoutez-


-1073450760 NOTREATTA en un nouveau, puis attachez-le.
CHPATH

0xC00470F9 DTS_E_EXPR La fonction « %1!s! » nécessite %2!d! paramètres et non pas %3!d!
-1073450759 EVALINVALI paramètre. Le nom de la fonction est reconnu, mais le nombre de
DNUMBERO paramètres n'est pas valide.
FPARAMSPL
URALSINGU
LAR
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00470FA DTS_E_EXPR La fonction « %1!s! » nécessite %2!d! paramètre, et non pas %3!d!
-1073450758 EVALINVALI paramètres. Le nom de la fonction est reconnu, mais le nombre de
DNUMBERO paramètres n'est pas valide.
FPARAMSSI
NGULARPL
URAL

0xC00470FB DTS_E_EXPR La fonction « %1!s! » nécessite %2!d! paramètres et non pas %3!d!
-1073450757 EVALINVALI paramètres. Le nom de la fonction est reconnu, mais le nombre de
DNUMBERO paramètres n'est pas valide.
FPARAMSPL
URALPLURA
L

0xC00470FC DTS_E_EXPR La tentative d'analyse de l'expression « %1 » a échoué à cause d'une


-1073450756 EVALFAILED erreur de mémoire disponible insuffisante.
TOPARSEEX
PRESSIONO
UTOFMEMO
RY

0xC00470FD DTS_E_INDI Le %1 n'a pas pu effectuer son contrôle de niveau de produit requis et
-1073450755 VIDUALCHE a retourné le code d'erreur 0x%2!8.8X!.
CKPRODUC
TLEVELFAILE
D

0xC00470FE DTS_E_PRO Code d'erreur SSIS DTS_E_PRODUCTLEVELTOLOW. Le « %1 » ne peut


-1073450754 DUCTLEVEL pas s'exécuter sur la version installée d'Integration Services %2. La
TOLOW version %3 ou une version ultérieure est requise.

0xC00470FF DTS_E_EXPR Un littéral de chaîne dans l'expression dépasse la longueur maximale


-1073450753 EVALSTRIN autorisée de %1!d! caractères.
GLITERALTO
OLONG

0xC0047100 DTS_E_EXPR La variable %1 contient une chaîne qui dépasse la longueur maximale
-1073450752 EVALSTRIN autorisée de %2!d! caractères.
GVARIABLET
OOLONG

0xC0047101 DTS_E_COM Le %1 a été trouvé, mais il ne prend pas en charge une interface
-1073450751 PONENT_N Integration Services requise (IDTSRuntimeComponent100). Obtenez
OINTERFAC une version mise à jour de ce composant auprès du fournisseur de
E composant.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0048000 DTS_E_CAN Impossible d'ouvrir la clé de Registre « %1 ».


-1073446912 NOTOPENR
EGISTRYKEY

0xC0048001 DTS_E_INVA Impossible d'obtenir le nom de fichier pour le composant comportant


-1073446911 LIDCOMPO le CLSID « %1 ». Vérifiez que le composant est enregistré correctement
NENTFILEN ou que le CLSID spécifié est correct.
AME

0xC0048002 DTS_E_UNK Le CLSID de l'un des composants n'est pas valide. Vérifiez que tous les
-1073446910 NOWNCOM composants du pipeline ont des CLSID valides.
PONENTHA
SINVALIDCL
SID

0xC0048003 DTS_E_COM Le CLSID de l'un des composants avec l'ID %1!d! n’est pas valide.
-1073446909 PONENTHA
SINVALIDCL
SID

0xC0048004 DTS_E_INVA L'index n'est pas valide.


-1073446908 LIDINDEX

0xC0048005 DTS_E_CAN Impossible d'accéder à l'objet Application. Assurez-vous que SSIS est
-1073446907 NOTACCESS installé correctement.
DTSAPPLICA
TIONOBJEC
T

0xC0048006 DTS_E_ERRO Impossible de récupérer le nom de fichier d'un composant. Code


-1073446906 ROCCURRE d'erreur : 0x%1!8.8X!.
DWHILERET
RIEVINGFILE
NAME

0xC0048007 DTS_E_CAN Impossible de récupérer la propriété « %1 » du composant


-1073446905 NOTRETRIE comportant l'ID %2!d!.
VEPROPERT
YFORCOMP
ONENT

0xC0048008 DTS_E_DUPL Tentative d'utilisation de l'ID %1!d! plusieurs fois dans la tâche de flux
-1073446904 ICATEIDFOU de données.
ND
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0048009 DTS_E_CAN Impossible de récupérer un élément par ID de lignage dans une


-1073446903 NOTRETRIE collection qui ne contient aucune colonne.
VEBYLINEA
GE

0xC004800B DTS_E_CAN Le gestionnaire de connexions comportant l'ID « %1 » est introuvable


-1073446901 NOTMAPRU dans la collection de gestionnaires de connexions, en raison du code
NTIMECON d'erreur : 0x%2!8.8X!. « %3 » nécessite ce gestionnaire de connexions
NECTIONM dans la collection des gestionnaires de connexions de « %4 ». Vérifiez
ANAGER qu'un gestionnaire de connexions a été créé avec cet ID dans la
collection de gestionnaires de connexions Connexions.

0xC004800E DTS_E_INPU Le thread « %1 » a reçu un tampon pour l'entrée %2!d!, mais ce thread
-1073446898 TNOTKNOW n'est pas responsable de cette entrée. Une erreur s'est produite et a
N provoqué la création d'un plan d'exécution incorrect par le
planificateur du moteur de flux de données.

0xC004800F DTS_E_GETR Le composant « %1 » (%2!d!) ne peut pas fournir une interface


-1073446897 TINTERFACE IDTSRuntimeComponent100.
FAILED

0xC0048011 DTS_E_CAN Le moteur de la tâche de flux de données n'a pas réussi à copier un
-1073446895 TGIVEAWAY tampon pour l'affecter à un autre thread.
BUFFER

0xC0048012 DTS_E_CAN Le moteur de la tâche de flux de données n'a pas pu créer un tampon
-1073446894 TCREATEVIE d'affichage de type %1!d! sur le type %2!d! du tampon %3!d.
WBUFFER

0xC0048013 DTS_E_UNU Le gestionnaire de tampons n'a pas pu créer un fichier temporaire


-1073446893 SABLETEMP dans le chemin d'accès « %1 ». Ce chemin ne sera plus utilisé pour le
ORARYPATH stockage temporaire.

0xC0048014 DTS_E_DIRE Le gestionnaire de tampons a tenté de transmettre une ligne d'erreur


-1073446892 CTTONONE vers une sortie qui n'est pas enregistrée en tant que sortie d'erreur. Un
RROROUTP appel DirectErrorRow a été émis sur une sortie dont la propriété
UT IsErrorOut n'a pas la valeur TRUE.

0xC0048015 DTS_E_BUFF Une méthode de tampon a été appelée dans un tampon privé, or les
-1073446891 ERISPRIVATE tampons privés ne prennent pas en charge ce type d'opération.

0xC0048016 DTS_E_BUFF Les tampons privés ne prennent pas en charge cette opération.
-1073446890 ERISFLAT
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0048017 DTS_E_BUFF Impossible d'appeler cette opération dans un tampon transmis à


-1073446889 ERISPRIMEO PrimeOutput. Une méthode de tampon a été appelée lors de
UTPUT l'exécution de PrimeOutput, mais cet appel n'est pas autorisé pendant
une opération PrimeOutput.

0xC0048018 DTS_E_BUFF Impossible d'appeler cette opération dans un tampon transmis à


-1073446888 ERISPROCES ProcessInput. Une méthode de tampon a été appelée lors de
SINPUT l'exécution de ProcessInput, mais cet appel n'est pas autorisé pendant
une opération ProcessInput.

0xC0048019 DTS_E_BUFF Le gestionnaire de tampons n'a pas pu obtenir un nom de fichier


-1073446887 ERGETTEMP temporaire.
FILENAME

0xC004801A DTS_E_REFE Le code a détecté une colonne trop large.


-1073446886 RENCECOLU
MNTOOWI
DE

0xC004801B DTS_E_CAN Impossible d'obtenir l'ID du gestionnaire de connexions en cours


-1073446885 NOTGETRU d'exécution spécifié par « %1 » dans la collection des gestionnaires de
NTIMECON connexions nommée Connections de « %2 ». Vérifiez que la propriété
NECTIONM ConnectionManager.ID de l'objet de connexion en cours d'exécution
ANAGERID est définie pour le composant.

0xC004801C DTS_E_EMP Aucune valeur n'est définie pour la propriété ID de « %1 » dans la


-1073446884 TYRUNTIME collection des gestionnaires de connexions nommée Connections de
CONNECTI « %2 ». Vérifiez que la propriété ConnectionManagerID de l'objet de
ONMANAG connexion en cours d'exécution est définie pour le composant.
ERID

0xC004801D DTS_E_MET Impossible de modifier les métadonnées lors de l'exécution.


-1073446883 ADATAREAD
ONLY

0xC004801F DTS_E_UPG Impossible de mettre à niveau les métadonnées du composant de


-1073446881 RADEFAILED « %1 » vers la nouvelle version. Échec de la méthode PerformUpgrade.

0xC0048020 DTS_E_COM La version de %1 n'est pas compatible avec cette version de DataFlow.
-1073446880 PONENTVE
RSIONMISM
ATCH

0xC0048021 DTS_E_ERRO Le composant est manquant, n'est pas enregistré, ne peut pas être mis
-1073446879 RCOMPONE à niveau ou des interfaces obligatoires sont manquantes. Informations
NT de contact de ce composant : « %1 ».
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0048022 DTS_E_BUFF La méthode a été appelée dans un tampon incorrect. Les tampons
-1073446878 ERISNOTPRI inutilisés pour la sortie du composant ne prennent pas en charge cette
MEOUTPUT opération.

0xC0049014 DTS_E_EXPR Une erreur s'est produite lors du calcul de l'expression.


-1073442796 EVALSTATIC
_COMPUTAT
IONFAILED

0xC0049030 DTS_E_EXPR Une division par zéro a eu lieu dans l'expression.


-1073442768 EVALSTATIC
_DIVBYZER
O

0xC0049031 DTS_E_EXPR La grandeur de la valeur littérale est trop élevée pour le type
-1073442767 EVALSTATIC demandé.
_LITERALOV
ERFLOW

0xC0049032 DTS_E_EXPR Le résultat d'une opération binaire est trop grand pour la taille
-1073442766 EVALSTATIC maximale de types numériques. Impossible d'effectuer une conversion
_BINARYOP implicite des types d'opérandes en résultat numérique (DT_NUMERIC)
NUMERICO sans perte de précision ou d'échelle. Pour effectuer cette opération,
VERFLOW une conversion explicite de l'un des opérandes ou des deux doit être
effectuée à l'aide d'un opérateur de conversion.

0xC0049033 DTS_E_EXPR La grandeur du résultat d'une opération binaire dépasse la taille


-1073442765 EVALSTATIC maximale du type de données de résultat.
_BINARYOP
OVERFLOW

0xC0049034 DTS_E_EXPR La grandeur du résultat d'un appel de fonction est trop grande pour le
-1073442764 EVALSTATIC type de résultat et dépasse le type de l'opérande. Une conversion
_FUNCTION explicite en un type plus grand peut être nécessaire.
OVERFLOW

0xC0049035 DTS_E_EXPR Des types de données incompatibles ont été utilisés avec un opérateur
-1073442763 EVALSTATIC binaire. Impossible d'effectuer une conversion implicite des types
_BINARYTYP d'opérandes en types compatibles pour l'opération. Pour effectuer
EMISMATCH cette opération, une conversion explicite de l'un des opérandes ou des
deux doit être effectuée à l'aide d'un opérateur de conversion.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0049036 DTS_E_EXPR Un type de données non pris en charge a été utilisé avec un opérateur
-1073442762 EVALSTATIC binaire. Le type de l'un des opérandes ou des deux n'est pas pris en
_UNSUPPOR charge par l'opération. Pour effectuer cette opération, une conversion
TEDBINARY explicite de l'un des opérandes ou des deux doit être effectuée à l'aide
TYPE d'un opérateur de conversion.

0xC0049037 DTS_E_EXPR Incompatibilité de signe pour l'opérateur binaire. Les opérandes de cet
-1073442761 EVALSTATIC opérateur doivent être tous les deux positifs ou négatifs.
_BINARYSIG
NMISMATC
H

0xC0049038 DTS_E_EXPR Échec d'une opération binaire, en raison d'une condition de mémoire
-1073442760 EVALSTATIC insuffisante ou d'une erreur interne.
_BINARYOP
ERATIONFAI
LED

0xC0049039 DTS_E_EXPR Échec de la définition du type de résultat d'une opération binaire.


-1073442759 EVALSTATIC
_BINARYOP
ERATIONSE
TTYPEFAILE
D

0xC004903A DTS_E_EXPR Impossible de comparer deux chaînes.


-1073442758 EVALSTATIC
_STRINGCO
MPARISONF
AILED

0xC004903B DTS_E_EXPR Un type de données non pris en charge est utilisé avec un opérateur
-1073442757 EVALSTATIC binaire. Le type d'opérande n'est pas pris en charge pour l'opération.
_UNSUPPOR Pour effectuer cette opération, l'opérande doit être explicitement
TEDUNNAR converti à l'aide d'un opérateur de conversion.
YTYPE

0xC004903C DTS_E_EXPR Échec d'une opération unaire, en raison d'une condition de mémoire
-1073442756 EVALSTATIC insuffisante ou d'une erreur interne.
_UNARYOPE
RATIONFAIL
ED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC004903D DTS_E_EXPR Échec de la définition du type de résultat d'une opération unaire.


-1073442755 EVALSTATIC
_UNARYOPE
RATIONSET
TYPEFAILED

0xC004903E DTS_E_EXPR Une fonction a un paramètre comportant un type de données non pris
-1073442754 EVALSTATIC en charge. Impossible d'effectuer la conversion implicite du type de
_PARAMTYP paramètre en un type compatible pour la fonction. Pour effectuer cette
EMISMATCH opération, l'opérande doit être explicitement converti à l'aide d'un
opérateur de conversion.

0xC004903F DTS_E_EXPR Un nom de fonction non valide a été trouvé dans l'expression. Vérifiez
-1073442753 EVALSTATIC que le nom est correct et que la fonction existe.
_INVALIDFU
NCTION

0xC0049040 DTS_E_EXPR Le paramètre de longueur n'est pas valide pour la fonction


-1073442752 EVALSTATIC SUBSTRING. Ce paramètre ne peut pas être négatif.
_FNSUBSTRI
NGINVALID
LENGTH

0xC0049041 DTS_E_EXPR L'index de début n'est pas valide pour la fonction SUBSTRING. La
-1073442751 EVALSTATIC valeur de cet index doit être un entier supérieur à zéro. L'index de
_FNSUBSTRI début est basé sur la valeur 1 et non pas sur la valeur 0.
NGINVALID
STARTINDE
X

0xC0049042 DTS_E_EXPR Un nombre de paramètres incorrect a été spécifié pour une fonction.
-1073442750 EVALSTATIC Le nom de la fonction est reconnu, mais le nombre de paramètres est
_INVALIDN incorrect.
UMBEROFP
ARAMS

0xC0049043 DTS_E_EXPR Échec d'une fonction de mappage des caractères.


-1073442749 EVALSTATIC
_CHARMAP
PINGFAILED

0xC0049044 DTS_E_EXPR Un paramètre d'élément de date non reconnu a été spécifié pour une
-1073442748 EVALSTATIC fonction de date.
_INVALIDDA
TEPART
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0049045 DTS_E_EXPR Un paramètre non valide a été spécifié pour la fonction NULL. Les
-1073442747 EVALSTATIC paramètres de la fonction NULL doivent être statiques et ne peuvent
_INVALIDN pas contenir d'éléments dynamiques tels que des colonnes d'entrée.
ULLPARAM

0xC0049046 DTS_E_EXPR Un paramètre non valide a été spécifié pour la fonction NULL. Un
-1073442746 EVALSTATIC paramètre de fonction NULL doit être un entier ou un type qui peut
_INVALIDN être converti en entier.
ULLPARAMT
YPE

0xC0049047 DTS_E_EXPR Un paramètre non valide a été spécifié pour une fonction. Ce
-1073442745 EVALSTATIC paramètre doit être statique et ne peut pas contenir d'éléments
_FUNCTION dynamiques tels que des colonnes d'entrée.
PARAMNOT
STATIC

0xC0049048 DTS_E_EXPR Un paramètre non valide a été spécifié pour une opération de
-1073442744 EVALSTATIC conversion. Les paramètres des opérateurs de conversion doivent être
_INVALIDCA statiques et ne peuvent pas contenir d'éléments dynamiques tels que
STPARAM des colonnes d'entrée.

0xC0049049 DTS_E_EXPR Un paramètre non valide a été spécifié pour une opération de
-1073442743 EVALSTATIC conversion. Le paramètre d'un opérateur de conversion doit être un
_INVALIDCA entier ou un type qui peut être converti en entier.
STPARAMTY
PE

0xC004904A DTS_E_EXPR L'expression contient une conversion d'un type non pris en charge.
-1073442742 EVALSTATIC
_INVALIDCA
ST

0xC004904B DTS_E_EXPR L'expression contient un jeton non reconnu. Impossible de l'analyser


-1073442741 EVALSTATIC car elle contient des éléments non valides.
_INVALIDTO
KEN

0xC004904C DTS_E_EXPR L'expression n'est pas valide et ne peut pas être analysée. Elle contient
-1073442740 EVALSTATIC peut-être des éléments non valides ou n'est pas correctement formée.
_FAILEDTOP
ARSEEXPRE
SSION
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC004904D DTS_E_EXPR Le résultat d'une opération moins unaire (négation) dépasse la taille
-1073442739 EVALSTATIC maximale autorisée pour le type de données de résultat. La grandeur
_UNARYOP du résultat de l'opération dépasse les valeurs admises pour le type de
OVERFLOW résultat.

0xC004904E DTS_E_EXPR La tentative de calcul de l'expression a échoué.


-1073442738 EVALSTATIC
_COMPUTEF
AILED

0xC004904F DTS_E_EXPR La tentative de génération d'une représentation de chaîne de


-1073442737 EVALSTATIC l'expression a échoué.
_BUILDSTRI
NGFAILED

0xC0049050 DTS_E_EXPR Impossible de convertir le type de données du résultat de l'expression


-1073442736 EVALSTATIC en type de données de colonne. Le résultat de l'expression doit être
_CANNOTC écrit dans une colonne d'entrée/sortie, mais le type de données de
ONVERTRES l'expression ne peut pas être converti en type de données de la
ULT colonne.

0xC0049051 DTS_E_EXPR L'expression conditionnelle de l'opérateur conditionnel a un type de


-1073442735 EVALSTATIC données non valide. L'expression conditionnelle doit être de type
_CONDITIO DT_BOOL.
NALOPINVA
LIDCONDITI
ONTYPE

0xC0049052 DTS_E_EXPR Les types de données des opérandes de l'opérateur conditionnel sont
-1073442734 EVALSTATIC incompatibles. Impossible d'effectuer une conversion implicite des
_CONDITIO types d'opérandes en types compatibles pour l'opération
NALOPTYPE conditionnelle. Pour effectuer cette opération, une conversion explicite
MISMATCH de l'un des opérandes ou des deux doit être effectuée à l'aide d'un
opérateur de conversion.

0xC0049053 DTS_E_EXPR Échec de la définition du type de résultat d'une opération


-1073442733 EVALSTATIC conditionnelle.
_CONDITIO
NALOPSETT
YPEFAILED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0049054 DTS_E_EXPR La colonne d'entrée spécifiée est introuvable dans la collection de


-1073442732 EVALSTATIC colonnes d'entrée.
_INPUTCOL
UMNNAME
NOTFOUND

0xC0049055 DTS_E_EXPR Échec de la recherche d'une colonne d'entrée par ID de lignage. La


-1073442731 EVALSTATIC colonne d'entrée est introuvable dans la collection de colonnes
_INPUTCOL d'entrée.
UMNIDNOT
FOUND

0xC0049056 DTS_E_EXPR L'expression contient un jeton non reconnu qui est une référence à
-1073442730 EVALSTATIC une colonne d'entrée, mais la collection de colonnes d'entrée n'est pas
_NOINPUTC disponible pour traiter les colonnes d'entrée. La collection de colonnes
OLUMNCOL d'entrée n'a pas été spécifiée pour l'évaluateur d'expression, mais une
LECTION colonne d'entrée est incluse dans l'expression.

0xC0049057 DTS_E_EXPR Une variable spécifiée est introuvable dans la collection. Elle n'existe
-1073442729 EVALSTATIC peut-être pas dans l'étendue correcte. Vérifiez que la variable existe et
_VARIABLEN que l'étendue est correcte.
OTFOUND

0xC0049058 DTS_E_EXPR Échec de l'analyse de l'expression. L'expression contient un jeton non


-1073442728 EVALSTATIC valide ou incomplet. Elle contient peut-être des éléments non valides,
_INVALIDTO un élément obligatoire manque (notamment des parenthèses
KENSTATE fermantes), ou elle n'est peut-être pas correctement formée.

0xC0049059 DTS_E_EXPR La valeur spécifiée pour le paramètre de page de codes de la


-1073442727 EVALSTATIC conversion en type de données DT_STR ou DT_TEXT n'est pas valide.
_INVALIDCA La page de codes spécifiée n'est pas installée sur l'ordinateur.
STCODEPAG
E

0xC004905A DTS_E_EXPR La valeur spécifiée pour le paramètre de précision d'une opération de


-1073442726 EVALSTATIC conversion est hors limites pour la conversion du type.
_INVALIDCA
STPRECISIO
N

0xC004905B DTS_E_EXPR La valeur spécifiée pour le paramètre d'échelle d'une opération de


-1073442725 EVALSTATIC conversion est hors limites pour la conversion du type. L'échelle ne
_INVALIDCA doit pas dépasser la précision et ne doit pas être négative.
STSCALE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC004905C DTS_E_EXPR Les pages de codes ne correspondent pas dans une opération
-1073442724 EVALSTATIC conditionnelle. La page de codes de l'opérande gauche ne correspond
_CONDITIO pas à la page de codes de l'opérande droit. Les pages de codes
NALOPCOD doivent être identiques pour ce type d'opérateur conditionnel.
EPAGEMISM
ATCH

0xC004905D DTS_E_EXPR Un littéral de chaîne contient une séquence d'échappement


-1073442723 EVALSTATIC hexadécimale non conforme. La séquence d'échappement n'est pas
_ILLEGALHE prise en charge dans les littéraux de chaîne de l'évaluateur
XESCAPEIN d'expression. Les séquences d'échappement hexadécimales doivent
STRINGLITE être au format \xhhhh où h est un chiffre hexadécimal valide.
RAL

0xC004905E DTS_E_EXPR Le littéral de chaîne contient une séquence d'échappement non


-1073442722 EVALSTATIC conforme. La séquence d'échappement n'est pas prise en charge dans
_ILLEGALES les littéraux de chaîne de l'évaluateur d'expression. Si la chaîne
CAPEINSTRI nécessite une barre oblique, utilisez une double barre oblique « \\ ».
NGLITERAL

0xC004905F DTS_E_EXPR Un type de données non reconnu ou non pris en charge a été utilisé
-1073442721 EVALSTATIC dans l'expression.
_UNSUPPOR
TEDTYPE

0xC0049060 DTS_E_EXPR Un dépassement s'est produit lors de la conversion des types de


-1073442720 EVALSTATIC données. Le type de source est trop grand pour le type de destination.
_DATACONV
ERSIONOVE
RFLOW

0xC0049061 DTS_E_EXPR L'expression contient une conversion de type de données non prise en
-1073442719 EVALSTATIC charge. Impossible de convertir le type de source en type de
_DATACONV destination.
ERSIONNOT
SUPPORTED

0xC0049062 DTS_E_EXPR Une erreur s'est produite lors de la conversion des données.
-1073442718 EVALSTATIC Impossible de convertir le type de source en type de destination.
_DATACONV
ERSIONFAIL
ED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0049063 DTS_E_EXPR Échec de l'opération conditionnelle.


-1073442717 EVALSTATIC
_CONDITIO
NALOPERAT
IONFAILED

0xC0049064 DTS_E_EXPR Une erreur s'est produite lors de la conversion d'un type.
-1073442716 EVALSTATIC
_CASTFAILE
D

0xC0049065 DTS_E_EXPR Échec de la conversion de « %1 » du type DT_STR en DT_WSTR. Une


-1073442715 EVALFAILED erreur s’est produite pendant la conversion implicite dans la colonne
TOCONVER d’entrée.
TSTRCOLU
MNTOWSTR

0xC0049066 DTS_E_EXPR Échec de la conversion d'une colonne d'entrée de DT_STR en


-1073442714 EVALSTATIC DT_WSTR. Une erreur s’est produite pendant la conversion implicite
_FAILEDTOC dans la colonne d’entrée.
ONVERTSTR
COLUMNTO
WSTR

0xC0049067 DTS_E_EXPR Une erreur s'est produite lors de l'évaluation de la fonction.


-1073442713 EVALSTATIC
_FUNCTION
COMPUTEF
AILED

0xC0049068 DTS_E_EXPR Impossible de convertir un paramètre de fonction en une valeur


-1073442712 EVALSTATIC statique. Ce paramètre doit être statique, et il ne peut pas contenir
_FUNCTION d'éléments dynamiques tels que des colonnes d'entrée.
CONVERTPA
RAMTOME
MBERFAILE
D

0xC0049088 DTS_E_EXPR Le paramètre de longueur n'est pas valide pour la fonction RIGHT. Ce
-1073442680 EVALSTATIC paramètre ne peut pas être négatif.
_FNRIGHTIN
VALIDLENG
TH
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0049089 DTS_E_EXPR Le paramètre du nombre de répétitions n'est pas valide pour la


-1073442679 EVALSTATIC fonction REPLICATE. Ce paramètre ne peut pas être négatif.
_FNREPLICA
TEINVALIDR
EPEATCOUN
T

0xC0049096 DTS_E_EXPR Les pages de codes ne correspondent pas dans une opération binaire.
-1073442666 EVALSTATIC La page de codes de l'opérande gauche ne correspond pas à la page
_BINARYOP de codes de l'opérande droit. Les pages de codes doivent être
ERATORCO identiques pour cette opération binaire.
DEPAGEMIS
MATCH

0xC0049097 DTS_E_EXPR Échec de la récupération de la valeur d'une variable.


-1073442665 EVALSTATIC
_VARIABLEC
OMPUTEFAI
LED

0xC0049098 DTS_E_EXPR L'expression contient une variable avec un type de données non pris
-1073442664 EVALSTATIC en charge.
_VARIABLET
YPENOTSUP
PORTED

0xC004909B DTS_E_EXPR Impossible de convertir l'expression car la page de codes de la valeur


-1073442661 EVALSTATIC en cours de conversion ne correspond pas à la page de codes de
_CASTCODE résultat demandé. La page de codes de la source doit correspondre à
PAGEMISMA la page de codes demandée pour la destination.
TCH

0xC004909C DTS_E_EXPR L'expression contient un guillemet simple inattendu. Un guillemet


-1073442660 EVALSTATIC double peut être nécessaire.
_INVALIDTO
KENSINGLE
QUOTE

0xC004909D DTS_E_EXPR L'expression contient un signe égal (=) inattendu. Cette erreur se
-1073442659 EVALSTATIC produit lorsqu'un double signe égal (==) est nécessaire.
_INVALIDTO
KENSINGLE
EQUAL
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00490AA DTS_E_EXPR Un nom de colonne d'entrée ambigu a été spécifié. La colonne doit
-1073442646 EVALSTATIC être nommée [Component Name].[Column Name] ou référencée par
_AMBIGUO un ID de lignage. Cette erreur se produit lorsque la colonne d'entrée
USINPUTCO existe dans plusieurs composants et doit être différenciée par l'ajout
LUMNNAM du nom du composant ou en utilisant l'ID de lignage.
E

0xC00490AB DTS_E_EXPR Un paramètre de fonction d'espace réservé ou un opérande a été


-1073442645 EVALSTATIC trouvé dans une expression. Il doit être remplacé par un paramètre ou
_PLACEHOL un opérande réel.
DERINEXPR
ESSION

0xC00490AC DTS_E_EXPR Un nom de variable ambigu a été spécifié. La variable souhaitée doit
-1073442644 EVALSTATIC être nommée @[Namespace::Variable]. Cette erreur se produit lorsque
_AMBIGUO la variable existe dans plusieurs espaces de noms.
USVARIABLE
NNAME

0xC00490D3 DTS_E_EXPR Pour les opérandes d'opération binaire, le type de données DT_STR est
-1073442605 EVALSTATIC uniquement pris en charge pour les colonnes d'entrée et les
_BINARYOP opérations de conversion. Un opérande DT_STR qui n'est pas une
DTSTRNOTS colonne d'entrée ou le résultat d'une conversion ne peut pas être
UPPORTED utilisé avec une opération binaire. Pour effectuer cette opération,
l'opérande doit être explicitement converti à l'aide d'un opérateur de
conversion.

0xC00490D4 DTS_E_EXPR Pour les opérandes de l'opérateur conditionnel, le type de données


-1073442604 EVALSTATIC DT_STR est uniquement pris en charge pour les colonnes d'entrée et
_CONDITIO les opérations de conversion. Un opérande DT_STR qui n'est pas une
NALOPDTST colonne d'entrée ou le résultat d'une conversion ne peut pas être
RNOTSUPP utilisé avec une opération conditionnelle. Pour effectuer cette
ORTED opération, l'opérande doit être explicitement converti à l'aide d'un
opérateur de conversion.

0xC00490D5 DTS_E_EXPR Le paramètre du nombre d'occurrences n'est pas valide pour la


-1073442603 EVALSTATIC fonction FINDSTRING. Ce paramètre doit être supérieur à zéro.
_FNFINDST
RINGINVALI
DOCCURRE
NCECOUNT
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00490DD DTS_E_EXPR Le paramètre DATEPART spécifié pour une fonction de date n'est pas
-1073442595 EVALSTATIC valide. Ce paramètre doit être une chaîne statique, et il ne peut pas
_INVALIDDA contenir d'éléments dynamiques tels que des colonnes d'entrée. Il doit
TEPARTNOD être de type DT_WSTR.
E

0xC00490DE DTS_E_EXPR La valeur spécifiée pour le paramètre de longueur d'une opération de


-1073442594 EVALSTATIC conversion n'est pas valide. La longueur doit être positive. La longueur
_INVALIDCA spécifiée pour la conversion du type est négative. Changez-la en une
STLENGTH valeur positive.

0xC00490DF DTS_E_EXPR La valeur spécifiée pour le paramètre de longueur d'une fonction


-1073442593 EVALSTATIC NULL n'est pas valide. La longueur doit être positive. La longueur
_INVALIDN spécifiée pour la fonction NULL est négative. Changez-la en une valeur
ULLLENGTH positive.

0xC00490E0 DTS_E_EXPR La valeur spécifiée pour le paramètre de page de codes de la fonction


-1073442592 EVALSTATIC NULL avec le type de données DT_STR ou DT_TEXT n'est pas valide. La
_INVALIDN page de codes spécifiée n'est pas installée sur l'ordinateur. Modifiez la
ULLCODEPA page de codes spécifiée ou installez-la sur l'ordinateur.
GE

0xC00490E1 DTS_E_EXPR La valeur spécifiée pour le paramètre de précision d'une fonction


-1073442591 EVALSTATIC NULL n'est pas valide. La précision spécifiée est hors limites pour la
_INVALIDN fonction NULL.
ULLPRECISI
ON

0xC00490E2 DTS_E_EXPR La valeur spécifiée pour le paramètre d'échelle d'une fonction NULL
-1073442590 EVALSTATIC n'est pas valide. L'échelle spécifiée est hors limites pour la fonction
_INVALIDN NULL. L'échelle ne doit pas dépasser la précision et doit être positive.
ULLSCALE

0xC00490E8 DTS_E_XML %1 n'a pas pu écrire de données dans %2 sur %3. 4


-1073442584 SRCERRORS
ETTINGERR
OROUTPUT
COLUMNDA
TA

0xC00490F5 DTS_E_TXLO La transformation de recherche a reçu une demande d'annulation de


-1073442571 OKUP_CAN l'utilisateur.
CEL_REQUE
STED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC00490F6 DTS_E_LOBL Le traitement de données de type caractère ou de données d'objets


-1073442570 ENGTHLIMI BLOB (Binary Large Object) a été interrompu parce que la limite de 4
TEXCEEDED Go a été atteinte.

0xC00490F7 DTS_E_CAN Impossible de charger le composant de pipeline managé « %1 ».


-1073442569 NOTLOADC L'exception était : %2.
OMPONENT

0xC00F9304 DTS_E_OLED Code d'erreur SSIS DTS_E_OLEDB_EXCEL_NOT_SUPPORTED : le


-1072721148 B_EXCEL_N Gestionnaire de connexions Excel n'est pas pris en charge dans la
OT_SUPPOR version 64 bits de SSIS, car aucun fournisseur OLE DB n'est disponible.
TED

0xC00F9310 DTS_E_CAC Le fichier cache est endommagé ou n'a pas été créé à l'aide du
-1072721136 HEBADHEA gestionnaire de connexions du cache. Fournissez un fichier cache
DER valide.

0xC0202001 DTS_E_MISS La commande SQL n'a pas été définie correctement. Vérifiez la
-1071636479 INGSQLCO propriété SQLCommand.
MMAND

0xC0202002 DTS_E_COM Des informations sur l'objet de l'erreur sont disponibles. Source :
-1071636478 ERROR « %1 » Code d’erreur : 0x%2!8.8X! Description : « %3 ».

0xC0202003 DTS_E_ACQ Impossible d'accéder aux connexions acquises.


-1071636477 UIREDCON
NECTIONU
NAVAILABLE

0xC0202004 DTS_E_INCO Le nombre de colonnes est incorrect.


-1071636476 RRECTCOLU
MNCOUNT

0xC0202005 DTS_E_COL La colonne « %1 » est introuvable dans la source de données.


-1071636475 UMNNOTF
OUND

0xC0202007 DTS_E_OLED Un enregistrement OLE DB est disponible. Source : « %1 » Hresult :


-1071636473 BRECORD 0x%2!8.8X! Description : « %3 ».

0xC0202009 DTS_E_OLED Code d'erreur SSIS DTS_E_OLEDBERROR. Une erreur OLE DB s'est
-1071636471 BERROR produite. Code d’erreur : 0x%1!8.8X!.

0xC020200A DTS_E_ALRE Le composant est déjà connecté. Déconnectez-le avant d'essayer de le


-1071636470 ADYCONNE connecter.
CTED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020200B DTS_E_INCO La valeur de la propriété « %1 » est incorrecte.


-1071636469 RRECTSTOC
KPROPERTY
VALUE

0xC020200E DTS_E_CAN Impossible d'ouvrir le fichier de données « %1 ».


-1071636466 NOTOPEND
ATAFILE

0xC0202010 DTS_E_DEST Aucun nom de fichier plat de destination n'est spécifié. Vérifiez que le
-1071636464 INATIONFLA gestionnaire de connexions de fichiers plats est configuré avec une
TFILEREQUI chaîne de connexion. Si ce gestionnaire est utilisé par plusieurs
RED composants, vérifiez que la chaîne de connexion contient
suffisamment de noms de fichiers.

0xC0202011 DTS_E_TEXT L'identificateur de texte de la colonne « %1 » est introuvable.


-1071636463 QUALIFIERN
OTFOUND

0xC0202014 DTS_E_CAN La conversion de « %1 » en « %2 » n'est pas prise en charge.


-1071636460 NOTCONVE
RTTYPES

0xC0202015 DTS_E_PRO Le code d'erreur 0x%1!8.8X! a été retourné lors de la validation de la


-1071636459 BLEMDETEC conversion du type %2 en %3.
TINGTYPEC
OMPATIBILI
TY

0xC0202016 DTS_E_CAN La colonne d'entrée avec l'ID de lignage « %1!d! » requis par « %2 »
-1071636458 NOTMAPIN est introuvable. Vérifiez la propriété personnalisée
PUTCOLUM SourceInputColumnLineageID de la colonne de sortie.
NTOOUTPU
TCOLUMN

0xC0202017 DTS_E_INCO Le nombre de sorties est incorrect. Il doit y avoir au moins %1!d!
-1071636457 RRECTMINI sorties.
MUMNUMB
EROFOUTP
UTS

0xC0202018 DTS_E_INCO Le nombre de sorties est incorrect. Il doit être exactement de %1!d!
-1071636456 RRECTEXAC entrée(s).
TNUMBERO
FOUTPUTS
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0202019 DTS_E_STRI Une chaîne trop longue n'a pas pu être convertie.
-1071636455 NGCONVER
SIONTOOLO
NG

0xC020201A DTS_E_INCO Le nombre d'entrées est incorrect. Il doit être exactement de %1!d!
-1071636454 RRECTEXAC entrées.
TNUMBERO
FINPUTS

0xC020201B DTS_E_CAN Le nombre de colonnes d'entrée pour %1 ne peut pas être égal à zéro.
-1071636453 NOTHAVEZE
ROINPUTCO
LUMNS

0xC020201C DTS_E_CAN Ce composant contient %1!d! entrées. Aucune entrée n'est autorisée
-1071636452 NOTHAVEIN dans ce composant.
PUTS

0xC020201D DTS_E_PRO ProcessInput a été appelé avec un ID d'entrée non valide de %1!d!.
-1071636451 CESSINPUT
CALLEDWIT
HINVALIDIN
PUTID

0xC020201F DTS_E_INCO La propriété personnalisée « %1 » doit être de type %2.


-1071636449 RRECTCUST
OMPROPER
TYTYPE

0xC0202020 DTS_E_INVA Le type de tampon n'est pas valide. Vérifiez que la structure du
-1071636448 LIDBUFFERT pipeline et tous les composants sont valides.
YPE

0xC0202021 DTS_E_INCO Valeur de la propriété personnalisée %1 incorrecte.


-1071636447 RRECTCUST
OMPROPER
TYVALUE

0xC0202022 DTS_E_CON Une erreur s'est produite en raison de l'absence de connexion. Une
-1071636446 NECTIONRE connexion est nécessaire lors de la demande de métadonnées. Si vous
QUIREDFOR travaillez hors connexion, désactivez Travailler hors connexion dans le
METADATA menu SSIS pour activer la connexion.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0202023 DTS_E_CAN Impossible de créer la propriété personnalisée « %1 ».


-1071636445 TCREATECU
STOMPROP
ERTY

0xC0202024 DTS_E_CAN Impossible de récupérer la collection de propriétés personnalisées


-1071636444 TGETCUSTO pour l'initialisation.
MPROPERTY
COLLECTIO
N

0xC0202025 DTS_E_CAN Impossible de créer un accesseur OLE DB. Vérifiez que les
-1071636443 NOTCREATE métadonnées de la colonne sont valides.
ACCESSOR

0xC0202026 DTS_E_PRIM PrimeOutput a été appelé avec un ID de sortie non valide de %1!d!.
-1071636442 EOUTPUTCA
LLEDWITHI
NVALIDOUT
PUTID

0xC0202027 DTS_E_INCO La valeur de la propriété « %1 » sur « %2 » n'est pas valide.


-1071636441 RRECTSTOC
KPROPERTY

0xC0202028 DTS_E_CON Une connexion est nécessaire pour lire les données.
-1071636440 NECTIONRE
QUIREDFOR
READ

0xC020202C DTS_E_ERRO Une erreur s'est produite lors de la lecture des lignes d'en-tête.
-1071636436 RWHILEREA
DINGHEADE
RROWS

0xC020202D DTS_E_DUPL Nom de la colonne « %1 » dupliqué.


-1071636435 ICATECOLU
MNNAME

0xC0202030 DTS_E_CAN Impossible d'obtenir le nom de la colonne avec l'ID %1!d!.


-1071636432 NOTGETCOL
UMNNAME

0xC0202031 DTS_E_CAN La ligne n'a pas pu être dirigée vers la sortie « %1 » (%2!d!).
-1071636431 TDIRECTRO
W
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020203A DTS_E_CAN Impossible de créer le thread d'insertion en bloc en raison de l'erreur «


-1071636422 NOTCREATE %1 ».
BULKINSERT
HREAD

0xC020203B DTS_E_BULK Échec de l'initialisation du thread pour la tâche d'insertion en bloc


-1071636421 INSERTHRE SSIS.
ADINITIALIZ
ATIONFAILE
D

0xC020203E DTS_E_BULK Le thread pour la tâche d'insertion en bloc SSIS est déjà en cours
-1071636418 INSERTTHRE d'exécution.
ADALREADY
RUNNING

0xC020203F DTS_E_BULK Le thread pour la tâche d'insertion en bloc SSIS s'est arrêté avec des
-1071636417 INSERTTHRE erreurs ou des avertissements.
ADABNOR
MALCOMPL
ETION

0xC0202040 DTS_E_CAN Impossible d'ouvrir un ensemble de lignes de chargement rapide pour


-1071636416 NOTGETIRO « %1 ». Vérifiez que cet objet existe dans la base de données.
WSETFASTL
OAD

0xC0202041 DTS_E_CON Erreur due à l'absence de connexion. Une connexion est nécessaire
-1071636415 NECTREQUI pour la validation des métadonnées.
REDFORME
TADATAVALI
DATION

0xC0202042 DTS_E_DEST Aucune table de destination n'est spécifiée.


-1071636414 INATIONTA
BLENAMEN
OTPROVIDE
D

0xC0202043 DTS_E_ICON Le fournisseur OLE DB utilisé par l'adaptateur OLE DB ne prend pas en
-1071636413 VERTTYPEU charge IConvertType. Affectez la valeur FALSE à la propriété
NAVAILABLE ValidateColumnMetaData de l'adaptateur.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0202044 DTS_E_OLED Le fournisseur OLE DB utilisé par l'adaptateur OLE DB ne peut pas
-1071636412 BPROVIDER convertir les types « %1 » et « %2 » pour « %3 ».
DATATYPEC
ONVERSIO
NUNSUPPO
RTED

0xC0202045 DTS_E_VALI Échec de la validation des métadonnées de la colonne.


-1071636411 DATECOLU
MNMETADA
TAFAILED

0xC0202047 DTS_E_ATTE « %1 » est une colonne d'ID de ligne et ne peut pas être incluse dans
-1071636409 MPTINGTOI une opération d'insertion de données.
NSERTINTO
AROWIDCO
LUMN

0xC0202048 DTS_E_ATTE Tentative d'insertion dans la colonne de version de ligne « %1 ».


-1071636408 MPTINGTOI Impossible d'effectuer cette opération dans une colonne de version de
NSERTINTO ligne.
AROWVERC
OLUMN

0xC0202049 DTS_E_ATTE Échec lors de l'insertion dans la colonne « %1 » en lecture seule.


-1071636407 MPTINGTOI
NSERTINTO
AREADONL
YCOLUMN

0xC020204A DTS_E_UNA Impossible de récupérer les informations sur la colonne dans la source
-1071636406 BLETORETRI de données. Vérifiez que la table cible est disponible dans la base de
EVECOLUM données.
NINFO

0xC020204B DTS_E_CAN Impossible de verrouiller un tampon. La mémoire système est


-1071636405 TLOCKBUFF insuffisante ou le gestionnaire de tampons a atteint son quota.
ER

0xC020204C DTS_E_INVA %1 a une propriété ComparisonFlags qui contient des balises


-1071636404 LIDCOMPAR supplémentaires avec la valeur %2!d!.
ISONFLAGS
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020204D DTS_E_COL Les métadonnées de la colonne ne sont pas disponibles pour la


-1071636403 UMNMETA validation.
DATAUNAV
AILABLEFOR
VALIDATION

0xC0202053 DTS_E_CAN Impossible d'écrire dans le fichier de données.


-1071636397 NOTWRITET
ODATAFILE

0xC0202055 DTS_E_COL Le délimiteur de colonne de la colonne « %1 » est introuvable.


-1071636395 UMNDELIMI
TERNOTFO
UND

0xC0202058 DTS_E_COL Impossible d'analyser la colonne « %1 » dans le fichier de données.


-1071636392 UMNPARSE
FAILED

0xC020205A DTS_E_RAW Le nom de fichier n'est pas correctement spécifié. Fournissez le chemin
-1071636390 FILENAMER d'accès et le nom au fichier brut, soit directement dans la propriété
EQUIRED FileName, soit en spécifiant une variable dans la propriété
FileNameVariable.

0xC020205B DTS_E_RAW Impossible d'écrire dans le fichier « %1 ». Cette erreur peut se produire
-1071636389 FILECANTO lorsque aucune autorisation relative aux fichiers n'est définie, ou
PEN lorsque le disque est plein.

0xC020205C DTS_E_RAW Impossible de créer un tampon d'entrées/sorties pour le fichier de


-1071636388 FILECANTB sortie. Cette erreur peut se produire lorsque aucune autorisation
UFFER relative aux fichiers n'est définie, ou lorsque le disque est plein.

0xC020205D DTS_E_RAW Impossible d'écrire %1!d! octets dans le fichier « %2 ». Pour plus
-1071636387 CANTWRITE d'informations, consultez les messages d'erreur précédents.

0xC020205E DTS_E_RAW Métadonnées incorrectes dans l'en-tête du fichier. Le fichier est


-1071636386 BADHEADE endommagé ou n'est pas un fichier de données brutes généré par
R SSIS.

0xC020205F DTS_E_RAW Une erreur s'est produite car le fichier de sortie existe déjà et la
-1071636385 EXISTSCREA propriété WriteOption est définie à la valeur Créer une fois. Affectez la
TEONCE valeur Toujours créer à la propriété WriteOption ou supprimez le
fichier.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0202060 DTS_E_RAW Erreur causée par des paramètres de propriété conflictuels. La valeur
-1071636384 CANTAPPEN TRUE est affectée aux propriétés AllowAppend et ForceTruncate. Ces
DTRUNCATE deux propriétés ne peuvent posséder cette valeur TRUE. Attribuez la
valeur FALSE à l'une des deux propriétés.

0xC0202061 DTS_E_RAW La version et les balises du fichier sont incorrectes. Le fichier est
-1071636383 BADVERSIO endommagé ou n'est pas un fichier de données brutes généré par
N SSIS.

0xC0202062 DTS_E_RAW Le fichier de sortie a été écrit par une version incompatible et ne peut
-1071636382 VERSIONIN pas être ajouté. Le format du fichier est peut-être ancien et n'est plus
COMPATIBL utilisable.
EAPPEND

0xC0202064 DTS_E_RAW Impossible d'ajouter le fichier de sortie car aucune colonne dans le
-1071636380 METADATA fichier existant ne correspond à la colonne « %1 » de l'entrée. L'ancien
MISMATCH fichier ne correspond pas au niveau des métadonnées.

0xC0202065 DTS_E_RAW Impossible d'ajouter le fichier de sortie car le nombre de colonnes


-1071636379 METADATAC dans ce fichier ne correspond pas au nombre de colonnes dans la
OUNTMISM destination. L'ancien fichier ne correspond pas au niveau des
ATCH métadonnées.

0xC0202067 DTS_E_ERRO Une erreur s'est produite lors de la récupération des informations de la
-1071636377 RRETRIEVIN page de codes de la colonne.
GCOLUMNC
ODEPAGE

0xC0202068 DTS_E_RAW Impossible de lire %1!d! octets dans le fichier « %2 ». L'origine de cette
-1071636376 CANTREAD erreur a dû être signalée précédemment.

0xC0202069 DTS_E_RAW Fin de fichier inattendue lors de la lecture de %1!d! octets dans le
-1071636375 UNEXPECTE fichier « %2 ». Le fichier s'est terminé prématurément en raison d'un
DEOF format de fichier non valide.

0xC020206A DTS_E_RAW La colonne %1 ne peut pas être utilisée. Les adaptateurs bruts ne
-1071636374 NOLONGTY prennent pas en charge les images, le texte ou les données ntext.
PES

0xC020206B DTS_E_RAW L'adaptateur a rencontré un type de données non reconnu de %1!d!.


-1071636373 UNEXPECTE Cela peut être dû à un fichier d'entrée endommagé (source) ou à un
DTYPE type de tampon non valide (destination).
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020206C DTS_E_RAW Chaîne trop longue. L'adaptateur lit une chaîne de %1!d! or une chaîne
-1071636372 STRINGTOO de %2!d! octets maximum est attendue au décalage %3!d!. Cela peut
LONG indiquer un fichier d'entrée endommagé. Le fichier comporte une
longueur de chaîne trop importante pour la colonne tampon.

0xC020206E DTS_E_RAW L'adaptateur brut a tenté d'ignorer %1!d! octets dans le fichier
-1071636370 SKIPFAILED d'entrée pour la colonne non référencée « %2 » avec l'ID de lignage
%3!d!, mais une erreur s'est produite. L'erreur retournée par le
système d'exploitation doit avoir été signalée précédemment.

0xC020206F DTS_E_RAW L'adaptateur brut a tenté de lire %1!d! octets dans le fichier d'entrée
-1071636369 READFAILED pour la colonne « %2 » avec l'ID de lignage %3!d!, mais une erreur
s'est produite. L'erreur retournée par le système d'exploitation doit
avoir été signalée précédemment.

0xC0202070 DTS_E_RAW La propriété du nom de fichier n'est pas valide. Le nom de fichier est
-1071636368 FILENAMEI un périphérique ou il contient des caractères non valides.
NVALID

0xC0202071 DTS_E_BULK Impossible de préparer l'insertion en bloc SSIS pour l'insertion de


-1071636367 INSERTAPIP données.
REPARATIO
NFAILED

0xC0202072 DTS_E_INVA Le nom d'objet de base de données « %1 » n'est pas valide.


-1071636366 LIDDATABA
SEOBJECTN
AME

0xC0202073 DTS_E_INVA La clause d'ordre n'est pas valide.


-1071636365 LIDORDERC
LAUSE

0xC0202074 DTS_E_RAW Impossible de lire le fichier « %1 ». Cette erreur peut se produire


-1071636364 FILECANTO lorsque aucune autorisation n'est définie ou si le fichier est
PENREAD introuvable. La raison exacte est indiquée dans le message d'erreur
précédent.

0xC0202075 DTS_E_TIME Impossible de créer


-1071636363 GENCANTC Microsoft.AnalysisServices.TimeDimGenerator.TimeDimGenerator.
REATE

0xC0202076 DTS_E_TIME Impossible de configurer


-1071636362 GENCANTC Microsoft.AnalysisServices.TimeDimGenerator.
ONFIGURE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0202077 DTS_E_TIME Type de données non pris en charge pour la colonne %1!d!.
-1071636361 GENCANTC
ONVERT

0xC0202079 DTS_E_TIME Échec de la lecture à partir de


-1071636359 GENCANTR Microsoft.AnalysisServices.TimeDimGenerator. Code d'erreur :
EAD 0x%1!8.8X!.

0xC020207A DTS_E_TIME Échec de la lecture des données de la colonne « %2!d! » à partir de


-1071636358 GENCANTR Microsoft.AnalysisServices.TimeDimGenerator. Code d'erreur :
EADCOLUM 0x%1!8.8X!.
N

0xC020207B DTS_E_RSTD La propriété VariableName n'est pas définie sur le nom d'une variable
-1071636357 ESTBADVAR valide. Un nom de variable exécutable est nécessaire.
IABLENAME

0xC020207C DTS_E_RSTD Impossible de créer ou de configurer l'objet ADODB.Recordset.


-1071636356 ESTRSTCON
FIGPROBLE
M

0xC020207D DTS_E_RSTD Une erreur s'est produite lors de l'écriture dans l'objet
-1071636355 ESTRSTWRI ADODB.Recordset.
TEPROBLEM

0xC020207E DTS_E_FILE Le nom de fichier n'est pas valide. Le nom de fichier est un
-1071636354 NAMEINVAL périphérique ou il contient des caractères non valides.
ID

0xC020207F DTS_E_FILE Le nom de fichier « %1 » n'est pas valide. Le nom de fichier est un
-1071636353 NAMEINVAL périphérique ou il contient des caractères non valides.
IDWITHPAR
AM

0xC0202080 DTS_E_CMD Impossible de récupérer les descriptions des colonnes de destination à


-1071636352 DESTNOPAR partir des paramètres de la commande SQL.
AMS

0xC0202081 DTS_E_CMD Les paramètres ne sont pas liés. Tous les paramètres de la commande
-1071636351 DESTNOTB SQL doivent être liés aux colonnes d'entrée.
OUND

0xC0202082 DTS_E_TXPI La valeur PivotUsage de la colonne d'entrée « %1 » (%2!d!) n'est pas


-1071636350 VOTBADUS valide.
AGE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0202083 DTS_E_TXPI Trop de clés de tableau croisé dynamique. Une seule colonne d'entrée
-1071636349 VOTTOOMA peut être utilisée en tant que clé de tableau croisé dynamique.
NYPIVOTKE
YS

0xC0202084 DTS_E_TXPI Aucune clé de tableau croisé dynamique n'a été trouvée. Une colonne
-1071636348 VOTNOPIVO d'entrée doit être utilisée en tant que clé de tableau croisé dynamique.
TKEY

0xC0202085 DTS_E_TXPI Plusieurs colonnes de sortie (telles que « %1 » (%2!d!)) sont mappées
-1071636347 VOTINPUTA sur la colonne d'entrée « %3 » (%4!d!).
LREADYMA
PPED

0xC0202086 DTS_E_TXPI Impossible de mapper la colonne de sortie « %1 » (%2!d!) sur la


-1071636346 VOTCANTM colonne d'entrée PivotKey.
APPIVOTKEY

0xC0202087 DTS_E_TXPI La colonne de sortie « %1 » (%2!d!) a un SourceColumn %3!d! qui


-1071636345 VOTCANTM n'est pas un ID de lignage de colonne d'entrée valide.
APPINGNOT
FOUND

0xC0202088 DTS_E_TXPI La colonne de sortie « %1 » (%2!d!) est mappée à une colonne


-1071636344 VOTEMPTYP d'entrée de valeur croisée dynamique, mais la valeur de la propriété
IVOTKEYVAL PivotKeyValue est manquante.
UE

0xC0202089 DTS_E_TXPI La colonne de sortie « %1 » (%2!d!) est mappée à une colonne


-1071636343 VOTDUPLIC d'entrée de valeur croisée dynamique avec une valeur de propriété
ATEPIVOTKE PivotKeyValue non unique.
YVALUE

0xC020208A DTS_E_TXPI La colonne d'entrée « %1 » (%2!d!) n'est pas mappée à une colonne de
-1071636342 VOTOUTPU sortie.
TNOTMAPP
ED

0xC020208B DTS_E_TXPI Échec de la comparaison des valeurs de clés définies.


-1071636341 VOTCANTC
OMPARESET
KEYS

0xC020208D DTS_E_TXPI La colonne d'entrée « %1 » (%2!d!) ne peut pas être utilisée en tant
-1071636339 VOTNOBLO que clé définie, clé de tableau croisé dynamique ou valeur de tableau
B croisé dynamique, car elle contient des données de type BLOB.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020208E DTS_E_TXPI Type de sortie incorrect. La colonne de sortie « %1 » (%2!d!) doit avoir
-1071636338 VOTBADOU les mêmes types de données et métadonnées que la colonne d'entrée
TPUTTYPE à laquelle elle est mappée.

0xC020208F DTS_E_TXPI Échec de la tentative pour ajouter un tableau croisé dynamique des
-1071636337 VOTPROCES enregistrements sources.
SERROR

0xC0202090 DTS_E_TXPI La valeur de clé de tableau croisé dynamique « %1 » n'est pas valide.
-1071636336 VOTBADPIV
OTKEYVALU
E

0xC0202091 DTS_E_ERRO Une erreur s'est produite lorsque les lignes de données ont été
-1071636335 RWHILESKIP ignorées.
PINGDATAR
OWS

0xC0202092 DTS_E_ERRO Une erreur s'est produite lors du traitement du fichier « %1 » sur la
-1071636334 RWHILEREA ligne de données %2!I64d!.
DINGDATAR
OWS

0xC0202093 DTS_E_FAILE Une erreur s'est produite lors de l'initialisation de l'analyseur de fichier
-1071636333 DTOINITIALI plat.
ZEFLATFILEP
ARSER

0xC0202094 DTS_E_UNA Impossible d'extraire les informations de colonne à partir du


-1071636332 BLETORETRI gestionnaire de connexions de fichier plat.
EVECOLUM
NINFOFRO
MFLATFILEC
ONNECTIO
NMANAGER

0xC0202095 DTS_E_FAILE Échec de l'écriture du nom de colonne pour la colonne « %1 ».


-1071636331 DTOWRITEO
UTCOLUMN
NAME

0xC0202096 DTS_E_INVA Le type de colonne de la colonne « %1 » est incorrect. Il s'agit du type


-1071636330 LIDFLATFILE « %2 ». Seuls les types « %3 » ou « %4 » sont autorisés.
COLUMNTY
PE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0202097 DTS_E_DISKI Échec de la tentative d'écriture de données de %1!d! octets dans l'E/S
-1071636329 OBUFFEROV disque. Le tampon d'E/S disque dispose de %2!d! octets disponibles.
ERFLOW

0xC0202098 DTS_E_FAILE Une erreur s'est produite lors de l'écriture de l'en-tête de fichier.
-1071636328 DTOWRITEO
UTHEADER

0xC0202099 DTS_E_FAILE Une erreur s'est produite lors de l'obtention de la taille du


-1071636327 DTOGETFILE fichier « %1 ».
SIZE

0xC020209A DTS_E_FAILE Une erreur s'est produite lors de la définition du pointeur de fichier du
-1071636326 DTOSETFILE fichier « %1 ».
POINTER

0xC020209B DTS_E_UNA Une erreur s'est produite lors de la définition du tampon d'E/S disque.
-1071636325 BLETOSETU
PDISKIOBUF
FER

0xC020209C DTS_E_COL Les données de la colonne « %1 » ont dépassé le tampon d'E/S disque.
-1071636324 UMNDATAO
VERFLOWDI
SKIOBUFFER

0xC020209D DTS_E_DISKI Une erreur d'E/S disque inattendue s'est produite lors de la lecture du
-1071636323 OFAILED fichier.

0xC020209E DTS_E_DISKI Un délai d'expiration d'E/S disque s'est produit lors de la lecture du
-1071636322 OTIMEDOU fichier.
T

0xC020209F DTS_E_INPU Le type d'utilisation des colonnes d'entrée pour cette transformation
-1071636321 TSNOTREAD ne peut être en lecture/écriture. Modifiez ce type d'utilisation pour
ONLY qu'il soit en lecture seule.

0xC02020A0 DTS_E_CAN Impossible de copier ou de convertir les données de fichier plat pour
-1071636320 NOTCOPYO la colonne « %1 ».
RCONVERTF
LATFILEDAT
A
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02020A1 DTS_E_FAILE Échec de la conversion de données. La conversion de données de la


-1071636319 DCOLUMN colonne « %1 » a retourné la valeur d'état %2!d! et le texte d'état « %3
DATACONV ».
ERSIONSTAT
US

0xC02020A2 DTS_E_VARI La collection Variables n'est pas disponible.


-1071636318 ABLESCOLL
ECTIONUNA
VAILABLE

0xC02020A3 DTS_E_TXU Valeur PivotKeyValue dupliquée. La colonne d'entrée « %1 » (%2!d!) est


-1071636317 NPIVOTDUP mappée à une colonne de sortie avec une valeur croisée dynamique et
LICATEPIVO elle possède une valeur PivotKeyValue non unique.
TKEYVALUE

0xC02020A4 DTS_E_TXU Destination Unpivot introuvable. Au moins une colonne d'entrée doit
-1071636316 NPIVOTNO être mappée avec une PivotKeyValue vers une DestinationColumn
UNPIVOTDE dans la sortie.
STINATION

0xC02020A5 DTS_E_TXU PivotKeyValue non valide. Dans une transformation UnPivot avec plus
-1071636315 NPIVOTBAD d'une DestinationColumn non croisée dynamique, l'ensemble des
KEYLIST valeurs PivotKeyValues par destination doit correspondre exactement.

0xC02020A6 DTS_E_TXU Métadonnées UnPivot incorrectes. Dans une transformation UnPivot,


-1071636314 NPIVOTBAD toutes les colonnes d'entrée avec PivotKeyValue défini et pointant vers
UNPIVOTME la même DestinationColumn doivent posséder des métadonnées qui
TADATA correspondent exactement à DestinationColumn.

0xC02020A7 DTS_E_TXPI Impossible de convertir la valeur de clé du tableau croisé dynamique «


-1071636313 VOTBADPIV %1 » selon le type de données de la colonne clé de tableau croisé
OTKEYCON dynamique.
VERT

0xC02020A8 DTS_E_TXU Trop de clés de tableau croisé dynamique spécifiées. Une seule
-1071636312 NPIVOTTOO colonne de sortie peut être utilisée en tant que clé de tableau croisé
MANYPIVOT dynamique.
KEYS

0xC02020A9 DTS_E_TXU La colonne de sortie « %1 » (%2!d!) n'est mappée à aucune propriété


-1071636311 NPIVOTUN DestinationColumn de la colonne d'entrée.
MAPPEDOU
TPUT
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02020AA DTS_E_TXU Aucune colonne de sortie n'est indiquée comme PivotKey.


-1071636310 NPIVOTNOP
IVOT

0xC02020AB DTS_E_TXU La colonne d'entrée « %1 » (%2!d!) possède une valeur de propriété


-1071636309 NPIVOTNOT DestinationColumn qui ne fait pas référence à un LineageID de
INPUTMAP colonne de sortie valide.

0xC02020AC DTS_E_TXU Erreur de destination dupliquée. Plus d'une colonne d'entrée non
-1071636308 NPIVOTDUP croisée dynamique est mappée à la même colonne de sortie de
LICATEDESTI destination.
NATION

0xC02020AD DTS_E_TOTA Aucune colonne d'entrée trouvée. Une colonne d'entrée au moins doit
-1071636307 LINPUTCOL être mappée à une colonne de sortie.
SCANNOTB
EZERO

0xC02020AE DTS_E_TXM Le nombre de colonnes d'entrée et de sortie ne correspond pas. Le


-1071636306 ERGEJOINM nombre total de colonnes d'entrée sur toutes les entrées doit être
USTHAVESA identique au nombre total de colonnes de sortie.
MENUMBER
OFINPUTAN
DOUTPUTC
OLS

0xC02020AF DTS_E_INPU Entrée non triée. « %1 » doit être trié.


-1071636305 TMUSTBES
ORTED

0xC02020B0 DTS_E_TXM La propriété personnalisée JoinType pour %1 contient une valeur


-1071636304 ERGEJOININ %2!ld! qui n'est pas valide. Les valeurs valides sont 0 (complet), 1
VALIDJOINT (gauche) ou 2 (interne).
YPE

0xC02020B1 DTS_E_TXM La valeur de NumKeyColumns n'est pas valide. Dans %1, la valeur de la
-1071636303 ERGEJOININ propriété personnalisée NumKeyColumns doit être comprise entre 1 et
VALIDNUM %2!lu!.
KEYCOLS

0xC02020B2 DTS_E_NOK Aucune colonne clé trouvée. %1 doit posséder au moins une colonne
-1071636302 EYCOLS pour laquelle SortKeyPosition diffère de zéro.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02020B3 DTS_E_TXM Nombre de colonnes clés insuffisant. %1 doit posséder au moins


-1071636301 ERGEJOINN %2!ld! colonnes avec des valeurs SortKeyPosition différentes de zéro.
OTENOUGH
KEYCOLS

0xC02020B4 DTS_E_TXM Une erreur de correspondance de types de données s'est produite. Les
-1071636300 ERGEJOIND types de données des colonnes possédant la valeur %1!ld! pour
ATATYPEMIS SortKeyPosition ne correspondent pas.
MATCH

0xC02020B5 DTS_E_TXM La colonne avec la valeur %1!ld! pour SortKeyPosition n’est pas valide.
-1071636299 ERGEJOININ Cette valeur doit être %2!ld!.
VALIDSORT
KEYPOS

0xC02020B6 DTS_E_TXM Sens de tri non correspondant. Les sens de tri des colonnes possédant
-1071636298 ERGEJOINS la valeur %1!ld! pour SortKeyPosition ne correspondent pas.
ORTDIRECTI
ONMISMAT
CH

0xC02020B7 DTS_E_TXM Colonne manquante. %1 doit posséder une colonne d'entrée associée.
-1071636297 ERGEJOINO
UTPUTCOL
MUSTHAVE
ASSOCIATE
DINPUTCOL

0xC02020B8 DTS_E_TXM Les colonnes d'entrée doivent posséder des colonnes de sortie. Il
-1071636296 ERGEJOINR existe des colonnes d'entrée avec un type d'utilisation en lecture seule
EADONLYIN sans colonnes de sortie associées.
PUTCOLSWI
THNOOUTP
UTCOL

0xC02020B9 DTS_E_TXM Les indicateurs de comparaison n'équivalent pas à zéro. Ces


-1071636295 ERGEJOINN indicateurs pour les colonnes qui ne sont pas des chaînes doivent
ONSTRINGC correspondre à zéro.
OMPARISO
NFLAGSNO
TZERO
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02020BA DTS_E_TXM Les indicateurs de comparaison pour les colonnes dont


-1071636294 ERGEJOINC SortKeyPosition possède la valeur %1!ld! ne correspondent pas.
OMPARISO
NFLAGSMIS
MATCH

0xC02020BB DTS_E_TXPI Valeur de clé de tableau croisé dynamique non reconnue.


-1071636293 VOTBADPIV
OTKEYVALU
ENOSTRING

0xC02020BC DTS_E_TXLI La valeur de l'élément de lignage %1!ld! n’est pas valide. La plage
-1071636292 NEAGEINVA valide se situe entre %2!ld! et %3!ld!.
LIDLINEAGE
ITEM

0xC02020BD DTS_E_CAN Colonnes d'entrée non autorisées. Le nombre de colonnes d'entrée


-1071636291 NOTHAVEA doit être zéro.
NYINPUTCO
LUMNS

0xC02020BE DTS_E_TXLI Le type de données de « %1 » n'est pas valide pour l'élément de


-1071636290 NEAGEDATA lignage spécifié.
TYPEMISMA
TCH

0xC02020BF DTS_E_TXLI La longueur de « %1 » n'est pas valide pour l'élément de lignage


-1071636289 NEAGEINVA spécifié.
LIDLENGTH

0xC02020C1 DTS_E_MET Les métadonnées de « %1 » ne correspondent pas aux métadonnées


-1071636287 ADATAMIS de la colonne de sortie associée.
MATCHWIT
HOUTPUTC
OLUMN

0xC02020C3 DTS_E_TXM Il existe des colonnes de sortie dont les valeurs de SortKeyPosition ne
-1071636285 ERGESORTK correspondent pas aux valeurs SortKeyPosition des colonnes d'entrée
EYPOSMISM associées.
ATCH

0xC02020C4 DTS_E_ADD Échec de la tentative d'ajout d'une ligne au tampon de tâche de flux
-1071636284 ROWTOBUF de données : code d'erreur 0x%1!8.8X!.
FERFAILED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02020C5 DTS_E_DATA Échec de la conversion de données lors de la conversion de la colonne


-1071636283 CONVERSIO « %1 » (%2!d!) en colonne « %3 » (%4!d!). Cette conversion a retourné
NFAILED la valeur d'état %5!d! et le texte d'état « %6 ».

0xC02020C6 DTS_E_FAILE Échec de la tentative d'allocation d'un tampon de descripteur de ligne


-1071636282 DTOALLOCA : code d'erreur 0x%1!8.8X!.
TEROWHAN
DLEBUFFER

0xC02020C7 DTS_E_FAILE Échec de la tentative d'envoi d'une ligne vers SQL Server : code
-1071636281 DTOSENDR d'erreur 0x%1!8.8X!.
OWTOSQLS
ERVER

0xC02020C8 DTS_E_FAILE Échec de la tentative de préparation de l'état de tampon : code


-1071636280 DTOPREPAR d'erreur 0x%1!8.8X!.
EBUFFERSTA
TUS

0xC02020C9 DTS_E_FAILE Échec de la tentative de récupération de la ligne de début du tampon :


-1071636279 DTOBUFFER code d'erreur 0x%1!8.8X!.
ROWSTARTS

0xC02020CA DTS_E_BULK Le thread de l'insertion en bloc SSIS n'est plus en cours d'exécution.
-1071636278 INSERTTHRE Plus aucune ligne ne peut être insérée. Essayez d'augmenter le délai
ADTERMINA d'expiration du thread d'insertion en bloc.
TED

0xC02020CB DTS_E_RAW Fichier source non valide. Le fichier source retourne un nombre
-1071636277 TOOMANYC supérieur à 131072 colonnes. Cela se produit généralement lorsque le
OLUMNS fichier source n'est pas produit par la destination du fichier brut.

0xC02020CC DTS_E_TXU %1 est une entrée détachée supplémentaire qui sera supprimée.
-1071636276 NIONALL_E
XTRADANG
LINGINPUT

0xC02020CD DTS_E_TXU %1 n'est pas attaché mais n'est pas indiqué comme étant en suspens.
-1071636275 NIONALL_N Il sera indiqué comme étant en suspens.
ONDANGLI
NGUNATTA
CHEDINPUT
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02020CF DTS_E_TXPI Valeur de clé de tableau croisé dynamique « %1 » dupliquée.


-1071636273 VOTRUNTI
MEDUPLICA
TEPIVOTKEY
VALUE

0xC02020D0 DTS_E_TXPI Valeur de clé de tableau croisé dynamique dupliquée.


-1071636272 VOTRUNTI
MEDUPLICA
TEPIVOTKEY
VALUENOST
RING

0xC02020D1 DTS_E_FAILE Erreur lors de la récupération de l'ID de paramètre régional du


-1071636271 DTOGETCO composant. Code d'erreur : 0x%1!8.8X!.
MPONENTL
OCALEID

0xC02020D2 DTS_E_MIS Erreur de correspondance entre les ID de paramètres régionaux. L'ID


-1071636270 MATCHCO de paramètre régional du composant (%1!d!) ne correspond pas à l'ID
MPONENTC de paramètre régional du gestionnaire de connexions (%2!d!).
ONNECTIO
NMANAGER
LOCALEID

0xC02020D3 DTS_E_LOCA L'ID de paramètre régional du composant n'a pas été défini. Les
-1071636269 LEIDNOTSET adaptateurs de fichier plat doivent posséder un ID de paramètre
régional défini sur le gestionnaire de connexions de fichier plat.

0xC02020D4 DTS_E_RAW Le champ binaire est trop important. L'adaptateur a tenté de lire un
-1071636268 BYTESTOOL champ binaire de %1!d! octets de long, mais il attendait un champ
ONG d'une taille maximale de %2!d! octets au décalage %3!d!. Cela se
produit généralement lorsque le fichier d'entrée n'est pas valide. Ce
fichier contient une longueur de chaîne trop importante pour la
colonne de tampon.

0xC02020D5 DTS_E_TXSA Pourcentage %2!ld! non valide pour la propriété « %1 ». Il doit être
-1071636267 MPLINGINV compris entre 0 et 100.
ALIDPCT

0xC02020D6 DTS_E_TXSA Le nombre de lignes %2!ld! n'est pas valide pour la propriété « %1 ». Il
-1071636266 MPLINGINV doit être supérieur à 0.
ALIDROWS
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02020D7 DTS_E_RAW Une écriture de chaîne de %1!I64d! de long a été demandée à


-1071636265 STRINGINP l'adaptateur, mais la longueur de l'ensemble des données doit être
UTTOOLON inférieure à 4 294 967 295 octets.
G

0xC02020D9 DTS_E_ATLE Aucune entrée n'a été mappée à une sortie. « %1 » doit posséder au
-1071636263 ASTONEINP moins une colonne d'entrée mappée à une colonne de sortie.
UTMUSTBE
MAPPEDTO
OUTPUT

0xC02020DB DTS_E_CAN La conversion de « %1 » avec la page de codes %2!d! en « %3 » avec


-1071636261 NOTCONVE la page de codes %4!d! n’est pas prise en charge.
RTDATATYP
ESWITHDIFF
ERENTCODE
PAGES

0xC02020DC DTS_E_COL Mappage de la colonne de métadonnées externe pour %1 non valide.


-1071636260 UMNNOTM L'ID de cette colonne ne peut pas être égal à zéro.
APPEDTOEX
TERNALMET
ADATACOLU
MN

0xC02020DD DTS_E_COL Le %1 est mappé à une colonne de métadonnées externe inexistante.


-1071636259 UMNMAPP
EDTONONE
XISTENTEXT
ERNALMETA
DATACOLU
MN

0xC02020E5 DTS_E_UNA Échec de l'écriture des données d'objet longues de type DT_TEXT,
-1071636251 BLETOWRIT DT_NTEXT ou DT_IMAGE dans le tampon de la tâche de flux de
ELOBDATAT données de la colonne « %1 ».
OBUFFER

0xC02020E8 DTS_E_CAN Échec de l'ouverture d'un ensemble de lignes pour « %1 ». Vérifiez que
-1071636248 NOTGETIRO cet objet existe dans la base de données.
WSET

0xC02020E9 DTS_E_VARI Échec de l'accès à la variable « %1 » : code d'erreur 0x%2!8.8X!.


-1071636247 ABLEACCES
SFAILED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02020EA DTS_E_CON Le gestionnaire de connexions « %1 » est introuvable. Un composant


-1071636246 NECTIONM n'a pas réussi à le trouver dans la collection Connections.
ANAGERNO
TFOUND

0xC02020EB DTS_E_VERS La mise à niveau depuis la version « %1 » vers la version %2!d! a


-1071636245 IONUPGRA échoué.
DEFAILED

0xC02020EC DTS_E_RSTD Une valeur dans une colonne d'entrée est trop importante pour être
-1071636244 ESTBIGBLOB stockée dans l'objet ADODB.Recordset.

0xC02020ED DTS_E_CAN Les colonnes « %1 » et « %2 » ne peuvent pas effectuer des


-1071636243 NOTCONVE conversions entre des types de données de chaîne Unicode et non-
RTBETWEEN Unicode.
UNICODEA
NDNONUNI
CODESTRIN
GCOLUMNS

0xC02020EE DTS_E_ROW La variable « %1 » spécifiée par la propriété VariableName n'est pas


-1071636242 COUNTBAD une variable valide. Nom de variable valide requis pour l'écriture.
VARIABLEN
AME

0xC02020EF DTS_E_ROW La variable « %1 » spécifiée par la propriété VariableName n'est pas un


-1071636241 COUNTBAD entier. Modifiez cette variable pour lui attribuer le type VT_I4, VT_UI4,
VARIABLETY VT_I8 ou VT_UI8.
PE

0xC02020F0 DTS_E_NOC Aucune colonne spécifiée pour permettre la progression du


-1071636240 OLUMNADV composant à travers le fichier.
ANCETHRO
UGHFILE

0xC02020F1 DTS_E_MER La propriété IsSorted de « %1 » possède la valeur TRUE, mais la


-1071636239 GEJOINSOR propriété SortKeyPosition de toutes les colonnes de sortie équivaut à
TEDOUTPUT zéro. Modifiez la propriété IsSorted en lui attribuant la valeur FALSE,
HASNOSOR ou sélectionnez au moins une colonne de sortie qui contienne une
TKEYPOSITI valeur SortKeyPosition différente de zéro.
ONS
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02020F2 DTS_E_MET Les métadonnées « %1 » ne correspondent pas aux métadonnées de


-1071636238 ADATAMIS la colonne d'entrée.
MATCHWIT
HINPUTCOL
UMN

0xC02020F3 DTS_E_RSTD Impossible de localiser, de verrouiller ou de définir la valeur de la


-1071636237 ESTBADVAR variable spécifiée.
IABLE

0xC02020F4 DTS_E_CAN Impossible de traiter la colonne « %1 » car plusieurs pages de codes


-1071636236 TPROCESSC (%2!d! et %3!d!) ont été spécifiées pour celle-ci.
OLUMNTYP
ECODEPAGE

0xC02020F5 DTS_E_CAN Impossible d'insérer la colonne « %1 » car la conversion entre les types
-1071636235 TINSERTCOL %2 et %3 n'est pas prise en charge.
UMNTYPE

0xC02020F6 DTS_E_CAN Impossible de convertir la colonne « %1 » en raison de types de


-1071636234 NOTCONVE données de chaîne Unicode et non Unicode.
RTBETWEEN
UNICODEA
NDNONUNI
CODESTRIN
GCOLUMN

0xC02020F8 DTS_E_COU %1 ne trouve pas la colonne qui contient le LineageID %2!ld! dans son
-1071636232 LDNOTFIND tampon d'entrée.
INPUTBUFF
ERCOLUMN
BYLINEAGE

0xC02020F9 DTS_E_COU %1 ne peut obtenir les informations sur la colonne %2!lu! à partir de
-1071636231 LDNOTGETC son tampon d'entrée.
OLUMNINF
OFORINPUT
BUFFER

0xC02020FA DTS_E_COU %1 ne peut obtenir les informations sur la colonne « %2!lu! » à partir
-1071636230 LDNOTGETC de son tampon de copie.
OLUMNINF
OFORCOPY
BUFFER
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02020FB DTS_E_COU %1 ne peut pas inscrire un type de tampon pour son tampon de copie.
-1071636229 LDNOTREGI
STERCOPYB
UFFER

0xC02020FC DTS_E_COU %1 ne peut créer pas un tampon dans lequel copier ses données pour
-1071636228 LDNOTCREA le tri.
TECOPYBUF
FER

0xC02020FD DTS_E_DATA Le client DataReader n'a pas pu appeler Read ou a fermé DataReader.
-1071636227 READERDES
TREADFAILE
D

0xC02020FE DTS_E_NOS La commande SQL n'a retourné aucune information sur les colonnes.
-1071636226 CHEMAINF
OFOUND

0xC02020FF DTS_E_GETS %1 n'a pas pu récupérer d'informations sur les colonnes pour la
-1071636225 CHEMATABL commande SQL. L'erreur suivante s'est produite : %2
EFAILED

0xC0202100 DTS_E_SOU Aucun nom de table source n'a été spécifié.


-1071636224 RCETABLEN
AMENOTPR
OVIDED

0xC0203110 DTS_E_CAC La position d'index du cache, %1!d!, n'est pas valide. Pour les colonnes
-1071632112 HE_INVALID autres que les colonnes d'index, la position d'index doit être égale à 0.
_INDEXPOS Pour les colonnes d'index, la position d'index doit être un nombre
séquentiel positif.

0xC0203111 DTS_E_CAC La position d'index, %1!d!, est un doublon. Pour les colonnes autres
-1071632111 HE_DUPLIC que les colonnes d'index, la position d'index doit être égale à 0. Pour
ATE_INDEXP les colonnes d'index, la position d'index doit être un nombre
OS séquentiel positif.

0xC0203112 DTS_E_CAC Au moins une colonne d'index doit être spécifiée pour le gestionnaire
-1071632110 HE_TOO_FE de connexions du cache. Pour spécifier une colonne d'index, définissez
W_INDEX_C la propriété Index Position de la colonne du cache.
OLUMNS
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0203113 DTS_E_CAC Les positions d'index du cache doivent être contiguës. Pour les
-1071632109 HE_INDEXP colonnes autres que les colonnes d'index, la position d'index doit être
OS_NOT_CO égale à 0. Pour les colonnes d'index, la position d'index doit être un
NTINUOUS nombre séquentiel positif.

0xC0204000 DTS_E_PROP Impossible de définir la propriété « %1 » sur « %2 ». La propriété en


-1071628288 ERTYNOTSU cours de définition n'est pas prise en charge sur l'objet spécifié.
PPORTED Vérifiez le nom, la casse et l'orthographe de la propriété.

0xC0204002 DTS_E_CAN Impossible de modifier le type de la propriété par rapport au type


-1071628286 TCHANGEP défini par le composant.
ROPERTYTY
PE

0xC0204003 DTS_E_CANT Échec de l'ID de sortie %1!d! au cours de l'insertion. La nouvelle sortie
-1071628285 ADDOUTPU n'a pas été créée.
TID

0xC0204004 DTS_E_CAN Impossible de supprimer l'ID de sortie %1!d! de la collection de sortie.


-1071628284 TDELETEOU Cet ID n'est peut-être pas valide, ou il représente la sortie par défaut
TPUTID ou la sortie d'erreur.

0xC0204006 DTS_E_FAILE Échec de la définition de la propriété « %1 » sur « %2 ».


-1071628282 DTOSETPRO
PERTY

0xC0204007 DTS_E_FAILE Échec de la définition du type de %1 en type : « %2 », longueur :


-1071628281 DTOSETOUT %3!d!, précision : %4!d!, échelle : %5!d!, page de codes : %6!d!.
PUTCOLUM
NTYPE

0xC0204008 DTS_E_MOR Plus d'une sortie d'erreur a été trouvée sur le composant, or il ne peut
-1071628280 ETHANONE y en avoir qu'une seule.
ERROROUT
PUTFOUND

0xC020400A DTS_E_CAN Impossible de définir la propriété sur une colonne de sortie.


-1071628278 TSETOUTPU
TCOLUMNP
ROPERTY

0xC020400B DTS_E_CAN Impossible de modifier le type de données « %1 » dans l'erreur « %2 ».


-1071628277 TMODIFYER
ROROUTPU
TCOLUMND
ATATYPE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020400E DTS_E_CAN La propriété IsSorted de « %1 » ne peut pas posséder la valeur TRUE


-1071628274 ONLYSETISS car il ne s'agit pas d'une sortie source. Une sortie source possède une
ORTEDONS valeur SynchronousInputID égale à zéro.
OURCE

0xC020400F DTS_E_CAN « %1 » ne peut pas posséder une propriété SortKeyPosition avec une
-1071628273 ONLYSETSO valeur autre que zéro, car « %2 » n'est pas une sortie source. La
RTKEYONSO colonne de sortie « nomcol » ne peut posséder une propriété
URCE SortKeyPosition avec une valeur différente de zéro, car sa sortie «
nomsortie » (ID) n'est pas une sortie source.

0xC0204010 DTS_E_CAN La propriété ComparisonFlags ne peut pas posséder une valeur


-1071628272 ONLYSETCO différente de zéro pour « %1 », car « %2 » n'est pas une sortie source.
MPFLAGSO La colonne de sortie « nomcol » (ID) ne peut posséder une valeur
NSOURCE autre que zéro pour la propriété ComparisonFlags, car sa sortie «
nomsortie » (ID) n'est pas une sortie source.

0xC0204011 DTS_E_NON Les indicateurs de comparaison de « %1 » doivent être égaux à zéro


-1071628271 STRINGCO car ils ne sont pas de type chaîne. ComparisonFlags peut uniquement
MPARISONF posséder une valeur différente de zéro pour les colonnes de type
LAGSNOTZE chaîne.
RO

0xC0204012 DTS_E_COM « %1 » ne peut pas comporter une propriété ComparisonFlags définie


-1071628270 PFLAGSONL à une valeur différente de zéro, car sa propriété SortKeyPosition a la
YONSORTC valeur zéro. La propriété ComparisonFlags d'une colonne de sortie
OL peut être différente de zéro uniquement si la valeur de SortKeyPosition
diffère également de zéro.

0xC0204013 DTS_E_READ la propriété est en lecture seule.


-1071628269 ONLYSTOCK
PROPERTY

0xC0204014 DTS_E_INVA %1 possède une valeur de type de données non valide (%2!ld!) définie.
-1071628268 LIDDATATYP
E

0xC0204015 DTS_E_COD « %1 » nécessite la définition d'une page de codes mais la valeur


-1071628267 EPAGEREQU transmise était zéro.
IRED

0xC0204016 DTS_E_INVA La longueur de « %1 » n'est pas valide. Cette longueur doit être
-1071628266 LIDSTRINGL comprise entre %2!ld! et %3!ld!.
ENGTH
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0204017 DTS_E_INVA L'échelle de « %1 » n'est pas valide. Cette échelle doit être comprise
-1071628265 LIDSCALE entre %2!ld! et %3!ld!.

0xC0204018 DTS_E_INVA La précision de « %1 » n'est pas valide. Cette précision doit être
-1071628264 LIDPRECISI comprise entre %2!ld! et %3!ld!.
ON

0xC0204019 DTS_E_PROP « %1 » possède une valeur définie pour la longueur, la précision,


-1071628263 VALUEIGNO l'échelle ou la page de codes différente de zéro, mais le type de
RED données requiert une valeur zéro.

0xC020401A DTS_E_CAN %1 ne permet pas de définir les propriétés de type de données de la


-1071628262 TSETOUTPU colonne de sortie.
TCOLUMND
ATATYPEPR
OPERTIES

0xC020401B DTS_E_INVA « %1 » contient un type de données non valide. « %1 » est une


-1071628261 LIDDATATYP colonne d’erreur spéciale et le seul type de données valide est DT_I4.
EFORERROR
COLUMNS

0xC020401C DTS_E_NOE Le composant ne fournit pas les descriptions des codes d'erreur.
-1071628260 RRORDESCF
ORCOMPO
NENT

0xC020401D DTS_E_UNR Le code d'erreur spécifié n'est pas associé à ce composant.


-1071628259 ECOGNIZED
ERRORCOD
E

0xC020401F DTS_E_TRU Une troncation a causé la redirection d'une ligne, en fonction des
-1071628257 NCATIONTR paramètres de disposition de troncation.
IGGEREDRE
DIRECTION

0xC0204020 DTS_E_CAN « %1 » ne peut modifier la colonne avec l'ID de lignage %2!d! en


-1071628256 TSETUSAGE lecture/écriture, car ce type d'utilisation n'est pas autorisé sur cette
TYPETOREA colonne. Une tentative de modification du type d'utilisation d'une
DWRITE colonne d'entrée, UT_READWRITE, a été effectuée, mais elle n'est pas
prise en charge sur ce composant.

0xC0204023 DTS_E_CAN %1 a oublié l'utilisation requise de la colonne d'entrée avec l'ID de


-1071628253 TSETUSAGE lignage %2!d!.
TYPE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0204024 DTS_E_FAILE « %1 » n'a pu apporter la modification requise à la colonne d'entrée


-1071628252 DTOSETUSA avec l'ID de lignage %2!d!. La requête a échoué et retourné le code
GETYPE d'erreur : 0x%3!8.8X!. L'erreur spécifiée s'est produite lors de la
tentative de définition du type d'utilisation d'une colonne d'entrée.

0xC0204025 DTS_E_FAILE Échec de la tentative de définition des propriétés de type de données


-1071628251 DTOSETOUT sur « %1 ». Cette erreur s'est produite lors de la tentative de définition
PUTCOLUM d'une ou plusieurs des propriétés de type de données de la colonne
NDATATYPE de sortie.
PROPERTIES

0xC0204026 DTS_E_UNA Impossible d'extraire les métadonnées de « %1 ». Vérifiez que le nom


-1071628250 BLETORETRI d'objet est correct et que l'objet existe.
EVEMETADA
TA

0xC0204027 DTS_E_CAN Impossible de mapper la colonne de sortie à une colonne de


-1071628249 NOTMAPO métadonnées externe.
UTPUTCOLU
MN

0xC0204028 DTS_E_UNS La variable %1 doit être de type « %2 ».


-1071628248 UPPORTEDV
ARIABLETYP
E

0xC020402A DTS_E_CAN %1 n'autorise pas la définition des propriétés de type de données de


-1071628246 TSETEXTER la colonne de métadonnées externe.
NALMETAD
ATACOLUM
NDATATYPE
PROPERTIES

0xC020402B DTS_E_IDNO L'ID %1!lu! n'est ni un ID d'entrée, ni un ID de sortie. L'ID spécifié doit
-1071628245 TINPUTNOR être l'ID d'entrée ou l'ID de sortie auquel est associée la collection de
OUTPUT métadonnées externe.

0xC020402C DTS_E_MET La collection de métadonnées externe sur « %1 » est indiquée comme


-1071628244 ADATACOLL étant inutilisée. Par conséquent, aucune opération ne peut être
ECTIONNOT effectuée sur celle-ci.
USED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020402D DTS_E_NOB La sortie %1 est une sortie synchrone et le type de mémoire tampon
-1071628243 UFFERTYPE ne peut pas être extrait pour une sortie synchrone.
ONSYNCOU
TPUT

0xC0207000 DTS_E_INPU La colonne d'entrée « %1 » doit être en lecture seule. La colonne


-1071616000 TCOLUMNU d'entrée possède un type d'utilisation autre que lecture seule, ce qui
SAGETYPEN n'est pas autorisé.
OTREADON
LY

0xC0207001 DTS_E_MISS « %1 » ne possède pas la propriété requise « %2 ». Cet objet doit


-1071615999 INGCUSTO posséder la propriété personnalisée spécifiée.
MPROPERT
Y

0xC0207002 DTS_E_ILLEG La sortie %1 ne peut pas posséder la propriété « %2 », mais cette


-1071615998 ALCUSTOM propriété lui est affectée actuellement.
OUTPUTPR
OPERTY

0xC0207003 DTS_E_INVA %1 doit être dans le groupe d'exclusions %2!d!. Toutes les sorties
-1071615997 LIDOUTPUT doivent se trouver dans le groupe d'exclusions spécifié.
EXCLUSION
GROUP

0xC0207004 DTS_E_PROP La propriété « %1 » est vide. Cette propriété ne peut pas être vide.
-1071615996 ERTYISEMPT
Y

0xC0207005 DTS_E_CREA Impossible d'allouer de la mémoire à l'expression « %1 ». Une erreur


-1071615995 TEEXPRESSI de mémoire insuffisante s'est produite lors de la création d'un objet
ONOBJECTF interne pour contenir l'expression.
AILED

0xC0207006 DTS_E_EXPR Impossible d'analyser l'expression « %1 ». Cette expression n'était pas


-1071615994 ESSIONPAR valide, ou une erreur de mémoire insuffisante est survenue.
SEFAILED

0xC0207007 DTS_E_EXPR Échec du calcul de l'expression « %1 » : code d'erreur 0x%2!8.8X!.


-1071615993 ESSIONCO Cette expression risque de comporter des erreurs, telles que la division
MPUTEFAILE par zéro, indétectables au cours de l'analyse, ou une erreur de
D mémoire insuffisante s'est produite.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0207008 DTS_E_FAILE Impossible d'allouer de la mémoire aux objets Expression. Une erreur
-1071615992 DTOCREATE de mémoire insuffisante s'est produite au cours de la création d'un
EXPRESSIO tableau de pointeurs d'objet Expression.
NARRAY

0xC020700A DTS_E_FAILE %1 a échoué et retourné le code d'erreur 0x%2!8.8X! lors de la


-1071615990 DTOCREATE création du Gestionnaire d'expressions.
EXPRESSIO
NMANANG
ER

0xC020700B DTS_E_SPLIT L'expression « %1 » n'est pas booléenne. Le type de résultat de cette


-1071615989 EXPRESSIO expression doit être booléen.
NNOTBOOL
EAN

0xC020700C DTS_E_EXPR Expression « %1 » sur « %2 » non valide.


-1071615988 ESSIONVALI
DATIONFAIL
ED

0xC020700E DTS_E_COL Correspondance impossible entre la colonne « %1 » (%2!d!) et


-1071615986 UMNNOTM n'importe quelle colonne de fichier d'entrée. Le nom de la colonne de
ATCHED sortie ou celui de la colonne d'entrée est introuvable dans le fichier.

0xC020700F DTS_E_SETR Échec de la tentative de définition d'une colonne de résultats pour


-1071615985 ESULTCOLU l'expression « %1 » sur %2 : code d'erreur 0x%3!8.8X!. Impossible de
MNFAILED déterminer la colonne d'entrée ou de sortie devant recevoir le résultat
de l'expression, ou impossible de convertir le résultat de l'expression
vers le type de colonne.

0xC0207011 DTS_E_FAILE %1 n'a pas réussi à obtenir l'ID de paramètres régionaux à partir du
-1071615983 DTOGETLOC package.
ALEIDFROM
PACKAGE

0xC0207012 DTS_E_INCO La chaîne de mappage de paramètres ne possède pas le format


-1071615982 RRECTPARA correct.
METERMAP
PINGFORM
AT
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0207013 DTS_E_NOT La commande SQL nécessite %1!d! paramètres, mais le mappage de


-1071615981 ENOUGHPA paramètres ne comporte que %2!d! paramètres.
RAMETERSP
ROVIDED

0xC0207014 DTS_E_PARA La commande SQL nécessite un paramètre nommé « %1 », introuvable


-1071615980 METERNOTF dans le mappage de paramètres.
OUNDINMA
PPING

0xC0207015 DTS_E_DUPL Il existe plusieurs colonnes sources de données portant le nom « %1 ».


-1071615979 ICATEDATAS Les noms des colonnes sources de données doivent être uniques.
OURCECOL
UMNNAME

0xC0207016 DTS_E_DATA Une colonne source de données n'a pas de nom. Chaque colonne
-1071615978 SOURCECOL source de données doit avoir un nom.
UMNWITH
NONAMEF
OUND

0xC0208001 DTS_E_DISC Un composant est déconnecté de la structure.


-1071611903 ONNECTED
COMPONE
NT

0xC0208002 DTS_E_INVA L'ID d'un composant de la structure n'est pas valide.


-1071611902 LIDCOMPO
NENTID

0xC0208003 DTS_E_INVA Un composant possède un nombre d'entrées non valide.


-1071611901 LIDINPUTC
OUNT

0xC0208004 DTS_E_INVA Un composant possède un nombre de sorties non valide.


-1071611900 LIDOUTPUT
COUNT

0xC0208005 DTS_E_NOI Un composant ne possède aucune entrée ni sortie.


-1071611899 NPUTSORO
UTPUTS

0xC0208007 DTS_E_CANT Quantité de mémoire disponible insuffisante pour allouer la liste des
-1071611897 ALLOCATEC colonnes actuellement manipulées par ce composant.
OLUMNINF
O
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208008 DTS_E_OUT La colonne de sortie « %1 » (%2!d!) fait référence à la colonne d'entrée


-1071611896 PUTCOLUM dotée de l'ID de lignage %3!d!, mais aucune entrée ne correspond à
NNOTININP cet ID de lignage.
UT

0xC0208009 DTS_E_SORT Une colonne d'entrée au minimum doit être marquée en tant que clé
-1071611895 NEEDSONE de tri, mais aucune clé n'a été trouvée.
KEY

0xC020800A DTS_E_SORT Les deux colonnes « %1 » (%2!d!) et « %3 » (%4!d!) ont été marquées
-1071611894 DUPLICATEK avec la priorité de clé de tri %5!d!.
EYWEIGHT

0xC020800D DTS_E_CAN Ce composant ne peut effectuer la modification de métadonnées


-1071611891 TMODIFYIN requise tant que le problème de validation n'est pas réglé.
VALID

0xC020800E DTS_E_CANT Impossible d'ajouter une entrée à la collection d'entrées.


-1071611890 ADDINPUT

0xC020800F DTS_E_CANT Impossible d'ajouter une sortie à la collection de sorties.


-1071611889 ADDOUTPU
T

0xC0208010 DTS_E_CAN Impossible de supprimer une entrée de la collection d'entrées.


-1071611888 TDELETEINP
UT

0xC0208011 DTS_E_CAN Impossible de supprimer une sortie de la collection de sorties.


-1071611887 TDELETEOU
TPUT

0xC0208014 DTS_E_CAN Impossible de modifier le type d'utilisation de la colonne.


-1071611884 TCHANGEU
SAGETYPE

0xC0208016 DTS_E_INVA %1 doit être en lecture/écriture pour posséder la propriété


-1071611882 LIDUSAGET personnalisée « %2 ». La colonne d'entrée ou de sortie possède la
YPEFORCUS propriété personnalisée spécifiée, mais elle n'est pas en lecture/
TOMPROPE écriture. Supprimez cette propriété, ou autorisez l'accès en lecture/
RTY écriture à la colonne.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208017 DTS_E_READ %1 est en lecture/écriture et doit posséder la propriété personnalisée


-1071611881 WRITECOLU « %2 ». Ajoutez la propriété, ou supprimez l'attribut de lecture/écriture
MNMISSIN de la colonne.
GREQUIRED
CUSTOMPR
OPERTY

0xC0208018 DTS_E_CAN Impossible de supprimer la colonne. Ce composant ne permet pas la


-1071611880 TDELETECO suppression de colonnes à partir de cette entrée ou de cette sortie.
LUMN

0xC0208019 DTS_E_CANT Ce composant ne permet pas l'ajout de colonnes à cette entrée ou


-1071611879 ADDCOLUM cette sortie.
N

0xC020801A DTS_E_CAN La connexion « %1 » est introuvable. Vérifiez que le gestionnaire de


-1071611878 NOTTFINDR connexions renferme une connexion de ce nom.
UNTIMECO
NNECTION
OBJECT

0xC020801B DTS_E_CAN Le gestionnaire de connexions en cours d'exécution avec l'ID « %1 »


-1071611877 NOTFINDRU est introuvable. Vérifiez que la collection de gestionnaires de
NTIMECON connexions possède un gestionnaire de connexions avec cet ID.
NECTIONM
ANAGER

0xC020801C DTS_E_CAN Code d'erreur SSIS


-1071611876 NOTACQUIR DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.
ECONNECTI Échec de l'appel de la méthode AcquireConnection vers le
ONFROMC gestionnaire de connexions « %1 ». Code d'erreur : 0x%2!8.8X!. Des
ONNECTIO messages d'erreur peuvent être envoyés au préalable avec des
NMANAGER informations indiquant la raison de l'échec de la méthode
AcquireConnection.

0xC020801D DTS_E_ACQ La connexion acquise à partir du gestionnaire de connexions « %1 »


-1071611875 UIREDCON n'est pas valide.
NECTIONISI
NVALID

0xC020801E DTS_E_INCO Le type du gestionnaire de connexions « %1 » est incorrect. Le type


-1071611874 RRECTCON requis est « %2 ». Le type disponible pour le composant est « %3 ».
NECTIONM
ANAGERTYP
E
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020801F DTS_E_CAN Impossible d'acquérir une connexion gérée depuis le gestionnaire de


-1071611873 NOTACQUIR connexions en cours d'exécution.
EMANAGED
CONNECTI
ONFROMC
ONNECTIO
NMANAGER

0xC0208020 DTS_E_CAN Impossible de créer une entrée pour initialiser la collection d'entrées.
-1071611872 TINITINPUT

0xC0208021 DTS_E_CAN Impossible de créer une sortie pour initialiser la collection de sorties.
-1071611871 TINITOUTPU
T

0xC0208023 DTS_E_EXTR Échec de l'écriture dans le fichier « %1 ». Code d'erreur : 0x%2!8.8X!.


-1071611869 ACTORCAN
TWRITE

0xC0208024 DTS_E_INCO Le gestionnaire de connexions « %1 » a retourné un objet de type


-1071611868 RRECTCON incorrect depuis la méthode AcquireConnection.
NECTIONOB
JECTTYPE

0xC0208025 DTS_E_INPU La propriété « %3 » est requise sur la colonne d'entrée « %1 » (%2!d!),


-1071611867 TCOLPROPE mais elle est introuvable. La propriété manquante doit être ajoutée.
RTYNOTFO
UND

0xC0208026 DTS_E_EXTR « %1 » est indiqué en lecture seule mais n'est référencé par aucune
-1071611866 ACTORUNR autre colonne. Les colonnes non référencées ne sont pas autorisées.
EFERENCED

0xC0208027 DTS_E_EXTR « %1 » fait référence à l'ID de colonne %2!d!, or cette colonne est
-1071611865 ACTORREFE introuvable sur l'entrée. Une référence pointe vers une colonne
RENCEDCOL inexistante.
UMNNOTF
OUND

0xC0208028 DTS_E_EXTR « %1 » fait référence à « %2 », et cette colonne n'est pas de type BLOB.
-1071611864 ACTORDATA
COLUMNN
OTBLOB
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208029 DTS_E_INSE « %1 » fait référence à l'ID de colonne de sortie %2!d!, or cette


-1071611863 RTERREFERE colonne est introuvable sur la sortie.
NCEDCOLU
MNNOTFO
UND

0xC020802A DTS_E_INSE Échec de la lecture à partir du fichier « %1 ». Code d'erreur :


-1071611862 RTERCANTR 0x%2!8.8X!.
EAD

0xC020802B DTS_E_TXSC Il doit exister au moins une colonne de type Fixe, Variant ou Historique
-1071611861 D_NOTYPED sur l'entrée d'une transformation de dimension à variation lente.
COLUMNSA Vérifiez qu'une colonne au minimum comporte un attribut de type
TINPUT FixedAttribute, ChangingAttribute ou HistoricalAttribute.

0xC020802C DTS_E_TXSC La propriété ColumnType de « %1 » n'est pas valide. La valeur actuelle


-1071611860 D_INVALIDI est en dehors de la plage de valeurs acceptables.
NPUTCOLU
MNTYPE

0xC020802D DTS_E_TXSC Impossible de mapper la colonne d'entrée « %1 » à la colonne externe


-1071611859 D_CANNOT « %2 », car elles possèdent des types de données différents. La
MAPDIFFER transformation de dimension à variation lente ne permet pas le
ENTTYPES mappage entre des colonnes de types différents, sauf pour DT_STR et
DT_WSTR.

0xC020802E DTS_E_NTEX Le type de données de « %1 » est DT_NTEXT. Ce dernier n'est pas pris
-1071611858 TDATATYPE en charge par les fichiers ANSI. Utilisez DT_TEXT à la place et
NOTSUPPO convertissez les données au type DT_NTEXT à l'aide du composant de
RTEDWITHA conversion de données.
NSIFILES

0xC020802F DTS_E_TEXT Le type de données de « %1 » est DT_TEXT. Ce dernier n'est pas pris
-1071611857 DATATYPEN en charge par les fichiers Unicode. Utilisez DT_NTEXT à la place et
OTSUPPORT convertissez les données au type DT_TEXT à l'aide du composant de
EDWITHUNI conversion de données.
CODEFILES

0xC0208030 DTS_E_IMA Le type de données de « %1 » est DT_IMAGE. Ce dernier n'est pas pris
-1071611856 GEDATATYP en charge. Utilisez les types DT_TEXT ou DT_NTEXT à la place et
ENOTSUPP convertissez les données depuis ou vers le type DT_IMAGE à l'aide du
ORTED composant de conversion de données.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208031 DTS_E_FLAT Le format « %1 » n'est pas pris en charge par le gestionnaire de


-1071611855 FILEFORMA connexions de fichiers plats. Les formats pris en charge sont Delimited,
TNOTSUPP FixedWidth, RaggedRight et Mixed.
ORTED

0xC0208032 DTS_E_EXTR « %1 » doit contenir un nom de fichier, mais il n'est pas de type String.
-1071611854 ACTORFILE
NAMECOLU
MNNOTSTR
ING

0xC0208033 DTS_E_EXTR Erreur causée par des paramètres de propriété conflictuels. « %1 »


-1071611853 ACTORCAN possède les deux propriétés AllowAppend et ForceTruncate avec la
TAPPENDTR valeur TRUE. Ces deux propriétés ne peuvent posséder cette valeur
UNCATE TRUE. Attribuez la valeur FALSE à l'une des deux propriétés.

0xC0208034 DTS_E_EXTR %1 fait référence à l'ID de colonne %2!d!, mais cette colonne est déjà
-1071611852 ACTORCOL référencée par %3. Supprimez l'une des deux références à cette
UMNALREA colonne.
DYREFEREN
CED

0xC0208035 DTS_E_CON Un gestionnaire de connexions n'a pas été affecté à %1.


-1071611851 NECTIONM
ANANGERN
OTASSIGNE
D

0xC0208036 DTS_E_INSE %1 fait référence à la colonne de sortie avec l'ID %2!d!, mais cette
-1071611850 RTERCOLU colonne est déjà référencée par %3.
MNALREAD
YREFERENC
ED

0xC0208037 DTS_E_INSE « %1 » n'est référencé par aucune colonne d'entrée. Chaque colonne
-1071611849 RTERCOLU de sortie doit être référencée par une colonne d'entrée exactement.
MNNOTREF
ERENCED

0xC0208038 DTS_E_INSE « %1 » fait référence à « %2 », mais le type de cette colonne est


-1071611848 RTERDATAC incorrect. Ce type doit être DT_TEXT, DT_NTEXT ou DT_IMAGE. Une
OLUMNNO référence pointe vers une colonne qui doit être un objet BLOB.
TBLOB
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208039 DTS_E_INSE « %1 » doit contenir un nom de fichier, mais il n'est pas de type String.
-1071611847 RTERFILENA
MECOLUM
NNOTSTRIN
G

0xC020803A DTS_E_INSE La propriété ExpectBOM de « %1 » possède la valeur TRUE pour %2,


-1071611846 RTEREXPECT mais la colonne n'est pas de type NT_NTEXT. La propriété ExpectBOM
BOMINVALI spécifie que la transformation d'importation de colonne attend un
DTYPE BOM (byte-order mark). Attribuez la valeur False à la propriété
ExpectBOM ou le type de données DT_NTEXT à la colonne de sortie.

0xC020803B DTS_E_INSE Les colonnes de sortie de données doivent être DT_TEXT, DT_NTEXT
-1071611845 RTERINVALI ou DT_IMAGE. La colonne de sortie de données peut uniquement être
DDATACOL définie sur le type BLOB.
UMNSETTY
PE

0xC020803C DTS_E_TXSC Si la propriété FailOnFixedAttributeChange possède la valeur TRUE, la


-1071611844 D_FIXEDATT transformation échouera lors de la détection d'une modification
RIBUTECHA d'attribut fixe. Pour envoyer des lignes vers la sortie d'attribut fixe,
NGE attribuez la valeur FALSE à la propriété FailOnFixedAttributeChange.

0xC020803D DTS_E_TXSC Échec de la transformation de recherche pour l'extraction des lignes.


-1071611843 D_LOOKUPF La transformation échoue lorsque la valeur TRUE est attribuée à
AILURE FailOnLookupFailure et qu'aucune ligne n'est extraite.

0xC020803E DTS_E_TXSC Il doit exister au moins une colonne de type Clé sur l'entrée d'une
-1071611842 D_INVALID transformation de dimension à variation lente. Définissez au moins
NUMBERSO une colonne de type Clé.
FPARAMETE
RS

0xC020803F DTS_E_TXSC Impossible de trouver une colonne externe nommée « %1 ».


-1071611841 D_CANNOT
FINDEXTER
NALCOLUM
N

0xC0208040 DTS_E_TXSC La colonne d'indicateur inférée « %1 » doit être de type DT_BOOL.


-1071611840 D_INFFERED
INDICATOR
NOTBOOL
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208107 DTS_E_ERRO La valeur de disposition de la ligne d'erreur de %1 doit être


-1071611641 RROWDISP RD_NotUsed.
MUSTBENO
TUSED

0xC0208108 DTS_E_TRU La valeur de disposition de la ligne de troncation de %1 doit être


-1071611640 NCROWDIS RD_NotUsed.
PMUSTBEN
OTUSED

0xC0208201 DTS_E_TXAG Impossible de trouver la colonne d'entrée portant l'ID de lignage


-1071611391 G_INPUTNO %1!d! requise par la colonne de sortie portant l'ID %2!d!.
TFOUNDFO
ROUTPUT

0xC0208202 DTS_E_TXAG Type de données de sortie non valide pour le type d'agrégation
-1071611390 G_INVALID spécifié sur l'ID de la colonne de sortie %1!d!.
OUTPUTDAT
ATYPEFORA
GGREGATE

0xC0208203 DTS_E_TXAG Le type de données d'entrée utilisé %1 n'est pas valide pour
-1071611389 G_INVALIDI l'agrégation spécifiée sur %2.
NPUTDATAT
YPEFORAGG
REGATE

0xC0208204 DTS_E_TXAG Les types de données portant l'ID de lignage de colonne d'entrée
-1071611388 G_INPUTOU %1!d! et l'ID de colonne de sortie %2!d! ne correspondent pas.
TPUTDATAT
YPEMISMAT
CH

0xC0208205 DTS_E_UNA Impossible d'obtenir le descripteur du tampon d'entrée pour l'ID


-1071611387 BLETOGETI d'entrée %1!d!.
NPUTBUFFE
RHANDLE

0xC0208206 DTS_E_UNA Impossible d'obtenir le descripteur du tampon de sortie pour l'ID de


-1071611386 BLETOGETO sortie %1!d!.
UTPUTBUFF
ERHANDLE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208207 DTS_E_UNA Impossible de trouver la colonne portant l'ID de lignage %1!d! dans le
-1071611385 BLETOFIND tampon de sortie.
COLUMNHA
NDLEINOUT
PUTBUFFER

0xC0208208 DTS_E_UNA Impossible de trouver la colonne portant l'ID de lignage %1!d! dans le
-1071611384 BLETOFIND tampon d'entrée.
COLUMNHA
NDLEININP
UTBUFFER

0xC0208209 DTS_E_CAN Le nombre de colonnes de sortie pour %1 ne peut être égal à zéro.
-1071611383 NOTHAVEZE
ROOUTPUT
COLUMNS

0xC020820A DTS_E_CON Le nombre de colonnes dans le gestionnaire de connexions de fichiers


-1071611382 NECTIONM plats doit être identique au nombre de colonnes dans l'adaptateur de
ANAGERCO fichier plat. Le nombre de colonnes du gestionnaire de connexions de
LUMNCOU fichiers plats est de %1!d!, tandis que celui de l'adaptateur de fichier
NTMISMAT plat est de %2!d!.
CH

0xC020820B DTS_E_MIS La colonne « %1 » à l'index %2!d! dans le gestionnaire de connexions


-1071611381 MATCHCON de fichiers plats est introuvable à l'index %3!d! dans la collection de
NECTIONM colonnes de l'adaptateur de fichier plat.
ANAGERCO
LUMN

0xC020820D DTS_E_EXTE La colonne de métadonnées externe portant l'ID %1!d! a déjà été
-1071611379 RNALMETA mappée à %2.
DATACOLU
MNISALREA
DYMAPPED

0xC020820E DTS_E_TXAG La transformation a rencontré une colonne clé comportant plus de


-1071611378 G_STRING_T %1!u! caractères.
OO_LONG

0xC020820F DTS_E_DERI La transformation a rencontré une valeur de résultat supérieure à


-1071611377 VEDRESULT_ %1!u! octets.
TOO_LONG
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208210 DTS_E_TXAG Impossible d'allouer de la mémoire.


-1071611376 G_MEMALL
OCERROUT
PUTDESCRI
PTORS

0xC0208211 DTS_E_TXAG Impossible d'allouer de la mémoire.


-1071611375 G_MEMALL
OCERRWOR
KSPACEDES
CRIPTORS

0xC0208212 DTS_E_TXAG Impossible d'allouer de la mémoire.


-1071611374 G_MEMALL
OCERRSORT
ORDERDES
CRIPTORS

0xC0208213 DTS_E_TXAG Impossible d'allouer de la mémoire.


-1071611373 G_MEMALL
OCERRNUM
ERICDESCRI
PTORS

0xC0208214 DTS_E_TXAG Impossible d'allouer de la mémoire.


-1071611372 G_MEMALL
OCERRCOU
NTDISTINCT
DESCRIPTO
R

0xC0208215 DTS_E_TXAG Impossible d'allouer de la mémoire.


-1071611371 G_MEMALL
OCERRWOR
KSPACESOR
TORDERDES
CRIPTORS

0xC0208216 DTS_E_TXAG Impossible d'allouer de la mémoire.


-1071611370 G_MEMALL
OCERRWOR
KSPACENU
MERICDESC
RIPTORS
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208217 DTS_E_TXAG Impossible d'allouer de la mémoire.


-1071611369 G_MEMALL
OCERRWOR
KSPACEBUF
FCOLS

0xC0208218 DTS_E_UNR La colonne d'entrée « %1 » n'est pas référencée.


-1071611368 EFERENCEDI
NPUTCOLU
MN

0xC0208219 DTS_E_CAN La transformation de tri n'a pas pu créer un pool de threads avec
-1071611367 TBUILDTHR %1!d! threads. Mémoire disponible insuffisante.
EADPOOL

0xC020821A DTS_E_QUE La transformation de tri n'a pas pu mettre un élément de travail en file
-1071611366 UEWORKITE d'attente. Mémoire disponible insuffisante.
MFAILED

0xC020821B DTS_E_SORT Arrêt d'un thread de travail dans la transformation de tri. Code
-1071611365 THREADSTO d'erreur : 0x%1!8.8X!. Une erreur grave s'est produite lors du tri d'un
PPED tampon.

0xC020821E DTS_E_SORT La valeur de MaxThreads est de %1!ld!, alors qu'elle doit se situer
-1071611362 BADTHREA entre 1 et %2!ld! inclus, ou être égale à -1 pour correspondre par
DCOUNT défaut au nombre d'UC.

0xC020821F DTS_E_DTPX Chargement impossible à partir de XML.


-1071611361 MLLOADFAI
LURE

0xC0208220 DTS_E_DTPX Enregistrement impossible dans XML.


-1071611360 MLSAVEFAIL
URE

0xC0208221 DTS_E_DTPX Impossible de convertir la valeur « %1 » en entier.


-1071611359 MLINT32CO
NVERTERR

0xC0208222 DTS_E_DTPX Impossible de convertir la valeur « %1 » en valeur booléenne.


-1071611358 MLBOOLCO
NVERTERR

0xC0208223 DTS_E_DTPX Erreur de chargement rencontrée près de l'objet portant l'ID %1!d!.
-1071611357 MLPARSEER
RORNEARID
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208226 DTS_E_DTPX La valeur %1 n'est pas valide pour l'attribut %2.


-1071611354 MLPROPERT
YTYPEERR

0xC0208228 DTS_E_DTPX La valeur %1 n'est pas valide pour l'attribut %2.


-1071611352 MLSETUSAG
ETYPEERR

0xC0208229 DTS_E_DTPX La valeur %1 n'est pas valide pour l'attribut %2.


-1071611351 MLDATATYP
EERR

0xC020822A DTS_E_UNM %1 n'est pas mappé à une colonne de sortie.


-1071611350 APPEDINPU
TCOLUMN

0xC020822B DTS_E_INPU %1 possède un mappage non valide. Une colonne de sortie avec l'ID
-1071611349 TCOLUMNB %2!ld! n'existe pas sur ce composant.
ADMAP

0xC020822D DTS_E_MUL %1 est mappé à une colonne de sortie qui possède déjà un mappage
-1071611347 TIPLYMAPPE sur cette entrée.
DOUTCOL

0xC020822E DTS_E_TXAG Impossible de convertir la colonne d'entrée portant l'ID de lignage


-1071611346 G_STRINGP %1!ld! au type DT_WSTR, en raison de l'erreur 0x%2!8.8X!.
ROMOTION
FAILED

0xC0208230 DTS_E_DTPX L'objet référencé avec l'ID %1!d! est introuvable dans le package.
-1071611344 MLIDLOOK
UPERR

0xC0208231 DTS_E_DTPX Impossible de lire une propriété de persistance requise pour le module
-1071611343 MLINVALID pipelinexml. Cette propriété n'a pas été fournie par le pipeline.
XMLPERSIST
PROPERTY

0xC0208232 DTS_E_DTPX La valeur %1 n'est pas valide pour l'attribut %2.


-1071611342 MLPROPERT
YSTATEERR

0xC0208233 DTS_E_CAN Impossible d'extraire la propriété personnalisée « %1 ».


-1071611341 TGETCUSTO
MPROPERT
Y
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208234 DTS_E_UNA Une colonne d'entrée avec l'ID de lignage %1!d!, référencée dans la
-1071611340 BLETOLOCA propriété personnalisée ParameterMap avec le paramètre occupant la
TEINPUTCO position numéro %2!d!, est introuvable dans la collection des colonnes
LUMNID d'entrée.

0xC0208235 DTS_E_TXLO Colonne de référence « %1 » introuvable.


-1071611339 OKUP_UNA
BLETOLOCA
TEREFCOLU
MN

0xC0208236 DTS_E_TXLO %1 et la colonne de référence nommée « %2 » possèdent des types de


-1071611338 OKUP_INCO données incompatibles.
MPATIBLED
ATATYPES

0xC0208237 DTS_E_TXLO L'instruction SQL paramétrable produit des métadonnées qui ne


-1071611337 OKUP_PARA correspondent pas à l'instruction SQL principale.
MMETADAT
AMISMATC
H

0xC0208238 DTS_E_TXLO L'instruction SQL paramétrable contient un nombre incorrect de


-1071611336 OKUP_INCO paramètres. %1!d! étaient attendus, mais %2!d! ont été trouvés.
RRECTNUM
OFPARAME
TERS

0xC0208239 DTS_E_TXLO %1 possède un type de données qui ne peut pas être joint.
-1071611335 OKUP_INVA
LIDJOINTYP
E

0xC020823A DTS_E_TXLO %1 possède un type de données qui ne peut pas être copié.
-1071611334 OKUP_INVA
LIDCOPYTY
PE

0xC020823B DTS_E_INSE Le %1 possède un type de données non pris en charge. Le type doit
-1071611333 RTERINVALI être DT_STR ou DT_WSTR.
DCOLUMN
DATATYPE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020823C DTS_E_EXTR Le %1 possède un type de données non pris en charge. Le type doit
-1071611332 ACTORINVA être DT_STR, DT_WSTR, DT_TEXT, DT_NTEXT ou DT_IMAGE.
LIDCOLUM
NDATATYPE

0xC020823D DTS_E_TXCH Le %1 possède un type de données non pris en charge. Le type doit
-1071611331 ARMAPINV être DT_STR, DT_WSTR, DT_TEXT ou DT_NTEXT.
ALIDCOLUM
NDATATYPE

0xC020823E DTS_E_SORT La transformation de tri ne peut pas créer un événement pour


-1071611330 CANTCREAT communiquer avec ses threads de travail. Le nombre de descripteurs
EEVENT système disponibles pour la transformation de tri est insuffisant.

0xC020823F DTS_E_SORT La transformation de tri ne peut pas créer un thread de travail. La


-1071611329 CANTCREAT mémoire disponible pour la transformation de tri est insuffisante.
ETHREAD

0xC0208240 DTS_E_SORT Échec de la transformation de tri lors de la comparaison de la ligne


-1071611328 CANTCOMP %1!d! dans l'ID de tampon %2!d! à la ligne %3!d! dans l'ID de tampon
ARE %4!d!.

0xC0208242 DTS_E_TXLO Les métadonnées de référence de la transformation de recherche


-1071611326 OKUP_TOOF contiennent un nombre de colonnes trop faible. Vérifiez la propriété
EWREFEREN SQLCommand. L'instruction SELECT doit retourner au moins une
CECOLUMN colonne.
S

0xC0208243 DTS_E_TXLO Impossible d'allouer de la mémoire à un tableau de structures


-1071611325 OKUP_MALL ColumnInfo.
OCERR_REF
ERENCECOL
UMNINFO

0xC0208244 DTS_E_TXLO Impossible d'allouer de la mémoire à un tableau de structures


-1071611324 OKUP_MALL ColumnPair.
OCERR_REF
ERENCECOL
UMNPAIR

0xC0208245 DTS_E_TXLO Impossible d'allouer de la mémoire à un tableau de structures


-1071611323 OKUP_MALL BUFFCOL pour la création d'un espace de travail principal.
OCERR_BUF
FCOL
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208246 DTS_E_TXLO Impossible de créer un tampon d'espace de travail principal.


-1071611322 OKUP_MAI
NWORKSPA
CE_CREATEE
RR

0xC0208247 DTS_E_TXLO Impossible d'allouer de la mémoire à la table de hachage.


-1071611321 OKUP_HAS
HTABLE_MA
LLOCERR

0xC0208248 DTS_E_TXLO Impossible d'allouer de la mémoire pour créer un segment de nœuds


-1071611320 OKUP_HAS de hachage.
HNODEHEA
P_CREATEER
R

0xC0208249 DTS_E_TXLO Impossible d'allouer de la mémoire pour un segment de nœud de


-1071611319 OKUP_HAS hachage.
HNODEHEA
P_MALLOCE
RR

0xC020824A DTS_E_TXLO Impossible de créer un segment pour les derniers nœuds récemment
-1071611318 OKUP_LRUN utilisés. Une condition de mémoire insuffisante s'est produite.
ODEHEAP_C
REATEERR

0xC020824B DTS_E_TXLO Impossible d'allouer de la mémoire au segment du dernier nœud


-1071611317 OKUP_LRUN récemment utilisé. Une condition de mémoire insuffisante s'est
ODEHEAP_ produite.
MALLOCER
R

0xC020824C DTS_E_TXLO Une erreur OLE DB s'est produite lors du chargement des
-1071611316 OKUP_OLED métadonnées de colonne. Vérifiez les propriétés SQLCommand et
BERR_LOAD SqlCommandParam.
COLUMNM
ETADATA

0xC020824D DTS_E_TXLO Une erreur OLE DB s'est produite lors de l'extraction d'un ensemble de
-1071611315 OKUP_OLED lignes. Vérifiez les propriétés SQLCommand et SqlCommandParam.
BERR_GETIR
OWSET
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020824E DTS_E_TXLO Une erreur OLE DB s'est produite lors du remplissage du cache interne.
-1071611314 OKUP_OLED Vérifiez les propriétés SQLCommand et SqlCommandParam.
BERR_FILLB
UFFER

0xC020824F DTS_E_TXLO Une erreur OLE DB s'est produite lors de la liaison de paramètres.
-1071611313 OKUP_OLED Vérifiez les propriétés SQLCommand et SqlCommandParam.
BERR_BINDP
ARAMETERS

0xC0208250 DTS_E_TXLO Une erreur OLE DB s'est produite lors de la création de liaisons.
-1071611312 OKUP_OLED Vérifiez les propriétés SQLCommand et SqlCommandParam.
BERR_CREA
TEBINDING

0xC0208251 DTS_E_TXLO Une casse non valide a été rencontrée dans une instruction switch au
-1071611311 OKUP_INVA cours de l'exécution.
LID_CASE

0xC0208252 DTS_E_TXLO Impossible d'allouer de la mémoire à une nouvelle ligne pour le


-1071611310 OKUP_MAI tampon d'espace de travail principal. Une condition de mémoire
NWORKSPA insuffisante s'est produite.
CE_MALLOC
ERR

0xC0208253 DTS_E_TXLO Une erreur OLE DB s'est produite lors de l'extraction de l'ensemble de
-1071611309 OKUP_OLED lignes paramétrables. Vérifiez les propriétés SQLCommand et
BERR_GETP SqlCommandParam.
ARAMIROW
SET

0xC0208254 DTS_E_TXLO Une erreur OLE DB s'est produite lors de l'extraction de la ligne
-1071611308 OKUP_OLED paramétrable. Vérifiez les propriétés SQLCommand et
BERR_GETP SqlCommandParam.
ARAMSINGL
EROW

0xC0208255 DTS_E_TXAG Impossible d'allouer de la mémoire à une nouvelle ligne pour le


-1071611307 G_MAINWO tampon d'espace de travail principal. Une condition de mémoire
RKSPACE_M insuffisante s'est produite.
ALLOCERR
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208256 DTS_E_TXAG Impossible de créer un tampon d'espace de travail principal.


-1071611306 G_MAINWO
RKSPACE_C
REATEERR

0xC0208257 DTS_E_TXAG Impossible d'allouer de la mémoire pour la table de hachage.


-1071611305 G_HASHTAB
LE_MALLOC
ERR

0xC0208258 DTS_E_TXAG Impossible d'allouer de la mémoire pour créer un segment de nœuds


-1071611304 G_HASHNO de hachage.
DEHEAP_CR
EATEERR

0xC0208259 DTS_E_TXAG Impossible d'allouer de la mémoire pour le segment de nœud de


-1071611303 G_HASHNO hachage.
DEHEAP_M
ALLOCERR

0xC020825A DTS_E_TXAG Impossible d'allouer de la mémoire pour créer un segment de nœuds


-1071611302 G_CDNODE CountDistinct.
HEAP_CREA
TEERR

0xC020825B DTS_E_TXAG Impossible d'allouer de la mémoire pour le segment de nœud


-1071611301 G_CDNODE CountDistinct.
HEAP_MALL
OCERR

0xC020825C DTS_E_TXAG Impossible d'allouer de la mémoire pour créer un segment pour les
-1071611300 G_CDCHAIN chaînes CountDistinct.
HEAP_CREA
TEERR

0xC020825D DTS_E_TXAG Impossible d'allouer de la mémoire pour une table de hachage


-1071611299 G_CDHASHT CountDistinct.
ABLE_CREAT
EERR

0xC020825E DTS_E_TXAG Impossible d'allouer de la mémoire pour une nouvelle ligne du


-1071611298 G_CDWORK tampon d'espace de travail CountDistinct.
SPACE_MAL
LOCERR
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020825F DTS_E_TXAG Impossible de créer un tampon d'espace de travail CountDistinct.


-1071611297 G_CDWORK
SPACE_CREA
TEERR

0xC0208260 DTS_E_TXAG Impossible d'allouer de la mémoire pour un tableau de réduction


-1071611296 G_CDCOLLA CountDistinct.
SSEARRAY_
MALLOCER
R

0xC0208261 DTS_E_TXAG Impossible d'allouer de la mémoire pour les chaînes CountDistinct.


-1071611295 G_CDCHAIN
HEAP_MALL
OCERR

0xC0208262 DTS_E_TXCO Les colonnes avec les ID de lignage %1!d! et %2!d! comportent des
-1071611294 PYMAP_MIS métadonnées non concordantes. La colonne d’entrée mappée à une
MATCHED_C colonne de sortie pour la fonction de copie/mappage ne possède pas
OLUMN_ME les mêmes métadonnées (type de données, précision, échelle,
TADATA longueur ou page de codes).

0xC0208263 DTS_E_TXCO La colonne de sortie portant l'ID de lignage « %1!d! » est


-1071611293 PYMAP_INC incorrectement mappée à une colonne d'entrée. La propriété
ORRECT_OU CopyColumnId de la colonne de sortie n'est pas correcte.
TPUT_COLU
MN_MAPPI
NG

0xC0208265 DTS_E_CAN Échec de l'extraction de données de type Long pour la colonne « %1 ».


-1071611291 TGETBLOBD
ATA

0xC0208266 DTS_E_CANT Des données de type Long ont été récupérées pour une colonne, mais
-1071611290 ADDBLOBD elles ne peuvent pas être ajoutées au tampon de la tâche de flux de
ATA données.

0xC0208267 DTS_E_MCA La sortie « %1 » (%2!d!) possède des colonnes de sortie, mais les
-1071611289 STOUTPUTC sorties de multidiffusion ne déclarent pas de colonnes. Ce package est
OLUMNS endommagé.

0xC0208273 DTS_E_UNA Impossible de charger l'ID de ressource localisée %1!d!. Vérifiez que le
-1071611277 BLETOGETL fichier RLL est présent.
OCALIZEDR
ESOURCE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208274 DTS_E_DTPX Impossible d'obtenir l'interface d'événements. Une interface


-1071611276 MLEVENTSC d'événements non valide a été transmise au module de flux de
ACHEERR données pour la persistance XML.

0xC0208275 DTS_E_DTPX Une erreur s'est produite au cours du paramétrage d'un objet de
-1071611275 MLPATHLOA chemin d'accès lors du chargement XML.
DERR

0xC0208276 DTS_E_DTPX Erreur de paramétrage de l'objet d'entrée au cours du chargement


-1071611274 MLINPUTLO XML.
ADERR

0xC0208277 DTS_E_DTPX Erreur de paramétrage de l'objet de sortie au cours du chargement


-1071611273 MLOUTPUT XML.
LOADERR

0xC0208278 DTS_E_DTPX Erreur de paramétrage de l'objet de colonne d'entrée au cours du


-1071611272 MLINPUTCO chargement XML.
LUMNLOAD
ERR

0xC0208279 DTS_E_DTPX Erreur de paramétrage de l'objet de colonne de sortie au cours du


-1071611271 MLOUTPUT chargement XML.
COLUMNLO
ADERR

0xC0208280 DTS_E_DTPX Erreur de paramétrage de l'objet de propriété au cours du chargement


-1071611264 MLPROPERT XML.
YLOADERR

0xC0208281 DTS_E_DTPX Erreur de paramétrage de l'objet de connexion au cours du


-1071611263 MLCONNEC chargement XML.
TIONLOADE
RR

0xC0208282 DTS_E_FG_ Des colonnes spécifiques de transformation spéciale sont manquantes,


-1071611262 MISSING_O ou leurs types sont incorrects.
UTPUT_COL
UMNS

0xC0208283 DTS_E_FG_P Échec de la création des tables et accesseurs requis par la


-1071611261 REPARE_TAB transformation de regroupement approximatif.
LES_AND_A
CCESSORS
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208284 DTS_E_FG_C La transformation de regroupement approximatif n'a pas réussi à


-1071611260 OPY_INPUT copier l'entrée.

0xC0208285 DTS_E_FG_G La transformation de regroupement approximatif n'a pas réussi à


-1071611259 ENERATE_G générer les groupes.
ROUPS

0xC0208286 DTS_E_FG_L Une erreur inattendue s'est produite dans le regroupement


-1071611258 EADING_TR approximatif lors de l'application des paramètres de propriété « %1 ».
AILING

0xC0208287 DTS_E_FG_PI La transformation de regroupement approximatif n'a pas pu choisir


-1071611257 CK_CANONI une ligne canonique de données à utiliser dans la standardisation de
CAL données.

0xC0208288 DTS_E_FG_N Le regroupement probable ne prend pas en charge les colonnes


-1071611256 OBLOBS d'entrée de type IMAGE, TEXT ou NTEXT.

0xC0208289 DTS_E_FG_F Une correspondance approximative est spécifiée sur la colonne « %1 »


-1071611255 UZZY_MATC (%2!d!) dont le type de données ne correspond pas à DT_STR ou à
H_ON_NON DT_WSTR.
STRING

0xC020828A DTS_E_FUZZ Une erreur de pipeline de transformation de regroupement


-1071611254 YGROUPING approximatif s'est produite et a retourné le code d'erreur 0x%1!8.8X! :
INTERNALPI « %2 ».
PELINEERR
OR

0xC020828B DTS_E_COD La page de codes %1!d! spécifiée sur la colonne « %2 » (%3!d!) n'est
-1071611253 E_PAGE_NO pas prise en charge. Vous devez d'abord convertir cette colonne en
T_SUPPORT DT_WSTR. Pour cela, insérez une transformation de conversion de
ED données avant celle-ci.

0xC0208294 DTS_E_SETE Échec rencontré lors du paramétrage de la fin d'indicateur de données


-1071611244 ODFAILED pour le tampon gérant la sortie « %1 » (%2!d!).

0xC0208296 DTS_E_CAN Impossible de cloner le tampon d'entrée en raison d'une condition de


-1071611242 TCLONE mémoire insuffisante ou d'une erreur interne.

0xC02082F9 DTS_E_TXCH La colonne « %1 » exige que les caractères Katakana et Hiragana


-1071611143 ARMAP_CA soient produits en même temps.
NTKATAKAN
AHIRAGAN
A
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02082FA DTS_E_TXCH La colonne « %1 » nécessite que les caractères Chinois simplifié et


-1071611142 ARMAP_CA Chinois traditionnel soient produits en même temps.
NTSIMPLEC
OMPLEX

0xC02082FB DTS_E_TXCH La colonne « %1 » nécessite que les opérations créent des caractères à
-1071611141 ARMAP_CA demi-chasse et à pleine chasse.
NTFULLHAL
F

0xC02082FC DTS_E_TXCH La colonne « %1 » associe les opérations sur les caractères japonais
-1071611140 ARMAP_CA aux opérations pour les caractères chinois.
NTCHINAJA
PAN

0xC02082FD DTS_E_TXCH La colonne « %1 » associe les opérations sur les caractères chinois aux
-1071611139 ARMAP_CA opérations en majuscules et en minuscules.
NTCASECHI
NESE

0xC02082FE DTS_E_TXCH La colonne « %1 » associe les opérations sur des caractères japonais
-1071611138 ARMAP_CA aux opérations en caractères majuscules et en minuscules.
NTCASEJAP
ANESE

0xC02082FF DTS_E_TXCH La colonne « %1 » mappe la colonne aux caractères majuscules et


-1071611137 ARMAP_CA minuscules.
NTBOTHCA
SE

0xC0208300 DTS_E_TXCH La colonne « %1 » associe les indicateurs autres que les majuscules et
-1071611136 ARMAP_CA les minuscules à l'opération de casse linguistique.
NTLINGUIST
IC

0xC0208301 DTS_E_TXCH Le type de données de la colonne « %1 » ne peut pas être mappé


-1071611135 ARMAP_INV comme spécifié.
ALIDMAPFL
AGANDDAT
ATYPE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208302 DTS_E_TXFU La version (%1) de l'index de correspondance déjà existant « %2 »


-1071611134 ZZYLOOKUP n'est pas prise en charge. La version attendue est « %3 ». Cette erreur
_UNSUPPOR se produit si la version qui a persisté dans les métadonnées de l'index
TED_MATCH ne correspond pas à la version pour laquelle le code actuel a été
_INDEX_VER conçu. Résolvez cette erreur en recréant l'index à l'aide de la version
SION actuelle du code.

0xC0208303 DTS_E_TXFU La table « %1 » ne semble pas constituer un index valide de


-1071611133 ZZYLOOKUP correspondance avant génération. Cette erreur se produit lorsque
_INVALID_M l'enregistrement des métadonnées ne peut pas être chargé à partir de
ATCH_INDE l'index avant génération spécifié.
X

0xC0208304 DTS_E_TXFU Impossible de lire l'index de correspondance avant génération « %1 ».


-1071611132 ZZYLOOKUP Code d'erreur OLEDB : 0x%2!8.8X!.
_UNABLE_T
O_READ_M
ATCH_INDE
X

0xC0208305 DTS_E_TXFU Aucune colonne d'entrée ne comporte une jointure valide vers une
-1071611131 ZZYLOOKUP colonne de table de référence. Vérifiez qu'il existe au moins une
_NO_JOIN_C jointure définie à l'aide des propriétés de la colonne d'entrée
OLUMNS JoinToReferenceColumn et JoinType.

0xC0208306 DTS_E_TXFU L'index de correspondance déjà existant « %1 » n'a pas été créé à
-1071611130 ZZYLOOKUP l'origine avec des informations de correspondance approximative pour
_INDEX_DO la colonne « %2 ». Il doit être recréé pour inclure ces informations.
ES_NOT_CO Cette erreur se produit lorsque l'index a été créé avec une colonne qui
NTAIN_COL n'est pas une colonne de jonction approximative.
UMN

0xC0208307 DTS_E_TXFU Le nom « %1 » attribué à la propriété « %2 » n'est pas un nom


-1071611129 ZZYLOOKUP d'identificateur SQL valide. Cette erreur se produit si le nom de la
_IDENTIFIER propriété n'est pas conforme aux spécifications d'un nom
_PROPERTY d'identificateur SQL valide.

0xC0208309 DTS_E_TXFU La propriété de seuil MinSimilarity sur la transformation de recherche


-1071611127 ZZYLOOKUP floue doit être une valeur supérieure ou égale à 0.0, mais inférieure à
_MINSIMILA 1.0.
RITY_INVALI
D
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020830A DTS_E_TXFU La valeur « %1 » de la propriété « %2 » n'est pas valide.


-1071611126 ZZYLOOKUP
_INVALID_P
ROPERTY_V
ALUE

0xC020830B DTS_E_TXFU La recherche floue spécifiée entre la colonne d'entrée « %1 » et la


-1071611125 ZZYLOOKUP colonne de référence « %2 » n'est pas valide car les jonctions
_INCOMPAT approximatives sont uniquement prises en charge entre des colonnes
IBLE_FUZZY de chaîne, de types DT_STR et DT_WSTR.
_JOIN_DATA
TYPES

0xC020830C DTS_E_TXFU Les colonnes de recherche exacte « %1 » et « %2 » ne possèdent pas


-1071611124 ZZYLOOKUP de types de données égaux ou ne constituent pas des types de chaîne
_INCOMPAT comparables. Les jonctions exactes sont prises en charge entre les
IBLE_EXACT colonnes qui comportent des types de données égaux ou une
_JOIN_DATA combinaison DT_STR et DT_WSTR.
TYPES

0xC020830D DTS_E_TXFU Les colonnes de copie « %1 » et « %2 » ne possèdent pas de types de


-1071611123 ZZYLOOKUP données égaux ou ne constituent pas des types de chaîne convertibles
_INCOMPAT de façon triviale. Cela se produit car la copie depuis une référence vers
IBLE_COPYC une sortie entre des colonnes de types de données égaux ou une
OLUMN_DA combinaison DT_STR et DT_WSTR est prise en charge, mais les autres
TATYPES types ne le sont pas.

0xC020830E DTS_E_TXFU Les colonnes de relais « %1 » et « %2 » ne possèdent pas de types de


-1071611122 ZZYLOOKUP données égaux. Seules les colonnes comportant des types de données
_INCOMPAT égaux sont prises en charge en tant que colonnes de relais depuis
IBLE_PASST l'entrée vers la sortie.
HRUCOLUM
N_DATATYP
ES

0xC020830F DTS_E_TXFU Colonne de référence « %1 » introuvable.


-1071611121 ZZYLOOKUP
_UNABLETO
LOCATEREF
COLUMN
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208311 DTS_E_TXFU Une colonne de sortie doit exactement posséder une propriété
-1071611119 ZZYLOOKUP CopyColumn ou PassThruColumn spécifiée. Cette erreur se produit
_OUTPUT_C lorsque les propriétés CopyColumn ou PassThruColumn, ou les deux
OLUMN_M ensemble sont définies en tant que valeurs non vides.
UST_BE_PAS
STHRU_COL
UMN_OR_A
_COPY_COL
UMN

0xC0208312 DTS_E_TXFU L’ID de lignage source « %1!d! » spécifié pour la propriété « %2 » sur
-1071611118 ZZYLOOKUP la colonne de sortie « %3 » est introuvable dans la collection de
_PASSTHRU colonnes d’entrée. Cela se produit lorsque l'ID de la colonne d'entrée
_COLUMN_ spécifié sur une colonne de sortie en tant que colonne de relais est
NOT_FOUN introuvable dans l'ensemble des entrées.
D

0xC0208313 DTS_E_TXFU La colonne « %1 » dans l'index avant génération « %2 » est introuvable


-1071611117 ZZYLOOKUP dans la table/requête de référence. Cela se produit si le schéma/la
_INDEXED_C requête de la table de référence a été modifié depuis la création de
OLUMN_NO l'index de correspondance déjà existant.
T_FOUND_I
N_REF_TABL
E

0xC0208314 DTS_E_TXFU Le composant a rencontré un jeton qui comporte plus de


-1071611116 ZZYLOOKUP 2147483647 caractères.
_TOKEN_TO
O_LONG

0xC0208315 DTS_E_RAW Impossible d'ajouter le fichier de sortie. Le nom de la colonne « %1 »


-1071611115 METADATA correspond, mais la colonne du fichier possède le type %2 et la
MISMATCH colonne d'entrée le type %3. Les types de données des métadonnées
TYPE de la colonne ne correspondent pas.

0xC0208316 DTS_E_RAW Impossible d'ajouter le fichier de sortie. Le nom de la colonne « %1 »


-1071611114 METADATA correspond, mais la colonne du fichier possède une longueur
MISMATCH maximale de %2!d! alors que la colonne d'entrée possède la longueur
SIZE maximale %3!d!. La longueur des métadonnées de la colonne ne
correspond pas.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208317 DTS_E_RAW Impossible d'ajouter le fichier de sortie. Le nom de la colonne « %1 »


-1071611113 METADATA correspond, mais la colonne du fichier possède une page de codes
MISMATCH %2!d! alors que la colonne d'entrée possède la page de codes %3!d!.
CODEPAGE Les pages de codes des métadonnées de la colonne nommée ne
correspondent pas.

0xC0208318 DTS_E_RAW Impossible d'ajouter le fichier de sortie. Le nom de la colonne « %1 »


-1071611112 METADATA correspond, mais la colonne du fichier comporte la précision %2!d!
MISMATCH alors que la colonne d'entrée comporte la précision %3!d!. Les
PRECISION précisions des métadonnées de la colonne nommée ne correspondent
pas.

0xC0208319 DTS_E_RAW Impossible d'ajouter le fichier de sortie. Le nom de la colonne « %1 »


-1071611111 METADATA correspond, mais la colonne du fichier possède l'échelle %2!d! alors
MISMATCH que la colonne d'entrée possède l'échelle %3!d!. Les échelles des
SCALE métadonnées de la colonne nommée ne correspondent pas.

0xC020831A DTS_E_COU Impossible de déterminer le nom et la version du système SGBD


-1071611110 LD_NOT_DE (système de gestion de bases de données) sur « %1 ». Cela se produit
TERMINE_D si IDBProperties sur la connexion n'a pas retourné les informations
ATASOURCE requises pour vérifier le nom et la version du système SGBD.
_DBMSNAM
E

0xC020831B DTS_E_INCO Le type ou la version du système SGBD de « %1 » n'est pas pris en


-1071611109 RRECT_SQL_ charge. Une connexion a Microsoft SQL Server version 8.0 ou
SERVER_VER ultérieure est requise. Cela se produit si IDBProperties n'a pas retourné
SION une version correcte sur la connexion.

0xC020831D DTS_E_CAN %1 est une colonne de sortie d'erreur spéciale et ne peut pas être
-1071611107 TDELETEERR supprimée.
ORCOLUMN
S

0xC020831E DTS_E_UNE Le type de données spécifié pour la colonne « %1 » n'est pas le type
-1071611106 XPECTEDCO attendu « %2 ».
LUMNDATA
TYPE

0xC020831F DTS_E_INPU L'ID de lignage de colonne d'entrée « %1 » référencé par la propriété


-1071611105 TCOLUMNN « %2 » sur la colonne de sortie « %3 » est introuvable dans la
OTFOUND collection de colonnes d'entrée.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208320 DTS_E_TXGR La colonne d'entrée « %1 » référencée par la propriété « %2 » sur la


-1071611104 OUPDUPS_I colonne de sortie « %3 » doit avoir la propriété ToBeCleaned=True
NPUTCOLU ainsi qu'une valeur de propriété ExactFuzzy valide.
MNNOTJOI
NED

0xC0208322 DTS_E_TXFU La table de référence « %1 » ne possède pas d'index cluster sur une
-1071611102 ZZYLOOKUP colonne d'identité d'entier, ce qui est nécessaire si la propriété «
_REF_TABLE_ CopyRefTable » possède la valeur FALSE. Lorsque la valeur False est
MISSING_ID attribuée à la propriété CopyRefTable, la table de référence doit
ENTITY_IND posséder un index cluster sur une colonne d'identité d'entier.
EX

0xC0208323 DTS_E_TXFU La table de référence « %1 » contient une colonne d'identité de type


-1071611101 ZZYLOOKUP non entier qui n'est pas prise en charge. Utilisez une vue de la table
_REF_CONT sans la colonne « %2 ». Cette erreur se produit quand une copie de la
AINS_NON_ table de référence est effectuée, qu’une colonne d’identité d’entier est
INTEGER_ID ajoutée, alors qu’une seule colonne d’identité est autorisée par table.
ENT_COLU
MN

0xC0208324 DTS_E_TXFU MatchContribution et les informations de hiérarchie ne peuvent pas


-1071611100 ZZY_MATCH être spécifiées en même temps, car ces deux propriétés constituent
CONTRIBUT des facteurs de pondération pour le score.
ION_AND_H
IERARCHY_S
PECIFIED

0xC0208325 DTS_E_TXFU Les niveaux dans la hiérarchie doivent être des nombres uniques. Un
-1071611099 ZZY_HIERAR niveau valide dans des valeurs hiérarchiques correspond à des entiers
CHY_INCOR supérieurs ou égaux à 1. Plus le nombre est petit, plus la colonne est
RECT située au bas de la hiérarchie. La valeur par défaut 0 indique que la
colonne ne fait pas partie d'une hiérarchie. Les chevauchements et les
écarts ne sont pas autorisés.

0xC0208326 DTS_E_TXFU Aucune colonne vers un groupe probable n'est définie. Une colonne
-1071611098 ZZYGROUPI d'entrée doit au moins exister avec les propriétés de colonne
NG_INSUFFI ToBeCleaned=true et ExactFuzzy=2.
CIENT_FUZZ
Y_JOIN_COL
UMNS
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208329 DTS_E_TXFU La colonne portant l’ID « %1!d! » n’était pas valide pour une raison
-1071611095 ZZYLOOKUP indéterminée.
_COLUMNI
NVALID

0xC020832A DTS_E_TXFU Le type de données de la colonne « %1 » n'est pas pris en charge.


-1071611094 ZZYLOOKUP
_UNSUPPOR
TEDDATATY
PE

0xC020832C DTS_E_TXFU La longueur de la colonne de sortie « %1 » est inférieure à celle de sa


-1071611092 ZZYLOOKUP colonne source « %2 ».
_OUTPUTLE
NGTHMISM
ATCH

0xC020832F DTS_E_TER Une seule colonne d'entrée est autorisée.


-1071611089 MEXTRACTI
ON_INCORR
ECTEXACTN
UMBEROFI
NPUTCOLU
MNS

0xC0208330 DTS_E_TER Il doit y avoir exactement deux colonnes de sortie.


-1071611088 MEXTRACTI
ON_INCORR
ECTEXACTN
UMBEROFO
UTPUTCOLU
MNS

0xC0208331 DTS_E_TER La colonne d'entrée peut uniquement posséder les types de données
-1071611087 MEXTRACTI DT_WSTR ou DT_NTEXT.
ON_INCORR
ECTDATATY
PEOFINPUT
COLUMN
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208332 DTS_E_TER La colonne de sortie [%1!d!] peut uniquement posséder le type de


-1071611086 MEXTRACTI données « %2 ».
ON_INCORR
ECTDATATY
PEOFOUTP
UTCOLUMN

0xC0208333 DTS_E_TER La colonne de référence peut uniquement posséder DT_STR ou


-1071611085 MEXTRACTI DT_WSTR comme type de données.
ON_INCORR
ECTDATATY
PEOFREFER
ENCECOLU
MN

0xC0208334 DTS_E_TER Une erreur s'est produite lors de la recherche de la colonne de


-1071611084 MEXTRACTI référence « %1 ».
ON_UNABL
ETOLOCATE
REFCOLUM
N

0xC0208335 DTS_E_TER Le type de terme de la transformation peut être uniquement


-1071611083 MEXTRACTI WordOnly, PhraseOnly ou WordPhrase.
ON_INCORR
ECTTERMTY
PE

0xC0208336 DTS_E_TER La valeur du seuil de fréquence ne doit pas être inférieure à « %1!d! ».
-1071611082 MEXTRACTI
ON_INCORR
ECTFREQUE
NCYTHRES
HOLD

0xC0208337 DTS_E_TER La valeur de la longueur maximale du terme ne doit pas être inférieure
-1071611081 MEXTRACTI à « %1!d! ».
ON_INCORR
ECTMAXLE
NOFTERM
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208338 DTS_E_TER Les métadonnées de référence d'extraction de terme contiennent un


-1071611080 MEXTRACTI nombre de colonnes insuffisant.
ON_TOOFE
WREFEREN
CECOLUMN
S

0xC0208339 DTS_E_TER Une erreur s'est produite lors de l'allocation de mémoire.


-1071611079 MEXTRACTI
ON_MALLO
CERR_REFER
ENCECOLU
MNINFO

0xC020833A DTS_E_TER Une erreur s'est produite lors de la création d'un tampon d'espace de
-1071611078 MEXTRACTI travail.
ON_MAINW
ORKSPACE_
CREATEERR

0xC020833B DTS_E_TER Une erreur OLEDB s'est produite lors de la création de liaisons.
-1071611077 MEXTRACTI
ON_OLEDBE
RR_CREATE
BINDING

0xC020833C DTS_E_TER Une erreur OLEDB s'est produite lors de l'extraction des ensembles de
-1071611076 MEXTRACTI lignes.
ON_OLEDBE
RR_GETIRO
WSET

0xC020833D DTS_E_TER Une erreur OLEDB s'est produite lors du remplissage du cache interne.
-1071611075 MEXTRACTI
ON_OLEDBE
RR_FILLBUF
FER

0xC020833E DTS_E_TER Une erreur s'est produite lors de l'extraction de termes sur la ligne
-1071611074 MEXTRACTI %1!ld!, colonne %2!ld!. Code d'erreur retourné : 0x%3!8.8X!. Pour
ON_PROCES résoudre ce problème, supprimez la ligne de l'entrée.
SERR
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020833F DTS_E_TER Le nombre de termes candidats est supérieur à la limite de 4G.


-1071611073 MEXTRACTI
ONORLOOK
UP_PROCES
SERR_DEPO
SITFULL

0xC0208340 DTS_E_TER La table, la vue ou la colonne de référence utilisée pour les termes
-1071611072 MEXTRACTI d'exclusion n'est pas valide.
ON_INVALI
DOUTTERM
TABLEORCO
LUMN

0xC0208341 DTS_E_TXFU La longueur de la colonne de chaîne « %1 » dépasse 4000 caractères.


-1071611071 ZZYLOOKUP Une conversion de DT_STR vers DT_WSTR est nécessaire, afin qu'une
_STRINGCO troncature se produise. Réduisez la largeur de la colonne, ou utilisez
LUMNTOOL uniquement les types de colonnes DT_WSTR.
ONG

0xC0208342 DTS_E_TER La table, la vue ou la colonne de référence à utiliser pour les termes
-1071611070 MEXTRACTI d'exclusion n'a pas été définie.
ON_OUTTE
RMTABLEA
NDCOLUM
NNOTSET

0xC0208343 DTS_E_TER La recherche de termes contient un nombre de colonnes de sortie


-1071611069 MLOOKUP_ insuffisant.
TOOFEWOU
TPUTCOLU
MNS

0xC0208344 DTS_E_TER La colonne de référence peut uniquement posséder DT_STR ou


-1071611068 MLOOKUP_I DT_WSTR comme type de données.
NCORRECT
DATATYPEO
FREFERENC
ECOLUMN

0xC0208345 DTS_E_TER Une erreur s'est produite lors de la recherche de la colonne de


-1071611067 MLOOKUP_ référence « %1 ».
UNABLETOL
OCATEREFC
OLUMN
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208346 DTS_E_TER Les métadonnées de référence de recherche de terme contiennent un


-1071611066 MLOOKUP_ nombre de colonnes insuffisant.
TOOFEWRE
FERENCECO
LUMNS

0xC0208347 DTS_E_TER Une erreur s'est produite au cours de la normalisation de mots.


-1071611065 MEXTRACTI
ONORLOOK
UP_TESTOFF
SETERROR

0xC0208348 DTS_E_TER Une erreur s'est produite lors de la création d'un tampon d'espace de
-1071611064 MLOOKUP_ travail.
MAINWORK
SPACE_CREA
TEERR

0xC0208349 DTS_E_TER Une erreur OLEDB s'est produite lors de la création de liaisons.
-1071611063 MLOOKUP_
OLEDBERR_
CREATEBIN
DING

0xC020834A DTS_E_TER Une erreur OLEDB s'est produite lors de l'extraction des ensembles de
-1071611062 MLOOKUP_ lignes.
OLEDBERR_
GETIROWSE
T

0xC020834B DTS_E_TER Une erreur OLEDB s'est produite lors du remplissage du cache interne.
-1071611061 MLOOKUP_
OLEDBERR_
FILLBUFFER

0xC020834C DTS_E_TER Une erreur s'est produite lors de la recherche de termes à la ligne
-1071611060 MLOOKUP_ %1!ld!, colonne %2!ld!. Code d'erreur retourné : 0x%3!8.8X!. Pour
PROCESSER résoudre ce problème, supprimez la ligne de l'entrée.
R
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020834D DTS_E_TER Une colonne Relais au minimum n'est pas mappée à une colonne de
-1071611059 MLOOKUP_ sortie.
TEXTIDINPU
TCOLUMNN
OTMAPPED
WITHOUTP
UTCOLUMN

0xC020834E DTS_E_TER Une colonne d'entrée exactement doit être mappée à une colonne de
-1071611058 MLOOKUP_I référence.
NCORRECTE
XACTNUMB
EROFTEXTC
OLUMNS

0xC020834F DTS_E_TER La colonne d'entrée mappée à une colonne de référence peut


-1071611057 MLOOKUP_ uniquement posséder le type de données DT_NTXT ou DT_WSTR.
TEXTINPUTC
OLUMNHAV
EINCORREC
TDATATYPE

0xC0208354 DTS_E_TXFU Le nom de la table de référence « %1 » n'est pas un identificateur SQL


-1071611052 ZZYLOOKUP valide. Cette erreur se produit lorsque le nom de table ne peut être
_INVALID_M analysé à partir de la chaîne d'entrée. Le nom doit comprendre des
ATCH_INDE espaces sans guillemets. Vérifiez que le nom possède des guillemets
X_NAME corrects.

0xC0208355 DTS_E_TER Une erreur s'est produite lors du début de l'itération du filtre
-1071611051 MEXTRACTI terminologique.
ON_TERMFI
LTERSTARTI
TERATIONE
RROR

0xC0208356 DTS_E_TER Une erreur s'est produite lors de la récupération du tampon utilisé
-1071611050 MEXTRACTI pour la mise en cache des termes. Code d'erreur retourné : 0x%1!8.8X!.
ON_EMPTY
TERMRESUL
TERROR

0xC0208357 DTS_E_TER Une erreur std::length_error s'est produite à partir des conteneurs STL.
-1071611049 MEXTRACTI
ON_STDLEN
GTHERROR
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208358 DTS_E_TER Une erreur s'est produite lors de l'enregistrement de mots avec des
-1071611048 MLOOKUP_ caractères de ponctuation. Code d'erreur retourné : 0x%1!8.8X!.
SAVEWORD
WITHPUNC
TERROR

0xC0208359 DTS_E_TER Une erreur s'est produite lors du traitement du terme de référence
-1071611047 MLOOKUP_ %1!ld!th. Code d'erreur retourné : 0x%2!8.8X!. Supprimez le terme de
ADDREFERE référence de votre table de référence pour résoudre ce problème.
NCETERM

0xC020835A DTS_E_TER Une erreur s'est produite lors du tri des termes de référence. Code
-1071611046 MLOOKUP_ d'erreur retourné : 0x%1!8.8X!.
SORREFERE
NCETERM

0xC020835B DTS_E_TER Une erreur s'est produite lors du comptage des termes candidats.
-1071611045 MLOOKUP_ Code d'erreur retourné : 0x%1!8.8X!.
COUNTTER
M

0xC020835C DTS_E_FUZZ La recherche floue n'a pas pu charger la totalité de la table de


-1071611044 YLOOKUP_R référence dans la mémoire principale, comme requis lorsque la
EFERENCEC propriété Exhaustive est activée. Soit la mémoire système était
ACHEFULL insuffisante, soit une limite a été spécifiée pour la propriété
MaxMemoryUsage, qui était insuffisante pour le chargement de la
table de référence. Définissez la propriété MaxMemoryUsage à la
valeur 0 ou augmentez significativement sa valeur. Une autre solution
consiste à désactiver la propriété Exhaustive.

0xC020835D DTS_E_TER Une erreur s'est produite lors de l'initialisation du moteur de recherche
-1071611043 MLOOKUP_I de termes. Code d'erreur retourné : 0x%1!8.8X!.
NITIALIZE

0xC020835E DTS_E_TER Une erreur s'est produite lors du traitement des phrases. Code d'erreur
-1071611042 MLOOKUP_ retourné : 0x%1!8.8X!.
PROCESSSE
NTENCE

0xC020835F DTS_E_TEXT Une erreur s'est produite lors de l'ajout de chaînes à un tampon
-1071611041 MININGBAS interne. Code d'erreur retourné : 0x%1!8.8X!.
E_APPENDT
OTEMPBUFF
ER
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208360 DTS_E_TER Une erreur s'est produite au cours de l'enregistrement de balises


-1071611040 MEXTRACTI morphosyntaxiques à partir d'un tampon interne. Code d'erreur
ON_SAVEPO retourné : 0x%1!8.8X!.
STAG

0xC0208361 DTS_E_TER Une erreur s'est produite lors du comptage des termes candidats.
-1071611039 MEXTRACTI Code d'erreur retourné : 0x%1!8.8X!.
ON_COUNT
TERM

0xC0208362 DTS_E_TER Une erreur s'est produite au cours de l'initialisation du processeur


-1071611038 MEXTRACTI morphosyntaxique. Code d'erreur retourné : 0x%1!8.8X!.
ON_INITPO
SPROCESSO
R

0xC0208363 DTS_E_TER Une erreur s'est produite lors du chargement de l'automate à états
-1071611037 MEXTRACTI finis (FSM). Code d'erreur retourné : 0x%1!8.8X!.
ON_INITFSA

0xC0208364 DTS_E_TER Une erreur s'est produite lors de l'initialisation du moteur d'extraction
-1071611036 MEXTRACTI de termes. Code d'erreur retourné : 0x%1!8.8X!.
ON_INITIALI
ZE

0xC0208365 DTS_E_TER Une erreur s'est produite au cours du traitement au sein d'une phrase.
-1071611035 MEXTRACTI Code d'erreur retourné : 0x%1!8.8X!.
ON_PROCES
SSENTENCE

0xC0208366 DTS_E_TER Une erreur s'est produite au cours de l'initialisation du processeur


-1071611034 MEXTRACTI morphosyntaxique. Code d'erreur retourné : 0x%1!8.8X!.
ON_INITPO
STAGVECTO
R

0xC0208367 DTS_E_TER Une erreur s'est produite lors de l'ajout de chaînes à un tampon
-1071611033 MEXTRACTI interne. Code d'erreur retourné : 0x%1!8.8X!.
ON_SAVEPT
RSTRING
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208368 DTS_E_TER Une erreur s'est produite lors de l'ajout de mots à un décodeur de
-1071611032 MEXTRACTI statistiques. Code d'erreur retourné : 0x%1!8.8X!.
ON_ADDW
ORDTODEC
ODER

0xC0208369 DTS_E_TER Une erreur s'est produite lors du décodage d'une phrase. Code
-1071611031 MEXTRACTI d'erreur retourné : 0x%1!8.8X!.
ON_DECOD
E

0xC020836A DTS_E_TER Une erreur s'est produite lors du paramétrage des termes d'exclusion.
-1071611030 MEXTRACTI Code d'erreur retourné : 0x%1!8.8X!.
ON_SETEXC
LUDEDTER
M

0xC020836B DTS_E_TER Une erreur s'est produite lors du traitement d'un document dans
-1071611029 MEXTRACTI l'entrée. Code d'erreur retourné : 0x%1!8.8X!.
ON_PROCES
SDOCUMEN
T

0xC020836C DTS_E_TEXT Une erreur s'est produite lors d'un test servant à déterminer si un
-1071611028 MININGBAS point fait partie d'un acronyme. Code d'erreur retourné : 0x%1!8.8X!.
E_TESTPERI
OD

0xC020836D DTS_E_TER Une erreur s'est produite lors du paramétrage des termes de
-1071611027 MLOOKUP_ référence. Code d'erreur retourné : 0x%1!8.8X!.
ENGINEAD
DREFERENC
ETERM

0xC020836E DTS_E_TER Une erreur s'est produite lors du traitement d'un document dans
-1071611026 MLOOKUP_ l'entrée. Code d'erreur retourné : 0x%1!8.8X!.
PROCESSD
OCUMENT

0xC020836F DTS_E_INVA La valeur de la propriété %1 est %2!d!, ce qui n'est pas autorisé. Cette
-1071611025 LIDBULKINS valeur doit être supérieure ou égale à %3!d!.
ERTPROPER
TYVALUE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208370 DTS_E_INVA La valeur de la propriété %1 est %2!d!, qui doit être inférieure ou égale
-1071611024 LIDBULKINS à la valeur %3!d! pour la propriété %4.
ERTFIRSTRO
WLASTROW
VALUES

0xC0208371 DTS_E_FUZZ Une erreur s'est produite lors de la tentative de suppression de l'index
-1071611023 YLOOKUPU de correspondance approximative nommé « %1 ». Il est possible que
NABLETODE cette table n'ait pas été créée par la recherche floue (ou cette version
LETEEXISTIN de la recherche floue), qu'elle ait été endommagée ou qu'il existe un
GMATCHIN autre problème. Essayez de supprimer manuellement la table nommée
DEX « %2 » ou spécifiez un nom différent pour la propriété
MatchIndexName.

0xC0208372 DTS_E_TER Le type de score de la transformation peut uniquement être Fréquence


-1071611022 MEXTRACTI ou TFIDF.
ON_INCORR
ECTSCORET
YPE

0xC0208373 DTS_E_FUZZ La table de référence spécifiée possède trop de lignes. La recherche


-1071611021 YLOOKUPRE floue ne fonctionne qu'avec des tables de référence comportant moins
FTABLETOO d'un milliard de lignes. Essayez d'utiliser une vue plus petite de votre
BIG table de référence.

0xC0208374 DTS_E_FUZZ Impossible de déterminer la taille de la table de référence « %1 ». Il est


-1071611020 YLOOKUPU possible que cet objet soit une vue et pas une table. La recherche
NABLETODE floue ne prend pas en charge les vues lorsque CopyReferentaceTable
TERMINERE possède la valeur False. Vérifiez que cette table existe et que
FERENCETA CopyReferenceTable possède la valeur True.
BLESIZE

0xC0208377 DTS_E_XML Le type de données de la tâche de flux de données SSIS « %1 » sur %2


-1071611017 SRCOUTPUT n'est pas pris en charge pour %3.
COLUMNDA
TATYPENOT
SUPPORTED

0xC0208378 DTS_E_XML Impossible de définir les propriétés de type de données pour la


-1071611016 SRCCANNO colonne de sortie portant l'ID %1!d! sur la sortie portant l'ID %2!d!. La
TFINDCOLU sortie ou la colonne est introuvable.
MNTOSETD
ATATYPE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208379 DTS_E_CUST Impossible de modifier la valeur de la propriété personnalisée « %1 »


-1071611015 OMPROPER sur %2.
TYISREADO
NLY

0xC020837A DTS_E_OUT %1 sur la sortie sans erreur ne possède pas de colonne de sortie
-1071611014 PUTCOLUM correspondante sur la sortie d'erreur.
NHASNOER
RORCOLUM
N

0xC020837B DTS_E_ERRO %1 sur la sortie d'erreur ne possède pas de colonne de sortie


-1071611013 RCOLUMNH correspondante sur la sortie sans erreur.
ASNOOUTP
UTCOLUMN

0xC020837C DTS_E_ERRO %1 sur la sortie d'erreur possède des propriétés qui ne correspondent
-1071611012 RCOLUMNH pas aux propriétés de la colonne source de données correspondante.
ASINCORRE
CTPROPERTI
ES

0xC020837D DTS_E_ADO Impossible de modifier le type de données des colonnes de sortie sur
-1071611011 SRCOUTPUT %1, sauf pour les colonnes DT_WSTR et DT_NTEXT.
COLUMNDA
TATYPECAN
NOTBECHA
NGED

0xC020837F DTS_E_ADO Le type de données de « %1 » ne correspond pas au type de données


-1071611009 SRCDATATY « %2 » de la colonne source « %3 ».
PEMISMATC
H

0xC0208380 DTS_E_ADO %1 ne possède pas de colonne source correspondante dans le


-1071611008 SRCCOLUM schéma.
NNOTINSC
HEMAROW
SET
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208381 DTS_E_TER La table/vue de référence ou la colonne utilisée pour les termes de


-1071611007 MLOOKUP_I référence n'est pas valide.
NVALIDREFE
RENCETER
MTABLEORC
OLUMN

0xC0208382 DTS_E_TER La table/vue de référence ou la colonne utilisée pour les termes de


-1071611006 MLOOKUP_ référence n'a pas été définie.
REFERENCE
TERMTABLE
ANDCOLUM
NNOTSET

0xC0208383 DTS_E_COL La colonne %1 est mappée sur la colonne de métadonnées externes


-1071611005 UMNMAPP avec l'ID %2!ld!, qui est déjà mappée sur une autre colonne.
EDTOALREA
DYMAPPED
EXTERNAL
METADATAC
OLUMN

0xC0208384 DTS_E_TXFU Le nom d'objet SQL « %1 » spécifié pour la propriété « %2 » contient


-1071611004 ZZYLOOKUP plus de préfixes que le maximum autorisé. Le maximum est 2.
_TOOMANY
PREFIXES

0xC0208385 DTS_E_MGD La valeur était trop grande pour tenir dans la colonne.
-1071611003 SRCSTATIC_
OVERFLOW

0xC0208386 DTS_E_DATA Le IDataReader SSIS est fermé.


-1071611002 READERDES
TREADERISC
LOSED

0xC0208387 DTS_E_DATA SSIS IDataReader se trouve au-delà de la fin du jeu de résultats.


-1071611001 READERDES
TREADERISA
TEND
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208388 DTS_E_DATA La position ordinale de la colonne n'est pas valide.


-1071611000 READERDES
TINVALIDC
OLUMNOR
DINAL

0xC0208389 DTS_E_DATA Impossible de convertir le %1 à partir du type de données « %2 » vers


-1071610999 READERDES le type de données « %3 ».
TCANNOTC
ONVERT

0xC020838A DTS_E_DATA Le %1 comporte une page de codes non prise en charge %2!d!.
-1071610998 READERDES
TINVALIDC
ODEPAGE

0xC020838B DTS_E_XML Le %1 ne comporte pas de mappage au schéma XML.


-1071610997 SRCEXTERN
ALMETADAT
ACOLUMN
NOTINSCHE
MA

0xC020838D DTS_E_TXTE Les colonnes avec les ID de lignage %1!d! et %2!d! comportent des
-1071610995 RMLOOKUP métadonnées non concordantes. La colonne d’entrée qui est mappée
_MISMATCH à une colonne de sortie ne comporte pas les mêmes métadonnées
ED_COLUM (type de données, précision, échelle, longueur ou page de codes).
N_METADAT
A

0xC020838E DTS_E_DATA Le IDataReader SSIS est fermé. Le délai d'attente de lecture a expiré.
-1071610994 READERDES
TREADERTI
MEOUT

0xC020838F DTS_E_ADO Une erreur s'est produite lors de l'exécution de la commande SQL
-1071610993 SRCINVALID fournie : « %1 ». %2
SQLCOMM
AND
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208390 DTS_E_JOIN La propriété JoinType spécifiée pour la colonne d'entrée « %1 » est


-1071610992 TYPEDOESN différente de celle spécifiée pour la colonne de la table de référence
TMATCHETI correspondante lorsque l'index de correspondance a été initialement
créé. Vous devez reconstruire l'index de correspondances avec la
propriété JoinType donnée ou modifier la propriété JoinType afin
qu'elle corresponde au type utilisé lors de la création de l'index de
correspondances.

0xC0208392 DTS_E_SQLC Le type de données « %1! » rencontré sur la colonne « %2! » n'est pas
-1071610990 EDESTDATA pris en charge pour %3.
TYPENOTSU
PPORTED

0xC0208393 DTS_E_DATA Le type de données « %1! » rencontré sur %2 n'est pas pris en charge
-1071610989 READERDES pour %3.
TDATATYPE
NOTSUPPO
RTED

0xC0208394 DTS_E_RECO Le type de données de %1 n'est pas pris en charge pour %2.
-1071610988 RDSETDEST
DATATYPEN
OTSUPPORT
ED

0xC0208446 DTS_E_TXSC Impossible d'ajouter la référence de projet « %1 » lors de la migration


-1071610810 RIPTMIGRAT de %2. Celle-ci devra peut-être être terminée manuellement.
IONCOULD
NOTADDRE
FERENCE

0xC0208447 DTS_E_TXSC Plusieurs points d'entrée nommés « %1 » ont été trouvés lors de la
-1071610809 RIPTMIGRAT migration de %2. Celle-ci devra peut-être être terminée manuellement.
IONMULTIP
LEENTRYPOI
NTSFOUND

0xC0208448 DTS_E_TXSC Aucun point d'entrée n'a été trouvé lors de la migration de %1. Celle-
-1071610808 RIPTMIGRAT ci devra peut-être être terminée manuellement.
IONNOENT
RYPOINTFO
UND
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020844B DTS_E_ADO Une exception s'est produite lors de l'insertion des données ; le
-1071610805 DESTINSERT message retourné par le fournisseur est : %1
IONFAILURE

0xC020844C DTS_E_ADO Échec de la récupération du nom invariant de fournisseur à partir de


-1071610804 DESTCONN %1. Il n'est pas pris en charge actuellement par le composant de
ECTIONTYP destination ADO NET.
ENOTSUPP
ORTED

0xC020844D DTS_E_ADO Une exception d'argument s'est produite pendant que le fournisseur
-1071610803 DESTARGU de données essayait d'insérer des données dans la destination. Le
MENTEXCEP message retourné est : %1
TION

0xC020844E DTS_E_ADO La propriété BatchSize doit être un entier non négatif.


-1071610802 DESTWRON
GBATCHSIZ
E

0xC020844F DTS_E_ADO Une erreur s'est produite lors de l'envoi de cette ligne à source de
-1071610801 DESTERROR données de destination.
UPDATERO
W

0xC0208450 DTS_E_ADO L'exécution de la commande de tSQL lève une exception, le message


-1071610800 DESTEXECU est : %1
TEREADERE
XCEPTION

0xC0208451 DTS_E_ADO Le type de données « %1! » rencontré sur la colonne « %2! » n'est pas
-1071610799 DESTDATAT pris en charge pour %3.
YPENOTSUP
PORTED

0xC0208452 DTS_E_ADO La destination ADO NET n'a pas réussi à acquérir la connexion %1. La
-1071610798 DESTFAILED connexion a peut-être été endommagée.
TOACQUIRE
CONNECTI
ON

0xC0208453 DTS_E_ADO La connexion spécifiée %1 n'étant pas managée, utilisez une


-1071610797 DESTNOTM connexion managée pour la destination ADO NET.
ANAGEDCO
NNECTION
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0208454 DTS_E_ADO Le composant de destination ne dispose d'aucune sortie d'erreur. Il a


-1071610796 DESTNOERR peut-être été endommagé.
OROUTPUT

0xC0208455 DTS_E_ADO Le lineageID %1 associé à la colonne externe %2 n'existe pas au


-1071610795 DESTNOLIN moment de l'exécution.
EAGEID

0xC0208456 DTS_E_ADO Le %1 n'existe pas dans la base de données. Il a peut-être été


-1071610794 DESTEXTER supprimé ou renommé.
NALCOLNO
TEXIST

0xC0208457 DTS_E_ADO Impossible d'obtenir les propriétés des colonnes externes. Le nom de
-1071610793 DESTGETSC table que vous avez entré n'existe peut-être pas, ou vous ne disposez
HEMATABLE pas de l'autorisation SELECT sur l'objet table et une autre tentative
FAILED d'obtention des propriétés des colonnes par le biais de la connexion a
échoué. Les messages d'erreur détaillés sont : %1

0xC0208458 DTS_E_ADO La disposition d'erreur de colonne d'entrée n'est pas prise en charge
-1071610792 DESTCOLU par le composant de destination ADO NET.
MNERRORD
ISPNOTSUP
PORTED

0xC0208459 DTS_E_ADO La disposition de troncation de colonne d'entrée n'est pas prise en


-1071610791 DESTCOLU charge par le composant de destination ADO NET.
MNTRUNDI
SPNOTSUPP
ORTED

0xC020845A DTS_E_ADO La disposition de la ligne de troncation d'entrée n'est pas prise en


-1071610790 DESTINPUT charge par le composant de destination ADO NET.
TRUNDISPN
OTSUPPORT
ED

0xC020845B DTS_E_ADO Le nom de la table ou de la vue n'est pas prévu. \n\t Si vous citez le
-1071610789 DESTTABLE nom de la table, utilisez le préfixe %1 et le suffixe %2 de votre
NAMEERRO fournisseur de données sélectionné pour citation. \n\t Si vous utilisez
R un nom en plusieurs parties, utilisez au maximum trois parties pour le
nom de la table.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0209001 DTS_E_FAILE Échec de la recherche de la colonne « %1 » portant l'ID de lignage


-1071607807 DTOFINDCO %2!d! dans le tampon. Le gestionnaire de tampons a retourné le code
LUMNINBU d'erreur 0x%3!8.8X!.
FFER

0xC0209002 DTS_E_FAILE Échec de l'obtention d'informations pour la colonne « %1 » (%2!d!) à


-1071607806 DTOGETCOL partir du tampon. Code d'erreur retourné : 0x%3!8.8X!.
UMNINFOF
ROMBUFFE
R

0xC0209011 DTS_E_TXAG Débordement arithmétique rencontré lors de l'agrégation de « %1 ».


-1071607791 G_ARITHME
TICOVERFLO
W

0xC0209012 DTS_E_FAILE Échec de l'obtention d'informations pour la ligne %1!ld!, colonne


-1071607790 DTOGETCOL %2!ld! à partir du tampon. Code d'erreur retourné : 0x%3!8.8X!.
INFO

0xC0209013 DTS_E_FAILE Échec de la définition d'informations pour la ligne %1!ld!, colonne


-1071607789 DTOSETCOLI %2!ld! dans le tampon. Code d'erreur retourné : 0x%3!8.8X!.
NFO

0xC0209015 DTS_E_REQ Un tampon requis n'est pas disponible.


-1071607787 UIREDBUFFE
RISNOTAVAI
LBLE

0xC0209016 DTS_E_FAILE Échec de la tentative d'obtention des informations de limite de


-1071607786 DTOGETBUF tampon. Code d'erreur : 0x%1!8.8X!.
FERBOUND
ARYINFO

0xC0209017 DTS_E_FAILE Échec de la définition de la fin de l'ensemble de lignes du tampon.


-1071607785 DTOSETBUF Code d'erreur : 0x%1!8.8X!.
FERENDOFR
OWSET

0xC0209018 DTS_E_FAILE Échec de l'obtention de données pour le tampon de sortie d'erreur.


-1071607784 DTOGETDAT
AFORERRO
ROUTPUTB
UFFER
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0209019 DTS_E_FAILE Échec de la suppression d'une ligne du tampon. Code d'erreur :


-1071607783 DTOREMOV 0x%1!8.8X!.
EROWFROM
BUFFER

0xC020901B DTS_E_FAILE Échec de la tentative de définition des informations d'erreur sur le


-1071607781 DTOSETBUF tampon. Code d'erreur : 0x%1!8.8X!.
FERERRORI
NFO

0xC020901C DTS_E_COL Une erreur s'est produite avec %1 sur %2. État de colonne retourné : «
-1071607780 UMNSTATU %3 ».
SERROR

0xC020901D DTS_E_TXLO Mise en cache des métadonnées de référence impossible.


-1071607779 OKUP_META
DATAXMLC
ACHEERR

0xC020901E DTS_E_TXLO Aucune correspondance de ligne trouvée au cours de la recherche.


-1071607778 OKUP_ROW
LOOKUPERR
OR

0xC020901F DTS_E_INVA %1 présente une erreur ou une structure de ligne tronquée non valide.
-1071607777 LIDERRORDI
SPOSITION

0xC0209022 DTS_E_FAILE Échec de la direction de la ligne vers la sortie d'erreur. Code d'erreur :
-1071607774 DTODIRECT 0x%1!8.8X!.
ERRORROW

0xC0209023 DTS_E_FAILE Échec de la préparation des états de colonne pour l'insertion. Code
-1071607773 DTOPREPAR d'erreur : 0x%1!8.8X!.
ECOLUMNS
TATUSESFO
RINSERT

0xC0209024 DTS_E_FAILE Échec d'une tentative de recherche de %1 avec l'ID de lignage %2!d!
-1071607772 DTOFINDCO dans le tampon de tâche de flux de données. Code d'erreur :
LUMNBYLIN 0x%3!8.8X!.
EAGEID
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0209025 DTS_E_FAILE Échec de la recherche d'une colonne d'erreur non spéciale dans %1.
-1071607771 DTOFINDN
ONSPECIAL
ERRORCOL
UMN

0xC0209029 DTS_E_INDU Code d'erreur SSIS DTS_E_INDUCEDTRANSFORMFAILUREONERROR.


-1071607767 CEDTRANSF Échec de l'objet « %1 » en raison du code d'erreur 0x%2!8.8X!. En
ORMFAILUR outre, la disposition de la ligne d'erreur sur « %3 » spécifie un échec
EONERROR sur l'erreur. Une erreur s'est produite sur l'objet spécifié du composant
spécifié. Des messages d'erreur peuvent être envoyés au préalable
avec des informations indiquant la raison de l'échec.

0xC020902A DTS_E_INDU Échec de « %1 » en raison d'une troncation. En outre, la disposition de


-1071607766 CEDTRANSF la ligne de troncation sur « %2 » indique une erreur au niveau de la
ORMFAILUR troncation. Une erreur de troncation s'est produite sur l'objet spécifié
EONTRUNC du composant spécifié.
ATION

0xC020902B DTS_E_TXSP L'expression « %1 » sur « %2 » a été évaluée à NULL, mais « %3 »


-1071607765 LITEXPRESSI nécessite des résultats booléens. Modifiez la disposition de la ligne
ONEVALUAT d'erreur sur la sortie pour traiter ce résultat comme False (Ignorer
EDTONULL l'échec) ou rediriger cette ligne vers la sortie d'erreur (Réacheminer la
ligne). Les résultats de cette expression doivent être de type booléen
pour un fractionnement conditionnel. Un résultat d'expression NULL
constitue une erreur.

0xC020902C DTS_E_TXSP L'expression a été évaluée à NULL, mais un résultat booléen est requis.
-1071607764 LITSTATIC_E Modifiez la disposition de la ligne d'erreur sur la sortie pour traiter ce
XPRESSION résultat comme False (Ignorer l'échec) ou rediriger cette ligne vers la
EVALUATED sortie d'erreur (Réacheminer la ligne). Les résultats de cette expression
TONULL doivent être de type booléen pour un fractionnement conditionnel. Un
résultat d'expression NULL constitue une erreur.

0xC020902D DTS_E_UTF1 Le format de fichier UTF-16 avec primauté des octets de poids fort (Big
-1071607763 6BIGENDIA endian) n'est pas pris en charge. Seul le format UTF-16 avec primauté
NFORMATN des octets de poids faible (Little endian) est pris en charge.
OTSUPPORT
ED

0xC020902E DTS_E_UTF8 Le format de fichier UTF-8 n'est pas pris en charge en tant qu'Unicode.
-1071607762 FORMATNO
TSUPPORTE
DASUNICO
DE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020902F DTS_E_DTPX Attribut d'ID illisible.


-1071607761 MLCANTRE
ADIDATTR

0xC020903E DTS_E_TXLO La colonne d'index du cache %1 est référencée par plusieurs colonnes
-1071607746 OKUP_INDE d'entrée de recherche.
XCOLUMNR
EUSED

0xC020903F DTS_E_TXLO La recherche ne fait pas référence à toutes les colonnes d'index du
-1071607745 OKUP_INDE gestionnaire de connexions du cache. Nombre de colonnes jointes
XCOLUMNS dans la recherche : %1!d!. Nombre de colonnes d'index : %2!d!.
MISMATCH

0xC0209069 DTS_E_COM Impossible de convertir la valeur des données pour une raison autre
-1071607703 MANDDEST que la non-correspondance des signes ou le débordement des
INATIONAD données.
APTERSTATI
C_CANTCO
NVERTVALU
E

0xC020906A DTS_E_COM La valeur des données ne respecte pas la contrainte du schéma.


-1071607702 MANDDEST
INATIONAD
APTERSTATI
C_SCHEMAV
IOLATION

0xC020906B DTS_E_COM Les données ont été tronquées.


-1071607701 MANDDEST
INATIONAD
APTERSTATI
C_TRUNCAT
ED

0xC020906C DTS_E_COM Échec de la conversion car la valeur des données était signée alors que
-1071607700 MANDDEST le type utilisé par le fournisseur ne l'était pas.
INATIONAD
APTERSTATI
C_SIGNMIS
MATCH
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020906D DTS_E_COM Échec de la conversion, en raison du débordement de la valeur des


-1071607699 MANDDEST données par rapport au type utilisé par le fournisseur.
INATIONAD
APTERSTATI
C_DATAOVE
RFLOW

0xC020906E DTS_E_COM Aucun état n'est disponible.


-1071607698 MANDDEST
INATIONAD
APTERSTATI
C_UNAVAIL
ABLE

0xC020906F DTS_E_COM L'utilisateur ne possédait pas les autorisations correctes pour écrire
-1071607697 MANDDEST dans la colonne.
INATIONAD
APTERSTATI
C_PERMISSI
ONDENIED

0xC0209070 DTS_E_COM La valeur des données n'a pas respecté les contraintes d'intégrité de la
-1071607696 MANDDEST colonne.
INATIONAD
APTERSTATI
C_INTEGRIT
YVIOLATIO
N

0xC0209071 DTS_E_OLED Aucun état n'est disponible.


-1071607695 BSOURCEA
DAPTERSTA
TIC_UNAVAI
LABLE

0xC0209072 DTS_E_OLED Impossible de convertir la valeur des données pour une raison autre
-1071607694 BSOURCEA que la non-correspondance des signes ou le débordement des
DAPTERSTA données.
TIC_CANTC
ONVERTVAL
UE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0209073 DTS_E_OLED Les données ont été tronquées.


-1071607693 BSOURCEA
DAPTERSTA
TIC_TRUNC
ATED

0xC0209074 DTS_E_OLED Échec de la conversion car la valeur des données était signée alors que
-1071607692 BSOURCEA le type utilisé par le fournisseur ne l'était pas.
DAPTERSTA
TIC_SIGNMI
SMATCH

0xC0209075 DTS_E_OLED Échec de la conversion, en raison du débordement de la valeur des


-1071607691 BSOURCEA données par rapport au type utilisé par le fournisseur.
DAPTERSTA
TIC_DATAO
VERFLOW

0xC0209076 DTS_E_OLED La valeur des données ne respecte pas la contrainte du schéma.


-1071607690 BDESTINATI
ONADAPTE
RSTATIC_SC
HEMAVIOLA
TION

0xC0209077 DTS_E_OLED Impossible de convertir la valeur des données pour une raison autre
-1071607689 BDESTINATI que la non-correspondance des signes ou le débordement des
ONADAPTE données.
RSTATIC_CA
NTCONVER
TVALUE

0xC0209078 DTS_E_OLED Les données ont été tronquées.


-1071607688 BDESTINATI
ONADAPTE
RSTATIC_TR
UNCATED

0xC0209079 DTS_E_OLED Échec de la conversion car la valeur des données était signée alors que
-1071607687 BDESTINATI le type utilisé par le fournisseur ne l'était pas.
ONADAPTE
RSTATIC_SIG
NMISMATC
H
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020907A DTS_E_OLED Échec de la conversion, en raison du débordement de la valeur des


-1071607686 BDESTINATI données par rapport au type utilisé par le fournisseur.
ONADAPTE
RSTATIC_DA
TAOVERFLO
W

0xC020907B DTS_E_OLED Aucun état n'est disponible.


-1071607685 BDESTINATI
ONADAPTE
RSTATIC_UN
AVAILABLE

0xC020907C DTS_E_OLED L'utilisateur ne possédait pas les autorisations correctes pour écrire
-1071607684 BDESTINATI dans la colonne.
ONADAPTE
RSTATIC_PE
RMISSIOND
ENIED

0xC020907D DTS_E_OLED La valeur des données ne respecte pas les contraintes d'intégrité.
-1071607683 BDESTINATI
ONADAPTE
RSTATIC_IN
TEGRITYVIO
LATION

0xC020907F DTS_E_TXDA Impossible de convertir la valeur des données pour une raison autre
-1071607681 TACONVERT que la non-correspondance des signes ou le débordement des
STATIC_CAN données.
TCONVERTV
ALUE

0xC0209080 DTS_E_TXDA Les données ont été tronquées.


-1071607680 TACONVERT
STATIC_TRU
NCATED

0xC0209081 DTS_E_TXDA Échec de la conversion car la valeur des données était signée alors que
-1071607679 TACONVERT le type utilisé par le fournisseur ne l'était pas.
STATIC_SIG
NMISMATC
H
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0209082 DTS_E_TXDA Échec de la conversion en raison du débordement de la valeur des


-1071607678 TACONVERT données par rapport au type utilisé par la transformation de
STATIC_DAT conversion des données.
AOVERFLO
W

0xC0209083 DTS_E_FLAT Aucun état n'est disponible.


-1071607677 FILESOURCE
ADAPTERST
ATIC_UNAV
AILABLE

0xC0209084 DTS_E_FLAT Impossible de convertir la valeur des données pour une raison autre
-1071607676 FILESOURCE que la non-correspondance des signes ou le débordement des
ADAPTERST données.
ATIC_CANTC
ONVERTVAL
UE

0xC0209085 DTS_E_FLAT Les données ont été tronquées.


-1071607675 FILESOURCE
ADAPTERST
ATIC_TRUN
CATED

0xC0209086 DTS_E_FLAT Échec de la conversion car la valeur des données était signée, alors
-1071607674 FILESOURCE que le type utilisé par l'adaptateur source de fichier plat ne l'était pas.
ADAPTERST
ATIC_SIGN
MISMATCH

0xC0209087 DTS_E_FLAT Échec de la conversion en raison du débordement de la valeur des


-1071607673 FILESOURCE données par rapport au type utilisé par l'adaptateur source de fichier
ADAPTERST plat.
ATIC_DATAO
VERFLOW

0xC020908E DTS_E_TXDA Aucun état n'est disponible.


-1071607666 TACONVERT
STATIC_UNA
VAILABLE

0xC0209090 DTS_E_FILE Échec de l'ouverture du fichier « %1 » en lecture : code d'erreur


-1071607664 OPENERR_F 0x%2!8.8X!.
ORREAD
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0209091 DTS_E_TXFIL Échec de l'ouverture du fichier en lecture.


-1071607663 EINSERTERS
TATIC_FILEO
PENERR_FO
RREAD

0xC0209092 DTS_E_FILE Échec de l'ouverture du fichier « %1 » en écriture : code d'erreur


-1071607662 OPENERR_F 0x%2!8.8X!.
ORWRITE

0xC0209093 DTS_E_TXFIL Échec de l'ouverture du fichier en écriture.


-1071607661 EEXTRACTO
RSTATIC_FIL
EOPENERR_
FORWRITE

0xC0209094 DTS_E_TXFIL Échec de la lecture à partir du fichier.


-1071607660 EINSERTERS
TATIC_INSER
TERCANTRE
AD

0xC0209095 DTS_E_TXFIL Échec de l'écriture dans le fichier.


-1071607659 EEXTRACTO
RSTATIC_EX
TRACTORCA
NTWRITE

0xC0209099 DTS_E_DTPX Un nombre trop important d'éléments de tableau a été trouvé lors de
-1071607655 MLINVALID l'analyse d'une propriété de type tableau. La valeur d'elementCount
PROPERTYA est inférieure au nombre d'éléments de tableau trouvés.
RRAYTOOM
ANYVALUES

0xC020909A DTS_E_DTPX Un nombre trop faible d'éléments de tableau a été trouvé lors de
-1071607654 MLINVALID l'analyse d'une propriété de type tableau. La valeur d'elementCount
PROPERTYA est supérieure au nombre d'éléments de tableau trouvés.
RRAYNOTE
NOUGHVAL
UES
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020909E DTS_E_FILE Échec de l'ouverture du fichier « %1 » pour écriture. Fichier


-1071607650 OPENERR_F introuvable.
ORWRITE_FI
LENOTFOU
ND

0xC020909F DTS_E_TXFIL Échec de l'ouverture du fichier en écriture. Fichier introuvable.


-1071607649 EEXTRACTO
RSTATIC_FIL
EOPENERR_
FORWRITE_
FILENOTFO
UND

0xC02090A0 DTS_E_FILE Échec de l'ouverture du fichier « %1 » pour écriture. Le chemin d'accès


-1071607648 OPENERR_F est introuvable.
ORWRITE_P
ATHNOTFO
UND

0xC02090A1 DTS_E_TXFIL Échec de l'ouverture du fichier en écriture. Le chemin d'accès est


-1071607647 EEXTRACTO introuvable.
RSTATIC_FIL
EOPENERR_
FORWRITE_
PATHNOTF
OUND

0xC02090A2 DTS_E_FILE Échec de l'ouverture du fichier « %1 » pour écriture. Trop de fichiers


-1071607646 OPENERR_F sont ouverts.
ORWRITE_T
OOMANYO
PENFILES

0xC02090A3 DTS_E_TXFIL Échec de l'ouverture du fichier en écriture. Trop de fichiers sont


-1071607645 EEXTRACTO ouverts.
RSTATIC_FIL
EOPENERR_
FORWRITE_
TOOMANY
OPENFILES
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02090A4 DTS_E_FILE Échec de l'ouverture du fichier « %1 » pour écriture. Vous ne possédez


-1071607644 OPENERR_F pas les autorisations appropriées.
ORWRITE_A
CCESSDENI
ED

0xC02090A5 DTS_E_TXFIL Échec de l'ouverture du fichier en écriture. Vous ne possédez pas les
-1071607643 EEXTRACTO autorisations appropriées.
RSTATIC_FIL
EOPENERR_
FORWRITE_
ACCESSDEN
IED

0xC02090A6 DTS_E_FILE Échec de l'ouverture du fichier « %1 » pour écriture. Ce fichier existe et


-1071607642 OPENERR_F ne peut être remplacé. Si la propriété AllowAppend a la valeur FALSE
ORWRITE_FI et si la propriété ForceTruncate a elle aussi la valeur FALSE, l'existence
LEEXISTS du fichier entraîne cet échec.

0xC02090A7 DTS_E_TXFIL Échec de l'ouverture d'un fichier en écriture. Ce fichier existe déjà et ne
-1071607641 EEXTRACTO peut être remplacé. Si les propriétés AllowAppend et ForceTruncate
RSTATIC_FIL ont toutes deux la valeur FALSE, l'existence du fichier entraîne cet
EOPENERR_ échec.
FORWRITE_
FILEEXISTS

0xC02090A8 DTS_E_INCO La valeur de la propriété personnalisée %1 sur %2 est incorrecte.


-1071607640 RRECTCUST
OMPROPER
TYVALUEFO
ROBJECT

0xC02090A9 DTS_E_COL Les colonnes « %1 » et « %2 » possèdent des métadonnées


-1071607639 UMNSHAVE incompatibles.
INCOMPATI
BLEMETADA
TA

0xC02090AD DTS_E_FILE Échec de l'ouverture du fichier « %1 » en écriture car le disque est


-1071607635 WRITEERR_ saturé. Espace disque insuffisant pour enregistrer ce fichier.
DISKFULL
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02090AE DTS_E_TXFIL Échec de la tentative d'ouverture du fichier en écriture car le disque est
-1071607634 EEXTRACTO plein.
RSTATIC_FIL
EWRITEERR_
DISKFULL

0xC02090B9 DTS_E_TXAG Échec de la génération d'une clé de tri avec l'erreur 0x%1!8.8X!. Les
-1071607623 G_SORTKEY ComparisonFlags sont activés, et la génération d'une clé de tri avec
GENFAILED LCMapString a échoué.

0xC02090BA DTS_E_TXCH Échec de la transformation pour le mappage de chaîne. Code d'erreur :


-1071607622 ARMAPLCM 0x%1!8.8X!. Échec de LCMapString.
APFAILED

0xC02090BB DTS_E_FILE Échec de l'ouverture du fichier « %1 » pour lecture. Ce fichier est


-1071607621 OPENERR_F introuvable.
ORREAD_FIL
ENOTFOUN
D

0xC02090BC DTS_E_TXFIL Échec de l'ouverture d'un fichier en lecture. Ce fichier est introuvable.
-1071607620 EINSERTERS
TATIC_FILEO
PENERR_FO
RREAD_FILE
NOTFOUND

0xC02090BD DTS_E_FILE Échec de l'ouverture du fichier « %1 » pour lecture. Le chemin d'accès


-1071607619 OPENERR_F est introuvable.
ORREAD_PA
THNOTFOU
ND

0xC02090BE DTS_E_TXFIL Échec de l'ouverture d'un fichier en lecture. Le chemin est introuvable.
-1071607618 EINSERTERS
TATIC_FILEO
PENERR_FO
RREAD_PAT
HNOTFOUN
D
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02090BF DTS_E_FILE Échec de l'ouverture du fichier « %1 » pour lecture. Trop de fichiers


-1071607617 OPENERR_F sont ouverts.
ORREAD_TO
OMANYOPE
NFILES

0xC02090C0 DTS_E_TXFIL Échec de l'ouverture du fichier en lecture. Trop de fichiers sont ouverts.
-1071607616 EINSERTERS
TATIC_FILEO
PENERR_FO
RREAD_TOO
MANYOPEN
FILES

0xC02090C1 DTS_E_FILE Échec de l'ouverture du fichier « %1 » en lecture. L’accès est refusé.


-1071607615 OPENERR_F
ORREAD_AC
CESSDENIE
D

0xC02090C2 DTS_E_TXFIL Échec de l'ouverture du fichier en lecture. Vous ne possédez pas les
-1071607614 EINSERTERS autorisations appropriées.
TATIC_FILEO
PENERR_FO
RREAD_ACC
ESSDENIED

0xC02090C3 DTS_E_INSE La valeur d'indicateur d'ordre des octets (BOM) du fichier « %1 » est
-1071607613 RTERINVALI 0x%2!4.4X!, mais la valeur attendue est 0x%3!4.4X!. La propriété
DBOM ExpectBOM a été définie pour ce fichier, mais la valeur BOM est
manquante ou non valide dans ce fichier.

0xC02090C4 DTS_E_TXFIL La valeur d'indicateur d'ordre des octets (BOM) du fichier n'est pas
-1071607612 EINSERTERS valide. La propriété ExpectBOM a été définie pour ce fichier, mais la
TATIC_INSER valeur BOM est manquante ou non valide dans ce fichier.
TERINVALID
BOM

0xC02090C5 DTS_E_NOC %1 n'est associé à aucun composant. Un composant doit être associé.
-1071607611 OMPONENT
ATTACHED
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02090C9 DTS_E_TXLO Valeur de la propriété personnalisée %1 incorrecte. Il doit s'agir d'un


-1071607607 OKUP_INVA nombre compris entre %2!d! et %3!I64d!.
LIDMAXME
MORYPROP

0xC02090CA DTS_E_TXAG Impossible de spécifier la propriété personnalisée « %1 » pour le type


-1071607606 G_COMPFL d'agrégation sélectionné pour cette colonne. La propriété
AGS_BADAG personnalisée d'indicateurs de comparaison peut uniquement être
GREGATION spécifiée pour les types d'agrégation GROUP BY et COUNT DISTINCT.
TYPE

0xC02090CB DTS_E_TXAG La propriété personnalisée des indicateurs de comparaison « %1 »


-1071607605 G_COMPFL peut uniquement être spécifiée pour les colonnes comportant les
AGS_BADDA types de données DT_STR ou DT_WSTR.
TATYPE

0xC02090CD DTS_E_TXAG Échec de l'agrégation sur %1. Code d'erreur : 0x%2!8.8X!.


-1071607603 G_AGGREGA
TION_FAILU
RE

0xC02090CF DTS_E_MAP Erreur lors du paramétrage du mappage. %1


-1071607601 PINGSETUP
ERROR

0xC02090D0 DTS_E_XML %1 n'a pu lire les données XML.


-1071607600 SRCUNABLE
TOREADXM
LDATA

0xC02090D1 DTS_E_XML %1 n'a pas pu obtenir la variable spécifiée par la propriété « %2 ».


-1071607599 SRCUNABLE
TOGETXML
DATAVARIA
BLE

0xC02090D2 DTS_E_NOD %1 contient un RowsetID avec la valeur %2 qui ne fait pas référence à
-1071607598 ATATABLEM une table de données dans le schéma.
ATCHROWI
D

0xC02090D6 DTS_E_TXAG La propriété %1 doit être vide, ou comporter un nombre entre %2!u!
-1071607594 G_BADKEYS et %3!u!. La propriété Keys ou CountDistinctKeys possède une valeur
VALUE incorrecte. Cette propriété doit correspondre à un nombre entre 0 et
ULONG_MAX inclus, ou elle ne doit pas être définie.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02090D7 DTS_E_TXAG Le composant d'agrégation a rencontré un nombre de combinaisons


-1071607593 G_TOOMAN de clés distinctes trop important. Il ne peut pas gérer plus de %1!u!
YKEYS valeurs de clés distinctes. L'espace de travail principal comporte plus
de valeurs de clés distinctes que ULONG_MAX.

0xC02090D8 DTS_E_TXAG Le composant d'agrégation a rencontré un nombre de valeurs


-1071607592 G_TOOMAN distinctes trop important lors du calcul de l'agrégation Count Distinct.
YCOUNTDIS Il ne peut pas gérer plus de %1!u! valeurs distinctes. Un nombre de
TINCTVALU valeurs distinctes supérieur à ULONG_MAX a été trouvé lors du calcul
ES de l'agrégation Count Distinct.

0xC02090D9 DTS_E_FAILE Échec de la tentative d'écriture dans la colonne de nom de fichier.


-1071607591 DTOWRITET Code d'erreur : 0x%1!8.8X!.
OTHEFILEN
AMECOLUM
N

0xC02090DC DTS_E_FAILE Une erreur s'est produite, mais il est impossible de déterminer la
-1071607588 DTOFINDER colonne à l'origine de cette erreur.
RORCOLUM
N

0xC02090E3 DTS_E_TXLO Impossible de mettre à niveau les métadonnées de recherche à partir


-1071607581 OKUP_FAILE de la version %1!d! vers %2!d!. La transformation de recherche n'a pu
DUPGRADE_ mettre à niveau les métadonnées à partir du numéro de version
BAD_VERSI existant dans un appel à PerformUpgrade().
ON

0xC02090E5 DTS_E_TER Échec de la recherche d'une limite de fin de phrase.


-1071607579 MEXTRACTI
ONORLOOK
UP_NTEXTS
PLITED

0xC02090E6 DTS_E_TER La transformation d'extraction de terme est incapable de traiter le


-1071607578 MEXTRACTI texte d'entrée car une phrase du texte d'entrée est trop longue. Cette
ON_EXCEED phrase est segmentée en plusieurs phrases.
_MAXWOR
DNUM

0xC02090E7 DTS_E_XML %1 n'a pu lire les données XML. %2


-1071607577 SRCFAILEDT
OCREATERE
ADER
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02090F0 DTS_E_TXLO Échec de l'appel vers la méthode de transformation de recherche


-1071607568 OKUP_REINI ReinitializeMetadata.
TMETADATA
FAILED

0xC02090F1 DTS_E_TXLO La transformation de recherche doit contenir au moins une colonne


-1071607567 OKUP_NOJ d'entrée jointe à une colonne de référence, mais aucune colonne n'a
OINS été spécifiée. Vous devez spécifier au moins une colonne de jointure.

0xC02090F2 DTS_E_MAN La chaîne de message en cours de publication par l'infrastructure


-1071607566 AGEDERR_B d'erreur gérée contient une spécification de format incorrecte. Il s'agit
ADFORMAT d'une erreur interne.
SPECIFICATI
ON

0xC02090F3 DTS_E_MAN Lors de la mise en forme d'une chaîne de message à l'aide de


-1071607565 AGEDERR_U l'infrastructure d'erreur gérée, un type Variant ne possédant pas de
NSUPPORTE prise en charge de la mise en forme a été détecté. Il s'agit d'une erreur
DTYPE interne.

0xC02090F5 DTS_E_DATA %1 n'a pu traiter les données. %2


-1071607563 READERSRC
UNABLETOP
ROCESSDAT
A

0xC02090F6 DTS_E_XML La propriété « %1 » sur %2 était vide.


-1071607562 SRCEMPTYP
ROPERTY

0xC02090F7 DTS_E_XML Échec de la tentative de création d'une sortie nommée « %1 » pour la


-1071607561 SRCINVALID table XML avec le chemin d'accès « %2 », car ce nom n'est pas valide.
OUTPUTNA
ME

0xC02090F8 DTS_E_MGD La valeur était trop grande pour tenir dans le %1.
-1071607560 SRC_OVERF
LOW

0xC02090F9 DTS_E_DATA %1 n'a pu traiter les données.


-1071607559 READERDES
TUNABLETO
PROCESSDA
TA
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02090FA DTS_E_XML Échec de « %1 » en raison d’une troncation. De plus, la disposition de


-1071607558 SRC_INDUC la ligne de troncation sur « %2 » au niveau de « %3 » indique une
EDTRANSFO erreur au niveau de la troncation. Une erreur de troncation s'est
RMFAILURE produite sur l'objet spécifié du composant spécifié.
ONTRUNCA
TION

0xC02090FB DTS_E_XML Échec de l'objet « %1 » en raison du code d'erreur 0x%2!8.8X!. En


-1071607557 SRC_INDUC outre, la disposition de la ligne d'erreur sur « %3 » au niveau de « %4 »
EDTRANSFO spécifie un échec sur l'erreur. Une erreur s'est produite sur l'objet
RMFAILURE spécifié du composant spécifié.
ONERROR

0xC0209291 DTS_E_SQLC La destination SQLCE n'a pas pu définir les valeurs des colonnes pour
-1071607151 EDESTSTATI la ligne.
C_FAILEDTO
SETVALUES

0xC0209292 DTS_E_SQLC La destination SQLCE n'a pu insérer la ligne.


-1071607150 EDESTSTATI
C_FAILEDTO
INSERT

0xC0209293 DTS_E_TXFU Erreur OLEDB rencontrée lors du chargement des métadonnées de la


-1071607149 ZZYLOOKUP colonne.
_OLEDBERR
_LOADCOLU
MNMETADA
TA

0xC0209294 DTS_E_TXFU La recherche de métadonnées de référence contient un nombre de


-1071607148 ZZYLOOKUP colonnes insuffisant.
_TOOFEWRE
FERENCECO
LUMNS

0xC0209295 DTS_E_TXSC Erreur OLEDB rencontrée lors du chargement des métadonnées de la


-1071607147 D_OLEDBER colonne.
R_LOADCOL
UMNMETA
DATA
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0209296 DTS_E_TXSC La recherche de métadonnées de référence contient un nombre de


-1071607146 D_TOOFEW colonnes insuffisant.
REFERENCE
COLUMNS

0xC0209297 DTS_E_TXSC Impossible d'allouer de la mémoire.


-1071607145 D_MALLOCE
RR_REFERE
NCECOLUM
NINFO

0xC0209298 DTS_E_TXSC Impossible d'allouer de la mémoire.


-1071607144 D_MALLOCE
RR_BUFFCO
L

0xC0209299 DTS_E_TXSC Impossible de créer le tampon d'espace de travail.


-1071607143 D_MAINWO
RKSPACE_C
REATEERR

0xC020929A DTS_E_DTPX Impossible d'instancier le document DOM XML. Vérifiez que les
-1071607142 MLDOMCRE binaires MSXML sont correctement installés et inscrits.
ATEERROR

0xC020929B DTS_E_DTPX Impossible de charger des données XML dans un DOM local pour le
-1071607141 MLDOMLO traitement.
ADERROR

0xC020929C DTS_E_RSTD Le type de la variable d'exécution « %1 » est incorrect. La variable


-1071607140 ESTBADVAR d'exécution doit posséder le type Object.
IABLETYPE

0xC020929E DTS_E_XML L'adaptateur de source XML n'a pas pu traiter les données XML.
-1071607138 DATAREADE Plusieurs schémas inclus ne sont pas pris en charge.
RMULTIPLEI
NLINEXMLS
CHEMASNO
TSUPPORTE
D
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020929F DTS_E_XML L'adaptateur de source XML n'a pas pu traiter les données XML.
-1071607137 DATAREADE Impossible de déclarer le contenu d'un élément avec la valeur
RANYTYPEN anyType.
OTSUPPORT
ED

0xC02092A0 DTS_E_XML L'adaptateur de source XML n'a pas pu traiter les données XML. Le
-1071607136 DATAREADE contenu d'un élément ne peut renfermer une référence (réf) à un
RGROUPREF groupe.
NOTSUPPO
RTED

0xC02092A1 DTS_E_XML L'adaptateur de source XML ne prend pas en charge le modèle de


-1071607135 DATAREADE contenu mixte sur des types complexes.
RMIXEDCO
NTENTFORC
OMPLEXTYP
ESNOTSUPP
ORTED

0xC02092A2 DTS_E_XML L'adaptateur de source XML n'a pas pu traiter les données XML. Un
-1071607134 DATAREADE schéma inclus doit constituer le premier nœud enfant dans les
RINLINESCH données XML sources.
EMAFOUND
INSOURCEX
ML

0xC02092A3 DTS_E_XML L'adaptateur de source XML n'a pas pu traiter les données XML. Aucun
-1071607133 DATAREADE schéma inclus n'a été trouvé dans les données XML sources, mais la
RNOINLINE valeur True a été attribuée à la propriété « UseInlineSchema ».
SCHEMAFO
UND

0xC02092A4 DTS_E_CON Ce composant ne peut utiliser un gestionnaire de connexions qui


-1071607132 NECTIONM conserve sa connexion dans une transaction avec Fastload ou Bulk
ANAGERTR Insert.
ANSACTED
ANDRETAIN
EDINBULKI
NSERT
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02092A5 DTS_E_OUT Impossible de définir %1 pour rediriger l'erreur à l'aide d'une


-1071607131 PUTREDIRE connexion dans une transaction.
CTINTRANS
ACTIONNOT
ALLOWED

0xC02092A6 DTS_E_FOU Le %1 ne possède pas de colonne d'entrée ou de sortie


-1071607130 NDORPHAN correspondante.
EDEXTERNA
LMETADATA
COLUMN

0xC02092A9 DTS_E_RAW Il n'y a pas de colonne sélectionnée pour être écrite dans le fichier.
-1071607127 DESTNOINP
UTCOLUMN
S

0xC02092AA DTS_E_RAW Le %1 possède un type de données non valide. Les colonnes


-1071607126 DESTBLOBD possédant des types de données DT_IMAGE, DT_TEXT et DT_NTEXT ne
ATATYPE peuvent pas être écrites dans des fichiers bruts.

0xC02092AB DTS_E_RAW La collection de métadonnées externes est utilisée de manière


-1071607125 DESTWRON incorrecte par ce composant. Celui-ci doit utiliser des métadonnées
GEXTERNAL externes lors de l'ajout à un fichier existant ou de la troncation de ce
METADATA fichier. Sinon, les métadonnées externes ne sont pas nécessaires.
USAGE

0xC02092AC DTS_E_RAW La colonne %1 est mappée sur une colonne de métadonnées externes
-1071607124 DESTMAPPE avec l'ID %2!d!. Les colonnes d'entrée ne doivent pas être mappées sur
DINPUTCOL des colonnes de métadonnées externes lorsque la valeur de l'option
UMN d'écriture sélectionnée est Toujours créer.

0xC02092AD DTS_E_RAW Impossible d’ouvrir le fichier pour la lecture des métadonnées. Si le


-1071607123 FILECANTO fichier n'existe pas et que le composant a déjà défini des métadonnées
PENFORME externes, vous pouvez définir la propriété « ValidateExternalMetadata
TADATA » à la valeur « False » et le fichier sera créé au moment de l'exécution.

0xC02092AE DTS_E_FAILE Échec de l'accès aux données LOB à partir du tampon de flux de
-1071607122 DTOACCESS données pour la colonne de source de données « %1 » avec le code
LOBCOLUM d'erreur 0x%2!8.8X!.
N
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC02092AF DTS_E_XML %1 n'a pu traiter les données XML. %2


-1071607121 SRCUNABLE
TOPROCESS
XMLDATA

0xC02092B0 DTS_E_XML L'adaptateur de source XML n'a pas pu traiter les données XML.
-1071607120 SRCSTATIC_
UNABLETOP
ROCESSXML
DATA

0xC02092B1 DTS_E_RAWI La valeur %1!d! n'est pas reconnue comme un mode d'accès valide.
-1071607119 NVALIDACC
ESSMODE

0xC02092B2 DTS_E_INCO Des informations de métadonnées complètes pour la colonne source


-1071607118 MPLETEDAT des données « %1 » ne sont pas disponibles. Vérifiez que la colonne
ASOURCEC est définie correctement dans la source de données.
OLUMNFOU
ND

0xC02092B3 DTS_E_TXAU Seules les longueurs des colonnes Nom d'utilisateur, Nom du package,
-1071607117 DIT_ONLYST Nom de la tâche et Nom de l'ordinateur peuvent être modifiées.
RINGLENGT Toutes les autres informations datatype de colonne d'audit sont en
HCHANGEA lecture seule.
LLOWED

0xC02092B4 DTS_E_ROW Un ensemble de lignes basé sur la commande SQL n'a pas été
-1071607116 SETUNAVAI retourné par le fournisseur OLE DB.
LABLE

0xC02092B5 DTS_E_COM Échec d'une validation.


-1071607115 MITFAILED

0xC02092B6 DTS_E_USEB La propriété personnalisée « %1 » de %2 ne peut être utilisée qu'avec


-1071607114 INARYFOR des fichiers ANSI.
MATREQUIR
ESANSIFILE

0xC02092B7 DTS_E_USEB La propriété personnalisée « %1 » de %2 ne peut être utilisée qu'avec


-1071607113 INARYFOR DT_BYTES.
MATREQUIR
ESBYTES
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC0209302 DTS_E_OLED Code d'erreur SSIS DTS_E_OLEDB_NOPROVIDER_ERROR. Le fournisseur


-1071607038 B_NOPROVI OLE DB demandé %2 n'est pas inscrit. Code d’erreur : 0x%1!8.8X!.
DER_ERROR

0xC0209303 DTS_E_OLED Code d'erreur SSIS DTS_E_OLEDB_NOPROVIDER_64BIT_ERROR. Le


-1071607037 B_NOPROVI fournisseur OLE DB demandé %2 n'est pas inscrit ; il est possible
DER_64BIT_ qu'aucun fournisseur 64 bits ne soit disponible. Code d’erreur :
ERROR 0x%1!8.8X!.

0xC0209306 DTS_E_MUL La colonne de cache, « %1 », est mappée à plusieurs colonnes.


-1071607034 TICACHECO Supprimez les mappages de colonne dupliqués.
LMAPPINGS

0xC0209307 DTS_E_COL Le %1 n'est pas mappé à une colonne de cache valide.


-1071607033 NOTMAPPE
DTOCACHE
COL

0xC0209308 DTS_E_CAC Impossible de mapper la colonne d'entrée « %1 » et la colonne de


-1071607032 HECOLDATA cache « %2 », car les types de données ne correspondent pas.
TYPEINCOM
PAT

0xC0209309 DTS_E_INCO Le nombre de colonnes d'entrée ne correspond pas au nombre de


-1071607031 RRECTINPU colonnes du cache.
TCACHECOL
COUNT

0xC020930A DTS_E_INVA Le nom du fichier cache n'est pas fourni ou n'est pas valide. Fournissez
-1071607030 LIDCACHEFI un nom de fichier cache valide.
LENAME

0xC020930B DTS_E_CAC La position d'index de la colonne, « %1 », est différente de la position


-1071607029 HECOLINDE d'index de la colonne du gestionnaire de connexions du cache, « %2 ».
XPOSMISM
ATCH

0xC020930C DTS_E_FAILE Impossible de charger le cache à partir du fichier, « %1 ».


-1071607028 DTOLOADC
ACHE

0xC020930D DTS_E_TXLO La colonne d'entrée de recherche %1 fait référence à une colonne de


-1071607027 OKUP_REFC cache autre qu'une colonne d'index %2.
OLUMNISN
OTINDEX
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020930E DTS_E_FAILE Impossible d'obtenir la chaîne de connexion.


-1071607026 DTOGETCO
NNECTIONS
TRING

0xC020930F DTS_E_CAC Impossible de mapper la colonne d'entrée « %1 » et la colonne de


-1071607025 HECOLDATA cache « %2 », car une ou plusieurs propriétés de type de données ne
TYPEPROPI correspondent pas.
NCOMPAT

0xC0209311 DTS_E_CAC Impossible de trouver la colonne de cache « %1 » dans le cache.


-1071607023 HECOLUMN
OTFOUND

0xC0209312 DTS_E_CAC Impossible de mapper %1 à une colonne de cache. Le hresult est


-1071607022 HECOLUMN 0x%2!8.8X!.
MAPPINGFA
ILED

0xC0209313 DTS_E_CAC Le %1 ne peut pas écrire dans le cache parce que le cache a été chargé
-1071607021 HELOADEDF à partir d'un fichier par %2.
ROMFILE

0xC0209314 DTS_E_CAC Le %1 ne peut pas charger le cache à partir du fichier « %2 » parce que
-1071607020 HERELOADE le cache a déjà été chargé à partir du fichier « %3 ».
DDIFFEREN
TFILES

0xC0209316 DTS_E_OUT La sortie portant l'ID %1!d! du composant d'agrégation n'est utilisée
-1071607018 PUTNOTUSE par aucun composant. Supprimez-la ou associez-la à une entrée d'un
D composant.

0xC0209317 DTS_E_CAC %1 n'a pas pu écrire le cache dans le fichier « %2 ». Le hresult est
-1071607017 HEFILEWRIT 0x%3!8.8X!.
EFAILED

0xC0209318 DTS_E_XML Les informations de type de données de schéma XML de « %1 » sur


-1071607016 DATATYPEC l'élément « %2 » ont été modifiées. Réinitialisez les métadonnées de
HANGED ce composant et passez en revue le mappage de colonnes.

0xC0209319 DTS_E_TXLO %1 n'est pas utilisée dans la jointure ou la copie. Supprimez la colonne
-1071607015 OKUP_UNU inutile de la liste des colonnes d'entrée.
SEDINPUTC
OLUMN
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0xC020931A DTS_E_SORT Le tri a échoué en raison d'un dépassement de capacité de la pile en


-1071607014 STACKOVER triant une mémoire tampon entrante. Veuillez réduire la propriété
FLOW DefaultBufferMaxRows sur la tâche de flux de données.

0xC020F42A DTS_E_OLED Envisagez de changer le FOURNISSEUR dans la chaîne de connexion à


-1071582166 B_OLDPROV %1, ou accédez à https://www.microsoft.com/downloads pour
IDER_ERRO rechercher et installer la prise en charge de %2.
R

DTS_E_INITT Échec de l'initialisation de l'objet de tâche pour la tâche « %1!s! », type


ASKOBJECTF « %2!s! » en raison de l'erreur 0x%3!8.8X! « %4!s! ».
AILED

DTS_E_GETC Impossible de créer un gestionnaire de catégories de composants


ATMANAGE COM en raison de l’erreur 0x%1!8.8X! « %2!s! ».
RFAILED

DTS_E_COM Échec de l'initialisation du composant %1!s! en raison de l’erreur


PONENTINI 0x%2!8.8X! « %3!s! ».
TFAILED

Messages d’avertissement
Les noms symboliques des messages d’avertissement de Integration Services
commencent par DTS_W_ .

Valeur Nom Description


hexadécimale symbolique
&
Code décimal

0x80000036 DTS_W_COU Il reste %1!lu! jours d'évaluation. Une fois expiré, le package ne p
-2147483594 NTDOWN ourra plus être exécuté.

0x80010015 DTS_W_GEN Avertissement(s) soulevés. Des avertissements plus spécifiques qu


-2147418091 ERICWARNI i précèdent celui-ci devraient s'afficher pour expliquer les détails
NG des avertissements.

0x80012010 DTS_W_FAIL Impossible de créer une instance d'objet de document XML. Vérifi
-2147409904 EDXMLDOC ez que MSXML est correctement installé et enregistré.
CREATION
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x80012011 DTS_W_FAIL Impossible de charger le fichier de configuration XML. Ce dernier


-2147409903 EDCONFIGL est peut-être mal formé ou non valide.
OAD

0x80012012 DTS_W_CO Le nom de fichier de configuration « %1 » n'est pas valide. Vérifie


-2147409902 NFIGFILENA z le nom du fichier de configuration.
MEINVALID

0x80012013 DTS_W_CO Le fichier de configuration est chargé, mais non valide. Son forma
-2147409901 NFIGFILEINV t est incorrect, un élément est absent ou il est endommagé.
ALID

0x80012014 DTS_W_CO Le fichier de configuration « %1 » est introuvable. Vérifiez le réper


-2147409900 NFIGFILENO toire et le nom du fichier.
TFOUND

0x80012015 DTS_W_CO La clé du Registre de configuration « %1 » est introuvable. Une en


-2147409899 NFIGKEYNO trée de configuration spécifie une clé de Registre qui n'est pas dis
TFOUND ponible. Consultez le Registre pour vous assurer que la clé y figur
e.

0x80012016 DTS_W_CO Le type de configuration dans l'une des entrées de configuration


-2147409898 NFIGTYPEIN n'était pas valide. Les types valides sont répertoriés dans la liste D
VALID TSConfigurationType.

0x80012017 DTS_W_CAN Le chemin d'accès au package a référencé un objet qui est introu
-2147409897 NOTFINDO vable : « %1 ». Ceci se produit lorsqu'une tentative est effectuée p
BJECT our résoudre un chemin de package vers un objet qui est introuv
able.

0x80012018 DTS_W_CO Le format de l'entrée de configuration « %1 » est incorrect, car il


-2147409896 NFIGFORMA ne commence pas par le séparateur de packages. Ajoutez « \pack
TINVALID_P age » devant le chemin d'accès au package.
ACKAGEDEL
IMITER

0x80012019 DTS_W_CO Le format de l'entrée de configuration « %1 » est incorrect. Ceci p


-2147409895 NFIGFORMA eut se produire en raison d'un séparateur absent ou d'erreurs de f
TINVALID ormat, comme un séparateur de tableaux non valide.

0x8001201A DTS_W_NOP La configuration à partir d'une variable parente « %1 » ne s'est pa


-2147409894 ARENTVARI s produite, car il n'y avait pas de collection de variables parentes.
ABLES
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x8001201B DTS_W_CO Échec de l'importation du fichier de configuration : « %1 ».


-2147409893 NFIGFILEFAI
LEDIMPORT

0x8001201C DTS_W_PAR La configuration à partir d'une variable parente « %1 » ne s'est pa


-2147409892 ENTVARIAB s produite, car il n'y avait pas de variable parente. Code d’erreur :
LENOTFOU 0x%2!8.8X!.
ND

0x8001201D DTS_W_CO Le fichier de configuration était vide et ne contenait aucune entré


-2147409891 NFIGFILEEM e de configuration.
PTY

0x80012023 DTS_W_INV Le type de configuration de la configuration « %1 » n'est pas vali


-2147409885 ALIDCONFI de. Ceci peut se produire lorsqu'une tentative est effectuée pour
GURATIONT définir la propriété du type d'un objet de configuration sur un typ
YPE e de configuration non valide.

0x80012025 DTS_W_REG Le type de configuration de la configuration du Registre est intro


-2147409883 ISTRYCONFI uvable dans la clé « %1 ». Ajoutez une valeur appelée ConfigType
GURATIONT à la clé de Registre et donnez-lui une valeur de chaîne de « Variab
YPENOTFO le », « Property », « ConnectionManager », « LoggingProvider » o
UND u « ForEachEnumerator ».

0x80012026 DTS_W_REG La valeur de configuration de la configuration du Registre est intr


-2147409882 ISTRYCONFI ouvable dans la clé « %1 ». Ajoutez une valeur appelée Value à la
GURATIONV clé de Registre de type DWORD ou String.
ALUENOTF
OUND

0x80012028 DTS_W_PRO La configuration du processus n'a pas réussi à définir la destinatio


-2147409880 CESSCONFI n dans le chemin d'accès du package de « %1 ». Ceci se produit l
GURATIONF orsque la tentative de définition d'une propriété ou d'une variabl
AILEDSET e de destination échoue. Vérifiez la propriété ou la variable de de
stination.

0x80012032 DTS_W_CO Impossible d'extraire la valeur du fichier .ini. La section Configure


-2147409870 NFIGUREDV dValue est vide ou n'existe pas : « %1 ».
ALUESECTIO
NEMPTY

0x80012033 DTS_W_CO Impossible d'extraire la valeur du fichier .ini. La section Configure


-2147409869 NFIGUREDT dType est vide ou n'existe pas : « %1 ».
YPESECTIO
NEMPTY
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x80012034 DTS_W_PAC Impossible d'extraire la valeur du fichier .ini. La section PackagePa


-2147409868 KAGEPATHS th est vide ou n'existe pas : « %1 ».
ECTIONEMP
TY

0x80012035 DTS_W_CO Impossible d'extraire la valeur du fichier .ini. La section Configure


-2147409867 NFIGUREDV dValueType est vide ou n'existe pas : « %1 ».
ALUETYPE

0x80012051 DTS_W_SQL L'importation de la configuration de SQL Server a échoué : « %1


-2147409839 SERVERFAIL ».
EDIMPORT

0x80012052 DTS_W_INIC Le fichier de configuration .ini n'est pas valide en raison de cham
-2147409838 ONFIGURAT ps absents ou vides.
IONPROBLE
M

0x80012054 DTS_W_NO La table « %1 » ne comporte pas d'enregistrement de configurati


-2147409836 RECORDSF on. Ceci se produit lors de la configuration à partir d'une table SQ
OUNDINTA L Server qui ne comporte pas d'enregistrement de configuration.
BLE

0x80012055 DTS_W_DUP Erreur lors de l'utilisation d'un même nom pour différents événe
-2147409835 LICATECUST ments personnalisés. L'événement personnalisé « %1 » a été défin
OMEVENT i différemment par différents enfants de ce conteneur. Une erreur
peut apparaître lors de l'exécution du gestionnaire d'événements.

0x80012057 DTS_W_CO La configuration a tenté de modifier une variable en lecture seule.


-2147409833 NFIGREADO La variable est dans le chemin d'accès au package « %1 ».
NLYVARIABL
E

0x80012058 DTS_W_CO L'appel de la propriété ProcessConfiguration sur le package a éch


-2147409832 NFIGPROCE oué. La configuration a tenté de modifier la propriété dans le che
SSCONFIGU min d'accès au package « %1 ».
RATIONFAIL
ED

0x80012059 DTS_W_ONE Impossible de charger au moins une des entrées de configuration


-2147409831 ORMORECO du package. Recherchez dans les entrées de configuration pour «
NFIGLOADF %1 » et les précédents avertissements les descriptions de la confi
AILED guration qui a échoué.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x8001205A DTS_W_CO L'entrée de configuration « %1 » du fichier de configuration n'est


-2147409830 NFIGNODEI pas valide ou n'a pas réussi à configurer la variable. Le nom indiq
NVALID ue l'entrée qui a échoué. Dans certains cas, le nom n'est pas disp
onible.

0x80014058 DTS_W_FAIL Cette tâche ou ce conteneur a échoué, mais puisque la propriété


-2147401640 URENOTRES FailPackageOnFailure a la valeur FALSE, le package va continuer. C
TARTABLE et avertissement est publié lorsque la propriété SaveCheckpoints
du package a la valeur TRUE et que la tâche ou le conteneur écho
ue.

0x80017101 DTS_W_EMP Le chemin d'accès est vide.


-2147389183 TYPATH

0x80019002 DTS_W_MA Code d'avertissement SSIS DTS_W_MAXIMUMERRORCOUNTREAC


-2147381246 XIMUMERR HED. La méthode Execution a réussi, mais le nombre d'erreurs dét
ORCOUNTR ectées (%1!d!) a atteint le maximum autorisé (%2!d!) ; aboutissant
EACHED à un échec. Ceci se produit lorsque le nombre d'erreurs atteint le
nombre spécifié dans MaximumErrorCount. Modifiez la valeur de
MaximumErrorCount ou résolvez les erreurs.

0x80019003 DTS_W_CO La variable d'environnement de configuration est introuvable. La


-2147381245 NFIGENVVA variable d'environnement est : « %1 ». Ceci se produit lorsqu'un p
RNOTFOUN ackage spécifie une variable d'environnement pour un paramètre
D de configuration, mais qu'elle est introuvable. Vérifiez dans la coll
ection de configurations du package si la variable d'environneme
nt spécifiée est disponible est valide.

0x80019316 DTS_W_CO Le nom de fournisseur « %2 » du gestionnaire de connexions « %


-2147380458 NNECTIONP 1 » a été remplacé par « %3 ».
ROVIDERCH
ANGE

0x80019317 DTS_W_REA Une exception s'est produite lors de la lecture des fichiers de map
-2147380457 DEXTMAPF page de mise à niveau. L'exception est « %1 ».
AILED

0x80019318 DTS_W_DUP Le fichier « %1 » contient un mappage en double. La balise est «


-2147380456 LICATEMAP %2 » et la clé est « %3 ».
PINGKEY

0x80019319 DTS_W_IMP L'extension « %1 » a été implicitement mise à niveau vers « %2 ».


-2147380455 LICITUPGRA Ajoutez un mappage pour cette extension au répertoire Upgrade
DEMAPPIN Mappings.
G
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x8001931A DTS_W_INV Le fichier « %1 » contient un mappage non valide. Les valeurs ne


-2147380454 ALIDEXTEN peuvent pas être Null ou vides. La balise est « %2 », la clé est « %
SIONMAPPI 3 » et la valeur est « %4 ».
NG

0x8001931C DTS_W_AD La propriété DataTypeCompatibility du gestionnaire de connexion


-2147380452 OCONNECT s de type ADO « %1 » a été définie sur 80 pour des raisons de co
IONDATATY mpatibilité descendante.
PECOMPATC
HANGE

0x8001C004 DTS_W_FILE L'énumérateur For Each File est vide. Il n'a trouvé aucun fichier qu
-2147368956 ENUMEMPT i correspondait au modèle de fichier, ou le répertoire spécifié est
Y vide.

0x8001F02F DTS_W_COU Impossible de résoudre un chemin de package vers un objet dans


-2147356625 LDNOTRES le package « %1 ». Vérifiez que le chemin d'accès du package est
OLVEPACKA valide.
GEPATH

0x8001F203 DTS_W_ITER L'expression d'itération n'est pas une expression d'assignation : «


-2147356157 ATIONEXPR %1 ». Cette erreur se produit généralement lorsque l'expression d
ESSIONISN e l'expression d'assignation sur le ForLoop n'est pas une expressi
OTASSIGNM on d'assignation.
ENT

0x8001F204 DTS_W_INIT L'expression d'initialisation n'est pas une expression d'assignatio


-2147356156 IALIZATION n : « %1 ». Cette erreur se produit généralement lorsque l'expressi
EXPRESSIO on des expressions d'itération sur le ForLoop n'est pas une expres
NISNOTASSI sion d'assignation.
GNMENT

0x8001F205 DTS_W_LOG L'exécutable « %1 » a été correctement collé. Toutefois, un modul


-2147356155 PROVIDERN e fournisseur d'informations auparavant associé à l'exécutable est
OTDEFINED introuvable dans la collection « LogProviders ». L'exécutable a été
collé sans informations du module fournisseur d'informations.

0x8001F300 DTS_W_PAC La mise à niveau du package a réussi.


-2147355904 KAGEUPGR
ADED

0x8001F42B DTS_W_LEG Le ProgID « %1 » est déconseillé. Le nouveau ProgID pour ce com


-2147355605 ACYPROGID posant « %2 » doit être utilisé à la place.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x80020918 DTS_W_FTPT Échec de l'opération « %1 ».


-2147350248 ASK_OPERA
TIONFAILUR
E

0x800283A5 DTS_W_MS L'algorithme de chiffrement « %1 » utilise un chiffrement faible.


-2147318875 MQTASK_US
E_WEAK_EN
CRYPTION

0x80029164 DTS_W_FST La tâche n'a pas réussi à exécuter l'opération « %1 ».


-2147315356 ASK_OPERA
TIONFAILUR
E

0x80029185 DTS_W_EXE Le fichier/processus « %1 » n'est pas dans le chemin d'accès.


-2147315323 CPROCTASK
_FILENOTIN
PATH

0x800291C6 DTS_W_SEN Le sujet est vide.


-2147315258 DMAILTASK
_SUBJECT_
MISSING

0x800291C7 DTS_W_SEN L'adresse dans la ligne « À » est mal formée. Le symbole « \@ » e


-2147315257 DMAILTASK st absent ou elle n'est pas valide.
_ERROR_IN_
TO_LINE

0x800291C8 DTS_W_SEN L'adresse dans la ligne « De » est mal formée. Le symbole « \@ »


-2147315256 DMAILTASK est absent ou elle n'est pas valide.
_AT_MISSIN
G_IN_FROM

0x8002927A DTS_W_XML Les deux documents XML sont différents.


-2147315078 TASK_DIFFF
AILURE

0x8002928C DTS_W_XML La validation DTD utilisera le fichier DTD défini dans la ligne DOC
-2147315060 TASK_DTDV TYPE du document XML. Elle n'utilisera pas ce qui est attribué à la
ALIDATION propriété « %1 ».
WARNING
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x8002928D DTS_W_XML La tâche n'a pas réussi à valider « %1 ».


-2147315059 TASK_VALID
ATIONFAILU
RE

0x80029291 DTS_W_TRA La valeur de l'action de transfert n'était pas valide. Elle va être déf
-2147315055 NSFERDBTA inie à une copie.
SK_ACTION
SETTOCOPY

0x80029292 DTS_W_TRA La valeur de la méthode de transfert n'était pas valide. Elle va être
-2147315054 NSFERDBTA définie à un transfert en ligne.
SK_METHO
DSETTOONL
INE

0x8002F304 DTS_W_PRO Un problème est survenu avec les messages suivants : « %1 ».


-2147290364 BLEMOCCU
RREDWITHF
OLLOWING
MESSAGE

0x8002F322 DTS_W_ERR Le message d'erreur « %1 » existe déjà sur le serveur de destinati


-2147290334 MSGTASK_E on.
RRORMESS
AGEALREAD
YEXISTS

0x8002F331 DTS_W_JOB Le travail « %1 » existe déjà sur le serveur de destination.


-2147290319 STASK_JOBE
XISTSATDES
T

0x8002F332 DTS_W_JOB Le transfert du travail « %1 » est ignoré car ce travail existe déjà à
-2147290318 STASK_SKIP la destination.
PINGJOBEXI
STSATDEST

0x8002F333 DTS_W_JOB Remplacement du travail « %1 » sur le serveur de destination.


-2147290317 STASK_OVE
RWRITINGJ
OB
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x8002F339 DTS_W_LOG La valeur d'énumération permanente de la propriété « FailIfExists


-2147290311 INSTASK_EN » a été modifiée et a été rendue non valide. Réinitialisation à la va
UMVALUEIN leur par défaut.
CORRECT

0x8002F343 DTS_W_LOG Remplacement du nom d'accès « %1 » à la destination.


-2147290301 INSTASK_O
VERWRITIN
GLOGINATD
EST

0x8002F356 DTS_W_TRA La procédure stockée « %1 » existe déjà à la destination.


-2147290282 NSOBJECTS
TASK_SPALR
EADYATDES
T

0x8002F360 DTS_W_TRA La règle « %1 » existe déjà à la destination.


-2147290272 NSOBJECTS
TASK_RULE
ALREADYAT
DEST

0x8002F364 DTS_W_TRA La table « %1 » existe déjà à la destination.


-2147290268 NSOBJECTS
TASK_TABLE
ALREADYAT
DEST

0x8002F368 DTS_W_TRA La vue « %1 » existe déjà à la destination.


-2147290264 NSOBJECTS
TASK_VIEW
ALREADYAT
DEST

0x8002F372 DTS_W_TRA La fonction définie par l'utilisateur « %1 » existe déjà à la destinati


-2147290254 NSOBJECTS on.
TASK_UDFA
LREADYATD
EST
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x8002F376 DTS_W_TRA La valeur par défaut « %1 » existe déjà à la destination.


-2147290250 NSOBJECTS
TASK_DEFA
ULTALREAD
YATDEST

0x8002F380 DTS_W_TRA Le type de données défini par l'utilisateur « %1 » existe déjà à la d


-2147290240 NSOBJECTS estination.
TASK_UDDT
ALREADYAT
DEST

0x8002F384 DTS_W_TRA La fonction de partition « %1 » existe déjà à la destination.


-2147290236 NSOBJECTS
TASK_PFALR
EADYATDES
T

0x8002F388 DTS_W_TRA Le schéma de partition « %1 » existe déjà à la destination.


-2147290232 NSOBJECTS
TASK_PSALR
EADYATDES
T

0x8002F391 DTS_W_TRA Le schéma « %1 » existe déjà à la destination.


-2147290223 NSOBJECTS
TASK_SCHE
MAALREAD
YATDEST

0x8002F396 DTS_W_TRA SqlAssembly « %1 » existe déjà à la destination.


-2147290218 NSOBJECTS
TASK_SQLA
SSEMBLYAL
READYATDE
ST

0x8002F400 DTS_W_TRA La fonction d'agrégation définie par l'utilisateur « %1 » existe déjà


-2147290112 NSOBJECTS à la destination.
TASK_AGGR
EGATEALRE
ADYATDEST
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x8002F404 DTS_W_TRA Le type défini par l'utilisateur « %1 » existe déjà à la destination.


-2147290108 NSOBJECTS
TASK_TYPEA
LREADYATD
EST

0x8002F408 DTS_W_TRA XmlSchemaCollection « %1 » existe déjà à la destination.


-2147290104 NSOBJECTS
TASK_XMLS
CHEMACOL
LECTIONAL
READYATDE
ST

0x8002F412 DTS_W_TRA Aucun élément spécifié à transférer.


-2147290094 NSOBJECTS
TASK_NOEL
EMENTSPEC
IFIEDTOTRA
NSFER

0x8002F415 DTS_W_TRA Le nom d'accès « %1 » existe déjà à la destination.


-2147290091 NSOBJECTS
TASK_LOGI
NALREADYA
TDEST

0x8002F41A DTS_W_TRA L'utilisateur « %1 » existe déjà à la destination.


-2147290086 NSOBJECTS
TASK_USER
ALREADYAT
DEST

0x80047007 DTS_W_NOL Les ID de lignage des colonnes d'entrée ne peuvent pas être valid
-2147192825 INEAGEVALI ées, car les arborescences d'exécution contiennent des cycles.
DATION

0x80047034 DTS_W_EMP La tâche DataFlow n'a pas de composant. Ajoutez des composant
-2147192780 TYDATAFLO s ou supprimez la tâche.
W
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x80047069 DTS_W_SOR La propriété IsSorted de %1 a la valeur TRUE, mais les propriétés


-2147192727 TEDOUTPUT SortKeyPositions de toutes ses colonnes de sortie sont définies à
HASNOSOR zéro.
TKEYPOSITI
ONS

0x8004706F DTS_W_SOU La source « %1 » (%2!d!) ne sera pas lue, car ses données ne sero
-2147192721 RCEREMOV nt jamais visibles en dehors de la tâche de flux de données.
ED

0x80047076 DTS_W_UN La colonne de sortie « %1 » (%2!d!) à la sortie « %3 » (%4!d!) et d


-2147192714 USEDOUTP ans le composant « %5 » (%6!d!) n'est pas utilisée par la suite dan
UTDATA s la tâche de flux de données. La suppression de cette colonne de
sortie inutile peut augmenter les performances de la tâche Data F
low.

0x800470AE DTS_W_CO Le composant « %1 » (%2!d!) a été supprimé de la tâche de flux d


-2147192658 MPONENTR e données, car sa sortie n'est pas utilisée et ses entrées n'ont pas
EMOVED d'effets secondaires ou ne sont pas connectées aux sorties d'autr
es composants. Si le composant est nécessaire, la propriété HasSi
deEffects doit être définie sur la valeur True sur au moins une de s
es entrées, ou sa sortie doit être connectée à quelque chose.

0x800470B0 DTS_W_NO Des lignes ont été attribuées à un thread, mais ce thread n'a pas
-2147192656 WORKTOD de travail à effectuer. La disposition comporte une sortie déconne
O ctée. L'exécution du pipeline avec la propriété RunInOptimizedM
ode définie sur la valeur TRUE est plus rapide et évite cet avertiss
ement.

0x800470C8 DTS_W_EXT Les colonnes externes de %1 ne sont pas synchronisées avec les c
-2147192632 ERNALMETA olonnes de source de données. %2
DATACOLU
MNSOUTOF
SYNC

0x800470C9 DTS_W_EXT La colonne « %1 » doit être ajoutée aux colonnes externes.


-2147192631 ERNALMETA
DATACOLU
MNCOLLEC
TIONNEEDS
ADDITION
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x800470CA DTS_W_EXT La colonne externe « %1 » doit être mise à jour.


-2147192630 ERNALMETA
DATACOLU
MNCOLLEC
TIONNEEDS
UPDATE

0x800470CB DTS_W_EXT La colonne %1 doit être supprimée des colonnes externes.


-2147192629 ERNALMETA
DATACOLU
MNCOLLEC
TIONNEEDS
REMOVAL

0x800470D8 DTS_W_EXP La chaîne de résultats de l'expression « %1 » peut être tronquée s


-2147192616 REVALPOTE i elle dépasse la longueur maximale de %2!d! caractères. L'expres
NTIALSTRIN sion pourrait avoir une valeur de résultat qui dépasse la taille max
GTRUNCATI imale d'un DT_WSTR.
ON

0x800470E9 DTS_W_CO Un appel à la méthode ProcessInput pour l'entrée %1!d! sur %2 a


-2147192599 MPONENTL conservé de manière inattendue une référence vers la mémoire ta
EAKPROCES mpon dans laquelle elle a été passée. La valeur du compteur refc
SINPUT ount sur cette mémoire tampon était %3!d! avant l'appel, et %4!
d! une fois l'appel retourné.

0x800470EB DTS_W_EXP La colonne « %1 » sur « %2 » possède le type d'utilisation READO


-2147192597 REVALUNRE NLY, mais n'est pas référencée par une expression. Supprimez la c
FERENCEDI olonne de la liste des colonnes d'entrée disponibles ou référence
NPUTCOLU z-la dans une expression.
MN

0x8004801E DTS_W_COU La valeur « %1 » du composant %2 est introuvable. Impossible de


-2147188706 LDNOTFIND trouver la valeur CurrentVersion du composant. Cette erreur se pr
CURRENTVE oduit si le composant n'a pas défini ses informations de Registre
RSION pour contenir une valeur CurrentVersion dans la section DTSInfo.
Ce message apparaît au cours du développement du composant
ou lorsque le composant est utilisé dans un package, si le compo
sant n'est pas correctement enregistré.

0x80049300 DTS_W_BUF Le gestionnaire de tampons n'a pas pu obtenir un nom de fichier


-2147183872 FERGETTEM temporaire.
PFILENAME
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x80049301 DTS_W_UN Le gestionnaire de tampons n'a pas pu créer un fichier temporair


-2147183871 USABLETEM e dans le chemin d'accès « %1 ». Ce chemin ne sera plus utilisé p
PORARYPAT our le stockage temporaire.
H

0x80049304 DTS_W_DF_ Avertissement : impossible d'ouvrir la mémoire partagée globale


-2147183868 PERFCOUNT pour communiquer avec la DLL de performance ; les compteurs d
ERS_DISABL e performance du flux de données ne sont pas disponibles Pour r
ED ésoudre le problème, exécutez ce package en tant qu'administrat
eur ou sur la console du système.

0x8020200F DTS_W_PAR Une ligne partielle a été trouvée à la fin du fichier.


-2145378289 TIALROWFO
UNDATEND
OFFILE

0x8020202B DTS_W_END La fin du fichier de données a été atteinte au cours de la lecture d


-2145378261 OFFILEREAC es lignes d'en-tête. Assurez-vous que le séparateur de lignes d'en
HWHILEREA -tête et que le nombre de lignes d'en-tête à ignorer sont corrects.
DINGHEADE
RROWS

0x80202066 DTS_W_CAN Impossible de récupérer les infos de la page de codes de la colon


-2145378202 TRETRIEVEC ne à partir du fournisseur OLE DB. Si le composant prend en char
ODEPAGEFR ge la propriété « %1 », la page de codes de cette propriété sera u
OMOLEDBP tilisée. Modifiez la valeur de la propriété si les valeurs de la page
ROVIDER de codes de la chaîne actuelle sont incorrectes. Si le composant n
e prend pas en charge la propriété, la page de codes provenant d
e l'ID des paramètres régionaux du composant sera utilisée.

0x802020F7 DTS_W_TXS Les données étant déjà triées de la manière indiquée, la transfor
-2145378057 ORTSORTIST mation peut être supprimée.
HESAME

0x8020400D DTS_W_NO Le %1 fait référence à un type de données externe qui ne peut pa


-2145370099 PIPELINEDA s être mappé à un type de données de la tâche de flux de donnée
TATYPEMAP s. Le type de données de tâche Data Flow DT_WSTR sera utilisé à l
PINGAVAILA a place.
BLE

0x802070CC DTS_W_STA L'expression « %1 » aura toujours pour résultat une troncation de


-2145357620 TICTRUNCA s données. Elle comporte une troncation statique (la troncation
TIONINEXP d'une valeur fixe).
RESSION
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x8020820C DTS_W_UN La colonne d'entrée « %1 » portant l'ID %2!d! à l'index %3!d! n'est
-2145353204 MAPPEDINP pas mappée. L'ID de lignage de la colonne est zéro.
UTCOLUMN

0x80208305 DTS_W_TXF Les séparateurs spécifiés ne correspondent pas à ceux qui sont ut
-2145352955 UZZYLOOK ilisés pour créer l'index de correspondance préexistant « %1 ». Ce
UP_DELIMIT tte erreur se produit lorsque des séparateurs utilisés pour marque
ERS_DONT_ r des champs ne correspondent pas. Ceci peut avoir des effets inc
MATCH onnus sur le comportement ou le résultat qui correspond.

0x80208308 DTS_W_TXF La propriété MaxOutputMatchesPerInput sur la transformation Fu


-2145352952 UZZYLOOK zzy Lookup a la valeur zéro. Il n'en sortira aucun résultat.
UP_MAXRES
ULTS_IS_ZER
O

0x80208310 DTS_W_TXF Aucune colonne d'entrée valide ne comporte la propriété de colo


-2145352944 UZZYLOOK nne JoinType définie à Fuzzy. Pour améliorer les performances sur
UP_NO_FUZ les jointures de type Exact, utilisez la transformation de recherche
ZY_JOIN_CO au lieu de FuzzyLookup.
LUMNS

0x8020831C DTS_W_TXF La colonne de référence « %1 » est peut-être une colonne horoda


-2145352932 UZZYLOOK teur SQL. Lorsque l'index de correspondances approximatives est
UP_TIMESTA créé et qu'une copie de la table de référence est effectuée, tous l
MPCAVEAT es horodateurs de la table de référence reflètent l'état actuel de l
a table au moment de la copie. Un comportement inattendu peut
se produire si la table CopyReferenceTable a la valeur False.

0x80208321 DTS_W_MAT Une table avec le nom « %1 » attribué à MatchIndexName existe


-2145352927 CHINDEXAL déjà et DropExistingMatchIndex a la valeur FALSE. L'exécution de l
READYEXIST a transformation échouera, sauf si cette table est supprimée, si un
S autre nom est spécifié ou si DropExisitingMatchIndex prend la val
eur TRUE.

0x8020832B DTS_W_TXF La longueur de la colonne d'entrée « %1 » n'est pas égale à celle


-2145352917 UZZYLOOK de la colonne de référence « %2 » avec laquelle elle est mise en c
UP_JOINLE orrespondance.
NGTHMISM
ATCH
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x8020832D DTS_W_TXF Les pages de codes de la colonne source DT_STR « %1 » et de la c


-2145352915 UZZYLOOK olonne de destination DT_STR « %2 » ne correspondent pas. Ceci
UP_CODEPA peut engendrer des résultats inattendus.
GE_MISMAT
CH

0x8020832E DTS_W_FUZ Étant donné qu'il y a plus de 16 jointures de correspondance exac


-2145352914 ZYLOOKUP_ tes, les performances risquent de ne pas être optimales. Réduisez
TOOMANYE le nombre de jointures de correspondance exactes pour améliore
XACTMATC r les performances. SQL Server étant limité à 16 colonnes par inde
HCOLUMNS x, l'index inversé sera utilisé pour toutes les recherches.

0x80208350 DTS_W_FUZ L'option Exhaustive nécessite le chargement de la référence comp


-2145352880 ZYLOOKUP_ lète dans la mémoire principale. Étant donné qu'une limite de mé
MEMLIMITA moire a été spécifiée pour la propriété MaxMemoryUsage, il est p
NDEXHAUS ossible que la table de référence ne puisse pas être contenue enti
TIVESPECIFI èrement dans cette limite et que l'opération de correspondance é
ED choue au moment de l'exécution.

0x80208351 DTS_W_FUZ Les longueurs cumulées des colonnes spécifiées dans les jointure
-2145352879 ZYLOOKUP_ s de correspondance exacte dépassent la limite de 900 octets pou
EXACTMATC r les clés d'index. La recherche floue crée un index sur les colonne
HCOLUMNS s de correspondance exacte pour augmenter les performances de
EXCEEDBYT recherche et il est possible que la création de cet index échoue et
ELIMIT que la recherche fasse appel à une autre méthode, éventuellemen
t plus lente, pour trouver des correspondances. Si les performanc
es posent un problème, essayez de supprimer certaines colonnes
de jointure de correspondance exacte ou réduisez les longueurs
maximales des colonnes de correspondance exacte de longueur v
ariable.

0x80208352 DTS_W_FUZ Impossible de créer un index pour les colonnes de correspondanc


-2145352878 ZYLOOKUP_ e exact. Retour à l'autre méthode, la recherche floue.
EXACTMATC
HINDEXCRE
ATIONFAILE
D

0x80208353 DTS_W_FUZ L'avertissement suivant de pipeline interne de regroupement app


-2145352877 ZYGROUPIN roximatif s'est produit avec le code d'erreur 0x%1!8.8X! : « %2 ».
GINTERNAL
PIPELINEWA
RNING
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x80208375 DTS_W_XML Aucune longueur maximale n'a été spécifiée pour la %1 avec le ty
-2145352843 SRCOUTPUT pe de données externe %2. Le type de données de la tâche de flu
COLUMNLE x de données SSIS « %3 » ayant une longueur de %4!d! sera utilis
NGTHSETTO é.
DEFAULT

0x80208376 DTS_W_XML %1 fait référence au type de données externe %2, qui ne peut pas
-2145352842 SRCOUTPUT être mappé au type de données d'une tâche de flux de données S
COLUMNDA SIS. Le type de données DT_WSTR de la tâche de flux de données
TATYPEMAP SSIS ayant une longueur de %3!d! sera utilisé à la place.
PEDTOSTRI
NG

0x80208385 DTS_W_NO Aucune ligne ne sera envoyée aux sorties d'erreur. Configurez les
-2145352827 REDIRECTW dispositions des erreurs ou des troncations afin de rediriger les li
ITHATTACH gnes vers les sorties d'erreur, ou supprimez les transformations o
EDERRORO u les destinations de flux de données qui sont attachées aux sorti
UTPUTS es d'erreur.

0x80208386 DTS_W_RED Les lignes envoyées aux sorties d'erreur seront perdues. Ajoutez d
-2145352826 IRECTWITH e nouvelles transformations ou destinations de flux de données p
NOATTACH our recevoir des lignes d'erreur, ou reconfigurez le composant de
EDERRORO manière à arrêter de rediriger les lignes vers les sorties d'erreur.
UTPUTS

0x80208391 DTS_W_XML Pour la %1 avec le type de données externe %2, le schéma XML a
-2145352815 SRCOUTPUT spécifié une contrainte maxLength %3!d! qui dépasse la longueur
COLUMNLE de colonne maximale %4!d!. Le type de données de la tâche de fl
NGTHSETTO ux de données SSIS « %5 » ayant une longueur de %6!d! sera utili
MAXIMUM sé.

0x802090E4 DTS_W_TXL %1 a rencontré des valeurs de clé de référence dupliquées lors de


-2145349404 OOKUP_DU la mise en mémoire cache des données de référence. Cette erreur
PLICATE_KE se produit en mode Cache complet uniquement. Supprimez les v
YS aleurs de clé dupliquées ou changez le mode du cache en PARTIA
L ou NO_CACHE.

0x802092A7 DTS_W_POT Une troncation peut se produire à cause de l'insertion de donnée


-2145348953 ENTIALTRU s issues de la colonne de flux de données « %1 » avec une longue
NCATIONFR ur de %2!d! dans la colonne de base de données « %3 » avec une
OMDATAIN longueur de %4!d!.
SERTION
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x802092A8 DTS_W_POT Une troncation peut se produire suite à la récupération de donné


-2145348952 ENTIALTRU es issues de la colonne de base de données « %1 » avec une long
NCATIONFR ueur de %2!d! dans la colonne de flux de données « %3 » avec un
OMDATARE e longueur de %4!d!.
TRIEVAL

0x802092AA DTS_W_AD Le mode batch n'est pas pris en charge actuellement lorsque la di
-2145348950 ODESTBATC sposition de ligne d'erreur est utilisée. La propriété BatchSize aur
HNOTSUPP a la valeur 1.
ORTEDFORE
RRORDISPO
SITION

0x802092AB DTS_W_AD Aucune ligne n'a été correctement insérée dans la destination. Ce
-2145348949 ODESTNOR ci est peut-être dû à une non-correspondance des types de donn
OWSINSERT ées entre les colonnes, ou à l'utilisation d'un type de données no
ED n pris en charge par votre fournisseur ADO.NET. Dans la mesure o
ù la disposition d'erreur pour ce composant n'est pas « Composa
nt défaillant », les messages d'erreur ne sont pas affichés ici ; pou
r les afficher, affectez la valeur « Composant défaillant » à la disp
osition d'erreur.

0x802092AC DTS_W_AD Une perte de données éventuelle peut se produire suite à l'inserti
-2145348948 ODESTPOTE on de données de la colonne d'entrée « %1 » avec le type de don
NTIALDATAL nées « %2 » dans la colonne externe « %3 » avec le type de donn
OSS ées « %4 ». Si cela est intentionnel, une autre façon d'effectuer la
conversion consiste à utiliser un composant de conversion de do
nnées avant le composant de destination ADO NET.

0x802092AD DTS_W_AD Le %1 et la colonne de base de données sont désynchronisés. La


-2145348947 ODESTEXTE colonne la plus récente a %2. Utilisez l'éditeur avancé pour actuali
RNALCOLN ser les colonnes de destination disponibles si nécessaire.
OTMATCHS
CHEMACOL

0x802092AE DTS_W_AD Le %1 n'existe pas dans la base de données. Il a peut-être été sup
-2145348946 ODESTEXTE primé ou renommé. Utilisez l'éditeur avancé pour actualiser les co
RNALCOLN lonnes de destination disponibles si nécessaire.
OTEXIST

0x802092AF DTS_W_AD Une nouvelle colonne portant le nom %1 a été ajoutée à la table
-2145348945 ODESTNEW de base de données externe. Utilisez l'éditeur avancé pour actuali
EXTCOL ser les colonnes de destination disponibles si nécessaire.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x8020930C DTS_W_NO Aucune ligne ne sera envoyée à la sortie sans correspondance. Co


-2145348852 MATCHOUT nfigurez la transformation pour rediriger les lignes sans entrées c
PUTGETSNO orrespondantes vers la sortie sans correspondance, ou supprimez
ROWS les transformations du flux de données ou les destinations attach
ées à la sortie sans correspondance.

0x8020931B DTS_W_AD Exception reçue lors de l'énumération des fournisseurs ADO.NET.


-2145348837 ODESTINVA Le nom invariant était « %1 ». Le message d'exception est : « %2
RIANTEXCE »
PTION

0xC020822C DTS_W_UN %1 ne possède pas de colonne mappée.


-1071611348 MAPPEDOU
TPUTCOLU
MN

0x930D DTS_W_EXT La table « %1 » a été modifiée. Il se peut que de nouvelles colonn


37645 ERNALTABL es y aient été ajoutées.
ECOLSOUT
OFSYNC

Messages d’information
Les noms symboliques des messages d’information de Integration Services commencent
par DTS_I_ .

Valeur Nom Description


hexadécimale symbolique
&
Code décimal

0x4001100A DTS_I_START Démarrage de la transaction distribuée pour ce conteneur.


1073811466 INGTRANSA
CTION

0x4001100B DTS_I_COM La validation de la transaction distribuée a commencé par ce


1073811467 MITTINGTR conteneur.
ANSACTION

0x4001100C DTS_I_ABOR Abandon de la transaction distribuée en cours.


1073811468 TINGTRANS
ACTION
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x40013501 DTS_I_GOT Le mutex « %1 » a été correctement acquis.


1073820929 MUTEXFRO
MWAIT

0x40013502 DTS_I_RELE Le mutex « %1 » a été correctement libéré.


1073820930 ASEACQUIR
EDMUTEX

0x40013503 DTS_I_NEW Le mutex « %1 » a été correctement créé.


1073820931 MUTEXCREA
TED

0x40015101 DTS_I_DUM Des fichiers de vidage du débogage seront générés pour tout
1073828097 P_ON_ANY_ événement d'erreur.
ERR

0x40015102 DTS_I_DUM Des fichiers de vidage du débogage seront générés pour les
1073828098 P_ON_CODE codes d'événement suivants : « %1 »
S

0x40015103 DTS_I_START Le code d'événement 0x%1!8.8X! a déclenché la génération de


1073828099 _DUMP fichiers de vidage du débogage dans le dossier « %2 ».

0x40015104 DTS_I_SSIS_I Création du fichier de vidage d'informations SSIS « %1 ».


1073828100 NFO_DUMP

0x40015106 DTS_I_FINIS Les fichiers de vidage du débogage ont été correctement créés.
1073828102 H_DUMP

0x40016019 DTS_I_PACK Le format de package a été migré de la version %1!d! à la version


1073831961 AGEMIGRAT %2!d!. Le package doit être enregistré pour conserver les
ED modifications de migration.

0x4001601A DTS_I_SCRIP Les scripts du package ont été migrés. Pour que les modifications
1073831962 TSMIGRATE de la migration soient conservées, le package doit être enregistré.
D

0x40016025 DTS_I_FTPRE Réception du fichier « %1 » en cours.


1073831973 CEIVEFILE

0x40016026 DTS_I_FTPSE Envoi du fichier « %1 » en cours.


1073831974 NDFILE

0x40016027 DTS_I_FTPFI Le fichier « %1 » existe déjà.


1073831975 LEEXISTS
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x40016028 DTS_I_FTPER Impossible d'obtenir des informations complémentaires sur


1073831976 RORLOADIN l'erreur, en raison d'une erreur interne.
GMSG

0x40016036 DTS_I_FTPD Échec de la tentative de suppression du fichier « %1 ». Cela peut


1073831990 ELETEFILE se produire lorsque le fichier n'existe pas, que le nom du fichier
comporte une erreur orthographique, ou que vous ne disposez
pas des autorisations nécessaires à la suppression du fichier.

0x40016037 DTS_I_CONF Le package tente d'effectuer une configuration à partir d'une


1073831991 IGFROMREG entrée du Registre à l'aide de la clé de Registre « %1 ».

0x40016038 DTS_I_CONF Le package tente d'effectuer une configuration à partir de la


1073831992 IGFROMEN variable d'environnement « %1 ».
VVAR

0x40016039 DTS_I_CONF Le package tente d'effectuer une configuration à partir du fichier


1073831993 IGFROMINIF .ini « %1 ».
ILE

0x40016040 DTS_I_CONF Le package tente d'effectuer une configuration à partir de SQL


1073832000 IGFROMSQL Server à l'aide de la chaîne de configuration « %1 ».
SERVER

0x40016041 DTS_I_CONF Le package tente d'effectuer une configuration à partir du fichier


1073832001 IGFROMFILE XML « %1 ».

0x40016042 DTS_I_CONF Le package tente d'effectuer une configuration à partir de la


1073832002 IGFROMPAR variable parente « %1 ».
ENTVARIAB
LE

0x40016043 DTS_I_ATTE Tentative de mise à niveau de SSIS, de la version « %1 » à la


1073832003 MPTINGUP version « %2 ». Ce package tente de mettre à niveau le fichier
GRADEOFD exécutable.
TS

0x40016044 DTS_I_ATTE Tentative de mise à niveau de « %1 ». Ce package tente de mettre


1073832004 MPTINGUP à niveau un objet extensible.
GRADEOFA
NEXTOBJ

0x40016045 DTS_I_SAVE Le package enregistrera des points de contrôle dans le fichier «


1073832005 CHECKPOIN %1 » au cours de l'exécution. Ce package est configuré de
TSTOFILE manière à enregistrer les points de contrôle.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x40016046 DTS_I_REST Le package a redémarré à partir du fichier de point de


1073832006 ARTFROMC contrôle « %1 ». Ce package a été configuré de manière à
HECKPOINT redémarrer à partir du point de contrôle.
FILE

0x40016047 DTS_I_CHEC Le fichier de point de contrôle « %1 » a été mis à jour pour


1073832007 KPOINTSAV enregistrer l'achèvement de ce conteneur.
EDTOFILE

0x40016048 DTS_I_CHEC Le fichier de point de contrôle « %1 » a été supprimé après


1073832008 KPOINTFILE l'achèvement réussi du package.
DELETED

0x40016049 DTS_I_CHEC Démarrage de la mise à jour du fichier de point de contrôle « %1


1073832009 KPOINTSAVI ».
NGTOFILE

0x40016051 DTS_I_CHOS En fonction de la configuration du système, le nombre maximum


1073832017 ENMAXEXE de fichiers exécutables concurrents est de %1!d!.
CUTABLES

0x40016052 DTS_I_MAXE Le nombre maximum de fichiers exécutables concurrents est de


1073832018 XECUTABLE %1!d!.
S

0x40016053 DTS_I_PACK Début de l'exécution du package.


1073832019 AGESTART

0x40016054 DTS_I_PACK Fin de l'exécution du package.


1073832020 AGEEND

0x40029161 DTS_I_FSTAS Le répertoire « %1 » a été supprimé.


1073910113 K_DIRECTOR
YDELETED

0x40029162 DTS_I_FSTAS Le fichier ou le répertoire « %1 » a été supprimé.


1073910114 K_FILEDELET
ED

0x400292A8 DTS_I_TRAN Remplacement de la base de données « %1 » sur le serveur de


1073910440 SFERDBTAS destination « %2 ».
K_OVERWRI
TEDB
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x4002F304 DTS_I_SOME "%1".


1073935108 THINGHAPP
ENED

0x4002F323 DTS_I_ERRM Le message d'erreur « %1 » est ignoré car il existe déjà sur le
1073935139 SGTASK_SKI serveur de destination.
PPINGERRO
RMESSAGE
ALREADYEXI
STS

0x4002F326 DTS_I_ERRM Les messages d'erreur « %1 » ont été transférés.


1073935142 SGTASK_TR
ANSFEREDN
ERRORMES
SAGES

0x4002F351 DTS_I_STOR La tâche a transféré les procédures stockées « %1 ».


1073935185 EDPROCSTA
SKS_TRANS
FEREDNSPS

0x4002F352 DTS_I_TRAN Objets « %1 » transférés.


1073935186 SOBJECTSTA
SK_TRANSF
EREDNOBJE
CTS

0x4002F358 DTS_I_TRAN Aucune procédure stockée à transférer.


1073935192 SOBJECTSTA
SK_NOSPST
OTRANSFER

0x4002F362 DTS_I_TRAN Aucune règle à transférer.


1073935202 SOBJECTSTA
SK_NORULE
STOTRANSF
ER

0x4002F366 DTS_I_TRAN Aucune table à transférer.


1073935206 SOBJECTSTA
SK_NOTABL
ESTOTRANS
FER
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x4002F370 DTS_I_TRAN Aucune vue à transférer.


1073935216 SOBJECTSTA
SK_NOVIEW
STOTRANSF
ER

0x4002F374 DTS_I_TRAN Aucune fonction définie par l'utilisateur à transférer.


1073935220 SOBJECTSTA
SK_NOUDFS
TOTRANSFE
R

0x4002F378 DTS_I_TRAN Aucune valeur par défaut à transférer.


1073935224 SOBJECTSTA
SK_NODEFA
ULTSTOTRA
NSFER

0x4002F382 DTS_I_TRAN Aucun type de données défini par l'utilisateur à transférer.


1073935234 SOBJECTSTA
SK_NOUDD
TSTOTRANS
FER

0x4002F386 DTS_I_TRAN Aucune fonction de partition à transférer.


1073935238 SOBJECTSTA
SK_NOPFST
OTRANSFER

0x4002F390 DTS_I_TRAN Aucun schéma de partition à transférer.


1073935248 SOBJECTSTA
SK_NOPSST
OTRANSFER

0x4002F394 DTS_I_TRAN Aucun schéma à transférer.


1073935252 SOBJECTSTA
SK_NOSCHE
MASTOTRA
NSFER

0x4002F398 DTS_I_TRAN Aucun SqlAssembly à transférer.


1073935256 SOBJECTSTA
SK_NOSQLA
SSEMBLIEST
OTRANSFER
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x4002F402 DTS_I_TRAN Aucune fonction d'agrégation à transférer.


1073935362 SOBJECTSTA
SK_NOAGG
REGATESTO
TRANSFER

0x4002F406 DTS_I_TRAN Aucun type défini par l'utilisateur à transférer.


1073935366 SOBJECTSTA
SK_NOTYPE
STOTRANSF
ER

0x4002F410 DTS_I_TRAN Aucun XmlSchemaCollection à transférer.


1073935376 SOBJECTSTA
SK_NOXMLS
CHEMACOL
LECTIONST
OTRANSFER

0x4002F418 DTS_I_TRAN Aucun nom d'accès à transférer.


1073935384 SOBJECTSTA
SK_NOLOGI
NSTOTRAN
SFER

0x4002F41D DTS_I_TRAN Aucun utilisateur à transférer.


1073935389 SOBJECTSTA
SK_NOUSER
STOTRANSF
ER

0x4002F41E DTS_I_TRAN Troncation de la table « %1 »


1073935390 SOBJECTSTA
SK_TRUNCA
TINGTABLE

0x40043006 DTS_I_EXEC Début de la phase Préparation à l'exécution.


1074016262 UTIONPHAS
E_PREPAREF
OREXECUTE

0x40043007 DTS_I_EXEC Début de la phase Pré-exécution.


1074016263 UTIONPHAS
E_PREEXECU
TE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x40043008 DTS_I_EXEC Début de la phase Post-exécution.


1074016264 UTIONPHAS
E_POSTEXE
CUTE

0x40043009 DTS_I_EXEC Début de la phase Nettoyage.


1074016265 UTIONPHAS
E_CLEANUP

0x4004300A DTS_I_EXEC Début de la phase Validation.


1074016266 UTIONPHAS
E_VALIDATE

0x4004300B DTS_I_ROW « %1 » a écrit %2!ld! lignes.


1074016267 S_WRITTEN

0x4004300C DTS_I_EXEC Début de la phase Exécuter.


1074016268 UTIONPHAS
E_EXECUTE

0x4004800C DTS_I_CANT Le gestionnaire de tampons a détecté que la quantité de


1074036748 RELIEVEPRE mémoire virtuelle du système était faible, mais il n'a pas pu
SSURE permuter les tampons. %1!d! tampons ont été analysés et %2!d!
ont été verrouillés. Soit la mémoire disponible pour le pipeline est
insuffisante car la mémoire installée ne suffit pas, soit d'autres
processus l'utilisent. Il se peut également que le nombre de
tampons verrouillés soit trop important.

0x4004800D DTS_I_CANT Le gestionnaire de tampons n'a pas réussi à effectuer un appel


1074036749 ALLOCATEM d'allocation de mémoire de octets, mais il n'a pas pu permuter les
EMORYPRES tampons pour que la mémoire soit moins sollicitée. %1!d!
SURE tampons ont été analysés et %2!d! ont été verrouillés. Soit la
quantité de mémoire disponible pour le pipeline est insuffisante
car la mémoire installée ne suffit pas, soit d'autres processus
l'utilisent. Il se peut également que le nombre de tampons
verrouillés soit trop important.

0x4004800E DTS_I_ALLO Le gestionnaire de tampons a alloué %1!d! octets, bien qu'une


1074036750 CATEDDURI sollicitation de la mémoire ait été détectée et que des tentatives
NGMEMOR répétées d'échange de mémoires tampons aient échoué.
YPRESSURE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x400490F4 DTS_I_TXLO %1 a mis en cache %2!d! lignes.


1074041076 OKUP_CAC
HE_PROGRE
SS

0x400490F5 DTS_I_TXLO %1 a mis en cache un total de %2!d! lignes.


1074041077 OKUP_CAC
HE_FINAL

0x4020206D DTS_I_RAWS L'adaptateur de source brute a ouvert un fichier, mais ce dernier


1075847277 OURCENOC ne contient aucune colonne. L'adaptateur ne produira pas de
OLUMNS données. Cela peut indiquer un fichier endommagé, ou qu'il
n'existe aucune colonne et, par conséquent, aucune donnée.

0x402020DA DTS_I_OLED Un message d'information OLE DB est disponible.


1075847386 BINFORMAT
IONALMESS
AGE

0x40208327 DTS_I_TXFU Les performances de la correspondance approximative peuvent


1075872551 ZZYLOOKUP être améliorées si les propriétés FuzzyComparisonFlags des
_EXACT_MA jointures exactes sur la colonne d'entrée « %1 » sont définies
TCH_PERF_C pour correspondre à l'assemblage SQL de la colonne de la table
OLLATIONS de référence « %2 ». Il est aussi nécessaire qu'aucun indicateur de
_DONT_MA changement de casse ne soit défini dans
TCH FuzzyComparisonFlagsEx.

0x40208328 DTS_I_TXFU Les performances de la correspondance approximative peuvent


1075872552 ZZYLOOKUP être améliorées si un index est créé sur la table de référence pour
_EXACT_MA toutes les colonnes de correspondance exacte spécifiées.
TCH_PERF_I
NDEX_MISSI
NG

0x40208387 DTS_I_DISPS Les dispositions des erreurs et des troncations n'ont pas été
1075872647 NOTREVIEW revues. Assurez-vous que ce composant est configuré pour
ED rediriger les lignes vers les sorties d'erreur si vous souhaitez
transformer ces lignes.

0x402090DA DTS_I_TXAG La transformation d'agrégation a rencontré %1!d! combinaison


1075876058 G_WORKSP de touches. Un rehachage des données est nécessaire, car le
ACE_REHAS nombre de combinaisons de clés est supérieur à celui attendu. Ce
H composant peut être configuré afin d'éviter le rehachage des
données, à l'aide des propriétés Keys, KeyScale et
AutoExtendFactor.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x402090DB DTS_I_TXAG La transformation d'agrégation a rencontré %1!d! valeurs


1075876059 G_COUNTDI distinctes lors d'une agrégation « count distinct » sur « %2 ».
STINCT_REH Cette transformation effectue le rehachage des données car le
ASH nombre de valeurs distinctes est supérieur à celui attendu. Ce
composant peut être configuré afin d'éviter le rehachage des
données, à l'aide des propriétés CountDistinctKeys,
CountDistinctKeyScale et AutoExtendFactor.

0x402090DC DTS_I_START Le traitement du fichier « %1 » a démarré.


1075876060 PROCESSIN
GFILE

0x402090DD DTS_I_FINIS Le traitement du fichier « %1 » est terminé.


1075876061 HPROCESSI
NGFILE

0x402090DE DTS_I_TOTA Le nombre total de lignes de données traitées pour le fichier «


1075876062 LDATAROW %1 » est %2!I64d!.
SPROCESSE
DFORFILE

0x402090DF DTS_I_FINAL La validation finale de l'insertion de données dans « %1 » a


1075876063 COMMITST commencé.
ARTED

0x402090E0 DTS_I_FINAL La validation finale de l'insertion de données dans « %1 » s'est


1075876064 COMMITEN terminée.
DED

0x402090E1 DTS_I_BEGI %1!u! lignes sont ajoutées au cache. Le système est en train de
1075876065 NHASHING traiter les lignes.
CACHE

0x402090E2 DTS_I_SUCC %1 a traité %2!u! lignes du cache. Le temps de traitement a été


1075876066 EEDEDHAS de %3 secondes. Le cache a utilisé %4!I64u! octets de mémoire.
HINGCACHE

0x402090E3 DTS_I_FAILE %1 n'a pas pu traiter les lignes du cache. Le temps de traitement
1075876067 DHASHING a été de %2 seconde(s).
CACHE

0x402090E4 DTS_I_SUCC %1 a réussi à préparer le cache. Le temps de préparation a été de


1075876068 EEDEDPREP %2 secondes.
ARINGCAC
HE
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x40209314 DTS_I_TXLO Le %1 a effectué les opérations suivantes : %2!I64u! lignes


1075876628 OKUP_PARTI traitées, %3!I64u! commandes de base de données adressées à la
ALPERF base de données de référence et %4!I64u! recherches effectuées
à l'aide du cache partiel.

0x40209315 DTS_I_TXLO Le %1 a effectué les opérations suivantes : %2!I64u! lignes


1075876629 OKUP_PARTI traitées, %3!I64u! commandes de base de données adressées à la
ALPERF2 base de données de référence, %4!I64u! recherches effectuées à
l'aide du cache partiel et %5!I64u! recherches utilisant le cache
pour les lignes sans entrées correspondantes dans la recherche
initiale.

0x40209316 DTS_I_CACH %1 écrit le cache dans le fichier « %2 ».


1075876630 EFILEWRITE
STARTED

0x40209317 DTS_I_CACH %1 a écrit le cache dans le fichier « %2 ».


1075876631 EFILEWRITE
SUCCEEDED

0x4020F42C DTS_I_OLED La propriété Taille de validation d'insertion maximale de la


1075901484 BDESTZERO destination OLE DB « %1 » est définie sur 0. Ce paramètre de
MAXCOMM propriété peut provoquer le blocage du package en cours
ITSIZE d'exécution. Pour plus d'informations consultez la rubrique
relative à l'aide sur l'Éditeur de destination OLE DB (Page
Gestionnaire de connexions) via la touche F1.

Messages généraux et d’événement


Les noms symboliques des messages d’erreur de Integration Services commencent par
DTS_MSG_ .

Valeur Nom Description


hexadécimale symbolique
&
Code décimal

0x1 DTS_MSG_CAT Fonction incorrecte.


1 EGORY_SERVIC
E_CONTROL
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x2 DTS_MSG_CAT Le système ne peut pas trouver le fichier spécifié.


2 EGORY_RUNNI
NG_PACKAGE_
MANAGEMEN
T

0x100 DTS_MSG_SER Démarrage du service SSIS Microsoft.


256 VER_STARTING
Serveur version %1

0x101 DTS_MSG_SER Service SSIS Microsoft démarré.


257 VER_STARTED
Serveur version %1

0x102 DTS_MSG_SER Expiration du délai d'attente de l'opération d'attente.


258 VER_STOPPIN
G

0x103 DTS_MSG_SER Aucune donnée n'est disponible.


259 VER_STOPPED

0x104 DTS_MSG_SER Échec du démarrage du service SSIS Microsoft.


260 VER_START_FAI
LED Erreur : %1

0x105 DTS_MSG_SER Erreur lors de l'arrêt du service SSIS.


261 VER_STOP_ERR
OR Erreur : %1

0x110 DTS_MSG_SER Fichier de configuration du service SSIS Microsoft inexistant.


272 VER_MISSING_
CONFIG Chargement avec les paramètres par défaut.

0x111 DTS_MSG_SER Fichier de configuration du service SSIS Microsoft incorrect.


273 VER_BAD_CON
FIG Erreur lors de la lecture du fichier de configuration : %1

Chargement du serveur avec les paramètres par défaut.

0x112 DTS_MSG_SER Service SSIS Microsoft :


274 VER_MISSING_
CONFIG_REG Paramètre de Registre spécifiant que le fichier de configuration
n'existe pas.

Tentative de chargement du fichier de configuration par défaut


en cours.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x150 DTS_MSG_SER Service SSIS Microsoft : arrêt de l'exécution du package.


336 VER_STOPPIN
G_PACKAGE ID d'instance de package : %1

ID du package : %2

Nom du package : %3

Description du package : %4

Package démarré par : %5.

0x40013000 DTS_MSG_PAC Package « %1 » démarré.


1073819648 KAGESTART

0x40013001 DTS_MSG_PAC Fin du package « %1 » réussie.


1073819649 KAGESUCCESS

0x40013002 DTS_MSG_PAC Le package « %1 » a été annulé.


1073819650 KAGECANCEL

0x40013003 DTS_MSG_PAC Échec du package « %1 ».


1073819651 KAGEFAILURE

0x40013004 DTS_MSG_CA Le module %1 ne peut pas charger le fichier DLL %2 pour


1073819652 NTDELAYLOAD appeler le point d'entrée %3 en raison de l'erreur %4. Ce
DLL produit requiert l'exécution du fichier DLL, mais ce dernier est
introuvable sur ce chemin d'accès.

0x40013005 DTS_MSG_CA Le module %1 a chargé le fichier DLL %2 mais il ne peut pas


1073819653 NTDELAYLOAD trouver le point d'entrée %3 en raison de l'erreur %4. Le fichier
DLLFUNCTION DLL nommé est introuvable sur ce chemin d'accès, or
l'exécution de cette DLL est requise par le produit.
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x40103100 DTS_MSG_EVE Nom d'événement : %1


1074802944 NTLOGENTRY
Message : %9

Opérateur : %2

Nom de la source : %3

ID de la source : %4

ID d'exécution : %5

Heure de début : %6

Heure de fin : %7

Code de données : %8

0x40103101 DTS_MSG_EVE Nom d'événement : %1


1074802945 NTLOGENTRY_
PREEXECUTE Message : %9

Opérateur : %2

Nom de la source : %3

ID de la source : %4

ID d'exécution : %5

Heure de début : %6

Heure de fin : %7

Code de données : %8
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x40103102 DTS_MSG_EVE Nom d'événement : %1


1074802946 NTLOGENTRY_
POSTEXECUTE Message : %9

Opérateur : %2

Nom de la source : %3

ID de la source : %4

ID d'exécution : %5

Heure de début : %6

Heure de fin : %7

Code de données : %8

0x40103103 DTS_MSG_EVE Nom d'événement : %1


1074802947 NTLOGENTRY_
PREVALIDATE Message : %9

Opérateur : %2

Nom de la source : %3

ID de la source : %4

ID d'exécution : %5

Heure de début : %6

Heure de fin : %7

Code de données : %8
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x40103104 DTS_MSG_EVE Nom d'événement : %1


1074802948 NTLOGENTRY_
POSTVALIDATE Message : %9

Opérateur : %2

Nom de la source : %3

ID de la source : %4

ID d'exécution : %5

Heure de début : %6

Heure de fin : %7

Code de données : %8

0x40103105 DTS_MSG_EVE Nom d'événement : %1


1074802949 NTLOGENTRY_
WARNING Message : %9

Opérateur : %2

Nom de la source : %3

ID de la source : %4

ID d'exécution : %5

Heure de début : %6

Heure de fin : %7

Code de données : %8
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x40103106 DTS_MSG_EVE Nom d'événement : %1


1074802950 NTLOGENTRY_
ERROR Message : %9

Opérateur : %2

Nom de la source : %3

ID de la source : %4

ID d'exécution : %5

Heure de début : %6

Heure de fin : %7

Code de données : %8

0x40103107 DTS_MSG_EVE Nom d'événement : %1


1074802951 NTLOGENTRY_
TASKFAILED Message : %9

Opérateur : %2

Nom de la source : %3

ID de la source : %4

ID d'exécution : %5

Heure de début : %6

Heure de fin : %7

Code de données : %8
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x40103108 DTS_MSG_EVE Nom d'événement : %1


1074802952 NTLOGENTRY_
PROGRESS Message : %9

Opérateur : %2

Nom de la source : %3

ID de la source : %4

ID d'exécution : %5

Heure de début : %6

Heure de fin : %7

Code de données : %8

0x40103109 DTS_MSG_EVE Nom d'événement : %1


1074802953 NTLOGENTRY_
EXECSTATCHA Message : %9
NGE
Opérateur : %2

Nom de la source : %3

ID de la source : %4

ID d'exécution : %5

Heure de début : %6

Heure de fin : %7

Code de données : %8
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x4010310A DTS_MSG_EVE Nom d'événement : %1


1074802954 NTLOGENTRY_
VARVALCHAN Message : %9
GE
Opérateur : %2

Nom de la source : %3

ID de la source : %4

ID d'exécution : %5

Heure de début : %6

Heure de fin : %7

Code de données : %8

0x4010310B DTS_MSG_EVE Nom d'événement : %1


1074802955 NTLOGENTRY_
CUSTOMEVEN Message : %9
T
Opérateur : %2

Nom de la source : %3

ID de la source : %4

ID d'exécution : %5

Heure de début : %6

Heure de fin : %7

Code de données : %8
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x4010310C DTS_MSG_EVE Nom d'événement : %1


1074802956 NTLOGENTRY_
PACKAGESTAR Message : %9
T
Opérateur : %2

Nom de la source : %3

ID de la source : %4

ID d'exécution : %5

Heure de début : %6

Heure de fin : %7

Code de données : %8

0x4010310D DTS_MSG_EVE Nom d'événement : %1


1074802957 NTLOGENTRY_
PACKAGEEND Message : %9

Opérateur : %2

Nom de la source : %3

ID de la source : %4

ID d'exécution : %5

Heure de début : %6

Heure de fin : %7

Code de données : %8
Valeur Nom Description
hexadécimale symbolique
&
Code décimal

0x4010310E DTS_MSG_EVE Nom d'événement : %1


1074802958 NTLOGENTRY_
INFORMATION Message : %9

Opérateur : %2

Nom de la source : %3

ID de la source : %4

ID d'exécution : %5

Heure de début : %6

Heure de fin : %7

Code de données : %8

Messages de réussite
Les noms symboliques des messages de réussite de Integration Services commencent
par DTS_S_ .

Valeur Nom Description


hexadécimale symbolique
&
Code décimal

0x40003 DTS_S_NULLDAT La valeur est NULL.


262147 A

0x40005 DTS_S_TRUNCA La valeur de la chaîne était tronquée. Le tampon a reçu une


262149 TED chaîne qui était trop longue pour la colonne, et la chaîne a
été tronquée par le tampon.

0x200001 DTS_S_EXPREVA Une troncation s'est produite au cours de l'évaluation de


2097153 LTRUNCATIONO l'expression, La troncation risque d'inclure n'importe quel
CCURRED point à une étape intermédiaire.
Messages d’erreur des composants de flux de
données
Les noms symboliques des messages d’erreur de Integration Services commencent par
DTSBC_E_ , où « BC » fait référence à la classe de base native à partir de laquelle la
plupart des composants de flux Microsoft sont dérivés.

Valeur Nom symbolique Description


hexadécimale
&
Code décimal

0xC8000002 DTSBC_E_INCORR Le nombre total de sorties et de sorties d'erreur, %1!lu!, est


-939524094 ECTEXACTNUMBE incorrect. Il doit y en avoir exactement %2!lu!.
ROFTOTALOUTPU
TS

0xC8000003 DTSBC_E_FAILEDT Impossible d'extraire la sortie à partir de l'index %1!lu!.


-939524093 OGETOUTPUTBYI
NDEX

0xC8000005 DTSBC_E_INCORR Le nombre de sorties d’erreur, %1!lu!, est incorrect. Il doit y


-939524091 ECTEXACTNUMBE en avoir exactement %2!lu!.
ROFERROROUTPU
TS

0xC8000006 DTSBC_E_INVALID La valeur d’état de validation « %1!lu! » est incorrecte ". Ce


-939524090 VALIDATIONSTAT doit être l'une des valeurs figurant dans l'énumération
USVALUE DTSValidationStatus.

0xC8000007 DTSBC_E_INPUTH Aucune sortie synchrone pour l'entrée « %1!lu! ».


-939524089 ASNOOUTPUT

0xC8000008 DTSBC_E_INPUTH Aucune sortie d'erreur synchrone pour l'entrée « %1!lu! ».


-939524088 ASNOERROROUT
PUT

0xC8000009 DTSBC_E_INVALID La valeur de HowToProcessInput, %1!lu!, n'est pas valide.


-939524087 HTPIVALUE Ce doit être l'une des valeurs provenant de l'énumération
HowToProcessInput.

0xC800000A DTSBC_E_FAILEDT Échec de l'obtention d'informations pour la


-939524086 OGETCOLINFO ligne « %1!ld! », colonne « %2!ld! » à partir du tampon.
Code d'erreur retourné : 0x%3!8.8X!.

0xC800000B DTSBC_E_FAILEDT Échec de la définition d'informations pour la


-939524085 OSETCOLINFO ligne « %1!ld! », colonne « %2!ld! » dans le tampon. Code
d'erreur retourné : 0x%3!8.8X!.
Valeur Nom symbolique Description
hexadécimale
&
Code décimal

0xC800000C DTSBC_E_INVALID La propriété « %1 » n'est pas valide.


-939524084 PROPERTY

0xC800000D DTSBC_E_PROPER La propriété « %1 » est introuvable.


-939524083 TYNOTFOUND

0xC8000010 DTSBC_E_READON Erreur lors de l'affectation d'une valeur à la propriété en


-939524080 LYPROPERTY lecture seule « %1 ».

0xC8000011 DTSBC_E_CANTIN %1 ne permet pas l'insertion de colonnes de sortie.


-939524079 SERTOUTPUTCOL
UMN

0xC8000012 DTSBC_E_OUTPUT Les métadonnées de la colonne de sortie ne correspondent


-939524078 COLUMNSMETAD pas aux métadonnées de la colonne d'entrée associées. Les
ATAMISMATCH métadonnées des colonnes de sortie seront mises à jour.

0xC8000013 DTSBC_E_OUTPUT Il existe des colonnes d'entrée sans colonne de sortie


-939524077 COLUMNSMISSIN associée. Les colonnes de sortie seront ajoutées.
G

0xC8000014 DTSBC_E_TOOMA Il existe des colonnes de sortie sans colonne d'entrée


-939524076 NYOUTPUTCOLU associée. Les colonnes de sortie seront supprimées.
MNS

0xC8000015 DTSBC_E_OUTPUT Les métadonnées de la colonne de sortie ne correspondent


-939524075 COLUMNSMETAD pas aux métadonnées de la colonne d'entrée associées. Le
ATAMISMATCHUN mappage des colonnes d'entrée sera annulé.
MAP

0xC8000016 DTSBC_E_UNMAPI Il existe des colonnes d'entrée sans colonne de sortie


-939524074 NPUTCOLUMNS associée. Le mappage des colonnes d'entrée sera annulé.

0xC8000017 DTSBC_E_MULTIPL Il existe une colonne d'entrée associée à une colonne de


-939524073 EINCOLSTOOUTC sortie, tandis que cette colonne de sortie est déjà associée
OL à une autre colonne d'entrée sur la même entrée.

0xC8000018 DTSBC_E_CANTIN %1 ne permet pas d'insérer des colonnes de métadonnées


-939524072 SERTEXTERNALME externes.
TADATACOLUMN
Vue d'ensemble de la programmation
Integration Services
Article • 13/07/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

SQL Server Integration Services a une architecture qui sépare le déplacement et la


transformation de données du flux de contrôle et de la gestion de packages. Cette
architecture se définit par deux moteurs distincts qui peuvent être automatisés et
étendus lors de la programmation Integration Services. Le moteur d'exécution
implémente l'infrastructure de flux de contrôle et de gestion de packages qui permet
aux développeurs de contrôler le flux d'exécution et de définir des options pour la
journalisation, les gestionnaires d'événements et les variables. Le moteur de flux de
données est un moteur spécialisé, hautement performant, exclusivement dédié à
l'extraction, la transformation et le chargement de données. La programmation
d’Integration Services s’effectue à partir de ces deux moteurs.

L'image suivante représente l'architecture d'Integration Services.


Moteur d'exécution Integration Services
Le moteur d'exécution Integration Services contrôle la gestion et l'exécution de
packages, en implémentant l'infrastructure qui active l'ordre d'exécution, la
journalisation, les variables et la gestion d'événements. La programmation du moteur
d'exécution Integration Services permet aux développeurs d'automatiser la création, la
configuration et l'exécution de packages et de créer des tâches personnalisées et
d'autres extensions.

Pour plus d’informations, consultez Extension du package à l’aide de la tâche de script,


Développement d’une tâche personnalisée et Génération de packages par
programmation.

Moteur de flux de données Integration Services


Le moteur de flux de données gère la tâche de flux de données, qui est une tâche
spécialisée, hautement performante, destinée à déplacer et transformer les données
provenant de sources disparates. Contrairement à d'autres tâches, la tâche de flux de
données contient des objets supplémentaires, appelés composants de flux de données,
qui peuvent être des sources, des transformations ou des destinations. Ces composants
constituent les principaux éléments en mouvement de la tâche. Ils définissent le
déplacement et la transformation des données. La programmation du moteur de flux de
données permet aux développeurs d'automatiser la création et la configuration des
composants dans une tâche de flux de données et de créer des composants
personnalisés.

Pour plus d’informations, consultez Extension du flux de données avec le composant


Script, Développement d’un composant de flux de données personnalisé et Génération
de packages par programmation.

Langues prises en charge


Integration Services prend entièrement en charge le Microsoft .NET Framework. Les
développeurs peuvent ainsi programmer Integration Services dans les langages
compatibles .NET de leur choix. Bien qu’ils soient écrits en code natif, le moteur
d’exécution et le moteur de flux de données sont accessibles par le biais d’un modèle
objet entièrement managé.

Vous pouvez programmer des packages, des tâches personnalisées et des composants
Integration Services dans Microsoft Visual Studio ou dans un autre code ou éditeur de
texte. Visual Studio offre de nombreux outils et fonctionnalités au développeur pour
simplifier et accélérer les cycles itératifs du codage, du débogage et du test. Visual
Studio facilite également le déploiement. Toutefois, vous n’avez pas besoin de Visual
Studio pour compiler et générer des projets de code Integration Services. Le Kit de
développement .NET Framework SDK inclut les compilateurs et les outils connexes
Visual Basic et Visual C#.

) Important

Le .NET Framework est installé par défaut avec SQL Server, mais pas le Kit de
développement .NET Framework SDK. Les liens vers les rubriques relatives au Kit de
développement figurant dans cette section ne fonctionnent que si le Kit de
développement est installé sur l'ordinateur et que la documentation qui lui est
propre figure dans la documentation en ligne. Après avoir installé le SDK .NET
Framework, vous pouvez ajouter la documentation le concernant à la
documentation en ligne et à la table des matières en suivant les instructions
figurant dans Ajouter ou supprimer la documentation du produit SQL Server .
La tâche de script et le composant Script Integration Services utilisent Microsoft Visual
Studio Tools for Applications (VSTA) comme environnement de script incorporé. VSTA
prend en charge Microsoft Visual Basic et Microsoft Visual C#.

7 Notes

Les interfaces de programmation d'applications Integration Services sont


incompatibles avec les langages de script COM, tels que VBScript.

Localiser les assemblys


Dans SQL Server 2019 (15.x), les assemblys Integration Services ont été mis à niveau vers
le .NET 4.0. Il existe un Global Assembly Cache distinct pour .NET 4, situé dans *\
<drive>*:\Windows\Microsoft.NET\assembly . Vous trouverez tous les assemblys

Integration Services sous ce chemin d'accès, en général dans le dossier GAC_MSIL.

Comme dans les versions antérieures de SQL Server, les principaux fichiers .dll
d’extensibilité Integration Services se trouvent également dans *\<drive>*:\Program
Files\Microsoft SQL Server\\\<nnn>\SDK\Assemblies . <nnn> identifie la version de

l’emplacement des fichiers partagés du serveur SQL.

Assemblys couramment utilisés


Le tableau suivant répertorie les assemblys fréquemment utilisés lors de la
programmation Integration Services à l'aide du .NET Framework.

Assembly Description

Microsoft.SqlServer.ManagedDTS.dll Contient le moteur d'exécution managé.

Microsoft.SqlServer.RuntimeWrapper.dll Contient l'assembly PIA (Primary Interop Assembly), ou


wrapper, du moteur d'exécution natif.

Microsoft.SqlServer.PipelineHost.dll Contient le moteur de flux de données managé.

Microsoft.SqlServer.PipelineWrapper.dll Contient l'assembly PIA (Primary Interop Assembly), ou


wrapper, du moteur de flux de données natif.
Présentation des transformations
synchrones et asynchrones
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Pour comprendre la différence entre une transformation synchrone et une


transformation asynchrone dans Integration Services, il est plus facile de commencer par
examiner une transformation synchrone. Si une transformation synchrone ne répond pas
à vos besoins, il est possible que votre conception nécessite une transformation
asynchrone.

Transformations synchrones
Une transformation synchrone traite les lignes entrantes et les transfère dans le flux de
données une ligne à la fois. La sortie est synchrone avec l'entrée ; autrement dit, elles se
produisent en même temps. Par conséquent, pour traiter une ligne donnée, la
transformation n'a pas besoin d'informations sur les autres lignes du jeu de données.
Dans l'implémentation réelle, les lignes sont regroupées dans des mémoires tampons
lorsqu'elles passent d'un composant à l'autre, mais ces mémoires tampons sont
transparentes pour l'utilisateur. Vous pouvez donc considérer que chaque ligne est
traitée séparément.

La transformation de conversion de données est un exemple de transformation


synchrone. Pour chaque ligne entrante, elle convertit la valeur dans la colonne spécifiée
et transfère la ligne. Chaque opération de conversion discrète est indépendante de
toutes les autres lignes dans le jeu de données.

Au cours d’opérations de script et de programmation Integration Services, vous pouvez


spécifier une transformation synchrone en recherchant l’ID de l’entrée d’un composant
et en l’assignant à la propriété SynchronousInputID des sorties du composant. Vous
indiquez ainsi au moteur de flux de données de traiter chaque ligne de l'entrée et
d'envoyer automatiquement chaque ligne aux sorties spécifiées. Si vous souhaitez
diriger chaque ligne vers chaque sortie, vous n'avez pas besoin d'écrire du code
supplémentaire pour exporter les données. Si vous utilisez la propriété ExclusionGroup
pour spécifier que les lignes doivent atteindre un groupe de sorties uniquement, comme
dans la transformation de fractionnement conditionnel, vous devez appeler la méthode
DirectRow afin de sélectionner la destination appropriée pour chaque ligne. Quand vous
disposez d’une sortie d’erreur, vous devez appeler DirectErrorRow pour que les lignes
présentant un problème soient transmises à la sortie d’erreur au lieu de la sortie par
défaut.

Transformations asynchrones
Vous pouvez décider que votre conception nécessite une transformation asynchrone
lorsqu'il n'est pas possible de traiter chaque ligne indépendamment de toutes les autres.
En d'autres termes, vous ne pouvez pas transférer chaque ligne dans le flux de données
dès lors qu'elle est traitée. Vous devez plutôt exporter les données de façon asynchrone,
c'est-à-dire à un autre moment que l'importation. Par exemple, les scénarios suivants
requièrent une transformation asynchrone :

Le composant doit acquérir plusieurs mémoires tampons de données avant de


pouvoir effectuer leur traitement. La transformation de tri est un exemple dans
lequel le composant doit traiter l'ensemble des lignes en une seule opération.

Le composant doit combiner des lignes provenant de plusieurs entrées. La


transformation de fusion est un exemple dans lequel le composant doit examiner
plusieurs lignes de chaque entrée avant de les fusionner dans l'ordre de tri.

Il n'existe pas de correspondance univoque entre les lignes d'entrée et les lignes
de sortie. La transformation d'agrégation est un exemple dans lequel le composant
doit ajouter une ligne à la sortie pour contenir les valeurs d'agrégation calculées.

Au cours d’opérations de script et de programmation Integration Services, vous pouvez


spécifier une transformation asynchrone en assignant la valeur 0 à la propriété
SynchronousInputID des sorties du composant. . Vous indiquez ainsi au moteur de flux
de données de ne pas envoyer automatiquement chaque ligne aux sorties. Puis, vous
devez écrire du code pour envoyer explicitement chaque ligne à la sortie appropriée en
l'ajoutant au nouveau tampon de sortie créé pour la sortie d'une transformation
asynchrone.

7 Notes

Étant donné qu'un composant source doit également ajouter explicitement chaque
ligne qu'il lit à partir de la source de données à ses tampons de sortie, une source
ressemble à une transformation avec des sorties asynchrones.

Il serait également possible de créer une transformation asynchrone qui émule une
transformation synchrone en copiant explicitement chaque ligne d'entrée vers la sortie.
Cette méthode vous permettrait de renommer des colonnes ou convertir des types ou
formats de données. Toutefois, cette méthode dégrade les performances. Vous pouvez
parvenir aux mêmes résultats mais en bénéficiant de meilleures performances si vous
utilisez des composants Integration Services intégrés, tels que Copie de colonnes ou
Conversion de données.

Voir aussi
Création d'une transformation synchrone à l'aide du composant Script
Création d’une transformation asynchrone à l’aide du composant Script
Développement d’un composant de transformation personnalisé avec des sorties
synchrones
Développement d'un composant de transformation personnalisé à sorties asynchrones
Utilisation de gestionnaires de connexions par
programme
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Dans Integration Services, la méthode AcquireConnection de la classe de gestionnaire de connexions associée est
celle que vous appelez le plus souvent quand vous utilisez des gestionnaires de connexions dans le code managé.
Quand vous écrivez du code managé, vous devez appeler la méthode AcquireConnection pour utiliser les
fonctionnalités d’un gestionnaire de connexions. Vous devez appeler cette méthode que vous écriviez du code
managé dans une tâche de script, un composant Script, un objet personnalisé ou une application personnalisée.

Pour appeler correctement la méthode AcquireConnection, vous devez pouvoir répondre aux questions suivantes :

Quels gestionnaires de connexions retournent un objet managé à partir de la méthode AcquireConnection ?

De nombreux gestionnaires de connexions retournent des objets COM non managés (System.__ComObject) qui
ne peuvent pas être facilement utilisés à partir du code managé. La liste de ces gestionnaires de connexions
inclut le gestionnaire de connexions OLE DB fréquemment utilisé.

Pour les gestionnaires de connexions qui retournent un objet managé, quels sont les objets retournés par
leurs méthodes AcquireConnection ?

Pour caster la valeur de retour en type approprié, vous devez connaître le type d’objet retourné par la méthode
AcquireConnection. Par exemple, la méthode AcquireConnection du gestionnaire de connexions ADO.NET
retourne un objet SqlConnection ouvert quand vous utilisez le fournisseur SqlClient. Toutefois, la méthode
AcquireConnection du gestionnaire de connexions de fichiers ne retourne qu’une chaîne.

Cette rubrique répond à ces questions pour les gestionnaires de connexions inclus dans Integration Services.

Gestionnaires de connexions qui ne retournent pas un objet


managé
Le tableau suivant répertorie les gestionnaires de connexions qui retournent un objet COM natif
(System.__ComObject) à partir de la méthode AcquireConnection. Ces objets non managés ne peuvent pas être
facilement utilisés à partir du code managé.

Type du gestionnaire de connexions Nom du gestionnaire de connexions

ADO Gestionnaire de connexions ADO

MSOLAP90 Gestionnaire de connexions Analysis Services

EXCEL Gestionnaire de connexions Excel

FTP Gestionnaires de connexion FTP

HTTP Gestionnaire de connexions HTTP

ODBC Gestionnaire de connexions ODBC

OLEDB Gestionnaire de connexions OLE DB

En général, vous pouvez utiliser un gestionnaire de connexions ADO.NET à partir de code managé pour vous
connecter à une source de données ADO, Excel, ODBC ou OLE DB.
Valeurs de retour de la méthode AcquireConnection
Le tableau suivant répertorie les gestionnaires de connexions qui retournent un objet managé à partir de la méthode
AcquireConnection. Ces objets managés peuvent être facilement utilisés à partir du code managé.

Type du Nom du Type de valeur de retour Informations supplémentaires


gestionnaire gestionnaire
de de
connexions connexions

ADO.NET Gestionnaire System.Data.SqlClient.SqlConnection


de
connexions
ADO.NET

FILE Gestionnaire System.String Chemin d'accès au fichier.


de
connexions
de fichiers

FLATFILE Gestionnaire System.String Chemin d'accès au fichier.


de
connexions
de fichiers
plats

MSMQ Gestionnaire System.Messaging.MessageQueue


de
connexions
MSMQ

MULTIFILE Gestionnaire System.String Chemin d'accès à l'un des fichiers.


de
connexions
de fichiers
multiples

MULTIFLATFILE Gestionnaire System.String Chemin d'accès à l'un des fichiers.


de
connexions
de fichiers
plats
multiples

SMOServer Gestionnaire Microsoft.SqlServer.Management.Smo.Server


de
connexions
SMO

SMTP Gestionnaire System.String Par exemple : SmtpServer=<server


de name>;UseWindowsAuthentication=True;EnableSsl=False;
connexions
SMTP

WMI Gestionnaire System.Management.ManagementScope


de
connexions
WMI

SQLMOBILE Gestionnaire System.Data.SqlServerCe.SqlCeConnection


de
connexions
SQL Server
Compact
Voir aussi
Connexion à des sources de données dans la tâche de script
Connexion aux sources de données dans le composant Script
Connexion à des sources de données dans une tâche personnalisée
Extension de packages avec des scripts
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Si vous constatez que les composants intégrés Integration Services ne satisfont pas vos
besoins, vous pouvez étendre la puissance d'Integration Services en codant vos propres
extensions. Vous disposez de deux options distinctes pour étendre vos packages : vous
pouvez écrire du code dans les puissants wrappers fournis par la tâche de script et le
composant Script, ou vous pouvez entièrement créer des extensions Integration Services
personnalisées, dérivées des classes de base fournies par le modèle objet Integration
Services.

Cette section explore le plus simple des deux options : étendre des packages à l’aide de
scripts.

La tâche de script et le composant Script vous permettent d'étendre le flux de contrôle


et le flux de données d'un package Integration Services avec un minimum de code. Les
deux objets utilisent l’environnement de développement Microsoft Visual Studio Tools
for Applications (VSTA) et les langages de programmation Microsoft Visual Basic ou
Microsoft Visual C#. Par ailleurs, ils bénéficient de toutes les fonctionnalités offertes par
la bibliothèque de classes Microsoft .NET Framework, ainsi que des assemblys
personnalisés. La tâche de script et le composant Script permettent aux développeurs de
créer des fonctionnalités personnalisées sans devoir écrire tout le code d'infrastructure
généralement requis lors du développement d'une tâche personnalisée ou d'un
composant de flux de données personnalisé.

Dans cette section


Comparaison de la tâche de script et du composant Script
Examine les ressemblances et les différences entre la tâche de script et le composant
Script.

Comparaison des solutions de script et des objets personnalisés


Examine les critères à utiliser pour choisir entre une solution de script et le
développement d'un objet personnalisé.

Référencement d’autres assemblys dans les solutions de script


Examine les étapes requises pour référencer et utiliser des assemblys et des espaces de
noms externes dans un projet de script.
Extension du package à l’aide de la tâche de script
Explique comment créer des tâches personnalisées à l'aide de la tâche de script. Une
tâche est généralement appelée une fois par package exécuté, ou une fois pour chaque
source de données ouverte par un package.

Extension du flux de données avec le composant Script


Explique comment créer des sources, transformations et destinations de flux de données
personnalisées à l'aide du composant Script. Un composant de flux de données est
généralement appelé une fois pour chaque ligne de données traitée.

Informations de référence
Guide de référence des erreurs et des messages propres à Integration Services
Répertorie les codes d'erreur Integration Services prédéfinis avec leur nom symbolique
et leur description.

Sections connexes
Extension de packages avec des objets personnalisés
Explique comment créer des tâches personnalisées de programme, des composants de
flux de données et d'autres objets de package à utiliser dans plusieurs packages.

Génération de packages par programme


Décrit comment créer, configurer, exécuter, charger, enregistrer et gérer des packages
Integration Services par programme.

Voir aussi
SQL Server Integration Services
Comparaison de la tâche de script et du
composant Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de script, disponible dans la fenêtre Flux de contrôle du concepteur Integration


Services, et le composant Script, disponible dans la fenêtre Flux de données, ont des fonctions
très différentes dans un package Integration Services. La tâche est un outil de flux de contrôle à
usage général, alors que le composant sert de source, de transformation ou de destination
dans le flux de données. En dépit de leurs rôles différents, la tâche de script et le composant
Script présentent toutefois des similarités dans les outils de codage qu'ils utilisent et les objets
du package qu'ils mettent à la disposition des développeurs. Comprendre ces ressemblances et
ces différences peut vous aider à utiliser la tâche et le composant de manière plus efficace.

Similarités entre la tâche de script et le composant


Script
La tâche de script et le composant Script ont en commun les fonctionnalités suivantes.

Fonctionnalité Description

Deux modes Dans la tâche et le composant, vous commencez par spécifier des propriétés dans
au moment du l'éditeur, puis vous basculez vers l'environnement de développement pour écrire du
design code.

Microsoft La tâche et le composant utilisent le même environnement de développement intégré


Visual Studio VSTA et prennent en charge du code écrit dans Microsoft Visual Basic ou Microsoft
Tools for Visual C#.
Applications
(VSTA)

Scripts À partir de SQL Server 2008 Integration Services (SSIS), tous les scripts sont
précompilés précompilés. Les versions antérieures permettaient de spécifier si les scripts étaient
précompilés.

Le script est précompilé en code binaire, ce qui accélère l'exécution, au détriment d'une
augmentation de la taille des packages.

Débogage La tâche et le composant prennent en charge les points d'arrêt et l'exécution pas à pas
du code pendant le débogage dans l'environnement de conception. Pour plus
d’informations, consultez Codage et débogage de la tâche de script et Codage et
débogage du composant Script.
Différences entre la tâche de script et le composant
Script
La tâche de script et le composant Script présentent les différences importantes suivantes.

Fonctionnalité Tâche de script Composant Script

Flux de La tâche de script est configurée sous l'onglet Flux de Le composant Script est configuré
contrôle / Flux contrôle du concepteur et s'exécute à l'extérieur du dans la page Flux de données du
de données flux de données du package. concepteur et représente une source,
une transformation ou une
destination dans la tâche de flux de
données.

Objectif Une tâche de script peut exécuter quasiment toutes Vous devez spécifier si vous souhaitez
les tâches à caractère général. créer une source, une transformation
ou une destination à l'aide du
composant Script.

Exécution Une tâche de script exécute du code personnalisé à un Un composant Script s'exécute
point donné du flux de travail du package. Elle ne également une seule fois, mais il
s'exécute qu'une seule fois, à moins d'être placée dans exécute généralement sa routine de
un conteneur de boucles ou un gestionnaire traitement principale une fois pour
d'événements. chaque ligne de données dans le flux
de données.

Éditeur L’Éditeur de tâche de script comporte trois pages : L’Éditeur de transformation de script
Général, Script et Expressions. Seules les propriétés contient quatre pages : Colonnes
ReadOnlyVariables, ReadWriteVariables et d’entrée, Entrées et sorties, Script et
ScriptLanguage affectent directement le code que Gestionnaires de connexions. Les
vous pouvez écrire. métadonnées et les propriétés que
vous configurez dans chacune de ces
pages déterminent les membres des
classes de base générées
automatiquement et utilisés pour le
codage.
Fonctionnalité Tâche de script Composant Script

Interaction Dans le code écrit pour une tâche de script, la Dans le code du composant Script,
avec le propriété Dts vous permet d’accéder à d’autres des propriétés d'accesseur typées
package fonctionnalités du package. La propriété Dts est un vous permettent d'accéder à certaines
membre de la classe ScriptMain. fonctionnalités de package, telles que
les variables et les gestionnaires de
connexions.

La méthode PreExecute ne peut


accéder qu’à des variables en lecture
seule. La méthode PostExecute peut
accéder à des variables en lecture
seule et en lecture/écriture.

Pour plus d’informations sur ces


méthodes, consultez Codage et
débogage du composant Script.

Utilisation de La tâche de script utilise la propriété Variables de Le composant Script utilise des
variables l’objet Dts pour accéder aux variables disponibles via propriétés d’accesseur typées, de la
les propriétés ReadOnlyVariables et classe de base générée
ReadWriteVariables de la tâche. Par exemple : automatiquement, créées à partir des
propriétés ReadOnlyVariables et
[Visual Basic] ReadWriteVariables du composant.
Par exemple :
Dim myVar as String
myVar = [Visual Basic]
Dts.Variables("MyStringVariable").Value.ToString
Dim myVar as String
[C#] myVar =
Me.Variables.MyStringVariable
string myVar;
myVar = [C#]
Dts.Variables["MyStringVariable"].Value.ToString();
string myVar;
myVar =
this.Variables.MyStringVariable;
Fonctionnalité Tâche de script Composant Script

Utilisation de La tâche de script utilise la propriété Connections de Le composant Script utilise des
connexions l’objet Dts pour accéder aux gestionnaires de propriétés d'accesseur typées, de la
connexions définis dans le package. Par exemple : classe de base générée
automatiquement, créées à partir de
[Visual Basic] la liste de gestionnaires de connexions
entrée par l'utilisateur dans la page
Dim myFlatFileConnection As String Gestionnaires de connexions de
myFlatFileConnection = _ l'éditeur. Par exemple :
DirectCast(Dts.Connections("Test Flat File
Connection").AcquireConnection(Dts.Transaction), _ [Visual Basic]
String)
Dim connMgr As

[C#] IDTSConnectionManager100
connMgr =

string myFlatFileConnection; Me.Connections.MyADONETConnection

myFlatFileConnection = (Dts.Connections["Test Flat


File [C#]
Connection"].AcquireConnection(Dts.Transaction) as
String); IDTSConnectionManager100 connMgr;
connMgr =
this.Connections.MyADONETConnection;

Déclenchement La tâche de script utilise la propriété Events de l’objet Le composant Script déclenche des
d'événements Dts pour déclencher des événements. Par exemple : erreurs, des avertissements et des
messages d'information à l'aide des
[Visual Basic] méthodes de l'interface
IDTSComponentMetaData100
Dts.Events.FireError(0, "Event Snippet", _ retournée par la propriété
ex.Message & ControlChars.CrLf & ex.StackTrace, _ ComponentMetaData. Par exemple :
"", 0)
[Visual Basic]
[C#]
Dim myMetadata as
Dts.Events.FireError(0, "Event Snippet", ex.Message IDTSComponentMetaData100 myMetaData

+ "\r" + ex.StackTrace, "", 0); = Me.ComponentMetaData


myMetaData.FireError(...)
Fonctionnalité Tâche de script Composant Script

Journalisation La tâche de script utilise la méthode Log de l’objetDts Le composant Script utilise la
pour enregistrer des informations dans des modules méthode Log de la classe de base
fournisseurs d’informations actifs. Par exemple : générée automatiquement pour
enregistrer des informations dans des
[Visual Basic] modules fournisseurs d'informations
actifs. Par exemple :
Dim bt(0) As Byte Dts.Log("Test Log Event", _ 0, _
bt) [Visual Basic]

[C#] Dim bt(0) As Byte

byte[] bt = new byte[0]; Me.Log("Test Log Event", _


Dts.Log("Test Log Event", 0, bt);
0, _

bt)

[C#]

byte[] bt = new byte[0];


this.Log("Test Log Event", 0, bt);

Retour de La tâche de script utilise la propriété TaskResult et la Le composant Script s'exécute dans le
résultats propriété ExecutionValue facultative de l’objet Dts cadre de la tâche de flux de données
pour communiquer ses résultats au runtime. et ne communique pas de résultats à
l'aide de l'un ou l'autre de ces
propriétés.

Voir aussi
Extension du package à l’aide de la tâche de script
Extension du flux de données avec le composant Script
Comparaison des solutions de script et
des objets personnalisés
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Une tâche de script Integration Services ou un composant Script peuvent implémenter


un bon nombre des mêmes fonctionnalités possibles dans une tâche managée
personnalisée ou un composant de flux de données personnalisé. Voici quelques
éléments à considérer pour choisir le type de tâche approprié à vos besoins :

Si la configuration ou les fonctionnalités sont propres à un package individuel,


vous devez utiliser la tâche de script ou le composant Script au lieu de développer
un objet personnalisé.

Si les fonctionnalités sont génériques et pourront être utilisées ultérieurement


pour d'autres packages et par d'autres développeurs, vous devez créer un objet
personnalisé au lieu d'utiliser une solution de script. Vous pouvez utiliser un objet
personnalisé dans tout package, alors qu'un script peut uniquement être utilisé
dans le package pour lequel il a été créé.

Si le code sera réutilisé dans le même package, vous devez envisager de créer un
objet personnalisé. La copie de code depuis une tâche de script ou un composant
Script vers une autre tâche ou un autre composant en réduit la facilité de gestion
en rendant plus difficiles la gestion et la mise à jour des multiples copies du code.

Si l'implémentation va changer avec le temps, envisagez d'utiliser un objet


personnalisé. Les objets personnalisés peuvent être développés et déployés
séparément du package parent, alors qu'une mise à jour apportée à une solution
de script requiert le redéploiement du package entier.

Voir aussi
Extension de packages avec des objets personnalisés
Référencement d'autres assemblys dans
les solutions de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La bibliothèque de classes Microsoft .NET Framework fournit au développeur de scripts


un ensemble d’outils performants permettant d’implémenter des fonctionnalités
personnalisées dans des packages Integration Services. La tâche de script et le
composant Script peuvent également utiliser des assemblys managés personnalisés.

7 Notes

Pour permettre à vos packages d’utiliser les objets et méthodes d’un service web,
utilisez la commande Ajouter une référence web disponible dans Microsoft Visual
Studio Tools for Applications (VSTA). Dans les versions antérieures de Integration
Services, vous deviez générer une classe proxy pour utiliser un service Web.

Utilisation d'un assembly managé


Pour que Integration Services trouve un assembly managé au moment de la conception,
vous devez effectuer les étapes suivantes :

1. Stockez l'assembly managé dans un dossier sur votre ordinateur.

7 Notes

Dans les versions antérieures de Integration Services, vous pouviez


uniquement ajouter une référence à un assembly managé qui était stocké
dans le dossier %windir%\Microsoft.NET\Framework\vx.x.xxxxx ou le dossier
%ProgramFiles%\Microsoft SQL Server\100\SDK\Assemblies.

2. Ajoutez une référence à l'assembly managé.

Pour ajouter la référence, dans VSTA, dans la boîte de dialogue Ajouter une
référence, sous l’onglet Parcourir, localisez et ajoutez l’assembly managé.

Pour que Integration Services recherche l'assembly managé au moment de l'exécution,


vous devez procéder comme suit :
1. Signez l'assembly managé avec un nom fort.

2. Installez l'assembly dans le Global Assembly Cache sur l'ordinateur sur lequel le
package est exécuté.

Pour plus d’informations, consultez Génération, déploiement et débogage d’objets


personnalisés.

Utilisation de la bibliothèque de
classes Microsoft .NET Framework
La tâche de script et le composant Script peuvent tirer parti de tous les autres objets et
fonctionnalités exposés par la bibliothèque de classes .NET Framework. Par exemple, en
utilisant .NET Framework, vous pouvez extraire des informations sur votre
environnement et interagir avec l'ordinateur qui exécute le package.

Cette liste décrit plusieurs classes .NET Framework figurant parmi les plus fréquemment
utilisées :

System.Data Contient l’architecture ADO.NET.

System.IO Fournit une interface au système et aux flux de fichiers.

System.Windows.Forms Fournit la création de formulaires.

System.Text.RegularExpressions Fournit des classes à utiliser avec des expressions


régulières.

System.Environment Renvoie des informations sur l’ordinateur local, l’utilisateur


actif et les paramètres de l’ordinateur et de l’utilisateur.

System.Net Fournit une communication réseau.

System.DirectoryServices Expose Active Directory.

System.Drawing Fournit de vastes bibliothèques de manipulation d’images.

System.Threading Permet une programmation multithread.

Pour plus d'informations sur le .NET Framework, consultez MSDN Library.

Voir aussi
Extension de packages avec des scripts
Déboguer un script en définissant des
points d'arrêt dans une tâche de script
et un composant de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette section décrit la procédure de définition des points d'arrêt dans les scripts utilisés
dans la tâche de script et le composant de script.

Après avoir défini les points d’arrêt dans le script, la boîte de dialogue Définir les points
d’arrêt - <nom d’objet> donne la liste des points d’arrêt avec les points d’arrêt intégrés.

) Important

Dans certains cas, les points d'arrêt de la tâche de script et le composant de script
sont ignorés. Pour plus d’informations, consultez la section Débogage de la tâche
de script dans Codage et débogage de la tâche de script et la section Débogage
du composant Script dans Codage et débogage du composant Script.

Pour définir un point d'arrêt dans un script


1. Dans SQL Server Data Tools (SSDT), ouvrez le projet Integration Services contenant
le package souhaité.

2. Double-cliquez sur le package qui contient le script dans lequel vous souhaitez
définir des points d'arrêt.

3. Pour ouvrir la tâche de script, cliquez sur l’onglet Flux de contrôle, puis double-
cliquez sur la tâche de script.

4. Pour ouvrir le composant de script, cliquez sur l’onglet Flux de données, puis
double-cliquez sur le composant de script.

5. Cliquez sur Script, puis sur Modifier le script.

6. Dans Microsoft Visual Studio Tools for Applications (VSTA), recherchez la ligne de
script sur laquelle vous voulez définir un point d’arrêt, cliquez dessus avec le
bouton droit, pointez sur Point d’arrêt, puis sélectionnez Insérer un point d’arrêt.
L'icône du point d'arrêt apparaît sur la ligne de code.

7. Dans le menu Fichier , cliquez sur Quitter.

8. Cliquez sur OK.

9. Pour enregistrer le package, cliquez sur Enregistrer les éléments sélectionnés dans
le menu Fichier .
Extension du package à l'aide de la
tâche de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de script étend les fonctionnalités d’exécution des packages Microsoft


Integration Services à l’aide de code personnalisé écrit dans Microsoft Visual Basic ou
Microsoft Visual C# qui est compilé et exécuté au moment de l’exécution des packages.
La tâche de script simplifie le développement d'une tâche d'exécution personnalisée
lorsque les tâches incluses dans Integration Services ne répondent pas complètement à
vos besoins. La tâche de script écrit tout le code d'infrastructure requis à votre place, ce
qui vous permet de vous concentrer exclusivement sur le code requis pour votre
traitement personnalisé.

Une tâche de script interagit avec le package conteneur via l’objet Dts global, une
instance de la classe ScriptObjectModel qui est exposée dans l’environnement de script.
Vous pouvez écrire le code dans une tâche de script qui modifie les valeurs stockées
dans les variables Integration Services ; le package peut ensuite utiliser ces valeurs mises
à jour pour déterminer le chemin d'accès de son flux de travail. La tâche de script peut
également utiliser l'espace de noms Visual Basic et la bibliothèque de classes .NET
Framework, ainsi que des assemblys personnalisés, pour implémenter des
fonctionnalités personnalisées.

La tâche de script et le code d'infrastructure qu'elle génère simplifient considérablement


le processus qui consiste à développer une tâche personnalisée. Toutefois, pour
comprendre le fonctionnement de la tâche de script, il peut s’avérer utile de lire la
section Développement d’une tâche personnalisée afin de maîtriser les étapes du
développement d’une tâche personnalisée.

Si vous créez une tâche que vous projetez de réutiliser dans plusieurs packages, vous
devez envisager de développer une tâche personnalisée au lieu d'utiliser la tâche de
script. Pour plus d’informations, consultez Comparaison des solutions de script et des
objets personnalisés.

Dans cette section


Les rubriques suivantes fournissent des informations supplémentaires sur la tâche de
script.
Configuration de la tâche de script dans l'éditeur de tâche de script
Explique de quelle manière les propriétés que vous configurez dans l’éditeur de tâche
de script affectent les fonctionnalités et les performances du code de la tâche de script.

Codage et débogage de la tâche de script


Explique comment utiliser Microsoft Visual Studio Tools for Applications (VSTA) pour
développer les scripts contenus dans la tâche de script.

Utilisation de variables dans la tâche de script


Explique comment utiliser des variables via la propriété Variables.

Connexion à des sources de données dans la tâche de script


Explique comment utiliser des connexions via la propriété Connections.

Déclenchement d'événements dans la tâche de script


Explique comment déclencher des événements via la propriété Events.

Journalisation dans la tâche de script


Explique comment journaliser des informations via la méthode Log.

Retour de résultats de la tâche de script


Explique comment renvoyer des résultats via la propriété TaskResult et la propriété
ExecutionValue.

Exemples de tâche de script


Fournit des exemples simples qui montrent plusieurs utilisations possibles d'une tâche
de script.

Voir aussi
Tâche de script
Comparaison de la tâche de script et du composant Script
Configuration de la tâche de script dans
l'éditeur de tâche de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Avant d’écrire du code personnalisé dans la tâche de script, vous devez configurer ses
propriétés principales dans les trois pages de l’éditeur de tâche de script. Vous pouvez
configurer des propriétés de tâche supplémentaires qui ne sont pas propres à la tâche
de script à l'aide de la fenêtre Propriétés.

7 Notes

Contrairement aux versions antérieures pour lesquelles il était possible d'indiquer si


les scripts étaient précompilés, tous les scripts sont compilés à partir de SQL
Server 2008 Integration Services (SSIS).

Page Général de l'éditeur de tâche de script


La page Général de l’éditeur de tâche de script vous permet d’assigner un nom unique
et une description à la tâche de script.

Page Script de l'éditeur de tâche de script


La page Script de l’éditeur de tâche de script affiche les propriétés personnalisées de la
tâche de script.

Propriété ScriptLanguage
Microsoft Visual Studio Tools for Applications (VSTA) prend en charge les langages de
programmation Microsoft Visual Basic ou Microsoft Visual C#. Après avoir créé un script
dans la tâche de script, vous ne pouvez pas modifier la valeur de la propriété
ScriptLanguage.

Pour définir le langage de script par défaut des composants Script et des tâches de
script, utilisez la propriété ScriptLanguage dans la page Général de la boîte de dialogue
Options. Pour plus d'informations, consultez General Page.
Propriété EntryPoint
La propriété EntryPoint spécifie la méthode de la classe ScriptMain du projet VSTA qui
est appelée par le runtime Integration Services comme point d’entrée dans le code de
tâche de script. La classe ScriptMain est la classe par défaut générée par les modèles de
script.

Si vous modifiez le nom de la méthode dans le projet VSTA, vous devez modifier la
valeur de la propriété EntryPoint .

Propriétés ReadOnlyVariables et ReadWriteVariables


Vous pouvez entrer des listes délimitées par des virgules de variables existantes comme
valeurs de ces propriétés pour rendre les variables accessibles en lecture seule ou en
lecture/écriture dans le code de tâche de script. Les deux types de variables sont
accessibles dans le code par le biais de la propriété Variables de l’objet Dts. Pour plus
d’informations, consultez Utilisation de variables dans la tâche de script.

7 Notes

Les noms de variable respectent la casse.

Pour sélectionner les variables, cliquez sur le bouton de sélection ( ... ) situé en regard
du champ de propriété. Pour plus d’informations, consultez Sélectionner des variables,
page.

Bouton Modifier le script


Le bouton Modifier le script lance l’environnement de développement VSTA dans lequel
vous écrivez votre script personnalisé. Pour plus d’informations, consultez Codage et
débogage de la tâche de script.

Page Expressions de l'éditeur de tâche de script


La page Expressions de l’éditeur de tâche de script vous permet d’utiliser des
expressions pour fournir les valeurs des propriétés de la tâche de script répertoriées ci-
dessus et de nombreuses autres propriétés de tâche. Pour plus d’informations, consultez
Expressions Integration Services (SSIS).

Voir aussi
Codage et débogage de la tâche de script
Codage et débogage de la tâche de
script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Après avoir configuré la tâche de script dans l’éditeur de tâche de script, vous pouvez
écrire votre code personnalisé dans l’environnement de développement de tâche de
script.

Environnement de développement de tâche de


script
La tâche de script utilise Microsoft Visual Studio Tools for Applications (VSTA) comme
environnement de développement du script proprement dit.

Le code de script est écrit dans Microsoft Visual Basic ou Microsoft Visual C#. Vous
pouvez spécifier le langage de script en définissant la propriété ScriptLanguage dans
l’éditeur de tâche de script. Si vous préférez utiliser un autre langage de
programmation, vous pouvez développer un assembly personnalisé dans le langage de
votre choix et appeler ses fonctionnalités à partir du code inclus dans la de script.

Le script que vous créez dans la tâche de script est stocké dans la définition du package.
Aucun fichier de script distinct n'est créé. Par conséquent, l'utilisation de la tâche de
script n'affecte pas le déploiement de package.

7 Notes

Lorsque vous concevez le package et déboguez le script, le code de script est écrit
temporairement dans un fichier projet. Étant donné que le stockage d'informations
sensibles dans un fichier représente un risque potentiel en termes de sécurité, nous
vous recommandons de ne pas inclure d'informations sensibles, telles que des
mots de passe, dans le code de script.

Par défaut, Option Strict est désactivé dans l’environnement de développement intégré.

Structure du projet de tâche de script


Lorsque vous créez ou modifiez le script contenu dans une tâche de script, VSTA ouvre
un nouveau projet vide ou rouvre le projet existant. La création de ce projet VSTA
n'affecte pas le déploiement du package étant donné que le projet est enregistré à
l'intérieur du fichier de package ; la tâche de script ne crée pas de fichiers
supplémentaires.

Éléments et classes du projet de tâche de script


Par défaut, le projet de tâche de script affiché dans la fenêtre Explorateur de projets
VSTA contient un seul élément, ScriptMain. L’élément ScriptMain contient à son tour
une classe unique, également nommé ScriptMain. Les éléments de code inclus dans la
classe varient selon le langage de programmation sélectionné pour la tâche de script :

Quand la tâche de script est configurée pour le langage de programmation Visual


Basic, la classe ScriptMain possède une sous-routine publique, Main. La sous-
routine ScriptMain.Main est la méthode appelée par le runtime lorsque vous
exécutez votre tâche de script.

Par défaut, le seul code figurant dans la sous-routine Main d’un nouveau script est
la ligne Dts.TaskResult = ScriptResults.Success . Cette ligne informe le runtime
que la tâche a été menée à bien. La propriété Dts.TaskResult est décrite dans
Retour de résultats de la tâche de script.

Lorsque la tâche de script est configurée pour le langage de programmation Visual


C#, la classe ScriptMain possède une méthode publique, Main. La méthode est
appelée lors de l'exécution de la tâche de script.

Par défaut, la méthode Main inclut la ligne Dts.TaskResult =


(int)ScriptResults.Success . Cette ligne informe le runtime que la tâche a été

menée à bien.

L’élément ScriptMain peut contenir d’autres classes que ScriptMain. La tâche de script
ne peut accéder qu'aux classes qu'elle héberge.

Par défaut, l’élément de projet ScriptMain contient le code généré automatiquement


suivant. Le modèle de code fournit également une vue d'ensemble de la tâche de script,
ainsi que des informations supplémentaires sur la récupération et la manipulation des
objets SSIS, tels que les variables, les événements et les connexions.

VB

' Microsoft SQL Server Integration Services Script Task


' Write scripts using Microsoft Visual Basic 2008.
' The ScriptMain is the entry point class of the script.
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime.VSTAProxy

<System.AddIn.AddIn("ScriptMain", Version:="1.0", Publisher:="",


Description:="")> _
Partial Class ScriptMain

Private Sub ScriptMain_Startup(ByVal sender As Object, ByVal e As


System.EventArgs) Handles Me.Startup

End Sub

Private Sub ScriptMain_Shutdown(ByVal sender As Object, ByVal e As


System.EventArgs) Handles Me.Shutdown
Try
' Unlock variables from the read-only and read-write variable collection
properties
If (Dts.Variables.Count <> 0) Then
Dts.Variables.Unlock()
End If
Catch ex As Exception
End Try
End Sub

Enum ScriptResults
Success = DTSExecResult.Success
Failure = DTSExecResult.Failure
End Enum

' The execution engine calls this method when the task executes.
' To access the object model, use the Dts property. Connections, variables,
events,
' and logging features are available as members of the Dts property as shown
in the following examples.
'
' To reference a variable, call
Dts.Variables("MyCaseSensitiveVariableName").Value
' To post a log entry, call Dts.Log("This is my log text", 999, Nothing)
' To fire an event, call Dts.Events.FireInformation(99, "test", "hit the
help message", "", 0, True)
'
' To use the connections collection use something like the following:
' ConnectionManager cm = Dts.Connections.Add("OLEDB")
' cm.ConnectionString = "Data Source=localhost;Initial
Catalog=AdventureWorks;Provider=SQLNCLI10;Integrated Security=SSPI;Auto
Translate=False;"
'
' Before returning from this method, set the value of Dts.TaskResult to
indicate success or failure.
'
' To open Help, press F1.
Public Sub Main()
'
' Add your code here
'
Dts.TaskResult = ScriptResults.Success
End Sub

End Class

C#

/*
Microsoft SQL Server Integration Services Script Task
Write scripts using Microsoft Visual C# 2008.
The ScriptMain is the entry point class of the script.
*/

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime.VSTAProxy;
using System.Windows.Forms;

namespace ST_1bcfdbad36d94f8ba9f23a10375abe53.csproj
{
[System.AddIn.AddIn("ScriptMain", Version = "1.0", Publisher = "",
Description = "")]
public partial class ScriptMain
{
private void ScriptMain_Startup(object sender, EventArgs e)
{

private void ScriptMain_Shutdown(object sender, EventArgs e)


{
try
{
// Unlock variables from the read-only and read-write
variable collection properties
if (Dts.Variables.Count != 0)
{
Dts.Variables.Unlock();
}
}
catch
{
}
}

#region VSTA generated code


private void InternalStartup()
{
this.Startup += new System.EventHandler(ScriptMain_Startup);
this.Shutdown += new System.EventHandler(ScriptMain_Shutdown);
}
enum ScriptResults
{
Success = DTSExecResult.Success,
Failure = DTSExecResult.Failure
};

#endregion

/*
The execution engine calls this method when the task executes.
To access the object model, use the Dts property. Connections, variables,
events,
and logging features are available as members of the Dts property as shown
in the following examples.

To reference a variable, call


Dts.Variables["MyCaseSensitiveVariableName"].Value;
To post a log entry, call Dts.Log("This is my log text", 999, null);
To fire an event, call Dts.Events.FireInformation(99, "test", "hit the help
message", "", 0, true);

To use the connections collection use something like the following:


ConnectionManager cm = Dts.Connections.Add("OLEDB");
cm.ConnectionString = "Data Source=localhost;Initial
Catalog=AdventureWorks;Provider=SQLNCLI10;Integrated Security=SSPI;Auto
Translate=False;";

Before returning from this method, set the value of Dts.TaskResult to


indicate success or failure.

To open Help, press F1.


*/

public void Main()


{
// TODO: Add your code here
Dts.TaskResult = (int)ScriptResults.Success;
}
}

Autres éléments du projet de tâche de script


Le projet de tâche de script peut inclure d’autres éléments que l’élément ScriptMain par
défaut. Vous pouvez ajouter des classes, des modules et des fichiers de code au projet.
Vous pouvez également utiliser des dossiers pour organiser des groupes d'éléments.
Tous les éléments que vous ajoutez sont rendus persistants à l'intérieur du package.

Références dans le projet de tâche de script


Vous pouvez ajouter des références aux assemblys managés en cliquant avec le bouton
droit sur le projet de tâche de script dans l’Explorateur de projets, puis en cliquant sur
Ajouter une référence. Pour plus d’informations, consultez Référencement d’autres
assemblys dans les solutions de script.

7 Notes

Vous pouvez consulter des références de projet dans l’environnement de


développement intégré VSTA dans l’Affichage de classes ou l’Explorateur de
projets. Vous ouvrez l’une ou l’autre de ces fenêtres à partir du menu Affichage.
Vous pouvez ajouter une nouvelle référence à partir du menu Projet, de
l’Explorateur de projets ou d’Affichage de classes.

Interaction avec le package dans la tâche de


script
La tâche de script utilise l’objet Dts global, qui est une instance de la classe
ScriptObjectModel, ainsi que ses membres, pour interagir avec le package qui la
contient et avec le runtime Integration Services.

Le tableau suivant répertorie les principaux membres publics de la classe


ScriptObjectModel, qui est exposée au code de la tâche de script par le biais de l’objet
Dts global. Les rubriques de cette section examinent en détail l'utilisation de ces
membres.

Membre Objectif

Connections Permet d'accéder aux gestionnaires de connexion définis dans le package.

Events Fournit une interface d'événements pour permettre à la tâche de script de


déclencher des erreurs, des avertissements et des messages d'information.

ExecutionValue Offre un moyen simple de retourner un objet unique au runtime (en plus de
TaskResult) qui peut également être utilisé pour la création de branche de flux
de travail.

Log Enregistre des informations, telles que la progression et le résultat d'une tâche, à
des modules fournisseurs d'informations activés.

TaskResult Signale le succès ou l'échec de la tâche.

Transaction Fournit la transaction, le cas échéant, dans laquelle le conteneur de la tâche


s'exécute.
Membre Objectif

Variables Permet d’accéder aux variables répertoriées dans les propriétés de tâche
ReadOnlyVariables et ReadWriteVariables à utiliser dans le script.

La classe ScriptObjectModel contient également quelques membres publics que vous


n'utiliserez probablement pas.

Membre Description

VariableDispenser La propriété Variables fournit un accès plus pratique aux variables. Vous
pouvez utiliser VariableDispenser, mais vous devez alors appeler des
méthodes de manière explicite pour verrouiller et déverrouiller l'accès en
lecture ou en écriture aux variables. La tâche de script se charge de gérer la
sémantique de verrouillage lorsque vous utilisez la propriété Variables.

Débogage de la tâche de script


Pour déboguer le code dans votre tâche de script, définissez au moins un point d'arrêt
dans le code, puis fermez l'environnement de développement intégré VSTA pour
exécuter le package dans SQL Server Data Tools (SSDT). Lorsque l'exécution du package
entre la tâche de script, l'environnement de développement intégré s'ouvre à nouveau
et affiche votre code en lecture seule. Lorsque l'exécution atteint le point d'arrêt, vous
pouvez examiner les valeurs des variables et exécuter pas à pas le code restant.

2 Avertissement

Vous ne pouvez pas déboguer la tâche de script lorsque vous exécutez le package
en mode 64 bits.

7 Notes

Vous devez exécuter le package à déboguer dans votre tâche de script. Si vous
exécutez uniquement la tâche, les points d'arrêt figurant dans le code de tâche de
script sont ignorés.

7 Notes

Vous ne pouvez pas déboguer une tâche de script si vous l'exécutez dans le cadre
d'un package enfant exécuté à partir d'une tâche d'exécution de package. Dans ce
cas, les points d'arrêt définis dans la tâche de script dans le package enfant sont
ignorés. Vous pouvez déboguer normalement le package enfant en l'exécutant
séparément.

7 Notes

Lorsque vous déboguez un package qui contient plusieurs tâches Script, le


débogueur n'en débogue qu'une seule. Le système peut déboguer une autre tâche
Script si le débogueur a terminé, comme dans le cas d'une boucle Foreach ou du
conteneur de boucles For.

Ressources externes
Entrée de blog, VSTA setup and configuration troubles for SSIS 2008 and R2
installations, sur blogs.msdn.com.

Voir aussi
Référencement d’autres assemblys dans les solutions de script
Configuration de la tâche de script dans l'éditeur de tâche de script
Utilisation de variables dans la tâche de
script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les variables permettent à la tâche de script d'échanger des données avec d'autres
objets dans le package. Pour plus d’informations, consultez Variables Integration
Services (SSIS).

La tâche de script utilise la propriété Variables de l’objet Dts pour lire et écrire dans les
objets Variable du package.

7 Notes

La propriété Value de la classe Variable est de type Object. Dans la mesure où


Option Strict est activé pour la tâche de script, vous devez caster la propriété Value
en type approprié avant de pouvoir l’utiliser.

Vous ajoutez des variables existantes aux listes ReadOnlyVariables et ReadWriteVariables


dans l’éditeur de tâche de script afin qu’elles puissent être utilisées dans le script
personnalisé. N'oubliez pas que les noms de variables respectent la casse. Dans le script,
vous accédez aux deux types de variables par le biais de la propriété Variables de l’objet
Dts. Utilisez la propriété Value pour lire et écrire des variables individuelles. La tâche de
script gère de façon transparente le verrouillage pendant que le script lit et modifie les
valeurs des variables.

La méthode Contains de la collection Variables retournée par la propriété Variables vous


permet de vérifier l'existence d'une variable avant de l'utiliser dans votre code.

La propriété VariableDispenser (Dts.VariableDispenser) vous permet également d’utiliser


des variables dans la tâche de script. Lorsque vous utilisez la propriété
VariableDispenser, vous devez gérer à la fois la sémantique de verrouillage et la
conversion des types de données pour les valeurs de variables dans votre propre code.
Vous pourriez devoir utiliser la propriété VariableDispenser à la place de la propriété
Variables si vous souhaitez utiliser une variable qui n'est pas disponible au moment de la
conception mais qui est créée par programme au moment de l'exécution.
Utilisation de la tâche de script dans un
conteneur de boucles Foreach
Lorsqu'une tâche de script s'exécute à plusieurs reprises dans un conteneur de boucles
Foreach, le script doit généralement utiliser le contenu de l'élément actif dans
l'énumérateur. Par exemple, lors de l'utilisation d'un énumérateur Foreach File, le script
doit connaître le nom du fichier actif ; lors de l'utilisation d'un énumérateur ADO
Foreach, le script doit connaître le contenu des colonnes dans la ligne de données en
cours.

Les variables permettent d'établir cette communication entre le conteneur de boucles


Foreach et la tâche de script. Dans la page Mappage de variables de l’Éditeur de boucle
Foreach, assignez des variables à chaque élément de données qui est retourné par un
même élément énuméré. Par exemple, un énumérateur Foreach File retourne
uniquement un nom de fichier à l'index 0 et ne requiert donc qu'un seul mappage de
variables, alors qu'un énumérateur qui retourne plusieurs colonnes de données dans
chaque ligne requiert que vous mappiez une variable différente à chaque colonne que
vous souhaitez utiliser dans la tâche de script.

Après avoir mappé les éléments énumérés aux variables, vous devez ajouter les variables
mappées à la propriété ReadOnlyVariables dans la page Script de l’éditeur de tâche de
script pour les mettre à la disposition de votre script. Pour obtenir un exemple de tâche
de script dans un conteneur de boucles Foreach qui traite les fichiers image dans un
dossier, consultez Utilisation d’images à l’aide de la tâche de script.

Exemple de variables
L'exemple suivant montre comment accéder à des variables et les utiliser dans une tâche
de script pour déterminer le chemin d'accès du flux de travail du package. Il est supposé
dans l’exemple que vous avez créé des variables de type integer nommées
CustomerCount et MaxRecordCount , et que vous les avez ajoutées à la collection
ReadOnlyVariables dans l’éditeur de tâche de script. La variable CustomerCount contient
le nombre d'enregistrements de client à importer. Si sa valeur est supérieure à la valeur
de MaxRecordCount , la tâche de script signale une défaillance. Lorsqu'une défaillance se
produit en raison du dépassement du seuil MaxRecordCount , le chemin d'accès aux
erreurs du flux de travail peut implémenter les opérations de nettoyage requises.

Pour compiler correctement l'exemple, vous devez ajouter une référence à l'assembly
Microsoft.SqlServer.ScriptTask.

VB
Public Sub Main()

Dim customerCount As Integer


Dim maxRecordCount As Integer

If Dts.Variables.Contains("CustomerCount") = True AndAlso _


Dts.Variables.Contains("MaxRecordCount") = True Then

customerCount = _
CType(Dts.Variables("CustomerCount").Value, Integer)
maxRecordCount = _
CType(Dts.Variables("MaxRecordCount").Value, Integer)

End If

If customerCount > maxRecordCount Then


Dts.TaskResult = ScriptResults.Failure
Else
Dts.TaskResult = ScriptResults.Success
End If

End Sub

C#

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;

public class ScriptMain


{

public void Main()


{
int customerCount;
int maxRecordCount;

if
(Dts.Variables.Contains("CustomerCount")==true&&Dts.Variables.Contains("MaxR
ecordCount")==true)

{
customerCount = (int) Dts.Variables["CustomerCount"].Value;
maxRecordCount = (int) Dts.Variables["MaxRecordCount"].Value;

if (customerCount>maxRecordCount)
{
Dts.TaskResult = (int)ScriptResults.Failure;
}
else
{
Dts.TaskResult = (int)ScriptResults.Success;
}

Voir aussi
Variables Integration Services (SSIS)
Utiliser des variables dans des packages
Connexion à des sources de données
dans la tâche de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les gestionnaires de connexions fournissent un accès à des sources de données qui ont
été configurées dans le package. Pour plus d’informations, consultez Connexions
Integration Services (SSIS).

La tâche de script peut accéder à ces gestionnaires de connexions via la propriété


Connections de l’objetDts. Chaque gestionnaire de connexions compris dans la
collection Connections stocke des informations sur la manière d'établir une connexion à
la source de données sous-jacente.

Lorsque vous appelez la méthode AcquireConnection d'un gestionnaire de connexions,


le gestionnaire de connexions se connecte à la source de données, s'il n'est pas déjà
connecté, puis renvoie la connexion ou les informations de connexion appropriées que
vous devez utiliser dans le code de votre tâche de script.

7 Notes

Vous devez connaître le type de connexion renvoyé par le gestionnaire de


connexions avant d’appeler AcquireConnection. Dans la mesure où Option Strict
est activé pour la tâche de script, vous devez caster la connexion (retournée en tant
que type Object) en type de connexion approprié avant de pouvoir l’utiliser.

Vous pouvez utiliser la méthode Contains de la collection Connections renvoyée par la


propriété Connections pour rechercher une connexion existante avant d'utiliser la
connexion dans votre code.

) Important

Vous ne pouvez pas appeler la méthode AcquireConnection des gestionnaires de


connexions qui renvoient des objets non managés, tels que le gestionnaire de
connexions OLE DB et le gestionnaire de connexions Excel, dans le code managé
d’une tâche de script. Toutefois, vous pouvez lire la propriété ConnectionString de
ces gestionnaires de connexions et vous connecter directement à la source de
données dans votre code en utilisant la chaîne de connexion spécifiant un
OledbConnection de l’espace de noms System.Data.OleDb.
Si vous devez appeler la méthode AcquireConnection d’un gestionnaire de
connexions qui retourne un objet non managé, utilisez un gestionnaire de
connexions ADO.NET. Lorsque vous configurez le gestionnaire de connexions
ADO.NET afin d'utiliser un fournisseur OLE DB, il se connecte en utilisant le
fournisseur de données .NET Framework pour OLE DB. Dans ce cas, la méthode
AcquireConnection retourne un System.Data.OleDb.OleDbConnection à la place
d’un objet non managé. Pour configurer un gestionnaire de connexions ADO.NET
en vue de son utilisation avec une source de données Excel, sélectionnez le
fournisseur Microsoft OLE DB pour Jet, spécifiez un fichier Excel, puis entrez Excel
8.0 (pour Excel 97 et versions ultérieures) comme valeur Propriétés étendues dans

la page Tout de la boîte de dialogue Gestionnaire de connexions.

Exemple de connexions
L'exemple suivant montre comment accéder aux gestionnaires de connexions à partir de
la tâche de script. Il est supposé dans l’exemple que vous avez créé et configuré un
gestionnaire de connexions ADO.NET nommé Connexion ADO.NET test et un
gestionnaire de connexions de fichiers plats nommé Connexion de fichiers plats test.
Notez que le gestionnaire de connexions ADO.NET retourne un objet SqlConnection
que vous pouvez utiliser immédiatement pour vous connecter à la source de données.
Le gestionnaire de connexions de fichiers plats, en revanche, retourne uniquement une
chaîne qui contient le chemin d'accès et le nom du fichier. Vous devez utiliser les
méthodes de l’espace de noms System.IO pour ouvrir et utiliser le fichier plat.

VB

Public Sub Main()

Dim myADONETConnection As SqlClient.SqlConnection =


DirectCast(Dts.Connections("Test ADO.NET
Connection").AcquireConnection(Dts.Transaction),
SqlClient.SqlConnection)
MsgBox(myADONETConnection.ConnectionString,
MsgBoxStyle.Information, "ADO.NET Connection")

Dim myFlatFileConnection As String =


DirectCast(Dts.Connections("Test Flat File
Connection").AcquireConnection(Dts.Transaction),
String)
MsgBox(myFlatFileConnection, MsgBoxStyle.Information, "Flat File
Connection")

Dts.TaskResult = ScriptResults.Success

End Sub
C#

public void Main()


{
SqlConnection myADONETConnection =
Dts.Connections["Test ADO.NET
Connection"].AcquireConnection(Dts.Transaction)
as SqlConnection;
MessageBox.Show(myADONETConnection.ConnectionString, "ADO.NET
Connection");

string myFlatFileConnection =
Dts.Connections["Test Flat File
Connection"].AcquireConnection(Dts.Transaction)
as string;
MessageBox.Show(myFlatFileConnection, "Flat File Connection");

Dts.TaskResult = (int)ScriptResults.Success;
}

Voir aussi
Connexions Integration Services (SSIS)
Créer des gestionnaires de connexions
Déclenchement d'événements dans la
tâche de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les événements offrent un moyen de signaler des erreurs, des avertissements et


d'autres informations, telles que la progression ou l'état d'une tâche, au package
conteneur. Le package fournit des gestionnaires d'événements pour gérer les
notifications d'événements. La tâche de script peut déclencher des événements en
appelant des méthodes sur la propriété Events de l’objet Dts. Pour plus d’informations
sur la manière dont les packages Integration Services gèrent les événements, consultez
Gestionnaires d’événements Integration Services (SSIS).

Les événements peuvent être journalisés dans tout module fournisseur d'informations
activé dans le package. Les modules fournisseurs d'informations stockent des
informations à propos des événements dans une banque de données. La tâche de script
peut également utiliser la méthode Log pour journaliser des informations dans un
module fournisseur d'informations sans déclencher d'événement. Pour plus
d’informations sur la manière d’utiliser la méthode Log, consultez Journalisation dans la
tâche de script.

Pour déclencher un événement, la tâche de script appelle l'une des méthodes exposées
par la propriété Events. Le tableau suivant répertorie les méthodes exposées par la
propriété Events.

Événement Description

FireCustomEvent Déclenche un événement personnalisé défini par l'utilisateur dans le package.

FireError Informe le package d'une condition d'erreur.

FireInformation Fournit des informations à l'utilisateur.

FireProgress Informe le package de la progression de la tâche.

FireQueryCancel Retourne une valeur qui indique si le package nécessite l'arrêt prématuré de la
tâche.

FireWarning Informe le package que la tâche est dans un état qui garantit la notification de
l'utilisateur, mais qui n'est pas une condition d'erreur.

Exemples d'événements
L'exemple suivant montre comment déclencher des événements à partir de la tâche de
script. L'exemple utilise une fonction API Windows native pour déterminer si une
connexion Internet est disponible. Si aucune connexion n'est disponible, il génère une
erreur. Si une connexion par modem potentiellement volatile est en cours d'utilisation,
l'exemple déclenche un avertissement. Sinon, il retourne un message d'information
indiquant qu'une connexion Internet a été détectée.

VB

Private Declare Function InternetGetConnectedState Lib "wininet" _


(ByRef dwFlags As Long, ByVal dwReserved As Long) As Long

Private Enum ConnectedStates


LAN = &H2
Modem = &H1
Proxy = &H4
Offline = &H20
Configured = &H40
RasInstalled = &H10
End Enum

Public Sub Main()

Dim dwFlags As Long


Dim connectedState As Long
Dim fireAgain as Boolean

connectedState = InternetGetConnectedState(dwFlags, 0)

If connectedState <> 0 Then


If (dwFlags And ConnectedStates.Modem) = ConnectedStates.Modem Then
Dts.Events.FireWarning(0, "Script Task Example", _
"Volatile Internet connection detected.", String.Empty, 0)
Else
Dts.Events.FireInformation(0, "Script Task Example", _
"Internet connection detected.", String.Empty, 0, fireAgain)
End If
Else
' If not connected to the Internet, raise an error.
Dts.Events.FireError(0, "Script Task Example", _
"Internet connection not available.", String.Empty, 0)
End If

Dts.TaskResult = ScriptResults.Success

End Sub

C#

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
using System.Runtime.InteropServices;

public class ScriptMain


{

[DllImport("wininet")]
private extern static long InternetGetConnectedState(ref long
dwFlags, long dwReserved);

private enum ConnectedStates


{
LAN = 0x2,
Modem = 0x1,
Proxy = 0x4,
Offline = 0x20,
Configured = 0x40,
RasInstalled = 0x10
};

public void Main()


{
//
long dwFlags = 0;
long connectedState;
bool fireAgain = true;
int state;

connectedState = InternetGetConnectedState(ref dwFlags, 0);


state = (int)ConnectedStates.Modem;
if (connectedState != 0)
{
if ((dwFlags & state) == state)
{
Dts.Events.FireWarning(0, "Script Task Example",
"Volatile Internet connection detected.", String.Empty, 0);
}
else
{
Dts.Events.FireInformation(0, "Script Task Example",
"Internet connection detected.", String.Empty, 0, ref fireAgain);
}
}
else
{
// If not connected to the Internet, raise an error.
Dts.Events.FireError(0, "Script Task Example", "Internet
connection not available.", String.Empty, 0);
}

Dts.TaskResult = (int)ScriptResults.Success;

}
Voir aussi
Gestionnaires d'événements Integration Services (SSIS)
Ajouter un gestionnaire d’événements à un package
Journalisation dans la tâche de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

L’utilisation de la journalisation dans les packages Integration Services vous permet


d’enregistrer des informations détaillées sur l’avancement, les résultats et les problèmes
d’exécution en enregistrant des événements prédéfinis ou des messages définis par
l’utilisateur en vue d’une analyse ultérieure. La tâche de script peut utiliser la méthode
Log de l’objet Dts pour enregistrer des données définies par l’utilisateur. Si la
journalisation est activée et que l’événement ScriptTaskLogEntry est sélectionné pour la
journalisation sous l’onglet Détails de la boîte de dialogue Configurer les journaux SSIS,
un seul appel à la méthode Log stocke les informations sur l’événement dans tous les
modules fournisseurs d’informations configurés pour la tâche.

7 Notes

Bien qu'il soit possible d'exécuter la journalisation directement à partir de la tâche


de script, il peut être préférable d'implémenter des événements plutôt que la
journalisation. L’utilisation d’événements vous permet non seulement d’activer la
journalisation des messages d’événements, mais également de répondre à un
événement à l’aide de gestionnaires d’événements par défaut ou définis par
l’utilisateur.

Pour plus d’informations sur la journalisation, consultez Journalisation Integration


Services (SSIS).

Exemple de journalisation
L'exemple suivant montre la journalisation d'une valeur représentant le nombre de
lignes traitées à partir de la tâche de script.

VB

Public Sub Main()

Dim rowsProcessed As Integer = 100


Dim emptyBytes(0) As Byte

Try
Dts.Log("Rows processed: " & rowsProcessed.ToString, _
0, _
emptyBytes)
Dts.TaskResult = ScriptResults.Success
Catch ex As Exception
'An error occurred.
Dts.Events.FireError(0, "Script Task Example", _
ex.Message & ControlChars.CrLf & ex.StackTrace, _
String.Empty, 0)
Dts.TaskResult = ScriptResults.Failure
End Try

End Sub

C#

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;

public class ScriptMain


{

public void Main()


{
//
int rowsProcessed = 100;
byte[] emptyBytes = new byte[0];

try
{
Dts.Log("Rows processed: " + rowsProcessed.ToString(), 0,
emptyBytes);
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception ex)
{
//An error occurred.
Dts.Events.FireError(0, "Script Task Example", ex.Message +
"\r" + ex.StackTrace, String.Empty, 0);
Dts.TaskResult = (int)ScriptResults.Failure;
}

Voir aussi
Journalisation d'Integration Services (SSIS)
Retour de résultats de la tâche de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de script utilise la propriété TaskResult et la propriété facultative ExecutionValue


pour renvoyer des informations d'état à l'exécution Integration Services, lesquelles
peuvent être utilisées pour déterminer le chemin d'accès du flux de travail une fois que
la tâche de script est terminée.

TaskResult
La propriété TaskResult indique si la tâche a réussi ou a échoué. Par exemple :

Dts.TaskResult = ScriptResults.Success

ExecutionValue
La propriété ExecutionValue renvoie facultativement un objet défini par l'utilisateur qui
quantifie ou fournit des informations supplémentaires sur le succès ou l'échec de la
tâche de script. Par exemple, la tâche FTP utilise la propriété ExecutionValue pour
renvoyer le nombre de fichiers transférés. La tâche d'exécution SQL renvoie le nombre
de lignes affectées par la tâche. La propriété ExecutionValue peut également servir à
déterminer le chemin d'accès du flux de travail. Par exemple :

Dim rowsAffected as Integer

...

rowsAffected = 1000

Dts.ExecutionValue = rowsAffected
Exemples de tâche de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de script est un outil polyvalent que vous pouvez utiliser dans un package pour
remplir presque toutes les conditions requises qui ne sont pas satisfaites par les tâches
incluses dans Integration Services. Cette rubrique répertorie des exemples de code de
tâche de script qui montrent quelques-unes des fonctionnalités disponibles.

7 Notes

Si vous souhaitez créer des tâches que vous pouvez réutiliser plus facilement dans
plusieurs packages, envisagez d'utiliser le code indiqué dans ces exemples de tâche
de script comme point de départ pour des tâches personnalisées. Pour plus
d’informations, consultez Développement d’une tâche personnalisée.

Dans cette section

Rubriques d'exemples
Cette section contient des exemples de code qui montrent différentes utilisations des
classes .NET Framework que vous pouvez incorporer dans une tâche de script
Integration Services :

Détection d'un fichier plat vide à l'aide de la tâche de script


Vérifie un fichier plat pour déterminer s'il contient des lignes de données, puis enregistre
le résultat dans une variable à utiliser dans le cadre du branchement de flux de contrôle.

Création d'une liste pour la boucle Foreach à l'aide de la tâche de script


Rassemble la liste des fichiers qui répondent aux critères spécifiés par l'utilisateur et
renseigne une variable à des fins d'utilisation ultérieure par l'énumérateur Foreach à
partir d'une variable.

Interrogation d'Active Directory avec la tâche de script


Extrait des informations utilisateur d’Active Directory en fonction de la valeur d’une
variable Integration Services, en utilisant des classes de l’espace de noms
System.DirectoryServices.
Surveillance des compteurs de performances à l'aide de la tâche de script
Crée un compteur de performances personnalisé qui peut être utilisé pour suivre la
progression de l’exécution d’un package Integration Services, en utilisant des classes de
l’espace de noms System.Diagnostics.

Utilisation d'images à l'aide de la tâche de script


Compresse des images au format JPEG et crée des images miniatures à partir de celles-
ci, en utilisant des classes de l’espace de noms System.Drawing.

Recherche d'imprimantes installées à l'aide de la tâche de script


Localise des imprimantes installées qui prennent en charge un format de papier
spécifique, en utilisant des classes de l’espace de noms System.Drawing.Printing.

Envoi d'un message électronique HTML à l'aide de la tâche de script


Envoie un message électronique au format HTML plutôt qu'au format texte brut.

Utilisation de fichiers Excel avec la tâche de script


Répertorie les feuilles de calcul d'un fichier Excel et vérifie l'existence d'une feuille de
calcul spécifique.

Envoi vers une file d'attente de messages privée distante à l'aide de la tâche de script
Envoie un message à une file d'attente de messages privée distante.

Autres exemples
Les rubriques suivantes contiennent également des exemples de code à utiliser avec la
tâche de script :

Utilisation de variables dans la tâche de script


Demande à l'utilisateur de confirmer la poursuite de l'exécution du package, selon la
valeur d'une variable du package susceptible de dépasser la limite spécifiée dans une
autre variable.

Connexion à des sources de données dans la tâche de script


Extrait une connexion ou des informations de connexion auprès des gestionnaires de
connexions définis dans le package.

Déclenchement d'événements dans la tâche de script


Génère une erreur, un avertissement ou un message d'information selon l'état de la
connexion Internet sur le serveur.

Journalisation dans la tâche de script


Enregistre le nombre d'éléments traités par la tâche dans les modules fournisseurs
d'informations activés.
Détection d'un fichier plat vide à l'aide
de la tâche de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La source de fichier plat ne détermine pas si un fichier plat contient des lignes de
données avant de tenter de les traiter. Vous pouvez améliorer l'efficacité d'un package,
notamment d'un package qui parcourt de nombreux fichiers plats, en ignorant les
fichiers qui ne contiennent aucune ligne de données. La tâche de script peut rechercher
un fichier plat vide avant que le package ne commence à traiter le flux de données.

7 Notes

Si vous souhaitez créer une tâche plus facilement réutilisable sur plusieurs
packages, envisagez d'utiliser le code indiqué dans l'exemple de tâche de script
comme point de départ d'une tâche personnalisée. Pour plus d’informations,
consultez Développement d’une tâche personnalisée.

Description
L’exemple suivant utilise des méthodes de l’espace de noms System.IO pour tester le
fichier plat spécifié dans un gestionnaire de connexions de fichiers plats afin de
déterminer si le fichier est vide ou s’il contient uniquement les lignes attendues ne
correspondant pas à des données, telles que des en-têtes de colonnes ou des lignes
vides. Le script vérifie d'abord la taille du fichier ; une taille de zéro octets indique que le
fichier est vide. Si la taille du fichier est supérieure à zéro, le script lit les lignes du fichier
jusqu'à la dernière, ou jusqu'à ce que le nombre de lignes dépasse le nombre attendu
de lignes ne correspondant pas à des données. Si le nombre de lignes dans le fichier est
inférieur ou égal au nombre attendu de lignes ne correspondant pas à des données, le
fichier est considéré comme vide. Le résultat est retourné sous la forme d'une valeur
booléenne dans une variable utilisateur, dont la valeur peut être utilisée pour le
branchement du flux de contrôle du package. La méthode FireInformation affiche
également le résultat dans la fenêtre Output de Microsoft Visual Studio Tools for
Applications (VSTA).

Pour configurer cet exemple de tâche de script


1. Créez et configurez un gestionnaire de connexions de fichiers plats nommé
EmptyFlatFileTest.

2. Créez une variable de type entier appelée FFNonDataRows et attribuez-lui une valeur
égale au nombre attendu de lignes ne correspondant pas à des données dans le
fichier plat.

3. Créez une variable booléenne appelée FFIsEmpty .

4. Ajoutez la variable FFNonDataRows à la propriété ReadOnlyVariables de la tâche de


script.

5. Ajoutez la variable FFIsEmpty à la propriété ReadWriteVariables de la tâche de


script.

6. Dans votre code, importez l’espace de noms System.IO.

Si vous parcourez les fichiers avec un énumérateur Foreach File, au lieu d'utiliser un seul
gestionnaire de connexions de fichiers plats, vous devez modifier l'exemple de code ci-
dessous pour obtenir le nom et le chemin d'accès du fichier à partir de la variable dans
laquelle la valeur énumérée est stockée et non à partir du gestionnaire de connexions.

Code
VB

Public Sub Main()

Dim nonDataRows As Integer = _


DirectCast(Dts.Variables("FFNonDataRows").Value, Integer)
Dim ffConnection As String = _

DirectCast(Dts.Connections("EmptyFlatFileTest").AcquireConnection(Nothing),
_
String)
Dim flatFileInfo As New FileInfo(ffConnection)
' If file size is 0 bytes, flat file does not contain data.
Dim fileSize As Long = flatFileInfo.Length
If fileSize > 0 Then
Dim lineCount As Integer = 0
Dim line As String
Dim fsFlatFile As New StreamReader(ffConnection)
Do Until fsFlatFile.EndOfStream
line = fsFlatFile.ReadLine
lineCount += 1
' If line count > expected number of non-data rows,
' flat file contains data (default value).
If lineCount > nonDataRows Then
Exit Do
End If
' If line count <= expected number of non-data rows,
' flat file does not contain data.
If lineCount <= nonDataRows Then
Dts.Variables("FFIsEmpty").Value = True
End If
Loop
Else
Dts.Variables("FFIsEmpty").Value = True
End If

Dim fireAgain As Boolean = False


Dts.Events.FireInformation(0, "Script Task", _
String.Format("{0}: {1}", ffConnection, _
Dts.Variables("FFIsEmpty").Value.ToString), _
String.Empty, 0, fireAgain)

Dts.TaskResult = ScriptResults.Success

End Sub

C#

public void Main()


{

int nonDataRows = (int)(Dts.Variables["FFNonDataRows"].Value);


string ffConnection = (string)
(Dts.Connections["EmptyFlatFileTest"].AcquireConnection(null) as String);
FileInfo flatFileInfo = new FileInfo(ffConnection);
// If file size is 0 bytes, flat file does not contain data.
long fileSize = flatFileInfo.Length;
if (fileSize > 0)
{

int lineCount = 0;
string line;
StreamReader fsFlatFile = new StreamReader(ffConnection);
while (!(fsFlatFile.EndOfStream))
{
Console.WriteLine (fsFlatFile.ReadLine());
lineCount += 1;
// If line count > expected number of non-data rows,
// flat file contains data (default value).
if (lineCount > nonDataRows)
{
break;
}
// If line count <= expected number of non-data rows,
// flat file does not contain data.
if (lineCount <= nonDataRows)
{
Dts.Variables["FFIsEmpty"].Value = true;
}
}
}
else
{
Dts.Variables["FFIsEmpty"].Value = true;
}

bool fireAgain = false;


Dts.Events.FireInformation(0, "Script Task", String.Format("{0}:
{1}", ffConnection, Dts.Variables["FFIsEmpty"].Value), String.Empty, 0, ref
fireAgain);

Dts.TaskResult = (int)ScriptResults.Success;

Voir aussi
Exemples de tâche de script
Recherche d'imprimantes installées à
l'aide de la tâche de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La destination finale des données transformées par les packages Integration Services est
souvent un rapport imprimé. L’espace de noms System.Drawing.Printing dans le
Microsoft .NET Framework fournit des classes pour utiliser des imprimantes.

7 Notes

Si vous souhaitez créer une tâche plus facilement réutilisable sur plusieurs
packages, envisagez d'utiliser le code indiqué dans l'exemple de tâche de script
comme point de départ d'une tâche personnalisée. Pour plus d’informations,
consultez Développement d’une tâche personnalisée.

Description
L'exemple suivant recherche les imprimantes installées sur le serveur qui prennent en
charge le format de papier standard (utilisé en France). Le code permettant de vérifier
les formats de papier pris en charge est encapsulé dans une fonction privée. Pour vous
permettre de suivre la progression du script pendant qu'il vérifie les paramètres de
chaque imprimante, le script utilise la méthode Log qui déclenche un message
d'information pour les imprimantes qui utilisent le format de papier standard et un
avertissement pour les imprimantes qui ne l'utilisent pas. Ces messages apparaissent
dans la fenêtre Sortie de l’environnement de développement intégré Microsoft Visual
Studio Tools for Applications (VSTA) lorsque vous exécutez le package dans le
concepteur.

Pour configurer cet exemple de tâche de script


1. Créez la variable nommée PrinterList avec le type Object.

2. Dans la page Script de l’Éditeur de tâche de script, ajoutez cette variable à la


propriété ReadWriteVariables.

3. Dans le projet de script, ajoutez une référence à l’espace de noms System.Xml.


4. Dans votre code, utilisez des instructions Imports pour importer les espaces de
noms System.Collections et System.Drawing.Printing.

Code
VB

Public Sub Main()

Dim printerName As String


Dim currentPrinter As New PrinterSettings
Dim size As PaperSize

Dim printerList As New ArrayList


For Each printerName In PrinterSettings.InstalledPrinters
currentPrinter.PrinterName = printerName
If PrinterHasLegalPaper(currentPrinter) Then
printerList.Add(printerName)
Dts.Events.FireInformation(0, "Example", _
"Printer " & printerName & " has legal paper.", _
String.Empty, 0, False)
Else
Dts.Events.FireWarning(0, "Example", _
"Printer " & printerName & " DOES NOT have legal paper.", _
String.Empty, 0)
End If
Next

Dts.Variables("PrinterList").Value = printerList

Dts.TaskResult = ScriptResults.Success

End Sub

Private Function PrinterHasLegalPaper( _


ByVal thisPrinter As PrinterSettings) As Boolean

Dim size As PaperSize


Dim hasLegal As Boolean = False

For Each size In thisPrinter.PaperSizes


If size.Kind = PaperKind.Legal Then
hasLegal = True
End If
Next

Return hasLegal

End Function

C#
public void Main()
{

PrinterSettings currentPrinter = new PrinterSettings();


PaperSize size;
Boolean Flag = false;

ArrayList printerList = new ArrayList();


foreach (string printerName in
PrinterSettings.InstalledPrinters)
{
currentPrinter.PrinterName = printerName;
if (PrinterHasLegalPaper(currentPrinter))
{
printerList.Add(printerName);
Dts.Events.FireInformation(0, "Example", "Printer " +
printerName + " has legal paper.", String.Empty, 0, ref Flag);
}
else
{
Dts.Events.FireWarning(0, "Example", "Printer " +
printerName + " DOES NOT have legal paper.", String.Empty, 0);
}
}

Dts.Variables["PrinterList"].Value = printerList;

Dts.TaskResult = (int)ScriptResults.Success;

private bool PrinterHasLegalPaper(PrinterSettings thisPrinter)


{

bool hasLegal = false;

foreach (PaperSize size in thisPrinter.PaperSizes)


{
if (size.Kind == PaperKind.Legal)
{
hasLegal = true;
}
}

return hasLegal;

Voir aussi
Exemples de tâche de script
Création d'une liste pour la boucle
Foreach à l'aide de la tâche de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

L'énumérateur Foreach à partir d'une variable énumère les éléments d'une liste qui lui
est transmise via une variable et effectue les mêmes tâches sur chaque élément. Vous
pouvez utiliser le code personnalisé dans une tâche de script pour remplir une liste à cet
effet. Pour plus d’informations sur l’énumérateur, consultez Conteneur de boucles
Foreach.

7 Notes

Si vous souhaitez créer une tâche plus facilement réutilisable sur plusieurs
packages, envisagez d'utiliser le code indiqué dans l'exemple de tâche de script
comme point de départ d'une tâche personnalisée. Pour plus d’informations,
consultez Développement d’une tâche personnalisée.

Description
L’exemple suivant utilise des méthodes de l’espace de noms System.IO pour établir une
liste de classeurs Excel sur l’ordinateur qui sont antérieurs ou postérieurs à un nombre
de jours spécifié par l’utilisateur dans une variable. Il effectue une recherche récursive
dans les répertoires du lecteur C pour trouver des fichiers dotés de l'extension .xls et
examine la date de dernière modification de chaque fichier pour déterminer s'il
appartient à la liste. Il ajoute les fichiers répondant aux critères à un objet ArrayList et
enregistre cet objet dans une variable pour une utilisation ultérieure dans un conteneur
de boucles Foreach. Le conteneur de boucles Foreach est configuré pour utiliser
l'énumérateur Foreach à partir d'une variable.

7 Notes

La variable utilisée avec l’énumérateur Foreach From variable doit être de type
Object. L’objet que vous placez dans la variable doit implémenter l’une des
interfaces suivantes : System.Collections.IEnumerable,
System.Runtime.InteropServices.ComTypes.IEnumVARIANT,
System.ComponentModel IListSource ou
Microsoft.SqlServer.Dts.Runtime.Wrapper.ForEachEnumeratorHost. Un objet
Array ou ArrayList est couramment utilisé. L’objet ArrayList nécessite une référence
et une instruction Imports pour l’espace de noms System.Collections.

Vous pouvez apprendre à manipuler cette tâche en attribuant différentes valeurs,


positives et négatives, à la variable de package FileAge . Par exemple, vous pouvez
entrer 5 pour rechercher les fichiers créés au cours des cinq derniers jours ou entrer -3
pour rechercher les fichiers créés il y a plus de trois jours. Cette tâche peut prendre une
minute ou deux sur un lecteur contenant de nombreux dossiers à rechercher.

Pour configurer cet exemple de tâche de script


1. Créez une variable de package nommée FileAge de type entier et entrez une
valeur entière positive ou négative. Selon que la valeur est positive ou négative, le
code recherche respectivement les fichiers postérieurs ou antérieurs à la date
spécifiée (en nombre de jours).

2. Créez une variable de package nommée FileList de type Object pour recevoir la
liste de fichiers établie par la tâche de script, qui sera utilisée ultérieurement par
l’énumérateur Foreach From Variable.

3. Ajoutez la variable FileAge à la propriété ReadOnlyVariables de la tâche de script


et ajoutez la variable FileList à la propriété ReadWriteVariables.

4. Dans votre code, importez les espaces de noms System.Collections et System.IO.

Code
VB

Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime
Imports System.Collections
Imports System.IO

Public Class ScriptMain

Private Const FILE_AGE As Integer = -50

Private Const FILE_ROOT As String = "C:\"


Private Const FILE_FILTER As String = "*.xls"

Private isCheckForNewer As Boolean = True


Dim fileAgeLimit As Integer
Private listForEnumerator As ArrayList

Public Sub Main()

fileAgeLimit = DirectCast(Dts.Variables("FileAge").Value, Integer)

' If value provided is positive, we want files NEWER THAN n days.


' If negative, we want files OLDER THAN n days.
If fileAgeLimit < 0 Then
isCheckForNewer = False
End If
' Extract number of days as positive integer.
fileAgeLimit = Math.Abs(fileAgeLimit)

listForEnumerator = New ArrayList

GetFilesInFolder(FILE_ROOT)

' Return the list of files to the variable


' for later use by the Foreach from Variable enumerator.
System.Windows.Forms.MessageBox.Show("Matching files: " &
listForEnumerator.Count.ToString, "Results",
Windows.Forms.MessageBoxButtons.OK,
Windows.Forms.MessageBoxIcon.Information)
Dts.Variables("FileList").Value = listForEnumerator

Dts.TaskResult = ScriptResults.Success

End Sub

Private Sub GetFilesInFolder(ByVal folderPath As String)

Dim localFiles() As String


Dim localFile As String
Dim fileChangeDate As Date
Dim fileAge As TimeSpan
Dim fileAgeInDays As Integer
Dim childFolder As String

Try
localFiles = Directory.GetFiles(folderPath, FILE_FILTER)
For Each localFile In localFiles
fileChangeDate = File.GetLastWriteTime(localFile)
fileAge = DateTime.Now.Subtract(fileChangeDate)
fileAgeInDays = fileAge.Days
CheckAgeOfFile(localFile, fileAgeInDays)
Next

If Directory.GetDirectories(folderPath).Length > 0 Then


For Each childFolder In Directory.GetDirectories(folderPath)
GetFilesInFolder(childFolder)
Next
End If
Catch
' Ignore exceptions on special folders such as System Volume
Information.
End Try

End Sub

Private Sub CheckAgeOfFile(ByVal localFile As String, ByVal fileAgeInDays


As Integer)

If isCheckForNewer Then
If fileAgeInDays <= fileAgeLimit Then
listForEnumerator.Add(localFile)
End If
Else
If fileAgeInDays > fileAgeLimit Then
listForEnumerator.Add(localFile)
End If
End If

End Sub

End Class

C#

using System;
using System.Data;
using System.Math;
using Microsoft.SqlServer.Dts.Runtime;
using System.Collections;
using System.IO;

public partial class ScriptMain :


Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{

private const int FILE_AGE = -50;

private const string FILE_ROOT = "C:\\";


private const string FILE_FILTER = "*.xls";

private bool isCheckForNewer = true;


int fileAgeLimit;
private ArrayList listForEnumerator;

public void Main()


{

fileAgeLimit = (int)(Dts.Variables["FileAge"].Value);

// If value provided is positive, we want files NEWER THAN n days.


// If negative, we want files OLDER THAN n days.
if (fileAgeLimit<0)
{
isCheckForNewer = false;
}
// Extract number of days as positive integer.
fileAgeLimit = Math.Abs(fileAgeLimit);

listForEnumerator = new ArrayList();

GetFilesInFolder(FILE_ROOT);

// Return the list of files to the variable


// for later use by the Foreach from Variable enumerator.
System.Windows.Forms.MessageBox.Show("Matching files: "+
listForEnumerator.Count, "Results",
MessageBoxButtons.OK, MessageBoxIcon.Information);
Dts.Variables["FileList"].Value = listForEnumerator;

Dts.TaskResult = (int)ScriptResults.Success;

private void GetFilesInFolder(string folderPath)


{

string[] localFiles;
DateTime fileChangeDate;
TimeSpan fileAge;
int fileAgeInDays;

try
{
localFiles = Directory.GetFiles(folderPath, FILE_FILTER);
foreach (string localFile in localFiles)
{
fileChangeDate = File.GetLastWriteTime(localFile);
fileAge = DateTime.Now.Subtract(fileChangeDate);
fileAgeInDays = fileAge.Days;
CheckAgeOfFile(localFile, fileAgeInDays);
}

if (Directory.GetDirectories(folderPath).Length > 0)
{
foreach (string childFolder in
Directory.GetDirectories(folderPath))
{
GetFilesInFolder(childFolder);
}
}

}
catch
{
// Ignore exceptions on special folders, such as System
Volume Information.
}

private void CheckAgeOfFile(string localFile, int fileAgeInDays)


{

if (isCheckForNewer)
{
if (fileAgeInDays <= fileAgeLimit)
{
listForEnumerator.Add(localFile);
}
}
else
{
if (fileAgeInDays > fileAgeLimit)
{
listForEnumerator.Add(localFile);
}
}

Voir aussi
Conteneur de boucles Foreach
Configurer un conteneur de boucles Foreach
Surveillance des compteurs de
performances à l'aide de la tâche de
script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les administrateurs peuvent avoir besoin de surveiller les performances des packages
Integration Services qui effectuent des transformations complexes sur de grandes
quantités de données. L’espace de noms System.Diagnostics de Microsoft .NET
Framework fournit des classes permettant d’utiliser des compteurs de performances
existants et de créer vos propres compteurs de performances.

Les compteurs de performances stockent des informations sur les performances des
applications que vous pouvez utiliser pour analyser les performances des logiciels dans
le temps. Les compteurs de performances peuvent être surveillés localement ou à
distance en utilisant l’outil Analyseur de performances. Vous pouvez stocker les valeurs
des compteurs de performances dans des variables à des fins de branchement ultérieur
du flux de contrôle dans le package.

Comme alternative à l’utilisation des compteurs de performances, vous pouvez


déclencher l’événement FireProgress via la propriété Events de l’objet Dts. L'événement
FireProgress indique à la fois les stades intermédiaires de l'avancement et le
pourcentage d'avancement à l'exécution Integration Services.

7 Notes

Si vous souhaitez créer une tâche plus facilement réutilisable sur plusieurs
packages, envisagez d'utiliser le code indiqué dans l'exemple de tâche de script
comme point de départ d'une tâche personnalisée. Pour plus d’informations,
consultez Développement d’une tâche personnalisée.

Description
L'exemple suivant crée un compteur de performance personnalisé et incrémente le
compteur. Tout d'abord, l'exemple détermine si le compteur de performance existe déjà.
Si le compteur de performances n’a pas été créé, le script appelle la méthode Create de
l’objet PerformanceCounterCategory pour le créer. Après avoir créé le compteur de
performance, le script incrémente le compteur. Enfin, l’exemple suit la méthode
conseillée qui consiste à appeler la méthode Close sur le compteur de performances
lorsqu’il n’est plus nécessaire.

7 Notes

La création d'une nouvelle catégorie de compteur de performance et d'un


compteur de performance requiert des droits d'administration. En outre, la nouvelle
catégorie et le compteur subsistent sur l'ordinateur après leur création.

Pour configurer cet exemple de tâche de script

Utilisez une instruction Imports dans votre code pour importer l’espace de noms
System.Diagnostics.

Exemple de code
VB

Public Sub Main()

Dim myCounter As PerformanceCounter

Try
'Create the performance counter if it does not already exist.
If Not _
PerformanceCounterCategory.Exists("TaskExample") Then
PerformanceCounterCategory.Create("TaskExample", _
"Task Performance Counter Example", "Iterations", _
"Number of times this task has been called.")
End If

'Initialize the performance counter.


myCounter = New PerformanceCounter("TaskExample", _
"Iterations", String.Empty, False)

'Increment the performance counter.


myCounter.Increment()

myCounter.Close()
Dts.TaskResult = ScriptResults.Success
Catch ex As Exception
Dts.Events.FireError(0, _
"Task Performance Counter Example", _
ex.Message & ControlChars.CrLf & ex.StackTrace, _
String.Empty, 0)
Dts.TaskResult = ScriptResults.Failure
End Try

End Sub

C#

public class ScriptMain


{

public void Main()


{

PerformanceCounter myCounter;

try
{
//Create the performance counter if it does not already
exist.
if (!PerformanceCounterCategory.Exists("TaskExample"))
{
PerformanceCounterCategory.Create("TaskExample", "Task
Performance Counter Example", "Iterations", "Number of times this task has
been called.");
}

//Initialize the performance counter.


myCounter = new PerformanceCounter("TaskExample",
"Iterations", String.Empty, false);

//Increment the performance counter.


myCounter.Increment();

myCounter.Close();
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception ex)
{
Dts.Events.FireError(0, "Task Performance Counter Example",
ex.Message + "\r" + ex.StackTrace, String.Empty, 0);
Dts.TaskResult = (int)ScriptResults.Failure;
}

Dts.TaskResult = (int)ScriptResults.Success;
}
Interrogation d'Active Directory avec la
tâche de script
Article • 08/02/2024

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les applications de traitement des données d'entreprise, telles que les packages
Integration Services, ont souvent besoin de traiter des données différemment selon
l'échelon, le poste ou d'autres caractéristiques des employés stockés dans Active
Directory. Active Directory est un service d’annuaire Microsoft Windows qui fournit un
magasin centralisé de métadonnées, non seulement sur les utilisateurs, mais aussi sur
d’autres ressources organisationnelles, comme les ordinateurs et les imprimantes.
L’espace de noms System.DirectoryServices dans le Microsoft .NET Framework fournit
des classes à utiliser avec Active Directory, pour vous aider à diriger le flux de travail du
traitement des données en fonction des informations qu’il stocke.

7 Notes

Si vous souhaitez créer une tâche plus facilement réutilisable sur plusieurs
packages, envisagez d'utiliser le code indiqué dans l'exemple de tâche de script
comme point de départ d'une tâche personnalisée. Pour plus d’informations,
consultez Développement d’une tâche personnalisée.

Description
L'exemple suivant extrait le nom, le titre et le numéro de téléphone d'un employé dans
Active Directory selon la valeur de la variable email , laquelle contient l'adresse de
messagerie de l'employé. Les contraintes de précédence dans le package peuvent
utiliser les informations extraites pour déterminer, par exemple, s'il faut envoyer un
message électronique de priorité basse ou une page prioritaire, selon le poste de
l'employé.

Pour configurer cet exemple de tâche de script


1. Créez les trois variables de chaîne email , name et title . Entrez une adresse de
messagerie professionnelle valide en tant que valeur de la variable email .
2. Dans la page Script de l’Éditeur de tâche de script, ajoutez la variable email à la
propriété ReadOnlyVariables.

3. Ajoutez les variables name et title à la propriété ReadWriteVariables.

4. Dans le projet de script, ajoutez une référence à l’espace de noms


System.DirectoryServices.

5. . Dans votre code, utilisez une instruction Imports pour importer l’espace de noms
DirectoryServices.

7 Notes

Pour exécuter ce script correctement, votre entreprise doit utiliser Active Directory
sur son réseau et stocker les informations sur l'employé que cet exemple utilise.

Code
VB

Public Sub Main()

Dim directory As DirectoryServices.DirectorySearcher


Dim result As DirectoryServices.SearchResult
Dim email As String

email = Dts.Variables("email").Value.ToString

Try
directory = New _
DirectoryServices.DirectorySearcher("(mail=" & email & ")")
result = directory.FindOne
Dts.Variables("name").Value = _
result.Properties("displayname").ToString
Dts.Variables("title").Value = _
result.Properties("title").ToString
Dts.TaskResult = ScriptResults.Success
Catch ex As Exception
Dts.Events.FireError(0, _
"Script Task Example", _
ex.Message & ControlChars.CrLf & ex.StackTrace, _
String.Empty, 0)
Dts.TaskResult = ScriptResults.Failure
End Try

End Sub
C#

public void Main()


{
//
DirectorySearcher directory;
SearchResult result;
string email;

email = (string)Dts.Variables["email"].Value;

try
{
directory = new DirectorySearcher("(mail=" + email + ")");
result = directory.FindOne();
Dts.Variables["name"].Value =
result.Properties["displayname"].ToString();
Dts.Variables["title"].Value =
result.Properties["title"].ToString();
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception ex)
{
Dts.Events.FireError(0, "Script Task Example", ex.Message + "\n" +
ex.StackTrace, String.Empty, 0);
Dts.TaskResult = (int)ScriptResults.Failure;
}

Ressources externes
Article technique, Traitement des informations Active Directory dans SSIS

Commentaires
Cette page a-t-elle été utile ?  Yes  No

Indiquer des commentaires sur le produit | Obtenir de l’aide sur Microsoft Q&A
Envoi d'un message électronique HTML
à l'aide de la tâche de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche SendMail de Integration Services prend uniquement en charge les messages


électroniques au format texte brut. Toutefois, vous pouver envoyer facilement des
messages électroniques HTML en utilisant la tâche de script et les fonctionnalités de
messagerie du .NET Framework.

7 Notes

Si vous souhaitez créer une tâche plus facilement réutilisable sur plusieurs
packages, envisagez d'utiliser le code indiqué dans l'exemple de tâche de script
comme point de départ d'une tâche personnalisée. Pour plus d’informations,
consultez Développement d’une tâche personnalisée.

Description
L’exemple suivant utilise l’espace de noms System.Net.Mail pour configurer et envoyer
un e-mail HTML. Le script obtient le destinataire, l’expéditeur, l’objet et le corps de l’e-
mail à partir de variables du package, les utilise pour créer un nouvel objet MailMessage
et définit sa propriété IsBodyHtml sur True. Il obtient ensuite le nom du serveur SMTP
auprès d’une autre variable du package, initialise une instance de
System.Net.Mail.SmtpClient et appelle sa méthode Send pour envoyer le message
HTML. L'exemple encapsule la fonctionnalité d'envoi du message dans une sous-routine
susceptible d'être réutilisée dans d'autres scripts.

Pour configurer cet exemple de tâche de script sans gestionnaire


de connexions SMTP

1. Créez des variables chaîne nommées HtmlEmailTo , HtmlEmailFrom et


HtmlEmailSubject , puis attribuez-leur des valeurs appropriées à un message de

test valide.

2. Créez une variable chaîne nommée HtmlEmailBody et attribuez-lui une chaîne de


balise HTML. Par exemple :
<html><body><h1>Testing</h1><p>This is a <b>test</b> message.</p>
</body></html>

3. Créez une variable chaîne nommée HtmlEmailServer et attribuez le nom d'un


serveur SMTP disponible qui accepte des messages sortants anonymes.

4. Attribuez ces cinq variables à la propriété ReadOnlyVariables d’une nouvelle tâche


de script.

5. Importez les espaces de noms System.Net et System.Net.Mail dans votre code.

L'exemple de code de cette rubrique obtient le nom du serveur SMTP auprès d'une
variable du package. Toutefois, vous pourriez également exploiter un gestionnaire de
connexions SMTP pour encapsuler les informations de connexion, puis extraire le nom
du serveur du gestionnaire de connexions dans votre code. La méthode
AcquireConnection du gestionnaire de connexions SMTP renvoie une chaîne au format
suivant :

SmtpServer=smtphost;UseWindowsAuthentication=False;EnableSsl=False;

Vous pouvez utiliser la méthode String.Split pour séparer cette liste d’arguments en un
tableau de chaînes individuelles à chaque point-virgule (;) ou signe égal (=), puis extraire
le deuxième argument (indice 1) du tableau en tant que nom du serveur.

Pour configurer cet exemple de tâche de script avec un


gestionnaire de connexions SMTP

1. Modifiez la tâche de script configurée précédemment en supprimant la variable


HtmlEmailServer de la liste de la propriété ReadOnlyVariables.

2. Remplacez la ligne de code qui obtient le nom du serveur :

Dim smtpServer As String = _


Dts.Variables("HtmlEmailServer").Value.ToString

par les lignes suivantes :


Dim smtpConnectionString As String = _
DirectCast(Dts.Connections("SMTP Connection
Manager").AcquireConnection(Dts.Transaction), String)
Dim smtpServer As String = _
smtpConnectionString.Split(New Char() {"="c, ";"c})(1)

Code
VB

Public Sub Main()

Dim htmlMessageFrom As String = _


Dts.Variables("HtmlEmailFrom").Value.ToString
Dim htmlMessageTo As String = _
Dts.Variables("HtmlEmailTo").Value.ToString
Dim htmlMessageSubject As String = _
Dts.Variables("HtmlEmailSubject").Value.ToString
Dim htmlMessageBody As String = _
Dts.Variables("HtmlEmailBody").Value.ToString
Dim smtpServer As String = _
Dts.Variables("HtmlEmailServer").Value.ToString

SendMailMessage( _
htmlMessageFrom, htmlMessageTo, _
htmlMessageSubject, htmlMessageBody, _
True, smtpServer)

Dts.TaskResult = ScriptResults.Success

End Sub

Private Sub SendMailMessage( _


ByVal From As String, ByVal SendTo As String, _
ByVal Subject As String, ByVal Body As String, _
ByVal IsBodyHtml As Boolean, ByVal Server As String)

Dim htmlMessage As MailMessage


Dim mySmtpClient As SmtpClient

htmlMessage = New MailMessage( _


From, SendTo, Subject, Body)
htmlMessage.IsBodyHtml = IsBodyHtml

mySmtpClient = New SmtpClient(Server)


mySmtpClient.Credentials = CredentialCache.DefaultNetworkCredentials
mySmtpClient.Send(htmlMessage)

End Sub
C#

public void Main()


{

string htmlMessageFrom =
Dts.Variables["HtmlEmailFrom"].Value.ToString();
string htmlMessageTo =
Dts.Variables["HtmlEmailTo"].Value.ToString();
string htmlMessageSubject =
Dts.Variables["HtmlEmailSubject"].Value.ToString();
string htmlMessageBody =
Dts.Variables["HtmlEmailBody"].Value.ToString();
string smtpServer =
Dts.Variables["HtmlEmailServer"].Value.ToString();

SendMailMessage(htmlMessageFrom, htmlMessageTo,
htmlMessageSubject, htmlMessageBody, true, smtpServer);

Dts.TaskResult = (int)ScriptResults.Success;

private void SendMailMessage(string From, string SendTo, string


Subject, string Body, bool IsBodyHtml, string Server)
{

MailMessage htmlMessage;
SmtpClient mySmtpClient;

htmlMessage = new MailMessage(From, SendTo, Subject, Body);


htmlMessage.IsBodyHtml = IsBodyHtml;

mySmtpClient = new SmtpClient(Server);


mySmtpClient.Credentials =
CredentialCache.DefaultNetworkCredentials;
mySmtpClient.Send(htmlMessage);

Voir aussi
Tache Envoyer un message
Envoi vers une file d'attente de
messages privée distante à l'aide de la
tâche de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Message Queuing (également appelé MSMQ) permet aux développeurs de


communiquer de façon simple, rapide et fiable avec des programmes d'application par
l'envoi et la réception de messages. Une file d'attente de messages peut se trouver sur
l'ordinateur local ou un ordinateur distant et être publique ou privée. Dans Integration
Services, le gestionnaire de connexions MSMQ et la tâche MSMQ ne prennent pas en
charge l'envoi vers une file d'attente privée située sur un ordinateur distant. Toutefois, la
tâche de script permet d'envoyer facilement un message à une file d'attente privée
distante.

7 Notes

Si vous souhaitez créer une tâche plus facilement réutilisable sur plusieurs
packages, envisagez d'utiliser le code indiqué dans l'exemple de tâche de script
comme point de départ d'une tâche personnalisée. Pour plus d’informations,
consultez Développement d’une tâche personnalisée.

Description
L’exemple suivant utilise un gestionnaire de connexions MSMQ existant, avec des objets
et des méthodes de l’espace de noms System.Messaging, pour envoyer le texte contenu
dans une variable de package à une file d’attente de messages privée distante. L’appel à
la méthode
M:Microsoft.SqlServer.Dts.ManagedConnections.MSMQConn.AcquireConnection(System
.Object) du gestionnaire de connexions MSMQ retourne un objet MessageQueue dont
la méthode Send réalise cette tâche.

Pour configurer cet exemple de tâche de script


1. Créez un gestionnaire de connexions MSMQ avec le nom par défaut. Définissez le
chemin d'accès d'une file d'attente privée distante valide, dans le format suivant :
FORMATNAME:DIRECT=OS:<computername>\private$\<queuename>

2. Créez une variable Integration Services nommée MessageText de type String pour
passer le texte du message dans le script. Entrez un message par défaut en tant
que valeur de la variable.

3. Ajoutez une tâche de script à l'aire de conception et modifiez-la. Sous l’onglet


Script de l’Éditeur de tâche de script, ajoutez la variable MessageText à la
propriété ReadOnlyVariables pour rendre la variable disponible dans le script.

4. Cliquez sur Modifier le script pour ouvrir l’éditeur de script Microsoft Visual Studio
Tools for Applications (VSTA).

5. Dans le projet de script, ajoutez une référence à l’espace de noms


System.Messaging.

6. Remplacez le contenu de la fenêtre de script par le code dans la section suivante.

Code
VB

Imports System
Imports Microsoft.SqlServer.Dts.Runtime
Imports System.Messaging

Public Class ScriptMain

Public Sub Main()

Dim remotePrivateQueue As MessageQueue


Dim messageText As String

remotePrivateQueue = _
DirectCast(Dts.Connections("Message Queue Connection
Manager").AcquireConnection(Dts.Transaction), _
MessageQueue)
messageText = DirectCast(Dts.Variables("MessageText").Value, String)
remotePrivateQueue.Send(messageText)

Dts.TaskResult = ScriptResults.Success

End Sub

End Class
C#

using System;
using Microsoft.SqlServer.Dts.Runtime;
using System.Messaging;

public class ScriptMain


{

public void Main()


{

MessageQueue remotePrivateQueue = new MessageQueue();


string messageText;

remotePrivateQueue = (MessageQueue)(Dts.Connections["Message
Queue Connection Manager"].AcquireConnection(Dts.Transaction) as
MessageQueue);
messageText = (string)(Dts.Variables["MessageText"].Value);
remotePrivateQueue.Send(messageText);

Dts.TaskResult = (int)ScriptResults.Success;

Voir aussi
Tâche MSMQ
Utilisation de fichiers Excel avec la tâche
de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Integration Services fournit le gestionnaire de connexions Excel, la source Excel et la


destination Excel pour utiliser des données stockées dans des feuilles de calcul au
format de fichier Microsoft Excel. Les techniques décrites dans cette rubrique utilisent la
tâche de script pour obtenir des informations sur les bases de données (fichiers de
classeur) et tables (feuilles de calcul et plages nommées) Excel disponibles.

) Important

Pour obtenir des informations détaillées sur la connexion à des fichiers Excel, et sur
les limitations et les problèmes connus liés au chargement de données depuis ou
vers des fichiers Excel, consultez Charger des données depuis ou vers Excel avec
SQL Server Integration Services (SSIS).

 Conseil

Si vous souhaitez créer une tâche réutilisable sur plusieurs packages, utilisez le
code indiqué dans l’exemple de tâche de script comme point de départ d’une tâche
personnalisée. Pour plus d’informations, consultez Développement d’une tâche
personnalisée.

Configuration d'un package pour tester les


exemples
Vous pouvez configurer un package unique pour tester tous les exemples de cette
rubrique. Les exemples utilisent de nombreuses variables de package et classes .NET
Framework identiques.

Pour configurer un package à utiliser avec les exemples


de cette rubrique
1. Créez un projet Integration Services dans SQL Server Data Tools (SSDT) et ouvrez le
package par défaut afin de le modifier.

2. Variables. Ouvrez la fenêtre Variables et définissez les variables suivantes :

ExcelFile , de type String. Entrez le chemin d'accès complet et le nom de


fichier d'un classeur Excel existant.

ExcelTable , de type String. Entrez le nom d'une feuille de calcul ou d'une

plage nommée existante dans le classeur nommé dans la valeur de la variable


ExcelFile . Cette valeur respecte la casse.

ExcelFileExists , de type Boolean.

ExcelTableExists , de type Boolean.

ExcelFolder , de type String. Entrez le chemin d'accès complet d'un dossier

qui contient au moins un classeur Excel.

ExcelFiles , de type Object.

ExcelTables , de type Object.

3. Instructions Imports. La plupart des exemples de code impliquent que vous


importiez l'un des espaces de noms .NET Framework suivants ou les deux au début
de votre fichier de script :

System.IO, pour les opérations du système de fichiers.

System.Data.OleDb, pour ouvrir des fichiers Excel en tant que sources de


données.

4. Références. Les exemples de code qui lisent des informations de schéma à partir
de fichiers Excel requièrent une référence supplémentaire dans le projet de script à
l’espace de noms System.Xml.

5. Définissez le langage de script par défaut du composant Script en utilisant l’option


Langage de script dans la page Général de la boîte de dialogue Options. Pour plus
d'informations, consultez General Page.

Description de l'exemple 1 : Vérifier si un fichier


Excel existe
Cet exemple détermine si le fichier de classeur Excel spécifié dans la variable ExcelFile
existe, puis définit la valeur booléenne de la variable ExcelFileExists sur le résultat.
Vous pouvez utiliser cette valeur booléenne pour créer une branche dans le flux de
travail du package.

Pour configurer cet exemple de tâche de script


1. Ajoutez une nouvelle tâche de script au package et remplacez son nom par
ExcelFileExists.

2. Dans l’Éditeur de tâche de script, sous l’onglet Script, cliquez sur


ReadOnlyVariables et entrez la valeur de la propriété en utilisant l’une des
méthodes suivantes :

Tapez ExcelFile.

- ou -

Cliquez sur le bouton de sélection ( ... ) en regard du champ de propriété,


puis dans la boîte de dialogue Sélectionner des variables, sélectionnez la
variable ExcelFile.

3. Cliquez sur ReadWriteVariables et entrez la valeur de propriété à l’aide de l’une


des méthodes suivantes :

Tapez ExcelFileExists.

- ou -

Cliquez sur le bouton de sélection ( ... ) en regard du champ de propriété,


puis dans la boîte de dialogue Sélectionner des variables, sélectionnez la
variable ExcelFileExists.

4. Cliquez sur Modifier le script pour ouvrir l’éditeur de script.

5. Ajoutez une instruction Imports pour l’espace de noms System.IO au début du


fichier de script.

6. Ajoutez le code ci-dessous.

Code de l’exemple 1
VB
Public Class ScriptMain
Public Sub Main()
Dim fileToTest As String

fileToTest = Dts.Variables("ExcelFile").Value.ToString
If File.Exists(fileToTest) Then
Dts.Variables("ExcelFileExists").Value = True
Else
Dts.Variables("ExcelFileExists").Value = False
End If

Dts.TaskResult = ScriptResults.Success
End Sub
End Class

C#

public class ScriptMain


{
public void Main()
{
string fileToTest;

fileToTest = Dts.Variables["ExcelFile"].Value.ToString();
if (File.Exists(fileToTest))
{
Dts.Variables["ExcelFileExists"].Value = true;
}
else
{
Dts.Variables["ExcelFileExists"].Value = false;
}

Dts.TaskResult = (int)ScriptResults.Success;
}
}

Description de l'exemple 2 : Vérifier si une table


Excel existe
Cet exemple détermine si la feuille de calcul ou la plage nommée Excel spécifiée dans la
variable ExcelTable existe dans le fichier de classeur Excel spécifié dans la variable
ExcelFile , puis définit la valeur booléenne de la variable ExcelTableExists sur le
résultat. Vous pouvez utiliser cette valeur booléenne pour créer une branche dans le flux
de travail du package.
Pour configurer cet exemple de tâche de script
1. Ajoutez une nouvelle tâche de script au package et remplacez son nom par
ExcelTableExists.

2. Dans l’Éditeur de tâche de script, sous l’onglet Script, cliquez sur


ReadOnlyVariables et entrez la valeur de la propriété en utilisant l’une des
méthodes suivantes :

Tapez ExcelTable et ExcelFile en les séparant par des virgules.

- ou -

Cliquez sur le bouton de sélection ( ... ) en regard du champ de propriété,


puis dans la boîte de dialogue Sélectionner des variables, sélectionnez les
variables ExcelTable et ExcelFile.

3. Cliquez sur ReadWriteVariables et entrez la valeur de propriété à l’aide de l’une


des méthodes suivantes :

Tapez ExcelTableExists.

- ou -

Cliquez sur le bouton de sélection ( ... ) en regard du champ de propriété,


puis dans la boîte de dialogue Sélectionner des variables, sélectionnez la
variable ExcelTableExists.

4. Cliquez sur Modifier le script pour ouvrir l’éditeur de script.

5. Ajoutez une référence à l’assembly System.Xml dans le projet de script.

6. Ajoutez des instructions Imports pour les espaces de noms System.IO et


System.Data.OleDb au début du fichier de script.

7. Ajoutez le code ci-dessous.

Code de l’exemple 2
VB

Public Class ScriptMain


Public Sub Main()
Dim fileToTest As String
Dim tableToTest As String
Dim connectionString As String
Dim excelConnection As OleDbConnection
Dim excelTables As DataTable
Dim excelTable As DataRow
Dim currentTable As String

fileToTest = Dts.Variables("ExcelFile").Value.ToString
tableToTest = Dts.Variables("ExcelTable").Value.ToString

Dts.Variables("ExcelTableExists").Value = False
If File.Exists(fileToTest) Then
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & fileToTest & _
";Extended Properties=Excel 12.0"
excelConnection = New OleDbConnection(connectionString)
excelConnection.Open()
excelTables = excelConnection.GetSchema("Tables")
For Each excelTable In excelTables.Rows
currentTable = excelTable.Item("TABLE_NAME").ToString
If currentTable = tableToTest Then
Dts.Variables("ExcelTableExists").Value = True
End If
Next
End If

Dts.TaskResult = ScriptResults.Success
End Sub
End Class

C#

public class ScriptMain


{
public void Main()
{
string fileToTest;
string tableToTest;
string connectionString;
OleDbConnection excelConnection;
DataTable excelTables;
string currentTable;

fileToTest = Dts.Variables["ExcelFile"].Value.ToString();
tableToTest = Dts.Variables["ExcelTable"].Value.ToString();

Dts.Variables["ExcelTableExists"].Value = false;
if (File.Exists(fileToTest))
{
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + fileToTest + ";Extended Properties=Excel
12.0";
excelConnection = new OleDbConnection(connectionString);
excelConnection.Open();
excelTables = excelConnection.GetSchema("Tables");
foreach (DataRow excelTable in excelTables.Rows)
{
currentTable = excelTable["TABLE_NAME"].ToString();
if (currentTable == tableToTest)
{
Dts.Variables["ExcelTableExists"].Value = true;
}
}
}

Dts.TaskResult = (int)ScriptResults.Success;

}
}

Description de l'exemple 3 : Obtenir la liste des


fichiers Excel contenus dans un dossier
Cet exemple remplit un tableau à l'aide de la liste des fichiers Excel détectés dans le
dossier spécifié dans la valeur de la variable ExcelFolder , puis copie le tableau dans la
variable ExcelFiles . Vous pouvez utiliser l'énumérateur Foreach à partir d'une variable
pour parcourir les fichiers inclus dans le tableau.

Pour configurer cet exemple de tâche de script


1. Ajoutez une nouvelle tâche de script au package et remplacez son nom par
GetExcelFiles.

2. Ouvrez l’Éditeur de tâche de script, puis sous l’onglet Script, cliquez sur
ReadOnlyVariables et entrez la valeur de la propriété en utilisant l’une des
méthodes suivantes :

Tapez ExcelFolder

- ou -

Cliquez sur le bouton de sélection ( ... ) en regard du champ de propriété,


puis dans la boîte de dialogue Sélectionner des variables, sélectionnez la
variable ExcelFolder.

3. Cliquez sur ReadWriteVariables et entrez la valeur de propriété à l’aide de l’une


des méthodes suivantes :

Tapez ExcelFiles.

- ou -
Cliquez sur le bouton de sélection ( ... ) en regard du champ de propriété,
puis dans la boîte de dialogue Sélectionner des variables, sélectionnez la
variable ExcelFiles.

4. Cliquez sur Modifier le script pour ouvrir l’éditeur de script.

5. Ajoutez une instruction Imports pour l’espace de noms System.IO au début du


fichier de script.

6. Ajoutez le code ci-dessous.

Code de l’exemple 3
VB

Public Class ScriptMain


Public Sub Main()
Const FILE_PATTERN As String = "*.xlsx"

Dim excelFolder As String


Dim excelFiles As String()

excelFolder = Dts.Variables("ExcelFolder").Value.ToString
excelFiles = Directory.GetFiles(excelFolder, FILE_PATTERN)

Dts.Variables("ExcelFiles").Value = excelFiles

Dts.TaskResult = ScriptResults.Success
End Sub
End Class

C#

public class ScriptMain


{
public void Main()
{
const string FILE_PATTERN = "*.xlsx";

string excelFolder;
string[] excelFiles;

excelFolder = Dts.Variables["ExcelFolder"].Value.ToString();
excelFiles = Directory.GetFiles(excelFolder, FILE_PATTERN);

Dts.Variables["ExcelFiles"].Value = excelFiles;

Dts.TaskResult = (int)ScriptResults.Success;
}
}
Autre solution
Au lieu d'utiliser une tâche de script pour dresser la liste des fichiers Excel dans un
tableau, vous pouvez également utiliser l'énumérateur ForEach File pour parcourir tous
les fichiers Excel inclus dans un dossier. Pour plus d’informations, consultez Effectuer
une boucle dans des fichiers et des tables Excel en utilisant un conteneur de boucles
Foreach.

Description de l'exemple 4 : Obtenir la liste des


tables contenues dans un fichier Excel
Cet exemple remplit un tableau à l'aide de la liste des feuilles de calcul et plages
nommées détectées dans le fichier de classeur Excel spécifié par la valeur de la variable
ExcelFile , puis copie le tableau dans la variable ExcelTables . Vous pouvez utiliser
l'énumérateur Foreach à partir d'une variable pour parcourir les tables incluses dans le
tableau.

7 Notes

La liste des tableaux d'un classeur Excel comprend à la fois les feuilles de calcul
(affectées du suffixe $) et les plages nommées. Si vous devez filtrer la liste
uniquement pour obtenir uniquement les feuilles de calcul ou les plages nommées,
vous pouvez être amené à ajouter du code supplémentaire.

Pour configurer cet exemple de tâche de script


1. Ajoutez une nouvelle tâche de script au package et remplacez son nom par
GetExcelTables.

2. Ouvrez l’Éditeur de tâche de script, puis sous l’onglet Script, cliquez sur
ReadOnlyVariables et entrez la valeur de la propriété en utilisant l’une des
méthodes suivantes :

Tapez ExcelFile.

- ou -

Cliquez sur le bouton de sélection ( ... ) en regard du champ de propriété,


puis dans la boîte de dialogue Sélectionner des variables, sélectionnez la
variable ExcelFile.

3. Cliquez sur ReadWriteVariables et entrez la valeur de propriété à l’aide de l’une


des méthodes suivantes :

Tapez ExcelTables.

- ou -

Cliquez sur le bouton de sélection ( ... ) en regard du champ de propriété,


puis dans la boîte de dialogue Sélectionner des variables, sélectionnez la
variable ExcelTables.

4. Cliquez sur Modifier le script pour ouvrir l’éditeur de script.

5. Ajoutez une référence à l’espace de noms System.Xml dans le projet de script.

6. Ajoutez une instruction Imports pour l’espace de noms System.Data.OleDb au


début du fichier de script.

7. Ajoutez le code ci-dessous.

Code de l'exemple 4
VB

Public Class ScriptMain


Public Sub Main()
Dim excelFile As String
Dim connectionString As String
Dim excelConnection As OleDbConnection
Dim tablesInFile As DataTable
Dim tableCount As Integer = 0
Dim tableInFile As DataRow
Dim currentTable As String
Dim tableIndex As Integer = 0

Dim excelTables As String()

excelFile = Dts.Variables("ExcelFile").Value.ToString
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & excelFile & _
";Extended Properties=Excel 12.0"
excelConnection = New OleDbConnection(connectionString)
excelConnection.Open()
tablesInFile = excelConnection.GetSchema("Tables")
tableCount = tablesInFile.Rows.Count
ReDim excelTables(tableCount - 1)
For Each tableInFile In tablesInFile.Rows
currentTable = tableInFile.Item("TABLE_NAME").ToString
excelTables(tableIndex) = currentTable
tableIndex += 1
Next

Dts.Variables("ExcelTables").Value = excelTables

Dts.TaskResult = ScriptResults.Success
End Sub
End Class

C#

public class ScriptMain


{
public void Main()
{
string excelFile;
string connectionString;
OleDbConnection excelConnection;
DataTable tablesInFile;
int tableCount = 0;
string currentTable;
int tableIndex = 0;

string[] excelTables = new string[5];

excelFile = Dts.Variables["ExcelFile"].Value.ToString();
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + excelFile + ";Extended Properties=Excel
12.0";
excelConnection = new OleDbConnection(connectionString);
excelConnection.Open();
tablesInFile = excelConnection.GetSchema("Tables");
tableCount = tablesInFile.Rows.Count;

foreach (DataRow tableInFile in tablesInFile.Rows)


{
currentTable = tableInFile["TABLE_NAME"].ToString();
excelTables[tableIndex] = currentTable;
tableIndex += 1;
}

Dts.Variables["ExcelTables"].Value = excelTables;

Dts.TaskResult = (int)ScriptResults.Success;
}
}

Autre solution
Au lieu d'utiliser une tâche de script pour dresser la liste des tables Excel dans un
tableau, vous pouvez également utiliser l'énumérateur d'ensemble de lignes du schéma
ADO.NET Foreach pour parcourir toutes les tables (autrement dit, les feuilles de calcul et
les plages nommées) contenues dans un fichier de classeur Excel. Pour plus
d’informations, consultez Effectuer une boucle dans des fichiers et des tables Excel en
utilisant un conteneur de boucles Foreach.

Affichage des résultats des exemples


Si vous avez configuré chacun des exemples de cette rubrique dans le même package,
vous pouvez connecter toutes les tâches de script à une tâche de script supplémentaire
qui affiche la sortie de tous les exemples.

Pour configurer une tâche de script afin d'afficher la


sortie des exemples de cette rubrique
1. Ajoutez une nouvelle tâche de script au package et remplacez son nom par
DisplayResults.

2. Connectez les quatre exemples de tâche de script entre eux, afin que chaque tâche
s’exécute une fois que la tâche précédente s’est correctement achevée, puis
connectez le quatrième exemple de tâche à la tâche DisplayResults.

3. Ouvrez la tâche DisplayResults dans l’Éditeur de tâche de script.

4. Sous l’onglet Script, cliquez sur ReadOnlyVariables et utilisez l’une des méthodes
suivantes pour ajouter les sept variables répertoriées dans Configuration d’un
package pour tester les exemples :

Tapez le nom de chaque variable en les séparant par des virgules.

- ou -

Cliquez sur le bouton de sélection ( ... ) en regard du champ de propriété,


puis dans la boîte de dialogue Sélectionner des variables, sélectionnez les
variables.

5. Cliquez sur Modifier le script pour ouvrir l’éditeur de script.

6. Ajoutez des instructions Imports pour les espaces de noms Microsoft.VisualBasic


et System.Windows.Forms au début du fichier de script.

7. Ajoutez le code ci-dessous.


8. Exécutez le package et examinez les résultats qui s'affichent dans un message.

Code permettant d'afficher les résultats


VB

Public Class ScriptMain


Public Sub Main()
Const EOL As String = ControlChars.CrLf

Dim results As String


Dim filesInFolder As String()
Dim fileInFolder As String
Dim tablesInFile As String()
Dim tableInFile As String

results = _
"Final values of variables:" & EOL & _
"ExcelFile: " & Dts.Variables("ExcelFile").Value.ToString & EOL & _
"ExcelFileExists: " & Dts.Variables("ExcelFileExists").Value.ToString
& EOL & _
"ExcelTable: " & Dts.Variables("ExcelTable").Value.ToString & EOL & _
"ExcelTableExists: " &
Dts.Variables("ExcelTableExists").Value.ToString & EOL & _
"ExcelFolder: " & Dts.Variables("ExcelFolder").Value.ToString & EOL &
_
EOL

results &= "Excel files in folder: " & EOL


filesInFolder = DirectCast(Dts.Variables("ExcelFiles").Value, String())
For Each fileInFolder In filesInFolder
results &= " " & fileInFolder & EOL
Next
results &= EOL

results &= "Excel tables in file: " & EOL


tablesInFile = DirectCast(Dts.Variables("ExcelTables").Value, String())
For Each tableInFile In tablesInFile
results &= " " & tableInFile & EOL
Next

MessageBox.Show(results, "Results", MessageBoxButtons.OK,


MessageBoxIcon.Information)

Dts.TaskResult = ScriptResults.Success
End Sub
End Class

C#
public class ScriptMain
{
public void Main()
{
const string EOL = "\r";

string results;
string[] filesInFolder;
//string fileInFolder;
string[] tablesInFile;
//string tableInFile;

results = "Final values of variables:" + EOL + "ExcelFile: " +


Dts.Variables["ExcelFile"].Value.ToString() + EOL + "ExcelFileExists: " +
Dts.Variables["ExcelFileExists"].Value.ToString() + EOL + "ExcelTable: " +
Dts.Variables["ExcelTable"].Value.ToString() + EOL + "ExcelTableExists: " +
Dts.Variables["ExcelTableExists"].Value.ToString() + EOL + "ExcelFolder: " +
Dts.Variables["ExcelFolder"].Value.ToString() + EOL + EOL;

results += "Excel files in folder: " + EOL;


filesInFolder = (string[])(Dts.Variables["ExcelFiles"].Value);
foreach (string fileInFolder in filesInFolder)
{
results += " " + fileInFolder + EOL;
}
results += EOL;

results += "Excel tables in file: " + EOL;


tablesInFile = (string[])(Dts.Variables["ExcelTables"].Value);
foreach (string tableInFile in tablesInFile)
{
results += " " + tableInFile + EOL;
}

MessageBox.Show(results, "Results", MessageBoxButtons.OK,


MessageBoxIcon.Information);

Dts.TaskResult = (int)ScriptResults.Success;
}
}

Voir aussi
Charger des données depuis ou vers Excel avec SQL Server Integration Services (SSIS)
Effectuer une boucle dans des fichiers et des tables Excel en utilisant un conteneur de
boucles Foreach
Utilisation d'images à l'aide de la tâche
de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Une base de données de produits ou d'utilisateurs contient généralement des images,


en plus du texte et des données numériques. L’espace de noms System.Drawing dans le
Microsoft .NET Framework fournit des classes permettant de manipuler des images.

Exemple 1 : convertir des images au format JPEG

Exemple 2 : créer et enregistrer des images miniatures

7 Notes

Si vous souhaitez créer une tâche plus facilement réutilisable sur plusieurs
packages, envisagez d'utiliser le code indiqué dans l'exemple de tâche de script
comme point de départ d'une tâche personnalisée. Pour plus d’informations,
consultez Développement d’une tâche personnalisée.

Description de l'exemple 1 : Convertir des


images au format JPEG
L'exemple suivant ouvre un fichier image spécifié par une variable et l'enregistre sous la
forme d'un fichier JPEG compressé à l'aide d'un encodeur. Le code pour extraire les
informations de l'encodeur est encapsulé dans une fonction privée.

Pour configurer cet exemple de tâche de script destiné à un seul


fichier image
1. Créez une variable chaîne appelée CurrentImageFile et attribuez lui la valeur du
chemin d'accès et du nom d'un fichier image existant.

2. Dans la page Script de l’Éditeur de tâche de script, ajoutez la variable


CurrentImageFile à la propriété ReadOnlyVariables.

3. Dans le projet de script, ajoutez une référence à l’espace de noms


System.Drawing.
4. Dans votre code, utilisez des instructions Imports pour importer les espaces de
noms System.Drawing et System.IO.

Pour configurer cet exemple de tâche de script destiné à plusieurs


fichiers image
1. Placez la tâche de script dans un conteneur de boucles Foreach.

2. Dans la page Collection de l’Éditeur de boucle Foreach, sélectionnez


l’énumérateur Foreach File, puis spécifiez le chemin et le masque des fichiers
sources, par exemple « *.bmp ».

3. Dans la page Mappage de variables, mappez la variable CurrentImageFile à


l’index 0. Cette variable transmet le nom du fichier en cours à la tâche de script à
chaque itération de l'énumérateur.

7 Notes

Ces étapes s'ajoutent à celles répertoriées dans la procédure destinée à un


seul fichier image.

Code de l’exemple 1
VB

Public Sub Main()

'Create and initialize variables.


Dim currentFile As String
Dim newFile As String
Dim bmp As Bitmap
Dim eps As New Imaging.EncoderParameters(1)
Dim ici As Imaging.ImageCodecInfo
Dim supportedExtensions() As String = _
{".BMP", ".GIF", ".JPG", ".JPEG", ".EXIF", ".PNG", _
".TIFF", ".TIF", ".ICO", ".ICON"}

Try
'Store the variable in a string for local manipulation.
currentFile = Dts.Variables("CurrentImageFile").Value.ToString
'Check the extension of the file against a list of
'files that the Bitmap class supports.
If Array.IndexOf(supportedExtensions, _
Path.GetExtension(currentFile).ToUpper) > -1 Then

'Load the file.


bmp = New Bitmap(currentFile)

'Calculate the new name for the compressed image.


'Note: This will overwrite existing JPEGs.
newFile = Path.Combine( _
Path.GetDirectoryName(currentFile), _
String.Concat(Path.GetFileNameWithoutExtension(currentFile),
_
".jpg"))

'Specify the compression ratio (0=worst quality, 100=best


quality).
eps.Param(0) = New Imaging.EncoderParameter( _
Imaging.Encoder.Quality, 75)

'Retrieve the ImageCodecInfo associated with the jpeg format.


ici = GetEncoderInfo("image/jpeg")

'Save the file, compressing it into the jpeg encoding.


bmp.Save(newFile, ici, eps)
Else
'The file is not supported by the Bitmap class.
Dts.Events.FireWarning(0, "Image Resampling Sample", _
"File " & currentFile & " is not a supported format.", _
"", 0)
End If
Dts.TaskResult = ScriptResults.Success
Catch ex As Exception
'An error occurred.
Dts.Events.FireError(0, "Image Resampling Sample", _
ex.Message & ControlChars.CrLf & ex.StackTrace, _
String.Empty, 0)
Dts.TaskResult = ScriptResults.Failure
End Try

End Sub

Private Function GetEncoderInfo(ByVal mimeType As String) As


Imaging.ImageCodecInfo

'The available image codecs are returned as an array,


'which requires code to iterate until the specified codec is found.

Dim count As Integer


Dim encoders() As Imaging.ImageCodecInfo

encoders = Imaging.ImageCodecInfo.GetImageEncoders()

For count = 0 To encoders.Length


If encoders(count).MimeType = mimeType Then
Return encoders(count)
End If
Next

'This point is only reached if a codec is not found.


Err.Raise(513, "Image Resampling Sample", String.Format( _
"The {0} codec is not available. Unable to compress file.", _
mimeType))
Return Nothing

End Function

Description de l'exemple 2 : Créer et enregistrer


des images miniatures
L'exemple suivant ouvre un fichier image spécifié par une variable, crée une miniature
de l'image en respectant les proportions et enregistre la miniature sous un nom de
fichier modifié. Le code qui calcule la hauteur et la largeur de la miniature en préservant
les proportions est encapsulé dans une sous-routine privée.

Pour configurer cet exemple de tâche de script destiné à un seul


fichier image
1. Créez une variable chaîne appelée CurrentImageFile et attribuez lui la valeur du
chemin d'accès et du nom d'un fichier image existant.

2. Créez également la variable de type entier MaxThumbSize et attribuez-lui une valeur


en pixels, telle que 100.

3. Dans la page Script de l’Éditeur de tâche de script, ajoutez les deux variables à la
propriété ReadOnlyVariables.

4. Dans le projet de script, ajoutez une référence à l’espace de noms


System.Drawing.

5. Dans votre code, utilisez des instructions Imports pour importer les espaces de
noms System.Drawing et System.IO.

Pour configurer cet exemple de tâche de script destiné à plusieurs


fichiers image
1. Placez la tâche de script dans un conteneur de boucles Foreach.

2. Dans la page Collection de l’Éditeur de boucle Foreach, sélectionnez


l’énumérateur Foreach File comme Énumérateur, puis spécifiez le chemin et le
masque des fichiers sources, par exemple « *.jpg ».
3. Dans la page Mappage de variables, mappez la variable CurrentImageFile à
l’index 0. Cette variable transmet le nom du fichier en cours à la tâche de script à
chaque itération de l'énumérateur.

7 Notes

Ces étapes s'ajoutent à celles répertoriées dans la procédure destinée à un


seul fichier image.

Code de l’exemple 2
VB

Public Sub Main()

Dim currentImageFile As String


Dim currentImage As Image
Dim maxThumbSize As Integer
Dim thumbnailImage As Image
Dim thumbnailFile As String
Dim thumbnailHeight As Integer
Dim thumbnailWidth As Integer

currentImageFile = Dts.Variables("CurrentImageFile").Value.ToString
thumbnailFile = Path.Combine( _
Path.GetDirectoryName(currentImageFile), _
String.Concat(Path.GetFileNameWithoutExtension(currentImageFile), _
"_thumbnail.jpg"))

Try
currentImage = Image.FromFile(currentImageFile)

maxThumbSize = CType(Dts.Variables("MaxThumbSize").Value, Integer)


CalculateThumbnailSize( _
maxThumbSize, currentImage, thumbnailWidth, thumbnailHeight)

thumbnailImage = currentImage.GetThumbnailImage( _
thumbnailWidth, thumbnailHeight, Nothing, Nothing)
thumbnailImage.Save(thumbnailFile)
Dts.TaskResult = ScriptResults.Success
Catch ex As Exception
Dts.Events.FireError(0, "Script Task Example", _
ex.Message & ControlChars.CrLf & ex.StackTrace, _
String.Empty, 0)
Dts.TaskResult = ScriptResults.Failure
End Try

End Sub
Private Sub CalculateThumbnailSize( _
ByVal maxSize As Integer, ByVal sourceImage As Image, _
ByRef thumbWidth As Integer, ByRef thumbHeight As Integer)

If sourceImage.Width > sourceImage.Height Then


thumbWidth = maxSize
thumbHeight = CInt((maxSize / sourceImage.Width) *
sourceImage.Height)
Else
thumbHeight = maxSize
thumbWidth = CInt((maxSize / sourceImage.Height) *
sourceImage.Width)
End If

End Sub

C#

bool ThumbnailCallback()
{
return false;
}
public void Main()
{

string currentImageFile;
Image currentImage;
int maxThumbSize;
Image thumbnailImage;
string thumbnailFile;
int thumbnailHeight = 0;
int thumbnailWidth = 0;

currentImageFile =
Dts.Variables["CurrentImageFile"].Value.ToString();
thumbnailFile =
Path.Combine(Path.GetDirectoryName(currentImageFile),
String.Concat(Path.GetFileNameWithoutExtension(currentImageFile),
"_thumbnail.jpg"));

try
{

currentImage = Image.FromFile(currentImageFile);

maxThumbSize = (int)Dts.Variables["MaxThumbSize"].Value;
CalculateThumbnailSize(maxThumbSize, currentImage, ref
thumbnailWidth, ref thumbnailHeight);

Image.GetThumbnailImageAbort myCallback = new


Image.GetThumbnailImageAbort(ThumbnailCallback);

thumbnailImage =
currentImage.GetThumbnailImage(thumbnailWidth, thumbnailHeight,
ThumbnailCallback, IntPtr.Zero);
thumbnailImage.Save(thumbnailFile);
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception ex)
{
Dts.Events.FireError(0, "Script Task Example", ex.Message +
"\r" + ex.StackTrace, String.Empty, 0);
Dts.TaskResult = (int)ScriptResults.Failure;
}

private void CalculateThumbnailSize(int maxSize, Image sourceImage,


ref int thumbWidth, ref int thumbHeight)
{

if (sourceImage.Width > sourceImage.Height)


{
thumbWidth = maxSize;
thumbHeight = (int)(sourceImage.Height * maxSize /
sourceImage.Width);
}
else
{
thumbHeight = maxSize;
thumbWidth = (int)(sourceImage.Width * maxSize /
sourceImage.Height);

}
Extension du flux de données avec le
composant Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le composant Script étend les fonctionnalités du flux de données des packages


Microsoft Integration Services à l’aide du code personnalisé écrit dans Microsoft Visual
Basic ou Microsoft Visual C#, compilé et exécuté au moment de l’exécution des
packages. Le composant Script simplifie le développement d'une source, transformation
ou destination de flux de données personnalisée, lorsque les sources, les
transformations et les destinations incluses dans Integration Services ne répondent que
partiellement à vos besoins. Une fois que vous avez configuré le composant avec les
entrées et sorties attendues, celui-ci écrit tout le code d'infrastructure requis, ce qui
vous permet de vous concentrer exclusivement sur le code nécessaire au traitement
personnalisé.

Un composant Script interagit avec le package qui le contient et le flux de données au


moyen des classes générées automatiquement dans les éléments de projet
ComponentWrapper et BufferWrapper, qui sont respectivement des instances des
classes ScriptComponent et ScriptBuffer. Ces classes rendent disponibles les connexions,
les variables et les autres éléments de package en tant qu'objets typés et gèrent les
entrées et les sorties. Le composant Script peut également utiliser l'espace de noms
Visual Basic et la bibliothèque de classes .NET Framework, ainsi que des assemblys
personnalisés, pour implémenter des fonctionnalités personnalisées.

Le composant Script et le code d'infrastructure qu'il génère simplifient


considérablement le processus qui consiste à développer un composant de flux de
données personnalisé. Toutefois, pour comprendre le fonctionnement du composant
Script, il peut être utile de lire la section Développement d’un composant de flux de
données personnalisé pour maîtriser les étapes du développement d’un composant de
flux de données personnalisé.

Si vous créez une source, une transformation ou une destination que vous envisagez de
réutiliser dans plusieurs packages, vous devez développer un composant personnalisé
au lieu de vous servir du composant Script. Pour plus d’informations, consultez
Développement d’un composant de flux de données personnalisé.

Dans cette section


Les rubriques suivantes fournissent des informations supplémentaires sur le composant
Script.

Configuration du composant Script dans l’éditeur de composant de script


Les propriétés que vous configurez dans l’Éditeur de transformation de script affectent
les fonctionnalités et les performances du code du composant Script.

Codage et débogage du composant Script


L’environnement de développement Microsoft Visual Studio Tools for Applications
(VSTA) vous permet de développer les scripts contenus dans le composant Script.

Présentation du modèle objet du composant Script


Un nouveau projet de composant Script contient trois éléments de projet avec plusieurs
classes ainsi que des propriétés et méthodes générées automatiquement.

Utilisation de variables dans le composant Script


L’élément de projet ComponentWrapper contient des propriétés d’accesseur fortement
typées pour les variables de package.

Connexion aux sources de données dans le composant Script


L’élément de projet ComponentWrapper contient également des propriétés d’accesseur
fortement typées pour les connexions définies dans le package.

Déclenchement d'événements dans le composant Script


Vous pouvez déclencher des événements pour signaler des problèmes et des erreurs.

Journalisation dans le composant Script


Vous pouvez enregistrer des informations dans les modules fournisseurs d'informations
activés sur le package.

Développement de types spécifiques de composants Script


Ces exemples simples expliquent et montrent comment utiliser le composant Script
pour développer des sources, transformations et destinations de flux de données.

Exemples supplémentaires du composant Script


Ces exemples simples expliquent et montrent quelques utilisations possibles du
composant Script.

Voir aussi
Composant Script
Comparaison de la tâche de script et du composant Script
Configuration du composant Script dans
l'éditeur de composant de script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Avant d’écrire du code personnalisé dans le composant Script, vous devez sélectionner
le type de composant de flux de données que vous souhaitez créer (source,
transformation ou destination), puis configurer les métadonnées et propriétés du
composant dans l’Éditeur de transformation de script.

Sélection du type de composant à créer


Lorsque vous ajoutez un composant Script au volet Flux de données du concepteur SSIS,
la boîte de dialogue Sélectionner le type de composant de script s’affiche.
Préconfigurez le composant en tant que source, transformation ou destination. Une fois
cette sélection initiale effectuée, vous pouvez continuer à configurer le composant dans
l’Éditeur de transformation de script.

Pour définir le langage de script par défaut du composant Script, utilisez l’option
Langage de script dans la page Général de la boîte de dialogue Options. Pour plus
d'informations, consultez General Page.

Fonctionnement des deux modes au moment


du design
Dans le Concepteur SSIS, le composant Script propose deux modes : le mode Création
des métadonnées et le mode Création du code.

Lorsque vous ouvrez l’Éditeur de transformation de script, le composant passe en


mode Création des métadonnées. Ce mode vous permet de sélectionner des colonnes
d'entrée et d'ajouter ou configurer des sorties et des colonnes de sortie, mais il ne vous
permet pas d'écrire du code. Après avoir configuré les métadonnées du composant,
vous pouvez basculer en mode Création de code afin d'écrire le script.

Lorsque vous basculez en mode Création du code en cliquant sur Modifier le script, le
composant Script verrouille les métadonnées pour empêcher toute modification
supplémentaire, puis il génère automatiquement le code de base à partir des
métadonnées des entrées et des sorties. Une fois que le code généré automatiquement
est complet, vous êtes en mesure d'entrer votre code personnalisé. Votre code utilise les
classes de base générées automatiquement pour traiter les lignes d'entrée, accéder à
des mémoires tampons et des colonnes dans les mémoires tampons et extraire du
package des gestionnaires de connexions et des variables, sous la forme d'objets
fortement typés.

Après avoir entré votre code personnalisé en mode Création de code, vous pouvez
revenir en mode Création de métadonnées. Cette opération ne supprime pas le code
entré, mais les modifications ultérieures apportées aux métadonnées provoquent la
régénération de la classe de base. Après quoi, la validation de votre composant risque
d'échouer du fait que des objets référencés par votre code personnalisé peuvent ne plus
exister ou avoir été modifiés. Dans ce cas, vous devez corriger votre code manuellement
afin qu'il puisse être correctement compilé avec la classe de base régénérée.

Configuration du composant en mode Création


de métadonnées
Le mode Création de métadonnées vous permet de sélectionner des colonnes d'entrée;
et d'ajouter et configurer des sorties et des colonnes de sortie, mais il ne vous permet
pas d'écrire du code. Après avoir configuré les métadonnées du composant, basculez en
mode Création de code afin d'écrire le script.

Les propriétés que vous devez configurer dans l'éditeur personnalisé dépendent de
l'utilisation du composant Script. Le composant Script peut être configuré en tant que
source, transformation ou destination. En fonction de l'utilisation qui est faite du
composant, il prendra en charge une entrée ou des sorties, ou bien les deux. Le code
personnalisé que vous écrivez traite les lignes et les colonnes d'entrée et de sortie.

Page Colonnes d'entrée de l'Éditeur de transformation de


script
La page Colonnes d’entrée de l’Éditeur de transformation de script s’affiche pour les
transformations et les destinations, mais pas pour les sources. Cette page vous permet
de sélectionner les colonnes d'entrée disponibles à mettre à la disposition de votre
script personnalisé et spécifier les accès en lecture seule ou en lecture/écriture à ces
colonnes.

Dans le projet de code qui doit être généré en fonction de ces métadonnées, l'élément
de projet BufferWrapper contient une classe pour chaque entrée, et cette classe contient
des propriétés d'accesseur typées pour chaque colonne d'entrée sélectionnée. Par
exemple, si vous sélectionnez une colonne CustomerID de type entier et une colonne
CustomerName de type chaîne à partir d’une entrée nommée CustomerInput, l’élément
de projet BufferWrapper contient une classe CustomerInput qui dérive de ScriptBuffer.
Par ailleurs, la classe CustomerID expose une propriété de type entier nommée
CustomerID et une propriété de type chaîne nommée CustomerName. Cette
convention permet d'écrire du code avec la vérification de type tel que ci-dessous :

VB

Dim currentCustomerID as Integer = CustomerInput.CustomerID


Dim currentCustomerName as String = CustomerInput.CustomerName

Pour plus d’informations sur la configuration des colonnes d’entrée d’un type de
composant de flux de données spécifique, consultez l’exemple approprié sous
Développement de types spécifiques de composants Script.

Page Entrées et sorties de l'Éditeur de transformation de


script
La page Entrées et sorties de l’Éditeur de transformation de script s’affiche pour les
sources, les transformations et les destinations. Cette page vous permet d'ajouter,
supprimer et configurer des entrées, des sorties et des colonnes de sortie à utiliser dans
votre script personnalisé, en tenant compte des contraintes suivantes :

Lorsqu'il est utilisé en tant que source, le composant Script ne possède pas
d'entrée et prend en charge plusieurs sorties.

Lorsqu'il est utilisé en tant que transformation, le composant Script prend en


charge une entrée et plusieurs sorties.

Lorsqu'il est utilisé en tant que destination, le composant Script prend en charge
une entrée et ne possède pas de sortie.

Dans le projet de code qui doit être généré en fonction de ces métadonnées, l'élément
de projet BufferWrapper contient une classe pour chaque entrée et chaque sortie. Par
exemple, si vous créez une sortie nommée CustomerOutput, l’élément de projet
BufferWrapper contient une classe CustomerOutput qui dérive de ScriptBuffer, et la
classe CustomerOutput contient des propriétés d’accesseur typées pour chaque
colonne de sortie créée.

La page Entrée et sorties vous permet de configurer uniquement des colonnes de


sortie. Vous pouvez sélectionner des colonnes d’entrée pour les transformations et les
destinations dans la page Colonnes d’entrée. Les propriétés d'accesseur typées créées
dans l'élément de projet BufferWrapper sont en écriture seule pour les colonnes de
sortie. Les propriétés d’accesseur des colonnes d’entrée peuvent être en lecture seule ou
en lecture/écriture selon le type d’utilisation sélectionné pour chaque colonne dans la
page Colonnes d’entrée.

Pour plus d’informations sur la configuration des entrées et des sorties d’un type de
composant de flux de données spécifique, consultez l’exemple approprié sous
Développement de types spécifiques de composants Script.

7 Notes

Bien qu'il soit impossible de configurer directement une sortie en tant que sortie
d'erreur dans le composant Script pour la gestion automatique des lignes d'erreur,
vous pouvez reproduire les fonctionnalités d'une sortie d'erreur en créant une
sortie supplémentaire et en utilisant un script pour diriger des lignes vers cette
sortie, le cas échéant. Pour plus d’informations, consultez Simulation d’une sortie
d’erreur pour le composant Script.

Propriétés ExclusionGroup et SynchronousInputID des sorties


La propriété ExclusionGroup a une valeur non nulle uniquement dans les
transformations à sorties synchrones, dans lesquelles votre code effectue des opérations
de filtrage ou de création de branche et dirige chaque ligne vers l’une des sorties qui
partagent la même valeur ExclusionGroup non nulle. Par exemple, la transformation
peut diriger des lignes vers la sortie par défaut ou vers une sortie d'erreur. Lorsque vous
créez des sorties supplémentaires dans ce scénario, veillez à affecter à la propriété
SynchronousInputID la valeur de type entier correspondant à l’ID de l’entrée du
composant.

La propriété SynchronousInputID a une valeur non nulle uniquement dans les


transformations à sorties synchrones. Si la valeur de cette propriété est zéro, cela signifie
que la sortie est asynchrone. Pour une sortie synchrone, où les lignes sont transférées
aux sorties sélectionnées sans que de nouvelles lignes ne soient ajoutées, cette
propriété doit contenir l’ID de l’entrée du composant.

7 Notes

Lorsque l’Éditeur de transformation de script crée la première sortie, l’éditeur


attribue à la propriété SynchronousInputID de la sortie l’ID de l’entrée du
composant. Toutefois, lorsque l’éditeur crée les sorties suivantes, il attribue la valeur
zéro aux propriétés SynchronousInputID de ces sorties.
Si vous créez un composant à sorties synchrones, la propriété SynchronousInputID
de chaque sortie doit avoir comme valeur l’ID de l’entrée du composant. Par
conséquent, la valeur zéro de la propriété SynchronousInputID de chaque sortie
créée par l’éditeur après la première sortie doit être remplacée par l’ID de l’entrée
du composant.

Si vous créez un composant à sorties asynchrones, la propriété


SynchronousInputID de chaque sortie doit avoir la valeur zéro. Ainsi, la valeur de la
propriété SynchronousInputID de la première sortie, qui correspond à l’ID de
l’entrée du composant, doit être remplacée par zéro.

Pour obtenir un exemple de direction de lignes vers l’une des deux sorties synchrones
dans le composant Script, consultez Création d’une transformation synchrone à l’aide du
composant Script.

Noms d'objets dans le script généré


Le composant Script analyse les noms des entrées et des sorties, ainsi que les noms des
colonnes dans les entrées et sorties. Puis, en fonction de ces noms, il génère des classes
et des propriétés dans l'élément de projet BufferWrapper. Si les noms trouvés
contiennent des caractères n’appartenant pas aux catégories Unicode UppercaseLetter,
LowercaseLetter, TitlecaseLetter, ModifierLetter, OtherLetter ou DecimalDigitLetter, les
caractères non valides sont supprimés des noms générés. Par exemple, les espaces étant
supprimés, deux colonnes d’entrée nommées FirstName et [First Name] sont
interprétées comme une seule colonne nommée FirstName, ce qui peut entraîner des
résultats imprévisibles. Pour éviter cette situation, les noms des entrées et des sorties,
ainsi que des colonnes d'entrée et de sortie, utilisés par le composant Script doivent
comporter uniquement des caractères appartenant aux catégories Unicode répertoriées
dans cette section.

Page Script de l'Éditeur de transformation de script


La page Script de l’Éditeur de tâche de script vous permet d’assigner un nom unique et
une description à la tâche de script. Vous pouvez également assigner des valeurs pour
les propriétés suivantes.

7 Notes

Dans SQL Server 2008 Integration Services (SSIS) et les versions ultérieures, tous les
scripts sont précompilés. Les versions antérieures vous permettaient de spécifier si
les scripts étaient précompilés en définissant une propriété Precompile pour la
tâche.

Propriété ValidateExternalMetadata

La valeur booléenne de la propriété ValidateExternalMetadata spécifie si le composant


doit procéder à une validation par rapport à des sources de données externes au
moment de la conception, ou s’il doit reporter la validation jusqu’à moment de
l’exécution. Par défaut, cette propriété a la valeur True ; c’est-à-dire que les
métadonnées externes sont validées au moment de la conception et au moment de
l’exécution. Vous pouvez attribuer à cette propriété la valeur False lorsqu’une source de
données externe n’est pas disponible au moment de la conception : par exemple,
lorsque le package télécharge la source ou crée la destination uniquement au moment
de l’exécution.

Propriétés ReadOnlyVariables et ReadWriteVariables


Vous pouvez entrer des listes délimitées par des virgules de variables existantes comme
valeurs de ces propriétés pour rendre les variables accessibles en lecture seule ou en
lecture/écriture dans le code du composant Script. Les variables sont accessibles dans le
code par le biais des propriétés ReadOnlyVariables et ReadWriteVariables de la classe de
base générée automatiquement. Pour plus d’informations, consultez Utilisation de
variables dans le composant Script.

7 Notes

Les noms de variable respectent la casse.

ScriptLanguage

Vous pouvez sélectionner Microsoft Visual Basic ou Microsoft Visual C# comme langage
de programmation du composant Script.

Bouton Modifier le script


Le bouton Modifier le script permet d’ouvrir l’environnement de développement
intégré Microsoft Visual Studio Tools for Applications (VSTA) dans lequel vous écrivez
votre script personnalisé. Pour plus d’informations, consultez Codage et débogage du
composant Script.
Page Gestionnaires de connexions de l'Éditeur de
transformation de script
La page Gestionnaires de connexions de l’Éditeur de transformation de script vous
permet d’ajouter et de supprimer des gestionnaires de connexions que vous souhaitez
utiliser dans votre script personnalisé. En principe, vous devez référencer des
gestionnaires de connexions lorsque vous créez un composant source ou un composant
de destination.

Dans le projet de code qui doit être généré selon ces métadonnées, l’élément de projet
ComponentWrapper contient une classe de collection Connections qui possède une
propriété d’accesseur typée pour chaque gestionnaire de connexions sélectionné.
Chaque propriété d'accesseur typée porte le même nom que le gestionnaire de
connexions lui-même et retourne une référence à ce dernier sous la forme d'une
instance de IDTSConnectionManager100. Par exemple, si vous avez ajouté un
gestionnaire de connexions nommé MyADONETConnection dans la page Gestionnaires de
connexions de l’éditeur, vous pouvez obtenir une référence au gestionnaire de
connexions dans votre script à l’aide du code suivant :

VB

Dim myADONETConnectionManager As IDTSConnectionManager100 = _


Me.Connections.MyADONETConnection

Pour plus d’informations, consultez Connexion aux sources de données dans le


composant Script.

Voir aussi
Codage et débogage du composant Script
Codage et débogage du composant
Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Dans le Concepteur SSIS, le composant Script propose deux modes : le mode Création
des métadonnées et le mode Création du code. Lorsque vous ouvrez l’Éditeur de
transformation de script, le composant entre en mode Création des métadonnées, dans
lequel vous configurez des métadonnées et définissez les propriétés du composant.
Après avoir défini les propriétés du composant Script et avoir configuré l'entrée et les
sorties en mode Création des métadonnées, vous pouvez basculer vers le mode
Création du code pour écrire votre script personnalisé. Pour plus d’informations sur le
mode Création des métadonnées et le mode Création de code, consultez Configuration
du composant Script dans l’Éditeur de composant Script.

Écriture du script en mode Création du code

Environnement de développement du composant Script


Pour écrire votre script, cliquez sur Modifier le script dans la page Script de l’Éditeur de
transformation de script afin d’ouvrir l’environnement de développement intégré
Microsoft Visual Studio Tools for Applications (VSTA). L'environnement de
développement intégré VSTA contient l'ensemble des fonctionnalités standard de
l'environnement Visual Studio .NET, telles que l'éditeur Visual Studio à code de couleurs,
IntelliSense et l'Explorateur d'objets.

Le code de script est écrit dans Microsoft Visual Basic ou Microsoft Visual C#. Vous
spécifiez le langage de script en définissant la propriété ScriptLanguage dans l’Éditeur
de transformation de script. Si vous préférez utiliser un autre langage de
programmation, vous pouvez développer un assembly personnalisé dans le langage de
votre choix et appeler ses fonctionnalités à partir du code inclus dans le composant
Script.

Le script que vous créez dans le composant Script est stocké dans la définition du
package. Aucun fichier de script distinct n'est créé. Par conséquent, l'utilisation du
composant Script n'affecte pas le déploiement du package.

7 Notes
Lorsque vous concevez le package, le code de script est écrit temporairement dans
un fichier projet. Étant donné que le stockage d'informations sensibles dans un
fichier représente un risque potentiel en termes de sécurité, nous vous
recommandons de ne pas inclure d'informations sensibles telles que des mots de
passe dans le code de script.

Par défaut, Option Strict est désactivé dans l’environnement de développement intégré.

Structure du projet de composant Script


La force du composant Script réside dans sa capacité à générer un code d'infrastructure
qui réduit la quantité de code à écrire. Cette fonctionnalité repose sur le fait que les
entrées et sorties et leurs colonnes et propriétés sont fixes et connues à l'avance. Par
conséquent, toutes les modifications ultérieures que vous apportez aux métadonnées
du composant peuvent invalider le code que vous avez écrit. Cela provoque des erreurs
de compilation pendant l'exécution du package.

Éléments et classe de projet dans le projet de composant Script


Lorsque vous basculez en mode Création du code, l’environnement de développement
intégré VSTA s’ouvre et affiche l’élément de projet ScriptMain. L’élément de projet
ScriptMain contient la classe ScriptMain modifiable, qui sert de point d’entrée pour le
script et qui est l’endroit où vous écrivez votre code. Les éléments de code inclus dans la
classe varient selon le langage de programmation que vous avez sélectionné pour la
tâche de script.

Le projet de script contient deux autres éléments de projet en lecture seule générés
automatiquement :

L’élément de projet ComponentWrapper contient trois classes :

La classe UserComponent, qui hérite de ScriptComponent et contient les


méthodes et propriétés que vous utiliserez pour traiter les données et interagir
avec le package. La classe ScriptMain hérite de la classe UserComponent.

Une classe de collection Connections qui contient des références aux


connexions sélectionnées dans la page Gestionnaire de connexions de l’Éditeur
de transformation de script.

Une classe de collection Variables qui contient des références aux variables
entrées dans les propriétés ReadOnlyVariable et ReadWriteVariables de la page
Script de l’Éditeur de transformation de script.
L’élément de projet BufferWrapper contient une classe qui hérite de l’objet
ScriptBuffer pour chaque entrée et sortie configurée dans la page Entrées et
sorties de l’Éditeur de transformation de script. Chacune de ces classes contient
des propriétés d'accesseur typées qui correspondent aux colonnes d'entrée et de
sortie configurées, ainsi que des tampons de flux de données qui contiennent les
colonnes.

Pour plus d’informations sur la manière d’utiliser ces objets, méthodes et propriétés,
consultez Présentation du modèle objet du composant Script. Pour plus d’informations
sur l’utilisation des méthodes et des propriétés de ces classes dans un type de
composant Script particulier, consultez la section Autres exemples de composants
Script. Les rubriques d'exemples contiennent également des exemples de code
complets.

Lorsque vous configurez le composant Script en tant que transformation, l’élément de


projet ScriptMain contient le code généré automatiquement suivant. Le modèle de
code fournit également une vue d'ensemble du composant Script, ainsi que des
informations supplémentaires sur la récupération et la manipulation des objets SSIS, tels
que les variables, les événements et les connexions.

VB

' Microsoft SQL Server Integration Services Script Component


' Write scripts using Microsoft Visual Basic 2008.
' ScriptMain is the entry point class of the script.

Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper

<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
Inherits UserComponent

Public Overrides Sub PreExecute()


MyBase.PreExecute()
'
' Add your code here for preprocessing or remove if not needed
'
End Sub

Public Overrides Sub PostExecute()


MyBase.PostExecute()
'
' Add your code here for postprocessing or remove if not needed
' You can set read/write variables here, for example:
' Me.Variables.MyIntVar = 100
'
End Sub

Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)


'
' Add your code here
'
End Sub

End Class

C#

/* Microsoft SQL Server Integration Services user script component


* Write scripts using Microsoft Visual C# 2008.
* ScriptMain is the entry point class of the script.*/

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;

[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{

public override void PreExecute()


{
base.PreExecute();
/*
Add your code here for preprocessing or remove if not needed
*/
}

public override void PostExecute()


{
base.PostExecute();
/*
Add your code here for postprocessing or remove if not needed
You can set read/write variables here, for example:
Variables.MyIntVar = 100
*/
}

public override void Input0_ProcessInputRow(Input0Buffer Row)


{
/*
Add your code here
*/
}

}
Autres éléments de projet dans le projet de composant Script

Le projet de composant Script peut inclure d’autres éléments que l’élément ScriptMain
par défaut. Vous pouvez ajouter des classes, des modules, des fichiers de code et des
dossiers au projet, et vous pouvez utiliser des dossiers pour organiser des groupes
d'éléments.

Tous les éléments que vous ajoutez sont rendus persistants à l'intérieur du package.

Références dans le projet de composant Script


Vous pouvez ajouter des références aux assemblys managés en cliquant avec le bouton
droit sur le projet de tâche de script dans l’Explorateur de projets, puis en cliquant sur
Ajouter une référence. Pour plus d’informations, consultez Référencement d’autres
assemblys dans les solutions de script.

7 Notes

Vous pouvez consulter des références de projet dans l’environnement de


développement intégré VSTA dans l’Affichage de classes ou l’Explorateur de
projets. Vous ouvrez l’une ou l’autre de ces fenêtres à partir du menu Affichage.
Vous pouvez ajouter une nouvelle référence à partir du menu Projet, de
l’Explorateur de projets ou d’Affichage de classes.

Interaction avec le package dans le composant


Script
Le script personnalisé que vous écrivez dans le composant Script peut accéder à des
variables et gestionnaires de connexions afin de les utiliser, à partir du package
conteneur, via des accesseurs fortement typés dans les classes de base générées
automatiquement. Toutefois, vous devez configurer à la fois les variables et les
gestionnaires de connexions avant de passer en mode Création du code si vous
souhaitez les rendre disponibles pour votre script. Vous pouvez également déclencher
des événements et effectuer une journalisation à partir de votre code de composant
Script.

Les éléments de projet générés automatiquement dans le projet de composant Script


fournissent les objets, méthodes et propriétés ci-après pour interagir avec le package.
Fonctionnalité Méthode d'accès
du package

Variables Utilisez les propriétés d’accesseur nommées et typées de la classe de collection


Variables dans l’élément de projet ComponentWrapper, exposées via la
propriété Variables de la classe ScriptMain.

La méthode PreExecute ne peut accéder qu’à des variables en lecture seule. La


méthode PostExecute peut accéder à des variables en lecture seule et en
lecture/écriture.

Connexions Utilisez les propriétés d’accesseur typées et nommées de la classe de collection


Connections dans l’élément de projet ComponentWrapper, exposées via la
propriété Connections de la classe ScriptMain.

Événements Déclenchez des événements à l’aide de la propriété ComponentMetaData de la


classe ScriptMain et des méthodes Fire<X> de l’interface
IDTSComponentMetaData100.

Journalisation Effectuez la journalisation à l’aide de la méthode Log de la classe ScriptMain.

Débogage du composant Script


Pour déboguer le code dans votre composant Script, définissez au moins un point
d'arrêt dans le code, puis fermez l'environnement de développement intégré VISTA pour
exécuter le package dans SQL Server Data Tools (SSDT). Lorsque l'exécution du package
entre le composant Script, l'environnement de développement intégré s'ouvre à
nouveau et affiche votre code en lecture seule. Lorsque l'exécution atteint le point
d'arrêt, vous pouvez examiner les valeurs des variables et exécuter pas à pas le code
restant.

7 Notes

Vous ne pouvez pas déboguer un composant Script si vous l'exécutez dans le cadre
d'un package enfant exécuté à partir d'une tâche d'exécution de package. Dans ce
cas, les points d'arrêt définis dans le composant Script dans le package enfant sont
ignorés. Vous pouvez déboguer normalement le package enfant en l'exécutant
séparément.

7 Notes

Lorsque vous déboguez un package qui contient plusieurs composants de script, le


débogueur n'en débogue qu'un seul. Le système peut déboguer un autre
composant script si le débogueur a terminé, comme dans le cas d'une boucle
Foreach ou du conteneur de boucles For.

Vous pouvez également surveiller l'exécution du composant Script en utilisant les


méthodes suivantes :

Interrompez l’exécution et affichez un message modal en utilisant la méthode


MessageBox.Show de l’espace de noms System.Windows.Forms. (Supprimez ce
code une fois que vous avez terminé le processus de débogage.)

Déclenchez des événements pour les messages d'information, les avertissements


et les erreurs. Les méthodes FireInformation, FireWarning et FireError affichent la
description des événements dans la fenêtre Sortie de Visual Studio. Toutefois, les
méthodes FireProgress, Console.Write et Console.WriteLine n’affichent aucune
information dans la fenêtre Sortie. Les messages de l’événement FireProgress
apparaissent sous l’onglet Progression du concepteur SSIS. Pour plus
d’informations, consultez Déclenchement d’événements dans le composant Script.

Journalisez les événements ou les messages définis par l'utilisateur dans les
modules fournisseurs d'informations activés. Pour plus d’informations, consultez
Journalisation dans le composant Script.

Si vous souhaitez simplement examiner la sortie d’un composant Script configuré en


tant que source ou transformation, sans enregistrer les données dans une destination,
vous pouvez arrêter le flux de données avec une transformation Nombre de lignes et
attacher une visionneuse de données à la sortie du composant Script. Pour plus
d’informations sur les visionneuses de données, consultez Débogage d’un flux de
données.

Dans cette section


Pour plus d'informations sur le codage du composant Script, consultez les rubriques
suivantes de cette section.

Présentation du modèle objet du composant Script


Explique comment utiliser les objets, méthodes et propriétés disponibles dans le
composant Script.

Référencement d’autres assemblys dans les solutions de script


Explique comment référencer des objets de la bibliothèque de classes .NET Framework
dans le composant Script.
Simulation d'une sortie d'erreur pour le composant Script
Explique comment simuler une sortie d'erreur pour les lignes qui déclenchent des
erreurs lors du traitement par le composant Script.

Ressources externes
Entrée de blog, VSTA setup and configuration troubles for SSIS 2008 and R2
installations, sur blogs.msdn.com.

Voir aussi
Configuration du composant Script dans l’éditeur de composant de script
Présentation du modèle objet du
composant Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Comme expliqué dans Codage et débogage du composant Script, le projet de


composant Script contient trois éléments de projet :

1. L’élément ScriptMain, qui contient la classe ScriptMain dans laquelle vous écrivez
votre code. La classe ScriptMain hérite de la classe UserComponent.

2. L’élément ComponentWrapper, qui contient la classe UserComponent, une


instance de ScriptComponent contenant les méthodes et les propriétés qui
permettent de traiter les données et d’interagir avec le package. L’élément
ComponentWrapper contient également les classes de collection Connections et
Variables.

3. L’élément BufferWrapper, qui contient des classes qui héritent de ScriptBuffer


pour chaque entrée et sortie, et des propriétés typées pour chaque colonne.

Les objets, méthodes et propriétés présentés dans cette rubrique vous permettent
d’écrire du code dans l’élément ScriptMain. Chaque composant n'utilise pas toutes les
méthodes répertoriées ici ; cependant, lorsque ces méthodes sont utilisées, elles le sont
dans l'ordre indiqué.

La classe de base ScriptComponent ne contient pas de code d'implémentation pour les


méthodes présentées dans cette rubrique. Il est donc inutile, mais sans conséquence,
d'ajouter un appel à l'implémentation de la classe de base à votre propre
implémentation de la méthode.

Pour plus d’informations sur l’utilisation des méthodes et des propriétés de ces classes
dans un type de composant Script particulier, consultez la section Autres exemples de
composants Script. Les rubriques d'exemples contiennent également des exemples de
code complets.

Méthode AcquireConnections
Généralement, les sources et les destinations doivent se connecter à une source de
données externe. Substituez la méthode AcquireConnections de la classe de base
ScriptComponent pour extraire la connexion ou les informations de connexion du
gestionnaire de connexions approprié.

L’exemple suivant retourne un System.Data.SqlClient.SqlConnection à partir d’un


gestionnaire de connexions ADO.NET.

VB

Dim connMgr As IDTSConnectionManager100


Dim sqlConn As SqlConnection

Public Overrides Sub AcquireConnections(ByVal Transaction As Object)

connMgr = Me.Connections.MyADONETConnection
sqlConn = CType(connMgr.AcquireConnection(Nothing), SqlConnection)

End Sub

L’exemple suivant retourne un chemin complet et un nom de fichier à partir d’un


gestionnaire de connexions de fichiers plats, puis ouvre le fichier à l’aide de
System.IO.StreamReader.

VB

Private textReader As StreamReader


Public Overrides Sub AcquireConnections(ByVal Transaction As Object)

Dim connMgr As IDTSConnectionManager100 = _


Me.Connections.MyFlatFileSrcConnectionManager
Dim exportedAddressFile As String = _
CType(connMgr.AcquireConnection(Nothing), String)
textReader = New StreamReader(exportedAddressFile)

End Sub

Méthode PreExecute
Substituez la méthode PreExecute de la classe de base ScriptComponent lorsque vous
devez effectuer un traitement une seule fois avant d'entamer le traitement des lignes de
données. Par exemple, dans une destination, vous pouvez configurer la commande
paramétrable que la destination utilise pour insérer chaque ligne de données dans la
source de données.

VB
Dim sqlConn As SqlConnection
Dim sqlCmd As SqlCommand
Dim sqlParam As SqlParameter
...
Public Overrides Sub PreExecute()

sqlCmd = New SqlCommand("INSERT INTO Person.Address2(AddressID,


City) " & _
"VALUES(@addressid, @city)", sqlConn)
sqlParam = New SqlParameter("@addressid", SqlDbType.Int)
sqlCmd.Parameters.Add(sqlParam)
sqlParam = New SqlParameter("@city", SqlDbType.NVarChar, 30)
sqlCmd.Parameters.Add(sqlParam)

End Sub

C#

SqlConnection sqlConn;
SqlCommand sqlCmd;
SqlParameter sqlParam;

public override void PreExecute()


{

sqlCmd = new SqlCommand("INSERT INTO Person.Address2(AddressID, City) "


+ "VALUES(@addressid, @city)", sqlConn);
sqlParam = new SqlParameter("@addressid", SqlDbType.Int);
sqlCmd.Parameters.Add(sqlParam);
sqlParam = new SqlParameter("@city", SqlDbType.NVarChar, 30);
sqlCmd.Parameters.Add(sqlParam);

Traitement des entrées et des sorties

Traitement des entrées


Les composants Script configurés en tant que transformations ou destinations
possèdent une entrée.

Composants fournis par l'élément de projet BufferWrapper

Pour chaque entrée configurée, l’élément de projet BufferWrapper contient une classe
qui dérive de ScriptBuffer et qui porte le même nom que l’entrée. Chaque classe de
mémoire tampon d'entrée contient les propriétés, fonctions et méthodes suivantes :
Des propriétés d'accesseur typées et nommées pour chaque colonne d'entrée
sélectionnée. Ces propriétés sont en lecture seule ou en lecture/écriture selon le
Type d’utilisation spécifié pour la colonne dans la page Colonnes d’entrée de
l’Éditeur de transformation de script.

Une propriété <column>_IsNull pour chaque colonne d’entrée sélectionnée. Cette


propriété est également en lecture seule ou en lecture/écriture selon le Type
d’utilisation spécifié pour la colonne.

Une méthode DirectRowTo<outputbuffer> pour chaque sortie configurée. Vous


utilisez ces méthodes lorsque vous filtrez des lignes sur l’une des différentes
sorties dans le même ExclusionGroup.

Une fonction NextRow pour récupérer la ligne d’entrée suivante et une fonction
EndOfRowset pour déterminer si la dernière mémoire tampon de données a été
traitée. Généralement, vous n’avez pas besoin de ces fonctions lorsque vous
exécutez les méthodes de traitement d’entrée implémentées dans la classe de base
UserComponent. La section suivante fournit des informations supplémentaires sur
la classe de base UserComponent.

Composants fournis par l'élément de projet ComponentWrapper


L’élément de projet ComponentWrapper contient une classe nommée UserComponent
dérivée de ScriptComponent. La classe ScriptMain dans laquelle vous écrivez votre code
personnalisé dérive à son tour de UserComponent. La classe UserComponent contient
les méthodes suivantes :

Une implémentation substituée de la méthode ProcessInput. Il s’agit de la


méthode que le moteur de flux de données appelle au moment de l’exécution,
juste après la méthode PreExecute. Elle peut être appelée plusieurs fois.
ProcessInput transfère le traitement à la méthode <inputbuffer>_ProcessInput. La
méthode ProcessInput recherche ensuite la fin de la mémoire tampon d’entrée et,
si elle la trouve, appelle la méthode remplçable FinishOutputs et la méthode
privée MarkOutputsAsFinished. La méthode MarkOutputsAsFinished appelle
ensuite SetEndOfRowset sur la dernière mémoire tampon de sortie.

Une implémentation substituable de la méthode <inputbuffer>_ProcessInput.


Cette implémentation par défaut effectue simplement une boucle sur chaque ligne
d’entrée et appelle <inputbuffer>_ProcessInputRow.

Une implémentation substituable de la méthode <inputbuffer>_ProcessInputRow.


L'implémentation par défaut est vide. Il s'agit normalement de la méthode que
vous devez substituer pour écrire votre code de traitement de données
personnalisé.

Opérations à effectuer par votre code personnalisé

Vous pouvez utiliser les méthodes suivantes pour traiter l’entrée dans la classe
ScriptMain :

Substituez <inputbuffer>_ProcessInputRow pour traiter les données dans chaque


ligne d’entrée lors de leur transfert.

Substituez <inputbuffer>_ProcessInput uniquement si vous devez effectuer une


autre opération pendant que vous parcourez les lignes d’entrée. (par exemple,
vous devez effectuer un test pour que EndOfRowset exécute une autre action une
fois que toutes les lignes ont été traitées). Appelez
<inputbuffer>_ProcessInputRow pour effectuer le traitement de la ligne.

Substituez FinishOutputs si vous devez effectuer une opération sur les sorties
avant leur fermeture.

La méthode ProcessInput garantit que ces méthodes sont appelées aux moments
appropriés.

Traitement des sorties


Les composants Script configurés en tant que sources ou transformations possèdent
une ou plusieurs sorties.

Composants fournis par l'élément de projet BufferWrapper

Pour chaque sortie configurée, l'élément de projet BufferWrapper contient une classe
qui dérive de ScriptBuffer et qui porte le même nom que la sortie. Chaque classe de
mémoire tampon d'entrée contient les propriétés et méthodes suivantes :

Des propriétés d'accesseur nommées, typées et en écriture seule pour chaque


colonne de sortie.

Une propriété <column>_IsNull en écriture seule pour chaque colonne de sortie


sélectionnée qui vous permet d’affecter la valeur null à la valeur de colonne.

Une méthode AddRow permettant d’ajouter une ligne vide à la mémoire tampon
de sortie.
Une méthode SetEndOfRowset pour indiquer au moteur de flux de données
qu’aucune autre mémoire tampon de données n’est attendue. Une fonction
EndOfRowset permet également de déterminer si la mémoire tampon active est la
dernière mémoire tampon de données. Généralement, vous n’avez pas besoin de
ces fonctions lorsque vous exécutez les méthodes de traitement d’entrée
implémentées dans la classe de base UserComponent.

Composants fournis par l'élément de projet ComponentWrapper


L’élément de projet ComponentWrapper contient une classe nommée UserComponent
dérivée de ScriptComponent. La classe ScriptMain dans laquelle vous écrivez votre code
personnalisé dérive à son tour de UserComponent. La classe UserComponent contient
les méthodes suivantes :

Une implémentation substituée de la méthode PrimeOutput. Le moteur de flux de


données appelle cette méthode avant ProcessInput au moment de l’exécution. La
méthode est appelée une seule fois. PrimeOutput transfère le traitement à la
méthode CreateNewOutputRows. Puis, si le composant est une source (autrement
dit, s’il ne possède pas d’entrée), PrimeOutput appelle la méthode substituable
FinishOutputs et la méthode privée MarkOutputsAsFinished. La méthode
MarkOutputsAsFinished appelle SetEndOfRowset sur la dernière mémoire
tampon de sortie.

Une implémentation substituable de la méthode CreateNewOutputRows.


L'implémentation par défaut est vide. Il s'agit normalement de la méthode que
vous devez substituer pour écrire votre code de traitement de données
personnalisé.

Opérations à effectuer par votre code personnalisé


Vous pouvez utiliser les méthodes suivantes pour traiter les sorties dans la classe
ScriptMain :

Substituez CreateNewOutputRows uniquement lorsque vous pouvez ajouter et


remplir des lignes de sortie avant de traiter des lignes d’entrée. Par exemple, vous
pouvez utiliser CreateNewOutputRows dans une source, mais dans une
transformation à sorties asynchrones, vous devez appeler AddRow pendant ou
après le traitement des données d’entrée.

Substituez FinishOutputs si vous devez effectuer une opération sur les sorties
avant leur fermeture.
La méthode PrimeOutput garantit que ces méthodes sont appelées aux moments
appropriés.

Méthode PostExecute
Substituez la méthode PostExecute de la classe de base ScriptComponent lorsque vous
devez effectuer un traitement une seule fois après avoir traité les lignes de données. Par
exemple, dans une source, vous pouvez fermer le System.Data.SqlClient.SqlDataReader
qui vous a permis de charger des données dans le flux de données.

) Important

La collection de ReadWriteVariables est disponible uniquement dans la méthode


PostExecute. Par conséquent, vous ne pouvez pas incrémenter directement la
valeur d'une variable de package à mesure que vous traitez chaque ligne de
données. Incrémentez plutôt la valeur d’une variable locale, puis définissez la valeur
de la variable de package sur la valeur de la variable locale dans la méthode
PostExecute une fois que toutes les données ont été traitées.

Méthode ReleaseConnections
Généralement, les sources et les destinations doivent se connecter à une source de
données externe. Substituez la méthode ReleaseConnections de la classe de base
ScriptComponent pour fermer et libérer la connexion que vous avez ouverte
précédemment dans la méthode AcquireConnections.

VB

Dim connMgr As IDTSConnectionManager100


...
Public Overrides Sub ReleaseConnections()

connMgr.ReleaseConnection(sqlConn)

End Sub

C#

IDTSConnectionManager100 connMgr;

public override void ReleaseConnections()


{
connMgr.ReleaseConnection(sqlConn);

Voir aussi
Configuration du composant Script dans l’éditeur de composant de script
Codage et débogage du composant Script
Utilisation de variables dans le
composant Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les variables stockent les valeurs qu'un package et ses conteneurs, tâches et
gestionnaires d'événements peuvent utiliser au moment de l'exécution. Pour plus
d’informations, consultez Variables Integration Services (SSIS).

Vous pouvez rendre des variables existantes accessibles en lecture seule ou en lecture/
écriture par votre script personnalisé en entrant des listes délimitées par des virgules de
variables dans les champs ReadOnlyVariables et ReadWriteVariables de la page Script
de l’Éditeur de transformation de script. N'oubliez pas que les noms de variables
respectent la casse. Utilisez la propriété Value pour lire et écrire des variables
individuelles. Le composant Script gère tout le verrouillage sous-jacent requis quand
votre script manipule les variables au moment de l'exécution.

) Important

La collection de ReadWriteVariables est uniquement disponible dans la méthode


PostExecute pour maximiser les performances et réduire le risque de conflits de
verrouillage. Par conséquent, vous ne pouvez pas incrémenter directement la valeur
d'une variable de package à mesure que vous traitez chaque ligne de données.
Incrémentez plutôt la valeur d’une variable locale, puis définissez la valeur de la
variable de package sur la valeur de la variable locale dans la méthode PostExecute
une fois que toutes les données ont été traitées. Vous pouvez également utiliser la
propriété VariableDispenser pour contourner cette limitation, comme décrit
ultérieurement dans cette rubrique. Toutefois, l'écriture directe dans une variable de
package au fut et à mesure du traitement de chaque ligne aura des effets négatifs
sur les performances et augmentera le risque de conflits de verrouillage.

Pour plus d’informations sur la page Scripts de l’Éditeur de transformation de script,


consultez Configuration du composant Script dans l’Éditeur de composant de script et
Éditeur de transformation de script (Page Script).

Le composant Script crée une classe de collection Variables dans l’élément de projet
ComponentWrapper avec une propriété d’accesseur fortement typée pour la valeur de
chaque variable préconfigurée où la propriété porte le même nom que la variable elle-
même. Cette collection est exposée via la propriété Variables de la classe ScriptMain. La
propriété de l'accesseur fournit une autorisation de lecture seule ou de lecture/écriture à
la valeur de la variable. Par exemple, si vous avez ajouté une variable de type integer
nommée MyIntegerVariable à la liste ReadOnlyVariables, vous pouvez extraire sa valeur
dans votre script en utilisant le code suivant :

Dim myIntegerVariableValue As Integer = Me.Variables.MyIntegerVariable

Vous pouvez également utiliser la propriété VariableDispenser, accessible en appelant


Me.VariableDispenser , pour utiliser des variables dans le composant Script. Dans ce cas,
vous n'utilisez pas les propriétés de l'accesseur typé et nommé pour les variables, mais
vous accédez directement aux variables. Lorsque vous utilisez la propriété
VariableDispenser, vous devez gérer à la fois la sémantique de verrouillage et la
conversion des types de données pour les valeurs de variables dans votre propre code.
Vous devez utiliser la propriété VariableDispenser au lieu des propriétés de l'accesseur
nommé et typé si vous souhaitez utiliser une variable qui n'est pas disponible au
moment du design mais qui est créée par programme au moment de l'exécution.

Voir aussi
Variables Integration Services (SSIS)
Utiliser des variables dans des packages
Connexion aux sources de données dans
le composant Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions est une unité pratique qui encapsule et stocke les
informations requises pour se connecter à une source de données d'un type particulier.
Pour plus d’informations, consultez Connexions Integration Services (SSIS).

Vous pouvez faire en sorte que des gestionnaires de connexions existants soient
accessibles par le script personnalisé compris dans le composant source ou de
destination en cliquant sur les boutons Ajouter et Supprimer de la page Gestionnaires
de connexions de l’Éditeur de transformation de script. Toutefois, vous devez écrire
votre propre code personnalisé pour charger ou enregistrer vos données et
éventuellement ouvrir et fermer la connexion à la source de données. Pour plus
d’informations sur la page Gestionnaires de connexions de l’Éditeur de transformation
de script, consultez Configuration du composant Script dans l’Éditeur de composant de
script et Éditeur de transformation de script (Page Gestionnaires de connexions).

Le composant Script crée une classe de collection Connections dans l’élément de projet
ComponentWrapper qui contient un accesseur fortement typé pour chaque
gestionnaire de connexions qui porte le même nom que le gestionnaire de connexions
lui-même. Cette collection est exposée via la propriété Connections de la classe
ScriptMain. La propriété de l'accesseur renvoie une référence au gestionnaire de
connexions sous forme d'instance de l'objet IDTSConnectionManager100. Par exemple,
si vous avez ajouté un gestionnaire de connexion nommé MyADONETConnection dans la
page Gestionnaires de connexions de la boîte de dialogue, vous pouvez obtenir une
référence à ce dernier dans votre script en ajoutant le code suivant :

Dim myADONETConnectionManager As IDTSConnectionManager100 = _

Me.Connections.MyADONETConnection

7 Notes

Vous devez connaître le type de connexion retourné par le gestionnaire de


connexions avant d’appeler AcquireConnection. Dans la mesure où Option Strict
est activé pour la tâche de script, vous devez caster la connexion (retournée en tant
que type Object) en type de connexion approprié avant de pouvoir l’utiliser.
Ensuite, appelez la méthode AcquireConnection du gestionnaire de connexions
spécifique pour obtenir soit la connexion sous-jacente, soit les informations requises
pour vous connecter à la source de données. Par exemple, vous obtenez une référence
au System.Data.SqlConnection encapsulé par un gestionnaire de connexions ADO.NET
en utilisant le code suivant :

Dim myADOConnection As SqlConnection = _

CType(MyADONETConnectionManager.AcquireConnection(Nothing), SqlConnection)

Par opposition, le même appel d'un gestionnaire de connexions de fichier plat retourne
uniquement le chemin d'accès et le nom de fichier de la source de données.

Dim myFlatFile As String = _

CType(MyFlatFileConnectionManager.AcquireConnection(Nothing), String)

Vous devez alors fournir ce chemin et ce nom de fichier à un System.IO.StreamReader


ou Streamwriter pour lire ou écrire les données dans le fichier plat.

) Important

Lorsque vous écrivez du code managé dans un composant Script, vous ne pouvez
pas appeler la méthode AcquireConnection des gestionnaires de connexions qui
retournent des objets non managés, comme le gestionnaire de connexions OLE DB
et le gestionnaire de connexions Excel. Toutefois, vous pouvez lire la propriété
ConnectionString de ces gestionnaires de connexions et vous connecter
directement à la source de données dans votre code en utilisant la chaîne de
connexion d’une connexion OLEDB à partir de l’espace de noms
System.Data.OleDb.

Si vous devez appeler la méthode AcquireConnection d’un gestionnaire de


connexions qui retourne un objet non managé, utilisez un gestionnaire de
connexions ADO.NET. Lorsque vous configurez le gestionnaire de connexions
ADO.NET afin d'utiliser un fournisseur OLE DB, il se connecte en utilisant le
fournisseur de données .NET Framework pour OLE DB. Dans ce cas, la méthode
AcquireConnection retourne un System.Data.OleDb.OleDbConnection à la place
d’un objet non managé. Pour configurer un gestionnaire de connexions ADO.NET
en vue de son utilisation avec une source de données Excel, sélectionnez le
fournisseur Microsoft OLE DB pour Jet, spécifiez un classeur Excel, puis entrez Excel
8.0 (pour Excel 97 et versions ultérieures) comme valeur de Propriétés étendues

dans la page Tout de la boîte de dialogue Gestionnaire de connexions.


Pour plus d’informations sur l’utilisation des gestionnaires de connexions avec le
composant Script, consultez Création d’une source avec le composant Script et Création
d’une destination avec le composant Script.

Voir aussi
Connexions Integration Services (SSIS)
Créer des gestionnaires de connexions
Déclenchement d'événements dans le
composant Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les événements offrent un moyen de signaler des erreurs, des avertissements et


d'autres informations, telles que la progression ou l'état d'une tâche, au package
conteneur. Le package fournit des gestionnaires d'événements pour gérer les
notifications d'événements. Le composant Script peut déclencher des événements en
appelant des méthodes sur la propriété ComponentMetaData de la classe ScriptMain.
Pour plus d’informations sur la manière dont les packages Integration Services gèrent
les événements, consultez Gestionnaires d’événements Integration Services (SSIS).

Les événements peuvent être journalisés dans tout module fournisseur d'informations
activé dans le package. Les modules fournisseurs d'informations stockent des
informations à propos des événements dans une banque de données. Le composant
Script peut également utiliser la méthode Log pour journaliser des informations dans un
module fournisseur d'informations sans déclencher d'événement. Pour plus
d'informations sur la manière d'utiliser la méthode Log, consultez la section suivante.

Pour déclencher un événement, la tâche de script appelle l'une des méthodes suivantes
de l'interface IDTSComponentMetaData100 exposée par la propriété
ComponentMetaData :

Événement Description

FireCustomEvent Déclenche un événement personnalisé défini par l'utilisateur dans le package.

FireError Informe le package d'une condition d'erreur.

FireInformation Fournit des informations à l'utilisateur.

FireProgress Informe le package de la progression du composant.

FireWarning Informe le package que le composant est dans un état qui garantit la
notification de l'utilisateur, mais qui n'est pas une condition d'erreur.

Voici un exemple simple de génération d'un événement d'erreur :

Dim myMetadata as IDTSComponentMetaData100

myMetaData = Me.ComponentMetaData
myMetaData.FireError(...)

Voir aussi
Gestionnaires d'événements Integration Services (SSIS)
Ajouter un gestionnaire d’événements à un package
Journalisation dans le composant Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La journalisation dans des packages Integration Services vous permet d'enregistrer des
informations détaillées sur l'avancement, les résultats et les problèmes d'exécution en
enregistrant des événements prédéfinis ou des messages définis par l'utilisateur en vue
d'une analyse ultérieure. Le composant Script peut utiliser la méthode Log de la classe
ScriptMain pour enregistrer des données définies par l’utilisateur. Si la journalisation est
activée et que l’événement ScriptComponentLogEntry est sélectionné pour la
journalisation sous l’onglet Détails de la boîte de dialogue Configurer les journaux SSIS,
un seul appel à la méthode Log stocke les informations sur l’événement dans tous les
modules fournisseurs d’informations configurés pour la tâche de flux de données.

Voici un exemple simple de journalisation :

Dim bt(0) As Byte

Me.Log("Test Log Event", _

0, _

bt)

7 Notes

Bien qu'il soit possible d'exécuter la journalisation directement à partir du


composant Script, il peut être préférable d'implémenter des événements plutôt que
la journalisation. L'utilisation d'événements vous permet non seulement d'activer la
journalisation des messages d'événements, mais également de répondre à un
événement à l'aide de gestionnaires d'événements par défaut ou définis par
l'utilisateur.

Pour plus d’informations sur la journalisation, consultez Journalisation Integration


Services (SSIS).

Voir aussi
Journalisation d'Integration Services (SSIS)
Développement de types spécifiques de
composants Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le composant Script est un outil configurable que vous pouvez utiliser dans le flux de
données d'un package pour remplir presque toutes les conditions qui ne sont pas
satisfaites par les sources, les transformations et les destinations incluses dans
Integration Services. Cette section contient des exemples de code du composant Script
qui illustrent les quatre options de configuration du composant Script :

en tant que source ;

en tant que transformation à sorties synchrones ;

en tant que transformation à sorties asynchrones ;

en tant que destination.

Pour obtenir des exemples supplémentaires du composant Script, consultez Exemples


supplémentaires du composant Script.

Dans cette section


Création d'une source à l'aide du composant Script
Explique et montre comment créer une source de flux de données en utilisant le
composant Script.

Création d'une transformation synchrone à l'aide du composant Script


Explique et montre comment créer une transformation de flux de données à sorties
synchrones en utilisant le composant Script. Ce type de transformation modifie des
lignes de données en place lorsqu'elles franchissent le composant.

Création d’une transformation asynchrone à l’aide du composant Script


Explique et montre comment créer une transformation de flux de données à sorties
asynchrones en utilisant le composant Script. Ce type de transformation doit lire toutes
les lignes de données avant de pouvoir ajouter d'autres informations, telles que des
agrégats calculés, aux données qui franchissent le composant.

Création d’une destination à l’aide du composant Script


Explique et montre comment créer une destination de flux de données en utilisant le
composant Script.

Voir aussi
Comparaison des solutions de script et des objets personnalisés
Développement de types spécifiques de composants de flux de données
Création d'une source à l'aide du
composant Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les composants sources du flux de données d’un package Integration Services


permettent de charger des données d’une source de données et de les transférer à des
transformations et à des destinations en aval. En principe, vous vous connectez à la
source de données via un gestionnaire de connexions existant.

Pour une vue d’ensemble du composant Script, consultez Extension du flux de données
avec le composant Script.

Le composant Script et le code d'infrastructure qu'il génère simplifient


considérablement le processus qui consiste à développer un composant de flux de
données personnalisé. Toutefois, pour comprendre le fonctionnement du composant
Script, il peut être utile de consulter les étapes de développement d'un composant de
flux de données personnalisé. Consultez la section Développement d’un composant de
flux de données personnalisé et plus particulièrement la rubrique Développement d’un
composant source personnalisé.

Mise en route d'un composant source


Lorsque vous ajoutez un composant Script au volet Flux de données du concepteur SSIS
Designer, la boîte de dialogue Sélectionner le type de composant de script s’ouvre et
vous invite à sélectionner un script de type Source, Destination ou Transformation. Dans
cette boîte de dialogue, sélectionnez Source.

Configuration d'un composant source en mode


Création de métadonnées
Après avoir sélectionné l'option pour créer un composant source, vous pouvez
configurer le composant à l'aide de l' Éditeur de transformation de script. Pour plus
d’informations, consultez Configuration du composant Script dans l’éditeur de
composant de script.

Un composant source de flux de données ne possède pas d'entrée et prend en charge


une ou plusieurs sorties. La configuration des sorties du composant est l'une des étapes
à exécuter en mode Création de métadonnées, à l'aide de l' Éditeur de transformation
de script, avant d'écrire le script personnalisé.

Vous pouvez également spécifier le langage de script en définissant la propriété


ScriptLanguage dans la page Script de l' Éditeur de transformation de script.

7 Notes

Pour définir le langage de script par défaut des composants Script et des tâches de
script, utilisez l'option Langage de script dans la page Général de la boîte de
dialogue Options . Pour plus d'informations, consultez General Page.

Ajout de gestionnaires de connexions


En principe, une composant source utilise un gestionnaire de connexions existant pour
se connecter à la source de données à partir de laquelle il charge des données dans le
flux de données. Dans la page Gestionnaires de connexions de l' Éditeur de
transformation de script, cliquez sur Ajouter pour ajouter le gestionnaire de connexions
approprié.

Toutefois, un gestionnaire de connexions n'est qu'une unité pratique qui permet


d'encapsuler et de stocker les informations dont il doit disposer pour se connecter à une
source de données d'un type particulier. Vous devez écrire votre propre code
personnalisé pour charger ou enregistrer vos données et éventuellement ouvrir et
fermer la connexion à la source de données.

Pour obtenir des informations générales sur l’utilisation des gestionnaires de connexions
avec le composant Script, consultez Connexion aux sources de données dans le
composant Script.

Pour plus d’informations sur la page Gestionnaires de connexions de l’Éditeur de


transformation de script, consultez Éditeur de transformation de script (page
Gestionnaires de connexions).

Configuration des sorties et des colonnes de sortie


Un composant source ne possède pas d'entrée et prend en charge une ou plusieurs
sorties. La page Entrées et sorties de l' Éditeur de transformation de script, montre
qu'une seule sortie a été créée par défaut, mais qu'aucune colonne de sortie n'a été
créée. Dans cette page de l'éditeur, vous pouvez avoir besoin ou envie de configurer les
éléments suivants.
Vous devez ajouter et configurer manuellement des colonnes de sortie pour
chaque sortie. Sélectionnez le dossier Colonnes de sortie pour chaque sortie, puis
utilisez les boutons Ajouter une colonne et Supprimer une colonne pour gérer les
colonnes de sortie de chaque sortie du composant source. Vous ferez
ultérieurement référence aux colonnes de sortie dans le script par le nom que vous
leur assignez dans cette page, à l'aide des propriétés d'accesseur typées, créées
dans le code généré automatiquement.

Vous pouvez créer une ou plusieurs sorties supplémentaires, telles qu'une sortie
d'erreur simulée pour les lignes qui contiennent des valeurs inattendues. Utilisez
les boutons Ajouter une sortie et Supprimer une sortie pour gérer les sorties du
composant source. Toutes les lignes d'entrée sont dirigées vers toutes les sorties
disponibles, sauf si vous attribuez une valeur identique non nulle à la propriété
ExclusionGroup de ces sorties, auquel cas vous pourrez diriger chaque ligne vers
une seule de ces sorties partageant la même valeur ExclusionGroup . La valeur
entière particulière sélectionnée pour identifier ExclusionGroup n'a pas
d'importance.

7 Notes

Vous pouvez également utiliser une valeur de propriété ExclusionGroup non


nulle avec une sortie unique lorsque vous ne souhaitez pas générer des
sorties pour toutes les lignes. Dans ce cas toutefois, vous devez appeler
explicitement la méthode DirectRowTo<outputbuffer> pour chaque ligne
que vous souhaitez envoyer à la sortie.

Vous pouvez assigner un nom convivial aux sorties. Vous ferez ultérieurement
référence aux sorties par leur nom dans le script, à l'aide des propriétés
d'accesseur typées, créées dans le code généré automatiquement.

Normalement, plusieurs sorties dans le même ExclusionGroup possèdent les


mêmes colonnes de sortie. Toutefois, si vous créez une sortie d'erreur simulée,
vous pouvez ajouter des colonnes supplémentaires pour stocker les informations
d'erreur. Pour plus d’informations sur la manière dont le moteur de flux de
données traite les lignes d’erreur, consultez Utilisation de sorties d’erreur dans un
composant de flux de données. Dans le composant Script, vous devez cependant
écrire votre propre code pour remplir les colonnes supplémentaires avec les
informations d'erreur appropriées. Pour plus d’informations, consultez Simulation
d’une sortie d’erreur pour le composant Script.
Pour plus d’informations sur la page Entrées et sorties de l’Éditeur de transformation
de script, consultez Éditeur de transformation de script (page Entrées et sorties).

Ajout de variables
S'il existe des variables dont vous souhaitez utiliser les valeurs dans votre script, vous
pouvez les ajouter dans les champs de propriété ReadOnlyVariables et
ReadWriteVariables dans la page Script de l' Éditeur de transformation de script.

Lorsque vous entrez plusieurs variables dans les champs de propriété, séparez les noms
de variables par des virgules. Vous pouvez également entrer plusieurs variables en
cliquant sur le bouton de sélection ( ... ) en regard des champs de propriété
ReadOnlyVariables et ReadWriteVariables, puis en sélectionnant les variables dans la
boîte de dialogue Sélectionner des variables.

Pour obtenir des informations générales sur l’utilisation de variables avec le composant
Script, consultez Utilisation de variables dans le composant Script.

Pour plus d’informations sur la page Script de l’Éditeur de transformation de script,


consultez Éditeur de transformation de script (page Script).

Script d'un composant source en mode


Création de code
Après avoir configuré les métadonnées du composant, ouvrez l’environnement de
développement intégré Microsoft Visual Studio Tools for Applications (VSTA) pour coder
votre script personnalisé. Pour ouvrir VSTA, cliquez sur Modifier le script dans la page
Script de l' Éditeur de transformation de script. Vous pouvez écrire votre script à l’aide
de Microsoft Visual Basic ou de Microsoft Visual C#, selon le langage de script
sélectionné pour la propriété ScriptLanguage.

Pour obtenir des informations importantes concernant tous les types de composants
créés à l’aide du composant Script, consultez Codage et débogage du composant Script.

Fonctionnement du code généré automatiquement


Lorsque vous ouvrez l'environnement de développement intégré VSTA après avoir créé
et configuré un composant source, la classe ScriptMain modifiable apparaît dans
l'éditeur de code. Vous pouvez écrire votre code personnalisé dans la classe ScriptMain .
La classe ScriptMain inclut un stub pour la méthode CreateNewOutputRows .
CreateNewOutputRows est la méthode la plus importante d'un composant source.

Si vous ouvrez la fenêtre Explorateur de projets dans VSTA, vous constatez que le
composant Script a également généré des éléments de projet BufferWrapper et
ComponentWrapper en lecture seule. La classe ScriptMain hérite de la classe
UserComponent dans l'élément de projet ComponentWrapper .

Au moment de l’exécution, le moteur de flux de données appelle la méthode


PrimeOutput dans la classe UserComponent, qui remplace la méthode PrimeOutput de
la classe parente ScriptComponent. La méthode PrimeOutput appelle à son tour les
méthodes suivantes :

1. La méthode CreateNewOutputRows , que vous substituez dans ScriptMain pour


ajouter des lignes de la source de données aux mémoires tampons de sortie,
initialement vides.

2. La méthode FinishOutputs , vide par défaut. Substituez cette méthode dans


ScriptMain pour effectuer les traitements requis pour terminer l'opération de
sortie.

3. La méthode MarkOutputsAsFinished privée, qui appelle la méthode


SetEndOfRowset de la classe parente ScriptBuffer pour indiquer au moteur de flux
que l’opération de sortie est terminée. Vous n'avez pas besoin d'appeler
SetEndOfRowset de manière explicite dans votre propre code.

Écriture du code personnalisé


Pour achever la création d'un composant source personnalisé, vous pouvez écrire le
script dans les méthodes suivantes disponibles dans la classe ScriptMain .

1. Substituez la méthode AcquireConnections pour vous connecter à la source de


données externe. Extrayez l'objet de connexion, ou les informations de connexion
requises, du gestionnaire de connexions.

2. Substituez la méthode PreExecute pour charger des données, si vous pouvez


charger toutes les donnée sources en même temps. Par exemple, vous pouvez
exécuter un objet SqlCommand sur une connexion ADO.NET à une base de
données SQL Server et charger en même temps toutes les données sources dans
SqlDataReader. Si vous devez charger les données sources une ligne à la fois, (par
exemple, lors de la lecture d'un fichier texte) vous pouvez charger les données
pendant que vous parcourez les lignes dans CreateNewOutputRows.
3. Utilisez la méthode CreateNewOutputRows substituée pour ajouter de nouvelles
lignes aux mémoires tampons de sortie vides et remplir les valeurs de chaque
colonne dans les nouvelles lignes de sortie. Utilisez la méthode AddRow de
chaque mémoire tampon de sortie pour ajouter une nouvelle ligne vide, puis
définissez les valeurs de chaque colonne. En général, vous pouvez copier les
valeurs des colonnes chargées à partir de la source externe.

4. Substituez la méthode PostExecute pour terminer le traitement des données. Par


exemple, vous pouvez fermer SqlDataReader qui vous a permis de charger des
données.

5. Substituez la méthode ReleaseConnections pour vous déconnecter de la source de


données externe, le cas échéant.

Exemples
Les exemples suivants montrent le code personnalisé requis dans la classe ScriptMain
pour créer un composant source.

7 Notes

Ces exemples utilisent la table Person.Address de l’exemple de base de données


AdventureWorks et passent ses première et quatrième colonnes (à savoir les
colonnes intAddressID et nvarchar(30)City) dans le flux de données. Les mêmes
données sont utilisées dans les exemples de source, transformation et destination
de cette section. Des conditions préalables et des hypothèses supplémentaires sont
documentées pour chaque exemple.

Exemple de source ADO.NET


Cet exemple montre un composant source qui utilise un gestionnaire de connexions
ADO.NET existant pour charger les données d’une table SQL Server dans le flux de
données.

Si vous souhaitez exécuter cet exemple de code, vous devez configurer le package et le
composant comme suit :

1. Créez un gestionnaire de connexions ADO.NET qui utilise le fournisseur SqlClient


pour se connecter à la base de données AdventureWorks.
2. Ajoutez un nouveau composant Script à l'aire du concepteur de flux de données et
configurez-le en tant que source.

3. Ouvrez l' Éditeur de transformation de script. Dans la page Entrées et sorties ,


renommez la sortie par défaut avec un nom plus descriptif, tel que
MyAddressOutput, puis ajoutez et configurez les deux colonnes de sortie,
AddressID et City.

7 Notes

N'oubliez pas de remplacer le type de données de la colonne de sortie de ville


City par DT_WSTR.

4. Sur la page Gestionnaires de connexions, ajoutez ou créez le gestionnaire de


connexions ADO.NET et donnez-lui un nom, par exemple MyADONETConnection.

5. Dans la page Script , cliquez sur Modifier le script , puis entrez le script suivant.
Ensuite, fermez l'environnement de développement de script et l' Éditeur de
transformation de script.

6. Créez et configurez un composant de destination, comme une destination SQL


Server, ou l’exemple de composant de destination présenté dans Création d’une
destination avec le composant Script, qui attend les colonnes AddressID et City.
Puis, connectez le composant source à la destination. (Vous pouvez connecter
directement une source à une destination sans transformation.) Pour créer une
table de destination, exécutez la commande Transact-SQL suivante dans la base de
données AdventureWorks :

SQL

CREATE TABLE [Person].[Address2]([AddressID] [int] NOT NULL,


[City] [nvarchar](30) NOT NULL)

7. Exécutez l’exemple.

VB

Imports System.Data.SqlClient
...
Public Class ScriptMain
Inherits UserComponent

Dim connMgr As IDTSConnectionManager100


Dim sqlConn As SqlConnection
Dim sqlReader As SqlDataReader
Public Overrides Sub AcquireConnections(ByVal Transaction As
Object)

connMgr = Me.Connections.MyADONETConnection
sqlConn = CType(connMgr.AcquireConnection(Nothing),
SqlConnection)

End Sub

Public Overrides Sub PreExecute()

Dim cmd As New SqlCommand("SELECT AddressID, City,


StateProvinceID FROM Person.Address", sqlConn)
sqlReader = cmd.ExecuteReader

End Sub

Public Overrides Sub CreateNewOutputRows()

Do While sqlReader.Read
With MyAddressOutputBuffer
.AddRow()
.AddressID = sqlReader.GetInt32(0)
.City = sqlReader.GetString(1)
End With
Loop

End Sub

Public Overrides Sub PostExecute()

sqlReader.Close()

End Sub

Public Overrides Sub ReleaseConnections()

connMgr.ReleaseConnection(sqlConn)

End Sub

End Class

C#

using System.Data.SqlClient;
public class ScriptMain:
UserComponent

{
IDTSConnectionManager100 connMgr;
SqlConnection sqlConn;
SqlDataReader sqlReader;

public override void AcquireConnections(object Transaction)


{
connMgr = this.Connections.MyADONETConnection;
sqlConn = (SqlConnection)connMgr.AcquireConnection(null);

public override void PreExecute()


{

SqlCommand cmd = new SqlCommand("SELECT AddressID, City,


StateProvinceID FROM Person.Address", sqlConn);
sqlReader = cmd.ExecuteReader();

public override void CreateNewOutputRows()


{

while (sqlReader.Read())
{
{
MyAddressOutputBuffer.AddRow();
MyAddressOutputBuffer.AddressID =
sqlReader.GetInt32(0);
MyAddressOutputBuffer.City = sqlReader.GetString(1);
}
}

public override void PostExecute()


{

sqlReader.Close();

public override void ReleaseConnections()


{

connMgr.ReleaseConnection(sqlConn);

Exemple de source de fichier plat


Cet exemple montre un composant source qui utilise un gestionnaire de connexions de
fichiers plats existant pour charger les données d'un fichier plat dans le flux de données.
Vous pouvez créer des données sources de fichier plat en les exportant de SQL Server.

Si vous souhaitez exécuter cet exemple de code, vous devez configurer le package et le
composant comme suit :

1. Utilisez l’Assistant Importation et Exportation SQL Server pour exporter la table


Person.Address de l’exemple de base de données AdventureWorks dans un fichier
plat délimité par des virgules. Cet exemple utilise le nom de fichier
ExportedAddresses.txt.

2. Créez un gestionnaire de connexions de fichiers plats qui se connecte au fichier de


données exporté.

3. Ajoutez un nouveau composant Script à l'aire du concepteur de flux de données et


configurez-le en tant que source.

4. Ouvrez l' Éditeur de transformation de script. Dans la page Entrées et sorties ,


renommez la sortie par défaut avec un nom plus descriptif, tel que
MyAddressOutput. Ajoutez et configurez les deux colonnes de sortie, AddressID
et City.

5. Dans la page Gestionnaires de connexions , ajoutez ou créez le gestionnaire de


connexions de fichiers plats, en lui attribuant un nom descriptif, tel que
MyFlatFileSrcConnectionManager.

6. Dans la page Script , cliquez sur Modifier le script , puis entrez le script suivant.
Ensuite, fermez l'environnement de développement de script et l' Éditeur de
transformation de script.

7. Créez et configurez un composant de destination, comme une destination SQL


Server, ou l’exemple de composant de destination présenté dans Création d’une
destination avec le composant Script. Puis, connectez le composant source à la
destination. (Vous pouvez connecter directement une source à une destination
sans transformation.) Pour créer une table de destination, exécutez la commande
Transact-SQL suivante dans la base de données AdventureWorks :

SQL

CREATE TABLE [Person].[Address2]([AddressID] [int] NOT NULL,


[City] [nvarchar](30) NOT NULL)

8. Exécutez l’exemple.
VB

Imports System.IO
...
Public Class ScriptMain
Inherits UserComponent

Private textReader As StreamReader


Private exportedAddressFile As String

Public Overrides Sub AcquireConnections(ByVal Transaction As


Object)

Dim connMgr As IDTSConnectionManager100 = _


Me.Connections.MyFlatFileSrcConnectionManager
exportedAddressFile = _
CType(connMgr.AcquireConnection(Nothing), String)

End Sub

Public Overrides Sub PreExecute()


MyBase.PreExecute()
textReader = New StreamReader(exportedAddressFile)
End Sub

Public Overrides Sub CreateNewOutputRows()

Dim nextLine As String


Dim columns As String()

Dim delimiters As Char()


delimiters = ",".ToCharArray

nextLine = textReader.ReadLine
Do While nextLine IsNot Nothing
columns = nextLine.Split(delimiters)
With MyAddressOutputBuffer
.AddRow()
.AddressID = columns(0)
.City = columns(3)
End With
nextLine = textReader.ReadLine
Loop

End Sub

Public Overrides Sub PostExecute()


MyBase.PostExecute()
textReader.Close()

End Sub

End Class
C#

using System.IO;
public class ScriptMain:
UserComponent

{
private StreamReader textReader;
private string exportedAddressFile;

public override void AcquireConnections(object Transaction)


{

IDTSConnectionManager100 connMgr =
this.Connections.MyFlatFileSrcConnectionManager;
exportedAddressFile = (string)connMgr.AcquireConnection(null);

public override void PreExecute()


{
base.PreExecute();
textReader = new StreamReader(exportedAddressFile);
}

public override void CreateNewOutputRows()


{

string nextLine;
string[] columns;

char[] delimiters;
delimiters = ",".ToCharArray();

nextLine = textReader.ReadLine();
while (nextLine != null)
{
columns = nextLine.Split(delimiters);
{
MyAddressOutputBuffer.AddRow();
MyAddressOutputBuffer.AddressID = columns[0];
MyAddressOutputBuffer.City = columns[3];
}
nextLine = textReader.ReadLine();
}

public override void PostExecute()


{

base.PostExecute();
textReader.Close();
}

Voir aussi
Création d’une destination à l’aide du composant Script
Développement d’un composant source personnalisé
Création d'une transformation
synchrone à l'aide du composant Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous utilisez un composant de transformation dans le flux de données d’un package


Integration Services pour modifier et analyser les données acheminées de la source à la
destination. Une transformation à sorties synchrones traite chacune des lignes d'entrée
lorsqu'elles traversent le composant. Une transformation à sorties asynchrones patiente
jusqu'à ce qu'elle ait reçu toutes les lignes d'entrée pour achever son traitement. Cette
rubrique décrit une transformation synchrone. Pour plus d’informations sur les
transformations asynchrones, consultez Création d’une transformation asynchrone à
l’aide du composant Script. Pour plus d’informations sur la différence entre les
composants synchrones et asynchrones, consultez Présentation des transformations
synchrones et asynchrones.

Pour une vue d’ensemble du composant Script, consultez Extension du flux de données
avec le composant Script.

Le composant Script et le code d'infrastructure qu'il génère simplifient


considérablement le processus qui consiste à développer un composant de flux de
données personnalisé. Toutefois, pour comprendre le fonctionnement du composant
Script, il peut être utile de lire les étapes que vous devez suivre pour développer un
composant de flux de données personnalisé dans la section Développement d’un
composant de flux de données personnalisé et plus particulièrement dans
Développement d’un composant de transformation personnalisé à sorties synchrones.

Mise en route d'un composant de


transformation synchrone
Quand vous ajoutez un composant Script au volet Flux de données du concepteur SSIS,
la boîte de dialogue Sélectionner le type de composant de script s’ouvre et vous invite
à sélectionner un type de composant Source, Destination ou Transformation. Dans cette
boîte de dialogue, sélectionnez Transformation.

Configuration d'un composant de


transformation synchrone en mode Création
des métadonnées
Après avoir sélectionné l’option de création d’un composant de transformation,
configurez le composant dans l’Éditeur de transformation de script. Pour plus
d’informations, consultez Configuration du composant Script dans l’éditeur de
composant de script.

Pour définir le langage de script du composant Script, vous définissez la propriété


ScriptLanguage dans la page Script de l’Éditeur de transformation de script.

7 Notes

Pour définir le langage de script par défaut du composant Script, utilisez l’option
Langage de script dans la page Général de la boîte de dialogue Options. Pour plus
d’informations, consultez Page Général.

Un composant de transformation de flux de données possède une entrée et prend en


charge une ou plusieurs sorties. La configuration de l’entrée et des sorties du
composant est l’une des étapes à exécuter en mode Création des métadonnées, à l’aide
de l’Éditeur de transformation de script, avant d’écrire le script personnalisé.

Configuration de colonnes d'entrée


Un composant de transformation a une entrée.

Dans la page Colonnes d’entrée de l’Éditeur de transformation de script, la liste des


colonnes affiche les colonnes disponibles de la sortie du composant en amont du flux
de données. Sélectionnez les colonnes à transformer ou à passer. Marquez toutes les
colonnes que vous souhaitez transformer sur place comme accessibles en lecture/
écriture.

Pour plus d’informations sur la page Colonnes d’entrée de l’Éditeur de transformation


de script, consultez Éditeur de transformation de script (page Colonnes d’entrée).

Configuration des entrées, des sorties et des colonnes de


sortie
Un composant de transformation prend en charge une ou plusieurs sorties.

Dans la page Entrées et sorties de l’Éditeur de transformation de script, vous pouvez


noter qu’une seule sortie a été créée, mais qu’elle ne contient aucune colonne. Dans
cette page de l'éditeur, vous pouvez avoir besoin ou envie de configurer les éléments
suivants.

Créez une ou plusieurs sorties supplémentaires, telles qu'une sortie d'erreur


simulée pour les lignes qui contiennent des valeurs inattendues. Les boutons
Ajouter une sortie et Supprimer une sortie permettent de gérer les sorties du
composant de transformation synchrone. Toutes les lignes d'entrée sont dirigées
vers toutes les sorties disponibles sauf si vous indiquez que vous envisagez de
rediriger chaque ligne vers une sortie ou une autre. Pour indiquer que vous
envisagez de rediriger des lignes, vous spécifiez une valeur entière non nulle pour
la propriété ExclusionGroup des sorties. La valeur entière spécifique entrée dans
ExclusionGroup pour identifier les sorties n’est pas significative, mais vous devez
utiliser le même entier de manière cohérente pour le groupe spécifié de sorties.

7 Notes

Vous pouvez également utiliser une valeur de propriété ExclusionGroup non


nulle avec une sortie unique lorsque vous ne souhaitez pas générer des
sorties pour toutes les lignes. Toutefois, dans ce cas, vous devez appeler
explicitement la méthode DirectRowTo<tampon_mémoire_sortie> pour
chaque ligne que vous voulez envoyer à la sortie.

Attribuez un plus nom descriptif à l'entrée et aux sorties. Le composant Script


utilise ces noms pour générer les propriétés d'accesseur typées qui vous
permettent de référencer l'entrée et les sorties dans le script.

Laissez des colonnes inchangées pour les transformations synchrones. En général,


une transformation synchrone n'ajoute pas de colonnes au flux de données. Les
données sont modifiées sur place dans le tampon, et le tampon est transmis au
composant suivant dans le flux de données. Le cas échéant, vous n'avez pas à
ajouter et configurer explicitement des colonnes de sortie sur les sorties de la
transformation. Les sorties apparaissent dans l'éditeur sans aucune colonne définie
explicitement.

Ajoutez de nouvelles colonnes aux sorties d'erreur simulées pour les erreurs au
niveau des lignes. Normalement, plusieurs sorties dans le même ExclusionGroup
possèdent le même jeu de colonnes de sortie. Toutefois, si vous créez une sortie
d'erreur simulée, vous pouvez ajouter plus de colonnes pour contenir des
informations d'erreur. Pour plus d’informations sur la manière dont le moteur de
flux de données traite les lignes d’erreur, consultez Utilisation de sorties d’erreur
dans un composant de flux de données. Notez que, dans le composant Script, vous
devez écrire votre propre code pour remplir les colonnes supplémentaires à l'aide
des informations d'erreur appropriées. Pour plus d’informations, consultez
Simulation d’une sortie d’erreur pour le composant Script.

Pour plus d’informations sur la page Entrées et sorties de l’Éditeur de transformation


de script, consultez Éditeur de transformation de script (page Entrées et sorties).

Ajout de variables
Si vous voulez utiliser des variables existantes dans votre script, vous pouvez les ajouter
dans les champs de propriété ReadOnlyVariables et ReadWriteVariables de la page
Script de l’Éditeur de transformation de script.

Lorsque vous ajoutez plusieurs variables dans les champs de propriété, séparez les noms
de variables par des virgules. Vous pouvez également sélectionner plusieurs variables en
cliquant sur le bouton de sélection ( ... ) en regard des champs de propriété
ReadOnlyVariables et ReadWriteVariables, puis en sélectionnant les variables dans la
boîte de dialogue Sélectionner des variables.

Pour obtenir des informations générales sur l’utilisation de variables avec le composant
Script, consultez Utilisation de variables dans le composant Script.

Pour plus d’informations sur la page Script de l’Éditeur de transformation de script,


consultez Éditeur de transformation de script (page Script).

Script d'un composant de transformation


synchrone en mode Création du code
Après avoir configuré les métadonnées du composant, vous pouvez écrire votre script
personnalisé. Dans l’Éditeur de transformation de script, dans la page Script, cliquez
sur Modifier le script pour ouvrir l’environnement de développement intégré Microsoft
Visual Studio Tools for Applications (VSTA) où vous pouvez ajouter votre script
personnalisé. Le langage de script utilisé varie selon que vous avez sélectionné Microsoft
Visual Basic ou Microsoft Visual C# comme langage de script pour la propriété
ScriptLanguage dans la page Script.

Pour obtenir des informations importantes concernant tous les types de composants
créés à l’aide du composant Script, consultez Codage et débogage du composant Script.

Fonctionnement du code généré automatiquement


Lorsque vous ouvrez l’environnement de développement intégré VSTA après avoir créé
et configuré un composant de transformation, la classe ScriptMain modifiable apparaît
dans l’éditeur de code avec un stub pour la méthode ProcessInputRow. La classe
ScriptMain est l’emplacement où vous allez écrire votre code personnalisé et
ProcessInputRow est la méthode la plus importante d’un composant de transformation.

Si vous ouvrez la fenêtre Explorateur de projets dans VSTA, vous constatez que le
composant Script a également généré des éléments de projet BufferWrapper et
ComponentWrapper en lecture seule. La classe ScriptMain hérite de la classe
UserComponent dans l’élément de projet ComponentWrapper.

Au moment de l’exécution, le moteur de flux de données appelle la méthode


ProcessInput dans la classe UserComponent, qui remplace la méthode ProcessInput de
la classe parente ScriptComponent. La méthode ProcessInput parcourt à son tour les
lignes du tampon d’entrée et appelle la méthode ProcessInputRow une fois pour
chaque ligne.

Écriture du code personnalisé


Un composant de transformation à sorties synchrones constitue le plus simple à écrire
de tous les composants de flux de données. Par exemple, l'exemple à sortie unique
présenté ultérieurement dans cette rubrique se compose du code personnalisé suivant :

VB

Row.City = UCase(Row.City)

C#

Row.City = (Row.City).ToUpper();

Pour achever la création d’un composant de transformation synchrone personnalisé,


vous devez utiliser la méthode ProcessInputRow remplacée pour transformer les
données dans chaque ligne du tampon d’entrée. Le moteur de flux de données passe ce
tampon, lorsqu'il est complet, au composant suivant dans le flux de données.

Selon vos besoins, vous voudrez également écrire le script dans les méthodes
PreExecute et PostExecute disponibles dans la classe ScriptMain pour effectuer tout
traitement préliminaire ou final.

Utilisation de plusieurs sorties


La direction de lignes d'entrée vers l'une de deux sorties possibles ne requiert pas
beaucoup plus de code personnalisé que le scénario de la sortie unique présenté
précédemment. Par exemple, l'exemple à deux sorties présenté ultérieurement dans
cette rubrique se compose du code personnalisé suivant :

VB

Row.City = UCase(Row.City)
If Row.City = "REDMOND" Then
Row.DirectRowToMyRedmondAddresses()
Else
Row.DirectRowToMyOtherAddresses()
End If

C#

Row.City = (Row.City).ToUpper();

if (Row.City=="REDMOND")
{
Row.DirectRowToMyRedmondAddresses();
}
else
{
Row.DirectRowToMyOtherAddresses();
}

Dans cet exemple, le composant Script génère les méthodes


DirectRowTo<tampon_mémoire_sortieX> pour vous, selon les noms des sorties que
vous avez configurées. Vous pouvez utiliser un code similaire pour diriger des lignes
d'erreur vers une sortie d'erreur simulée.

Exemples
Ces exemples présentent le code personnalisé requis dans la classe ScriptMain pour
créer un composant de transformation synchrone.

7 Notes

Ces exemples utilisent la table Person.Address de l’exemple de base de données


AdventureWorks et passent ses première et quatrième colonnes (à savoir les
colonnes intAddressID et nvarchar(30)City) dans le flux de données. Les mêmes
données sont utilisées dans les exemples de source, transformation et destination
de cette section. Des conditions préalables et des hypothèses supplémentaires sont
documentées pour chaque exemple.

Exemple de transformation synchrone à sortie unique


Cet exemple présente un composant de transformation synchrone à sortie unique. Cette
transformation passe la colonne AddressID et convertit la colonne City en majuscules.

Si vous souhaitez exécuter cet exemple de code, vous devez configurer le package et le
composant comme suit :

1. Ajoutez un nouveau composant Script à l'aire du concepteur de flux de données et


configurez-le en tant que transformation.

2. Connectez la sortie d’une source ou d’une autre transformation au nouveau


composant de transformation dans le concepteur SSIS. Cette sortie doit fournir les
données de la table Person.Address de l’exemple de base de données
AdventureWorks qui contient les colonnes AddressID et City.

3. Ouvrez l' Éditeur de transformation de script. Dans la page Colonnes d’entrée,


sélectionnez les colonnes AddressID et City. Marquez la colonne City comme
accessible en lecture/écriture.

4. Dans la page Entrées et sorties, renommez l’entrée et la sortie en leur attribuant


des noms plus descriptifs, comme MyAddressInput et MyAddressOutput. Notez
que la propriété SynchronousInputID de la sortie correspond à la propriété ID de
l’entrée. Par conséquent, vous n'avez pas à ajouter et configurer des colonnes de
sortie.

5. Dans la page Script , cliquez sur Modifier le script , puis entrez le script suivant.
Ensuite, fermez l'environnement de développement de script et l' Éditeur de
transformation de script.

6. Créez et configurez un composant de destination qui attend les colonnes


AddressID et City, comme une destination SQL Server, ou l’exemple de composant
de destination montré dans Création d’une destination avec le composant Script.
Connectez ensuite la sortie de la transformation au composant de destination.
Vous pouvez créer une table de destination en exécutant la commande Transact-
SQL suivante dans la base de données AdventureWorks :

SQL
CREATE TABLE [Person].[Address2]([AddressID] [int] NOT NULL,
[City] [nvarchar](30) NOT NULL)

7. Exécutez l’exemple.

VB

Public Class ScriptMain


Inherits UserComponent

Public Overrides Sub MyAddressInput_ProcessInputRow(ByVal Row As


MyAddressInputBuffer)

Row.City = UCase(Row.City)

End Sub

End Class

C#

public class ScriptMain:


UserComponent

{
public override void MyAddressInput_ProcessInputRow(MyAddressInputBuffer
Row)
{

Row.City = (Row.City).ToUpper();

Exemple de transformation synchrone à deux sorties


Cet exemple présente un composant de transformation synchrone à deux sorties. Cette
transformation passe la colonne AddressID et convertit la colonne City en majuscules. Si
le nom de la ville est Redmond, l'exemple dirige la ligne vers une seule sortie ; il dirige
toutes les autres lignes vers une autre sortie.

Si vous souhaitez exécuter cet exemple de code, vous devez configurer le package et le
composant comme suit :
1. Ajoutez un nouveau composant Script à l'aire du concepteur de flux de données et
configurez-le en tant que transformation.

2. Connectez la sortie d’une source ou d’une autre transformation au nouveau


composant de transformation dans le concepteur SSIS. Cette sortie doit fournir les
données de la table Person.Address de l’exemple de base de données
AdventureWorks qui contient au moins les colonnes AddressID et City.

3. Ouvrez l' Éditeur de transformation de script. Dans la page Colonnes d’entrée,


sélectionnez les colonnes AddressID et City. Marquez la colonne City comme
accessible en lecture/écriture.

4. Dans la page Entrées et sorties, créez une seconde sortie. Après avoir ajouté la
nouvelle sortie, assurez-vous de définir sa propriété SynchronousInputID sur la
propriété ID de l’entrée. Cette propriété est déjà définie sur la première sortie,
créée par défaut. Pour chaque de sortie, définissez la propriété ExclusionGroup sur
la même valeur différente de zéro pour indiquer que vous fractionnerez les lignes
d’entrée entre deux sorties mutuellement exclusives. Il n'est pas nécessaire
d'ajouter des colonnes de sortie aux sorties.

5. Renommez l’entrée et les sorties en leur attribuant des noms plus descriptifs, tels
que MyAddressInput, MyRedmondAddresses et MyOtherAddresses.

6. Dans la page Script , cliquez sur Modifier le script , puis entrez le script suivant.
Ensuite, fermez l'environnement de développement de script et l' Éditeur de
transformation de script.

7. Créez et configurez deux composants de destination qui attendent les colonnes


AddressID et City, comme une destination SQL Server, une destination de fichier
plat, ou l’exemple de composant de destination montré dans Création d’une
destination avec le composant Script. Puis connectez chacune des sorties de la
transformation à l'un des composants de destination. Vous pouvez créer des tables
de destination en exécutant une commande Transact-SQL similaire à la suivante
(avec des noms de tables uniques) dans la base de données AdventureWorks :

SQL

CREATE TABLE [Person].[Address2](


[AddressID] [int] NOT NULL,
[City] [nvarchar](30) NOT NULL

8. Exécutez l’exemple.

VB
Public Class ScriptMain
Inherits UserComponent

Public Overrides Sub MyAddressInput_ProcessInputRow(ByVal Row As


MyAddressInputBuffer)

Row.City = UCase(Row.City)

If Row.City = "REDMOND" Then


Row.DirectRowToMyRedmondAddresses()
Else
Row.DirectRowToMyOtherAddresses()
End If

End Sub

End Class

C#

public class ScriptMain:


UserComponent

public override void MyAddressInput_ProcessInputRow(MyAddressInputBuffer


Row)
{

Row.City = (Row.City).ToUpper();

if (Row.City == "REDMOND")
{
Row.DirectRowToMyRedmondAddresses();
}
else
{
Row.DirectRowToMyOtherAddresses();
}

}
}

Voir aussi
Présentation des transformations synchrones et asynchrones
Création d’une transformation asynchrone à l’aide du composant Script
Développement d’un composant de transformation personnalisé avec des sorties
synchrones
Création d'une transformation
asynchrone à l'aide du composant Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous utilisez un composant de transformation dans le flux de données d’un package


Integration Services pour modifier et analyser les données acheminées de la source à la
destination. Une transformation à sorties synchrones traite chacune des lignes d'entrée
lorsqu'elles traversent le composant. Une transformation à sorties asynchrones peut
attendre d’avoir reçu toutes les lignes d’entrée avant de procéder au traitement des
données, ou elle peut exporter certaines lignes avant d’avoir reçu toutes les lignes
d’entrée. Cette rubrique examine une transformation asynchrone. Si votre traitement
requiert une transformation synchrone, consultez Création d’une transformation
synchrone à l’aide du composant Script. Pour plus d’informations sur la différence entre
les composants synchrones et asynchrones, consultez Présentation des transformations
synchrones et asynchrones.

Pour une vue d’ensemble du composant Script, consultez Extension du flux de données
avec le composant Script.

Le composant Script et le code d'infrastructure qu'il génère simplifient le processus qui


consiste à développer un composant de flux de données personnalisé. Toutefois, pour
comprendre le fonctionnement du composant Script, il peut être utile de lire les étapes
que vous devez suivre pour développer un composant de flux de données personnalisé
dans la section Développement d’un composant de flux de données personnalisé et plus
particulièrement dans Développement d’un composant de transformation personnalisé
à sorties synchrones.

Mise en route d'un composant de


transformation asynchrone
Lorsque vous ajoutez un composant Script à l’onglet Flux de données du concepteur
SSIS, la boîte de dialogue Sélectionner le type de composant de script s’affiche et vous
invite à préconfigurer le composant en tant que source, transformation ou destination.
Dans cette boîte de dialogue, sélectionnez Transformation.
Configuration d'un composant de
transformation asynchrone en mode Création
de métadonnées
Après avoir sélectionné l’option de création d’un composant de transformation,
configurez le composant dans l’Éditeur de transformation de script. Pour plus
d’informations, consultez Configuration du composant Script dans l’éditeur de
composant de script.

Pour sélectionner le langage de script qui sera utilisé par le composant Script, vous
devez définir la propriété ScriptLanguage dans la page Script de la boîte de dialogue
Éditeur de transformation de script.

7 Notes

Pour définir le langage de script par défaut du composant Script, utilisez l’option
Langage de script dans la page Général de la boîte de dialogue Options. Pour plus
d'informations, consultez General Page.

Un composant de transformation de flux de données possède une entrée et prend en


charge une ou plusieurs sorties. La configuration de l’entrée et des sorties du
composant est l’une des étapes à exécuter en mode Création des métadonnées, à l’aide
de l’Éditeur de transformation de script, avant d’écrire le script personnalisé.

Configuration de colonnes d'entrée


Un composant de transformation créé à l'aide du composant Script possède une seule
entrée.

Dans la page Colonnes d’entrée de l’Éditeur de transformation de script, la liste des


colonnes affiche les colonnes disponibles dans la sortie du composant en amont du flux
de données. Sélectionnez les colonnes à transformer ou à passer. Marquez toutes les
colonnes que vous souhaitez transformer sur place comme accessibles en lecture/
écriture.

Pour plus d’informations sur la page Colonnes d’entrée de l’Éditeur de transformation


de script, consultez Éditeur de transformation de script (page Colonnes d’entrée).

Configuration des entrées, des sorties et des colonnes de


sortie
Un composant de transformation prend en charge une ou plusieurs sorties.

Généralement, une transformation à sorties asynchrones possède deux sorties. Par


exemple, lorsque vous comptez le nombre d'adresses situées dans une ville spécifique,
vous pouvez transférer les données d'adresse à une sortie, tout en envoyant le résultat
de l'agrégation à une autre sortie. La sortie d'agrégation requiert également une
nouvelle colonne de sortie.

Dans la page Entrées et sorties de l’Éditeur de transformation de script, vous pouvez


noter qu’une seule sortie a été créée par défaut, mais qu’aucune colonne de sortie n’a
été créée. Dans cette page de l'éditeur, vous pouvez configurer les éléments suivants :

Vous pouvez créer une ou plusieurs sorties supplémentaires, telles qu'une sortie
pour le résultat d'une agrégation. Les boutons Ajouter une sortie et Supprimer
une sortie permettent de gérer les sorties du composant de transformation
asynchrone. Attribuez la valeur zéro à la propriété SynchronousInputID de chaque
sortie pour indiquer que la sortie ne fait pas que transférer les données depuis un
composant en amont ou les transformer sur place dans les lignes et colonnes
existantes. C'est ce paramètre qui rend les sorties asynchrones par rapport à
l'entrée.

Vous pouvez assigner un nom convivial à l'entrée et aux sorties. Le composant


Script utilise ces noms pour générer les propriétés d'accesseur typées qui vous
permettent de référencer l'entrée et les sorties dans le script.

Généralement, une transformation asynchrone ajoute des colonnes au flux de


données. Lorsque la valeur zéro est attribuée à la propriété SynchronousInputID
d’une sortie, ce qui indique que la sortie ne fait pas que transférer les données
depuis un composant en amont ou les transformer sur place dans les lignes et
colonnes existantes, vous devez ajouter et configurer des colonnes de sortie de
manière explicite sur la sortie. Les colonnes de sortie ne portent pas le même nom
que les colonnes d'entrée auxquelles elles sont mappées.

Vous pouvez ajouter d'autres colonnes pour contenir des informations


supplémentaires. Vous devez écrire votre propre code pour remplir les colonnes
supplémentaires de données. Pour plus d’informations sur la reproduction du
comportement d’une sortie d’erreur standard, consultez Simulation d’une sortie
d’erreur pour le composant Script.

Pour plus d’informations sur la page Entrées et sorties de l’Éditeur de transformation


de script, consultez Éditeur de transformation de script (page Entrées et sorties).

Ajout de variables
S'il existe des variables dont vous souhaitez utiliser les valeurs dans votre script, vous
pouvez les ajouter dans les champs de propriété ReadOnlyVariables et
ReadWriteVariables dans la page Script de l' Éditeur de transformation de script.

Lorsque vous ajoutez plusieurs variables dans les champs de propriété, séparez les noms
de variables par des virgules. Vous pouvez également sélectionner plusieurs variables en
cliquant sur le bouton de sélection ( ... ) en regard des champs de propriété
ReadOnlyVariables et ReadWriteVariables, puis en sélectionnant les variables dans la
boîte de dialogue Sélectionner des variables.

Pour obtenir des informations générales sur l’utilisation de variables avec le composant
Script, consultez Utilisation de variables dans le composant Script.

Pour plus d’informations sur la page Script de l’Éditeur de transformation de script,


consultez Éditeur de transformation de script (page Script).

Script d'un composant de transformation


asynchrone en mode Création de code
Après avoir configuré toutes les métadonnées du composant, vous pouvez écrire votre
script personnalisé. Dans l’Éditeur de transformation de script, dans la page Script,
cliquez sur Modifier le script pour ouvrir l’environnement de développement intégré
Microsoft Visual Studio Tools for Applications (VSTA) où vous pouvez ajouter votre script
personnalisé. Le langage de script utilisé varie selon que vous avez sélectionné Microsoft
Visual Basic ou Microsoft Visual C# comme langage de script pour la propriété
ScriptLanguage dans la page Script.

Pour obtenir des informations importantes concernant tous les types de composants
créés à l’aide du composant Script, consultez Codage et débogage du composant Script.

Fonctionnement du code généré automatiquement


Lorsque vous ouvrez l’environnement de développement intégré VSTA après avoir créé
et configuré un composant de transformation, la classe ScriptMain modifiable apparaît
dans l’éditeur de code avec les stubs des méthodes ProcessInputRow et the
CreateNewOutputRows. La classe ScriptMain est l’emplacement où vous allez écrire
votre code personnalisé et ProcessInputRow est la méthode la plus importante d’un
composant de transformation. La méthode CreateNewOutputRows, plus généralement
utilisée dans un composant source, s’apparente à une transformation asynchrone dans
la mesure où les deux composants doivent créer leurs propres lignes de sortie.
Si vous ouvrez la fenêtre VSTA Explorateur de projets, vous constatez que le composant
Script a également généré des éléments de projet BufferWrapper et
ComponentWrapper en lecture seule. La classe ScriptMain hérite de la classe
UserComponent dans l’élément de projet ComponentWrapper.

Au moment de l’exécution, le moteur de flux de données appelle la méthode


PrimeOutput dans la classe UserComponent, qui remplace la méthode PrimeOutput de
la classe parente ScriptComponent. La méthode PrimeOutput appelle à son tour la
méthode CreateNewOutputRows.

Le moteur de flux de données appelle ensuite la méthode ProcessInput dans la classe


UserComponent, qui remplace la méthode ProcessInput de la classe parente
ScriptComponent. La méthode ProcessInput parcourt à son tour les lignes du tampon
d’entrée et appelle la méthode ProcessInputRow une fois pour chaque ligne.

Écriture du code personnalisé


Pour achever la création d’un composant de transformation asynchrone personnalisé,
vous devez appliquer la méthode ProcessInputRow remplacée pour traiter les données
dans chaque ligne de la mémoire tampon d’entrée. Comme les sorties ne sont pas
synchrones avec l'entrée, vous devez écrire explicitement des lignes de données dans les
sorties.

Dans une transformation asynchrone, vous pouvez utiliser la méthode AddRow pour
ajouter des lignes à la sortie appropriée à partir des méthodes ProcessInputRow ou
ProcessInput. Il est inutile d’utiliser la méthode CreateNewOutputRows. Si vous écrivez
une seule ligne de résultats, comme des résultats d’agrégation, dans une sortie
particulière, vous pouvez créer au préalable la ligne de sortie à l’aide de la méthode
CreateNewOutputRows et spécifier ses valeurs ultérieurement après avoir traité toutes
les lignes d’entrée. Toutefois, il est inutile de créer plusieurs lignes dans la méthode
CreateNewOutputRows car le composant Script ne vous permet d’utiliser que la ligne en
cours dans une entrée ou une sortie. La méthode CreateNewOutputRows est plus
importante dans un composant source où il n’existe pas de ligne d’entrée à traiter.

Vous pouvez également remplacer la méthode ProcessInput elle-même, afin d’effectuer


d’autres traitements préliminaires ou finaux avant ou après avoir parcouru la mémoire
tampon d’entrée et appelé la méthode ProcessInputRow pour chaque ligne. Par
exemple, l’un des exemples de code de cette rubrique substitue ProcessInput pour
compter le nombre d’adresses dans une ville spécifique tandis que ProcessInputRow
parcourt les lignes**.** L’exemple écrit la valeur de synthèse dans la deuxième sortie une
fois que toutes les lignes ont été traitées. L’exemple exécute l’opération de sortie dans
ProcessInput car les mémoires tampons de sortie ne sont plus disponibles lorsque la
méthode PostExecute est appelée.

Selon vos besoins, vous voudrez également écrire le script dans les méthodes
PreExecute et PostExecute disponibles dans la classe ScriptMain pour effectuer tout
traitement préliminaire ou final.

7 Notes

Si vous développez un composant de flux de données personnalisé entièrement


nouveau, il est important de remplacer la méthode PrimeOutput pour mettre en
cache les références aux mémoires tampons de sortie afin de pouvoir ajouter des
lignes de données aux mémoires tampons ultérieurement. Dans le composant
Script, cette opération n’est pas nécessaire car vous disposez d’une classe générée
automatiquement qui représente chaque mémoire tampon de sortie dans l’élément
de projet BufferWrapper.

Exemple
Cet exemple présente le code personnalisé requis dans la classe ScriptMain pour créer
un composant de transformation asynchrone.

7 Notes

Ces exemples utilisent la table Person.Address de l’exemple de base de données


AdventureWorks et passent ses première et quatrième colonnes (à savoir les
colonnes intAddressID et nvarchar(30)City) dans le flux de données. Les mêmes
données sont utilisées dans les exemples de source, transformation et destination
de cette section. Des conditions préalables et des hypothèses supplémentaires sont
documentées pour chaque exemple.

Cet exemple présente un composant de transformation asynchrone à deux sorties. Cette


transformation transfère les colonnes AddressID et City dans une sortie, tout en
comptant le nombre d’adresses situées dans une ville spécifique (Redmond,
Washington, États-Unis), puis elle exporte la valeur obtenue vers une deuxième sortie.

Si vous souhaitez exécuter cet exemple de code, vous devez configurer le package et le
composant comme suit :
1. Ajoutez un nouveau composant Script à l'aire du concepteur de flux de données et
configurez-le en tant que transformation.

2. Connectez la sortie d'une source ou d'une autre transformation au nouveau


composant de transformation dans le concepteur. Cette sortie doit fournir les
données de la table Person.Address de l’exemple de base de données
AdventureWorks qui contient au moins les colonnes AddressID et City.

3. Ouvrez l' Éditeur de transformation de script. Dans la page Colonnes d’entrée,


sélectionnez les colonnes AddressID et City.

4. Dans la page Entrées et sorties, ajoutez et configurez les colonnes de sortie


AddressID et City sur la première sortie. Ajoutez une deuxième sortie, puis ajoutez
sur cette dernière une colonne de sortie pour la valeur résumée. Attribuez la
valeur 0 à la propriété SynchronousInputID de la première sortie, car cet exemple
copie explicitement chaque ligne d'entrée vers la première sortie. La propriété
SynchronousInputID de la sortie récemment créée a déjà la valeur 0.

5. Renommez l'entrée, les sorties et la nouvelle colonne de sortie avec des noms plus
descriptifs. L’exemple utilise le nom MyAddressInput pour l’entrée, les noms
MyAddressOutput et MySummaryOutput pour les sorties et le nom
MyRedmondCount pour la colonne de sortie sur la deuxième sortie.

6. Dans la page Script , cliquez sur Modifier le script , puis entrez le script suivant.
Ensuite, fermez l'environnement de développement de script et l' Éditeur de
transformation de script.

7. Créez et configurez un composant de destination pour la première sortie qui


attend les colonnes AddressID et City, comme une destination SQL Server ou
l’exemple de composant de destination présenté dans Création d’une destination à
l’aide du composant Script. Connectez ensuite la première sortie de la
transformation, MyAddressOutput, au composant de destination. Vous pouvez
créer une table de destination en exécutant la commande Transact-SQL suivante
dans la base de données AdventureWorks :

SQL

CREATE TABLE [Person].[Address2]([AddressID] [int] NOT NULL,


[City] [nvarchar](30) NOT NULL)

8. Créez et configurez un autre composant de destination pour la deuxième sortie.


Puis connectez la deuxième sortie de la transformation, MySummaryOutput, au
composant de destination. Comme la deuxième sortie écrit une seule ligne avec
une seule valeur, vous pouvez configurer facilement une destination à l'aide d'un
gestionnaire de connexions de fichiers plats qui se connecte à un nouveau fichier
contenant une seule colonne. Dans l’exemple, cette colonne de destination est
nommée MyRedmondCount.

9. Exécutez l’exemple.

VB

Public Class ScriptMain


Inherits UserComponent

Private myRedmondAddressCount As Integer

Public Overrides Sub CreateNewOutputRows()

MySummaryOutputBuffer.AddRow()

End Sub

Public Overrides Sub MyAddressInput_ProcessInput(ByVal Buffer As


MyAddressInputBuffer)

While Buffer.NextRow()
MyAddressInput_ProcessInputRow(Buffer)
End While

If Buffer.EndOfRowset Then
MyAddressOutputBuffer.SetEndOfRowset()
MySummaryOutputBuffer.MyRedmondCount = myRedmondAddressCount
MySummaryOutputBuffer.SetEndOfRowset()
End If

End Sub

Public Overrides Sub MyAddressInput_ProcessInputRow(ByVal Row As


MyAddressInputBuffer)

With MyAddressOutputBuffer
.AddRow()
.AddressID = Row.AddressID
.City = Row.City
End With

If Row.City.ToUpper = "REDMOND" Then


myRedmondAddressCount += 1
End If

End Sub

End Class
C#

public class ScriptMain:


UserComponent

{
private int myRedmondAddressCount;

public override void CreateNewOutputRows()


{

MySummaryOutputBuffer.AddRow();

public override void MyAddressInput_ProcessInput(MyAddressInputBuffer


Buffer)
{

while (Buffer.NextRow())
{
MyAddressInput_ProcessInputRow(Buffer);
}

if (Buffer.EndOfRowset())
{
MyAddressOutputBuffer.SetEndOfRowset();
MySummaryOutputBuffer.MyRedmondCount = myRedmondAddressCount;
MySummaryOutputBuffer.SetEndOfRowset();
}

public override void MyAddressInput_ProcessInputRow(MyAddressInputBuffer


Row)
{

{
MyAddressOutputBuffer.AddRow();
MyAddressOutputBuffer.AddressID = Row.AddressID;
MyAddressOutputBuffer.City = Row.City;
}

if (Row.City.ToUpper() == "REDMOND")
{
myRedmondAddressCount += 1;
}

}
Voir aussi
Présentation des transformations synchrones et asynchrones
Création d'une transformation synchrone à l'aide du composant Script
Développement d'un composant de transformation personnalisé à sorties asynchrones
Création d'une destination à l'aide du
composant Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les composants de destination dans le flux de données d'un package Integration


Services permettent d'enregistrer des données provenant de sources et de
transformations en amont dans une source de données. En principe, le composant de
destination se connecte à la source de données via un gestionnaire de connexions
existant.

Pour une vue d’ensemble du composant Script, consultez Extension du flux de données
avec le composant Script.

Le composant Script et le code d'infrastructure qu'il génère simplifient


considérablement le processus qui consiste à développer un composant de flux de
données personnalisé. Toutefois, pour comprendre le fonctionnement du composant
Script, il peut être utile de lire les étapes permettant de développer des composants de
flux de données personnalisés dans la section Développement d’un composant de flux
de données personnalisé et plus particulièrement Développement d’un composant de
destination personnalisé.

Mise en route d'un composant de destination


Lorsque vous ajoutez un composant Script à l’onglet Flux de données du concepteur
SSIS, la boîte de dialogue Sélectionner le type de composant de script s’ouvre et vous
invite à sélectionner un script de type Source, Destination ou Transformation. Dans
cette boîte de dialogue, sélectionnez Destination.

Ensuite, connectez la sortie d'une transformation au composant de destination dans le


concepteur SSIS. À des fins de test, vous pouvez connecter directement une source à
une destination sans transformation.

Configuration d'un composant de destination


en mode Création de métadonnées
Après avoir sélectionné l’option de création d’un composant de destination, configurez
le composant dans l’Éditeur de transformation de script. Pour plus d’informations,
consultez Configuration du composant Script dans l’éditeur de composant de script.

Pour sélectionner le langage de script qui sera utilisé par le composant Script, vous
devez définir la propriété ScriptLanguage dans la page Script de la boîte de dialogue
Éditeur de transformation de script.

7 Notes

Pour définir le langage de script par défaut du composant Script, utilisez l’option
Langage de script dans la page Général de la boîte de dialogue Options. Pour plus
d'informations, consultez General Page.

Un composant de destination de flux de données possède une entrée et aucune sortie.


La configuration de l’entrée du composant est l’une des étapes à exécuter en mode
Création des métadonnées, à l’aide de l’Éditeur de transformation de script, avant
d’écrire le script personnalisé.

Ajout de gestionnaires de connexions


En principe, une composant de destination utilise un gestionnaire de connexions
existant pour se connecter à la source de données dans laquelle il enregistre les
données du flux de données. Dans la page Gestionnaires de connexions de l' Éditeur de
transformation de script, cliquez sur Ajouter pour ajouter le gestionnaire de connexions
approprié.

Toutefois, un gestionnaire de connexions n'est qu'une unité pratique qui permet


d'encapsuler et de stocker les informations requises pour se connecter à une source de
données d'un type particulier. Vous devez écrire votre propre code personnalisé pour
charger ou enregistrer vos données et éventuellement ouvrir et fermer la connexion à la
source de données.

Pour obtenir des informations générales sur l’utilisation des gestionnaires de connexions
avec le composant Script, consultez Connexion aux sources de données dans le
composant Script.

Pour plus d’informations sur la page Gestionnaires de connexions de l’Éditeur de


transformation de script, consultez Éditeur de transformation de script (page
Gestionnaires de connexions).

Configuration d'entrées et de colonnes d'entrée


Un composant de destination possède une entrée et aucune sortie.
Dans la page Colonnes d’entrée de l’Éditeur de transformation de script, la liste des
colonnes affiche les colonnes disponibles dans la sortie du composant en amont du flux
de données. Sélectionnez les colonnes à enregistrer.

Pour plus d’informations sur la page Colonnes d’entrée de l’Éditeur de transformation


de script, consultez Éditeur de transformation de script (page Colonnes d’entrée).

La page Entrées et sorties de l’Éditeur de transformation de script affiche une seule


entrée que vous pouvez renommer. La propriété d'accesseur créée dans le code généré
automatiquement vous permet de référencer l'entrée dans le script par son nom.

Pour plus d’informations sur la page Entrées et sorties de l’Éditeur de transformation


de script, consultez Éditeur de transformation de script (page Entrées et sorties).

Ajout de variables
Si vous voulez utiliser des variables existantes dans votre script, vous pouvez les ajouter
dans les champs de propriété ReadOnlyVariables et ReadWriteVariables de la page
Script de l’Éditeur de transformation de script.

Lorsque vous ajoutez plusieurs variables dans les champs de propriété, séparez les noms
de variables par des virgules. Vous pouvez également sélectionner plusieurs variables en
cliquant sur le bouton de sélection ( ... ) en regard des champs de propriété
ReadOnlyVariables et ReadWriteVariables, puis en sélectionnant les variables dans la
boîte de dialogue Sélectionner des variables.

Pour obtenir des informations générales sur l’utilisation de variables avec le composant
Script, consultez Utilisation de variables dans le composant Script.

Pour plus d’informations sur la page Script de l’Éditeur de transformation de script,


consultez Éditeur de transformation de script (page Script).

Script d'un composant de destination en mode


Création de code
Après avoir configuré les métadonnées du composant, vous pouvez écrire votre script
personnalisé. Dans l’Éditeur de transformation de script, dans la page Script, cliquez
sur Modifier le script pour ouvrir l’environnement de développement intégré Microsoft
Visual Studio Tools for Applications (VSTA) où vous pouvez ajouter votre script
personnalisé. Le langage de script utilisé varie selon que vous avez sélectionné Microsoft
Visual Basic ou Microsoft Visual C# comme langage de script pour la propriété
ScriptLanguage dans la page Script.
Pour obtenir des informations importantes concernant tous les types de composants
créés à l’aide du composant Script, consultez Codage et débogage du composant Script.

Fonctionnement du code généré automatiquement


Lorsque vous ouvrez l’environnement de développement intégré VSTA après avoir créé
et configuré un composant de destination, la classe ScriptMain modifiable apparaît
dans l’éditeur de code avec un stub pour la méthode ProcessInputRow. La classe
ScriptMain est l’emplacement où vous allez écrire votre code personnalisé et
ProcessInputRow est la méthode la plus importante d’un composant de destination.

Si vous ouvrez la fenêtre Explorateur de projets dans VSTA, vous constatez que le
composant Script a également généré des éléments de projet BufferWrapper et
ComponentWrapper en lecture seule. La classe ScriptMain hérite de la classe
UserComponent dans l'élément de projet ComponentWrapper .

Au moment de l’exécution, le moteur de flux de données appelle la méthode


ProcessInput dans la classe UserComponent, qui remplace la méthode ProcessInput de
la classe parente ScriptComponent. La méthode ProcessInput parcourt à son tour les
lignes du tampon d’entrée et appelle la méthode ProcessInputRow une fois pour
chaque ligne.

Écriture du code personnalisé


Pour terminer la création d’un composant de destination personnalisé, vous pouvez
écrire le script dans les méthodes suivantes disponibles dans la classe ScriptMain.

1. Substituez la méthode AcquireConnections pour vous connecter à la source de


données externe. Extrayez l'objet de connexion, ou les informations de connexion
requises, du gestionnaire de connexions.

2. Remplacez la méthode PreExecute pour préparer l’enregistrement des données.


Par exemple, vous pouvez créer et configurer un objet SqlCommand et ses
paramètres dans cette méthode.

3. Utilisez la méthode ProcessInputRow remplacée pour copier chaque ligne d’entrée


dans la source de données externe. Par exemple, pour une destination SQL Server,
vous pouvez copier les valeurs de colonne dans les paramètres d’un objet
SqlCommand et exécuter la commande une fois pour chaque ligne. Pour une
destination de fichier plat, vous pouvez écrire les valeurs de chaque colonne dans
un objet StreamWriter, en séparant les valeurs par le délimiteur de colonne.
4. Remplacez la méthode PostExecute pour vous déconnecter de la source de
données externe, le cas échéant, et pour effectuer toute autre opération de
nettoyage nécessaire.

Exemples
Les exemples suivants présentent le code requis dans la classe ScriptMain pour créer un
composant de destination.

7 Notes

Ces exemples utilisent la table Person.Address de l’exemple de base de données


AdventureWorks et passent ses première et quatrième colonnes (à savoir les
colonnes intAddressID et nvarchar(30)City) dans le flux de données. Les mêmes
données sont utilisées dans les exemples de source, transformation et destination
de cette section. Des conditions préalables et des hypothèses supplémentaires sont
documentées pour chaque exemple.

Exemple de destination ADO.NET


Cet exemple montre un composant de destination qui utilise un gestionnaire de
connexions ADO.NET existant pour enregistrer des données du flux de données dans
une table SQL Server.

Si vous souhaitez exécuter cet exemple de code, vous devez configurer le package et le
composant comme suit :

1. Créez un gestionnaire de connexions ADO.NET qui utilise le fournisseur SqlClient


pour se connecter à la base de données AdventureWorks.

2. Créez une table de destination en exécutant la commande Transact-SQL suivante


dans la base de données AdventureWorks :

SQL

CREATE TABLE [Person].[Address2]([AddressID] [int] NOT NULL,


[City] [nvarchar](30) NOT NULL)

3. Ajoutez un nouveau composant Script à l'aire du concepteur de flux de données et


configurez-le en tant que destination.
4. Connectez la sortie d'une source ou transformation en amont au composant de
destination dans le concepteur SSIS. (Vous pouvez connecter directement une
source à une destination sans transformation.) Cette sortie doit fournir les données
de la table Person.Address de l’exemple de base de données AdventureWorks qui
contient au moins les colonnes AddressID et City.

5. Ouvrez l' Éditeur de transformation de script. Dans la page Colonnes d’entrée,


sélectionnez les colonnes d’entrée AddressID et City.

6. Dans la page Entrées et sorties, renommez l’entrée en lui attribuant un nom plus
descriptif, comme MyAddressInput.

7. Dans la page Gestionnaires de connexions, ajoutez ou créez le gestionnaire de


connexions ADO.NET et attribuez-lui un nom, par exemple
MyADONETConnectionManager.

8. Dans la page Script , cliquez sur Modifier le script , puis entrez le script suivant.
Ensuite, fermez l'environnement de développement de script.

9. Fermez l’Éditeur de transformation de script et exécutez l’exemple.

VB

Imports System.Data.SqlClient
...
Public Class ScriptMain
Inherits UserComponent

Dim connMgr As IDTSConnectionManager100


Dim sqlConn As SqlConnection
Dim sqlCmd As SqlCommand
Dim sqlParam As SqlParameter

Public Overrides Sub AcquireConnections(ByVal Transaction As Object)

connMgr = Me.Connections.MyADONETConnectionManager
sqlConn = CType(connMgr.AcquireConnection(Nothing), SqlConnection)

End Sub

Public Overrides Sub PreExecute()

sqlCmd = New SqlCommand("INSERT INTO Person.Address2(AddressID,


City) " & _
"VALUES(@addressid, @city)", sqlConn)
sqlParam = New SqlParameter("@addressid", SqlDbType.Int)
sqlCmd.Parameters.Add(sqlParam)
sqlParam = New SqlParameter("@city", SqlDbType.NVarChar, 30)
sqlCmd.Parameters.Add(sqlParam)
End Sub

Public Overrides Sub MyAddressInput_ProcessInputRow(ByVal Row As


MyAddressInputBuffer)
With sqlCmd
.Parameters("@addressid").Value = Row.AddressID
.Parameters("@city").Value = Row.City
.ExecuteNonQuery()
End With
End Sub

Public Overrides Sub ReleaseConnections()

connMgr.ReleaseConnection(sqlConn)

End Sub

End Class

C#

using System.Data.SqlClient;
public class ScriptMain:
UserComponent

{
IDTSConnectionManager100 connMgr;
SqlConnection sqlConn;
SqlCommand sqlCmd;
SqlParameter sqlParam;

public override void AcquireConnections(object Transaction)


{

connMgr = this.Connections.MyADONETConnectionManager;
sqlConn = (SqlConnection)connMgr.AcquireConnection(null);

public override void PreExecute()


{

sqlCmd = new SqlCommand("INSERT INTO Person.Address2(AddressID,


City) " +
"VALUES(@addressid, @city)", sqlConn);
sqlParam = new SqlParameter("@addressid", SqlDbType.Int);
sqlCmd.Parameters.Add(sqlParam);
sqlParam = new SqlParameter("@city", SqlDbType.NVarChar, 30);
sqlCmd.Parameters.Add(sqlParam);

public override void MyAddressInput_ProcessInputRow(MyAddressInputBuffer


Row)
{
{
sqlCmd.Parameters["@addressid"].Value = Row.AddressID;
sqlCmd.Parameters["@city"].Value = Row.City;
sqlCmd.ExecuteNonQuery();
}
}

public override void ReleaseConnections()


{

connMgr.ReleaseConnection(sqlConn);

Exemple de destination de fichier plat


Cet exemple montre un composant de destination qui utilise un gestionnaire de
connexions de fichiers plats existant pour enregistrer des données du flux de données
dans un fichier plat.

Si vous souhaitez exécuter cet exemple de code, vous devez configurer le package et le
composant comme suit :

1. Créez un gestionnaire de connexions de fichiers plats qui se connecte à un fichier


de destination. Si le fichier n'existe pas, le composant de destination le crée.
Configurez le fichier de destination en tant que fichier délimité par des virgules qui
contient les colonnes AddressID et City.

2. Ajoutez un nouveau composant Script à l'aire du concepteur de flux de données et


configurez-le en tant que destination.

3. Connectez la sortie d'une source ou transformation en amont au composant de


destination dans le concepteur SSIS. (Vous pouvez connecter directement une
source à une destination sans transformation.) Cette sortie doit fournir les données
de la table Person.Address de l’exemple de base de données AdventureWorks et
contenir au moins les colonnes AddressID et City.

4. Ouvrez l' Éditeur de transformation de script. Dans la page Colonnes d’entrée,


sélectionnez les colonnes AddressID et City.

5. Dans la page Entrées et sorties, renommez l’entrée en lui attribuant un nom plus
descriptif, comme MyAddressInput.
6. Dans la page Gestionnaires de connexions, ajoutez ou créez le gestionnaire de
connexions de fichiers plats et attribuez-lui un nom descriptif, par exemple
MyFlatFileDestConnectionManager.

7. Dans la page Script , cliquez sur Modifier le script , puis entrez le script suivant.
Ensuite, fermez l'environnement de développement de script.

8. Fermez l’Éditeur de transformation de script et exécutez l’exemple.

VB

Imports System.IO
...
Public Class ScriptMain
Inherits UserComponent

Dim copiedAddressFile As String


Private textWriter As StreamWriter
Private columnDelimiter As String = ","

Public Overrides Sub AcquireConnections(ByVal Transaction As Object)

Dim connMgr As IDTSConnectionManager100 = _


Me.Connections.MyFlatFileDestConnectionManager
copiedAddressFile = CType(connMgr.AcquireConnection(Nothing),
String)

End Sub

Public Overrides Sub PreExecute()

textWriter = New StreamWriter(copiedAddressFile, False)

End Sub

Public Overrides Sub MyAddressInput_ProcessInputRow(ByVal Row As


MyAddressInputBuffer)

With textWriter
If Not Row.AddressID_IsNull Then
.Write(Row.AddressID)
End If
.Write(columnDelimiter)
If Not Row.City_IsNull Then
.Write(Row.City)
End If
.WriteLine()
End With

End Sub

Public Overrides Sub PostExecute()


textWriter.Close()

End Sub

End Class

C#

using System.IO;
public class ScriptMain:
UserComponent

{
string copiedAddressFile;
private StreamWriter textWriter;
private string columnDelimiter = ",";

public override void AcquireConnections(object Transaction)


{

IDTSConnectionManager100 connMgr =
this.Connections.MyFlatFileDestConnectionManager;
copiedAddressFile = (string) connMgr.AcquireConnection(null);

public override void PreExecute()


{

textWriter = new StreamWriter(copiedAddressFile, false);

public override void MyAddressInput_ProcessInputRow(MyAddressInputBuffer


Row)
{

{
if (!Row.AddressID_IsNull)
{
textWriter.Write(Row.AddressID);
}
textWriter.Write(columnDelimiter);
if (!Row.City_IsNull)
{
textWriter.Write(Row.City);
}
textWriter.WriteLine();
}

public override void PostExecute()


{

textWriter.Close();

Voir aussi
Création d'une source à l'aide du composant Script
Développement d'un composant de destination personnalisé
Exemples supplémentaires du
composant Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le composant Script est un outil configurable que vous pouvez utiliser dans le flux de
données d'un package pour remplir presque toutes les conditions qui ne sont pas
satisfaites par les sources, les transformations et les destinations incluses dans
Integration Services. Cette section contient des exemples de code du composant Script
qui montrent les divers types de fonctionnalités disponibles.

Pour obtenir des exemples montrant comment configurer le composant Script en tant
que source, transformation ou destination de base, consultez Développement de types
spécifiques de composants Script.

7 Notes

Si vous souhaitez créer des composants que vous pouvez réutiliser plus facilement
dans plusieurs tâches de flux de données et plusieurs packages, envisagez d'utiliser
le code présenté dans ces exemples du composant Script comme point de départ
pour vos composants de flux de données personnalisés. Pour plus d’informations,
consultez Développement d’un composant de flux de données personnalisé.

Dans cette section


Simulation d'une sortie d'erreur pour le composant Script
Le composant Script ne prend pas en charge une sortie d'erreur standard, mais vous
pouvez simuler une sortie d'erreur standard avec peu de configuration et codage
supplémentaires.

Amélioration d'une sortie d'erreur à l'aide du composant Script


Explique et montre comment ajouter des informations supplémentaires à une sortie
d'erreur standard en utilisant le composant Script.

Création d'une destination ODBC à l'aide du composant Script


Explique et montre comment créer une destination de flux de données ODBC en
utilisant le composant Script.
Analyse de formats de fichiers texte non standard à l'aide du composant Script
Explique et montre comment analyser deux formats de fichiers texte non standard
différents dans des tables de destination.
Création d'une destination ODBC à
l'aide du composant Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Dans SQL Server Integration Services, vous enregistrez généralement les données dans
une destination ODBC en utilisant une destination ADO.NET et le fournisseur de
données .NET Framework pour ODBC. Toutefois, vous pouvez également créer une
destination ODBC ad hoc à utiliser dans un package unique. Pour créer cette destination
ODBC ad hoc, vous utilisez le composant Script comme indiqué dans l'exemple suivant.

7 Notes

Si vous souhaitez créer un composant que vous pouvez réutiliser plus facilement
dans plusieurs tâches de flux de données et plusieurs packages, utilisez le code
présenté dans cet exemple de composant Script comme point de départ pour un
composant de flux de données personnalisé. Pour plus d’informations, consultez
Développement d’un composant de flux de données personnalisé.

Exemple
L’exemple suivant montre comment créer un composant de destination qui utilise un
gestionnaire de connexions ODBC existant pour enregistrer des données du flux de
données dans une table Microsoft SQL Server.

Cet exemple est une version modifiée de la destination ADO.NET personnalisée


présentée dans la rubrique Création d’une destination à l’aide du composant Script.
Toutefois, dans cet exemple, la destination ADO.NET personnalisée a été modifiée afin
d'utiliser un gestionnaire de connexions ODBC et d'enregistrer les données dans une
destination ODBC. Ces modifications incluent également les points suivants :

Vous ne pouvez pas appeler la méthode AcquireConnection du gestionnaire de


connexions ODBC à partir du code managé, car elle renvoie un objet natif. Par
conséquent, cet exemple utilise la chaîne de connexion du gestionnaire de
connexions pour se connecter directement à la source de données en utilisant le
fournisseur de données .NET Framework pour ODBC managé.
OdbcCommand attend des paramètres positionnels. Les positions des paramètres
sont indiquées par les points d'interrogation (?) dans le texte de la commande. (Par
opposition, un objet SqlCommand attend des paramètres nommés.)

Cet exemple utilise la table Person.Address de l’exemple de base de données


AdventureWorks. L’exemple passe la première colonne et la quatrième colonne, à savoir
les colonnes int AddressID et nvarchar(30) City, de cette table dans le flux de données.
Ces mêmes données sont utilisées dans les exemples de sources, transformations et
destinations de la rubrique Développement de types spécifiques de composants Script.

Pour configurer cet exemple de composant Script


1. Créez un gestionnaire de connexions ODBC qui se connecte à la base de données
AdventureWorks.

2. Créez une table de destination en exécutant la commande Transact-SQL suivante


dans la base de données AdventureWorks :

SQL

CREATE TABLE [Person].[Address2]([AddressID] [int] NOT NULL,


[City] [nvarchar](30) NOT NULL)

3. Ajoutez un nouveau composant Script à l'aire du concepteur de flux de données et


configurez-le en tant que destination.

4. Connectez la sortie d'une source ou transformation en amont au composant de


destination dans le concepteur SSIS. (Vous pouvez connecter directement une
source à une destination sans transformation.) Pour garantir le bon
fonctionnement de cet exemple, la sortie du composant en amont doit inclure au
moins les colonnes AddressID et City de la table Person.Address de l’exemple de
base de données AdventureWorks.

5. Ouvrez l' Éditeur de transformation de script. Dans la page Colonnes d’entrée,


sélectionnez les colonnes AddressID et City.

6. Dans la page Entrées et sorties, renommez l’entrée en lui attribuant un nom plus
descriptif, comme MyAddressInput.

7. Dans la page Gestionnaires de connexions, ajoutez ou créez le gestionnaire de


connexions ODBC et attribuez-lui un nom descriptif, par exemple
MyODBCConnectionManager.
8. Dans la page Script, cliquez sur Modifier le script, puis entrez le script ci-dessous
dans la classe ScriptMain.

9. Fermez l’environnement de développement de script, fermez l’Éditeur de


transformation de script, puis exécutez l’exemple.

VB

Imports System.Data.Odbc
...
Public Class ScriptMain
Inherits UserComponent

Dim odbcConn As OdbcConnection


Dim odbcCmd As OdbcCommand
Dim odbcParam As OdbcParameter

Public Overrides Sub AcquireConnections(ByVal Transaction As


Object)

Dim connectionString As String


connectionString =
Me.Connections.MyODBCConnectionManager.ConnectionString
odbcConn = New OdbcConnection(connectionString)
odbcConn.Open()

End Sub

Public Overrides Sub PreExecute()

odbcCmd = New OdbcCommand("INSERT INTO


Person.Address2(AddressID, City) " & _
"VALUES(?, ?)", odbcConn)
odbcParam = New OdbcParameter("@addressid", OdbcType.Int)
odbcCmd.Parameters.Add(odbcParam)
odbcParam = New OdbcParameter("@city", OdbcType.NVarChar, 30)
odbcCmd.Parameters.Add(odbcParam)

End Sub

Public Overrides Sub MyAddressInput_ProcessInputRow(ByVal Row As


MyAddressInputBuffer)

With odbcCmd
.Parameters("@addressid").Value = Row.AddressID
.Parameters("@city").Value = Row.City
.ExecuteNonQuery()
End With

End Sub

Public Overrides Sub ReleaseConnections()


odbcConn.Close()

End Sub

End Class

C#

using System.Data.Odbc;
...
public class ScriptMain :
UserComponent
{
OdbcConnection odbcConn;
OdbcCommand odbcCmd;
OdbcParameter odbcParam;

public override void AcquireConnections(object Transaction)


{

string connectionString;
connectionString =
this.Connections.MyODBCConnectionManager.ConnectionString;
odbcConn = new OdbcConnection(connectionString);
odbcConn.Open();

public override void PreExecute()


{

odbcCmd = new OdbcCommand("INSERT INTO


Person.Address2(AddressID, City) " +
"VALUES(?, ?)", odbcConn);
odbcParam = new OdbcParameter("@addressid", OdbcType.Int);
odbcCmd.Parameters.Add(odbcParam);
odbcParam = new OdbcParameter("@city", OdbcType.NVarChar, 30);
odbcCmd.Parameters.Add(odbcParam);

public override void


MyAddressInput_ProcessInputRow(MyAddressInputBuffer Row)
{

{
odbcCmd.Parameters["@addressid"].Value = Row.AddressID;
odbcCmd.Parameters["@city"].Value = Row.City;
odbcCmd.ExecuteNonQuery();
}

}
public override void ReleaseConnections()
{

odbcConn.Close();

}
}

Voir aussi
Création d’une destination à l’aide du composant Script
Amélioration d'une sortie d'erreur à
l'aide du composant Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Par défaut, les deux colonnes supplémentaires d'une sortie d'erreur Integration Services,
ErrorCode et ErrorColumn, contiennent uniquement des codes numériques identifiant
un numéro d'erreur et l'ID de la colonne dans laquelle l'erreur est survenue. Ces valeurs
numériques peuvent se révéler d’une utilité limitée en l’absence de la description
d’erreur et du nom de colonne correspondants.

Cette rubrique décrit comment ajouter la description d’erreur et le nom de colonne à


des données de sortie d’erreur existantes dans le flux de données en utilisant le
composant Script. L'exemple ajoute la description d'erreur qui correspond à un code
d'erreur Integration Services prédéfini spécifique à l'aide de la méthode
GetErrorDescription de l'interface IDTSComponentMetaData100, disponible via la
propriété ComponentMetaData du composant Script. Le nom de colonne qui
correspond à l’ID de lignage capturé est ensuite ajouté à l’aide de la méthode
GetIdentificationStringByID de la même interface.

7 Notes

Si vous souhaitez créer un composant que vous pouvez réutiliser plus facilement
dans plusieurs tâches de flux de données et plusieurs packages, utilisez le code
présenté dans cet exemple de composant Script comme point de départ pour un
composant de flux de données personnalisé. Pour plus d’informations, consultez
Développement d’un composant de flux de données personnalisé.

Exemple
L’exemple indiqué ici utilise un composant Script configuré en tant que transformation
pour ajouter la description d’erreur et le nom de colonne à des données de sortie
d’erreur existantes dans le flux de données.

Pour plus d’informations sur la configuration du composant Script en vue de son


utilisation comme transformation dans le flux de données, consultez Création d’une
transformation synchrone à l’aide du composant Script et Création d’une transformation
asynchrone à l’aide du composant Script.
Pour configurer cet exemple de composant Script
1. Avant de créer le composant Script, configurez un composant en amont dans le
flux de données pour rediriger des lignes vers sa sortie d'erreur lorsqu'une erreur
ou troncation se produit. À des fins de test, vous pouvez configurer un composant
de manière à garantir que des erreurs se produiront, par exemple en configurant
une transformation de recherche entre deux tables où la recherche échouera.

2. Ajoutez un nouveau composant Script à l'aire du concepteur de flux de données et


configurez-le en tant que transformation.

3. Connectez la sortie d'erreur du composant en amont au nouveau composant


Script.

4. Ouvrez l’Éditeur de transformation de script, puis dans la page Script, au niveau


de la propriété ScriptLanguage, sélectionnez le langage de script.

5. Cliquez sur Modifier le script pour ouvrir l’environnement de développement


intégré Microsoft Visual Studio Tools for Applications (VSTA) et ajouter l’exemple
de code indiqué ci-dessous.

6. Fermez VSTA.

7. Dans l’Éditeur de transformation de script, dans la page Colonnes d’entrée,


sélectionnez les colonnes ErrorCode et ErrorColumn.

8. Dans la page Entrées et sorties, ajoutez deux nouvelles colonnes.

Ajoutez une nouvelle colonne de sortie de type String nommée


ErrorDescription. Augmentez la longueur par défaut de la nouvelle colonne à
255 pour prendre en charge les longs messages.

Ajoutez une autre nouvelle colonne de sortie de type String nommée


ColumnName. Augmentez la longueur par défaut de la nouvelle colonne
à 255 pour prendre en charge les longues valeurs.

9. Fermez l’Éditeur de transformation de script.

10. Attachez la sortie du composant Script à une destination appropriée. Les


destinations de fichiers plats sont les plus faciles à configurer à des fins de test ad
hoc.

11. Exécutez le package.

VB
Public Class ScriptMain ' VB
Inherits UserComponent
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

Row.ErrorDescription = _
Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)

Dim componentMetaData130 = TryCast(Me.ComponentMetaData,


IDTSComponentMetaData130)

If componentMetaData130 IsNot Nothing Then

If Row.ErrorColumn = 0 Then
' 0 means no specific column is identified by ErrorColumn,
this time.
Row.ColumnName = "Check the row for a violation of a foreign
key constraint."
ELSE If Row.ErrorColumn = -1 Then
' -1 means you are using Table Lock for a Memory Optimised
destination table which is not supported.
Row.ColumnName = "Table lock is not compatible with Memory
Optimised tables."
Else
Row.ColumnName =
componentMetaData130.GetIdentificationStringByID(Row.ErrorColumn)
End If
End If
End Sub
End Class

C#

public class ScriptMain: // C#


UserComponent
{
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
Row.ErrorDescription =
this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);

var componentMetaData130 = this.ComponentMetaData as


IDTSComponentMetaData130;
if (componentMetaData130 != null)
{
// 0 means no specific column is identified by ErrorColumn, this
time.
if (Row.ErrorColumn == 0)
{
Row.ColumnName = "Check the row for a violation of a foreign
key constraint.";
}
// -1 means you are using Table Lock for a Memory Optimised
destination table which is not supported.
else if (Row.ErrorColumn == -1)
{
Row.ColumnName = "Table lock is not compatible with Memory
Optimised tables.";
}
else
{
Row.ColumnName =
componentMetaData130.GetIdentificationStringByID(Row.ErrorColumn);
}
}
}
}

Voir aussi
Gestion des erreurs dans les données
Utilisation de sorties d'erreur dans un composant de flux de données
Création d'une transformation synchrone à l'aide du composant Script
Analyse de formats de fichiers texte non
standard à l'aide du composant Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Lorsque vos données sources sont organisées dans un format non standard, il peut être
plus pratique de consolider l'ensemble de la logique d'analyse en un seul script au lieu
de chaîner plusieurs transformations Integration Services pour parvenir au même
résultat.

Exemple 1 : Analyse d’enregistrements délimités par des lignes

Exemple 2 : fractionnement d’enregistrements parents et enfants

7 Notes

Si vous souhaitez créer un composant que vous pouvez réutiliser plus facilement
dans plusieurs tâches de flux de données et plusieurs packages, utilisez le code
présenté dans cet exemple de composant Script comme point de départ pour un
composant de flux de données personnalisé. Pour plus d’informations, consultez
Développement d’un composant de flux de données personnalisé.

Exemple 1 : Analyse d'enregistrements


délimités par des lignes
Cet exemple montre comment analyser un fichier texte, dans lequel chaque colonne de
données figure sur une ligne séparée, dans une table de destination, à l'aide du
composant Script.

Pour plus d’informations sur la configuration du composant Script en vue de son


utilisation comme transformation dans le flux de données, consultez Création d’une
transformation synchrone à l’aide du composant Script et Création d’une transformation
asynchrone à l’aide du composant Script.

Pour configurer cet exemple de composant Script


1. Créez et enregistrez un fichier texte nommé rowdelimiteddata.txt contenant les
données sources suivantes :
FirstName: Nancy
LastName: Davolio
Title: Sales Representative
City: Seattle
StateProvince: WA

FirstName: Andrew
LastName: Fuller
Title: Vice President, Sales
City: Tacoma
StateProvince: WA

FirstName: Steven
LastName: Buchanan
Title: Sales Manager
City: London
StateProvince:

2. Ouvrez Management Studio et connectez-vous à une instance de SQL Server.

3. Sélectionnez une base de données de destination et ouvrez une nouvelle fenêtre


de requête. Dans la fenêtre de requête, exécutez le script suivant pour créer la
table de destination :

SQL

create table RowDelimitedData


(
FirstName varchar(32),
LastName varchar(32),
Title varchar(32),
City varchar(32),
StateProvince varchar(32)
)

4. Ouvrez SQL Server Data Tools et créez un package Integration Services nommé
ParseRowDelim.dtsx.

5. Ajoutez un gestionnaire de connexions de fichiers plats au package, nommez-le


RowDelimitedData et configurez-le pour qu'il se connecte au fichier
rowdelimiteddata.txt créé à l'étape précédente.

6. Ajoutez un gestionnaire de connexions OLE DB au package et configurez-le pour


qu'il se connecte à l'instance de SQL Server et à la base de données dans laquelle
vous avez créé la table de destination.

7. Ajoutez une tâche de flux de données au package, puis cliquez sur l’onglet Flux de
données du concepteur SSIS.

8. Ajoutez une source de fichier plat au flux de données et configurez-la pour qu'elle
utilise le gestionnaire de connexions RowDelimitedData. Dans la page Colonnes de
l’Éditeur de source de fichier plat, sélectionnez la seule colonne externe
disponible.

9. Ajoutez un composant Script au flux de données et configurez-le en tant que


transformation. Connectez la sortie de la source de fichier plat au composant
Script.

10. Double-cliquez sur le composant Script pour afficher l’Éditeur de transformation


de script.

11. Dans la page Colonnes d’entrée de l’Éditeur de transformation de script,


sélectionnez la seule colonne d’entrée disponible.

12. Dans la page Entrées et sorties de l’Éditeur de transformation de script,


sélectionnez Sortie 0 et attribuez la valeur Aucun à SynchronousInputID. Créez
5 colonnes de sortie, de type String [DT_STR] et de longueur 32 :

FirstName

LastName

Title

City

StateProvince

13. Dans la page Script de l’Éditeur de transformation de script, cliquez sur Modifier
le script, puis entrez le code indiqué dans la classe ScriptMain de l’exemple.
Fermez l’environnement de développement de script et l’Éditeur de
transformation de script.

14. Ajoutez une destination pour SQL Server au flux de données. Configurez-la pour
qu'elle utilise le gestionnaire de connexions OLE DB et la table RowDelimitedData.
Connectez la sortie du composant Script à cette destination.

15. Exécutez le package. Après l'exécution du package, examinez les enregistrements


dans la table de destination SQL Server.
VB

Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

Dim columnName As String


Dim columnValue As String

' Check for an empty row.


If Row.Column0.Trim.Length > 0 Then
columnName = Row.Column0.Substring(0, Row.Column0.IndexOf(":"))
' Check for an empty value after the colon.
If Row.Column0.Substring(Row.Column0.IndexOf(":")).TrimEnd.Length >
1 Then
' Extract the column value from after the colon and space.
columnValue = Row.Column0.Substring(Row.Column0.IndexOf(":") +
2)
Select Case columnName
Case "FirstName"
' The FirstName value indicates a new record.
Me.Output0Buffer.AddRow()
Me.Output0Buffer.FirstName = columnValue
Case "LastName"
Me.Output0Buffer.LastName = columnValue
Case "Title"
Me.Output0Buffer.Title = columnValue
Case "City"
Me.Output0Buffer.City = columnValue
Case "StateProvince"
Me.Output0Buffer.StateProvince = columnValue
End Select
End If
End If

End Sub

C#

public override void Input0_ProcessInputRow(Input0Buffer Row)


{

string columnName;
string columnValue;

// Check for an empty row.


if (Row.Column0.Trim().Length > 0)
{
columnName = Row.Column0.Substring(0, Row.Column0.IndexOf(":"));
// Check for an empty value after the colon.
if
(Row.Column0.Substring(Row.Column0.IndexOf(":")).TrimEnd().Length > 1)
// Extract the column value from after the colon and space.
{
columnValue = Row.Column0.Substring(Row.Column0.IndexOf(":")
+ 2);
switch (columnName)
{
case "FirstName":
// The FirstName value indicates a new record.
this.Output0Buffer.AddRow();
this.Output0Buffer.FirstName = columnValue;
break;
case "LastName":
this.Output0Buffer.LastName = columnValue;
break;
case "Title":
this.Output0Buffer.Title = columnValue;
break;
case "City":
this.Output0Buffer.City = columnValue;
break;
case "StateProvince":
this.Output0Buffer.StateProvince = columnValue;
break;
}
}
}

Exemple 2 : Fractionnement d'enregistrements


parents et enfants
Cet exemple montre comment analyser un fichier texte, dans lequel une ligne de
séparateur précède une ligne d'enregistrement parente suivie d'un nombre indéfini de
lignes d'enregistrement enfants, dans des tables de destination parentes et enfants
correctement normalisées, à l'aide du composant Script. Cet exemple simple pourrait
être facilement adapté aux fichiers sources qui utilisent plusieurs lignes ou colonnes
pour chaque enregistrement parent et enfant, tant qu'il est possible d'identifier le début
et la fin de chaque enregistrement.

U Attention

Cet exemple est fourni à titre de démonstration uniquement. Si vous exécutez


l'exemple plusieurs fois, il insère des valeurs de clé dupliquées dans la table de
destination.

Pour plus d’informations sur la configuration du composant Script en vue de son


utilisation comme transformation dans le flux de données, consultez Création d’une
transformation synchrone à l’aide du composant Script et Création d’une transformation
asynchrone à l’aide du composant Script.

Pour configurer cet exemple de composant Script

1. Créez et enregistrez un fichier texte nommé parentchilddata.txt contenant les


données sources suivantes :

**********
PARENT 1 DATA
child 1 data
child 2 data
child 3 data
child 4 data
**********
PARENT 2 DATA
child 5 data
child 6 data
child 7 data
child 8 data
**********

2. Ouvrez SQL Server Management Studio et connectez-vous à une instance de SQL


Server.

3. Sélectionnez une base de données de destination et ouvrez une nouvelle fenêtre


de requête. Dans la fenêtre de requête, exécutez le script suivant pour créer les
tables de destination :

SQL

CREATE TABLE [dbo].[Parents]([ParentID] [int] NOT NULL,


[ParentRecord] [varchar](32) NOT NULL,
CONSTRAINT [PK_Parents] PRIMARY KEY CLUSTERED
([ParentID] ASC))
GO
CREATE TABLE [dbo].[Children]([ChildID] [int] NOT NULL,
[ParentID] [int] NOT NULL,
[ChildRecord] [varchar](32) NOT NULL,
CONSTRAINT [PK_Children] PRIMARY KEY CLUSTERED
([ChildID] ASC))
GO
ALTER TABLE [dbo].[Children] ADD CONSTRAINT [FK_Children_Parents]
FOREIGN KEY([ParentID])
REFERENCES [dbo].[Parents] ([ParentID])
4. Ouvrez SQL Server Data Tools (SSDT) et créez un package Integration Services
nommé SplitParentChild.dtsx.

5. Ajoutez un gestionnaire de connexions de fichiers plats au package, nommez-le


ParentChildData et configurez-le pour qu'il se connecte au fichier
parentchilddata.txt créé à l'étape précédente.

6. Ajoutez un gestionnaire de connexions OLE DB au package et configurez-le pour


qu'il se connecte à l'instance de SQL Server et à la base de données dans laquelle
vous avez créé les tables de destination.

7. Ajoutez une tâche de flux de données au package, puis cliquez sur l’onglet Flux de
données du concepteur SSIS.

8. Ajoutez une source de fichier plat au flux de données et configurez-la pour qu'elle
utilise le gestionnaire de connexions ParentChildData. Dans la page Colonnes de
l’Éditeur de source de fichier plat, sélectionnez la seule colonne externe
disponible.

9. Ajoutez un composant Script au flux de données et configurez-le en tant que


transformation. Connectez la sortie de la source de fichier plat au composant
Script.

10. Double-cliquez sur le composant Script pour afficher l’Éditeur de transformation


de script.

11. Dans la page Colonnes d’entrée de l’Éditeur de transformation de script,


sélectionnez la seule colonne d’entrée disponible.

12. Dans la page Entrées et sorties de l’Éditeur de transformation de script,


sélectionnez le paramètre Sortie 0, renommez-le ParentRecords et attribuez la
valeur Aucune à SynchronousInputID. Créez 2 colonnes de sortie :

ParentID (la clé primaire), de type entier signé (4 bits) [DT_I4]

ParentRecord, de type String [DT_STR] et de longueur 32

13. Créez une deuxième sortie et nommez-la ChildRecords. La propriété


SynchronousInputID de la nouvelle sortie a déjà la valeur Aucun. Créez 3 colonnes
de sortie :

ChildID (la clé primaire), de type entier signé (4 bits) [DT_I4]

ParentID (la clé étrangère), également de type entier signé (4 bits) [DT_I4]
ChildRecord, de type String [DT_STR] et de longueur 50

14. Dans la page Script de l’Éditeur de transformation de script, cliquez sur Modifier
le script. Dans la classe ScriptMain, entrez le code présenté dans l’exemple.
Fermez l’environnement de développement de script et l’Éditeur de
transformation de script.

15. Ajoutez une destination pour SQL Server au flux de données. Connectez la sortie
ParentRecords du composant Script à cette destination. Configurez-la pour qu'elle
utilise le gestionnaire de connexions OLE DB et la table Parents.

16. Ajoutez une autre destination pour SQL Server au flux de données. Connectez la
sortie ChildRecords du composant Script à cette destination. Configurez-la pour
qu'elle utilise le gestionnaire de connexions OLE DB et la table Children.

17. Exécutez le package. Après l'exécution du package, examinez les enregistrements


parents et enfants dans les deux tables de destination SQL Server.

VB

Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

Static nextRowIsParent As Boolean = False


Static parentCounter As Integer = 0
Static childCounter As Integer = 0

' If current row starts with separator characters,


' then following row contains new parent record.
If Row.Column0.StartsWith("***") Then
nextRowIsParent = True
Else
If nextRowIsParent Then
' Current row contains parent record.
parentCounter += 1
Me.ParentRecordsBuffer.AddRow()
Me.ParentRecordsBuffer.ParentID = parentCounter
Me.ParentRecordsBuffer.ParentRecord = Row.Column0
nextRowIsParent = False
Else
' Current row contains child record.
childCounter += 1
Me.ChildRecordsBuffer.AddRow()
Me.ChildRecordsBuffer.ChildID = childCounter
Me.ChildRecordsBuffer.ParentID = parentCounter
Me.ChildRecordsBuffer.ChildRecord = Row.Column0
End If
End If

End Sub
C#

public override void Input0_ProcessInputRow(Input0Buffer Row)


{

int static_Input0_ProcessInputRow_childCounter = 0;
int static_Input0_ProcessInputRow_parentCounter = 0;
bool static_Input0_ProcessInputRow_nextRowIsParent = false;

// If current row starts with separator characters,


// then following row contains new parent record.
if (Row.Column0.StartsWith("***"))
{
static_Input0_ProcessInputRow_nextRowIsParent = true;
}
else
{
if (static_Input0_ProcessInputRow_nextRowIsParent)
{
// Current row contains parent record.
static_Input0_ProcessInputRow_parentCounter += 1;
this.ParentRecordsBuffer.AddRow();
this.ParentRecordsBuffer.ParentID =
static_Input0_ProcessInputRow_parentCounter;
this.ParentRecordsBuffer.ParentRecord = Row.Column0;
static_Input0_ProcessInputRow_nextRowIsParent = false;
}
else
{
// Current row contains child record.
static_Input0_ProcessInputRow_childCounter += 1;
this.ChildRecordsBuffer.AddRow();
this.ChildRecordsBuffer.ChildID =
static_Input0_ProcessInputRow_childCounter;
this.ChildRecordsBuffer.ParentID =
static_Input0_ProcessInputRow_parentCounter;
this.ChildRecordsBuffer.ChildRecord = Row.Column0;
}
}

Voir aussi
Création d'une transformation synchrone à l'aide du composant Script
Création d’une transformation asynchrone à l’aide du composant Script
Simulation d'une sortie d'erreur pour le
composant Script
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Bien qu'il soit impossible de configurer directement une sortie en tant que sortie
d'erreur dans le composant Script à des fins de gestion automatique des lignes d'erreur,
vous pouvez reproduire les fonctionnalités d'une sortie d'erreur intégrée en créant une
sortie supplémentaire et en utilisant une logique conditionnelle dans votre script afin de
diriger des lignes vers cette sortie, le cas échéant. Vous pouvez imiter le comportement
d'une sortie d'erreur intégrée en ajoutant deux colonnes de sortie supplémentaires pour
recevoir le numéro d'erreur et l'ID de la colonne dans laquelle une erreur s'est produite.

Si vous souhaitez ajouter la description d'erreur qui correspond à un code d'erreur


Integration Services prédéfini spécifique, vous pouvez utiliser la méthode
GetErrorDescription de l'interface IDTSComponentMetaData100, disponible via la
propriété ComponentMetaData du composant Script.

Exemple
L'exemple indiqué ici utilise un composant Script configuré en tant que transformation
qui possède deux sorties synchrones. L'objectif du composant Script est de filtrer les
lignes d'erreur parmi les données d'adresse dans l'exemple de base de données
AdventureWorks. Cet exemple fictif suppose que nous préparons une promotion pour
les clients d'Amérique du Nord et que nous avons besoin d'éliminer les adresses qui ne
se trouvent pas en Amérique du Nord par filtrage.

Pour configurer l'exemple


1. Avant de créer le composant Script, créez un gestionnaire de connexions et
configurez une source de flux de données qui sélectionne les données d'adresse
de l'exemple de base de données AdventureWorks. Pour cet exemple, qui examine
uniquement la colonne CountryRegionName, vous pouvez utiliser simplement la
vue Person.vStateCountryProvinceRegion, ou vous pouvez sélectionner des
données en liant les tables Person.Address, Person.StateProvince et
Person.CountryRegion.

2. Ajoutez un nouveau composant Script à l'aire du concepteur de flux de données et


configurez-le en tant que transformation. Ouvrez l' Éditeur de transformation de
script.

3. Dans la page Script, définissez la propriété ScriptLanguage sur le langage de script


que vous souhaitez utiliser pour coder le script.

4. Cliquez sur Modifier le script pour ouvrir Microsoft Visual Studio Tools for
Applications (VSTA).

5. Dans la méthode Input0_ProcessInputRow, tapez ou collez l’exemple de code


suivant.

6. Fermez VSTA.

7. Dans la page Colonnes d’entrée, sélectionnez les colonnes que vous souhaitez
traiter dans la transformation de script. Cet exemple utilise uniquement la colonne
CountryRegionName. Les colonnes d'entrée disponibles que vous n'avez pas
sélectionnées seront tout simplement transférées sans être modifiées dans le flux
de données.

8. Dans la page Entrées et sorties, ajoutez une nouvelle deuxième sortie et définissez
sa valeur SynchronousInputID sur l’ID de l’entrée, qui correspond également à la
valeur de la propriété SynchronousInputID de la sortie par défaut. Définissez la
propriété ExclusionGroup des deux sorties sur la même valeur différente de zéro
(par exemple, 1) pour indiquer que chaque ligne sera dirigée vers une seule des
deux sorties. Attribuez à la nouvelle sortie d'erreur un nom distinct, tel que
« MyErrorOutput ».

9. Ajoutez des colonnes de sortie supplémentaires à la nouvelle sortie d'erreur pour


capturer les informations d'erreur souhaitées, qui peuvent inclure le code de
l'erreur, l'ID de la colonne dans laquelle l'erreur s'est produite et éventuellement la
description de l'erreur. Cet exemple crée les nouvelles colonnes, ErrorColumn et
ErrorMessage. Si vous interceptez des erreurs Integration Services prédéfinies dans
votre propre implémentation, assurez-vous d'ajouter une colonne ErrorCode pour
le numéro d'erreur.

10. Notez la valeur d'ID de la ou des colonnes d'entrée dans lesquelles le composant
Script va rechercher des conditions d'erreur. Cet exemple utilise cet identificateur
de colonne pour renseigner la valeur ErrorColumn.

11. Fermez l’Éditeur de transformation de script.

12. Attachez les sorties du composant Script aux destinations appropriées. Les
destinations de fichiers plats sont les plus faciles à configurer pour les tests ad hoc.

13. Exécutez le package.


VB

Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

If Row.CountryRegionName <> "Canada" _


And Row.CountryRegionName <> "United States" Then

Row.ErrorColumn = 68 ' ID of CountryRegionName column


Row.ErrorMessage = "Address is not in North America."
Row.DirectRowToMyErrorOutput()

Else

Row.DirectRowToOutput0()

End If

End Sub

C#

public override void Input0_ProcessInputRow(Input0Buffer Row)


{

if (Row.CountryRegionName!="Canada"&&Row.CountryRegionName!="United
States")

{
Row.ErrorColumn = 68; // ID of CountryRegionName column
Row.ErrorMessage = "Address is not in North America.";
Row.DirectRowToMyErrorOutput();

}
else
{

Row.DirectRowToOutput0();

Voir aussi
Gestion des erreurs dans les données
Utilisation de sorties d'erreur dans un composant de flux de données
Création d'une transformation synchrone à l'aide du composant Script
Extension de packages avec des objets
personnalisés
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Si vous constatez que les composants fournis dans Integration Services ne satisfont pas
vos besoins, vous pouvez étendre la puissance d'Integration Services en codant vos
propres extensions. Vous disposez de deux options distinctes pour étendre vos
packages : vous pouvez écrire du code dans les puissants wrappers fournis par la tâche
de script et le composant Script, ou vous pouvez entièrement créer des extensions
Integration Services personnalisées, dérivées des classes de base fournies par le modèle
objet Integration Services.

Cette section explore l’option la plus avancée des deux : l’extension de packages à l’aide
d’objets personnalisés.

Lorsque votre solution Integration Services personnalisée exige davantage de flexibilité


que celle fournie par la tâche de script ou le composant Script, ou lorsque vous avez
besoin d'un composant réutilisable dans plusieurs packages, le modèle objet Integration
Services vous permet de créer des tâches personnalisées, des composants de flux de
données et d'autres objets de package en code managé.

Dans cette section


Développement d’objets personnalisés pour Integration Services
Présente les objets personnalisés qui peuvent être créés pour Integration Services et
résume les étapes et les paramètres essentiels.

Persistance des objets personnalisés


Examine la persistance par défaut des objets personnalisés et le processus
d'implémentation de la persistance personnalisée.

Génération, déploiement et débogage d’objets personnalisés


Présente les méthodes les plus usuelles pour créer, déployer et tester les différents types
d'objets personnalisés.

Développement d'une tâche personnalisée


Décrit le processus de codage d'une tâche personnalisée.
Développement d’un gestionnaire de connexions personnalisé
Décrit le processus de codage d'un gestionnaire de connexions personnalisé.

Développement d’un module fournisseur d’informations personnalisé


Décrit le processus du codage d'un module fournisseur d'informations personnalisé.

Développement d’un énumérateur ForEach personnalisé


Décrit le processus de codage d'un énumérateur personnalisé.

Développement d’un composant de flux de données personnalisé


Explique comment programmer des sources, des transformations et des destinations de
flux de données personnalisées.

Informations de référence
Guide de référence des erreurs et des messages propres à Integration Services
Répertorie les codes d'erreur Integration Services prédéfinis avec leur nom symbolique
et leur description.

Sections connexes
Extension de packages avec des scripts
Explique comment étendre le flux de contrôle à l'aide de la tâche de script, ou comment
étendre le flux de données à l'aide du composant Script.

Génération de packages par programme


Décrit comment créer, configurer, exécuter, charger, enregistrer et gérer des packages
Integration Services par programme.

Voir aussi
Comparaison des solutions de script et des objets personnalisés
SQL Server Integration Services
Développement d'objets personnalisés
pour Integration Services
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Lorsque les objets de flux de contrôle et de flux de données inclus dans SQL Server
Integration Services ne répondent pas complètement à vos besoins, vous pouvez
développer vos propres types d’objets personnalisés, notamment les suivants :

Tâches personnalisées.

Gestionnaires de connexions personnalisés. Connectez-vous aux sources de données


externes qui ne sont pas prises en charge actuellement.

Modules fournisseurs d'informations personnalisés. Enregistrez des événements de


package dans des formats qui ne sont pas pris en charge actuellement.

Énumérateurs personnalisés. Prenez en charge l'itération sur un jeu d'objets ou de


formats de valeurs qui ne sont pas pris en charge actuellement.

Composants de flux de données personnalisés. Peuvent être configurés en tant que


sources, transformations ou destinations.

Le modèle objet Integration Services facilite ce développement personnalisé à l'aide de


classes de base qui fournissent un cadre cohérent et fiable pour votre implémentation
personnalisée.

Si vous n'avez pas à réutiliser les fonctionnalités personnalisées dans plusieurs packages, la
tâche de script et le composant Script vous donnent toute la puissance d'un langage de
programmation managé avec beaucoup moins de code d'infrastructure à écrire. Pour plus
d’informations, consultez Comparaison des solutions de script et des objets personnalisés.

Étapes de développement d'un objet


personnalisé pour Integration Services
Lorsque vous développez un objet personnalisé à utiliser dans Integration Services, vous
développez une bibliothèque de classes (DLL) qui sera chargée au moment de la
conception et au moment de l'exécution par le Concepteur SSIS et par le runtime
Integration Services. Les méthodes les plus importantes que vous devez implémenter ne
sont pas celles que vous appelez à partir de votre propre code, mais celles que le runtime
appelle à des moments appropriés pour initialiser et valider votre composant et appeler ses
fonctionnalités.

Voici les étapes à suivre pour développer un objet personnalisé :

1. Créez un projet de type Bibliothèque de classes dans votre langage de


programmation managé préféré.

2. Héritez de la classe de base appropriée, comme indiqué dans le tableau suivant.

3. Appliquez l'attribut approprié à votre nouvelle classe, comme indiqué dans le tableau
suivant.

4. Remplacez les méthodes de la classe de base comme requis et écrivez le code des
fonctionnalités personnalisées de votre objet.

5. Générez éventuellement une interface utilisateur personnalisée pour votre composant.


Afin de faciliter le déploiement, vous pouvez développer l'interface utilisateur sous la
forme d'un projet distinct au sein de la même solution, puis la générer en tant
qu'assembly séparé.

6. (Facultatif) Affichez un lien vers des exemples et contenus d’Aide pour l’objet
personnalisé dans la Boîte à outils SSIS.

7. Générez, déployez et déboguez votre nouvel objet personnalisé comme décrit dans
Génération, déploiement et débogage d’objets personnalisés.

Classes de base, attributs et méthodes


importantes
Ce tableau constitue une référence simple aux éléments les plus importants du modèle
objet Integration Services pour chaque type d'objet personnalisé que vous pouvez
développer.

Objet Classe de base Attribut Méthodes importantes


personnalisé

Tâche Task DtsTaskAttribute Execute

Gestionnaire ConnectionManagerBase DtsConnectionAttribute AcquireConnection,


de connexions ReleaseConnection

Module LogProviderBase DtsLogProviderAttribute OpenLog, Log, CloseLog


fournisseur
d'informations

Énumérateur ForEachEnumerator DtsForEachEnumeratorAttribute GetEnumerator


Objet Classe de base Attribut Méthodes importantes
personnalisé

Composant PipelineComponent DtsPipelineComponentAttribute ProvideComponentProperties,


de flux de PrimeOutput, ProcessInput
données

Liens vers des exemples et des contenus d'aide


Pour afficher un lien dans la Boîte à outils SSIS vers des exemples et des contenus d’Aide
pour un objet personnalisé écrit en code managé, utilisez les propriétés suivantes.

Microsoft.SqlServer.Dts.Pipeline.DTSPipelineComponentAttribute.SamplesTag*

Microsoft.SqlServer.Dts.Pipeline.DTSPipelineComponentAttribute.HelpCollection*

Microsoft.SqlServer.Dts.Pipeline.DTSPipelineComponentAttribute.HelpKeyword*

Microsoft.SqlServer.Dts.Runtime.DTSTaskAttribute.SamplesTag*

Microsoft.SqlServer.Dts.Runtime.DTSTaskAttribute.HelpCollection*

Microsoft.SqlServer.Dts.Runtime.DTSTaskAttribute.HelpKeyword*

Pour afficher un lien vers des exemples et des contenus d'Aide pour un objet personnalisé
écrit en code natif, ajoutez des entrées dans le fichier de Registre Script (.rgs) pour
SamplesTag, HelpKeyword et HelpCollection. Voici un exemple.

val HelpKeyword = s 'sql11.dts.designer.executepackagetask.F1'

val SamplesTag = s 'ExecutePackageTask'

Interface utilisateur personnalisée


Pour permettre aux utilisateurs de votre objet personnalisé de configurer ses propriétés,
vous devrez peut-être également développer une interface utilisateur personnalisée. Dans
les cas où une interface utilisateur personnalisée n'est pas strictement requise, vous pouvez
choisir d'en créer une afin de fournir une interface plus conviviale que l'éditeur par défaut.

Dans un projet d’interface utilisateur personnalisée ou assembly, vous avez généralement


deux classes : une classe qui implémente une interface Integration Services pour les
interfaces utilisateur du type spécifique de l’objet personnalisé et le formulaire Windows
qu’elle affiche pour collecter des informations auprès de l’utilisateur. Les interfaces que
vous implémentez comportent uniquement quelques méthodes et une interface utilisateur
personnalisée n'est pas difficile à développer.
7 Notes

De nombreux modules fournisseurs d’informations Integration Services ont une


interface utilisateur personnalisée qui implémente l’objet IDtsLogProviderUI et
remplace la zone de texte Configuration par la liste déroulante filtrée des
gestionnaires de connexions disponibles. Toutefois, les interfaces utilisateur
personnalisées des modules fournisseurs d'informations personnalisés ne sont pas
implémentées dans cette version de Integration Services. La spécification d'une valeur
pour la propriété UITypeName de l'objet DtsLogProviderAttribute est sans effet.

Le tableau suivant constitue une référence simple aux interfaces que vous devez
implémenter lorsque vous développez une interface utilisateur personnalisée pour chaque
type d'objet personnalisé. Il explique également ce que l’utilisateur voit si vous choisissez
de ne pas développer d’interface utilisateur personnalisée pour votre objet, ou si vous ne
parvenez pas à lier votre objet à son interface utilisateur en utilisant la propriété
UITypeName dans l’attribut de l’objet. Bien que le puissant éditeur avancé puisse s'avérer
satisfaisant pour un composant de flux de données, la fenêtre Propriétés est une solution
moins conviviale pour les tâches et les gestionnaires de connexions, et un énumérateur
ForEach personnalisé ne peut pas du tout être configuré sans formulaire personnalisé.

Objet Classe de base pour Comportement d'édition par défaut si aucune


personnalisé interface utilisateur interface utilisateur personnalisée n'est fournie

Tâche IDtsTaskUI Fenêtre Propriétés uniquement

Gestionnaire de IDtsConnectionManagerUI Fenêtre Propriétés uniquement


connexions

Module IDtsLogProviderUI Zone de texte dans la colonne Configuration


fournisseur
d'informations (Non implémenté dans
Integration Services.)

Énumérateur ForEachEnumeratorUI Fenêtre Propriétés uniquement. La zone


Configuration de l'énumérateur de l'éditeur est
vide.

Composant de IDtsComponentUI Éditeur avancé


flux de données

Ressources externes
Entrée de blog, Visual Studio solution build process give a warning about indirect
dependency on the .NET Framework assembly due to SSIS references, sur
blogs.msdn.com.
Voir aussi
Persistance des objets personnalisés
Génération, déploiement et débogage d’objets personnalisés
Persistance des objets personnalisés
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Il n’est pas nécessaire d’implémenter une persistance personnalisée pour les objets
personnalisés que vous créez à condition que leurs propriétés utilisent uniquement des
types de données simples, comme integer et string. L'implémentation par défaut de la
persistance enregistre les métadonnées de votre objet ainsi que les valeurs de toutes ses
propriétés.

Toutefois, si votre objet comporte des propriétés qui utilisent des types de données
complexes, ou si vous souhaitez effectuer un traitement personnalisé sur des valeurs de
propriétés lors de leur chargement et de leur enregistrement, vous pouvez implémenter
l'interface IDTSComponentPersist et ses méthodes LoadFromXML et SaveToXML. Avec
ces méthodes, vous effectuez un chargement depuis (ou un enregistrement vers) la
définition XML du package, d'un fragment XML qui contient les propriétés de votre
objet et leurs valeurs actuelles. Le format de ce fragment XML n'est pas défini ; il doit
uniquement s'agir d'un format XML bien formé.

) Important

Lorsque vous implémentez une persistance personnalisée, vous devez rendre


persistantes toutes les propriétés de l'objet, y compris les propriétés héritées et les
propriétés personnalisées que vous avez ajoutées.

Exemple
Bien que l’exemple de gestionnaire de connexions personnalisé SQL Server ne requière
pas de persistance personnalisée pour ses trois propriétés de type string, le code
suivant présente un exemple du code personnalisé qui serait requis pour rendre
persistants le gestionnaire de connexions et ses propriétés. La classe qui contient ce
code doit implémenter l'interface IDTSComponentPersist.

VB

Private Const PERSIST_ELEMENT As String = "SqlConnectionManager"


Private Const PERSIST_SERVER As String = "Server"
Private Const PERSIST_DATABASE As String = "Database"
Private Const PERSIST_CONNECTIONSTRING As String = "ConnectionString"
Public Sub LoadFromXML(ByVal node As System.Xml.XmlElement, _
ByVal infoEvents As Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents) _
Implements
Microsoft.SqlServer.Dts.Runtime.IDTSComponentPersist.LoadFromXML

Dim propertyNode As XmlNode

' Make sure that the correct node is being loaded.


If node.Name <> PERSIST_ELEMENT Then
Throw New Exception("Persisted element is not of type " &
PERSIST_ELEMENT)
End If

' Load the three properties of the object from XML into variables.
For Each propertyNode In node.ChildNodes
Select Case propertyNode.Name
Case PERSIST_SERVER
_serverName = propertyNode.InnerText
Case PERSIST_DATABASE
_databaseName = propertyNode.InnerText
Case PERSIST_CONNECTIONSTRING
_connectionString = propertyNode.InnerText
End Select
Next

End Sub

Public Sub SaveToXML(ByVal doc As System.Xml.XmlDocument, _


ByVal infoEvents As Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents) _
Implements Microsoft.SqlServer.Dts.Runtime.IDTSComponentPersist.SaveToXML

Dim elementRoot As XmlElement


Dim propertyNode As XmlNode

' Create a new node to persist the object and its properties.
elementRoot = doc.CreateElement(String.Empty, PERSIST_ELEMENT,
String.Empty)

' Save the three properties of the object from variables into XML.
propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_SERVER,
String.Empty)
propertyNode.InnerText = _serverName
elementRoot.AppendChild(propertyNode)

propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_DATABASE,


String.Empty)
propertyNode.InnerText = _databaseName
elementRoot.AppendChild(propertyNode)

propertyNode = doc.CreateNode(XmlNodeType.Element,
PERSIST_CONNECTIONSTRING, String.Empty)
propertyNode.InnerText = _connectionString
elementRoot.AppendChild(propertyNode)

doc.AppendChild(elementRoot)
End Sub

C#

private const string PERSIST_ELEMENT = "SqlConnectionManager";


private const string PERSIST_SERVER = "Server";
private const string PERSIST_DATABASE = "Database";
private const string PERSIST_CONNECTIONSTRING = "ConnectionString";

public void LoadFromXML(System.Xml.XmlElement node,


Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents infoEvents)
{

// Make sure that the correct node is being loaded.


if (node.Name != PERSIST_ELEMENT)
{
throw new Exception("Persisted element is not of type " +
PERSIST_ELEMENT);
}

// Save the three properties of the object from variables into XML.
foreach (XmlNode propertyNode in node.ChildNodes)
{
switch (propertyNode.Name)
{
case PERSIST_SERVER:
_serverName = propertyNode.InnerText;
break;
case PERSIST_DATABASE:
_databaseName = propertyNode.InnerText;
break;
case PERSIST_CONNECTIONSTRING:
_connectionString = propertyNode.InnerText;
break;
}
}

public void SaveToXML(System.Xml.XmlDocument doc,


Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents infoEvents)
{

XmlElement elementRoot;
XmlNode propertyNode;

// Create a new node to persist the object and its properties.


elementRoot = doc.CreateElement(String.Empty, PERSIST_ELEMENT,
String.Empty);

// Save the three properties of the object from variables into XML.
propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_SERVER,
String.Empty);
propertyNode.InnerText = _serverName;
elementRoot.AppendChild(propertyNode);

propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_DATABASE,


String.Empty);
propertyNode.InnerText = _databaseName;
elementRoot.AppendChild(propertyNode);

propertyNode = doc.CreateNode(XmlNodeType.Element,
PERSIST_CONNECTIONSTRING, String.Empty);
propertyNode.InnerText = _connectionString;
elementRoot.AppendChild(propertyNode);

doc.AppendChild(elementRoot);

Voir aussi
Développement d’objets personnalisés pour Integration Services
Génération, déploiement et débogage d’objets personnalisés
Génération, déploiement et débogage
d'objets personnalisés
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Après avoir écrit le code d’un objet personnalisé pour Integration Services, vous devez
générer l’assembly, le déployer, l’intégrer dans le concepteur SSIS afin qu’il puisse être
utilisé dans des packages, puis le tester et le déboguer.

Étapes pour générer, déployer et déboguer un


objet personnalisé pour Integration Services
Vous avez déjà écrit les fonctionnalités personnalisées de votre objet. À présent, vous
devez les tester et les rendre disponibles aux utilisateurs. Les étapes sont très similaires
pour tous les types d'objets personnalisés que vous pouvez créer pour Integration
Services.

Voici les étapes à suivre pour générer, déployer et tester votre objet personnalisé.

1. Signez l’assembly à générer à l’aide d’un nom fort.

2. Générez l’assembly.

3. Déployez l’assembly en le déplaçant ou en le copiant dans le dossier Integration


Services approprié.

4. Installez l’assembly dans le Global Assembly Cache (GAC).

L'objet est automatiquement ajouté à la boîte à outils.

5. Résolvez les problèmes liés au déploiement, si nécessaire.

6. Testez et déboguez votre code.

Vous pouvez désormais utiliser le concepteur SSIS dans SQL Server Data Tools (SSDT)
pour créer, gérer et exécuter des packages qui ciblent différentes versions de SQL
Server. Pour plus d’informations sur l’impact de cette amélioration sur vos extensions
personnalisées, consultez Getting your SSIS custom extensions to be supported by the
multi-version support of SSDT 2015 for SQL Server 2016 .
Signature de l'assembly
Lorsqu'un assembly est destiné à être partagé, il doit être installé dans le Global
Assembly Cache. Une fois que l'assembly est ajouté au Global Assembly Cache, il peut
être utilisé par des applications telles que SQL Server Data Tools (SSDT). Une exigence
du Global Assembly Cache stipule que l'assembly doit être signé avec un nom fort,
lequel garantit qu'un assembly est globalement unique. Un assembly avec nom fort
possède un nom qualifié complet qui comprend son nom, sa culture, sa clé publique et
son numéro de version. Le runtime utilise ces informations pour rechercher l'assembly et
le distinguer des autres assemblys portant le même nom.

Pour signer un assembly avec un nom fort, vous devez d'abord avoir ou créer une paire
de clés publique/privée. Cette paire de clés de chiffrement publique et privée est utilisée
au moment de la génération pour créer un assembly avec nom fort.

Pour plus d'informations sur les noms forts et sur les étapes à suivre pour signer un
assembly, consultez les rubriques suivantes dans la documentation du Kit de
développement logiciel .NET Framework :

Assemblys avec noms forts

Création d'une paire de clés

Signature d'un assembly avec un nom fort

Vous pouvez signer facilement votre assembly avec un nom fort dans Visual Studio au
moment de la génération. Dans la boîte de dialogue Propriétés du projet, sélectionnez
l’onglet Signature. Sélectionnez l’option Signer l’assembly et indiquez le chemin du
fichier de clé (.snk).

Génération de l'assembly
Après avoir signé le projet, vous devez générer ou regénérer le projet ou la solution en
utilisant les commandes disponibles dans le menu Générer de SQL Server Data Tools.
Votre solution peut contenir un projet séparé d' interface utilisateur personnalisée,
lequel doit également être signé avec un nom fort et peut être généré en même temps.

La méthode la plus pratique pour effectuer les deux étapes suivantes, à savoir le
déploiement de l’assembly et son installation dans le Global Assembly Cache, consiste à
écrire le script de ces étapes sous la forme d’un événement post-build dans Visual
Studio. Les événements de génération sont disponibles sur la page Compiler des
propriétés d’un projet Visual Basic et sur la page Événements de génération d’un
projet C#. Le chemin complet est requis pour les utilitaires d’invite de commandes tels
que gacutil.exe. Les guillemets sont requis à la fois autour des chemins d'accès qui
contiennent des espaces et autour des macros telles que $(TargetPath) qui s'étendent
aux chemins d'accès qui contiennent des espaces.

Voici un exemple de ligne de commande d'événement après génération pour un


module fournisseur d'informations personnalisé :

Invite de commandes Windows

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0


Tools\gacutil.exe" -u $(TargetName)
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0
Tools\gacutil.exe" -i $(TargetFileName)
copy $(TargetFileName) "C:\Program Files\Microsoft SQL
Server\130\DTS\LogProviders "

Déploiement des assemblys


Le concepteur SSIS localise les objets personnalisés disponibles dans les packages en
énumérant les fichiers trouvés dans une série de dossiers créés lors de l’installation de
SQL Server Integration Services. Lorsque les paramètres d’installation SQL Server par
défaut sont utilisés, cet ensemble de dossiers se trouve sous C:\Program Files\Microsoft
SQL Server\130\DTS. Toutefois, si vous créez un programme d’installation pour votre
objet personnalisé, vous devez examiner la valeur de la clé de Registre
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL
Server\130\SSIS\Setup\DtsPath pour vérifier l’emplacement de ce dossier.

7 Notes

Pour plus d’informations sur le déploiement des composants personnalisés de


manière appropriée pour qu’ils fonctionnent correctement avec la prise en charge
multi-version de SQL Server Data Tools, consultez Getting your SSIS custom
extensions to be supported by the multi-version support of SSDT 2015 for SQL
Server 2016 .

Vous pouvez placer l'assembly dans le dossier de deux manières :

Déplacez ou copiez l'assembly compilé vers le dossier approprié après l'avoir


généré. (Par commodité, vous pouvez inclure la commande de copie dans un
événement après génération.)

Générez directement l'assembly dans le dossier approprié.


Les dossiers de déploiement suivants situés sous C:\Program Files\Microsoft SQL
Server\130\DTS sont utilisés pour les différents types d’objets personnalisés :

Objet personnalisé Dossier de déploiement

Tâche Tâches

Gestionnaire de connexions Connexions

Module fournisseur d'informations LogProviders

Composant de flux de données PipelineComponents

7 Notes

Les assemblys sont copiés vers ces dossiers pour prendre en charge l'énumération
des tâches, gestionnaires de connexions, etc. disponibles. Par conséquent, vous ne
devez pas déployer des assemblys qui contiennent uniquement l'interface
utilisateur personnalisée des objets personnalisés vers ces dossiers.

Installation de l'assembly dans le Global


Assembly Cache
Pour installer l’assembly de tâche dans le Global Assembly Cache (GAC), utilisez l’outil en
ligne de commande gacutil.exe ou faites glisser les assemblys vers le répertoire
%system%\assembly . Par commodité, vous pouvez également inclure l’appel de

gacutil.exe dans un événement post-build.

La commande suivante installe un composant nommé MyTask.dll dans le GAC en


utilisant gacutil.exe.

gacutil /iF MyTask.dll

Vous devez fermer et rouvrir le Concepteur SSIS après avoir installé une nouvelle version
de votre objet personnalisé. Si vous avez installé des versions antérieures de votre objet
personnalisé dans le Global Assembly Cache, vous devez les supprimer avant d'installer
la nouvelle version. Pour désinstaller un assembly, exécutez gacutil.exe et spécifiez le
nom de l’assembly avec l’option /u .

Pour plus d'informations sur le Global Assembly Cache, consultez Global Assembly
Cache Tool (Gactutil.exe) dans .NET Framework Tools.
Dépannage du déploiement
Si votre objet personnalisé apparaît dans la boîte à outils ou la liste des objets
disponibles, mais que vous n’êtes pas en mesure de l’ajouter à un package, essayez la
procédure suivante :

1. Recherchez plusieurs versions de votre composant dans le Global Assembly Cache.


S'il existe plusieurs versions du composant dans le Global Assembly Cache, il est
possible que le concepteur ne soit pas en mesure de charger votre composant.
Supprimez toutes les instances de l'assembly dans le Global Assembly Cache et
ajoutez de nouveau l'assembly.

2. Assurez-vous qu'une seule instance unique de l'assembly existe dans le dossier de


déploiement.

3. Actualisez la boîte à outils.

4. Attachez Visual Studio à devenv.exe et définissez un point d’arrêt pour parcourir


pas à pas votre code d’initialisation afin de vérifier qu’aucune exception ne se
produit.

Test et débogage du code


L’approche la plus simple pour déboguer les méthodes d’exécution d’un objet
personnalisé consiste à démarrer dtexec.exe à partir de Visual Studio après avoir généré
votre objet personnalisé et à exécuter un package qui utilise le composant.

Si vous souhaitez déboguer les méthodes de conception du composant, comme la


méthode Validate, ouvrez un package qui utilise le composant dans une deuxième
instance de Visual Studio et effectuez un attachement à son processus devenv.exe.

Si vous souhaitez également déboguer les méthodes d’exécution du composant


lorsqu’un package est ouvert et en cours d’exécution dans le concepteur SSIS, vous
devez forcer une pause dans l’exécution du package afin de pouvoir également
effectuer un attachement au processus DtsDebugHost.exe.

Pour déboguer les méthodes d'exécution d'un objet à l'aide d'un


attachement à dtexec.exe
1. Signez et générez votre projet dans la configuration de débogage, déployez-le et
installez-le dans le Global Assembly Cache comme indiqué dans cette rubrique.
2. Sous l’onglet Déboguer des Propriétés du projet, sélectionnez Démarrer le
programme externe comme Première action et localisez dtexec.exe, installé par
défaut dans C:\Program Files\Microsoft SQL Server\130\DTS\Binn.

3. Dans la zone de texte Options de ligne de commande, sous Options de


démarrage, entrez les arguments de ligne de commande requis pour exécuter un
package qui utilise votre composant. Souvent, l'argument de ligne de commande
sera consitué du commutateur /F[ILE] suivi du chemin d'accès et du nom du fichier
.dtsx. Pour plus d'informations, consultez Utilitaire dtexec.

4. Définissez des points d'arrêt dans le code source aux emplacements appropriés
dans les méthodes d'exécution de votre composant.

5. Exécutez votre projet.

Pour déboguer les méthodes de conception d'un objet


personnalisé via un attachement aux outils de données SQL Server
1. Signez et générez votre projet dans la configuration de débogage, déployez-le et
installez-le dans le Global Assembly Cache comme indiqué dans cette rubrique.

2. Définissez des points d'arrêt dans le code source aux emplacements appropriés
dans les méthodes de conception de votre objet personnalisé.

3. Ouvrez une deuxième instance de Visual Studio et chargez un projet Integration


Services qui contient un package qui utilise l'objet personnalisé.

4. Dans la première instance de Visual Studio, effectuez un attachement à la


deuxième instance de devenv.exe dans laquelle le package est chargé en
sélectionnant Attacher au processus dans le menu Déboguer de la première
instance.

5. Exécutez le package à partir de la deuxième instance de Visual Studio.

Pour déboguer les méthodes d'exécution d'un objet personnalisé


via un attachement aux outils de données SQL Server

1. Après avoir effectué les étapes répertoriées dans la procédure précédente, forcez
une pause dans l’exécution de votre package afin de pouvoir effectuer un
attachement à DtsDebugHost.exe. Vous pouvez forcer cette pause en ajoutant un
point d’arrêt à l’événement OnPreExecute ou en ajoutant une tâche de script à
votre projet et en entrant un script qui affiche une zone de message modale.
2. Exécutez le package. Lorsque la pause se produit, basculez vers l’instance de Visual
Studio dans laquelle votre projet de code est ouvert et sélectionnez Attacher au
processus dans le menu Déboguer. Assurez-vous d’effectuer l’attachement à
l’instance de DtsDebugHost.exe répertoriée sous le nom Managé, x86 dans la
colonne Type, et non à l’instance répertoriée sous le nom x86 seulement.

3. Revenez au package mis en pause et passez le point d’arrêt, ou cliquez sur OK


pour fermer le message généré par la tâche de script, puis continuez l’exécution et
le débogage du package.

Voir aussi
Développement d’objets personnalisés pour Integration Services
Persistance des objets personnalisés
Outils de dépannage pour le développement des packages
Prendre en charge le multi-ciblage dans
les composants personnalisés
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous pouvez désormais utiliser le concepteur SSIS dans SQL Server Data Tools (SSDT)
pour créer, gérer et exécuter des packages qui ciblent SQL Server 2016, SQL Server 2014
ou SQL Server 2012. Pour obtenir SSDT pour Visual Studio 2015, consultez Télécharger la
dernière version de SQL Server Data Tools.

Dans l’Explorateur de solutions, cliquez avec le bouton droit sur un projet Integration
Services, puis sélectionnez Propriétés pour ouvrir les pages de propriétés du projet.
Sous l’onglet Général de Propriétés de configuration, sélectionnez la propriété
TargetServerVersion, puis choisissez SQL Server 2016, SQL Server 2014 ou SQL
Server 2012.

Prise en charge de versions multiples et


multiciblage pour les composants
personnalisés
Les cinq types d’extensions SSIS personnalisées prennent en charge le multiciblage.

Gestionnaires de connexions
Tâches
Énumérateurs
Modules fournisseurs d'informations
Composants de flux de données

Pour les extensions managées, le concepteur SSIS charge la version de l’extension


correspondant à la version cible spécifiée. Par exemple :

Lorsque la version cible est SQL Server 2012, le concepteur charge la version 2012
de l’extension.
Lorsque la version cible est SQL Server 2016, le concepteur charge la version 2016
de l’extension.

Les extensions COM ne prennent pas en charge le multiciblage. Le concepteur SSIS


charge toujours l’extension COM pour la version actuelle de SQL Server, quelle que soit
la version cible spécifiée.

Ajouter la prise en charge de base des versions


multiples et du multiciblage
Pour plus d’informations et des conseils, consultez bien vos extensions personnalisées
SSIS pour être pris en charge par la prise en charge de plusieurs version de SSDT 2015
for SQL Server 2016 . Ce billet de blog décrit les étapes et exigences suivantes :

Déployer vos assemblys dans les dossiers appropriés.

Créer un fichier de mappage d’extensions pour SQL Server 2014 et ultérieur.

Ajouter du code permettant de changer de


version

Changer de version dans un gestionnaire de connexions,


une tâche, un énumérateur ou un module fournisseur
d’informations personnalisé
Pour un gestionnaire de connexions, une tâche, un énumérateur ou un module
fournisseur d’informations personnalisé, ajoutez une logique de passage à une version
antérieure dans la méthode SaveToXML.

C#

public void SaveToXML(XmlDocument doc, IDTSInfoEvents events)


{
if (TargetServerVersion == DTSTargetServerVersion.SQLServer2014)
{
// Add logic to downgrade from SQL Server 2016 to SQL Server 2014.
}

if (TargetServerVersion == DTSTargetServerVersion.SQLServer2012)
{
// Add logic to downgrade from SQL Server 2016 to SQL Server 2012.
}
}

Changer de version dans un composant de flux de


données personnalisé
Pour un gestionnaire de connexions, une tâche, un énumérateur ou un module
fournisseur d’informations personnalisé, ajoutez une logique de passage à une version
antérieure dans la nouvelle méthode PerformDowngrade.

C#

public override void PerformDowngrade(int pipelineVersion,


DTSTargetServerVersion targetServerVersion)
{
if (targetServerVersion == DTSTargetServerVersion.DTSTSV_SQLSERVER2014)
{
// Add logic to downgrade from SQL Server 2016 to SQL Server 2014.
ComponentMetaData.Version = 8;
}

if (targetServerVersion == DTSTargetServerVersion.DTSTSV_SQLSERVER2012)
{
// Add logic to downgrade from SQL Server 2016 to SQL Server 2012.
ComponentMetaData.Version = 6;
}
}

Erreurs courantes

InvalidCastException
Message d’erreur. Impossible d’effectuer un cast d’un objet COM de type
’System.__ComObject’ en type d’interface
’Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100’. Cette
opération a échoué car l’appel QueryInterface sur le composant COM pour l’interface
avec l’IID ’{BE8C48A3-155B-4810-BA5C-BDF68A659E9E}’ a échoué en raison de l’erreur
suivante : interface non prise en charge (Exception de HRESULT : 0 x 80004002
(E_NOINTERFACE)). (Microsoft.SqlServer.DTSPipelineWrap).

Solution. Si votre extension personnalisée fait référence à des assemblys


d’interopérabilité SSIS comme Microsoft.SqlServer.DTSPipelineWrap ou
Microsoft.SqlServer.DTSRuntimeWrap, définissez la valeur de la propriété Incorporer les
types d’interopérabilité sur False.

Impossible de charger certains types lorsque la version


cible est SQL Server 2012
Ce problème affecte certains types comme IErrorReportingService ou
IUserPromptService.

Message d’erreur (exemple). Impossible de charger le type


’Microsoft.DataWarehouse.Design.IErrorReportingService’ à partir de l’assembly
’Microsoft.DataWarehouse, Version = 13.0.0.0, Culture = neutral, PublicKeyToken =
89845dcd8080cc91’.

Solution de contournement : Utilisez un objet MessageBox à la place de ces interfaces


lorsque la version cible est SQL Server 2012.
Développement d'une tâche
personnalisée
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Integration Services utilise des tâches pour effectuer des unités de travail en soutien à
l'extraction, la transformation et le chargement de données. Integration Services inclut
une variété de tâches qui effectuent les actions les plus fréquemment utilisées, allant de
l'exécution d'une instruction SQL au téléchargement d'un fichier à partir d'un site FTP. Si
les tâches incluses et les actions prises en charge ne répondent pas complètement à vos
besoins, vous pouvez créer une tâche personnalisée.

Pour créer une tâche personnalisée, vous devez créer une classe qui hérite de la classe
de base Microsoft.SqlServer.Dts.Runtime.Task, appliquer l’attribut DtsTaskAttribute à
votre nouvelle classe et remplacer les méthodes et propriétés importantes de la classe
de base, notamment la méthode Execute.

Dans cette section


Cette section explique comment créer, configurer et coder une tâche personnalisée et
son interface utilisateur personnalisée facultative.

Création d’une tâche personnalisée


Décrit la première étape, à savoir la création de la tâche personnalisée.

Codage d’une tâche personnalisée


Décrit comment coder les méthodes principales d'une tâche personnalisée.

Connexion à des sources de données dans une tâche personnalisée


Décrit comment connecter une tâche personnalisée à une source de données.

Déclenchement et définition d’événements dans une tâche personnalisée


Décrit comment déclencher des événements et définir des événements personnalisés à
partir de la tâche personnalisée.

Ajout de la prise en charge du débogage dans une tâche personnalisée


Décrit comment créer des cibles de points d'arrêt dans la tâche personnalisée.

Développement d’une interface utilisateur pour une tâche personnalisée


Explique comment créer une interface utilisateur qui s'affiche dans le Concepteur SSIS
pour configurer des propriétés sur la tâche personnalisée.

Sections connexes

Informations communes à tous les objets personnalisés


Pour obtenir les informations communes à tous les types d'objets personnalisés que
vous pouvez créer dans Integration Services, consultez les rubriques suivantes :

Développement d’objets personnalisés pour Integration Services


Décrit les étapes de base pour implémenter tous les types d'objets personnalisés pour
Integration Services.

Persistance des objets personnalisés


Décrit la persistance personnalisée et explique les situations dans lesquelles elle est
nécessaire.

Génération, déploiement et débogage d’objets personnalisés


Décrit les techniques permettant de générer, signer, déployer et déboguer des objets
personnalisés.

Informations sur les autres objets personnalisés


Pour plus d'informations sur les autres types d'objets personnalisés que vous pouvez
créer dans Integration Services, consultez les rubriques suivantes :

Développement d’un gestionnaire de connexions personnalisé


Explique comment programmer des gestionnaires de connexions personnalisés.

Développement d’un module fournisseur d’informations personnalisé


Explique comment programmer des modules fournisseurs d'informations personnalisés.

Développement d’un énumérateur ForEach personnalisé


Décrit comment programmer des énumérateurs personnalisés.

Développement d’un composant de flux de données personnalisé


Explique comment programmer des sources, des transformations et des destinations de
flux de données personnalisées.

Voir aussi
Extension du package à l’aide de la tâche de script
Comparaison des solutions de script et des objets personnalisés
Création d'une tâche personnalisée
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les étapes de création d'une tâche personnalisée sont semblables aux étapes de
création de tout autre objet personnalisé pour Integration Services :

Créer une classe qui hérite de la classe de base. Pour une tâche, la classe de base
est Microsoft.SqlServer.Dts.Runtime.Task.

Appliquer l'attribut qui identifie le type d'objet auprès de la classe. Pour une tâche,
l'attribut est DtsTaskAttribute.

Substituer l'implémentation des méthodes et des propriétés de la classe de base.


Pour une tâche, il s'agit notamment des méthodes Validate et Execute.

Développer éventuellement une interface utilisateur personnalisée. Pour une tâche,


cette opération requiert une classe qui implémente l'interface IDtsTaskUI.

Mise en route d'une tâche personnalisée

Création de projets et de classes


Comme toutes les tâches managées dérivent de la classe de base
Microsoft.SqlServer.Dts.Runtime.Task, la première étape de création d’une tâche
personnalisée consiste à créer un projet Bibliothèque de classes dans votre langage de
programmation managé par défaut et créer une classe qui hérite de la classe de base.
Dans cette classe dérivée, vous devez substituer les méthodes et les propriétés de la
classe de base pour implémenter vos fonctionnalités personnalisées.

Dans la même solution, créez un deuxième projet Bibliothèque de classes pour


l'interface utilisateur personnalisée. Il est recommandé d'utiliser un assembly distinct
pour l'interface utilisateur afin de faciliter le déploiement car vous pouvez ainsi mettre à
jour et redéployer le gestionnaire de connexions ou son interface utilisateur de manière
indépendante.

Configurez les deux projets pour qu'ils signent les assemblys qui seront créés au
moment de la génération à l'aide d'un fichier de clé de nom fort.

Application de l'attribut DtsTask


Appliquez l'attribut DtsTaskAttribute à la classe que vous avez créée pour l'identifier en
tant que tâche. Cet attribut fournit des informations au moment de la conception, telles
que le nom, la description et le type de la tâche.

Utilisez la propriété UITypeName pour lier la tâche à son interface utilisateur


personnalisée. Pour obtenir le jeton de clé publique requis pour cette propriété, vous
pouvez utiliser sn.exe -t de manière à afficher le jeton de clé publique du fichier de paire
de clés (.snk) que vous voulez utiliser pour signer l’assembly de l’interface utilisateur.

C#

using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace Microsoft.SSIS.Samples
{
[DtsTask
(
DisplayName = "MyTask",
IconResource = "MyTask.MyTaskIcon.ico",
UITypeName = "My Custom Task," +
"Version=1.0.0.0," +
"Culture = Neutral," +
"PublicKeyToken = 12345abc6789de01",
TaskType = "PackageMaintenance",
TaskContact = "MyTask; company name; any other information",
RequiredProductLevel = DTSProductLevel.None
)]
public class MyTask : Task
{
// Your code here.
}
}

VB

Imports System
Imports Microsoft.SqlServer.Dts.Runtime

<DtsTask(DisplayName:="MyTask", _
IconResource:="MyTask.MyTaskIcon.ico", _
UITypeName:="My Custom Task," & _
"Version=1.0.0.0,Culture=Neutral," & _
"PublicKeyToken=12345abc6789de01", _
TaskType:="PackageMaintenance", _
TaskContact:="MyTask; company name; any other information", _
RequiredProductLevel:=DTSProductLevel.None)> _
Public Class MyTask
Inherits Task

' Your code here.


End Class 'MyTask

Génération, déploiement et débogage d'une


tâche personnalisée
Les étapes pour générer, déployer et déboguer une tâche personnalisée dans
Integration Services sont très semblables aux étapes requises pour les autres types
d'objets personnalisés. Pour plus d’informations, consultez Génération, déploiement et
débogage d’objets personnalisés.

Voir aussi
Création d’une tâche personnalisée
Codage d’une tâche personnalisée
Développement d’une interface utilisateur pour une tâche personnalisée
Codage d'une tâche personnalisée
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Après avoir créé une classe qui hérite de la classe de base


Microsoft.SqlServer.Dts.Runtime.Task, puis appliqué l’attribut DtsTaskAttribute à cette
classe, vous devez substituer l’implémentation des propriétés et des méthodes de la
classe de base afin de fournir vos fonctionnalités personnalisées.

Configuration de la tâche

Validation de la tâche
Lorsque vous concevez un package Integration Services, vous pouvez utiliser la
validation pour vérifier des paramètres sur chaque tâche, afin d'intercepter les
paramètres incorrects ou inappropriés dès qu'ils sont définis, au lieu de détecter toutes
les erreurs uniquement au moment de l'exécution. L'objectif de la validation est de
déterminer si la tâche contient des paramètres ou connexions non valides qui
l'empêcheront de s'exécuter avec succès. Elle permet de veiller à ce que le package
contienne des tâches qui ont de bonnes chances de s'exécuter dès leur premier essai.

Vous pouvez implémenter la validation à l’aide de la méthode Validate dans du code


personnalisé. Le moteur d’exécution valide une tâche en appelant la méthode Validate
sur cette tâche. Il incombe au développeur de la tâche de définir les critères d'une
validation de tâche réussie ou non réussie, et de notifier le moteur d'exécution du
résultat de cette évaluation.

Classe de base abstraite d'une tâche

La classe de base abstraite Microsoft.SqlServer.Dts.Runtime.Task fournit la méthode


Validate que chaque tâche remplace pour définir ses critères de validation. Le
concepteur SSIS appelle automatiquement la méthode Validate à plusieurs reprises lors
de la conception du package, puis fournit des signaux visuels à l’utilisateur lorsque des
avertissements ou des erreurs se produisent afin de faciliter l’identification des
problèmes liés à la configuration de la tâche. Les tâches fournissent les résultats de la
validation en renvoyant une valeur de l'énumération DTSExecResult, puis en déclenchant
des événements d'avertissement et d'erreur. Ces événements contiennent des
informations qui s'affichent pour l'utilisateur dans le Concepteur SSIS.
Voici quelques exemples pour la validation :

Un gestionnaire de connexions valide le nom de fichier spécifique.

Un gestionnaire de connexions confirme que le type d'entrée correspond au type


attendu, tel qu'un fichier XML.

Une tâche qui attend une entrée de base de données vérifie qu'elle ne reçoit pas
de données provenant d'une connexion autre qu'une connexion de base de
données.

Une tâche garantit qu'aucune de ses propriétés ne contredit l'autre jeu de


propriétés sur la même tâche.

Une tâche garantit que toutes les ressources requises utilisées par la tâche au
moment de l'exécution sont disponibles.

Les performances sont un élément à prendre en compte pour déterminer ce qui est
validé et ce qui ne l'est pas. Par exemple, l'entrée d'une tâche peut être une connexion
sur un réseau dont la bande passante est faible ou le trafic encombré. La validation
risque de nécessiter plusieurs secondes de traitement si vous décidez de valider la
disponibilité de la ressource. Une autre validation peut provoquer un aller-retour vers un
serveur très demandé et la routine de validation peut être lente. Bien qu'il existe de
nombreuses propriétés et paramètres pouvant être validés, tout ne doit pas être validé.

Le code inclus dans la méthode Validate est également appelé par TaskHost avant
exécution de la tâche et TaskHost annule l’exécution si la validation échoue.

Considérations liées à l'interface utilisateur pendant la validation


La Microsoft.SqlServer.Dts.Runtime.Task comprend une interface IDTSComponentEvents
en tant que paramètre de la méthode Validate. L'interface IDTSComponentEvents
contient les méthodes appelées par la tâche afin de déclencher des événements pour le
moteur d'exécution. Les méthodes FireWarning et FireError sont appelées lorsqu'un
avertissement ou une condition d'erreur se produisent pendant la validation. Ces deux
méthodes d'avertissement requièrent les mêmes paramètres, qui incluent un code
d'erreur, un composant source, une description, un fichier d'aide et des informations
d'aide contextuelles. Le Concepteur SSIS utilise ces informations pour afficher des
signaux visuels sur l'aire de conception. Les signaux visuels fournis par le concepteur
incluent une icône d'exclamation qui apparaît en regard de la tâche sur l'aire du
concepteur. Ce signal visuel indique à l'utilisateur que la tâche requiert une
configuration supplémentaire pour que l'exécution puisse continuer.
L'icône d'exclamation affiche également une info-bulle qui contient un message
d'erreur. Le message d'erreur est fourni par la tâche dans le paramètre de description de
l'événement. Les messages d’erreur sont également affichés dans le volet Liste des
tâches de SQL Server Data Tools (SSDT), lequel fournit à l’utilisateur un emplacement
central pour consulter toutes les erreurs de validation.

Exemple de validation
L’exemple de code suivant présente une tâche avec une propriété UserName. Cette
propriété a été spécifiée comme requis pour que la validation réussisse. Si la propriété
n'est pas définie, la tâche publie une erreur et retourne l'objet Failure de l'énumération
DTSExecResult. La méthode Validate est encapsulée dans un bloc try/catch et fait
échouer la validation si une exception se produit.

VB

Imports System
Imports Microsoft.SqlServer.Dts.Runtime

Public Class SampleTask


Inherits Task

Private _userName As String = ""

Public Overrides Function Validate(ByVal connections As Connections, _


ByVal variableDispenser As VariableDispenser, _
ByVal events As IDTSComponentEvents, _
ByVal log As IDTSLogging) As DTSExecResult

Try
If Me._userName = "" Then
' Raise an OnError event.
events.FireError(0, "SampleTask", "The UserName property must be
configured.", "", 0)
' Fail validation.
Return DTSExecResult.Failure
End If
' Return success.
Return DTSExecResult.Success
Catch exception As System.Exception
' Capture exceptions, post an error, and fail validation.
events.FireError(0, "Sampletask", exception.Message, "", 0)
Return DTSExecResult.Failure
End Try

End Function

Public Property UserName() As String


Get
Return Me._userName
End Get
Set(ByVal Value As String)
Me._userName = Value
End Set
End Property

End Class

Persistance de la tâche
En règle générale, vous n'avez pas à implémenter une persistance personnalisée pour
une tâche. Une persistance personnalisée est uniquement requise lorsque les propriétés
d'un objet utilisent des types de données complexes. Pour plus d’informations,
consultez Développement d’objets personnalisés pour Integration Services.

Exécution de la tâche
Cette section décrit comment utiliser la méthode Execute qui est héritée et remplacée
par des tâches. Elle explique également les différentes façons de fournir des
informations concernant les résultats de l'exécution des tâches.

Méthode Execute
Tâches contenues dans l’exécution d’un package lorsque le runtime Integration Services
appelle leur méthode Execute. Les tâches implémentent leurs logique métier et
fonctionnalités principales dans cette méthode, puis fournissent les résultats de
l’exécution en publiant des messages, en renvoyant une valeur de l’énumération
DTSExecResult et en remplaçant la propriété get de la propriété ExecutionValue.

La classe de base Microsoft.SqlServer.Dts.Runtime.Task fournit une implémentation par


défaut de la méthode Execute. Les tâches personnalisées substituent cette méthode
pour définir leurs fonctionnalités d'exécution. L'objet TaskHost encapsule la tâche, en
l'isolant du moteur d'exécution et des autres objets compris dans le package. En raison
de cette isolation, la tâche n'a pas connaissance de son emplacement dans le package
pour ce qui est de son ordre d'exécution et elle s'exécute uniquement lorsqu'elle est
appelée par le runtime. Cette architecture empêche certains problèmes qui peuvent se
produire lorsque les tâches modifient le package pendant l'exécution. La tâche peut
accéder aux autres objets compris dans le package uniquement via les objets qui lui
sont fournis comme paramètres dans la méthode Execute. Ces paramètres permettent
aux tâches de déclencher des événements, d'écrire des entrées dans le journal des
événements, d'accéder à la collection de variables et d'inscrire des connexions aux
sources de données dans les transactions, tout en maintenant quand même l'isolation
nécessaire pour garantir la stabilité et la fiabilité du package.

Le tableau suivant répertorie les paramètres fournis à la tâche dans la méthode Execute.

Paramètre Description

Connections Contient une collection d'objets ConnectionManager disponibles pour la


tâche.

VariableDispenser Contient les variables disponibles pour la tâche. Les tâches utilisent des
variables via VariableDispenser ; les tâches n'utilisent pas des variables
directement. Le distributeur de variables verrouille et déverrouille les
variables, et empêche les blocages ou les remplacements.

IDTSComponentEvents Contient les méthodes appelées par la tâche pour déclencher des
événements pour le moteur d'exécution.

IDTSLogging Contient les méthodes et propriétés utilisées par la tâche pour écrire des
entrées dans le journal des événements.

Object Contient l'objet de transaction dont le conteneur fait partie, le cas


échéant. Cette valeur est transmise en tant que paramètre à la méthode
AcquireConnection d'un objet ConnectionManager.

Envoi de commentaires d'exécution


Les tâches encapsulent leur code dans des blocs try/catch pour empêcher le
déclenchement d’exceptions sur le moteur d’exécution. Cela permet de veiller à ce que
le package finisse l'exécution et ne s'arrête pas de façon inattendue. Toutefois, le moteur
d'exécution fournit d'autres mécanismes pour gérer les conditions d'erreur qui peuvent
se produire pendant l'exécution d'une tâche. Ceux-ci incluent la publication de
messages d'erreur et d'avertissement, le renvoi d'une valeur de la structure
DTSExecResult, la publication de messages, le renvoi de la valeur DTSExecResult et la
divulgation d'informations sur les résultats de l'exécution des tâches via la propriété
ExecutionValue.

L'interface IDTSComponentEvents contient les méthodes FireWarning et FireError, qui


peuvent être appelées par la tâche pour publier des messages d'erreur et
d'avertissement sur le moteur d'exécution. Ces deux méthodes requièrent des
paramètres tels qu'un code d'erreur, un composant source, une description, un fichier
d'aide et des informations d'aide contextuelles. Selon la configuration de la tâche, le
runtime répond à ces messages en déclenchant des événements et des points d'arrêt,
ou en écrivant des informations dans le journal des événements.
L'objet TaskHost fournit également la propriété ExecutionValue qui peut être utilisée
pour fournir des informations supplémentaires à propos des résultats de l'exécution. Par
exemple, si une tâche supprime des lignes d’une table dans le cadre de sa méthode
Execute, elle peut retourner le nombre de lignes supprimées sous la forme de la valeur
de la propriété ExecutionValue. En outre, l'objet TaskHost fournit la propriété
ExecValueVariable. Cette propriété permet à l'utilisateur de mapper la propriété
ExecutionValue renvoyée à partir de la tâche vers toute variable visible pour la tâche. Il
est alors possible d'utiliser la variable spécifiée pour établir des contraintes de
précédence entre les tâches.

Exemple d'exécution
L’exemple de code suivant montre une implémentation de la méthode Execute et
affiche une propriété ExecutionValue remplacée. La tâche supprime le fichier spécifié
par la propriété fileName de la tâche. La tâche publie un avertissement si le fichier
n’existe pas ou si la propriété fileName est une chaîne vide. La tâche renvoie une valeur
Boolean dans la propriété ExecutionValue pour indiquer si le fichier a été supprimé.

VB

Imports System
Imports Microsoft.SqlServer.Dts.Runtime

Public Class SampleTask


Inherits Task

Private _fileName As String = ""


Private _fileDeleted As Boolean = False

Public Overrides Function Execute(ByVal cons As Connections, _


ByVal vars As VariableDispenser, ByVal events As IDTSComponentEvents, _
ByVal log As IDTSLogging, ByVal txn As Object) As DTSExecResult

Try
If Me._fileName = "" Then
events.FireWarning(0, "SampleTask", "No file specified.", "", 0)
Me._fileDeleted = False
Else
If System.IO.File.Exists(Me._fileName) Then
System.IO.File.Delete(Me._fileName)
Me._fileDeleted = True
Else
Me._fileDeleted = False
End If
End If
Return DTSExecResult.Success
Catch exception As System.Exception
' Capture the exception and post an error.
events.FireError(0, "Sampletask", exception.Message, "", 0)
Return DTSExecResult.Failure
End Try

End Function

Public Property FileName() As String


Get
Return Me._fileName
End Get
Set(ByVal Value As String)
Me._fileName = Value
End Set
End Property

Public Overrides ReadOnly Property ExecutionValue() As Object


Get
Return Me._fileDeleted
End Get
End Property

End Class

Voir aussi
Création d’une tâche personnalisée
Codage d’une tâche personnalisée
Développement d’une interface utilisateur pour une tâche personnalisée
Connexion à des sources de données
dans une tâche personnalisée
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les tâches se connectent à des sources de données externes pour extraire ou enregistrer
des données à l'aide d'un gestionnaire de connexions. Au moment de la conception, un
gestionnaire de connexions représente une connexion logique et décrit des
informations clés telles que le nom du serveur et des propriétés d'authentification. Au
moment de l'exécution, les tâches appellent la méthode AcquireConnection du
gestionnaire de connexions pour établir la connexion physique à la source de données.

Étant donné qu'un package peut contenir de nombreuses tâches, lesquelles peuvent
chacune avoir des connexions à des sources de données différentes, le package suit
tous les gestionnaires de connexions dans une collection, la collection Connections. Les
tâches utilisent la collection de leur package pour rechercher le gestionnaire de
connexions qu'elles utiliseront pendant la validation et l'exécution. La collection
Connections constitue le premier paramètre des méthodes Validate et Execute.

Vous pouvez empêcher la tâche d'utiliser le mauvais gestionnaire de connexions en


présentant les objets ConnectionManager de la collection à l'utilisateur, en utilisant une
boîte de dialogue ou une liste déroulante dans l'interface utilisateur graphique. Cela
permet à l'utilisateur de disposer d'un moyen d'effectuer une sélection uniquement
parmi les objets ConnectionManager du type approprié et contenus dans le package.

Les tâches appellent la méthode AcquireConnection pour établir la connexion physique


à la source de données. La méthode renvoie l'objet de connexion sous-jacent qui peut
alors être utilisé par la tâche. Étant donné que le gestionnaire de connexions isole de la
tâche les détails d'implémentation de l'objet de connexion sous-jacent, la tâche doit
seulement appeler la méthode AcquireConnection pour établir la connexion et n'a pas à
s'occuper des autres aspects de la connexion.

Exemple
L'exemple de code suivant montre la validation du nom ConnectionManager dans les
méthodes Validate et Execute, puis indique comment utiliser la méthode
AcquireConnection pour établir la connexion physique dans la méthode Execute.

VB
Private _connectionManagerName As String = ""

Public Property ConnectionManagerName() As String


Get
Return Me._connectionManagerName
End Get
Set(ByVal Value As String)
Me._connectionManagerName = value
End Set
End Property

Public Overrides Function Validate( _


ByVal connections As Microsoft.SqlServer.Dts.Runtime.Connections, _
ByVal variableDispenser As
Microsoft.SqlServer.Dts.Runtime.VariableDispenser, _
ByVal componentEvents As
Microsoft.SqlServer.Dts.Runtime.IDTSComponentEvents, _
ByVal log As Microsoft.SqlServer.Dts.Runtime.IDTSLogging) _
As Microsoft.SqlServer.Dts.Runtime.DTSExecResult

' If the connection manager exists, validation is successful;


' otherwise fail validation.
Try
Dim cm As ConnectionManager = connections(Me._connectionManagerName)
Return DTSExecResult.Success
Catch e As System.Exception
componentEvents.FireError(0, "SampleTask", "Invalid connection
manager.", "", 0)
Return DTSExecResult.Failure
End Try

End Function

Public Overrides Function Execute( _


ByVal connections As Microsoft.SqlServer.Dts.Runtime.Connections, _
ByVal variableDispenser As
Microsoft.SqlServer.Dts.Runtime.VariableDispenser, _
ByVal componentEvents As
Microsoft.SqlServer.Dts.Runtime.IDTSComponentEvents, _
ByVal log As Microsoft.SqlServer.Dts.Runtime.IDTSLogging, ByVal
transaction As Object) _
As Microsoft.SqlServer.Dts.Runtime.DTSExecResult

Try
Dim cm As ConnectionManager = connections(Me._connectionManagerName)
Dim connection As Object = cm.AcquireConnection(transaction)
Return DTSExecResult.Success
Catch exception As System.Exception
componentEvents.FireError(0, "SampleTask", exception.Message, "", 0)
Return DTSExecResult.Failure
End Try

End Function
Voir aussi
Connexions Integration Services (SSIS)
Créer des gestionnaires de connexions
Déclenchement et définition
d'événements dans une tâche
personnalisée
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le moteur d’exécution Integration Services propose une collection d’événements qui


fournissent l’état d’avancement d’une tâche lors de sa validation et de son exécution.
L'interface IDTSComponentEvents définit ces événements et elle est fournie aux tâches
en tant que paramètre pour les méthodes Validate et Execute.

Il existe un autre jeu d'événements, définis dans l'interface IDTSEvents, déclenchée de la


part de la tâche par l'objet TaskHost. L'objet TaskHost déclenche des événements qui se
produisent avant et après la validation et l'exécution, tandis que la tâche déclenche des
événements qui se produisent pendant l'exécution et la validation.

Création d'événements personnalisés


Les développeurs de tâches personnalisées peuvent définir de nouveaux événements
personnalisés en créant un objet EventInfo dans leur implémentation substituée de la
méthode InitializeTask. Une fois que l’objet EventInfo est créé, il est ajouté à la collection
EventInfos à l’aide de la méthode Add. La signature de la méthode Add est la suivante :

public void Add(string eventName, string description, bool allowEventHandlers,

string[] parameterNames, TypeCode[] parameterTypes, string[]


parameterDescriptions);

L’exemple de code suivant présente la méthode InitializeTask d’une tâche


personnalisée, où deux événements personnalisés sont créés et leurs propriétés sont
définies. Les nouveaux événements sont ensuite ajoutés à la collection EventInfos.

Le premier événement personnalisé a l’eventName « OnBeforeIncrement » et la


description « Se déclenche une fois que la valeur initiale a été mise à jour. » Le
paramètre suivant, la valeur true, indique que cet événement doit autoriser la création
d’un conteneur de gestionnaire d’événements pour traiter l’événement. Le gestionnaire
d'événements est un conteneur qui fournit une structure dans un package et des
services à des tâches, comme d'autres conteneurs tels que le package, Séquence,
ForLoop et ForEachLoop. Lorsque le paramètre allowEventHandlers a la valeur true, des
objets DtsEventHandler sont créés pour l’événement. Tous les paramètres définis pour
l'événement sont maintenant disponibles pour l'objet DtsEventHandler dans la
collection de variables de l'objet DtsEventHandler.

VB

Public Overrides Sub InitializeTask(ByVal connections As Connections, _


ByVal variables As VariableDispenser, ByVal events As IDTSInfoEvents, _
ByVal log As IDTSLogging, ByVal eventInfos As EventInfos, _
ByVal logEntryInfos As LogEntryInfos, ByVal refTracker As
ObjectReferenceTracker)

Dim paramNames(0) As String


Dim paramTypes(0) As TypeCode = {TypeCode.Int32}
Dim paramDescriptions(0) As String

Me.eventInfos = eventInfos

paramNames(0) = "InitialValue"
paramDescriptions(0) = "The value before it is incremented."

Me.eventInfos.Add("OnBeforeIncrement", _
"Fires before the task increments the value.", _
True, paramNames, paramTypes, paramDescriptions)
Me.onBeforeIncrement = Me.eventInfos("OnBeforeIncrement")

paramDescriptions(0) = "The value after it has been incremented."


Me.eventInfos.Add("OnAfterIncrement", _
"Fires after the initial value is updated.", True, _
paramNames, paramTypes, paramDescriptions)
Me.onAfterIncrement = Me.eventInfos("OnAfterIncrement")

End Sub

Déclenchement d'événements personnalisés


Les événements personnalisés sont déclenchés en appelant la méthode
FireCustomEvent. La ligne de code suivante déclenche un événement personnalisé.

VB

componentEvents.FireCustomEvent(Me.onBeforeIncrement.Name, _
Me.onBeforeIncrement.Description, arguments, _
Nothing, bFireOnBeforeIncrement)

Exemple
L’exemple suivant montre une tâche qui définit un événement personnalisé dans la
méthode InitializeTask, ajoute cet événement personnalisé à la collection EventInfos,
puis le déclenche au cours de sa méthode Exécute en appelant la méthode
FireCustomEvent.

VB

<DtsTask(DisplayName = "CustomEventTask")> _
Public Class CustomEventTask
Inherits Task
Public Overrides Function Execute(ByVal connections As Connections,
_
ByVal variableDispenser As VariableDispenser, _
ByVal componentEvents As IDTSComponentEvents, _
ByVal log As IDTSLogging, ByVal transaction As Object) _
As DTSExecResult

Dim fireAgain As Boolean


Dim args() As Object = New Object(1) {"The value of the
parameter."}

componentEvents.FireCustomEvent("MyCustomEvent", _
"Firing the custom event.", args, _
"CustomEventTask" , fireAgain)
Return DTSExecResult.Success
End Function

Public Overrides Sub InitializeTask(ByVal connections As


Connections, _
ByVal variableDispenser As VariableDispenser,
ByVal events As IDTSInfoEvents,
ByVal log As IDTSLogging, ByVal eventInfos As EventInfos, ByVal
logEnTryInfos As LogEnTryInfos, ByVal refTracker As ObjectReferenceTracker)

Dim names() As String = New String(1) {"Parameter1"}


Dim types() As TypeCode = New TypeCode(1) {TypeCode.String}
Dim descriptions() As String = New String(1) {"Parameter
description."}

eventInfos.Add("MyCustomEvent", _
"Fires when my interesting event happens.", _
True, names, types, descriptions)

End Sub

End Class

Voir aussi
Gestionnaires d'événements Integration Services (SSIS)
Ajouter un gestionnaire d’événements à un package
Ajout de la prise en charge du
débogage dans une tâche personnalisée
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le moteur d'exécution Integration Services permet aux packages, tâches et autres types
de conteneurs d'être suspendus pendant l'exécution à l'aide de points d'arrêt.
L'utilisation de points d'arrêt vous permet d'examiner et de corriger les erreurs qui
empêchent votre application ou vos tâches de s'exécuter correctement. L'architecture de
point d'arrêt permet au client d'évaluer la valeur d'exécution des objets contenus dans
le package aux points d'exécution définis pendant la suspension du traitement de la
tâche.

Les développeurs de tâches personnalisées peuvent utiliser cette architecture pour créer
des cibles de points d'arrêt personnalisées en utilisant l'interface IDTSBreakpointSite et
son interface parente IDTSSuspend. L'interface IDTSBreakpointSite définit l'interaction
entre le moteur d'exécution et la tâche pour créer et gérer des sites ou des cibles de
points d'arrêt personnalisés. L'interface IDTSSuspend fournit des méthodes et propriétés
appelées par le moteur d'exécution pour notifier la tâche de suspendre ou reprendre
son exécution.

Un site ou une cible de point d'arrêt est un point dans l'exécution de la tâche où le
traitement peut être suspendu. Les utilisateurs sélectionnent un site de point d’arrêt
parmi les sites disponibles dans la boîte de dialogue Définir des points d’arrêt. Par
exemple, outre les options de point d'arrêt par défaut, le conteneur de boucle Foreach
propose l'option « Arrêter au début de chaque itération de la boucle ».

Lorsqu'une tâche atteint une cible de point d'arrêt pendant l'exécution, elle évalue cette
cible de point d'arrêt pour déterminer si un point d'arrêt est activé. Celui-ci indique que
l'utilisateur souhaite que l'exécution s'arrête à ce point d'arrêt. Si le point d'arrêt est
activé, la tâche déclenche l'événement OnBreakpointHit pour le moteur d'exécution. Le
moteur d’exécution répond à l’événement en appelant la méthode Suspend de chaque
tâche qui est en cours d’exécution dans le package. L’exécution de la tâche reprend
lorsque le runtime appelle la méthode ResumeExecution de la tâche suspendue.

Les tâches qui n'utilisent pas de points d'arrêt doivent encore implémenter les interfaces
IDTSBreakpointSite et IDTSSuspend. Cette implémentation garantit que la tâche est
correctement suspendue lorsque d'autres objets contenus dans le package déclenchent
des événements OnBreakpointHit.
Interface IDTSBreakpointSite et
BreakpointManager
Les tâches créent des cibles de points d'arrêt en appelant la méthode
CreateBreakpointTarget de l'objet BreakpointManager, ce qui permet de fournir un ID
entier et une description de chaîne comme paramètres. Lorsque la tâche atteint le point
dans son code qui contient une cible de point d'arrêt, elle évalue la cible de point d'arrêt
en utilisant la méthode IsBreakpointTargetEnabled pour déterminer si ce point d'arrêt
est activé. Si la valeur est true, la tâche avertit le moteur d’exécution en déclenchant
l’événement OnBreakpointHit.

L'interface IDTSBreakpointSite définit une méthode unique, AcceptBreakpointManager,


appelée par le moteur d'exécution pendant la création de la tâche. Cette méthode
fournit comme paramètre l'objet BreakpointManager, utilisé ensuite par la tâche pour
créer et gérer ses points d'arrêt. Les tâches doivent stocker l’objet BreakpointManager
localement pour pouvoir l’utiliser pendant les méthodes Validate et Execute.

L'exemple de code suivant montre comment créer une cible de point d'arrêt en utilisant
l'objet BreakpointManager. L'exemple permet d'appeler la méthode OnBreakpointHit
pour déclencher l'événement.

VB

Public Sub AcceptBreakpointManager(ByVal breakPointManager As


BreakpointManager)

' Store the breakpoint manager locally.


Me.bpm = breakPointManager

End Sub

Public Overrides Function Execute(ByVal connections As Connections, _


ByVal variables As Variables, ByVal events As IDTSComponentEvents, _
ByVal log As IDTSLogging, ByVal txn As DtsTransaction) As DTSExecResult

' Create a breakpoint.


Me.bpm.CreateBreakPointTarget(1 , "A sample breakpoint target.")

If Me.bpm.IsBreakpointTargetEnabled(1) = True Then


events.OnBreakpointHit(Me.bpm.GetBreakpointTarget(1))
End If

End Function

Interface IDTSSuspend
L'interface IDTSSuspend définit les méthodes appelées par le moteur d'exécution
lorsqu'il suspend ou reprend l'exécution d'une tâche. L’interface IDTSSuspend est
implémentée par l’interface IDTSBreakpointSite. Ses méthodes Suspend et
ResumeExecution sont généralement remplacées par la tâche personnalisée. Lorsque le
moteur d’exécution reçoit un événement OnBreakpointHit d’une tâche, il appelle la
méthode Suspend de chaque tâche en cours d’exécution pour leur indiquer qu’elles
doivent se mettre en pause. Lorsque le client reprend l’exécution, le moteur d’exécution
appelle la méthode ResumeExecution des tâches suspendues.

La suspension et la reprise de l'exécution d'une tâche impliquent l'interruption et la


reprise du thread d'exécution de la tâche. Dans le code managé, vous devez pour cela
utiliser la classe ManualResetEvent de l’espace de noms System.Threading du .NET
Framework.

L'exemple de code suivant montre la suspension et la reprise de l'exécution d'une tâche.


Remarquez que la méthode Execute a changé par rapport à l’exemple de code
précédent et que le thread d’exécution est mis en pause lors du déclenchement du
point d’arrêt.

VB

Private m_suspended As ManualResetEvent = New ManualResetEvent(True)


Private m_canExecute As ManualResetEvent = New ManualResetEvent(True)
Private m_suspendRequired As Integer = 0
Private m_debugMode As Integer = 0

Public Overrides Function Execute(ByVal connections As Connections, _


ByVal variables As Variables, ByVal events As IDTSComponentEvents, _
ByVal log As IDTSLogging, ByVal txn As DtsTransaction) As DTSExecResult

' While a task is not executing it is suspended.


' Now that we are executing,
' change to not suspended.
ChangeEvent(m_suspended, False)

' Check for a suspend before doing any work,


' in case the suspend and execute calls
' were initiated at virtually the same time.
CheckAndSuspend()
CheckAndFireBreakpoint(componentEvents, 1)

End Function

Private Sub CheckAndSuspend()

' Loop until we can execute.


' The loop is required rather than a simple if
' because there is a time between the return from WaitOne and the
' reset that we might receive another Suspend call.
' Suspend() will see that we are suspended
' and return. So we need to rewait.
Do While Not m_canExecute.WaitOne(0, False)
ChangeEvent(m_suspended, True)
m_canExecute.WaitOne()
ChangeEvent(m_suspended, False)
Loop

End Sub

Private Sub CheckAndFireBreakpoint(ByVal events As IDTSComponentEvents, _


ByVal breakpointID As Integer)

' If the breakpoint is enabled, fire it.


If m_debugMode <> 0 AndAlso
Me.bpm.IsBreakpointTargetEnabled(breakpointID) Then
' Enter a suspend mode before firing the breakpoint.
' Firing the breakpoint will cause the runtime
' to call Suspend on this task.
' Because we are blocked on the breakpoint,
' we are suspended.
ChangeEvent(m_suspended, True)

events.OnBreakpointHit(Me.bpm.GetBreakpointTarget(breakpointID))
ChangeEvent(m_suspended, False)
End If

' Check for a suspension for two reasons:


' 1. If we are at a point where we could fire a breakpoint,
' we are at a valid suspend point. Even if we didn't hit a
' breakpoint, the runtime may have called suspend,
' so check for it.
' 2. Between the return from OnBreakpointHit
' and the reset of the event, it is possible to have
' received a suspend call from which we returned because
' we were already suspended. We need to be sure it is okay
' to continue executing now.
CheckAndSuspend()

End Sub

Shared Sub ChangeEvent(ByVal e As ManualResetEvent, ByVal shouldSet As


Boolean)

Dim succeeded As Boolean


If shouldSet Then
succeeded = e.Set()
Else
succeeded = e.Reset()
End If

If (Not succeeded) Then


Throw New Exception("Synchronization object failed.")
End If
End Sub

Public Property SuspendRequired() As Boolean


Get
Return m_suspendRequired <> 0
End Get
Set
' This lock is also taken by Suspend().
' Because it is possible for the package to be
' suspended and resumed in quick succession,
' this property might be set before
' the actual Suspend() call.
' Without the lock, the Suspend() might reset the canExecute
' event after we set it to abort the suspension.
SyncLock Me
Interlocked.Exchange(m_suspendRequired,IIf(Value,
1, 0))
If (Not Value) Then
ResumeExecution()
End If
End SyncLock
End Set
End Property

Public Sub ResumeExecution()


ChangeEvent(m_canExecute,True)
End Sub

Public Sub Suspend()

' This lock is also taken by the set SuspendRequired method.


' It prevents this call from overriding an
' aborted suspension. See comments in set SuspendRequired.
SyncLock Me
' If a Suspend is required, do it.
If m_suspendRequired <> 0 Then
ChangeEvent(m_canExecute, False)
End If
End SyncLock
' We can't return from Suspend until the task is "suspended".
' This can happen one of two ways:
' the m_suspended event occurs, indicating that the execute thread
' has suspended, or the canExecute flag is set,
' indicating that a suspend is no longer required.
Dim suspendOperationComplete As WaitHandle() = {m_suspended,
m_canExecute}
WaitHandle.WaitAny(suspendOperationComplete)

End Sub

Voir aussi
Débogage du flux de contrôle
Développement d'une interface
utilisateur pour une tâche personnalisée
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Le modèle objet Integration Services fournit aux développeurs de tâches personnalisées


la capacité de créer facilement une interface utilisateur personnalisée pour une tâche,
qui peut ensuite être intégrée et affichée dans SQL Server Data Tools (SSDT). L'interface
utilisateur fournit des informations utiles dans le concepteur SSIS et aide les utilisateurs
à configurer correctement les propriétés et les paramètres de la tâche personnalisée.

Le développement d'une interface utilisateur personnalisée pour une tâche implique


l'utilisation de deux classes importantes. Le tableau suivant décrit ces classes.

Classe Description

DtsTaskAttribute Attribut qui identifie une tâche managée et fournit des informations au
moment de la conception par le biais de ses propriétés pour contrôler la
manière dont le concepteur SSIS affiche les objets et interagit avec eux.

IDtsTaskUI Interface utilisée par la tâche pour s'associer à son interface utilisateur
personnalisée.

Cette section décrit le rôle de l'attribut DtsTaskAttribute et de l'interface IDtsTaskUI


lorsque vous développez une interface utilisateur pour une tâche personnalisée. Elle
fournit également des informations sur la manière de créer, intégrer, déployer et
déboguer la tâche dans le concepteur SSIS.

Le concepteur SSIS fournit plusieurs points d’entrée dans l’interface utilisateur pour la
tâche : l’utilisateur peut sélectionner Modifier dans le menu contextuel, double-cliquer
sur la tâche ou cliquer sur le lien Afficher l’éditeur en bas de la feuille de propriétés.
Lorsque l'utilisateur accède à l'un de ces points d'entrée, le concepteur SSIS recherche et
charge l'assembly qui contient l'interface utilisateur pour la tâche. L'interface utilisateur
de la tâche est chargée de créer la boîte de dialogue des propriétés affichée pour
l'utilisateur dans SQL Server Data Tools (SSDT).

Une tâche et son interface utilisateur sont des entités distinctes. Elles doivent être
implémentées dans des assemblys séparés pour réduire les tâches de localisation, de
déploiement et de maintenance. La DLL n'a généralement pas connaissance de son
interface utilisateur et ne charge ni n'appelle de données la concernant, à l'exception
des informations contenues dans les valeurs d'attribut DtsTaskAttribute codées dans la
tâche. Il s'agit du seul lien qui unit une tâche et son interface utilisateur.

Attribut DtsTask
L'attribut DtsTaskAttribute est inclus dans le code de classe de tâche pour associer une
tâche à son interface utilisateur. Le concepteur SSIS utilise les propriétés de l'attribut
pour déterminer comment afficher la tâche. Ces propriétés incluent le nom à afficher et
l'icône, le cas échéant.

Le tableau suivant décrit les propriétés de l'attribut DtsTaskAttribute.

Property Description

DisplayName Affiche le nom de la tâche dans la boîte à outils Flux de contrôle.

Description Description de la tâche (héritée de DtsLocalizableAttribute). Cette


propriété est affichée dans des info-bulles.

IconResource Icône affichée dans le concepteur SSIS.

RequiredProductLevel Si vous utilisez cette propriété, attribuez-lui l'une des valeurs de


l'énumération DTSProductLevel. Par exemple, RequiredProductLevel =
DTSProductLevel.None .

TaskContact Contient des informations de contact au cas où la tâche nécessite un


support technique.

TaskType Assigne un type à la tâche.

Attribute.TypeId Dans le cadre d'une implémentation dans une classe dérivée, obtient un
identificateur unique pour cet attribut. Pour plus d’informations,
consultez la propriété Attribute.TypeID dans la bibliothèque de classes
.NET Framework.

UITypeName Nom de type de l'assembly utilisé par le concepteur SSIS pour charger
l'assembly. Cette propriété permet de rechercher l'assembly de l'interface
utilisateur pour la tâche.

L'exemple de code suivant présente le DtsTaskAttribute, au-dessus de la définition de


classe.

VB

Imports System
Imports Microsoft.SqlServer.Dts.Runtime

<DtsTask(DisplayName:="MyTask", _
IconResource:="MyTask.MyTaskIcon.ico", _
UITypeName:="My Custom Task," & _
"Version=1.0.0.0,Culture=Neutral," & _
"PublicKeyToken=12345abc6789de01", _
TaskType:="PackageMaintenance", _
TaskContact:="MyTask; company name; any other information", _
RequiredProductLevel:=DTSProductLevel.None)> _
Public Class MyTask
Inherits Task

' Your code here.

End Class 'MyTask

Le concepteur SSIS utilise la propriété UITypeName de l'attribut qui inclut le nom, le


nom de type, la version, la culture et le jeton de clé publique de l'assembly, pour
rechercher l'assembly dans le Global Assembly Cache (GAC) et le charger à l'usage du
concepteur.

Une fois que l'assembly a été trouvé, le concepteur SSIS utilise les autres propriétés de
l'attribut pour afficher des informations supplémentaires sur la tâche dans le concepteur
SSIS, telles que le nom, l'icône et la description de la tâche.

Les propriétés DisplayName, Description et IconResource spécifient la manière dont la


tâche est présentée à l'utilisateur. La propriété IconResource contient l'ID de ressource
de l'icône incorporé dans l'assembly de l'interface utilisateur. Le concepteur charge la
ressource icône par ID à partir de l'assembly et l'affiche en regard du nom de la tâche
dans la boîte à outils et dans l'aire du concepteur lorsque la tâche est ajoutée à un
package. Si une tâche ne fournit pas de ressource icône, le concepteur utilise une icône
par défaut pour la tâche.

Interface IDTSTaskUI
L'interface IDtsTaskUI définit la collection de méthodes et de propriétés appelées par le
concepteur SSIS pour initialiser et afficher l'interface utilisateur associée à la tâche.
Lorsque l'interface utilisateur d'une tâche est appelée, le concepteur appelle la méthode
Initialize, implémentée par l'interface utilisateur de la tâche lorsque vous l'avez écrite,
puis fournit les collections TaskHost et Connections de la tâche et du package,
respectivement, en tant que paramètres. Ces collections sont stockées localement et
utilisées par la suite dans la méthode GetView.

Le concepteur appelle la méthode GetView pour demander la fenêtre affichée dans le


concepteur SSIS. La tâche crée une instance de la fenêtre qui contient l'interface
utilisateur de la tâche et retourne l'interface utilisateur au concepteur afin qu'elle soit
affichée. En général, les objets TaskHost et Connections sont fournis à la fenêtre par le
biais d'un constructeur surchargé afin qu'ils puissent être utilisés pour configurer la
tâche.

Pour afficher l'interface utilisateur de la tâche, le concepteur SSIS appelle la méthode


GetView associée. L'interface utilisateur de la tâche retourne le Windows Form de cette
méthode et le concepteur SSIS affiche ce formulaire sous le forme d'une boîte de
dialogue modale. Lorsque le formulaire est fermé, le concepteur SSIS examine la valeur
de la propriété DialogResult du formulaire pour déterminer si la tâche a été modifiée et
si ces modifications doivent être enregistrées. Si la propriété DialogResult a la valeur
OK, le concepteur SSIS appelle les méthodes de persistance de la tâche pour enregistrer
les modifications ; sinon, les modifications sont supprimées.

L'exemple de code suivant implémente l'interface IDtsTaskUI et suppose l'existence


d'une classe Windows Form nommée SampleTaskForm.

VB

Imports System
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Runtime.Design
Imports System.Windows.Forms

Public Class HelloWorldTaskUI


Implements IDtsTaskUI

Dim taskHost As TaskHost


Dim connections As Connections

Public Sub Initialize(ByVal taskHost As TaskHost, ByVal serviceProvider As


IServiceProvider) _
Implements IDtsTaskUI.Initialize

Dim cs As IDtsConnectionService

Me.taskHost = taskHost
cs =
DirectCast(serviceProvider.GetService(GetType(IDtsConnectionService)),
IDtsConnectionService)
Me.connections = cs.GetConnections()

End Sub

Public Function GetView() As ContainerControl _


Implements IDtsTaskUI.GetView

Return New HelloWorldTaskForm(Me.taskHost, Me.connections)

End Function
Public Sub Delete(ByVal parentWindow As IWin32Window) _
Implements IDtsTaskUI.Delete

End Sub

Public Sub [New](ByVal parentWindow As IWin32Window) _


Implements IDtsTaskUI.[New]

End Sub

End Class

Voir aussi
Création d’une tâche personnalisée
Codage d’une tâche personnalisée
Développement d’une interface utilisateur pour une tâche personnalisée
Développement d'un gestionnaire de
connexions personnalisé
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Integration Services utilise des gestionnaires de connexions pour encapsuler les


informations nécessaires pour se connecter à une source de données externe.
Integration Services inclut divers gestionnaires de connexions qui prennent en charge
les connexions aux sources de données les plus couramment utilisées, allant des bases
de données d'entreprise aux fichiers texte et feuilles de calcul Excel. Si les gestionnaires
de connexions et les sources de données externes pris en charge par Integration
Services ne répondent pas totalement à vos besoins, vous pouvez créer un gestionnaire
de connexions personnalisé.

Pour créer un gestionnaire de connexions personnalisé, vous devez créer une classe qui
hérite de la classe de base ConnectionManagerBase, appliquer l'attribut
DtsConnectionAttribute à votre nouvelle classe et remplacer les méthodes et propriétés
importantes de la classe de base, notamment la propriété ConnectionString et la
méthode AcquireConnection.

) Important

Une grande partie des tâches, sources et destinations intégrées à Integration


Services utilisent uniquement des types spécifiques de gestionnaires de connexions
intégrés. Avant de développer un gestionnaire de connexions personnalisé afin de
l'utiliser avec des tâches et composants intégrés, vérifiez si ces composants limitent
la liste des gestionnaires de connexions disponibles à un type spécifique. Si votre
solution requiert un gestionnaire de connexions personnalisé, vous devrez peut-
être développer également une tâche personnalisée ou une source/destination
personnalisée à utiliser avec le gestionnaire de connexions.

Dans cette section


Cette section décrit comment créer, configurer et coder un gestionnaire de connexions
personnalisé et son interface utilisateur personnalisée facultative. Les extraits de code
présentés dans cette section sont tirés de l'exemple de gestionnaire de connexions
personnalisé SQL Server.
Création d'un gestionnaire de connexions personnalisé
Explique comment créer les classes d'un projet de gestionnaire de connexions
personnalisé.

Codage d'un gestionnaire de connexions personnalisé


Décrit comment implémenter un gestionnaire de connexions personnalisé en
remplaçant les méthodes et propriétés de la classe de base.

Développement d'une interface utilisateur pour un gestionnaire de connexions


personnalisé
Explique comment implémenter la classe d'interface utilisateur et le formulaire servant à
configurer le gestionnaire de connexions personnalisé.

Sections connexes

Informations communes à tous les objets personnalisés


Pour obtenir les informations communes à tous les types d'objets personnalisés que
vous pouvez créer dans Integration Services, consultez les rubriques suivantes :

Développement d’objets personnalisés pour Integration Services


Décrit les étapes de base permettant d’implémenter tous les types d’objets
personnalisés pour Integration Services.

Persistance des objets personnalisés


Décrit la persistance personnalisée et explique les situations dans lesquelles elle est
nécessaire.

Génération, déploiement et débogage d’objets personnalisés


Décrit les techniques permettant de générer, signer, déployer et déboguer des objets
personnalisés.

Informations sur les autres objets personnalisés


Pour plus d’informations sur les autres types d’objets personnalisés que vous pouvez
créer dans Integration Services, consultez les rubriques suivantes :

Développement d'une tâche personnalisée


Explique comment programmer des tâches personnalisées.

Développement d’un module fournisseur d’informations personnalisé


Explique comment programmer des modules fournisseurs d'informations personnalisés.
Développement d’un énumérateur ForEach personnalisé
Décrit comment programmer des énumérateurs personnalisés.

Développement d’un composant de flux de données personnalisé


Explique comment programmer des sources, des transformations et des destinations de
flux de données personnalisées.
Création d'un gestionnaire de
connexions personnalisé
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les étapes à suivre pour créer un gestionnaire de connexions personnalisé sont


similaires à celles permettant de créer tout autre objet personnalisé pour Integration
Services :

Créer une classe qui hérite de la classe de base. Pour un gestionnaire de


connexions, la classe de base est ConnectionManagerBase.

Appliquer l'attribut qui identifie le type d'objet auprès de la classe. Pour un


gestionnaire de connexions, l'attribut est DtsConnectionAttribute.

Remplacer l'implémentation des méthodes et propriétés de la classe de base. Pour


un gestionnaire de connexions, celles-ci incluent la propriété ConnectionString et
les méthodes AcquireConnection et ReleaseConnection.

Développer éventuellement une interface utilisateur personnalisée. Pour un


gestionnaire de connexions, cette opération requiert une classe qui implémente
l'interface IDtsConnectionManagerUI.

7 Notes

Une grande partie des tâches, sources et destinations intégrées à Integration


Services utilisent uniquement des types spécifiques de gestionnaires de connexions
intégrés. Par conséquent, ces exemples ne peuvent pas être testés avec les tâches
et composants intégrés.

Mise en route d'un gestionnaire de connexions


personnalisé

Création de projets et de classes


Puisque tous les gestionnaires de connexions managés dérivent de la classe de base
ConnectionManagerBase, la première étape de création d'un gestionnaire de
connexions personnalisé consiste à créer un projet Bibliothèque de classes dans votre
langage de programmation managé par défaut et à créer une classe qui hérite de la
classe de base. Dans cette classe dérivée, vous allez substituer les méthodes et les
propriétés de la classe de base pour implémenter vos fonctionnalités personnalisées.

Dans la même solution, créez un deuxième projet Bibliothèque de classes pour


l'interface utilisateur personnalisée. Il est recommandé d’utiliser un assembly distinct
pour l’interface utilisateur afin de faciliter le déploiement car vous pouvez ainsi mettre à
jour et redéployer le gestionnaire de connexions ou son interface utilisateur de manière
indépendante.

Configurez les deux projets pour qu'ils signent les assemblys qui seront créés au
moment de la génération à l'aide d'un fichier de clé de nom fort.

Application de l'attribut DtsConnection


Appliquez l'attribut DtsConnectionAttribute à la classe que vous avez créée pour
l'identifier en tant que gestionnaire de connexions. Cet attribut fournit des informations
au moment de la conception, telles que le nom, la description et le type de connexion
du gestionnaire de connexions. Les propriétés ConnectionType et Description
correspondent aux colonnes Type et Description qui apparaissent dans la boîte de
dialogue Ajout d’un gestionnaire de connexions SSIS, laquelle s’affiche lorsque vous
configurez des connexions pour un package dans SQL Server Data Tools (SSDT).

Utilisez la propriété UITypeName pour lier le gestionnaire de connexions à son interface


utilisateur personnalisée. Pour obtenir le jeton de clé publique requis pour cette
propriété, vous pouvez utiliser sn.exe -t de manière à afficher le jeton de clé publique
du fichier de paire de clés (.snk) que vous voulez utiliser pour signer l’assembly de
l’interface utilisateur.

VB

<DtsConnection(ConnectionType:="SQLVB", _
DisplayName:="SqlConnectionManager (VB)", _
Description:="Connection manager for Sql Server", _

UITypeName:="SqlConnMgrUIVB.SqlConnMgrUIVB,SqlConnMgrUIVB,Version=1.0.0.0,Cu
lture=neutral,PublicKeyToken=<insert public key token here>")> _
Public Class SqlConnMgrVB
Inherits ConnectionManagerBase
. . .
End Class

C#
[DtsConnection(ConnectionType = "SQLCS",
DisplayName = "SqlConnectionManager (CS)",
Description = "Connection manager for Sql Server",
UITypeName =
"SqlConnMgrUICS.SqlConnMgrUICS,SqlConnMgrUICS,Version=1.0.0.0,Culture=neutra
l,PublicKeyToken=<insert public key token here>")]
public class SqlConnMgrCS :
ConnectionManagerBase
{
. . .
}

Génération, déploiement et débogage d'un


gestionnaire de connexions personnalisé
Les étapes permettant de générer, déployer et déboguer un gestionnaire de connexions
personnalisé dans Integration Services sont très similaires aux étapes requises pour les
autres types d'objets personnalisés. Pour plus d’informations, consultez Génération,
déploiement et débogage d’objets personnalisés.

Voir aussi
Codage d'un gestionnaire de connexions personnalisé
Développement d'une interface utilisateur pour un gestionnaire de connexions
personnalisé
Codage d'un gestionnaire de
connexions personnalisé
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Après avoir créé une classe qui hérite de la classe de base ConnectionManagerBase, puis
appliqué l'attribut DtsConnectionAttribute à cette classe, vous devez substituer
l'implémentation des propriétés et des méthodes de la classe de base afin de fournir vos
fonctionnalités personnalisées.

Pour obtenir des exemples de gestionnaires de connexions personnalisés, consultez


Développement d’une interface utilisateur pour un gestionnaire de connexions
personnalisé. Les exemples de code présentés dans cette rubrique sont tirés de
l'exemple de gestionnaire de connexions personnalisé SQL Server.

7 Notes

Une grande partie des tâches, sources et destinations intégrées à Integration


Services utilisent uniquement des types spécifiques de gestionnaires de connexions
intégrés. Par conséquent, ces exemples ne peuvent pas être testés avec les tâches
et composants intégrés.

Configuration du gestionnaire de connexions

Définition de la propriété ConnectionString


La propriété ConnectionString est une propriété importante et la seule propriété propre
à un gestionnaire de connexions personnalisé. Le gestionnaire de connexions utilise la
valeur de cette propriété pour se connecter à la source de données externe. Si vous
combinez plusieurs autres propriétés, telles que le nom du serveur et le nom de la base
de données, pour créer la chaîne de connexion, vous pouvez utiliser une fonction
d'assistance pour assembler la chaîne en remplaçant certaines valeurs dans un modèle
de chaîne de connexion par la nouvelle valeur fournie par l'utilisateur. L'exemple de
code suivant présente une implémentation de la propriété ConnectionString qui compte
sur une fonction d'assistance pour assembler la chaîne.

VB
' Default values.
Private _serverName As String = "(local)"
Private _databaseName As String = "AdventureWorks"
Private _connectionString As String = String.Empty

Private Const CONNECTIONSTRING_TEMPLATE As String = _


"Data Source=<servername>;Initial Catalog=<databasename>;Integrated
Security=SSPI"

Public Property ServerName() As String


Get
Return _serverName
End Get
Set(ByVal value As String)
_serverName = value
End Set
End Property

Public Property DatabaseName() As String


Get
Return _databaseName
End Get
Set(ByVal value As String)
_databaseName = value
End Set
End Property

Public Overrides Property ConnectionString() As String


Get
UpdateConnectionString()
Return _connectionString
End Get
Set(ByVal value As String)
_connectionString = value
End Set
End Property

Private Sub UpdateConnectionString()

Dim temporaryString As String = CONNECTIONSTRING_TEMPLATE

If Not String.IsNullOrEmpty(_serverName) Then


temporaryString = temporaryString.Replace("<servername>", _serverName)
End If
If Not String.IsNullOrEmpty(_databaseName) Then
temporaryString = temporaryString.Replace("<databasename>",
_databaseName)
End If

_connectionString = temporaryString

End Sub
C#

// Default values.
private string _serverName = "(local)";
private string _databaseName = "AdventureWorks";
private string _connectionString = String.Empty;

private const string CONNECTIONSTRING_TEMPLATE = "Data Source=


<servername>;Initial Catalog=<databasename>;Integrated Security=SSPI";

public string ServerName


{
get
{
return _serverName;
}
set
{
_serverName = value;
}
}

public string DatabaseName


{
get
{
return _databaseName;
}
set
{
_databaseName = value;
}
}

public override string ConnectionString


{
get
{
UpdateConnectionString();
return _connectionString;
}
set
{
_connectionString = value;
}
}

private void UpdateConnectionString()


{

string temporaryString = CONNECTIONSTRING_TEMPLATE;

if (!String.IsNullOrEmpty(_serverName))
{
temporaryString = temporaryString.Replace("<servername>", _serverName);
}

if (!String.IsNullOrEmpty(_databaseName))
{
temporaryString = temporaryString.Replace("<databasename>",
_databaseName);
}

_connectionString = temporaryString;

Validation du gestionnaire de connexions


Vous remplacez la méthode Validate pour vous assurer que le gestionnaire de
connexions a été configuré correctement. Au minimum, vous devez valider le format de
la chaîne de connexion et vous assurer que les valeurs ont été fournies pour tous les
arguments. L'exécution ne peut pas se poursuivre tant que le gestionnaire de
connexions ne renvoie pas Success à partir de la méthode Validate.

L'exemple de code suivant présente une implémentation de la méthode Validate qui


permet de s'assurer que l'utilisateur a spécifié un nom de serveur pour la connexion.

VB

Public Overrides Function Validate(ByVal infoEvents As


Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents) As
Microsoft.SqlServer.Dts.Runtime.DTSExecResult

If String.IsNullOrEmpty(_serverName) Then
infoEvents.FireError(0, "SqlConnectionManager", "No server name
specified", String.Empty, 0)
Return DTSExecResult.Failure
Else
Return DTSExecResult.Success
End If

End Function

C#

public override Microsoft.SqlServer.Dts.Runtime.DTSExecResult


Validate(Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents infoEvents)
{

if (String.IsNullOrEmpty(_serverName))
{
infoEvents.FireError(0, "SqlConnectionManager", "No server name
specified", String.Empty, 0);
return DTSExecResult.Failure;
}
else
{
return DTSExecResult.Success;
}

Persistance du gestionnaire de connexions


En général, vous n'avez pas à implémenter de persistance personnalisée pour un
gestionnaire de connexions. Une persistance personnalisée est uniquement requise
lorsque les propriétés d'un objet utilisent des types de données complexes. Pour plus
d’informations, consultez Développement d’objets personnalisés pour Integration
Services.

Utilisation de la source de données externe


Les méthodes qui prennent en charge la connexion à une source de données externe
sont les méthodes les plus importantes d'un gestionnaire de connexions personnalisé.
Les méthodes AcquireConnection et ReleaseConnection sont appelées à différents
instants à la fois au moment de la conception et au moment de l'exécution.

Acquisition de la connexion
Vous devez déterminer quel type d'objet il convient que la méthode AcquireConnection
renvoie à partir de votre gestionnaire de connexions personnalisé. Par exemple, un
gestionnaire de connexions de fichiers renvoie uniquement une chaîne qui contient un
chemin d'accès et un nom de fichier, alors qu'un gestionnaire de connexions ADO.NET
renvoie un objet de connexion managée qui est déjà ouvert. Un gestionnaire de
connexions OLE DB renvoie un objet de connexion OLE DB natif qui ne peut pas être
utilisé à partir de code managé. Le gestionnaire de connexions SQL Server personnalisé,
duquel proviennent les extraits de code de cette rubrique, renvoie un objet
SqlConnection ouvert.

Les utilisateurs de votre gestionnaire de connexions ont besoin de savoir à l'avance quel
type d'objet attendre, afin de pouvoir convertir l'objet retourné en type approprié et
d'accéder à ses méthodes et propriétés.

VB
Public Overrides Function AcquireConnection(ByVal txn As Object) As Object

Dim sqlConnection As New SqlConnection

UpdateConnectionString()

With sqlConnection
.ConnectionString = _connectionString
.Open()
End With

Return sqlConnection

End Function

C#

public override object AcquireConnection(object txn)


{

SqlConnection sqlConnection = new SqlConnection();

UpdateConnectionString();

{
sqlConnection.ConnectionString = _connectionString;
sqlConnection.Open();
}

return sqlConnection;

Libération de la connexion
La mesure que vous prenez dans la méthode ReleaseConnection dépend du type d'objet
que vous avez retourné de la méthode AcquireConnection. S'il existe un objet de
connexion ouvert, vous devez le fermer et libérer toutes les ressources qu'il utilise. Si la
méthode AcquireConnection a retourné uniquement une valeur de chaîne, aucune
action ne doit être entreprise.

VB

Public Overrides Sub ReleaseConnection(ByVal connection As Object)

Dim sqlConnection As SqlConnection

sqlConnection = DirectCast(connection, SqlConnection)


If sqlConnection.State <> ConnectionState.Closed Then
sqlConnection.Close()
End If

End Sub

C#

public override void ReleaseConnection(object connection)


{
SqlConnection sqlConnection;
sqlConnection = (SqlConnection)connection;
if (sqlConnection.State != ConnectionState.Closed)
sqlConnection.Close();
}

Voir aussi
Création d'un gestionnaire de connexions personnalisé
Développement d'une interface utilisateur pour un gestionnaire de connexions
personnalisé
Développement d'une interface
utilisateur pour un gestionnaire de
connexions personnalisé
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Après avoir remplacé l'implémentation des propriétés et méthodes de la classe de base


afin de fournir vos fonctionnalités personnalisées, vous pouvez créer une interface
utilisateur personnalisée pour votre gestionnaire de connexions. Si vous ne créez pas
d'interface utilisateur personnalisée, les utilisateurs peuvent configurer votre
gestionnaire de connexions uniquement en utilisant la fenêtre Propriétés.

Dans un projet d’interface utilisateur ou d’assembly personnalisé, vous avez


normalement deux classes : une classe qui implémente l’objet
IDtsConnectionManagerUI et le formulaire Windows qu’il affiche pour collecter des
informations auprès de l’utilisateur.

) Important

Après avoir signé et généré votre interface utilisateur personnalisée, puis l’avoir
installée dans le Global Assembly Cache comme décrit dans Codage d’un
gestionnaire de connexions personnalisé, n’oubliez pas de fournir le nom complet
de cette classe dans la propriété UITypeName de la classe DtsConnectionAttribute.

7 Notes

Une grande partie des tâches, sources et destinations intégrées à Integration


Services utilisent uniquement des types spécifiques de gestionnaires de connexions
intégrés. Par conséquent, ces exemples ne peuvent pas être testés avec les tâches
et composants intégrés.

Codage de la classe d'interface utilisateur


L'interface IDtsConnectionManagerUI comporte quatre méthodes : Initialize, New, Edit
et Delete. Les sections suivantes décrivent ces quatre méthodes.
7 Notes

Il se peut que vous n'ayez pas à écrire de code pour la méthode Delete si aucun
nettoyage n'est requis lorsque l'utilisateur supprime une instance du gestionnaire
de connexions.

Initialisation de l'interface utilisateur


Dans la méthode Initialize, le concepteur fournit une référence au gestionnaire de
connexions en cours de configuration afin que la classe d'interface utilisateur puisse
modifier les propriétés du gestionnaire de connexions. Comme indiqué dans le code
suivant, votre code doit mettre en cache la référence au gestionnaire de connexions en
vue d’une utilisation ultérieure.

VB

Public Sub Initialize(ByVal connectionManager As


Microsoft.SqlServer.Dts.Runtime.ConnectionManager, ByVal serviceProvider As
System.IServiceProvider) Implements
Microsoft.SqlServer.Dts.Runtime.Design.IDtsConnectionManagerUI.Initialize

_connectionManager = connectionManager
_serviceProvider = serviceProvider

End Sub

C#

public void Initialize(Microsoft.SqlServer.Dts.Runtime.ConnectionManager


connectionManager, System.IServiceProvider serviceProvider)
{

_connectionManager = connectionManager;
_serviceProvider = serviceProvider;

Création d'une instance de l'interface utilisateur


La méthode New, qui n'est pas un constructeur, est appelée après la méthode Initialize
lorsque l'utilisateur crée une nouvelle instance du gestionnaire de connexions. Dans la
méthode New, vous souhaitez généralement afficher le formulaire à modifier, à moins
que l'utilisateur ait copié et collé un gestionnaire de connexions existant. Le code
suivant illustre une implémentation de cette méthode.

VB

Public Function [New](ByVal parentWindow As


System.Windows.Forms.IWin32Window, ByVal connections As
Microsoft.SqlServer.Dts.Runtime.Connections, ByVal connectionUIArgs As
Microsoft.SqlServer.Dts.Runtime.Design.ConnectionManagerUIArgs) As Boolean
Implements
Microsoft.SqlServer.Dts.Runtime.Design.IDtsConnectionManagerUI.New

Dim clipboardService As IDtsClipboardService

clipboardService = _
DirectCast(_serviceProvider.GetService(GetType(IDtsClipboardService)),
IDtsClipboardService)
If Not clipboardService Is Nothing Then
' If the connection manager has been copied and pasted, take no action.
If clipboardService.IsPasteActive Then
Return True
End If
End If

Return EditSqlConnection(parentWindow)

End Function

C#

public bool New(System.Windows.Forms.IWin32Window parentWindow,


Microsoft.SqlServer.Dts.Runtime.Connections connections,
Microsoft.SqlServer.Dts.Runtime.Design.ConnectionManagerUIArgs
connectionUIArgs)
{
IDtsClipboardService clipboardService;

clipboardService =
(IDtsClipboardService)_serviceProvider.GetService(typeof(IDtsClipboardServic
e));
if (clipboardService != null)
// If connection manager has been copied and pasted, take no action.
{
if (clipboardService.IsPasteActive)
{
return true;
}
}

return EditSqlConnection(parentWindow);
}
Modification du gestionnaire de connexions
Étant donné que le formulaire de modification est appelé à la fois à partir des méthodes
New et Edit, il est plus pratique d'utiliser une fonction d'assistance pour encapsuler le
code qui permet d'afficher le formulaire. Le code suivant illustre une implémentation de
cette fonction d'assistance.

VB

Private Function EditSqlConnection(ByVal parentWindow As IWin32Window) As


Boolean

Dim sqlCMUIForm As New SqlConnMgrUIFormVB

sqlCMUIForm.Initialize(_connectionManager, _serviceProvider)
If sqlCMUIForm.ShowDialog(parentWindow) = DialogResult.OK Then
Return True
Else
Return False
End If

End Function

C#

private bool EditSqlConnection(IWin32Window parentWindow)


{

SqlConnMgrUIFormCS sqlCMUIForm = new SqlConnMgrUIFormCS();

sqlCMUIForm.Initialize(_connectionManager, _serviceProvider);
if (sqlCMUIForm.ShowDialog(parentWindow) == DialogResult.OK)
{
return true;
}
else
{
return false;
}

Dans la méthode Edit, vous devez simplement afficher le formulaire à modifier. Le code
suivant illustre une implémentation de la méthode Edit qui utilise une fonction
d'assistance pour encapsuler le code pour le formulaire.

VB
Public Function Edit(ByVal parentWindow As
System.Windows.Forms.IWin32Window, ByVal connections As
Microsoft.SqlServer.Dts.Runtime.Connections, ByVal connectionUIArg As
Microsoft.SqlServer.Dts.Runtime.Design.ConnectionManagerUIArgs) As Boolean
Implements
Microsoft.SqlServer.Dts.Runtime.Design.IDtsConnectionManagerUI.Edit

Return EditSqlConnection(parentWindow)

End Function

C#

public bool Edit(System.Windows.Forms.IWin32Window parentWindow,


Microsoft.SqlServer.Dts.Runtime.Connections connections,
Microsoft.SqlServer.Dts.Runtime.Design.ConnectionManagerUIArgs
connectionUIArg)
{

return EditSqlConnection(parentWindow);

Codage du formulaire d'interface utilisateur


Après avoir créé la classe d'interface utilisateur qui implémente les méthodes de
l'interface IDtsConnectionManagerUI, vous devez créer un formulaire Windows où
l'utilisateur peut configurer les propriétés de votre gestionnaire de connexions.

Initialisation du formulaire d'interface utilisateur


Lorsque vous affichez votre formulaire personnalisé à modifier, vous pouvez passer une
référence au gestionnaire de connexions modifié. Vous pouvez passer cette référence
soit en utilisant un constructeur personnalisé pour la classe Form, soit en créant votre
propre méthode Initialize comme illustré ici.

VB

Public Sub Initialize(ByVal connectionManager As ConnectionManager, ByVal


serviceProvider As IServiceProvider)

_connectionManager = connectionManager
_serviceProvider = serviceProvider
ConfigureControlsFromConnectionManager()
EnableControls()
End Sub

C#

public void Initialize(ConnectionManager connectionManager, IServiceProvider


serviceProvider)
{

_connectionManager = connectionManager;
_serviceProvider = serviceProvider;
ConfigureControlsFromConnectionManager();
EnableControls();

Définition de propriétés sur le formulaire d'interface


utilisateur
Enfin, votre classe Form a besoin d'une fonction d'assistance qui permet de remplir les
contrôles sur le formulaire lorsqu'il est tout d'abord chargé avec les valeurs existantes
ou par défaut des propriétés du gestionnaire de connexions. Votre classe Form a
également besoin d'une fonction similaire qui définit les valeurs des propriétés sur les
valeurs entrées par l'utilisateur lorsqu'il clique sur OK et ferme le formulaire.

VB

Private Const CONNECTIONNAME_BASE As String = "SqlConnectionManager"

Private Sub ConfigureControlsFromConnectionManager()

Dim tempName As String


Dim tempServerName As String
Dim tempDatabaseName As String

With _connectionManager

tempName = .Properties("Name").GetValue(_connectionManager).ToString
If Not String.IsNullOrEmpty(tempName) Then
_connectionName = tempName
Else
_connectionName = CONNECTIONNAME_BASE
End If

tempServerName =
.Properties("ServerName").GetValue(_connectionManager).ToString
If Not String.IsNullOrEmpty(tempServerName) Then
_serverName = tempServerName
txtServerName.Text = _serverName
End If

tempDatabaseName =
.Properties("DatabaseName").GetValue(_connectionManager).ToString
If Not String.IsNullOrEmpty(tempDatabaseName) Then
_databaseName = tempDatabaseName
txtDatabaseName.Text = _databaseName
End If

End With

End Sub

Private Sub ConfigureConnectionManagerFromControls()

With _connectionManager
.Properties("Name").SetValue(_connectionManager, _connectionName)
.Properties("ServerName").SetValue(_connectionManager, _serverName)
.Properties("DatabaseName").SetValue(_connectionManager, _databaseName)
End With

End Sub

C#

private const string CONNECTIONNAME_BASE = "SqlConnectionManager";

private void ConfigureControlsFromConnectionManager()


{

string tempName;
string tempServerName;
string tempDatabaseName;

{
tempName =
_connectionManager.Properties["Name"].GetValue(_connectionManager).ToString(
);
if (!String.IsNullOrEmpty(tempName))
{
_connectionName = tempName;
}
else
{
_connectionName = CONNECTIONNAME_BASE;
}

tempServerName =
_connectionManager.Properties["ServerName"].GetValue(_connectionManager).ToS
tring();
if (!String.IsNullOrEmpty(tempServerName))
{
_serverName = tempServerName;
txtServerName.Text = _serverName;
}

tempDatabaseName =
_connectionManager.Properties["DatabaseName"].GetValue(_connectionManager).T
oString();
if (!String.IsNullOrEmpty(tempDatabaseName))
{
_databaseName = tempDatabaseName;
txtDatabaseName.Text = _databaseName;
}

private void ConfigureConnectionManagerFromControls()


{

{
_connectionManager.Properties["Name"].SetValue(_connectionManager,
_connectionName);

_connectionManager.Properties["ServerName"].SetValue(_connectionManager,
_serverName);

_connectionManager.Properties["DatabaseName"].SetValue(_connectionManager,
_databaseName);
}

Voir aussi
Création d'un gestionnaire de connexions personnalisé
Codage d'un gestionnaire de connexions personnalisé
Développement d'un module
fournisseur d'informations personnalisé
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Integration Services possède des fonctions de journalisation étendues qui permettent


de capturer les événements qui se produisent pendant l'exécution de package.
Integration Services inclut divers modules fournisseurs d’informations qui permettent de
créer et de stocker des journaux dans différents formats, tels que XML, texte et base de
données ou dans le journal des événements Windows. Si les modules fournisseurs
d'informations et les formats de sortie fournis ne répondent pas totalement à vos
besoin, vous pouvez créer un module fournisseur d'informations personnalisé.

Pour créer un module fournisseur d'informations personnalisé, vous devez créer une
classe qui hérite de la classe de base LogProviderBase, appliquer l'attribut
DtsLogProviderAttribute à la nouvelle classe et substituer les méthodes et propriétés
importantes de la classe de base, notamment la propriété ConfigString et la méthode
Log.

Dans cette section


Cette section explique comment créer, configurer et coder un module fournisseur
d'informations personnalisé.

Création d’un module fournisseur d’informations personnalisé


Explique comment créer les classes d'un projet de module fournisseur d'informations
personnalisé.

Codage d'un module fournisseur d'informations personnalisé


Décrit comment implémenter un module fournisseur d'informations personnalisé en
substituant les méthodes et propriétés de la classe de base.

Développement d’une interface utilisateur pour un module fournisseur d’informations


personnalisé
Les interfaces utilisateur personnalisées des modules fournisseurs d’informations
personnalisés ne sont pas prises en charge dans SQL Server Integration Services.

Rubriques connexes
Informations communes à tous les objets personnalisés
Pour obtenir les informations communes à tous les types d'objets personnalisés que
vous pouvez créer dans Integration Services, consultez les rubriques suivantes :

Développement d’objets personnalisés pour Integration Services


Décrit les étapes de base permettant d’implémenter tous les types d’objets
personnalisés pour Integration Services.

Persistance des objets personnalisés


Décrit la persistance personnalisée et explique les situations dans lesquelles elle est
nécessaire.

Génération, déploiement et débogage d’objets personnalisés


Décrit les techniques permettant de générer, signer, déployer et déboguer des objets
personnalisés.

Informations sur les autres objets personnalisés


Pour plus d’informations sur les autres types d’objets personnalisés que vous pouvez
créer dans Integration Services, consultez les rubriques suivantes :

Développement d'une tâche personnalisée


Explique comment programmer des tâches personnalisées.

Développement d’un gestionnaire de connexions personnalisé


Explique comment programmer des gestionnaires de connexions personnalisés.

Développement d’un énumérateur ForEach personnalisé


Décrit comment programmer des énumérateurs personnalisés.

Développement d’un composant de flux de données personnalisé


Explique comment programmer des sources, des transformations et des destinations de
flux de données personnalisées.
Création d'un module fournisseur
d'informations personnalisé
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

L'environnement d'exécution Integration Services possède des fonctionnalités de


journalisation complètes. Un journal vous permet de capturer des événements qui se
produisent pendant l'exécution d'un package. Integration Services inclut divers modules
fournisseurs d'informations qui permettent de créer et stocker des journaux dans
plusieurs formats, notamment XML, texte et base de données ou dans le journal des
événements Windows. Si l'un de ces fournisseurs ou formats de sortie ne répond pas à
vos besoins, vous pouvez créer un module fournisseur d'informations personnalisé.

Les étapes à suivre pour créer un module fournisseur d'informations personnalisé sont
similaires à celles qui permettent de créer tout autre objet personnalisé pour Integration
Services :

Créer une classe qui hérite de la classe de base. Pour un module fournisseur
d'informations, la classe de base est LogProviderBase.

Appliquer l'attribut qui identifie le type d'objet auprès de la classe. Pour un module
fournisseur d'informations, l'attribut est DtsLogProviderAttribute.

Substituer l'implémentation des méthodes et des propriétés de la classe de base.


Pour un module fournisseur d'informations, celles-ci incluent la propriété
ConfigString et les méthodes OpenLog, Log et CloseLog.

Les interfaces utilisateur personnalisées des modules fournisseurs d’informations


personnalisés ne sont pas implémentées dans SQL Server Integration Services.

Mise en route d'un module fournisseur


d'informations personnalisé

Création de projets et de classes


Puisque tous les modules fournisseurs d'informations managés dérivent de la classe de
base LogProviderBase, la première étape de création d'un module fournisseur
d'informations personnalisé consiste à créer un projet Bibliothèque de classes dans
votre langage de programmation managé par défaut, puis à créer une classe qui hérite
de la classe de base. Dans cette classe dérivée, vous devez substituer les méthodes et les
propriétés de la classe de base pour implémenter vos fonctionnalités personnalisées.

Configurez le projet pour signer l'assembly qui sera généré avec un fichier de clé de
nom fort.

7 Notes

De nombreux modules fournisseurs d’informations Integration Services ont une


interface utilisateur personnalisée qui implémente IDtsLogProviderUI et remplace
la zone de texte Configuration dans la boîte de dialogue Configurer les journaux
SSIS par la liste déroulante filtrée des gestionnaires de connexions disponibles.
Toutefois, les interfaces utilisateur personnalisées des modules fournisseurs
d'informations personnalisés ne sont pas implémentées dans Integration Services.

Application de l'attribut DtsLogProvider


Appliquez l'attribut DtsLogProviderAttribute à la classe que vous avez créée pour
l'identifier en tant que module fournisseur d'informations. Cet attribut fournit des
informations de conception, telles que le nom et la description du module fournisseur
d'informations. Les propriétés DisplayName et Description de l’attribut correspondent
aux colonnes Nom et Description qui apparaissent dans l’éditeur Configurer les
journaux SSIS, qui s’affiche lors de la configuration de la journalisation d’un package
dans SQL Server Data Tools (SSDT).

) Important

La propriété LogProviderType de l'attribut n'est pas utilisée. Toutefois, vous devez


entrer une valeur pour cette propriété, sans quoi le module fournisseur
d'informations personnalisé n'apparaîtra pas dans la liste des modules fournisseurs
d'informations disponibles.

7 Notes

Étant donné que les interfaces utilisateur personnalisées des modules fournisseurs
d'informations personnalisés ne sont pas implémentées dans Integration Services,
la spécification d'une valeur pour la propriété UITypeName de l'objet
DtsLogProviderAttribute n'a aucun effet.
VB

<DtsLogProvider(DisplayName:="MyLogProvider", Description:="A simple log


provider.", LogProviderType:="Custom")> _
Public Class MyLogProvider
Inherits LogProviderBase
' TODO: Override the base class methods.
End Class

Génération, déploiement et débogage d'un


module fournisseur d'informations
personnalisé
Les étapes permettant de générer, déployer et déboguer un module fournisseur
d'informations personnalisé dans Integration Services sont très similaires à celles
requises pour les autres types d'objets personnalisés. Pour plus d’informations,
consultez Génération, déploiement et débogage d’objets personnalisés.

Voir aussi
Codage d'un module fournisseur d'informations personnalisé
Développement d’une interface utilisateur pour un module fournisseur d’informations
personnalisé
Codage d'un module fournisseur
d'informations personnalisé
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Après avoir créé une classe qui hérite de la classe de base LogProviderBase, puis
appliqué l'attribut DtsLogProviderAttribute à cette classe, vous devez substituer
l'implémentation des propriétés et des méthodes de la classe de base afin de fournir vos
fonctionnalités personnalisées.

Pour obtenir des exemples fonctionnels de modules personnalisés, consultez


Développement d’une interface utilisateur pour un module fournisseur d’informations
personnalisé.

Configuration du module fournisseur


d’informations

Initialisation du module fournisseur d'informations


Vous remplacez la méthode InitializeLogProvider pour mettre en cache des références à
la collection de connexions et à l'interface d'événements. Vous pouvez utiliser ces
références mises en cache ultérieurement dans d'autres méthodes du module
fournisseur d'informations.

Utilisation de la propriété ConfigString


Au moment de la conception, un module fournisseur d’informations reçoit des
informations de configuration de la colonne Configuration. Ces informations de
configuration correspondent à la propriété ConfigString du module fournisseur
d'informations. Par défaut, cette colonne contient une zone de texte à partir de laquelle
vous pouvez extraire des informations de chaîne. La plupart des modules fournisseurs
d'informations inclus dans Integration Services utilisent cette propriété pour stocker le
nom du gestionnaire de connexions que le fournisseur utilise pour se connecter à une
source de données externe. Si votre module fournisseur d’informations utilise la
propriété ConfigString, utilisez la méthode Validate pour valider cette propriété et vous
assurer que la propriété est correctement définie.
Validation du module fournisseur d'informations
Vous remplacez la méthode Validate pour vous assurer que le fournisseur a été
configuré correctement et qu'il est prêt pour l'exécution. En général, un niveau
minimum de validation consiste à s'assurer que la propriété ConfigString est
correctement définie. L'exécution ne peut pas continuer tant que le module fournisseur
d'informations ne renvoie pas Success à partir de la méthode Validate.

L'exemple de code suivant illustre une implémentation de Validate qui s'assure que le
nom d'un gestionnaire de connexions est spécifié, que ce gestionnaire de connexions
existe dans le package et qu'il renvoie un nom de fichier dans la propriété ConfigString.

C#

public override DTSExecResult Validate(IDTSInfoEvents infoEvents)


{
if (this.ConfigString.Length == 0 || connections.Contains(ConfigString)
== false)
{
infoEvents.FireError(0, "MyTextLogProvider", "The ConnectionManager
" + ConfigString + " specified in the ConfigString property cannot be found
in the collection.", "", 0);
return DTSExecResult.Failure;
}
else
{
string fileName = connections[ConfigString].AcquireConnection(null)
as string;

if (fileName == null || fileName.Length == 0)


{
infoEvents.FireError(0, "MyTextLogProvider", "The
ConnectionManager " + ConfigString + " specified in the ConfigString
property cannot be found in the collection.", "", 0);
return DTSExecResult.Failure;
}
}
return DTSExecResult.Success;
}

VB

Public Overrides Function Validate(ByVal infoEvents As IDTSInfoEvents) As


DTSExecResult
If Me.ConfigString.Length = 0 Or connections.Contains(ConfigString) =
False Then
infoEvents.FireError(0, "MyTextLogProvider", "The ConnectionManager
" + ConfigString + " specified in the ConfigString property cannot be found
in the collection.", "", 0)
Return DTSExecResult.Failure
Else
Dim fileName As String =
connections(ConfigString).AcquireConnectionCType(as string, Nothing)

If fileName = Nothing Or fileName.Length = 0 Then


infoEvents.FireError(0, "MyTextLogProvider", "The
ConnectionManager " + ConfigString + " specified in the ConfigString
property cannot be found in the collection.", "", 0)
Return DTSExecResult.Failure
End If
End If
Return DTSExecResult.Success
End Function

Persistance du module fournisseur d'informations


D'ordinaire, vous n'avez pas à implémenter de persistance personnalisée pour un
gestionnaire de connexions. Une persistance personnalisée est uniquement requise
lorsque les propriétés d'un objet utilisent des types de données complexes. Pour plus
d’informations, consultez Développement d’objets personnalisés pour Integration
Services.

Journalisation avec le module fournisseur


d'informations
Il existe trois méthodes d'exécution qui doivent être remplacées par tous les modules
fournisseurs d'informations : OpenLog, Log et CloseLog.

) Important

Pendant la validation et l'exécution d'un package unique, les méthodes OpenLog et


CloseLog sont appelées plusieurs fois. Assurez-vous que votre code personnalisé
n'engendre pas l'écrasement des entrées de journal précédentes lors de l'ouverture
et de la fermeture suivantes du journal. Si vous avez choisi de journaliser les
événements de validation dans votre package test, le premier événement journalisé
que vous devez voir est OnPreValidate ; si le premier événement journalisé est
PackageStart, les événements de validation initiaux ont été écrasés.

Ouverture du journal
La plupart des modules fournisseurs d'informations se connectent à une source de
données externe, telle qu'un fichier ou une base de données, pour stocker les
informations d'événements collectées pendant l'exécution du package. Comme avec
tout autre objet inclus dans l'exécution, la connexion à la source de données externe est
en général établie en utilisant des objets de gestionnaire de connexions.

La méthode OpenLog est appelée au début de l'exécution du package. Remplacez cette


méthode pour établir une connexion à la source de données externe.

L'exemple de code suivant représente un module fournisseur d'informations qui ouvre


un fichier texte à des fins d'écriture pendant la méthode OpenLog. Il ouvre le fichier en
appelant la méthode AcquireConnection du gestionnaire de connexions qui a été
spécifié dans la propriété ConfigString.

C#

public override void OpenLog()


{
if(!this.connections.Contains(this.ConfigString))
throw new Exception("The ConnectionManager " + this.ConfigString + "
does not exist in the Connections collection.");

this.connectionManager = connections[ConfigString];
string filePath = this.connectionManager.AcquireConnection(null) as
string;

if(filePath == null || filePath.Length == 0)


throw new Exception("The ConnectionManager " + this.ConfigString + "
is not a valid FILE ConnectionManager");

// Create a StreamWriter to append to.


sw = new StreamWriter(filePath,true);

sw.WriteLine("Open log" + System.DateTime.Now.ToShortTimeString());


}

VB

Public Overrides Sub OpenLog()


If Not Me.connections.Contains(Me.ConfigString) Then
Throw New Exception("The ConnectionManager " + Me.ConfigString + "
does not exist in the Connections collection.")
End If

Me.connectionManager = connections(ConfigString)
Dim filePath As String = Me.connectionManager.AcquireConnectionCType(as
string, Nothing)

If filePath = Nothing Or filePath.Length = 0 Then


Throw New Exception("The ConnectionManager " + Me.ConfigString + "
is not a valid FILE ConnectionManager")
End If
' Create a StreamWriter to append to.
sw = New StreamWriter(filePath,True)

sw.WriteLine("Open log" + System.DateTime.Now.ToShortTimeString())


End Sub

Écriture des entrées du journal


La méthode Log est appelée chaque fois qu’un objet compris dans le package
déclenche un événement en appelant une méthode <événement> Fire sur l’une des
interfaces d’événements. Chaque événement est déclenché avec des informations sur
son contexte et habituellement un message explicatif. Toutefois, tous les appels de la
méthode Log n'incluent pas d'informations sur chaque paramètre de méthode. Par
exemple, certains événements standard dont les noms sont évidents ne fournissent pas
MessageText, et DataCode et DataBytes sont prévus pour des informations
supplémentaires facultatives.

L'exemple de code suivant implémente la méthode Log et écrit les événements dans le
flux qui a été ouvert dans la section précédente.

C#

public override void Log(string logEntryName, string computerName, string


operatorName, string sourceName, string sourceID, string executionID, string
messageText, DateTime startTime, DateTime endTime, int dataCode, byte[]
dataBytes)
{
sw.Write(logEntryName + ",");
sw.Write(computerName + ",");
sw.Write(operatorName + ",");
sw.Write(sourceName + ",");
sw.Write(sourceID + ",");
sw.Write(messageText + ",");
sw.Write(dataBytes + ",");
sw.WriteLine("");
}

VB

Public Overrides Sub Log(ByVal logEnTryName As String, ByVal computerName


As String, ByVal operatorName As String, ByVal sourceName As String, ByVal
sourceID As String, ByVal executionID As String, ByVal messageText As
String, ByVal startTime As DateTime, ByVal endTime As DateTime, ByVal
dataCode As Integer, ByVal dataBytes() As Byte)
sw.Write(logEnTryName + ",")
sw.Write(computerName + ",")
sw.Write(operatorName + ",")
sw.Write(sourceName + ",")
sw.Write(sourceID + ",")
sw.Write(messageText + ",")
sw.Write(dataBytes + ",")
sw.WriteLine("")
End Sub

Fermeture du journal
La méthode CloseLog est appelée à la fin de l'exécution du package, une fois que tous
les objets compris dans le package ont achevé leur exécution ou lorsque le package
s'arrête en raison d'erreurs.

L'exemple de code suivant montre une implémentation de la méthode CloseLog qui


ferme le flux de fichiers qui a été ouvert pendant la méthode OpenLog.

C#

public override void CloseLog()


{
if (sw != null)
{
sw.WriteLine("Close log" + System.DateTime.Now.ToShortTimeString());
sw.Close();
}
}

VB

Public Overrides Sub CloseLog()


If Not sw Is Nothing Then
sw.WriteLine("Close log" + System.DateTime.Now.ToShortTimeString())
sw.Close()
End If
End Sub

Voir aussi
Création d’un module fournisseur d’informations personnalisé
Développement d’une interface utilisateur pour un module fournisseur d’informations
personnalisé
Développement d'une interface
utilisateur pour un module fournisseur
d'informations personnalisé
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

De nombreux modules fournisseurs d’informations Integration Services ont une


interface utilisateur personnalisée qui implémente IDtsLogProviderUI et remplace la
zone de texte Configuration dans la boîte de dialogue Configurer les journaux SSIS par
la liste déroulante filtrée des gestionnaires de connexions disponibles. Toutefois, les
interfaces utilisateur personnalisées des modules fournisseurs d’informations
personnalisés ne sont pas implémentées dans SQL Server Integration Services.

Voir aussi
Création d’un module fournisseur d’informations personnalisé
Codage d'un module fournisseur d'informations personnalisé
Développement d'un énumérateur
ForEach personnalisé
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Integration Services utilise des énumérateurs Foreach pour parcourir les éléments d'une
collection et effectuer les mêmes tâches pour chaque élément. Integration Services
inclut divers énumérateurs Foreach qui prennent en charge les collections les plus
couramment utilisées, telles que tous les fichiers inclus dans un dossier, toutes les tables
incluses dans une base de données ou tous les éléments d'une liste stockée dans une
variable de package. Si les énumérateurs foreach et les collections fournies ne
répondent pas totalement à vos besoins, vous pouvez créer un énumérateur foreach
personnalisé.

Pour créer un énumérateur foreach personnalisé, vous devez créer une classe qui hérite
de la classe de base ForEachEnumerator, appliquer l'attribut
DtsForEachEnumeratorAttribute à votre nouvelle classe et remplacer les méthodes et
propriétés importantes de la classe de base, notamment la méthode GetEnumerator.

Dans cette section


Cette section explique comment créer, configurer et coder un énumérateur foreach
personnalisé et son interface utilisateur personnalisée.

Création d'un énumérateur Foreach personnalisé


Explique comment créer les classes d'un projet d'énumérateur foreach personnalisé.

Codage d'un énumérateur Foreach personnalisé


Décrit comment implémenter un énumérateur foreach personnalisé en remplaçant les
méthodes et propriétés de la classe de base.

Développement d'une interface utilisateur pour un énumérateur ForEach personnalisé


Explique comment implémenter la classe d'interface utilisateur et le formulaire servant à
configurer l'énumérateur foreach personnalisé.

Rubriques connexes

Informations communes à tous les objets personnalisés


Pour obtenir les informations communes à tous les types d'objets personnalisés que
vous pouvez créer dans Integration Services, consultez les rubriques suivantes :

Développement d’objets personnalisés pour Integration Services


Décrit les étapes de base permettant d’implémenter tous les types d’objets
personnalisés pour Integration Services.

Persistance des objets personnalisés


Décrit la persistance personnalisée et explique les situations dans lesquelles elle est
nécessaire.

Génération, déploiement et débogage d’objets personnalisés


Décrit les techniques permettant de générer, signer, déployer et déboguer des objets
personnalisés.

Informations sur les autres objets personnalisés


Pour plus d’informations sur les autres types d’objets personnalisés que vous pouvez
créer dans Integration Services, consultez les rubriques suivantes :

Développement d'une tâche personnalisée


Explique comment programmer des tâches personnalisées.

Développement d’un gestionnaire de connexions personnalisé


Explique comment programmer des gestionnaires de connexions personnalisés.

Développement d’un module fournisseur d’informations personnalisé


Explique comment programmer des modules fournisseurs d'informations personnalisés.

Développement d’un composant de flux de données personnalisé


Explique comment programmer des sources, des transformations et des destinations de
flux de données personnalisées.
Création d'un énumérateur Foreach
personnalisé
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les étapes de création d'un énumérateur Foreach personnalisé sont semblables aux
étapes de création de tout autre objet personnalisé pour Integration Services :

Créer une classe qui hérite de la classe de base. Pour un énumérateur Foreach, la
classe de base est ForEachEnumerator.

Appliquer l'attribut qui identifie le type d'objet auprès de la classe. Pour un


énumérateur Foreach, l'attribut est DtsForEachEnumeratorAttribute.

Substituer l'implémentation des méthodes et des propriétés de la classe de base.


Pour un énumérateur Foreach, l'élément le plus important est la méthode
GetEnumerator.

Développer éventuellement une interface utilisateur personnalisée. Pour un


énumérateur Foreach, cette opération requiert une classe qui implémente
l'interface IDTSForEachEnumeratorUI.

Un énumérateur personnalisé est hébergé par le conteneur ForEachLoop. Au moment


de l'exécution, le conteneur ForEachLoop appelle la méthode GetEnumerator de
l'énumérateur personnalisé. L’énumérateur personnalisé retourne un objet qui
implémente l’interface IEnumerable, par exemple un objet ArrayList. ForEachLoop
parcourt ensuite chaque élément de la collection, fournit la valeur de l'élément actuel au
flux de contrôle au moyen d'une variable définie par l'utilisateur et exécute le flux de
contrôle dans le conteneur.

Mise en route d'un énumérateur Foreach


personnalisé

Création de projets et de classes


Comme tous les énumérateurs Foreach managés dérivent de la classe de base
ForEachEnumerator, la première étape de création d'un énumérateur Foreach
personnalisé consiste à créer un projet Bibliothèque de classes dans votre langage de
programmation managé par défaut et créer une classe qui hérite de la classe de base.
Dans cette classe dérivée, vous devez substituer les méthodes et les propriétés de la
classe de base pour implémenter vos fonctionnalités personnalisées.

Dans la même solution, créez un deuxième projet Bibliothèque de classes pour


l'interface utilisateur personnalisée. Il est recommandé d'utiliser un assembly distinct
pour l'interface utilisateur afin de faciliter le déploiement car vous pouvez ainsi mettre à
jour et redéployer l'énumérateur Foreach ou son interface utilisateur de manière
indépendante.

Configurez les deux projets pour qu'ils signent les assemblys qui seront créés au
moment de la génération à l'aide d'un fichier de clé de nom fort.

Application de l'attribut DtsForEachEnumerator


Appliquez l'attribut DtsForEachEnumeratorAttribute à la classe que vous avez créée pour
l'identifier en tant qu'énumérateur Foreach. Cet attribut fournit des informations au
moment de la conception, telles que le nom et la description de l'énumérateur Foreach.
La propriété Name apparaît dans la liste déroulante des énumérateurs disponibles sous
l’onglet Collection de la boîte de dialogue Éditeur de boucle Foreach.

Utilisez la propriété UITypeName pour lier l'énumérateur Foreach à son interface


utilisateur personnalisée. Pour obtenir le jeton de clé publique requis pour cette
propriété, vous pouvez utiliser sn.exe -t de manière à afficher le jeton de clé publique
du fichier de paire de clés (.snk) que vous voulez utiliser pour signer l’assembly de
l’interface utilisateur.

VB

Imports System
Imports Microsoft.SqlServer.Dts.Runtime
Namespace Microsoft.Samples.SqlServer.Dts
<DtsForEachEnumerator(DisplayName = "MyEnumerator", Description="A
sample custom enumerator",
UITypeName="FullyQualifiedTypeName,AssemblyName,Version=1.00.000.00,Culture=
Neutral,PublicKeyToken=<publickeytoken>")> _
Public Class MyEnumerator
Inherits ForEachEnumerator
'Insert code here.
End Class
End Namespace

Génération, déploiement et débogage d'un


énumérateur personnalisé
Les étapes pour générer, déployer et déboguer un énumérateur Foreach personnalisé
dans Integration Services sont très semblables aux étapes requises pour les autres types
d'objets personnalisés. Pour plus d’informations, consultez Génération, déploiement et
débogage d’objets personnalisés.

Voir aussi
Codage d'un énumérateur Foreach personnalisé
Développement d'une interface utilisateur pour un énumérateur ForEach personnalisé
Codage d'un énumérateur Foreach
personnalisé
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Après avoir créé une classe qui hérite de la classe de base ForEachEnumerator, puis
appliqué l'attribut DtsForEachEnumeratorAttribute à cette classe, vous devez substituer
l'implémentation des propriétés et des méthodes de la classe de base afin de fournir vos
fonctionnalités personnalisées.

Pour obtenir un exemple fonctionnel d’un énumérateur personnalisé, consultez


Développement d’une interface utilisateur pour un énumérateur ForEach personnalisé.

Initialisation de l'énumérateur
Vous pouvez substituer la méthode InitializeForEachEnumerator pour mettre en cache
des références aux gestionnaires de connexions définis dans le package et des
références à l'interface d'événements qui vous permet de déclencher des erreurs, des
avertissements et des messages d'information.

Validation de l'énumérateur
Substituez la méthode Validate pour vérifier que l'énumérateur est correctement
configuré. Si la méthode retourne Failure, l’énumérateur et le package dans lequel il est
contenu ne seront pas exécutés. L'implémentation de cette méthode est propre à
chaque énumérateur, mais si l'énumérateur utilise des objets Variable ou
ConnectionManager, vous devez ajouter du code pour vérifier que ces objets existent
dans les collections fournies à la méthode.

L'exemple de code suivant montre une implémentation de Validate qui recherche une
variable spécifiée dans une propriété de l'énumérateur.

C#

private string variableNameValue;

public string VariableName


{
get{ return this.variableNameValue; }
set{ this.variableNameValue = value; }
}
public override DTSExecResult Validate(Connections connections,
VariableDispenser variableDispenser, IDTSInfoEvents infoEvents, IDTSLogging
log)
{
if (!variableDispenser.Contains(this.variableNameValue))
{
infoEvents.FireError(0, "MyEnumerator", "The Variable " +
this.variableNameValue + " does not exist in the collection.", "", 0);
return DTSExecResult.Failure;
}
return DTSExecResult.Success;
}

VB

Private variableNameValue As String

Public Property VariableName() As String


Get
Return Me.variableNameValue
End Get
Set (ByVal Value As String)
Me.variableNameValue = value
End Set
End Property

Public Overrides Function Validate(ByVal connections As Connections, ByVal


variableDispenser As VariableDispenser, ByVal infoEvents As IDTSInfoEvents,
ByVal log As IDTSLogging) As DTSExecResult
If Not variableDispenser.Contains(Me.variableNameValue) Then
infoEvents.FireError(0, "MyEnumerator", "The Variable " +
Me.variableNameValue + " does not exist in the collection.", "", 0)
Return DTSExecResult.Failure
End If
Return DTSExecResult.Success
End Function

Retour de la collection
Au moment de l’exécution, le conteneur ForEachLoop appelle la méthode
GetEnumerator de l’énumérateur personnalisé. Dans cette méthode, l'énumérateur crée
et remplit sa collection d'éléments, puis retourne la collection. Le conteneur
ForEachLoop itère ensuite les éléments dans la collection et exécute son flux de contrôle
pour chacun d'eux.

L'exemple suivant présente une implémentation de GetEnumerator qui retourne un


tableau d'entiers aléatoires.
C#

public override object GetEnumerator()


{
ArrayList numbers = new ArrayList();

Random randomNumber = new Random(DateTime.Now);

for( int x=0; x < 100; x++ )


numbers.Add( randomNumber.Next());

return numbers;
}

VB

Public Overrides Function GetEnumerator() As Object


Dim numbers As ArrayList = New ArrayList()

Dim randomNumber As Random = New Random(DateTime.Now)

Dim x As Integer
For x = 0 To 100- 1 Step x + 1
numbers.Add(randomNumber.Next())
Next

Return numbers
End Function

Voir aussi
Création d'un énumérateur Foreach personnalisé
Développement d'une interface utilisateur pour un énumérateur ForEach personnalisé
Développement d'une interface
utilisateur pour un énumérateur ForEach
personnalisé
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Après avoir remplacé l'implémentation des propriétés et méthodes de la classe de base


afin de fournir vos fonctionnalités personnalisées, vous pouvez créer une interface
utilisateur personnalisée pour votre énumérateur Foreach. Si vous ne créez pas
d'interface utilisateur personnalisée, les utilisateurs peuvent configurer uniquement le
nouvel énumérateur Foreach personnalisé en utilisant la fenêtre Propriétés.

Dans un projet ou assembly d'interface utilisateur personnalisée, vous créez une classe
qui implémente l'objet ForEachEnumeratorUI. Cette classe provient de
System.Windows.Forms.UserControl, qui est généralement utilisé pour créer un contrôle
composite afin d’héberger d’autres contrôles Windows Forms. Le contrôle que vous
créez s’affiche sous l’onglet Collection de l’Éditeur de boucle Foreach, dans la zone
Configuration de l’énumérateur.

) Important

Après avoir signé et généré votre interface utilisateur personnalisée, puis l’avoir
installée dans le Global Assembly Cache comme décrit dans Génération,
déploiement et débogage d’objets personnalisés, n’oubliez pas de fournir le nom
complet de cette classe dans la propriété UITypeName de la
classeDtsForEachEnumeratorAttribute.

Codage de la classe de contrôle de l'interface


utilisateur

Initialisation de l'interface utilisateur


Vous remplacez la méthode Initialize pour mettre en cache des références à l'objet hôte
et aux collections de gestionnaires de connexion et variables définies dans le package.
Définition de propriétés sur le contrôle de l'interface
utilisateur
La classe UserControl, de laquelle provient la classe de l’interface utilisateur, est destinée
à être utilisée comme contrôle composite afin d’héberger d’autres contrôles Windows
Forms. Parce que cette classe héberge d'autres contrôles, vous pouvez concevoir votre
interface utilisateur personnalisée en faisant glisser des contrôles, en les réorganisant, en
définissant leurs propriétés et en répondant au moment de l'exécution à leurs
événements comme dans toute application Windows Forms.

Enregistrement des paramètres


Vous remplacez la méthode SaveSettings pour copier les valeurs sélectionnées par
l'utilisateur depuis les contrôles vers les propriétés de l'énumérateur lorsque l'utilisateur
ferme l'éditeur.

Voir aussi
Création d'un énumérateur Foreach personnalisé
Codage d'un énumérateur Foreach personnalisé
Développement d'un composant de flux
de données personnalisé
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La tâche de flux de données comprend des composants qui se connectent à diverses


sources de données et qui transforment et acheminent ces données à haut débit.
Microsoft SQL Server Integration Services fournit un modèle objet extensible qui permet
aux développeurs de créer des sources, des transformations et des destinations
personnalisées que vous pouvez utiliser dans SQL Server Data Tools (SSDT) et dans des
packages déployés. Cette section contient des rubriques qui vous guideront afin de
développer des composants de flux de données personnalisés.

Dans cette section


Création d'un composant de flux de données personnalisé
Décrit les étapes initiales permettant de créer un composant de flux de données
personnalisé.

Méthodes de conception d'un composant de flux de données


Décrit les méthodes de conception à implémenter dans un composant de flux de
données personnalisé.

Méthodes d'exécution d'un composant de flux de données


Décrit les méthodes d'exécution à implémenter dans un composant de flux de données
personnalisé.

Plan d'exécution et allocation de mémoire tampon


Décrit le plan d'exécution du flux de données et l'allocation des tampons de données.

Utilisation de types de données dans le flux de données


Explique comment le flux mappe les types de données Integration Services aux types de
données managées .NET Framework.

Validation d'un composant de flux de données


Explique les méthodes utilisées pour valider la configuration du composant et
reconfigurer les métadonnées du composant.

Implémentation des métadonnées externes


Explique comment utiliser des colonnes de métadonnées externes pour la validation des
données.

Déclenchement et définition d'événements dans un composant de flux de données


Explique comment déclencher des événements prédéfinis et personnalisés.

Enregistrement et définition d'entrées de journal dans un composant de flux de


données
Explique comment créer et écrire des entrées de journal personnalisées.

Utilisation de sorties d'erreur dans un composant de flux de données


Explique comment rediriger des lignes d'erreur vers une autre sortie.

Mise à niveau de la version d'un composant de flux de données


Explique comment mettre à jour les métadonnées de composant enregistrées
lorsqu'une nouvelle version de votre composant est utilisée pour la première fois.

Développement d'une interface utilisateur pour un composant de flux de données


Explique comment implémenter un éditeur personnalisé pour un composant.

Développement de types spécifiques de composants de flux de données


Contient des informations sur le développement des trois types de composants de flux
de données : sources, transformations et destinations.

Informations de référence
Microsoft.SqlServer.Dts.Pipeline
Contient les classes et les interfaces qui permettent de créer des composants de flux de
données personnalisés.

Microsoft.SqlServer.Dts.Pipeline.Wrapper
Contient les classes et interfaces qui composent le modèle objet de tâche de flux de
données, lequel est utilisé pour créer des composants de flux de données personnalisés
ou générer une tâche de flux de données.

Microsoft.SqlServer.Dts.Pipeline.Design
Contient les classes et interfaces utilisées pour créer l'interface utilisateur des
composants de flux de données.

Guide de référence des erreurs et des messages propres à Integration Services


Répertorie les codes d'erreur Integration Services prédéfinis avec leur nom symbolique
et leur description.

Sections connexes
Informations communes à tous les objets personnalisés
Pour obtenir les informations communes à tous les types d'objets personnalisés que
vous pouvez créer dans Integration Services, consultez les rubriques suivantes :

Développement d’objets personnalisés pour Integration Services


Décrit les étapes de base permettant d’implémenter tous les types d’objets
personnalisés pour Integration Services.

Persistance des objets personnalisés


Décrit la persistance personnalisée et explique les situations dans lesquelles elle est
nécessaire.

Génération, déploiement et débogage d’objets personnalisés


Décrit les techniques permettant de générer, signer, déployer et déboguer des objets
personnalisés.

Informations sur les autres objets personnalisés


Pour plus d’informations sur les autres types d’objets personnalisés que vous pouvez
créer dans Integration Services, consultez les rubriques suivantes :

Développement d'une tâche personnalisée


Explique comment programmer des tâches personnalisées.

Développement d’un gestionnaire de connexions personnalisé


Explique comment programmer des gestionnaires de connexions personnalisés.

Développement d’un module fournisseur d’informations personnalisé


Explique comment programmer des modules fournisseurs d'informations personnalisés.

Développement d’un énumérateur ForEach personnalisé


Décrit comment programmer des énumérateurs personnalisés.

Voir aussi
Extension du flux de données avec le composant Script
Comparaison des solutions de script et des objets personnalisés
Création d'un composant de flux de
données personnalisé
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Dans Microsoft SQL Server Integration Services, la tâche de flux de données expose un
modèle objet qui permet aux développeurs de créer des composants de flux de
données personnalisés (sources, transformations et destinations) à l’aide de Microsoft
.NET Framework et de code managé.

Une tâche de flux de données comprend des composants qui contiennent une interface
IDTSComponentMetaData100 et une collection d'objets IDTSPath100 qui définissent le
déplacement de données entre les composants.

7 Notes

Lorsque vous créez un fournisseur personnalisé, vous devez mettre à jour le dossier
ProviderDescriptors.xml avec les valeurs de la colonne de métadonnées.

Moment de la conception et moment de


l'exécution
Avant l'exécution, la tâche de flux de données est dite au moment de la conception,
puisqu'elle subit des modifications incrémentielles. Les modifications peuvent inclure
l'ajout ou la suppression de composants, l'ajout ou la suppression d'objets de chemin
d'accès qui connectent des composants, ainsi que des modifications apportées aux
métadonnées des composants. Lorsque des modifications de métadonnées se
produisent, le composant peut les surveiller et y réagir. Par exemple, un composant peut
rejeter certaines modifications ou apporter des modifications supplémentaires en
réponse à une modification. Au moment de la conception, le concepteur interagit avec
un composant via l'interface IDTSDesigntimeComponent100 du moment de la
conception.

Au moment de l'exécution, la tâche de flux de données examine la séquence de


composants, prépare un plan d'exécution et gère un pool de threads de travail qui
exécute le plan de travail. Bien que chaque thread de travail effectue un travail qui est
interne à la tâche de flux de données, la tâche principale du thread de travail consiste à
appeler les méthodes du composant via l'interface IDTSRuntimeComponent100 du
moment de l'exécution.

Création d'un composant


Pour créer un composant de flux de données, vous dérivez une classe de la classe de
base PipelineComponent, vous appliquez la classe DtsPipelineComponentAttribute, puis
vous remplacez les méthodes appropriées de la classe de base. L'objet
PipelineComponent implémente les interfaces IDTSDesigntimeComponent100 et
IDTSRuntimeComponent100, puis expose leurs méthodes pour que vous les remplaciez
dans votre composant.

Selon les objets utilisés par votre composant, votre projet requerra des références à une
partie ou la totalité des assemblys suivants :

Fonctionnalité Assembly à référencer Espace de noms à importer

Flux de Microsoft.SqlServer.PipelineHost Microsoft.SqlServer.Dts.Pipeline


données

Wrapper de Microsoft.SqlServer.DTSPipelineWrap Microsoft.SqlServer.Dts.Pipeline.Wrapper


flux de
données

Runtime Microsoft.SQLServer.ManagedDTS Microsoft.SqlServer.Dts.Runtime

Wrapper Microsoft.SqlServer.DTSRuntimeWrap Microsoft.SqlServer.Dts.Runtime.Wrapper


d'exécution

L'exemple de code suivant montre un composant simple dérivé de la classe de base,


puis applique l'objet DtsPipelineComponentAttribute. Vous devez ajouter une référence
à l’assembly Microsoft.SqlServer.DTSPipelineWrap.

VB

Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper

<DtsPipelineComponent(DisplayName:="SampleComponent",
ComponentType:=ComponentType.Transform)> _
Public Class BasicComponent

Inherits PipelineComponent

' TODO: Override the base class methods.

End Class
Voir aussi
Développement d'une interface utilisateur pour un composant de flux de données
Méthodes de conception d'un
composant de flux de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Avant l'exécution, la tâche de flux de données est dite au moment de la conception,


puisqu'elle subit des modifications incrémentielles. Les modifications peuvent inclure
l'ajout ou la suppression de composants, l'ajout ou la suppression d'objets de chemin
d'accès qui connectent des composants, ainsi que des modifications apportées aux
métadonnées des composants. Lorsque des modifications de métadonnées se
produisent, le composant peut les surveiller et y réagir. Par exemple, un composant peut
rejeter certaines modifications ou apporter des modifications supplémentaires en
réponse à une modification. Au moment de la conception, le concepteur interagit avec
un composant via l'interface IDTSDesigntimeComponent100 du moment de la
conception.

Implémentation au moment de la conception


L'interface de conception d'un composant est décrite par l'interface
IDTSDesigntimeComponent100. Bien que vous n'implémentiez pas cette interface
explicitement, la connaissance des méthodes définies dans cette interface vous aidera à
comprendre quelles méthodes de la classe de base PipelineComponent correspondent à
l'instance de conception d'un composant.

Lorsqu'un composant est chargé dans SQL Server Data Tools (SSDT), l'instance de
conception du composant est instanciée et les méthodes de l'interface
IDTSDesigntimeComponent100 sont appelées alors que le composant est modifié.
L'implémentation de la classe de base vous permet de remplacer uniquement les
méthodes que votre composant requiert. Dans de nombreux cas, vous pouvez
remplacer ces méthodes pour empêcher des modifications inappropriées d'un
composant. Par exemple, pour empêcher des utilisateurs d'ajouter une sortie à un
composant, remplacez la méthode InsertOutput. Sinon, lorsque l'implémentation de
cette méthode par la classe de base est appelée, elle ajoute une sortie au composant.

Indépendamment de l'objectif ou des fonctionnalités de votre composant, vous devez


remplacer les méthodes ProvideComponentProperties, Validate et ReinitializeMetaData.
Pour plus d’informations sur Validate et ReinitializeMetaData, consultez Validation d’un
composant de flux de données.
Méthode ProvideComponentProperties
L'initialisation d'un composant se produit dans la méthode
ProvideComponentProperties. Cette méthode est appelée par le Concepteur SSIS
lorsqu'un composant est ajouté à la tâche de flux de données et qu'il est similaire à un
constructeur de classe. Les développeurs de composants doivent créer et initialiser leurs
entrées, sorties et propriétés personnalisées pendant cet appel de méthode. La méthode
ProvideComponentProperties diffère d'un constructeur parce qu'elle n'est pas appelée
chaque fois que l'instance de conception ou l'instance d'exécution du composant est
instanciée.

L'implémentation de la classe de base de la méthode ajoute une entrée et une sortie au


composant et attribue l'ID de l'entrée à la propriété SynchronousInputID. Toutefois, les
objets d'entrée et de sortie ajoutés par la classe de base ne sont pas nommés dans SQL
Server. Les packages qui contiennent un composant avec des objets d’entrée ou de
sortie dont la propriété Name n’est pas définie ne se chargeront pas correctement. Par
conséquent, lorsque vous utilisez l’implémentation de base, vous devez attribuer
explicitement des valeurs à la propriété Name de l’entrée ou la sortie par défaut.

VB

Public Overrides Sub ProvideComponentProperties()


' TODO: Reset the component.
' TODO: Add custom properties.
' TODO: Add input objects.
' TODO: Add output objects.
End Sub

Création de propriétés personnalisées


L'appel de la méthode ProvideComponentProperties est l'emplacement auquel les
développeurs de composants doivent ajouter des propriétés personnalisées
(IDTSCustomProperty100) au composant. Les propriétés personnalisées n'ont pas de
propriété de type de données. Le type de données d'une propriété personnalisée est
défini par le type de données de la valeur que vous attribuez à sa propriété Value.
Toutefois, après avoir attribué une valeur initiale à la propriété personnalisée, vous ne
pouvez pas attribuer une valeur dont le type de données est différent.

7 Notes

L’interface IDTSCustomProperty100 offre une prise en charge limitée des valeurs


de propriétés de type Objet. Le seul objet que vous pouvez stocker en tant que
valeur d'une propriété personnalisée est un tableau de types simples tels que des
chaînes ou des entiers.

Vous pouvez indiquer que votre propriété personnalisée prend en charge des
expressions de propriété en définissant la valeur de sa propriété ExpressionType sur
CPET_NOTIFY à partir de l’énumération DTSCustomPropertyExpressionType, comme
indiqué dans l’exemple suivant. Vous ne devez pas ajouter de code pour gérer ou valider
l'expression de propriété entrée par l'utilisateur. Vous pouvez définir une valeur par
défaut pour la propriété, validez sa valeur, ainsi que lire et utiliser normalement sa
valeur.

VB

Dim myCustomProperty As IDTSCustomProperty100


...
myCustomProperty.ExpressionType =
DTSCustomPropertyExpressionType.CPET_NOTIFY

Vous pouvez limiter les utilisateurs à la sélection d’une valeur de propriété personnalisée
à partir d’une énumération en utilisant la propriété TypeConverter, comme indiqué dans
l’exemple suivant, qui suppose que vous avez défini une énumération publique nommée
MyValidValues.

VB

Dim customProperty As IDTSCustomProperty100 =


outputColumn.CustomPropertyCollection.New
customProperty.Name = "My Custom Property"
' This line associates the type with the custom property.
customProperty.TypeConverter = GetType(MyValidValues).AssemblyQualifiedName
' Now you can use the enumeration values directly.
customProperty.Value = MyValidValues.ValueOne

Pour plus d’informations, consultez « Conversion de type généralisée » et


« Implémentation d’un convertisseur de type » dans la MSDN Library.

Vous pouvez spécifier une boîte de dialogue d'éditeur personnalisée pour la valeur de
votre propriété personnalisée en utilisant la propriété UITypeEditor, comme indiqué
dans l'exemple suivant. Tout d’abord, vous devez créer un éditeur de types personnalisé
qui hérite de System.Drawing.Design.UITypeEditor, si vous ne pouvez pas localiser une
classe existante d’éditeur de type d’interface utilisateur qui répond à vos besoins.

VB
Public Class MyCustomTypeEditor
Inherits UITypeEditor
...
End Class

Ensuite, spécifiez cette classe en tant que valeur de la propriété UITypeEditor de votre
propriété personnalisée.

VB

Dim customProperty As IDTSCustomProperty100 =


outputColumn.CustomPropertyCollection.New
customProperty.Name = "My Custom Property"
' This line associates the editor with the custom property.
customProperty.UITypeEditor =
GetType(MyCustomTypeEditor).AssemblyQualifiedName

Pour plus d’informations, consultez « Implémentation d’un éditeur de type d’interface


utilisateur » dans MSDN Library.

Voir aussi
Méthodes d'exécution d'un composant de flux de données
Méthodes d'exécution d'un composant
de flux de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Au moment de l'exécution, la tâche de flux de données examine la séquence de


composants, prépare un plan d'exécution et gère un pool de threads de travail qui
exécute le plan de travail. La tâche charge des lignes de données à partir des sources, les
traite via des transformations, puis les enregistre dans des destinations.

Séquence d'exécution des méthodes


Pendant l'exécution d'un composant de flux de données, un sous-ensemble des
méthodes de la classe de base PipelineComponent est appelé. Les méthodes, et l'ordre
dans lequel elles sont appelées, sont toujours les mêmes, à l'exception des méthodes
PrimeOutput et ProcessInput. Ces deux méthodes sont appelées en fonction de
l'existence et de la configuration des objets IDTSInput100 et IDTSOutput100 d'un
composant.

La liste suivante présente les méthodes dans l'ordre dans lequel elles sont appelées
pendant l'exécution d'un composant. Notez que lorsqu'elle est appelée, la méthode
PrimeOutput l'est toujours avant la méthode ProcessInput.

AcquireConnections

Validate

ReleaseConnections

PrepareForExecute

AcquireConnections

PreExecute

PrimeOutput

ProcessInput

PostExecute

ReleaseConnections
Cleanup

Méthode PrimeOutput
La méthode PrimeOutput est appelée lorsqu'un composant possède au moins une
sortie, attachée à un composant en aval via un objet IDTSPath100 et lorsque la propriété
SynchronousInputID de la sortie est nulle. La méthode PrimeOutput est appelée pour les
composants source et les transformations à sorties asynchrones. Contrairement à la
méthode ProcessInput décrite ci-dessous, la méthode PrimeOutput est appelée une
seule fois pour chaque composant qui la requiert.

Méthode ProcessInput
La méthode ProcessInput est appelée pour les composants qui possèdent au moins une
entrée attachée à un composant en amont par un objet IDTSPath100. La méthode
ProcessInput est appelée pour les composants de destination et les transformations à
sorties synchrones. l'ProcessInput est appelée à plusieurs reprises jusqu'à ce qu'il n'y ait
plus aucune ligne à traiter à partir des composants en amont.

Utilisation des entrées et des sorties


Au moment de l'exécution, les composants de flux de données effectuent les tâches
suivantes :

Les composants source ajoutent des lignes.

Les composants de transformation à sorties synchrones reçoivent les lignes


fournies par les composants source.

Les composants de transformation à sorties asynchrones reçoivent des lignes et en


ajoutent.

Les composants de destination reçoivent des lignes, puis les chargent dans une
destination.

Pendant l'exécution, la tâche de flux de données alloue des objets PipelineBuffer qui
contiennent toutes les colonnes définies dans les collections de colonnes de sortie d'une
séquence de composants. Par exemple, si chacun des quatre composants d'une
séquence de flux de données ajoute une colonne de sortie à sa collection de colonnes
de sortie, le tampon fourni à chaque composant contient quatre colonnes, une pour
chaque colonne de sortie par composant. En raison de ce comportement, un composant
reçoit parfois des tampons qui contiennent des colonnes qu'il n'utilise pas.
Étant donné que les tampons reçus par votre composant peuvent contenir des colonnes
que le composant n'utilisera pas, vous devez localiser les colonnes que vous souhaitez
utiliser dans les collections de colonnes d'entrée et de sortie de votre composant dans
le tampon fourni au composant par la tâche de flux de données. Pour ce faire, vous
utilisez la méthode FindColumnByLineageID de la propriété BufferManager. Pour des
raisons liées aux performances, cette tâche s'effectue en général pendant la méthode
PreExecute, plutôt que pendant la méthode PrimeOutput ou ProcessInput.

La méthode PreExecute est appelée avant les méthodes PrimeOutput et ProcessInput et


correspond à la première possibilité pour un composant d'effectuer ce travail une fois
que la propriété BufferManager est devenue disponible pour le composant. Pendant
cette méthode, le composant doit localiser ses colonnes dans les tampons et stocker en
interne ces informations afin que les colonnes puissent être utilisées dans les méthodes
PrimeOutput ou ProcessInput.

L'exemple de code suivant montre comment un composant de transformation à sortie


synchrone localise ses colonnes d'entrée dans le tampon pendant la méthode
PreExecute.

VB

Dim bufferColumnIndex As Integer()

Public Overrides Sub PreExecute()

Dim input As IDTSInput100 = ComponentMetaData.InputCollection(0)

ReDim bufferColumnIndex(input.InputColumnCollection.Count)

For x As Integer = 0 To input.InputColumnCollection.Count

Dim column As IDTSInputColumn100 =


input.InputColumnCollection(x)
bufferColumnIndex(x) =
BufferManager.FindColumnByLineageID(input.Buffer, column.LineageID)

Next

End Sub

Ajout de lignes
Les composants fournissent des lignes aux composants en aval en ajoutant des lignes
aux objets PipelineBuffer. La tâche de flux de données fournit un tableau de tampons de
sortie, un pour chaque objet IDTSOutput100 connecté à un composant en aval, en tant
que paramètre de la méthode PrimeOutput. Les composants source et de
transformation à sorties asynchrones ajoutent des lignes aux tampons et appellent la
méthode SetEndOfRowset lorsqu'ils ont terminé d'ajouter des lignes. La tâche de flux de
données gère les tampons de sortie qu'elle fournit aux composants et, lorsque le
tampon sature, déplace automatiquement les lignes incluses dans le tampon vers le
composant suivant. La méthode PrimeOutput est appelée une fois par composant,
contrairement à la méthode ProcessInput, appelée à plusieurs reprises.

L'exemple de code suivant montre comment un composant ajoute des lignes à ses
tampons de sortie pendant la méthode PrimeOutput, puis appelle la méthode
SetEndOfRowset.

VB

public overrides sub PrimeOutput( outputs as Integer , outputIDs() as


Integer ,buffers() as PipelineBuffer buffers)

For x As Integer = 0 To outputs.MaxValue

Dim output As IDTSOutput100 =


ComponentMetaData.OutputCollection.GetObjectByID(outputIDs(x))
Dim buffer As PipelineBuffer = buffers(x)

' TODO: Add rows to the output buffer.

Next

For Each buffer As PipelineBuffer In buffers

' Notify the data flow task that no more rows are coming.
buffer.SetEndOfRowset()

Next

End Sub

Pour plus d’informations sur le développement de composants qui ajoutent des lignes
aux mémoires tampons de sortie, consultez Développement d’un composant source
personnalisé et Développement d’un composant de transformation personnalisé à
sorties asynchrones.

Réception de lignes
Les composants reçoivent des lignes provenant des composants en amont dans les
objets PipelineBuffer. La tâche de flux de données fournit un objet PipelineBuffer qui
contient les lignes ajoutées au flux de données par les composants en amont en tant
que paramètre de la méthode ProcessInput. Ce tampon d'entrée peut être utilisé pour
examiner et modifier les lignes et colonnes dans le tampon, mais il ne permet pas
d'ajouter ou de supprimer des lignes. La méthode ProcessInput est appelée à plusieurs
reprises jusqu'à ce qu'il n'y ait plus de tampon disponible. Lors du dernier appel, la
propriété EndOfRowset a la valeur true. Vous pouvez parcourir la collection de lignes
dans le tampon en utilisant la méthode NextRow, qui permet d'accéder à la ligne
suivante du tampon. Cette méthode retourne false lorsque le tampon est sur la dernière
ligne de la collection. Vous n'avez pas à vérifier la propriété EndOfRowset sauf si vous
devez effectuer une action supplémentaire une fois que les dernières lignes de données
ont été traitées.

Le texte suivant illustre le modèle correct pour l'utilisation de la méthode NextRow et de


la propriété EndOfRowset :

while (buffer.NextRow())

// Do something with each row.

if (buffer.EndOfRowset)

// Optionally, do something after all rows have been processed.

L'exemple de code suivant montre comment un composant traite les lignes dans les
tampons d'entrée pendant la méthode ProcessInput.

VB

Public Overrides Sub ProcessInput(ByVal inputID As Integer, ByVal buffer As


PipelineBuffer)

Dim input As IDTSInput100 =


ComponentMetaData.InputCollection.GetObjectByID(inputID)
While buffer.NextRow() = True

' TODO: Examine the columns in the current row.


End While

End Sub
Pour plus d’informations sur le développement de composants qui reçoivent des lignes
dans les mémoires tampons d’entrée, consultez Développement d’un composant de
destination personnalisé et Développement d’un composant de transformation
personnalisé à sorties asynchrones.

Voir aussi
Méthodes de conception d'un composant de flux de données
Plan d'exécution et allocation de
mémoire tampon
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Avant l'exécution, la tâche de flux de données examine ses composants et génère un


plan d'exécution pour chaque séquence de composants. Cette section fournit des
détails sur le plan d'exécution et son mode d'affichage, ainsi que sur l'allocation de
mémoires tampons d'entrée et de sortie en fonction du plan d'exécution.

Fonctionnement du plan d'exécution


Un plan d'exécution contient des threads sources et des threads de travail. Chaque
thread contient des listes de travaux qui spécifient des listes de travaux de sortie pour
les threads sources ou des listes de travaux d'entrée et de sortie pour les threads de
travail. Les threads sources d’un plan d’exécution, qui représentent les composants
sources du flux de données, sont identifiés dans le plan d’exécution par SourceThreadn,
où n correspond au numéro (commençant à zéro) du thread source.

Chaque thread source crée une mémoire tampon, définit un écouteur et appelle la
méthode PrimeOutput sur le composant source. C'est de cet emplacement que démarre
l'exécution et que proviennent les données, pendant que le composant source
commence à ajouter des lignes aux mémoires tampons de sortie que lui fournit la tâche
de flux de données. Une fois que les threads sources sont exécutés, la charge de travail
est répartie entre les threads de travail.

Un thread de travail, qui peut contenir des listes de travaux d’entrée et de sortie, est
identifié dans le plan d’exécution par WorkThreadn, où n correspond au numéro
(commençant à zéro) du thread de travail. Ces threads contiennent des listes de travaux
de sortie lorsque le graphique contient un composant à sorties asynchrones.

L'exemple de plan d'exécution suivant représente un flux de données qui contient un


composant source connecté à une transformation à sortie asynchrone connectée à un
composant de destination. Dans cet exemple, WorkThread0 contient une liste des
travaux de sortie car le composant de transformation possède une sortie asynchrone.

SourceThread0
Influences: 72 158
Output Work List
CreatePrimeBuffer of type 1 for output id 10
SetBufferListener: "WorkThread0" for input ID 73
CallPrimeOutput on component "OLE DB Source" (1)
End Output Work List
This thread drives 0 distributors
End SourceThread0
WorkThread0
Influences: 72 158
Input Work list, input ID 73
CallProcessInput on input ID 73 on component "Sort" (72) for view
type 2
End Input Work list for input 73
Output Work List
CreatePrimeBuffer of type 3 for output id 74
SetBufferListener: "WorkThread1" for input ID 171with internal
handoff
CallPrimeOutput on component "Sort" (72)
End Output Work List
This thread drives 0 distributors
End WorkThread0
WorkThread1
Influences: 158
Input Work list, input ID 171
CallProcessInput on input ID 171 on component "OLE DB Destination"
(158) for view type 4
End Input Work list for input 171
Output Work List
End Output Work List
This thread drives 0 distributors
End WorkThread1

7 Notes

Le plan d’exécution est généré chaque fois qu’un package est exécuté. Il peut être
capturé en ajoutant un module fournisseur d’informations au package, en activant
la journalisation et en sélectionnant l’événement PipelineExecutionPlan.

Fonctionnement de l'allocation de mémoire


tampon
En fonction du plan d'exécution, la tâche de flux de données crée des mémoires
tampons qui contiennent les colonnes définies dans les sorties des composants de flux
de données. La mémoire tampon est réutilisée tandis que les données transitent par la
séquence de composants, jusqu'à ce qu'un composant à sorties asynchrones soit trouvé.
Puis, une nouvelle mémoire tampon est créée, qui contient les colonnes de sortie de la
sortie asynchrone et les colonnes de sortie des composants en aval.

Pendant l'exécution, les composants ont accès à la mémoire tampon dans le thread
source ou de travail actuel. Il peut s'agir d'une mémoire tampon d'entrée, fournie par la
méthode ProcessInput, ou d'une mémoire tampon de sortie, fournie par la méthode
PrimeOutput. La propriété Mode de PipelineBuffer identifie également chaque mémoire
tampon en tant que mémoire tampon d'entrée ou de sortie.

Les composants de transformation à sorties asynchrones reçoivent la mémoire tampon


d'entrée existante via la méthode ProcessInput et la nouvelle mémoire tampon de sortie
via la méthode PrimeOutput. Les composants de transformation à sorties asynchrones
sont les seuls types de composants de flux de données qui reçoivent à la fois une
mémoire tampon d'entrée et de sortie.

Comme la mémoire tampon fournie à un composant est susceptible de contenir un


nombre de colonnes supérieur à celui que possède le composant dans ses collections
de colonnes d’entrée et de sortie, les développeurs de composants peuvent appeler la
méthode FindColumnByLineageID pour rechercher une colonne dans la mémoire
tampon en spécifiant son LineageID.
Utilisation de types de données dans le
flux de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Lors du développement d'un composant de flux de données personnalisé dans


Integration Services, vous travaillez constamment avec des types de données, en copiant
des données depuis et vers les mémoires tampons du flux de données et en
transformant des valeurs. Les informations contenues dans cette rubrique vous aident à
choisir les types de données Integration Services corrects ainsi qu’à utiliser les méthodes
appropriées quand vous travaillez avec celles-ci.

Insertion de données dans le flux de données


La classe PipelineBuffer fournit une série de méthodes Set pour copier des données
dans des colonnes tampons, ainsi qu’une série correspondante de méthodes Get pour
extraire des données dans les colonnes tampons. Les tableaux suivants indiquent la
méthode à utiliser avec chaque type de données Integration Services.

Méthodes Set à utiliser avec les types de données


Le tableau suivant répertorie le type de données dans la première colonne, puis les
méthodes Set et Get correspondantes.

Type de données Set, méthode Get, méthode

DT_BOOL SetBoolean GetBoolean

DT_BYTES SetBytes GetBytes

DT_CY SetDecimal GetDecimal

DT_DATE SetDateTime GetDateTime

DT_DBDATE SetDate GetDate

DT_DBTIME SetTime GetTime

DT_DBTIME2 SetTime GetTime

DT_DBTIMESTAMP SetDateTime GetDateTime


Type de données Set, méthode Get, méthode

DT_DBTIMESTAMP2 SetDateTime GetDateTime

DT_DBTIMESTAMPOFFSET SetDateTimeOffset GetDateTimeOffset

DT_DECIMAL SetDecimal GetDecimal

DT_FILETIME SetDateTime GetDateTime

DT_GUID SetGuid GetGuid

DT_I1 SetSByte GetSByte

DT_I2 SetInt16 GetInt16

DT_I4 SetInt32 GetInt32

DT_I8 SetInt64 GetInt64

DT_IMAGE AddBlobData ou GetBlobData


AddBlobData

DT_NTEXT AddBlobData ou GetBlobData


AddBlobData

DT_NULL SetNull Aucune méthode Get n’est applicable à ce


type de données.

DT_NUMERIC SetDecimal GetDecimal

DT_R4 SetSingle GetSingle

DT_R8 SetDouble GetDouble

DT_STR SetString GetString

DT_TEXT AddBlobData ou GetBlobData


AddBlobData

DT_UI1 SetByte GetByte

DT_UI2 SetUInt16 GetUInt16

DT_UI4 SetUInt32 GetUInt32

DT_UI8 SetUInt64 GetUInt64

DT_WSTR SetString GetString

Types de données à utiliser avec les méthodes Set


Set, méthode Type de données

AddBlobData ou DT_IMAGE, DT_NTEXTou DT_TEXT


AddBlobData

SetBoolean DT_BOOL

SetByte DT_UI1

SetBytes DT_BYTES

SetDate DT_DBDATE

SetDateTime DT_DATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 ou


DT_FILETIME

SetDateTimeOffset DT_DBTIMESTAMPOFFSET

SetDecimal DT_CY, DT_DECIMALou DT_NUMERIC

SetDouble DT_R8

SetGuid DT_GUID

SetInt16 DT_I2

SetInt32 DT_I4

SetInt64 DT_I8

SetNull DT_NULL

SetSByte DT_I1

SetSingle DT_R4

SetString DT_STR ou DT_WSTR

SetTime DT_DBTIME ou DT_DBTIME2

SetUInt16 DT_UI2

SetUInt32 DT_UI4

SetUInt64 DT_UI8

Mappage des types de données dans le flux de


données
Lors du déplacement de données depuis des sources vers des destinations en passant
par des transformations, un composant de flux de données doit parfois convertir des
types de données entre les types SQL Server Integration Services définis dans
l’énumération DataType et les types de données managés de Microsoft .NET Framework
définis dans l’espace de noms System. De plus, un composant doit parfois convertir un
type de données Integration Services en un autre type de données pour que ce type
puisse être converti en un type managé.

7 Notes

Les fichiers de mappage au format XML installés par défaut dans C:\Program
Files\Microsoft SQL Server\130\DTS\MappingFiles ne sont pas liés au mappage des
types de données décrit dans cette rubrique. Ces fichiers mappent les types de
données d’une version de base de données ou d’un système vers un autre (par
exemple de SQL Server vers Oracle), et ils sont utilisés seulement par l’Assistant
Importation et exportation de SQL Server. Pour plus d’informations sur ces fichiers
de mappage, consultez Assistant Importation et Exportation SQL Server.

Mappage entre Integration Services et les types de


données managées
Les méthodes BufferTypeToDataRecordType et DataRecordTypeToBufferType mappent
les types de données Integration Services à des types de données managés.

U Attention

Les développeurs doivent utiliser ces méthodes de la classe PipelineComponent


avec prudence et peuvent coder leurs propres méthodes de mappage des types de
données si elles conviennent mieux aux besoins uniques de leurs composants
personnalisés. Les méthodes existantes ne considèrent aucune précision numérique
ou échelle, ni d'autres propriétés étroitement liées au type de données lui-même.
Microsoft est susceptible de modifier ou de supprimer ces méthodes, ou de
modifier les mappages effectués, dans une future version d’Integration Services.

Le tableau suivant indique la manière dont les méthodes BufferTypeToDataRecordType


et DataRecordTypeToBufferType mappent différents types de données Integration
Services à des types de données managés.

Type de données Integration Services Type de données managées auquel il est mappé
Type de données Integration Services Type de données managées auquel il est mappé

DT_WSTR System.String

DT_BYTES Tableau de System.Byte

DT_DBTIMESTAMP System.DateTime

DT_DBTIMESTAMP2 System.DateTime

DT_DBTIMESTAMPOFFSET System.DateTimeOffset

DT_DBDATE System.DateTime

DT_DBTIME System.TimeSpan

DT_DBTIME2 System.TimeSpan

DT_DATE System.DateTime

DT_FILETIME System.DateTime

DT_NUMERIC System.Decimal

DT_GUID System.Guid

DT_I1 System.SByte

DT_I2 System.Int16

DT_I4 System.Int32

DT_I8 System.Int64

DT_BOOL System.Boolean

DT_R4 System.Single

DT_R8 System.Double

DT_UI1 System.Byte

DT_UI2 System.UInt16

DT_UI4 System.UInt32

DT_UI8 System.UInt64

Mappage des types de données Integration Services à


des fins d'adéquation avec les types de données
managées
Parfois, un composant de flux de données doit également convertir un type de données
Integration Services en autre type de données pour que ce type puisse être converti en
type managé. La classe de méthode ConvertBufferDataTypeToFitManaged mappe les
types de données Integration Services à d’autres types de données qui peuvent alors
être mappés aux types de données managés en utilisant la méthode
BufferTypeToDataRecordType.

U Attention

Les développeurs doivent utiliser ces méthodes de la classe PipelineComponent


avec prudence et peuvent coder leurs propres méthodes de mappage des types de
données si elles conviennent mieux aux besoins uniques de leurs composants
personnalisés. Les méthodes existantes ne considèrent aucune précision numérique
ou échelle, ni d'autres propriétés étroitement liées au type de données lui-même.
Microsoft est susceptible de modifier ou de supprimer ces méthodes, ou de
modifier les mappages effectués, dans une future version d’Integration Services.

Le tableau suivant indique la façon dont la méthode


ConvertBufferDataTypeToFitManaged mappe les types de données Integration Services
à d’autres types de données Integration Services.

Type de données Integration Services Type de données Intégration Services auquel il


d'origine est mappé

DT_DECIMAL DT_NUMERIC

DT_CY DT_NUMERIC

DT_DATE DT_DBTIMESTAMP

DT_DBDATE DT_DBTIMESTAMP

DT_FILETIME DT_DBTIMESTAMP

DT_DBTIMESTAMP2 DT_DBTIMESTAMP

DT_DBTIME DT_DBTIME2

DT_BOOL DT_I4

DT_TEXT DT_WSTR

DT_NTEXT DT_WSTR

DT_STR DT_WSTR

DT_IMAGE DT_BYTES
7 Notes

La méthode ConvertBufferDataTypeToFitManaged ne renvoie pas de valeur pour


le type de données DT_DBTIMESTAMPOFFSET et un objet
UnsupportedBufferDataTypeException est généré. Vous devez convertir le type de
données DT_DBTIMESTAMPOFFSET en un type de données date/heure Integration
Services qui peut être mappé à un type de données managé. Pour obtenir la liste
des types de données date/heure Integration Services qui peuvent être mappés à
des types de données managés, consultez le tableau de la section précédente,
« Mappage entre Integration Services et les types de données managés ». Pour plus
d’informations sur la conversion des types de données, consultez Types de
données Integration Services.

Voir aussi
BufferTypeToDataRecordType
DataRecordTypeToBufferType
ConvertBufferDataTypeToFitManaged
Types de données d’Integration Services
Validation d'un composant de flux de
données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La méthode Validate de la classe de base PipelineComponent est fournie pour empêcher


l'exécution d'un composant qui n'est pas configuré correctement. Cette méthode vous
permet de vérifier qu'un composant dispose du nombre d'objets d'entrée et de sortie
attendu, que les valeurs des propriétés personnalisées du composant sont acceptables
et que toutes les connexions nécessaires sont spécifiées. Elle vous permet également de
vérifier que les colonnes dans les collections d'entrée et de sortie contiennent des types
de données corrects et que le DTSUsageType de chaque colonne est défini de manière
appropriée pour le composant. L'implémentation de la classe de base contribue au
processus de validation en contrôlant la collection de colonnes d'entrée du composant
et en vérifiant que chaque colonne de la collection fait référence à une colonne dans le
IDTSOutputCollection100 du composant en amont.

Validate, méthode
La méthode Validate est appelée de manière répétée quand un composant est modifié
dans le concepteur SSIS. Vous pouvez fournir des informations au concepteur et aux
utilisateurs du composant par le biais de la valeur de retour de l'énumération
DTSValidationStatus, et en publiant des avertissements et des erreurs. L'énumération
DTSValidationStatus contient trois valeurs correspondant à différents stades de
défaillance, et une quatrième, VS_ISVALID, qui indique si le composant est correctement
configuré et prêt à être exécuté.

La valeur VS_NEEDSNEWMETADATA indique qu'il existe une erreur dans


ComponentMetaData et que le composant peut réparer les erreurs. Si un composant
rencontre une erreur de métadonnées qu'il peut réparer, il ne doit pas la corriger dans la
méthode Validate et la propriété ComponentMetaData ne doit pas être modifiée au
cours de la validation. Au lieu de cela, la méthode Validate doit retourner
VS_NEEDSNEWMETADATA uniquement, et le composant doit réparer l'erreur lors d'un
appel à la méthode ReinitializeMetaData, tel que décrit plus loin dans cette section.

La valeur VS_ISBROKEN indique que le composant contient une erreur qui peut être
corrigée en modifiant le composant dans le concepteur. L'erreur provient généralement
d'une propriété personnalisée ou d'une connexion requise non spécifiée ou définie de
manière incorrecte.
La valeur d'erreur finale est VS_ISCORRUPT, ce qui indique que le composant a
découvert des erreurs qui ne peuvent se produire que si la propriété
ComponentMetaData a été modifiée directement, en modifiant le package XML ou en
utilisant le modèle objet. Par exemple, ce type d'erreur se produit lorsqu'un composant
a ajouté une seule entrée, mais que la validation découvre que plusieurs entrées existent
dans ComponentMetaData. Les erreurs qui génèrent cette valeur de retour ne peuvent
être réparées qu’en réinitialisant le composant à l’aide du bouton Réinitialiser de la
boîte de dialogue Éditeur avancé.

En plus de retourner des valeurs d'erreur, les composants fournissent des informations
en publiant des avertissements ou des erreurs lors de la validation. Les méthodes
FireWarning et FireError fournissent ce mécanisme. Quand ces méthodes sont appelées,
ces événements sont publiés dans la fenêtre Liste d’erreurs de SQL Server Data Tools
(SSDT). Les développeurs de composants peuvent ensuite fournir des commentaires
directement aux utilisateurs sur les erreurs rencontrées et, le cas échéant, la manière de
les corriger.

L'exemple de code suivant montre une implémentation substituée de Validate.

VB

Public Overrides Function Validate() As DTSValidationStatus

Dim pbCancel As Boolean = False

' Validate that there is one input.


If Not (ComponentMetaData.InputCollection.Count = 1) Then
ComponentMetaData.FireError(0, ComponentMetaData.Name, "Incorrect number
of inputs.", "", 0, pbCancel)
Return DTSValidationStatus.VS_ISCORRUPT
End If

' Validate that the UserName custom property is set.


If ComponentMetaData.CustomPropertyCollection("UserName").Value Is Nothing
OrElse CType(ComponentMetaData.CustomPropertyCollection("UserName").Value,
String).Length = 0 Then
ComponentMetaData.FireError(0, ComponentMetaData.Name, "The UserName
property must be set.", "", 0, pbCancel)
Return DTSValidationStatus.VS_ISBROKEN
End If

' Validate that there is one output.


If Not (ComponentMetaData.OutputCollection.Count = 1) Then
ComponentMetaData.FireError(0, ComponentMetaData.Name, "Incorrect number
of outputs.", "", 0, pbCancel)
Return DTSValidationStatus.VS_ISCORRUPT
End If

' Let the base class verify that the input column reflects the output
' of the upstream component.

Return MyBase.Validate

End Function

Méthode ReinitializeMetaData
La méthode ReinitializeMetaData est appelée par le concepteur SSIS chaque fois que
vous modifiez un composant qui retourne VS_NEEDSNEWMETADATA à partir de sa
méthode Validate. Les composants doivent contenir du code qui détecte et corrige les
problèmes identifiés par le composant au cours de la validation.

L'exemple suivant montre un composant qui détecte des problèmes au cours de la


validation et les corrige dans la méthode ReinitializeMetaData.

VB

Private areInputColumnsValid As Boolean = True

Public Overrides Function Validate() As DTSValidationStatus


Dim input As IDTSInput100 = ComponentMetaData.InputCollection(0)
Dim vInput As IDTSVirtualInput100 = input.GetVirtualInput
Dim Cancel As Boolean = False
For Each column As IDTSInputColumn100 In input.InputColumnCollection
Try
Dim vColumn As IDTSVirtualInputColumn100 =
vInput.VirtualInputColumnCollection.GetVirtualInputColumnByLineageID(column.
LineageID)
Catch
ComponentMetaData.FireError(0, ComponentMetaData.Name, "The input
column " + column.IdentificationString + " does not match a column in the
upstream component.", "", 0, Cancel)
areInputColumnsValid = False
Return DTSValidationStatus.VS_NEEDSNEWMETADATA
End Try
Next
Return DTSValidationStatus.VS_ISVALID
End Function

Public Overrides Sub ReinitializeMetaData()


If Not areInputColumnsValid Then
Dim input As IDTSInput100 = ComponentMetaData.InputCollection(0)
Dim vInput As IDTSVirtualInput100 = input.GetVirtualInput
For Each column As IDTSInputColumn100 In input.InputColumnCollection
Dim vColumn As IDTSVirtualInputColumn100 =
vInput.VirtualInputColumnCollection.GetVirtualInputColumnByLineageID(column.
LineageID)
If vColumn Is Nothing Then
input.InputColumnCollection.RemoveObjectByID(column.ID)
End If
Next
areInputColumnsValid = True
End If
End Sub
Implémentation des métadonnées
externes
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Lorsqu'un composant est déconnecté de sa source de données, vous pouvez valider les
colonnes comprises dans les collections de colonnes d'entrée et de sortie par rapport
aux colonnes de sa source de données externe en utilisant l'interface
IDTSExternalMetadataColumnCollection100. Cette interface vous permet de conserver
un instantané des colonnes à la source de données externe et de les mapper aux
colonnes de la collection de colonnes d'entrée et de sortie du composant.

L'implémentation de colonnes de métadonnées externes ajoute une couche de charge


et de complexité au développement du composant, parce que vous devez effectuer une
gestion et une validation par rapport à une collection de colonnes supplémentaire, mais
la capacité d'éviter des allers-retours onéreux vers le serveur pour la validation peut
rendre ce travail de développement valable.

Remplissage de colonnes de métadonnées


externes
Les colonnes de métadonnées externes sont ajoutées en général à la collection lorsque
la colonne d'entrée ou de sortie correspondante est créée. Les nouvelles colonnes sont
créées en appelant la méthode New. Les propriétés de la colonne sont alors configurées
pour correspondre à la source de données externe.

La colonne de métadonnées externes est mappée à la colonne d'entrée ou de sortie


correspondante en assignant l'ID de la colonne de métadonnées externes à la propriété
ExternalMetadataColumnID de la colonne d'entrée ou de sortie. Cela vous permet de
localiser facilement la colonne de métadonnées externes pour une colonne d'entrée ou
de sortie spécifique en utilisant la méthode GetObjectByID de la collection.

L'exemple suivant indique comment créer une colonne de métadonnées externes, puis
comment la mapper à une colonne de sortie en définissant la
propriétéExternalMetadataColumnID.

VB
Public Sub CreateExternalMetaDataColumn(ByVal output As IDTSOutput100, ByVal
outputColumnID As Integer)
Dim oColumn As IDTSOutputColumn100 =
output.OutputColumnCollection.GetObjectByID(outputColumnID)
Dim eColumn As IDTSExternalMetadataColumn100 =
output.ExternalMetadataColumnCollection.New
eColumn.DataType = oColumn.DataType
eColumn.Precision = oColumn.Precision
eColumn.Scale = oColumn.Scale
eColumn.Length = oColumn.Length
eColumn.CodePage = oColumn.CodePage
oColumn.ExternalMetadataColumnID = eColumn.ID
End Sub

Validation avec les colonnes de métadonnées


externes
La validation requiert des étapes supplémentaires pour les composants qui gèrent une
collection de colonnes de métadonnées externes, parce que vous devez effectuer une
validation par rapport à une collection supplémentaire de colonnes. La validation peut
être divisée en validation connectée ou validation déconnectée.

Validation connectée
Lorsqu'un composant est connecté à une source de données externe, les colonnes
comprises dans les collections d'entrée ou de sortie sont vérifiées directement par
rapport à la source de données externe. En outre, les colonnes comprises dans la
collection de métadonnées externes doivent être validées. Cette validation est requise
car la collection de métadonnées externe peut être modifiée à l’aide de l’Éditeur avancé
dans SQL Server Data Tools (SSDT), et les modifications apportées à la collection ne sont
pas détectables. Par conséquent, en cas de connexion, les composants doivent s'assurer
que les colonnes comprises dans la collection de colonnes de métadonnées externes
continuent à refléter les colonnes à la source de données externe.

Vous pouvez choisir de masquer la collection de métadonnées externes dans l’Éditeur


avancé en définissant la propriété IsUsed de la collection sur false. Cependant, cela
masque également l’onglet Mappage de colonnes de l’éditeur, lequel permet aux
utilisateurs de mapper des colonnes de la collection d’entrée ou de sortie aux colonnes
de la collection de colonnes de métadonnées externes. La définition de cette propriété
sur false n’empêche pas les développeurs de modifier la collection par programmation,
mais elle fournit un niveau de protection pour la collection de colonnes de
métadonnées externes d’un composant qui est utilisé exclusivement dans SQL Server
Data Tools (SSDT).

Validation déconnectée
Lorsqu'un composant est déconnecté d'une source de données externe, la validation est
simplifiée parce que les colonnes comprises dans la collection d'entrée ou de sortie sont
vérifiées directement par rapport aux colonnes de la collection de métadonnées
externes et non pas par rapport à la source externe. Un composant doit effectuer une
validation déconnectée lorsque la connexion à sa source de données externe n’a pas été
établie ou lorsque la propriété ValidateExternalMetadata a la valeur false.

L'exemple de code suivant montre l'implémentation d'un composant qui effectue la


validation par rapport à sa collection de colonnes de métadonnées externes.

VB

Public Overrides Function Validate() As DTSValidationStatus


If Me.isConnected AndAlso ComponentMetaData.ValidateExternalMetaData Then
' TODO: Perform connected validation.
Else
' TODO: Perform disconnected validation.
End If
End Function

Voir aussi
Flux de données
Déclenchement et définition
d'événements dans un composant de
flux de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les développeurs de composants peuvent déclencher un sous-ensemble des


événements définis dans l'interface IDTSComponentEvents en appelant les méthodes
exposées sur la propriété ComponentMetaData. Vous pouvez également définir des
événements personnalisés à l'aide de la collection EventInfos, puis les déclencher
pendant l'exécution en utilisant la méthode FireCustomEvent. Cette section décrit
comment créer et déclencher un événement. Elle fournit également des conseils sur
l'opportunité de déclencher des événements au moment de la conception.

Déclenchement d’événements
Les composants déclenchent des événements à l’aide des méthodes Fire<X> de
l’interface IDTSComponentMetaData100. Vous pouvez déclencher des événements
pendant la conception et l'exécution de composants. En général, les méthodes FireError
et FireWarning sont appelées pendant la validation, lors de la conception de
composants. Ces événements affichent des messages dans le volet Liste d’erreurs de
SQL Server Data Tools et fournissent des commentaires aux utilisateurs du composant
lorsque ce dernier n’est pas correctement configuré.

Les composants peuvent également déclencher des événements à tout moment


pendant l'exécution. Les événements permettent aux développeurs de composants de
fournir des commentaires aux utilisateurs du composant pendant son exécution. L'appel
de la méthode FireError pendant l'exécution risque de provoquer l'échec du package.

Définition et déclenchement d'événements


personnalisés

Définition d'un événement personnalisé


L'appel de la méthode Add de la collection EventInfos permet de créer des événements
personnalisés. Cette collection est définie par la tâche de flux de données et fournie en
tant que propriété au développeur de composants par le biais de la classe de base
PipelineComponent. Cette classe contient des événements personnalisés définis par la
tâche de flux de données et des événements personnalisés définis par le composant
pendant l'exécution de la méthode RegisterEvents.

Les événements personnalisés d'un composant ne sont pas conservés dans le package
XML. Par conséquent, la méthode RegisterEvents est appelée pendant la conception et
l'exécution pour permettre au composant de définir les événements qu'il déclenche.

Le paramètre allowEventHandlers de la méthode Add spécifie si le composant autorise la


création d’objets DtsEventHandler pour l’événement. Notez que les DtsEventHandlers
sont synchrones. Par conséquent, le composant ne recommence à s'exécuter qu'après la
fin de l'exécution d'un DtsEventHandler attaché à l'événement personnalisé. Si le
paramètre allowEventHandlers a la valeur true, chaque paramètre de l’événement est
mis automatiquement à la disposition des objets DtsEventHandler par le biais de
variables créées et remplies automatiquement par le runtime SQL Server Integration
Services.

Déclenchement d'un événement personnalisé


Les composants déclenchent des événements personnalisés en appelant la méthode
FireCustomEvent et en fournissant le nom, le texte et les paramètres de l'événement. Si
le paramètre allowEventHandlers est true, tout DtsEventHandlers créé pour l’événement
personnalisé est exécuté par le moteur d’exécution SSIS.

Exemple d'événement personnalisé


L'exemple de code suivant présente un composant qui définit un événement
personnalisé pendant l'exécution de la méthode RegisterEvents, puis qui déclenche
l'événement au moment de l'exécution en appelant la méthode FireCustomEvent.

VB

Public Overrides Sub RegisterEvents()


Dim parameterNames As String() = New String(2) {"RowCount", "StartTime"}
Dim parameterTypes As System.UInt16() = New System.UInt16(2)
{DtsConvert.VarTypeFromTypeCode(TypeCode.Int32),
DtsConvert.VarTypeFromTypeCode(TypeCode.DateTime)}
Dim parameterDescriptions As String() = New String(2) {"The number of rows
to sort.", "The start time of the Sort operation."}
EventInfos.Add("StartingSort", "Fires when the component begins sorting
the rows.", False, parameterNames, parameterTypes, parameterDescriptions)
End Sub

Public Overrides Sub ProcessInput(ByVal inputID As Integer, ByVal buffer As


PipelineBuffer)
While buffer.NextRow
End While
Dim eventInfo As IDTSEventInfo100 = EventInfos("StartingSort")
Dim arguments As Object() = New Object(2) {buffer.RowCount, DateTime.Now}
ComponentMetaData.FireCustomEvent("StartingSort", _
"Beginning sort operation.", arguments, _
ComponentMetaData.Name, FireSortEventAgain)
End Sub

Voir aussi
Gestionnaires d'événements Integration Services (SSIS)
Ajouter un gestionnaire d’événements à un package
Enregistrement et définition d'entrées
de journal dans un composant de flux
de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les composants de flux de données personnalisés peuvent publier des messages dans
une entrée de journal existante à l'aide de la méthode PostLogMessage de l'interface
IDTSComponentMetaData100. Ils peuvent également présenter des informations à
l'utilisateur en utilisant la méthode FireInformation, ou des méthodes semblables, de
l'interface IDTSComponentMetaData100. Toutefois, cette procédure induit une
surcharge causée par le déclenchement et la gestion d'événements supplémentaires et
force l'utilisateur à passer en revue les messages d'information documentés pour
rechercher ceux susceptibles de l'intéresser. Vous pouvez utiliser une entrée de journal
personnalisée, tel que décrit ci-dessous, pour fournir aux utilisateurs de votre
composant des informations de journal personnalisées étiquetées.

Inscription et utilisation d'une entrée de journal


personnalisée

Inscription d'une entrée de journal personnalisée


Pour inscrire une entrée de journal personnalisée destinée à votre composant,
substituez la méthode RegisterLogEntries de la classe de base PipelineComponent.
L'exemple suivant inscrit une entrée de journal personnalisée et lui fournit un nom et
une description.

C#

using Microsoft.SqlServer.Dts.Runtime;
...
private const string MyLogEntryName = "My Custom Component Log Entry";
private const string MyLogEntryDescription = "Log entry from My Custom
Component ";
...
public override void RegisterLogEntries()
{
this.LogEntryInfos.Add(MyLogEntryName,
MyLogEntryDescription,
Microsoft.SqlServer.Dts.Runtime.Wrapper.DTSLogEntryFrequency.DTSLEF_CONSISTE
NT);
}

VB

Imports Microsoft.SqlServer.Dts.Runtime
...
Private Const MyLogEntryName As String = "My Custom Component Log Entry"
Private Const MyLogEntryDescription As String = "Log entry from My Custom
Component "
...
Public Overrides Sub RegisterLogEntries()
Me.LogEntryInfos.Add(MyLogEntryName, _
MyLogEntryDescription, _

Microsoft.SqlServer.Dts.Runtime.Wrapper.DTSLogEntryFrequency.DTSLEF_CONSISTE
NT)
End Sub

L'énumération DTSLogEntryFrequency fournit au Runtime une indication quant à la


fréquence de journalisation de l'événement :

DTSLEF_OCCASIONAL : l'événement est enregistré épisodiquement, mais pas à


chaque exécution.

DTSLEF_CONSISTENT : l'événement est enregistré un nombre constant de fois


pendant chaque exécution.

DTSLEF_PROPORTIONAL : l'événement est enregistré un nombre de fois


proportionnel à la quantité de travail accompli.

L'exemple ci-dessus utilise DTSLEF_CONSISTENT car le composant s'attend à enregistrer


une entrée une fois par exécution.

Après l’inscription de l’entrée de journal personnalisée et l’ajout d’une instance de votre


composant personnalisé à l’aire du concepteur de flux de données, la boîte de dialogue
Enregistrement dans le concepteur affiche une nouvelle entrée de journal appelée
« Entrée de journal de mon composant personnalisé » dans la liste des entrées de
journal disponibles.

Enregistrement dans une entrée de journal personnalisée


Après l'inscription de l'entrée de journal personnalisée, le composant peut désormais
enregistrer des messages personnalisés. L'exemple suivant écrit une entrée de journal
personnalisée pendant l'exécution de la méthode PreExecute qui contient le texte d'une
instruction SQL utilisée par le composant.

C#

public override void PreExecute()


{
DateTime now = DateTime.Now;
byte[] additionalData = null;
this.ComponentMetaData.PostLogMessage(MyLogEntryName,
this.ComponentMetaData.Name,
"Command Sent was: " + myCommand.CommandText,
now, now, 0, ref additionalData);
}

VB

Public Overrides Sub PreExecute()


Dim now As DateTime = DateTime.Now
Dim additionalData As Byte() = Nothing
Me.ComponentMetaData.PostLogMessage(MyLogEntryName, _
Me.ComponentMetaData.Name, _
"Command Sent was: " + myCommand.CommandText, _
now, now, 0, additionalData)
End Sub

À présent, lorsque l'utilisateur exécute le package, après avoir sélectionné l'option


« Entrée de journal de mon composant personnalisé » dans la boîte de dialogue
Journalisation, le journal contient une entrée clairement étiquetée « Utilisateur ::Entrée
de journal de mon composant personnalisé ». Cette nouvelle entrée de journal contient
le texte de l'instruction SQL, l'horodateur et toutes les données supplémentaires
enregistrées par le développeur.

Voir aussi
Journalisation d'Integration Services (SSIS)
Utilisation de sorties d'erreur dans un
composant de flux de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Il est possible d'ajouter des objets IDTSOutput100 spéciaux appelés sorties d'erreur à
des composants afin de permettre à un composant de rediriger les lignes qu'il ne
parvient pas à traiter pendant l'exécution. Les problèmes qu'un composant peut
rencontrer sont en général classés en tant qu'erreurs ou troncations et sont propres à
chaque composant. Les composants qui fournissent des sorties d'erreur offrent à leurs
utilisateurs la flexibilité de gérer les conditions d'erreur en filtrant les lignes d'erreur du
jeu de résultats, en provoquant l'échec du composant lorsqu'un problème se produit ou
en ignorant des erreurs afin de continuer.

Pour implémenter et prendre en charge les sorties d’erreur dans un composant, vous
devez commencer par définir la propriété UsesDispositions du composant sur true.
Ensuite, vous devez ajouter une sortie au composant dont la propriété IsErrorOut a la
valeur true. Enfin, le composant doit contenir un code qui redirige les lignes vers la
sortie d'erreur lorsque des erreurs ou troncations se produisent. Cette rubrique couvre
ces trois étapes et explique les différences entre les sorties d'erreur synchrones et
asynchrones.

Création d'une sortie d'erreur


Vous créez une sortie d’erreur en appelant la méthode New de la propriété
OutputCollection, puis en définissant la propriété IsErrorOut de la nouvelle sortie sur
true. Si la sortie est asynchrone, vous n'avez rien d'autre à lui faire. Si la sortie est
synchrone, et qu'il existe une autre sortie synchrone avec la même entrée, vous devez
également définir les propriétés ExclusionGroup et SynchronousInputID. Ces deux
propriétés doivent avoir les mêmes valeurs que l'autre sortie synchrone avec la même
entrée. Si ces propriétés ne sont pas définies sur une valeur différente de zéro, les lignes
fournies par l'entrée sont envoyées aux deux sorties synchrones avec l'entrée.

Lorsqu'un composant rencontre une erreur ou troncation pendant l'exécution, il


continue selon les paramètres des propriétés ErrorRowDisposition et
TruncationRowDisposition de l'entrée ou la sortie, ou de l'entrée ou la colonne de sortie,
dans laquelle l'erreur s'est produite. La valeur de ces propriétés doit être définie par
défaut sur RD_NotUsed. Lorsque la sortie d'erreur du composant est connectée à un
composant en aval, cette propriété est définie par l'utilisateur du composant et permet à
l'utilisateur de contrôler la manière dont le composant gère l'erreur ou la troncation.

Remplissage de colonnes d'erreur


Lorsqu'une sortie d'erreur est créée, la tâche de flux de données ajoute
automatiquement deux colonnes à la collection de colonnes de sortie. Ces colonnes
sont utilisées par les composants pour spécifier l'ID de la colonne qui a provoqué
l'erreur ou la troncation, puis pour fournir le code d'erreur spécifique au composant. Ces
colonnes sont générées automatiquement, mais les valeurs qu'elles contiennent doivent
être définies par le composant.

La méthode utilisée pour définir les valeurs de ces colonnes varie selon que la sortie
d'erreur est synchrone ou asynchrone. Les composants avec des sorties synchrones
appellent la méthode DirectErrorRow, décrite de manière plus approfondie dans la
section suivante, puis fournissent le code d'erreur et les valeurs de colonnes d'erreur en
tant que paramètres. Les composants avec des sorties asynchrones ont deux possibilités
pour définir les valeurs de ces colonnes. Ils peuvent soit appeler la méthode SetErrorInfo
du tampon de sortie et fournir les valeurs, soit localiser les colonnes d'erreur dans le
tampon à l'aide de la méthode FindColumnByLineageID et définir directement les
valeurs des colonnes. Toutefois, puisque les noms des colonnes ou leur emplacement
dans la collection de colonnes de sortie peuvent avoir été modifiés, la seconde méthode
risque de ne pas être fiable. La méthode SetErrorInfo définit automatiquement les
valeurs dans ces colonnes d'erreur sans avoir à les localiser manuellement.

Si vous devez obtenir la description d'erreur qui correspond à un code d'erreur


spécifique, vous pouvez utiliser la méthode GetErrorDescription de l'interface
IDTSComponentMetaData100, disponible via la propriété ComponentMetaData du
composant.

Les exemples de code suivants présentent un composant qui possède une entrée et
deux sorties, dont une sortie d'erreur. Le premier exemple indique comment créer une
sortie d'erreur synchrone avec l'entrée. Le second exemple indique comment créer une
sortie d'erreur asynchrone.

VB

Public Overrides Sub ProvideComponentProperties()

' Specify that the component has an error output.


ComponentMetaData.UsesDispositions = True

Dim input As IDTSInput100 = ComponentMetaData.InputCollection.New


' Create the input.
input.Name = "Input"
input.ErrorRowDisposition = DTSRowDisposition.RD_NotUsed
input.ErrorOrTruncationOperation = "A string describing the possible error
or truncation that may occur during execution."

' Create the default output.


Dim output As IDTSOutput100 = ComponentMetaData.OutputCollection.New
output.Name = "Output"
output.SynchronousInputID = input.ID
output.ExclusionGroup = 1

' Create the error output.


Dim errorOutput As IDTSOutput100 = ComponentMetaData.OutputCollection.New
errorOutput.IsErrorOut = True
errorOutput.Name = "ErrorOutput"
errorOutput.SynchronousInputID = input.ID
errorOutput.ExclusionGroup = 1

End Sub

L'exemple de code suivant crée une sortie d'erreur asynchrone.

VB

Public Overrides Sub ProvideComponentProperties()

' Specify that the component has an error output.


ComponentMetaData.UsesDispositions = True

' Create the input.


Dim input As IDTSInput100 = ComponentMetaData.InputCollection.New

' Create the default output.


input.Name = "Input"
input.ErrorRowDisposition = DTSRowDisposition.RD_NotUsed
input.ErrorOrTruncationOperation = "A string describing the possible error
or truncation that may occur during execution."

' Create the error output.


Dim output As IDTSOutput100 = ComponentMetaData.OutputCollection.New
output.Name = "Output"
Dim errorOutput As IDTSOutput100 = ComponentMetaData.OutputCollection.New
errorOutput.Name = "ErrorOutput"
errorOutput.IsErrorOut = True

End Sub

Redirection d'une ligne vers une sortie d'erreur


Après avoir ajouté une sortie d'erreur à un composant, vous devez fournir un code qui
gère les conditions d'erreur ou de troncation propres au composant et qui redirige les
lignes d'erreur ou de troncation vers la sortie d'erreur. Vous pouvez procéder de deux
manières pour cela, selon que la sortie d'erreur est synchrone ou asynchrone.

Redirection d'une ligne avec des sorties synchrones


Les lignes sont envoyées aux sorties synchrones en appelant la méthode DirectErrorRow
de la classe PipelineBuffer. L'appel de méthode inclut en tant que paramètres l'ID de la
sortie d'erreur, le code d'erreur défini par le composant et l'index de la colonne que le
composant n'a pas pu traiter.

L'exemple de code suivant montre comment diriger une ligne dans un tampon vers une
sortie d'erreur synchrone à l'aide de la méthode DirectErrorRow.

VB

Public Overrides Sub ProcessInput(ByVal inputID As Integer, ByVal buffer As


PipelineBuffer)
Dim input As IDTSInput100 =
ComponentMetaData.InputCollection.GetObjectByID(inputID)

' This code sample assumes the component has two outputs, one the
default,
' the other the error output. If the errorOutputIndex returned from
GetErrorOutputInfo
' is 0, then the default output is the second output in the collection.
Dim defaultOutputID As Integer = -1
Dim errorOutputID As Integer = -1
Dim errorOutputIndex As Integer = -1

GetErrorOutputInfo(errorOutputID, errorOutputIndex)

If errorOutputIndex = 0 Then
defaultOutputID = ComponentMetaData.OutputCollection(1).ID
Else
defaultOutputID = ComponentMetaData.OutputCollection(0).ID
End If

While buffer.NextRow
Try
' TODO: Implement code to process the columns in the buffer row.

' Ideally, your code should detect potential exceptions before they
occur, rather
' than having a generic try/catch block such as this.
' However, because the error or truncation implementation is specific
to each component,
' this sample focuses on actually directing the row, and not a single
error or truncation.
' Unless an exception occurs, direct the row to the default
buffer.DirectRow(defaultOutputID)
Catch
' Yes, has the user specified to redirect the row?
If input.ErrorRowDisposition = DTSRowDisposition.RD_RedirectRow Then
' Yes, direct the row to the error output.
' TODO: Add code to include the errorColumnIndex.
buffer.DirectErrorRow(errorOutputID, 0, errorColumnIndex)
Else
If input.ErrorRowDisposition = DTSRowDisposition.RD_FailComponent
OrElse input.ErrorRowDisposition = DTSRowDisposition.RD_NotUsed Then
' No, the user specified to fail the component, or the error row
disposition was not set.
Throw New Exception("An error occurred, and the DTSRowDisposition
is either not set, or is set to fail component.")
Else
' No, the user specified to ignore the failure so
' direct the row to the default output.
buffer.DirectRow(defaultOutputID)
End If
End If
End Try
End While
End Sub

Redirection d'une ligne avec des sorties asynchrones


Au lieu de diriger des lignes vers une sortie, comme cela est fait avec des sorties d'erreur
synchrones, les composants avec des sorties asynchrones envoient une ligne vers une
sortie d'erreur en ajoutant explicitement une ligne à la sortie PipelineBuffer.
L'implémentation d'un composant qui utilise des sorties d'erreur asynchrones implique
d'ajouter à la sortie d'erreur des colonnes fournies aux composants en aval et de mettre
en cache le tampon de sortie pour la sortie d'erreur fournie au composant pendant la
méthode PrimeOutput. L’implémentation d’un composant à sorties asynchrones est
décrite en détail dans la rubrique Développement d’un composant de transformation
personnalisé à sorties asynchrones. Si les colonnes ne sont pas ajoutées explicitement à
la sortie d'erreur, la ligne du tampon ajoutée au tampon de sortie contient uniquement
les deux colonnes d'erreur.

Pour envoyer une ligne vers une sortie d'erreur asynchrone, vous devez ajouter une
ligne au tampon de sortie d'erreur. Parfois, une ligne peut avoir déjà été ajoutée au
tampon de sortie sans erreur et vous devez la supprimer en utilisant la méthode
RemoveRow. Ensuite, vous définissez les valeurs des colonnes du tampon de sortie, et
enfin, vous appelez la méthode SetErrorInfo pour fournir le code d'erreur propre au
composant et la valeur de la colonne d'erreur.
L'exemple suivant montre comment utiliser une sortie d'erreur pour un composant avec
des sorties asynchrones. Lorsque l'erreur simulée se produit, le composant ajoute une
ligne au tampon de sortie d'erreur, copie les valeurs ajoutées précédemment au tampon
de sortie sans erreur vers le tampon de sortie d'erreur, supprime la ligne ajoutée au
tampon de sortie sans erreur et, enfin, définit le code d'erreur et les valeurs des
colonnes d'erreur en appelant la méthode SetErrorInfo.

VB

Private columnIndex As Integer()


Private errorOutputID As Integer = -1
Private errorOutputIndex As Integer = -1

Public Overrides Sub PreExecute()


Dim defaultOutput As IDTSOutput100 = Nothing
Me.GetErrorOutputInfo(errorOutputID, errorOutputIndex)
For Each output As IDTSOutput100 In ComponentMetaData.OutputCollection
If Not (output.ID = errorOutputID) Then
defaultOutput = output
End If
Next
columnIndex = New Integer(defaultOutput.OutputColumnCollection.Count) {}
Dim col As Integer = 0
While col < defaultOutput.OutputColumnCollection.Count
Dim column As IDTSOutputColumn100 =
defaultOutput.OutputColumnCollection(col)
columnIndex(col) =
BufferManager.FindColumnByLineageID(defaultOutput.Buffer, column.LineageID)
System.Math.Min(System.Threading.Interlocked.Increment(col),col-1)
End While
End Sub

Public Overrides Sub PrimeOutput(ByVal outputs As Integer, ByVal outputIDs


As Integer(), ByVal buffers As PipelineBuffer())
Dim x As Integer = 0
While x < outputs
If outputIDs(x) = errorOutputID Then
Me.errorBuffer = buffers(x)
Else
Me.defaultBuffer = buffers(x)
End If
System.Math.Min(System.Threading.Interlocked.Increment(x),x-1)
End While
Dim rows As Integer = 100
Dim random As Random = New Random(System.DateTime.Now.Millisecond)
Dim row As Integer = 0
While row < rows
Try
defaultBuffer.AddRow
Dim x As Integer = 0
While x < columnIndex.Length
defaultBuffer(columnIndex(x)) = random.Next
System.Math.Min(System.Threading.Interlocked.Increment(x),x-1)
End While
' Simulate an error.
If (row Mod 2) = 0 Then
Throw New Exception("A simulated error.")
End If
Catch
' Add a row to the error buffer.
errorBuffer.AddRow
' Get the values from the default buffer
' and copy them to the error buffer.
Dim x As Integer = 0
While x < columnIndex.Length
errorBuffer(columnIndex(x)) = defaultBuffer(columnIndex(x))
System.Math.Min(System.Threading.Interlocked.Increment(x),x-1)
End While
' Set the error information.
errorBuffer.SetErrorInfo(errorOutputID, 1, 0)
' Remove the row that was added to the default buffer.
defaultBuffer.RemoveRow
End Try
System.Math.Min(System.Threading.Interlocked.Increment(row),row-1)
End While
If Not (defaultBuffer Is Nothing) Then
defaultBuffer.SetEndOfRowset
End If
If Not (errorBuffer Is Nothing) Then
errorBuffer.SetEndOfRowset
End If
End Sub

Voir aussi
Gestion des erreurs dans les données
Utilisation de sorties d’erreur
Développement d'une interface
utilisateur pour un composant de flux
de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les développeurs de composants peuvent fournir une interface utilisateur personnalisée


pour un composant. Cette interface s'affiche dans SQL Server Data Tools (SSDT) lors de
la modification du composant. Grâce à l'implémentation d'une interface utilisateur
personnalisée, vous êtes averti lorsque le composant est ajouté ou supprimé d'une
tâche de flux de données, et lorsque de l'aide est demandée pour le composant.

Si vous ne fournissez pas d'interface utilisateur personnalisée pour votre composant, les
utilisateurs peuvent encore configurer le composant et ses propriétés personnalisées à
l'aide de l'éditeur avancé. Vous pouvez vous assurer que l'éditeur avancé permet aux
utilisateurs de modifier convenablement des valeurs de propriété personnalisées à l'aide
des propriétés TypeConverter et UITypeEditor de IDTSCustomProperty100 le cas
échéant. Pour plus d’informations, consultez « Création de propriétés personnalisées »
dans Méthodes de conception d’un composant de flux de données.

Définition de la propriété UITypeName


Pour fournir une interface utilisateur personnalisée, le développeur doit attribuer à la
propriété UITypeName de DtsPipelineComponentAttribute le nom d'une classe qui
implémente l'interface IDtsComponentUI. Lorsque cette propriété est définie par le
composant, SQL Server Integration Services charge et appelle l’interface utilisateur
personnalisée lorsque le composant est modifié dans le concepteur SSIS.

La propriété UITypeName est une chaîne délimitée par des virgules qui identifie le nom
qualifié complet du type. La liste suivante affiche, dans l'ordre, les éléments qui
identifient le type :

Nom de type

Nom de l'assembly

Version de fichier

Culture
Jeton de clé publique

L'exemple de code suivant montre une classe dérivée de la classe de base


PipelineComponent et spécifie la propriété UITypeName.

VB

<DtsPipelineComponent(DisplayName="SampleComponent", _
UITypeName="MyNamespace.MyComponentUIClassName,MyAssemblyName,Version=1.0.0.
0,Culture=neutral,PublicKeyToken=abcd...",
ComponentType=ComponentType.Transform)> _
Public Class SampleComponent
Inherits PipelineComponent
End Class

Implémentation de l'interface
IDtsComponentUI
L'interface IDtsComponentUI contient des méthodes que le concepteur SSIS appelle
lorsqu'un composant est ajouté, supprimé ou modifié. Les développeurs de composants
peuvent fournir du code dans leur implémentation de ces méthodes pour interagir avec
les utilisateurs des composants.

Cette classe est généralement implémentée dans un assembly distinct du composant


lui-même. Bien qu'elle ne soit pas obligatoire, l'utilisation d'un assembly séparé permet
au développeur de générer et déployer le composant et l'interface utilisateur
indépendamment l'un de l'autre et de limiter l'encombrement binaire du composant.

L'implémentation d'une interface utilisateur personnalisée permet au développeur de


composants de mieux contrôler le composant lorsqu'il est modifié dans le concepteur
SSIS. Par exemple, un composant peut ajouter du code à la méthode New, appelée
lorsqu'un composant est initialement ajouté à une tâche de flux de données, et afficher
un Assistant qui guide l'utilisateur à travers la configuration initiale du composant.

Après avoir créé une classe qui implémente l'interface IDtsComponentUI, vous devez
ajouter du code pour répondre à l'interaction de l'utilisateur avec le composant. La
méthode Initialize fournit l'interface IDTSComponentMetaData100 du composant et est
appelée avant les méthodes New et Edit. Cette référence doit être stockée dans une
variable membre privée et utilisée ensuite pour modifier les métadonnées du
composant.
Modification d'un composant et persistance
des modifications
L'interface IDTSComponentMetaData100 est fournie en tant que paramètre à la
méthode Initialize. Cette référence doit être mise en cache dans une variable membre
par le code d'interface utilisateur, puis utilisée pour modifier le composant en réponse à
l'interaction de l'utilisateur avec l'interface utilisateur.

Bien que vous puissiez modifier le composant directement à partir de l'interface


IDTSComponentMetaData100, il est préférable de créer une instance de
CManagedComponentWrapper à l'aide de la méthode Instantiate. Lorsque vous
modifiez directement le composant à l'aide de l'interface, vous contournez les dispositifs
de protection de la validation du composant. L'utilisation de l'instance du composant au
moment de la conception par le biais de CManagedComponentWrapper présente
l'avantage de garantir que le composant peut contrôler les modifications qui lui sont
appliquées.

La valeur de retour de la méthode Edit détermine si les modifications apportées à un


composant sont conservées ou supprimées. Lorsque cette méthode retourne false,
toutes les modifications sont ignorées ; true conserve les modifications apportées au
composant et marque le package comme devant être enregistré.

Utilisation des services du concepteur SSIS


Le paramètre IServiceProvider de la méthode Initialize fournit l’accès aux services
suivants du concepteur SSIS :

Service Description

IDtsClipboardService Permet de déterminer si le composant a été généré dans le


cadre d'une opération copier/coller ou couper/coller.

IDtsConnectionService Permet d'accéder aux connexions existantes ou de créer des


connexions dans le package.

IErrorCollectionService Permet de capturer des événements à partir de composants de


flux de données lorsque vous devez capturer l'ensemble des
erreurs et avertissements déclenchés par le composant au lieu
de ne recevoir que la dernière erreur ou le dernier
avertissement.

IDtsVariableService Permet d'accéder aux variables existantes ou de créer des


variables dans le package.
Service Description

IDtsPipelineEnvironmentService Permet aux composants de flux de données d'accéder à la tâche


de flux de données parente et aux autres composants dans le
flux de données. Cette fonctionnalité pourrait être utilisée pour
développer un composant semblable à l'Assistant Dimension à
variation lente qui crée et connecte des composants de flux de
données supplémentaires si nécessaire.

Ces services fournissent aux développeurs de composants la capacité d'accéder à des


objets (ou d'en créer) dans le package dans lequel le composant est chargé.

Exemple
L'exemple de code suivant montre l'intégration d'une classe d'interface utilisateur
personnalisée qui implémente l'interface IDtsComponentUI, et un Windows Form qui
fait office d'éditeur pour un composant.

Classe d'interface utilisateur personnalisée


Le code suivant montre la classe qui implémente l'interface IDtsComponentUI. La
méthode Edit crée l'éditeur de composant, puis affiche le formulaire. La valeur de retour
du formulaire détermine si les modifications apportées au composant sont rendues
persistantes.

VB

Imports System
Imports System.Windows.Forms
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Pipeline.Design
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper

Namespace Microsoft.Samples.SqlServer.Dts

Public Class SampleComponentUI


Implements IDtsComponentUI
Private md As IDTSComponentMetaData100
Private sp As IServiceProvider

Public Sub Help(ByVal parentWindow As System.Windows.Forms.IWin32Window)


End Sub

Public Sub New(ByVal parentWindow As System.Windows.Forms.IWin32Window)


End Sub

Public Sub Delete(ByVal parentWindow As


System.Windows.Forms.IWin32Window)
End Sub

Public Function Edit(ByVal parentWindow As


System.Windows.Forms.IWin32Window, ByVal vars As Variables, ByVal cons As
Connections) As Boolean
' Create and display the form for the user interface.
Dim componentEditor As SampleComponentUIForm = New
SampleComponentUIForm(cons, vars, md)
Dim result As DialogResult = componentEditor.ShowDialog(parentWindow)
If result = DialogResult.OK Then
Return True
End If
Return False
End Function

Public Sub Initialize(ByVal dtsComponentMetadata As


IDTSComponentMetaData100, ByVal serviceProvider As IServiceProvider)
Me.md = dtsComponentMetadata
End Sub
End Class

End Namespace

Éditeur personnalisé
Le code suivant montre l'implémentation du Windows Form affiché lors de l'appel à la
méthode Edit.

VB

Imports System
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime

Namespace Microsoft.Samples.SqlServer.Dts

Public Partial Class SampleComponentUIForm


Inherits System.Windows.Forms.Form
Private connections As Connections
Private variables As Variables
Private metaData As IDTSComponentMetaData100
Private designTimeInstance As CManagedComponentWrapper
Private components As System.ComponentModel.IContainer = Nothing

Public Sub New(ByVal cons As Connections, ByVal vars As Variables, ByVal


md As IDTSComponentMetaData100)
variables = vars
connections = cons
metaData = md
End Sub

Private Sub btnOk_Click(ByVal sender As Object, ByVal e As


System.EventArgs)
If designTimeInstance Is Nothing Then
designTimeInstance = metaData.Instantiate
End If
designTimeInstance.SetComponentProperty("CustomProperty",
txtCustomPropertyValue.Text)
Me.Close
End Sub

Private Sub btnCancel_Click(ByVal sender As Object, ByVal e As


System.EventArgs)
Me.Close
End Sub
End Class

End Namespace

Voir aussi
Création d'un composant de flux de données personnalisé
Mise à niveau de la version d'un
composant de flux de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les packages créés avec une version antérieure de votre composant peuvent contenir
des métadonnées qui ne sont plus valides, telles que des propriétés personnalisées dont
l'utilisation a été modifiée dans les versions plus récentes du composant. Vous pouvez
remplacer la méthode PerformUpgrade de la classe de base PipelineComponent pour
mettre à jour les métadonnées précédemment enregistrées dans les packages plus
anciens afin de refléter les propriétés actuelles de votre composant.

7 Notes

Quand vous recompilez un composant personnalisé pour une nouvelle version


d’Integration Services, vous n’avez pas besoin de changer la valeur de la propriété
CurrentVersion si les propriétés du composant n’ont pas changé.

Exemple
L'exemple suivant contient le code de la version 2.0 d'un composant de flux de données
fictif. Le nouveau numéro de version est défini dans la propriété CurrentVersion de
l'objet DtsPipelineComponentAttribute. Le composant possède une propriété qui définit
la manière dont les valeurs numériques qui dépassent un seuil doivent être gérées. Dans
la version 1.0 du composant fictif, cette propriété a été nommée
RaiseErrorOnInvalidValue et acceptait une valeur booléenne True ou False. Dans la
version 2.0 du composant fictif, la propriété a été renommée InvalidValueHandling et
accepte l'une des quatre valeurs possibles d'une énumération personnalisée.

La méthode PerformUpgrade remplacée dans l'exemple suivant effectue les actions


suivantes :

Obtient la version actuelle du composant.

Obtient la valeur de l'ancienne propriété personnalisée.

Supprime l'ancienne propriété de la collection de propriétés personnalisées.


Définit la valeur de la nouvelle propriété personnalisée selon la valeur de
l'ancienne propriété, si possible.

Définit les métadonnées de version sur la version actuelle du composant.

7 Notes

Le moteur de flux de données transmet son propre numéro de version dans la


méthode PerformUpgrade dans le paramètre pipelineVersion. Ce paramètre est
inutile dans la version 1.0 d’Integration Services, mais peut devenir utile dans les
versions suivantes.

L'exemple de code utilise uniquement les deux valeurs d'énumération qui mappent
directement aux valeurs booléennes antérieures de la propriété personnalisée. Les
utilisateurs peuvent sélectionner les autres valeurs d'énumération disponibles via
l'interface utilisateur personnalisée du composant, dans l'éditeur avancé ou par
programme. Pour plus d’informations sur l’affichage des valeurs d’énumération pour
une propriété personnalisée dans l’Éditeur avancé, consultez « Création de propriétés
personnalisées » dans Méthodes de conception d’un composant de flux de données.

VB

Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper

<DtsPipelineComponent(ComponentType:=ComponentType.Transform,
CurrentVersion:=2)> _
Public Class PerformUpgrade
Inherits PipelineComponent

' Define the set of possible values for the new custom property.
Private Enum InvalidValueHandling
Ignore
FireInformation
FireWarning
FireError
End Enum

Public Overloads Overrides Sub PerformUpgrade(ByVal pipelineVersion As


Integer)

' Obtain the current component version from the attribute.


Dim componentAttribute As DtsPipelineComponentAttribute = _
CType(Attribute.GetCustomAttribute(Me.GetType, _
GetType(DtsPipelineComponentAttribute), False), _
DtsPipelineComponentAttribute)
Dim currentVersion As Integer = componentAttribute.CurrentVersion
' If the component version saved in the package is less than
' the current version, Version 2, perform the upgrade.
If ComponentMetaData.Version < currentVersion Then

' Get the current value of the old custom property,


RaiseErrorOnInvalidValue,
' and then remove the property from the custom property collection.
Dim oldValue As Boolean = False
Try
Dim oldProperty As IDTSCustomProperty100 = _

ComponentMetaData.CustomPropertyCollection("RaiseErrorOnInvalidValue")
oldValue = CType(oldProperty.Value, Boolean)

ComponentMetaData.CustomPropertyCollection.RemoveObjectByIndex("RaiseErrorOn
InvalidValue")
Catch ex As Exception
' If the old custom property is not available, ignore the error.
End Try

' Set the value of the new custom property, InvalidValueHandling,


' by using the appropriate enumeration value.
Dim newProperty As IDTSCustomProperty100 = _
ComponentMetaData.CustomPropertyCollection("InvalidValueHandling")
If oldValue = True Then
newProperty.Value = InvalidValueHandling.FireError
Else
newProperty.Value = InvalidValueHandling.Ignore
End If

End If

' Update the saved component version metadata to the current version.
ComponentMetaData.Version = currentVersion

End Sub

End Class

C#

using System;
using Microsoft.SqlServer.Dts.Pipeline;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;

[DtsPipelineComponent(ComponentType = ComponentType.Transform,
CurrentVersion = 2)]
public class PerformUpgradeCS :
PipelineComponent

// Define the set of possible values for the new custom property.
{
private enum InvalidValueHandling
{
Ignore,
FireInformation,
FireWarning,
FireError
};

public override void PerformUpgrade(int pipelineVersion)


{

// Obtain the current component version from the attribute.


DtsPipelineComponentAttribute componentAttribute =

(DtsPipelineComponentAttribute)Attribute.GetCustomAttribute(this.GetType(),
typeof(DtsPipelineComponentAttribute), false);
int currentVersion = componentAttribute.CurrentVersion;

// If the component version saved in the package is less than


// the current version, Version 2, perform the upgrade.
if (ComponentMetaData.Version < currentVersion)

// Get the current value of the old custom property,


RaiseErrorOnInvalidValue,
// and then remove the property from the custom property collection.
{
bool oldValue = false;
try
{
IDTSCustomProperty100 oldProperty =

ComponentMetaData.CustomPropertyCollection["RaiseErrorOnInvalidValue"];
oldValue = (bool)oldProperty.Value;

ComponentMetaData.CustomPropertyCollection.RemoveObjectByIndex("RaiseErrorOn
InvalidValue");
}
catch (Exception ex)
{
// If the old custom property is not available, ignore the error.
}

// Set the value of the new custom property, InvalidValueHandling,


// by using the appropriate enumeration value.
IDTSCustomProperty100 newProperty =
ComponentMetaData.CustomPropertyCollection["InvalidValueHandling"];
if (oldValue == true)
{
newProperty.Value = InvalidValueHandling.FireError;
}
else
{
newProperty.Value = InvalidValueHandling.Ignore;
}

}
// Update the saved component version metadata to the current version.
ComponentMetaData.Version = currentVersion;

}
Développement d'un composant de
destination personnalisé
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Microsoft SQL Server Integration Services offre aux développeurs la capacité d’écrire des
composants de destination personnalisés qui peuvent se connecter à n’importe quelle
source de données personnalisée et y stocker des données. Les composants de
destination personnalisés sont utiles lorsque vous devez vous connecter à des sources
de données qui ne sont pas accessibles via l'un des composants sources existants inclus
dans Integration Services.

Les composants de destination possèdent une ou plusieurs entrées et zéro sortie. Au


moment de la conception, ils créent et configurent des connexions et lisent les
métadonnées des colonnes à partir de la source de données externe. Pendant
l'exécution, ils se connectent à leur source de données externe et y ajoutent des lignes
provenant de composants situés en amont du flux de données. Si la source de données
externe existe avant l'exécution du composant, le composant de destination doit
également s'assurer que les types de données des colonnes que le composant reçoit
correspondent aux types de données des colonnes au niveau de la source de données
externe.

Cette section explique en détail comment développer des composants de destination et


fournit des exemples de code pour clarifier des concepts importants. Pour une vue
d’ensemble du développement de composants de flux de données, consultez
Développement d’un composant de flux de données personnalisé.

Moment de la conception
Pour implémenter les fonctionnalités au moment de la conception d'un composant de
destination, vous devez spécifier une connexion à une source de données externe et
confirmer que le composant a été correctement configuré. Par définition, un composant
de destination possède une entrée et éventuellement une sortie d'erreur.

Création du composant
Les composants de destination se connectent à des sources de données externes à
l'aide d'objets ConnectionManager définis dans un package. Le composant de
destination indique qu’il a besoin d’un gestionnaire de connexions au concepteur SSIS
et aux utilisateurs du composant, en ajoutant un élément à la collection
RuntimeConnectionCollection de ComponentMetaData. Cette collection remplit deux
rôles : d'abord, elle publie le besoin d'un gestionnaire de connexions auprès du
concepteur SSIS ; puis, lorsque l'utilisateur a sélectionné ou créé un gestionnaire de
connexions, elle contient une référence au gestionnaire de connexions dans le package
utilisé par le composant. Lorsqu’un objet IDTSRuntimeConnection100 est ajouté à la
collection, l’Éditeur avancé affiche l’onglet Propriétés de connexion pour inviter
l’utilisateur à sélectionner ou créer une connexion dans le package utilisée par le
composant.

L'exemple de code suivant affiche une implémentation de ProvideComponentProperties


qui ajoute une entrée, puis ajoute un objet IDTSRuntimeConnection100 à
RuntimeConnectionCollection.

VB

Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime

Namespace Microsoft.Samples.SqlServer.Dts

<DtsPipelineComponent(DisplayName:="Destination Component",
ComponentType:=ComponentType.DestinationAdapter)> _
Public Class DestinationComponent
Inherits PipelineComponent

Public Overrides Sub ProvideComponentProperties()

' Reset the component.


Me.RemoveAllInputsOutputsAndCustomProperties()
ComponentMetaData.RuntimeConnectionCollection.RemoveAll()

Dim input As IDTSInput100 =


ComponentMetaData.InputCollection.New()
input.Name = "Input"

Dim connection As IDTSRuntimeConnection100 =


ComponentMetaData.RuntimeConnectionCollection.New()
connection.Name = "ADO.net"

End Sub
End Class
End Namespace
Connexion à une source de données externe
Une fois la connexion ajoutée à la collection RuntimeConnectionCollection, vous pouvez
remplacer la méthode AcquireConnections pour établir une connexion à la source de
données externe. Cette méthode est appelée au moment de la conception et au
moment de l'exécution. Le composant doit établir une connexion au gestionnaire de
connexions spécifié par la connexion au moment de l'exécution, et par la suite, à la
source de données externe. Une fois la connexion établie, le composant doit la mettre
en cache en interne et la libérer lorsque ReleaseConnections est appelé. Les
développeurs substituent cette méthode et libèrent la connexion établie par le
composant pendant l'exécution de la méthode AcquireConnections. Les méthodes
ReleaseConnections et AcquireConnections sont appelées au moment de la conception
et au moment de l'exécution.

L'exemple de code suivant montre un composant qui établit une connexion ADO.NET
dans la méthode AcquireConnections, puis ferme la connexion dans
ReleaseConnections.

VB

Imports Microsoft.SqlServer.Dts.Runtime.Wrapper

Private sqlConnection As SqlConnection

Public Overrides Sub AcquireConnections(ByVal transaction As Object)

If
IsNothing(ComponentMetaData.RuntimeConnectionCollection(0).ConnectionManager
) = False Then

Dim cm As ConnectionManager =
DtsConvert.GetWrapper(ComponentMetaData.RuntimeConnectionCollection(0).Conne
ctionManager)
Dim cmado As ConnectionManagerAdoNet =
CType(cm.InnerObject,ConnectionManagerAdoNet)

If IsNothing(cmado) Then
Throw New Exception("The ConnectionManager " + cm.Name + " is
not an ADO.NET connection.")
End If

sqlConnection = CType(cmado.AcquireConnection(transaction),
SqlConnection)
sqlConnection.Open()

End If
End Sub

Public Overrides Sub ReleaseConnections()


If IsNothing(sqlConnection) = False And sqlConnection.State <>
ConnectionState.Closed Then
sqlConnection.Close()
End If

End Sub

Validation du composant
Les développeurs de composants de destination doivent procéder à une opération de
validation décrite dans Validation de composants. De plus, ils doivent vérifier que les
propriétés de type de données des colonnes définies dans la collection de colonnes
d'entrée du composant correspondent aux colonnes au niveau de la source de données
externe. Il est parfois impossible ou déconseillé de vérifier les colonnes d'entrée par
rapport à la source de données externe, notamment lorsque le composant ou le
concepteur SSIS est déconnecté, ou lorsque les allers-retours au serveur ne sont pas
acceptables. Dans ce cas, il est toujours possible de valider les colonnes dans la
collection de colonnes d'entrée à l'aide de la propriété
ExternalMetadataColumnCollection de l'objet d'entrée.

Cette collection existe sur les objets d'entrée et de sortie et doit être remplie par le
développeur de composants à partir des colonnes au niveau de la source de données
externe. Cette collection permet de valider les colonnes d’entrée lorsque le concepteur
SSIS est hors connexion, lorsque le composant est déconnecté ou lorsque la propriété
ValidateExternalMetadata a la valeur false.

L'exemple de code suivant ajoute une colonne de métadonnées externe basée sur une
colonne d'entrée existante.

VB

Private Sub AddExternalMetaDataColumn(ByVal input As IDTSInput100, ByVal


inputColumn As IDTSInputColumn100)

' Set the properties of the external metadata column.


Dim externalColumn As IDTSExternalMetadataColumn100 =
input.ExternalMetadataColumnCollection.New()
externalColumn.Name = inputColumn.Name
externalColumn.Precision = inputColumn.Precision
externalColumn.Length = inputColumn.Length
externalColumn.DataType = inputColumn.DataType
externalColumn.Scale = inputColumn.Scale

' Map the external column to the input column.


inputColumn.ExternalMetadataColumnID = externalColumn.ID
End Sub

Moment de l'exécution
Pendant l'exécution, le composant de destination reçoit un appel à la méthode
ProcessInput chaque fois qu'un PipelineBuffer saturé est disponible à partir du
composant en amont. Cette méthode est appelée à plusieurs reprises jusqu’à ce qu’il n’y
ait plus de mémoire tampon disponible et que la propriété EndOfRowset prenne la
valeur true. Pendant l'exécution de cette méthode, les composants de destination lisent
les colonnes et les lignes dans la mémoire tampon et les ajoutent à la source de
données externe.

Localisation des colonnes dans le tampon


La mémoire tampon d'entrée d'un composant contient toutes les colonnes définies dans
les collections de colonnes de sortie des composants situés en amont du composant
dans le flux de données. Par exemple, si un composant source fournit trois colonnes
dans sa sortie, et que le composant suivant ajoute une colonne de sortie
supplémentaire, la mémoire tampon fournie au composant de destination contient
quatre colonnes, même si le composant de destination n'écrit que deux colonnes.

L'ordre des colonnes dans la mémoire tampon d'entrée n'est pas défini par l'index de la
colonne dans la collection de colonnes d'entrée du composant de destination. Des
colonnes peuvent être placées de manière fiable dans une ligne de la mémoire tampon
à l'aide de la méthode FindColumnByLineageID de BufferManager. Cette méthode
recherche la colonne avec l'ID de lignage spécifié dans la mémoire tampon spécifiée et
retourne son emplacement dans la ligne. Les index des colonnes d'entrée sont
généralement localisés lors de l'exécution de la méthode PreExecute et mis en cache
afin d'être utilisés ultérieurement par le développeur lors de l'exécution de la méthode
ProcessInput.

L'exemple de code suivant recherche l'emplacement des colonnes d'entrée dans la


mémoire tampon pendant l'exécution de la méthode PreExecute et les stocke dans un
tableau. Le tableau est ensuite utilisé au cours de l'exécution de la méthode
ProcessInput pour lire les valeurs des colonnes dans la mémoire tampon.

VB

Private cols As Integer()

Public Overrides Sub PreExecute()


Dim input As IDTSInput100 = ComponentMetaData.InputCollection(0)

ReDim cols(input.InputColumnCollection.Count)

For x As Integer = 0 To input.InputColumnCollection.Count

cols(x) = BufferManager.FindColumnByLineageID(input.Buffer,
input.InputColumnCollection(x).LineageID)
Next x

End Sub

Traitement de lignes
Une fois que les colonnes d'entrée ont été localisées dans la mémoire tampon, elles
peuvent être lues et écrites dans la source de données externe.

Pendant que le composant de destination écrit des lignes dans la source de données
externe, vous pouvez mettre à jour les compteurs de performance « Lignes lues » ou
« Octets BLOB lus » en appelant la méthode IncrementPipelinePerfCounter. Pour plus
d’informations, consultez Compteurs de performances.

L'exemple suivant présente un composant qui lit des lignes à partir de la mémoire
tampon fournie dans ProcessInput. La recherche des index des colonnes dans la
mémoire tampon a été effectuée au cours de l'exécution de la méthode PreExecute dans
l'exemple de code précédent.

VB

Public Overrides Sub ProcessInput(ByVal inputID As Integer, ByVal buffer As


PipelineBuffer)

While (buffer.NextRow())

For Each col As Integer In cols

If buffer.IsNull(col) = False Then

' TODO: Read the column data.


End If

Next col
End While
End Sub
Exemple
L'exemple suivant montre un composant de destination simple qui utilise un
gestionnaire de connexions de fichiers pour enregistrer les données binaires du flux de
données dans des fichiers. Cet exemple ne contient pas toutes les méthodes et
fonctionnalités présentées dans cette rubrique. Il illustre les méthodes importantes que
chaque composant de destination personnalisé doit substituer, mais ne contient pas de
code pour la validation au moment de la conception.

VB

Imports System
Imports System.IO
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Namespace BlobDst

<DtsPipelineComponent(DisplayName="BLOB Extractor Destination",


Description="Writes values of BLOB columns to files")> _
Public Class BlobDst
Inherits PipelineComponent
Private m_DestDir As String
Private m_FileNameColumnIndex As Integer = -1
Private m_BlobColumnIndex As Integer = -1

Public Overrides Sub ProvideComponentProperties()


Dim input As IDTSInput100 = ComponentMetaData.InputCollection.New
input.Name = "BLOB Extractor Destination Input"
input.HasSideEffects = True
Dim conn As IDTSRuntimeConnection100 =
ComponentMetaData.RuntimeConnectionCollection.New
conn.Name = "FileConnection"
End Sub

Public Overrides Sub AcquireConnections(ByVal transaction As Object)


Dim conn As IDTSRuntimeConnection100 =
ComponentMetaData.RuntimeConnectionCollection(0)
m_DestDir = CType(conn.ConnectionManager.AcquireConnection(Nothing),
String)
If m_DestDir.Length > 0 AndAlso Not (m_DestDir(m_DestDir.Length - 1) =
"\"C) Then
m_DestDir += "\"
End If
End Sub

Public Overrides Function SetUsageType(ByVal inputID As Integer, ByVal


virtualInput As IDTSVirtualInput100, ByVal lineageID As Integer, ByVal
usageType As DTSUsageType) As IDTSInputColumn100
Dim inputColumn As IDTSInputColumn100 = MyBase.SetUsageType(inputID,
virtualInput, lineageID, usageType)
Dim custProp As IDTSCustomProperty100
custProp = inputColumn.CustomPropertyCollection.New
custProp.Name = "IsFileName"
custProp.Value = CType(False, Object)
custProp = inputColumn.CustomPropertyCollection.New
custProp.Name = "IsBLOB"
custProp.Value = CType(False, Object)
Return inputColumn
End Function

Public Overrides Sub PreExecute()


Dim input As IDTSInput100 = ComponentMetaData.InputCollection(0)
Dim inputColumns As IDTSInputColumnCollection100 =
input.InputColumnCollection
Dim custProp As IDTSCustomProperty100
For Each column As IDTSInputColumn100 In inputColumns
custProp = column.CustomPropertyCollection("IsFileName")
If CType(custProp.Value, Boolean) = True Then
m_FileNameColumnIndex =
CType(BufferManager.FindColumnByLineageID(input.Buffer, column.LineageID),
Integer)
End If
custProp = column.CustomPropertyCollection("IsBLOB")
If CType(custProp.Value, Boolean) = True Then
m_BlobColumnIndex =
CType(BufferManager.FindColumnByLineageID(input.Buffer, column.LineageID),
Integer)
End If
Next
End Sub

Public Overrides Sub ProcessInput(ByVal inputID As Integer, ByVal buffer


As PipelineBuffer)
While buffer.NextRow
Dim strFileName As String = buffer.GetString(m_FileNameColumnIndex)
Dim blobLength As Integer =
CType(buffer.GetBlobLength(m_BlobColumnIndex), Integer)
Dim blobData As Byte() = buffer.GetBlobData(m_BlobColumnIndex, 0,
blobLength)
strFileName = TranslateFileName(strFileName)
Dim fi As FileInfo = New FileInfo(strFileName)
' Make sure directory exists before creating file.
If Not fi.Directory.Exists Then
fi.Directory.Create
End If
' Write the data to the file.
Dim fs As FileStream = New FileStream(strFileName, FileMode.Create,
FileAccess.Write, FileShare.None)
fs.Write(blobData, 0, blobLength)
fs.Close
End While
End Sub

Private Function TranslateFileName(ByVal fileName As String) As String


If fileName.Length > 2 AndAlso fileName(1) = ":"C Then
Return m_DestDir + fileName.Substring(3, fileName.Length - 3)
Else
Return m_DestDir + fileName
End If
End Function
End Class
End Namespace

Voir aussi
Développement d’un composant source personnalisé
Création d’une destination à l’aide du composant Script
Développement d'un composant source
personnalisé
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

SQL Server Integration Services permet aux développeurs d’écrire des composants
sources capables de se connecter à des sources de données personnalisées et de fournir
des données, à partir de ces sources, à d’autres composants dans une tâche de flux de
données. La possibilité de créer des sources personnalisées est particulièrement utile
lorsque vous devez vous connecter à des sources de données qui ne sont pas
accessibles à l'aide de l'une des sources Integration Services existantes.

Les composants sources possèdent une ou plusieurs sorties et zéro entrée. Au moment
de la conception, les composants sources permettent de créer et configurer des
connexions, lire des métadonnées de colonne à partir de la source de données externe
et configurer les colonnes de sortie de la source en fonction de la source de données
externe. Pendant l'exécution, ils se connectent à la source de données externe et
ajoutent des lignes à une mémoire tampon de sortie. La tâche de flux fournit ensuite
cette mémoire tampon de lignes de données aux composants en aval.

Pour une vue d’ensemble du développement de composants de flux de données,


consultez Développement d’un composant de flux de données personnalisé.

Moment de la conception
Pour implémenter les fonctionnalités au moment de la conception d'un composant
source, il est nécessaire de spécifier une connexion à une source de données externe,
d'ajouter et configurer des colonnes de sortie qui reflètent la source de données et de
confirmer que le composant est prêt à être exécuté. Par définition, un composant source
possède zéro entrée et une ou plusieurs sorties asynchrones.

Création du composant
Les composants sources se connectent à des sources de données externes à l'aide
d'objets ConnectionManager définis dans un package. Ils indiquent leur besoin d'un
gestionnaire de connexions en ajoutant un élément à la collection
RuntimeConnectionCollection de la propriété ComponentMetaData. Cette collection
remplit deux fonctions : conserver les références aux gestionnaires de connexions dans
le package utilisé par le composant et publier la nécessité d’un gestionnaire de
connexions sur le concepteur. Une fois que IDTSRuntimeConnection100 a été ajouté à la
collection, l’Éditeur avancé affiche l’onglet Propriétés de connexion, qui permet aux
utilisateurs de sélectionner ou de créer une connexion dans le package.

L'exemple de code suivant présente une implémentation de


ProvideComponentProperties qui ajoute une sortie, puis ajoute un objet
IDTSRuntimeConnection100 à RuntimeConnectionCollection.

VB

Imports System.Data
Imports System.Data.SqlClient
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper

<DtsPipelineComponent(DisplayName:="MySourceComponent",
ComponentType:=ComponentType.SourceAdapter)> _
Public Class MySourceComponent
Inherits PipelineComponent

Public Overrides Sub ProvideComponentProperties()

' Allow for resetting the component.


RemoveAllInputsOutputsAndCustomProperties()
ComponentMetaData.RuntimeConnectionCollection.RemoveAll()

Dim output As IDTSOutput100 =


ComponentMetaData.OutputCollection.New()
output.Name = "Output"

Dim connection As IDTSRuntimeConnection100 =


ComponentMetaData.RuntimeConnectionCollection.New()
connection.Name = "ADO.NET"

End Sub
End Class

Connexion à une source de données externe


Lorsqu'une connexion a été ajoutée à RuntimeConnectionCollection, vous pouvez
substituer la méthode AcquireConnections pour établir une connexion à la source de
données externe. Cette méthode est appelée au moment de la conception et de
l'exécution. Le composant doit établir une connexion au gestionnaire de connexions
spécifié par la connexion au moment de l’exécution, et par la suite, à la source de
données externe.
Une fois la connexion établie, elle doit être mise en cache en interne par le composant
et libérée lorsque la méthode ReleaseConnections est appelée. La méthode
ReleaseConnections est appelée au moment de la conception et de l'exécution, comme
la méthode AcquireConnections. Les développeurs substituent cette méthode et libèrent
la connexion établie par le composant pendant l'exécution de la méthode
AcquireConnections.

L'exemple de code suivant montre un composant qui établit une connexion ADO.NET
dans la méthode AcquireConnections, puis ferme la connexion dans la méthode
ReleaseConnections.

VB

Private sqlConnection As SqlConnection

Public Overrides Sub AcquireConnections(ByVal transaction As Object)

If Not
IsNothing(ComponentMetaData.RuntimeConnectionCollection(0).ConnectionManager
) Then

Dim cm As ConnectionManager =
Microsoft.SqlServer.Dts.Runtime.DtsConvert.GetWrapper(ComponentMetaData.Runt
imeConnectionCollection(0).ConnectionManager)
Dim cmado As ConnectionManagerAdoNet = CType(cm.InnerObject,
ConnectionManagerAdoNet)

If IsNothing(cmado) Then
Throw New Exception("The ConnectionManager " + cm.Name + " is
not an ADO.NET connection.")
End If

sqlConnection = CType(cmado.AcquireConnection(transaction),
SqlConnection)
sqlConnection.Open()

End If
End Sub

Public Overrides Sub ReleaseConnections()

If Not IsNothing(sqlConnection) And sqlConnection.State <>


ConnectionState.Closed Then
sqlConnection.Close()
End If

End Sub

Création et configuration de colonnes de sortie


Les colonnes de sortie d'un composant source reflètent les colonnes de la source de
données externe que le composant ajoute au flux de données pendant l'exécution. Au
moment de la conception, vous devez ajouter des colonnes de sortie une fois que le
composant a été configuré pour se connecter à une source de données externe. La
méthode au moment de la conception qu'un composant utilise pour ajouter les
colonnes à sa collection de sortie peut varier selon les besoins du composant, bien
qu'elles ne doivent pas être ajoutées pendant l'exécution des méthodes Validate ou
AcquireConnections. Par exemple, un composant contenant une instruction SQL dans
une propriété personnalisée qui contrôle le jeu de données du composant peut ajouter
ses colonnes de sortie pendant l'exécution de la méthode SetComponentProperty. Le
composant vérifie s'il possède une connexion mise en cache, et si c'est le cas, il se
connecte à la source de données et génère ses colonnes de sortie.

Après avoir créé une colonne de sortie, définissez ses propriétés de type de données en
appelant la méthode SetDataTypeProperties. Cette méthode est nécessaire car les
propriétés DataType, Length, Precision et CodePage sont en lecture seule et que chaque
propriété dépend des paramètres de l'autre. Cette méthode impose l'obligation de
définir ces valeurs de manière cohérente et la tâche de flux de données valide le fait
qu'elles sont définies de manière correcte.

La propriété DataType de la colonne détermine les valeurs définies pour les autres
propriétés. Le tableau suivant indique les conditions requises sur les propriétés
dépendantes de chaque propriété DataType. Les types de données non répertoriés ont
leurs propriétés dépendantes définies sur zéro.

DataType Longueur Scale Précision CodePage

DT_DECIMAL 0 Supérieur à 0 et inférieur 0 0


ou égal à 28.

DT_CY 0 0 0 0

DT_NUMERIC 0 Supérieur à 0 et inférieur Supérieur ou égal 0


ou égale à 28 et inférieur à 1 et inférieur ou
à Précision. égal à 38.

DT_BYTES Supérieur à 0 0 0
0.

DT_STR Supérieur 0 0 Différent de 0 et


à 0 et une page de
inférieur codes valide.
à 8 000.
DataType Longueur Scale Précision CodePage

DT_WSTR Supérieur 0 0 0
à 0 et
inférieur
à 4000.

Étant donné que les restrictions sur les propriétés de type de données sont basées sur le
type de données de la colonne de sortie, vous devez choisir le type de données SSIS
correct lorsque vous utilisez des types managés. La classe de base fournit trois
méthodes d’assistance, ConvertBufferDataTypeToFitManaged,
BufferTypeToDataRecordType et DataRecordTypeToBufferType, qui aident les
développeurs de composants managés à sélectionner un type de données SSIS en
fonction d’un type managé. Ces méthodes convertissent des types de données
managées en types de données SSIS, et vice versa.

L'exemple de code suivant montre comment la collection de colonnes de sortie d'un


composant est remplie selon le schéma d'une table. Les méthodes d'assistance de la
classe de base permettent de définir le type de données de la colonne, qui lui-même
définit les propriétés dépendantes.

VB

Private sqlCommand As SqlCommand

Private Sub CreateColumnsFromDataTable()

' Get the output.


Dim output As IDTSOutput100 = ComponentMetaData.OutputCollection(0)

' Start clean, and remove the columns from both collections.
output.OutputColumnCollection.RemoveAll()
output.ExternalMetadataColumnCollection.RemoveAll()

Me.sqlCommand = sqlConnection.CreateCommand()
Me.sqlCommand.CommandType = CommandType.Text
Me.sqlCommand.CommandText =
CStr(ComponentMetaData.CustomPropertyCollection("SqlStatement").Value)

Dim schemaReader As SqlDataReader =


Me.sqlCommand.ExecuteReader(CommandBehavior.SchemaOnly)
Dim dataTable As DataTable = schemaReader.GetSchemaTable()

' Walk the columns in the schema,


' and for each data column create an output column and an external
metadata column.
For Each row As DataRow In dataTable.Rows

Dim outColumn As IDTSOutputColumn100 =


output.OutputColumnCollection.New()
Dim exColumn As IDTSExternalMetadataColumn100 =
output.ExternalMetadataColumnCollection.New()

' Set column data type properties.


Dim isLong As Boolean = False
Dim dt As DataType =
DataRecordTypeToBufferType(CType(row("DataType"), Type))
dt = ConvertBufferDataTypeToFitManaged(dt, isLong)
Dim length As Integer = 0
Dim precision As Integer = CType(row("NumericPrecision"), Short)
Dim scale As Integer = CType(row("NumericScale"), Short)
Dim codepage As Integer = dataTable.Locale.TextInfo.ANSICodePage

Select Case dt

' The length cannot be zero, and the code page property must
contain a valid code page.
Case DataType.DT_STR
Case DataType.DT_TEXT
length = precision
precision = 0
scale = 0

Case DataType.DT_WSTR
length = precision
codepage = 0
scale = 0
precision = 0

Case DataType.DT_BYTES
precision = 0
scale = 0
codepage = 0

Case DataType.DT_NUMERIC
length = 0
codepage = 0

If precision > 38 Then


precision = 38
End If

If scale > 6 Then


scale = 6
End If

Case DataType.DT_DECIMAL
length = 0
precision = 0
codepage = 0

Case Else
length = 0
precision = 0
codepage = 0
scale = 0
End Select

' Set the properties of the output column.


outColumn.Name = CStr(row("ColumnName"))
outColumn.SetDataTypeProperties(dt, length, precision, scale,
codepage)
Next
End Sub

Validation du composant
Vous devez valider un composant source et vérifier que les colonnes définies dans ses
collections de colonnes de sortie correspondent aux colonnes au niveau de la source de
données externe. Il est parfois impossible de vérifier les colonnes de sortie par rapport à
la source de données externe, notamment lorsque le composant est déconnecté ou
lorsqu'il est préférable d'éviter de longs allers-retours au serveur. Dans ce cas, il est
toujours possible de valider les colonnes dans la sortie à l'aide de la propriété
ExternalMetadataColumnCollection de l'objet de sortie. Pour plus d’informations,
consultez Validation d’un composant de flux de données.

Cette collection existe sur les objets d'entrée et de sortie et vous pouvez la remplir avec
les colonnes de la source de données externe. Cette collection permet de valider les
colonnes de sortie lorsque le concepteur SSIS est hors connexion, lorsque le composant
est déconnecté ou lorsque la propriété ValidateExternalMetadata a la valeur false. La
collection doit d'abord être remplie à mesure que les colonnes de sortie sont créées.
Étant donné que la colonne de métadonnées externe doit correspondre initialement à la
colonne de sortie, il est relativement facile de l'ajouter à la collection. Les propriétés de
type de données de la colonne, qui doivent déjà être définies correctement, peuvent
être copiées directement dans l'objet IDTSExternalMetadataColumn100.

L'exemple de code suivant ajoute une colonne de métadonnées externe basée sur une
colonne de sortie créée récemment. Il suppose que la colonne de sortie a déjà été créée.

VB

Private Sub CreateExternalMetaDataColumn(ByVal output As IDTSOutput100,


ByVal outputColumn As IDTSOutputColumn100)

' Set the properties of the external metadata column.


Dim externalColumn As IDTSExternalMetadataColumn100 =
output.ExternalMetadataColumnCollection.New()
externalColumn.Name = outputColumn.Name
externalColumn.Precision = outputColumn.Precision
externalColumn.Length = outputColumn.Length
externalColumn.DataType = outputColumn.DataType
externalColumn.Scale = outputColumn.Scale

' Map the external column to the output column.


outputColumn.ExternalMetadataColumnID = externalColumn.ID

End Sub

Moment de l'exécution
Pendant l'exécution, les composants ajoutent des lignes dans les mémoires tampons de
sortie créées par la tâche de flux et fournies au composant dans PrimeOutput. Appelée
une fois pour des composants sources, la méthode reçoit une mémoire tampon de
sortie pour chaque IDTSOutput100 du composant connecté à un composant en aval.

Localisation des colonnes dans le tampon


La mémoire tampon de sortie d'un composant contient les colonnes définies par le
composant et toutes les colonnes ajoutées à la sortie d'un composant en aval. Par
exemple, si un composant source fournit trois colonnes dans sa sortie et que le
composant suivant ajoute une quatrième colonne de sortie, la mémoire tampon de
sortie destinée au composant source contient ces quatre colonnes.

L'ordre des colonnes dans une ligne de mémoire tampon n'est pas défini par l'index de
la colonne de sortie dans la collection de colonnes de sortie. Seule la méthode
FindColumnByLineageID de BufferManager permet de placer correctement une colonne
de sortie dans une ligne de mémoire tampon. Cette méthode recherche la colonne avec
l’ID de lignage spécifié dans la mémoire tampon spécifiée et retourne son emplacement
dans la ligne. Les index des colonnes de sortie se trouvent généralement dans la
méthode PreExecute et sont stockés pour être utilisés lors de l'exécution de la méthode
PrimeOutput.

L'exemple de code suivant recherche l'emplacement des colonnes de sortie dans la


mémoire tampon de sortie pendant un appel à PreExecute et stocke l'information dans
une structure interne. Le nom de la colonne, également stocké dans la structure, est
utilisé dans l’exemple de code de la méthode PrimeOutput dans la section suivante de
cette rubrique.

VB

Public Overrides Sub PreExecute()

Me.columnInformation = New ArrayList()


Dim output As IDTSOutput100 = ComponentMetaData.OutputCollection(0)

For Each col As IDTSOutputColumn100 In output.OutputColumnCollection

Dim ci As ColumnInfo = New ColumnInfo()


ci.BufferColumnIndex =
BufferManager.FindColumnByLineageID(output.Buffer, col.LineageID)
ci.ColumnName = col.Name
columnInformation.Add(ci)
Next
End Sub

Traitement de lignes
Des lignes sont ajoutées à la mémoire tampon de sortie en appelant la méthode
AddRow, qui crée une ligne de mémoire tampon dont les colonnes contiennent des
valeurs vides. Le composant attribue ensuite des valeurs aux colonnes individuelles. Les
mémoires tampons de sortie fournies à un composant sont créées et analysées par la
tâche de flux de données. À mesure que les mémoires tampons se remplissent, les
lignes qu'elles contiennent sont déplacées vers le composant suivant. Il est impossible
de déterminer le moment de l'envoi d'un lot de lignes au composant suivant car le
déplacement des lignes par la tâche de flux est transparent pour les développeurs de
composants. De plus, la propriété RowCount a toujours la valeur zéro sur les mémoires
tampons de sortie. Lorsqu'un composant source a terminé d'ajouter des lignes à sa
mémoire tampon de sortie, il le notifie à la tâche de flux en appelant la méthode
SetEndOfRowset de PipelineBuffer, et les lignes restantes dans la mémoire tampon sont
transférées au composant suivant.

Pendant que le composant source lit des lignes de la source de données externe, vous
pouvez mettre à jour les compteurs de performance « Lignes lues » ou « Octets BLOB
lus » en appelant la méthode IncrementPipelinePerfCounter. Pour plus d’informations,
consultez Compteurs de performances.

L'exemple de code suivant montre un composant qui ajoute des lignes à une mémoire
tampon de sortie dans PrimeOutput. La recherche des index des colonnes de sortie dans
la mémoire tampon a été effectuée à l'aide de la méthode PreExecute dans l'exemple de
code précédent.

VB

Public Overrides Sub PrimeOutput(ByVal outputs As Integer, ByVal outputIDs


As Integer(), ByVal buffers As PipelineBuffer())

Dim output As IDTSOutput100 = ComponentMetaData.OutputCollection(0)


Dim buffer As PipelineBuffer = buffers(0)
Dim dataReader As SqlDataReader = sqlCommand.ExecuteReader()

' Loop over the rows in the DataReader,


' and add them to the output buffer.
While (dataReader.Read())

' Add a row to the output buffer.


buffer.AddRow()

For x As Integer = 0 To columnInformation.Count

Dim ci As ColumnInfo = CType(columnInformation(x), ColumnInfo)

Dim ordinal As Integer = dataReader.GetOrdinal(ci.ColumnName)

If (dataReader.IsDBNull(ordinal)) Then
buffer.SetNull(ci.BufferColumnIndex)
Else
buffer(ci.BufferColumnIndex) = dataReader(ci.ColumnName)

End If
Next

End While

buffer.SetEndOfRowset()
End Sub

Exemple
L'exemple suivant montre un composant source simple qui utilise un gestionnaire de
connexions de fichiers pour charger le contenu binaire des fichiers dans le flux de
données. Cet exemple ne contient pas toutes les méthodes et fonctionnalités présentées
dans cette rubrique. Il illustre les méthodes importantes que chaque composant source
personnalisé doit substituer, mais ne contient pas de code pour la validation au moment
de la conception.

VB

Imports System
Imports System.IO
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Namespace BlobSrc

<DtsPipelineComponent(DisplayName="BLOB Inserter Source",


Description="Inserts files into the data flow as BLOBs")> _
Public Class BlobSrc
Inherits PipelineComponent
Private m_ConnMgr As IDTSConnectionManager100
Private m_FileNameColumnIndex As Integer = -1
Private m_FileBlobColumnIndex As Integer = -1

Public Overrides Sub ProvideComponentProperties()


Dim output As IDTSOutput100 = ComponentMetaData.OutputCollection.New
output.Name = "BLOB File Inserter Output"
Dim column As IDTSOutputColumn100 = output.OutputColumnCollection.New
column.Name = "FileName"
column.SetDataTypeProperties(DataType.DT_WSTR, 256, 0, 0, 0)
column = output.OutputColumnCollection.New
column.Name = "FileBLOB"
column.SetDataTypeProperties(DataType.DT_IMAGE, 0, 0, 0, 0)
Dim conn As IDTSRuntimeConnection90 =
ComponentMetaData.RuntimeConnectionCollection.New
conn.Name = "FileConnection"
End Sub

Public Overrides Sub AcquireConnections(ByVal transaction As Object)


Dim conn As IDTSRuntimeConnection100 =
ComponentMetaData.RuntimeConnectionCollection(0)
m_ConnMgr = conn.ConnectionManager
End Sub

Public Overrides Sub ReleaseConnections()


m_ConnMgr = Nothing
End Sub

Public Overrides Sub PreExecute()


Dim output As IDTSOutput100 = ComponentMetaData.OutputCollection(0)
m_FileNameColumnIndex =
CType(BufferManager.FindColumnByLineageID(output.Buffer,
output.OutputColumnCollection(0).LineageID), Integer)
m_FileBlobColumnIndex =
CType(BufferManager.FindColumnByLineageID(output.Buffer,
output.OutputColumnCollection(1).LineageID), Integer)
End Sub

Public Overrides Sub PrimeOutput(ByVal outputs As Integer, ByVal


outputIDs As Integer(), ByVal buffers As PipelineBuffer())
Dim strFileName As String = CType(m_ConnMgr.AcquireConnection(Nothing),
String)
While Not (strFileName Is Nothing)
buffers(0).AddRow
buffers(0).SetString(m_FileNameColumnIndex, strFileName)
Dim fileInfo As FileInfo = New FileInfo(strFileName)
Dim fileData(fileInfo.Length) As Byte
Dim fs As FileStream = New FileStream(strFileName, FileMode.Open,
FileAccess.Read, FileShare.Read)
fs.Read(fileData, 0, fileData.Length)
buffers(0).AddBlobData(m_FileBlobColumnIndex, fileData)
strFileName = CType(m_ConnMgr.AcquireConnection(Nothing), String)
End While
buffers(0).SetEndOfRowset
End Sub
End Class
End Namespace

Voir aussi
Développement d'un composant de destination personnalisé
Création d'une source à l'aide du composant Script
Développement d'un composant de
transformation personnalisé à sorties
asynchrones
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Vous utilisez un composant à sorties asynchrones lorsqu'une transformation ne peut pas


extraire de lignes tant que le composant n'a pas reçu toutes ses lignes d'entrée, ou
lorsqu'une transformation ne génère pas exactement une ligne de sortie pour chaque
ligne reçue en tant qu'entrée. La transformation d'agrégation, par exemple, ne peut pas
calculer une somme de lignes tant qu'elle n'a pas lu toutes les lignes. Par opposition,
vous pouvez utiliser un composant à sorties synchrones lorsque vous modifiez chaque
ligne de données au moment de leur transfert. Vous pouvez modifier les données de
chaque ligne en place ou créer une ou plusieurs colonnes, chacune contenant une
valeur pour chaque ligne d'entrée. Pour plus d’informations sur la différence entre les
composants synchrones et asynchrones, consultez Présentation des transformations
synchrones et asynchrones.

Les composants de transformation à sorties asynchrones sont uniques dans la mesure


où ils font office à la fois de composants sources et de composants de destination. Ce
type de composant reçoit des lignes des composants en amont et ajoute des lignes
utilisées par les composants en aval. Aucun autre composant de flux de données
n'effectue ces deux opérations.

Les colonnes des composants en amont disponibles pour un composant à sorties


synchrones sont automatiquement accessibles aux composants situés en aval du
composant. Par conséquent, un composant à sorties synchrones n'a pas besoin de
définir de colonne de sortie pour fournir des colonnes et des lignes au composant
suivant. Les composants à sorties asynchrones, en revanche, doivent définir des
colonnes de sortie et fournir des lignes aux composants en aval. Par conséquent, un
composant à sorties asynchrones doit exécuter un plus grand nombre de tâches au
moment de la conception et de l'exécution, et le développeur de composants doit
implémenter davantage de code.

SQL Server Integration Services contient plusieurs transformations à sorties asynchrones.


Par exemple, la transformation de tri requiert toutes ses lignes avant de pouvoir les trier
et elle utilise pour cela des sorties asynchrones. Une fois qu'elle a reçu toutes ses lignes,
elle les trie et les ajoute à sa sortie.
Cette section explique en détail comment développer des transformations à sorties
asynchrones. Pour plus d’informations sur le développement de composants sources,
consultez Développement d’un composant source personnalisé.

Moment de la conception

Création du composant
La propriété SynchronousInputID sur l'objet IDTSOutput100 détermine si une sortie est
synchrone ou asynchrone. Pour créer une sortie asynchrone, ajoutez la sortie au
composant et attribuez la valeur zéro à SynchronousInputID. La définition de cette
propriété détermine également si la tâche de flux alloue des objets PipelineBuffer à
l'entrée et la sortie du composant, ou si une seule mémoire tampon est allouée et
partagée entre les deux objets.

L'exemple de code suivant affiche un composant qui crée une sortie asynchrone dans
son implémentation ProvideComponentProperties.

VB

Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime

<DtsPipelineComponent(DisplayName:="AsyncComponent",
ComponentType:=ComponentType.Transform)> _
Public Class AsyncComponent
Inherits PipelineComponent

Public Overrides Sub ProvideComponentProperties()

' Call the base class, which adds a synchronous input


' and output.
Me.ProvideComponentProperties()

' Make the output asynchronous.


Dim output As IDTSOutput100 = ComponentMetaData.OutputCollection(0)
output.SynchronousInputID = 0

End Sub

End Class

Création et configuration de colonnes de sortie


Comme nous l'avons déjà mentionné, un composant asynchrone ajoute des colonnes à
sa collection de colonnes de sortie pour fournir des colonnes aux composants en aval.
Vous pouvez choisir entre plusieurs méthodes au moment de la conception, en fonction
des besoins du composant. Par exemple, si vous souhaitez transférer toutes les colonnes
des composants en amont aux composants en aval, vous devez substituer la méthode
OnInputPathAttached pour ajouter les colonnes, car il s'agit de la première méthode
dans laquelle les colonnes d'entrée sont accessibles au composant.

Si le composant crée des colonnes de sortie en fonction des colonnes sélectionnées


pour son entrée, substituez la méthode SetUsageType pour sélectionner les colonnes de
sortie et indiquer comment elles doivent être utilisées.

Si un composant à sorties asynchrones crée des colonnes de sortie basées sur les
colonnes de composants en amont et que les colonnes disponibles en amont sont
modifiées, le composant doit mettre à jour sa collection de colonnes de sortie. Ces
modifications doivent être détectées par le composant pendant l'exécution de la
méthode Validate et corrigées pendant l'exécution de la méthode ReinitializeMetaData.

7 Notes

Lorsqu'une colonne de sortie est supprimée de la collection de colonnes de sortie,


les composants en aval dans le flux de données qui font référence à cette colonne
sont affectés de façon négative. La colonne de sortie doit être réparée sans être
supprimée ni recréée pour empêcher l'arrêt des composants en aval. Par exemple,
si le type de données de la colonne a été modifié, vous devez le mettre à jour.

L'exemple de code suivant montre un composant qui ajoute une colonne de sortie à sa
collection de colonnes de sortie pour chaque colonne disponible à partir du composant
en amont.

VB

Public Overrides Sub OnInputPathAttached(ByVal inputID As Integer)

Dim input As IDTSInput100 =


ComponentMetaData.InputCollection.GetObjectByID(inputID)
Dim output As IDTSOutput100 = ComponentMetaData.OutputCollection(0)
Dim vInput As IDTSVirtualInput100 = input.GetVirtualInput()

For Each vCol As IDTSVirtualInputColumn100 In


vInput.VirtualInputColumnCollection

Dim outCol As IDTSOutputColumn100 =


output.OutputColumnCollection.New()
outCol.Name = vCol.Name
outCol.SetDataTypeProperties(vCol.DataType, vCol.Length,
vCol.Precision, vCol.Scale, vCol.CodePage)

Next
End Sub

Moment de l'exécution
Les composants à sorties asynchrones exécutent également une séquence de méthodes
au moment de l'exécution qui diffère des autres types de composants. En premier lieu,
ce sont les seuls composants qui reçoivent un appel des méthodes PrimeOutput et
ProcessInput. Les composants à sorties asynchrones requièrent également l'accès à
toutes les lignes entrantes avant de pouvoir commencer le traitement. Ils doivent donc
mettre en cache les lignes d'entrée en interne jusqu'à ce que toutes les lignes aient été
lues. Enfin, les composants à sorties asynchrones reçoivent une mémoire tampon
d'entrée et une mémoire tampon de sortie, contrairement aux autres composants.

Fonctionnement des mémoires tampons


Le composant reçoit la mémoire tampon d'entrée au moment de l'exécution de la
méthode ProcessInput. Cette mémoire tampon contient les lignes ajoutées par les
composants en amont. La mémoire tampon contient également les colonnes de l'entrée
du composant, en plus des colonnes qui ont été fournies dans la sortie d'un composant
en amont mais qui n'ont pas été ajoutées à la collection d'entrée du composant
asynchrone.

La mémoire tampon de sortie, fournie au composant dans PrimeOutput, ne contient pas


de ligne initialement. Le composant ajoute des lignes à cette mémoire tampon et fournit
cette dernière aux composants en aval lorsqu'elle est pleine. La mémoire tampon de
sortie contient les colonnes définies dans la collection de colonnes de sortie du
composant, en plus des colonnes que d'autres composants en aval ont ajoutées à leurs
sorties.

Ce comportement diffère de celui des composants à sorties synchrones, qui reçoivent


une seule mémoire tampon partagée. La mémoire tampon partagée d'un composant à
sorties synchrones contient les colonnes d'entrée et de sortie du composant, en plus des
colonnes ajoutées aux sorties des composants en amont et en aval.

Traitement de lignes

Mise en cache de lignes d'entrée


Lorsque vous écrivez un composant à sorties asynchrones, vous avez le choix entre trois
options pour ajouter des lignes à la mémoire tampon de sortie. Vous pouvez les ajouter
au moment de la réception des lignes d'entrée, les mettre en cache jusqu'à ce que le
composant ait reçu toutes les lignes du composant en amont ou les ajouter au moment
approprié pour le composant. La méthode choisie dépend des exigences du composant.
Par exemple, le composant Sort requiert que toutes les lignes en amont soient reçues
avant d'être triées. Par conséquent, il attend que toutes les lignes aient été lues avant
d'ajouter des lignes à la mémoire tampon de sortie.

Les lignes reçues dans la mémoire tampon d'entrée doivent être mises en cache en
interne par le composant en attendant qu'il soit prêt à les traiter. Les lignes entrantes de
la mémoire tampon peuvent être mises en cache dans une table de données, un tableau
multidimensionnel ou toute autre structure interne.

Ajout de lignes de sortie

Si vous ajoutez des lignes à la mémoire tampon de sortie dès leur réception ou une fois
que toutes les lignes ont été reçues, vous appelez pour cela la méthode AddRow sur la
mémoire tampon de sortie. Après avoir ajouté la ligne, vous définissez les valeurs de
chaque colonne dans la nouvelle ligne.

Étant donné que la mémoire tampon de sortie contient parfois plus de colonnes que la
collection de colonnes de sortie du composant, vous devez rechercher l'index de la
colonne appropriée dans la mémoire tampon avant de définir sa valeur. La méthode
FindColumnByLineageID de la propriété BufferManager retourne l'index de la colonne
dans la ligne de la mémoire tampon avec l'ID de lignage spécifié, qui permet ensuite
d'assigner la valeur à la colonne de la mémoire tampon.

La méthode PreExecute, appelée avant la méthode PrimeOutput ou la méthode


ProcessInput est la première qui permet d'accéder à la propriété BufferManager et qui
offre la possibilité de rechercher les index des colonnes dans les mémoires tampons
d'entrée et de sortie.

Exemple
L'exemple suivant montre un composant de transformation simple à sorties asynchrones
qui ajoute des lignes à la mémoire tampon de sortie au moment où elles sont reçues.
Cet exemple ne contient pas toutes les méthodes et fonctionnalités présentées dans
cette rubrique. Il illustre les méthodes importantes que chaque composant de
transformation personnalisé à sorties asynchrones doit substituer, mais ne contient pas
de code pour la validation au moment de la conception. Par ailleurs, le code dans
ProcessInput suppose que la collection de colonnes de sortie possède une colonne pour
chaque colonne dans la collection de colonnes d'entrée.

VB

Imports System
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper

Namespace Microsoft.Samples.SqlServer.Dts

<DtsPipelineComponent(DisplayName:="AsynchronousOutput")> _
Public Class AsynchronousOutput

Inherits PipelineComponent

Private outputBuffer As PipelineBuffer


Private inputColumnBufferIndexes As Integer()
Private outputColumnBufferIndexes As Integer()

Public Overrides Sub ProvideComponentProperties()

' Let the base class add the input and output objects.
Me.ProvideComponentProperties()

' Name the input and output, and make the


' output asynchronous.
ComponentMetaData.InputCollection(0).Name = "Input"
ComponentMetaData.OutputCollection(0).Name = "AsyncOutput"
ComponentMetaData.OutputCollection(0).SynchronousInputID = 0
End Sub

Public Overrides Sub PreExecute()

Dim input As IDTSInput100 = ComponentMetaData.InputCollection(0)


Dim output As IDTSOutput100 =
ComponentMetaData.OutputCollection(0)

ReDim
inputColumnBufferIndexes(input.InputColumnCollection.Count)
ReDim
outputColumnBufferIndexes(output.OutputColumnCollection.Count)

For col As Integer = 0 To input.InputColumnCollection.Count


inputColumnBufferIndexes(col) =
BufferManager.FindColumnByLineageID(input.Buffer,
input.InputColumnCollection(col).LineageID)
Next

For col As Integer = 0 To output.OutputColumnCollection.Count


outputColumnBufferIndexes(col) =
BufferManager.FindColumnByLineageID(output.Buffer,
output.OutputColumnCollection(col).LineageID)
Next

End Sub
Public Overrides Sub PrimeOutput(ByVal outputs As Integer, ByVal
outputIDs As Integer(), ByVal buffers As PipelineBuffer())

If buffers.Length <> 0 Then


outputBuffer = buffers(0)
End If

End Sub

Public Overrides Sub ProcessInput(ByVal inputID As Integer, ByVal


buffer As PipelineBuffer)

' Advance the buffer to the next row.


While (buffer.NextRow())

' Add a row to the output buffer.


outputBuffer.AddRow()
For x As Integer = 0 To inputColumnBufferIndexes.Length

' Copy the data from the input buffer column to the
output buffer column.
outputBuffer(outputColumnBufferIndexes(x)) =
buffer(inputColumnBufferIndexes(x))

Next
End While

If buffer.EndOfRowset = True Then


' EndOfRowset on the input buffer is true.
' Set the end of row set on the output buffer.
outputBuffer.SetEndOfRowset()
End If
End Sub
End Class
End Namespace

Voir aussi
Développement d’un composant de transformation personnalisé avec des sorties
synchrones
Présentation des transformations synchrones et asynchrones
Création d’une transformation asynchrone à l’aide du composant Script
Développement d'un composant de
transformation personnalisé à sorties
synchrones
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les composants de transformation à sorties synchrones reçoivent des lignes en


provenance des composants en amont, puis lisent ou modifient les valeurs comprises
dans les colonnes de ces lignes alors qu'ils transfèrent les lignes aux composants en
aval. Ils peuvent également définir des colonnes de sortie supplémentaires dérivées des
colonnes fournies par les composants en amont, mais ils n'ajoutent pas de lignes au flux
de données. Pour plus d’informations sur la différence entre les composants synchrones
et asynchrones, consultez Présentation des transformations synchrones et asynchrones.

Ce type de composant convient aux tâches dans lesquelles les données sont modifiées
en ligne à mesure qu'elles sont fournies au composant et dans lesquelles le composant
n'a pas à consulter toutes les lignes avant de les traiter. Il s'agit du composant le plus
facile à développer parce que les transformations à sorties synchrones ne se connectent
pas en général à des sources de données externes, gèrent des colonnes de
métadonnées externes ou ajoutent des lignes aux tampons de sortie.

La création d'un composant de transformation à sorties synchrones implique d'ajouter


un objet IDTSInput100 qui contiendra des colonnes en amont sélectionnées pour le
composant, et un objet IDTSOutput100 qui peut contenir des colonnes dérivées créées
par le composant. Il inclut également l'implémentation des méthodes de conception,
ainsi que la fourniture du code qui lit ou modifie les colonnes dans les lignes du tampon
entrantes pendant l'exécution.

Cette section fournit les informations requises pour implémenter un composant de


transformation personnalisé et des exemples de code pour vous aider à mieux
comprendre les concepts.

Moment de la conception
Le code du moment de la conception de ce composant implique la création des entrées
et sorties, l'ajout de toutes colonnes de sortie supplémentaires que le composant
génère et la validation de la configuration du composant.
Création du composant
Les entrées, sorties et propriétés personnalisées du composant sont en général créées
pendant la méthode ProvideComponentProperties. Il existe deux manières d'ajouter
l'entrée et la sortie d'un composant de transformation à sorties synchrones. Vous
pouvez utiliser l'implémentation de la classe de base de la méthode, puis modifier
l'entrée et la sortie par défaut qu'elle crée, ou vous pouvez ajouter explicitement l'entrée
et la sortie vous-même.

L'exemple de code suivant présente une implémentation de la méthode


ProvideComponentProperties qui ajoute explicitement les objets d'entrée et de sortie.
L'appel de la classe de base qui accomplirait la même chose est inclus dans un
commentaire.

VB

Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime

<DtsPipelineComponent(DisplayName:="SynchronousComponent",
ComponentType:=ComponentType.Transform)> _
Public Class SyncComponent
Inherits PipelineComponent

Public Overrides Sub ProvideComponentProperties()

' Add the input.


Dim input As IDTSInput100 = ComponentMetaData.InputCollection.New()
input.Name = "Input"

' Add the output.


Dim output As IDTSOutput100 =
ComponentMetaData.OutputCollection.New()
output.Name = "Output"
output.SynchronousInputID = Input.ID

' Alternatively, you can let the base class add the input and output
' and set the SynchronousInputID of the output to the ID of the
input.
' base.ProvideComponentProperties();

End Sub

End Class

Création et configuration de colonnes de sortie


Bien que les composants de transformation à sorties synchrones n'ajoutent pas de
lignes aux tampons, ils peuvent ajouter des colonnes de sortie supplémentaires à leur
sortie. En général, lorsqu'un composant ajoute une colonne de sortie, les valeurs de la
nouvelle colonne de sortie sont dérivées au moment de l'exécution des données
contenues dans une ou plusieurs colonnes parmi celles fournies au composant par un
composant en amont.

Après avoir créé une colonne de sortie, ses propriétés de type de données doivent être
définies. La définition des propriétés de type de données d'une colonne de sortie
requiert une gestion spéciale et s'effectue en appelant la méthode
SetDataTypeProperties. Cette méthode est requise parce que les propriétés DataType,
Length, Precision et CodePage sont individuellement en lecture seule, parce que
chacune dépend des paramètres de l'autre. Cette méthode garantit que les valeurs des
propriétés sont définies de manière cohérente et que la tâche de flux de données valide
leur définition correcte.

La propriété DataType de la colonne détermine les valeurs définies pour les autres
propriétés. Le tableau suivant indique les conditions requises sur les propriétés
dépendantes de chaque propriété DataType. Les types de données non répertoriés ont
leurs propriétés dépendantes définies sur zéro.

DataType Longueur Scale Précision CodePage

DT_DECIMAL 0 Supérieur à 0 et inférieur 0 0


ou égal à 28.

DT_CY 0 0 0 0

DT_NUMERIC 0 Supérieur à 0 et inférieur Supérieur ou égal 0


ou égale à 28 et inférieur à 1 et inférieur ou
à Précision. égal à 38.

DT_BYTES Supérieur à 0 0 0
0.

DT_STR Supérieur 0 0 Différent de 0 et


à 0 et une page de
inférieur codes valide.
à 8 000.

DT_WSTR Supérieur 0 0 0
à 0 et
inférieur
à 4000.
Étant donné que les restrictions sur les propriétés de type de données sont basées sur le
type de données de la colonne de sortie, vous devez choisir le type de données
Integration Services correct lorsque vous utilisez des types managés. La classe de base
fournit trois méthodes d'assistance, ConvertBufferDataTypeToFitManaged,
BufferTypeToDataRecordType et DataRecordTypeToBufferType qui aident les
développeurs de composants managés à sélectionner un type de données SSIS en
fonction d'un type managé. Ces méthodes convertissent des types de données
managées en types de données SSIS, et vice versa.

Moment de l'exécution
En général, l’implémentation de la partie exécution du composant se divise en deux
tâches : localisation des colonnes d’entrée et de sortie du composant dans le tampon et
lecture ou écriture des valeurs de ces colonnes dans les lignes du tampon entrantes.

Localisation des colonnes dans le tampon


Le nombre de colonnes dans les tampons fournis à un composant pendant l'exécution
dépassera probablement le nombre de colonnes dans les collections d'entrée ou de
sortie du composant. Ce dépassement est dû au fait que chaque tampon contient toutes
les colonnes de sortie définies dans les composants d'un flux de données. Pour garantir
que les colonnes de tampon sont correctement mises en correspondance avec les
colonnes d'entrée ou de sortie, les développeurs de composants doivent utiliser la
méthode FindColumnByLineageID de la propriété BufferManager. Cette méthode
localise une colonne dans le tampon spécifié par son ID de lignage. En général, les
colonnes sont localisées pendant la méthode PreExecute parce qu'il s'agit de la
première méthode d'exécution où la propriété BufferManager devient disponible.

L'exemple de code suivant présente un composant qui localise des index des colonnes
dans sa collection de colonnes d'entrée et de sortie pendant la méthode PreExecute. Les
index de colonne sont stockés dans un tableau d'entiers et sont accessibles via le
composant pendant la méthode ProcessInput.

VB

Public Overrides Sub PreExecute()

Dim input As IDTSInput100 = ComponentMetaData.InputCollection(0)


Dim output As IDTSOutput100 = ComponentMetaData.OutputCollection(0)

ReDim inputColumns(input.InputColumnCollection.Count)
ReDim outputColumns(output.OutputColumnCollection.Count)
For col As Integer = 0 To input.InputColumnCollection.Count

Dim inputColumn As IDTSInputColumn100 =


input.InputColumnCollection(col)
inputColumns(col) =
BufferManager.FindColumnByLineageID(input.Buffer, inputColumn.LineageID)
Next

For col As Integer = 0 To output.OutputColumnCollection.Count

Dim outputColumn As IDTSOutputColumn100 =


output.OutputColumnCollection(col)
outputColumns(col) =
BufferManager.FindColumnByLineageID(input.Buffer, outputColumn.LineageID)
Next

End Sub

Traitement de lignes
Les composants reçoivent des objets PipelineBuffer qui contiennent des lignes et des
colonnes dans la méthode ProcessInput. Pendant cette méthode, les lignes comprises
dans le tampon sont parcourues, puis les colonnes identifiées pendant la méthode
PreExecute sont lues et modifiées. La méthode est appelée à plusieurs reprises par la
tâche de flux de données jusqu'à ce qu'aucune ligne ne soit fournie à partir du
composant en amont.

Une colonne individuelle du tampon est lue ou écrite en utilisant la méthode d’accès
indexeur de tableau ou l’une des méthodes Get ou Set. Les méthodes Get et Set sont
plus efficaces et doivent être utilisées lorsque le type de données de la colonne dans le
tampon est connu.

L'exemple de code suivant présente une implémentation de la méthode ProcessInput


qui traite des lignes entrantes.

VB

Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal buffer As


PipelineBuffer)

While (buffer.NextRow())

For x As Integer = 0 To inputColumns.Length

if buffer.IsNull(inputColumns(x)) = false then

Dim columnData As Object = buffer(inputColumns(x))


' TODO: Modify the column data.
buffer(inputColumns(x)) = columnData

End If
Next

End While
End Sub

Exemple
L'exemple suivant présente un composant de transformation simple à sorties
synchrones qui convertit les valeurs de toutes les colonnes de chaîne en majuscule. Cet
exemple ne contient pas toutes les méthodes et fonctionnalités présentées dans cette
rubrique. Il illustre les méthodes importantes que chaque composant de transformation
personnalisé à sorties synchrones doit substituer, mais ne contient pas de code pour la
validation au moment de la conception.

VB

Imports System
Imports System.Collections
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Namespace Uppercase

<DtsPipelineComponent(DisplayName="Uppercase")> _
Public Class Uppercase
Inherits PipelineComponent
Private m_ColumnIndexList As ArrayList = New ArrayList

Public Overrides Sub ProvideComponentProperties()


MyBase.ProvideComponentProperties
ComponentMetaData.InputCollection(0).Name = "Uppercase Input"
ComponentMetaData.OutputCollection(0).Name = "Uppercase Output"
End Sub

Public Overrides Sub PreExecute()


Dim input As IDTSInput100 = ComponentMetaData.InputCollection(0)
Dim inputColumns As IDTSInputColumnCollection100 =
input.InputColumnCollection
For Each column As IDTSInputColumn100 In inputColumns
If column.DataType = DataType.DT_STR OrElse column.DataType =
DataType.DT_WSTR Then

m_ColumnIndexList.Add(CType(BufferManager.FindColumnByLineageID(input.Buffer
, column.LineageID), Integer))
End If
Next
End Sub
Public Overrides Sub ProcessInput(ByVal inputID As Integer, ByVal buffer
As PipelineBuffer)
While buffer.NextRow
For Each columnIndex As Integer In m_ColumnIndexList
Dim str As String = buffer.GetString(columnIndex)
buffer.SetString(columnIndex, str.ToUpper)
Next
End While
End Sub
End Class
End Namespace

Voir aussi
Développement d'un composant de transformation personnalisé à sorties asynchrones
Présentation des transformations synchrones et asynchrones
Création d'une transformation synchrone à l'aide du composant Script
Développement de composants de flux
de données avec plusieurs entrées
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un composant de flux de données avec plusieurs entrées peut consommer


excessivement de la mémoire si ses entrées multiples produisent des données à des
taux irréguliers. Lorsque vous développez un composant de flux de données
personnalisé qui prend en charge plusieurs entrées, vous pouvez gérer cette sollicitation
de la mémoire en utilisant les membres suivants dans l’espace de noms
Microsoft.SqlServer.Dts.Pipeline :

La propriété SupportsBackPressure de la classe DtsPipelineComponentAttribute.


Définissez la valeur de cette propriété sur true si vous souhaitez implémenter le
code dont votre composant de flux de données personnalisé a besoin pour gérer
des flux de données irréguliers.

La méthode IsInputReady de la classe PipelineComponent. Vous devez fournir une


implémentation de cette méthode si vous définissez la propriété
SupportsBackPressure sur true. Si vous ne fournissez pas d'implémentation, le
moteur de flux de données lève une exception au moment de l'exécution.

La méthode GetDependentInputs de la classe PipelineComponent. Vous devez


également fournir une implémentation de cette méthode si vous définissez la
propriété SupportsBackPressure sur true et que votre composant personnalisé
prend en charge plusieurs entrées. Si vous ne fournissez pas d'implémentation, le
moteur de flux de données lève une exception au moment de l'exécution si
l'utilisateur joint plusieurs entrées.

Ces deux membres vous permettent de développer une solution pour la sollicitation de
la mémoire qui est semblable à la solution que Microsoft a développée pour les
transformations de fusion et de jointure de la fusion.

Définition de la propriété
SupportsBackPressure
La première étape pour l’implémentation d’une meilleure gestion de la mémoire pour
un composant de flux de données personnalisé qui prend en charge plusieurs entrées
consiste à définir la valeur de la propriété SupportsBackPressure sur true dans la classe
DtsPipelineComponentAttribute. Lorsque la valeur de SupportsBackPressure est true, le
moteur de flux de données appelle la méthode IsInputReady et, lorsqu’il y a plus de
deux entrées, il appelle également la méthode GetDependentInputs au moment de
l’exécution.

Exemple
Dans l’exemple suivant, l’implémentation de DtsPipelineComponentAttribute définit la
valeur de SupportsBackPressure sur true.

C#

[DtsPipelineComponent(ComponentType = ComponentType.Transform,
DisplayName = "Shuffler",
Description = "Shuffle the rows from input.",
SupportsBackPressure = true,
LocalizationType = typeof(Localized),
IconResource = "Microsoft.Samples.SqlServer.Dts.MIBPComponent.ico")
]
public class Shuffler : Microsoft.SqlServer.Dts.Pipeline.PipelineComponent
{
...
}

Implémentation de la méthode IsInputReady


Lorsque vous définissez la valeur de la propriété SupportsBackPressure sur true dans
l’objet DtsPipelineComponentAttribute, vous devez également fournir une
implémentation pour la méthode IsInputReady de la classe PipelineComponent.

7 Notes

Votre implémentation de la méthode IsInputReady ne doit pas appeler les


implémentations dans la classe de base. L’implémentation par défaut de cette
méthode dans la classe de base lève simplement une exception
NotImplementedException.

Lorsque vous implémentez cette méthode, vous définissez l’état d’un élément dans le
tableau booléen canProcess pour chacune des entrées du composant. (Les entrées sont
identifiées par leur valeur d’ID dans le tableau inputIDs.) Lorsque vous définissez la
valeur d’un élément du tableau canProcess sur true pour une entrée, le moteur de flux
de données appelle la méthode ProcessInput du composant et fournit davantage de
données pour l’entrée spécifiée.

Si plus de données en amont sont disponibles, la valeur de l’élément de tableau


canProcess pour au moins une entrée doit toujours être true, ou traiter les arrêts.

Le moteur de flux de données appelle la méthode IsInputReady avant d'envoyer chaque


mémoire tampon de données pour déterminer quelles entrées attendent de recevoir
d'autres données. Lorsque la valeur de retour indique qu'une entrée est bloquée, le
moteur de flux de données met temporairement en cache les mémoires tampon
supplémentaires de données pour cette entrée au lieu de les envoyer au composant.

7 Notes

Vous n'appelez pas les méthodes IsInputReady ou GetDependentInputs dans votre


propre code. Le moteur de flux de données appelle ces méthodes, et les autres
méthodes de la classe PipelineComponent que vous remplacez, lorsque le moteur
de flux de données exécute votre composant.

Exemple
Dans l'exemple suivant, l'implémentation de la méthode IsInputReady indique qu'une
entrée attend pour recevoir plus de données lorsque les conditions suivantes sont
remplies :

Plus de données en amont sont disponibles pour l'entrée ( !inputEOR ).

Le composant n'a pas actuellement de données disponibles pour traiter l'entrée


dans les mémoires tampon que le composant a déjà reçues
( inputBuffers[inputIndex].CurrentRow() == null ).

Si une entrée attend de recevoir plus de données, le composant de flux de données


indique cela en définissant sur true la valeur de l’élément dans le tableau canProcess qui
correspond à cette entrée.

Inversement, lorsque le composant a encore des données disponibles à traiter pour


l'entrée, l'exemple interrompt le traitement de l'entrée. L’exemple fait cela en définissant
sur false la valeur de l’élément dans le tableau canProcess qui correspond à cette entrée.

C#

public override void IsInputReady(int[] inputIDs, ref bool[] canProcess)


{
for (int i = 0; i < inputIDs.Length; i++)
{
int inputIndex =
ComponentMetaData.InputCollection.GetObjectIndexByID(inputIDs[i]);

canProcess[i] = (inputBuffers[inputIndex].CurrentRow() == null)


&& !inputEOR[inputIndex];
}
}

L'exemple précédent utilise le tableau inputEOR booléen pour indiquer si davantage de


données en amont sont disponibles pour chaque entrée. EOR dans le nom du tableau
représente « fin d'ensemble de lignes » et fait référence à la propriété EndOfRowset de
mémoires tampon de flux de données. Dans une partie de l'exemple qui n'est pas inclus
ici, la méthode ProcessInput vérifie la valeur de la propriété EndOfRowset pour chaque
mémoire tampon des données qu'elle reçoit. Lorsqu’une valeur true indique que plus
aucune donnée en amont n’est disponible pour une entrée, l’exemple définit la valeur
de l’élément de tableau inputEOR pour cette entrée sur true. Cette exemple de la
méthode IsInputReady définit la valeur de l’élément correspondant dans le tableau
canProcess sur false pour une entrée lorsque la valeur de l’élément de tableau inputEOR
indique qu’aucune donnée en amont n’est disponible pour l’entrée.

Implémentation de la méthode
GetDependentInputs
Lorsque votre composant de flux de données personnalisé prend en charge plus de
deux entrées, vous devez également fournir une implémentation pour la méthode
GetDependentInputs de la classe PipelineComponent.

7 Notes

Votre implémentation de la méthode GetDependentInputs ne doit pas appeler les


implémentations dans la classe de base. L’implémentation par défaut de cette
méthode dans la classe de base lève simplement une exception
NotImplementedException.

Le moteur de flux de données appelle seulement la méthode GetDependentInputs


lorsque l'utilisateur joint plus de deux entrées au composant. Lorsqu’un composant a
uniquement deux entrées, et que la méthode IsInputReady indique qu’une entrée est
bloquée (canProcess = false), le moteur de flux de données sait que l’autre entrée attend
de recevoir plus de données. Toutefois, lorsqu'il y a plus de deux entrées, et que la
méthode IsInputReady indique qu'une entrée est bloquée, le code supplémentaire dans
le GetDependentInputs identifie quelles entrées attendent de recevoir plus de données.

7 Notes

Vous n'appelez pas les méthodes IsInputReady ou GetDependentInputs dans votre


propre code. Le moteur de flux de données appelle ces méthodes, et les autres
méthodes de la classe PipelineComponent que vous remplacez, lorsque le moteur
de flux de données exécute votre composant.

Exemple
Pour une entrée spécifique bloquée, l'implémentation suivante de la méthode
GetDependentInputs retourne une collection des entrées qui attendent de recevoir plus
de données et par conséquent bloque l'entrée spécifiée. Le composant identifie les
entrées bloquantes en recherchant d'autres entrées que celle qui est bloquée qui n'ont
pas actuellement de données disponibles pour traiter dans les mémoires tampon que le
composant a déjà reçues ( inputBuffers[i].CurrentRow() == null ). La méthode
GetDependentInputs retourne ensuite la collection d'entrées bloquantes comme une
collection d'ID d'entrée.

C#

public override Collection<int> GetDependentInputs(int blockedInputID)


{
Collection<int> currentDependencies = new Collection<int>();
for (int i = 0; i < ComponentMetaData.InputCollection.Count; i++)
{
if (ComponentMetaData.InputCollection[i].ID != blockedInputID
&& inputBuffers[i].CurrentRow() == null)
{

currentDependencies.Add(ComponentMetaData.InputCollection[i].ID);
}
}

return currentDependencies;
}
Développement de types spécifiques de
composants de flux de données
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Cette section explique de manière détaillée comment développer des composants


source, des composants de transformation à sorties synchrones, des composants de
transformation à sorties asynchrones et des composants de destination.

Pour plus d’informations sur le développement de composants, consultez


Développement d’un composant de flux de données personnalisé.

Dans cette section


Développement d’un composant source personnalisé
Contient des informations sur le développement d'un composant qui accède aux
données d'une source de données externe et qui les fournit à des composants situés en
aval du flux de données.

Développement d’un composant de transformation personnalisé avec des sorties


synchrones
Contient des informations sur le développement d'un composant de transformation
dont les sorties sont synchrones avec ses entrées. Ces composants n'ajoutent pas de
données au flux de données, mais traitent les données pendant leur transfert.

Développement d'un composant de transformation personnalisé à sorties asynchrones


Contient des informations sur le développement d'un composant de transformation
dont les sorties ne sont pas synchrones avec ses entrées. Ces composants reçoivent des
données des composants en amont, mais ils ajoutent également des données au flux de
données.

Développement d'un composant de destination personnalisé


Contient des informations sur le développement d'un composant qui reçoit des lignes
des composants situés en amont du flux de données et qui les écrit dans une source de
données externe.

Informations de référence
Microsoft.SqlServer.Dts.Pipeline
Contient les classes et les interfaces qui permettent de créer des composants de flux de
données personnalisés.

Microsoft.SqlServer.Dts.Pipeline.Wrapper
Contient les classes et interfaces non managées de la tâche de flux de données. Les
développeurs utilisent ces dernières, ainsi que l'espace de noms
Microsoft.SqlServer.Dts.Pipeline managé, lorsqu'ils génèrent un flux de données par
programme ou qu'ils créent des composants de flux de données personnalisés.

Voir aussi
Comparaison des solutions de script et des objets personnalisés
Développement de types spécifiques de composants Script
Ajout de connexions par programme
Article • 04/07/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

La classe ConnectionManager représente des connexions physiques aux sources de


données externes. La classe ConnectionManager isole du runtime les détails
d'implémentation de la connexion. Elle permet au runtime d’interagir avec chaque
gestionnaire de connexions de façon cohérente et prévisible. Les gestionnaires de
connexions contiennent des propriétés stock que toutes les connexions ont en commun,
telles que les propriétés Name, ID, Description et ConnectionString. Toutefois, les
propriétés ConnectionString et Name sont habituellement les seules propriétés requises
pour configurer un gestionnaire de connexions. Contrairement à d’autres paradigmes de
programmation, où les classes de connexion exposent des méthodes telles que Open
ou Connect pour établir une connexion à la source de données, le moteur d’exécution
gère toutes les connexions du package pendant qu’il s’exécute.

La classe Connections est une collection des gestionnaires de connexions qui ont été
ajoutés à ce package et qui sont disponibles au moment de l'exécution. Vous pouvez
ajouter d’autres gestionnaires de connexions à la collection en utilisant la méthode Add
de la collection, et en fournissant une chaîne qui indique le type de gestionnaire de
connexions. La méthode Add renvoie l'instance ConnectionManager ajoutée au
package.

Propriétés intrinsèques
La classe ConnectionManager expose un jeu de propriétés communes à toutes les
connexions. Toutefois, vous avez parfois besoin d’accéder à des propriétés uniques au
type de connexion spécifique. La collection Properties de la classe ConnectionManager
fournit l'accès à ces propriétés. Les propriétés peuvent être extraites de la collection à
l’aide de l’indexeur ou du nom de propriété et de la méthode GetValue, et les valeurs
sont définies à l’aide de la méthode SetValue. Les propriétés des propriétés de l'objet de
connexion sous-jacente peuvent également être définies via l'acquisition d'une instance
réelle de l'objet et la définition directe de ses propriétés. Pour obtenir la connexion
sous-jacente, utilisez la propriété InnerObject du gestionnaire de connexions. La ligne
de code suivante présente une ligne C# qui crée un gestionnaire de connexions
ADO.NET avec la classe sous-jacente ConnectionManagerAdoNetClass.

ConnectionManagerAdoNetClass cmado = cm.InnerObject as ConnectionManagerAdoNet;


Elle convertit l'objet du gestionnaire de connexions managées en son objet de
connexion sous-jacente. Si vous utilisez C++, la méthode QueryInterface de l’objet
ConnectionManager est appelée et l’interface de l’objet de connexion sous-jacent est
demandée.

Le tableau suivant répertorie les gestionnaires de connexions fournis avec Integration


Services. et la chaîne utilisée dans l'instruction package.Connections.Add("xxx") . Pour
obtenir la liste de tous les gestionnaires de connexions, consultez Connexions
Integration Services (SSIS).

String Gestionnaire de connexions

"OLEDB" Gestionnaire de connexions pour les connexions OLE DB.

"ODBC" Gestionnaire de connexions pour les connexions ODBC.

"ADO" Gestionnaire de connexions pour les connexions ADO.

"ADO.NET:SQL" Gestionnaire de connexions pour les connexions ADO.NET (fournisseur de


données SQL).

"ADO.NET:OLEDB" Gestionnaire de connexions pour les connexions ADO.NET (fournisseur de


données OLE DB).

"FLATFILE" Gestionnaire de connexions pour les connexions de fichiers plats.

"FILE" Gestionnaire de connexions pour les connexions de fichiers.

"MULTIFLATFILE" Gestionnaire de connexions pour les connexions de fichiers plats multiples.

"MULTIFILE" Gestionnaire de connexions pour les connexions de fichiers multiples.

"SQLMOBILE" Gestionnaire de connexions pour les connexions SQL Server Compact.

"MSOLAP100" Gestionnaire de connexions pour les connexions Analysis Services.

"FTP" Gestionnaire de connexions pour les connexions FTP.

"HTTP" Gestionnaire de connexions pour les connexions HTTP.

"MSMQ" Gestionnaire de connexions pour les connexions Message Queuing


(également appelées MSMQ).

"SMTP" Gestionnaire de connexions pour les connexions SMTP.

"WMI" Gestionnaire de connexions pour les connexions WMI (Microsoft Windows


Management Instrumentation).

L'exemple de code suivant montre l'ajout d'une connexion OLE DB et FILE à la collection
Connections d'un objet Package. L'exemple définit ensuite les propriétés
ConnectionString, Name et Description.

VB

Imports Microsoft.SqlServer.Dts.Runtime

Module Module1

Sub Main()

' Create a package, and retrieve its connections.


Dim pkg As New Package()
Dim pkgConns As Connections = pkg.Connections

' Add an OLE DB connection to the package, using the


' method defined in the AddConnection class.
Dim myOLEDBConn As New CreateConnection()
myOLEDBConn.CreateOLEDBConnection(pkg)

' View the new connection in the package.


Console.WriteLine("Connection description: {0}", _
pkg.Connections("SSIS Connection Manager for OLE DB").Description)

' Add a second connection to the package.


Dim myFileConn As New CreateConnection()
myFileConn.CreateFileConnection(pkg)

' View the second connection in the package.


Console.WriteLine("Connection description: {0}", _
pkg.Connections("SSIS Connection Manager for Files").Description)

Console.WriteLine()
Console.WriteLine("Number of connections in package: {0}",
pkg.Connections.Count)

Console.Read()

End Sub

End Module

' This class contains the definitions for multiple


' connection managers.

Public Class CreateConnection


' Private data.
Private ConMgr As ConnectionManager

' Class definition for OLE DB provider.


Public Sub CreateOLEDBConnection(ByVal p As Package)
ConMgr = p.Connections.Add("OLEDB")
ConMgr.ConnectionString = "Provider=SQLOLEDB.1;" & _
"Integrated Security=SSPI;Initial Catalog=AdventureWorks;" & _
"Data Source=(local);"
ConMgr.Name = "SSIS Connection Manager for OLE DB"
ConMgr.Description = "OLE DB connection to the AdventureWorks database."
End Sub

Public Sub CreateFileConnection(ByVal p As Package)


ConMgr = p.Connections.Add("File")
ConMgr.ConnectionString = "\\<yourserver>\<yourfolder>\books.xml"
ConMgr.Name = "SSIS Connection Manager for Files"
ConMgr.Description = "Flat File connection"
End Sub

End Class

Exemple de sortie :

Connection description: OLE DB connection to the AdventureWorks database.

Connection description: Flat File connection.

Number of connections in package: 2

Voir aussi
Connexions Integration Services (SSIS)
Créer des gestionnaires de connexions
Génération de packages par programme
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Si vous devez créer des packages de manière dynamique, ou gérer et exécuter des
packages Integration Services à l'extérieur de l'environnement de développement, vous
pouvez manipuler les packages par programme. Cette méthode vous offre une gamme
continue d'options :

Charger et exécuter un package existant sans modification.

Charger un package existant, le reconfigurer (par exemple, pour une source de


données différente) et l'exécuter.

Créer un package, ajouter et configurer des composants objet par objet et


propriété par propriété, l'enregistrer, puis l'exécuter.

Vous pouvez utiliser le modèle d'objet Integration Services pour écrire du code qui crée,
configure et exécute des packages dans n'importe quel langage de programmation
managé. Par exemple, vous pouvez créer des packages, pilotés par des métadonnées,
qui configurent leurs connexions ou leurs sources de données, transformations et
destinations selon la source de données sélectionnée, ainsi que ses tables et ses
colonnes.

Cette section montre comment créer et configurer un package par programme, ligne
par ligne. L’option de programmation de package la moins complexe vous permet
simplement de charger et d’exécuter un package existant sans modification, comme
décrit dans Exécution et gestion de packages par programmation.

Une option intermédiaire, qui n'est pas décrite dans cet article, consiste à charger un
package existant en tant que modèle, le reconfigurer (par exemple, pour une source de
données différente) et l'exécuter. Vous pouvez également utiliser les informations de
cette section pour modifier les objets existants dans un package.

7 Notes

Lorsque vous utilisez un package existant comme modèle et modifiez des colonnes
existantes dans le flux de données, vous pourriez devoir supprimer les colonnes
existantes et appeler la méthode ReinitializeMetaData des composants affectés.
Dans cette section
Création d'un package par programme
Explique comment créer un package par programme.

Ajout de tâches par programmation


Explique comment ajouter des tâches au package.

Connexion de tâches par programme


Décrit comment contrôler l'exécution des conteneurs et des tâches dans un package en
fonction du résultat de l'exécution d'une tâche ou d'un conteneur précédent.

Ajout de connexions par programme


Décrit comment ajouter des gestionnaires de connexions à un package.

Utilisation de variables par programmation


Décrit comment ajouter et utiliser des variables pendant l'exécution d'un package.

Gestion d'événements par programme


Décrit comment gérer des événements de package et de tâche.

Activation de la journalisation par programme


Décrit comment activer la journalisation d'un package ou d'une tâche et appliquer des
filtres personnalisés à des événements de journal.

Ajout de la tâche de flux de données par programmation


Décrit comment ajouter et configurer la tâche de flux de données et ses composants.

Découverte des composants de flux de données par programme


Décrit comment détecter les composants installés sur l'ordinateur local.

Ajout de composants de flux de données par programme


Décrit comment ajouter un composant à une tâche de flux de données.

Connexion de composants de flux de données par programme


Décrit comment connecter deux composants de flux de données.

Sélection de colonnes d'entrée par programme


Décrit comment sélectionner des colonnes d'entrée parmi celles fournies à un
composant par les composants situés en amont du flux de données.

Enregistrement d'un package par programme


Explique comment enregistrer un package par programme.
Informations de référence
Guide de référence des erreurs et des messages propres à Integration Services
Répertorie les codes d'erreur Integration Services prédéfinis avec leur nom symbolique
et leur description.

Sections connexes
Extension de packages avec des scripts
Explique comment étendre le flux de contrôle à l'aide de la tâche de script, et comment
étendre le flux de données à l'aide du composant Script.

Extension de packages avec des objets personnalisés


Explique comment créer des tâches personnalisées de programme, des composants de
flux de données et d'autres objets de package à utiliser dans plusieurs packages.

Exécution et gestion de packages par programme


Explique comment énumérer, exécuter et gérer des packages et les dossiers dans
lesquels ils sont stockés.

Ressources externes
Entrée de blog, Performance profiling your custom extensions , sur le site
blogs.msdn.com.

Voir aussi
SQL Server Integration Services
Création d'un package par programme
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

L’objet Package correspond au conteneur de niveau supérieur de tous les autres objets
dans une solution de projet SSIS. En tant que conteneur de niveau supérieur, le package
est le premier objet créé, puis des objets suivants lui sont ajoutés, puis ils sont exécutés
dans le contexte du package. Le package lui-même ne déplace pas et ne transforme pas
de données. Il se repose sur les tâches qu'il contient pour effectuer le travail. Les tâches
effectuent la plupart du travail d'un package et définissent ses fonctionnalités. Un
package est créé et exécuté avec seulement trois lignes de code, mais différentes tâches
et objets ConnectionManager sont ajoutés pour lui donner des fonctionnalités
supplémentaires. Cette section décrit comment créer un package par programme. Elle
ne fournit pas d'informations sur la manière de créer les tâches ou les objets
ConnectionManager. Ceux-ci sont traités dans les sections ultérieures.

Exemple
Pour écrire du code à l'aide de l'environnement de développement intégré Visual Studio,
une référence à Microsoft.SqlServer.ManagedDTS.DLL est requise afin de créer une
instruction using ( Imports dans Visual Basic .NET) dans
Microsoft.SqlServer.Dts.Runtime. L'exemple de code suivant présente la création d'un
package vide.

VB

Imports Microsoft.SqlServer.Dts.Runtime

Module Module1

Sub Main()

Dim package As Package


package = New Package

End Sub

End Module

Pour compiler et exécuter l'exemple, appuyez sur F5 dans Visual Studio. Pour générer le
code en utilisant le compilateur C#, csc.exe, à l’invite de commandes de compilation,
utilisez la commande et les références de fichiers suivantes, en remplaçant <filename>
par le nom du fichier .cs ou .vb et en lui attribuant une valeur <outputfilename> de
votre choix.

csc /target:library /out: <outputfilename>.dll <filename>.cs


/r:Microsoft.SqlServer.Managed DTS.dll" /r:System.dll

Pour générer le code à l’aide du compilateur Visual Basic .NET, vbc.exe, à l’invite de
commandes de compilation, utilisez la commande et les références de fichiers suivantes.

vbc /target:library /out: <outputfilename>.dll <filename>.vb


/r:Microsoft.SqlServer.Managed DTS.dll" /r:System.dll

Vous pouvez également créer un package en chargeant un package existant enregistré


sur le disque, dans le système de fichiers ou dans SQL Server. La différence est que
l’objet Application est d’abord créé, puis l’objet de package est rempli par une des
méthodes surchargées de l’application : LoadPackage pour les fichiers plats,
LoadFromSQLServer pour les packages enregistrés dans SQL Server ou
LoadFromDtsServer pour les packages enregistrés dans le système de fichiers. L'exemple
suivant charge un package existant à partir du disque, puis consulte plusieurs propriétés
sur le package.

VB

Imports Microsoft.SqlServer.Dts.Runtime

Module ApplicationTests

Sub Main()

' The variable pkg points to the location of the


' ExecuteProcess package sample that was installed with
' the SSIS samples.
Dim pkg As String = _
"C:\Program Files\Microsoft SQL Server\100\Samples\Integration
Services" & _
"\Package Samples\ExecuteProcess
Sample\ExecuteProcess\UsingExecuteProcess.dtsx"

Dim app As Application = New Application()


Dim p As Package = app.LoadPackage(pkg, Nothing)

' Now that the package is loaded, we can query on


' its properties.
Dim n As Integer = p.Configurations.Count
Dim p2 As DtsProperty = p.Properties("VersionGUID")
Dim pl As DTSProtectionLevel = p.ProtectionLevel

Console.WriteLine("Number of configurations = " & n.ToString())


Console.WriteLine("VersionGUID = " & CType(p2.GetValue(p), String))
Console.WriteLine("ProtectionLevel = " & pl.ToString())
Console.Read()

End Sub

End Module

Exemple de sortie :

Number of configurations = 2

VersionGUID = {09016682-89B8-4406-AAC9-AF1E527FF50F}

ProtectionLevel = DontSaveSensitive

Ressources externes
Entrée de blog, API Sample - OleDB source and OleDB destination , sur
blogs.msdn.com.

Entrée de blog, EzAPI - Updated for SQL Server 2012 , sur blogs.msdn.com.

Voir aussi
Ajout de tâches par programmation
Ajout de tâches par programme
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Il est possible d'ajouter des tâches aux types d'objets suivants dans le moteur
d'exécution :

Package

Sequence

ForLoop

ForEachLoop

DtsEventHandler

Ces classes, considérées comme des conteneurs, héritent toutes de la propriété


Executables. Des conteneurs peuvent contenir une collection de tâches, qui sont des
objets exécutables traités par le runtime au cours de l'exécution du conteneur. L'ordre
d'exécution des objets dans la collection est déterminé par n'importe quel ensemble
PrecedenceConstraint sur chaque tâche dans les conteneurs. Les contraintes de
précédence permettent la création de branches d'exécution basées sur le succès, l'échec
ou l'achèvement d'un Executable dans la collection.

Chaque conteneur possède une collection Executables qui contient les objets Executable
individuels. Chaque tâche exécutable hérite des méthodes Execute et Validate et les
implémente. Ces deux méthodes sont appelées par le moteur d'exécution pour traiter
chaque Executable.

Pour ajouter une tâche à un package, vous avez besoin d'un conteneur avec une
collection Executables existante. Généralement, la tâche ajoutée à la collection est un
package. Pour ajouter la nouvelle tâche exécutable dans la collection pour ce conteneur,
vous devez appeler la méthode Add. La méthode possède un seul paramètre, une
chaîne, qui contient le CLSID, le PROGID, le moniker STOCK, ou le CreationName de la
tâche que vous ajoutez.

Nom des tâches


Bien qu’il soit possible de spécifier une tâche par son nom ou son ID, le moniker STOCK
est le paramètre le plus souvent utilisé dans la méthode Add. Pour ajouter une tâche à
un fichier exécutable identifié par le moniker STOCK, utilisez la syntaxe suivante :
VB

Dim exec As Executable = package.Executables.Add("STOCK:BulkInsertTask")

La liste suivante présente les noms de chaque tâche figurant à la suite du moniker
STOCK.

ActiveXScriptTask

BulkInsertTask

ExecuteProcessTask

ExecutePackageTask

Exec80PackageTask

FileSystemTask

FTPTask

MSMQTask

PipelineTask

ScriptTask

SendMailTask

SQLTask

TransferStoredProceduresTask

TransferLoginsTask

TransferErrorMessagesTask

TransferJobsTask

TransferObjectsTask

TransferDatabaseTask

WebServiceTask

WmiDataReaderTask

WmiEventWatcherTask
XMLTask

Si vous préférez une syntaxe plus explicite, ou si la tâche à ajouter n'a pas de moniker
STOCK, vous pouvez ajouter la tâche au fichier exécutable à l'aide de son nom long.
Cette syntaxe requiert que vous spécifiiez également le numéro de version de la tâche.

VB

Dim exec As Executable = package.Executables.Add( _


"Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptTask, " & _
"Microsoft.SqlServer.ScriptTask, Version=10.0.000.0, " & _
"Culture=neutral, PublicKeyToken=89845dcd8080cc91")

Vous pouvez obtenir le nom long de la tâche par programmation, sans devoir spécifier
la version de la tâche, à l’aide de la propriété AssemblyQualifiedName de la classe,
comme indiqué dans l’exemple suivant. Cet exemple requiert une référence à l'assembly
Microsoft.SqlServer.SQLTask.

VB

Imports Microsoft.SqlServer.Dts.Tasks.ExecuteSQLTask
...
Dim exec As Executable = package.Executables.Add( _

GetType(Microsoft.SqlServer.Dts.Tasks.ExecuteSQLTask.ExecuteSQLTask).Assembl
yQualifiedName)

L’exemple de code suivant montre comment créer une collection Executables à partir
d’un nouveau package, puis ajouter une tâche de système de fichiers et une tâche
d’insertion en bloc à la collection, à l’aide de leur moniker STOCK. Cet exemple requiert
une référence aux assemblys Microsoft.SqlServer.FileSystemTask et
Microsoft.SqlServer.BulkInsertTask.

VB

Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Tasks.FileSystemTask
Imports Microsoft.SqlServer.Dts.Tasks.BulkInsertTask

Module Module1

Sub Main()

Dim p As Package = New Package()


' Add a File System task to the package.
Dim exec1 As Executable = p.Executables.Add("STOCK:FileSystemTask")
Dim thFileSystemTask As TaskHost = CType(exec1, TaskHost)
' Add a Bulk Insert task to the package.
Dim exec2 As Executable = p.Executables.Add("STOCK:BulkInsertTask")
Dim thBulkInsertTask As TaskHost = CType(exec2, TaskHost)

' Iterate through the package Executables collection.


Dim pExecs As Executables = p.Executables
Dim pExec As Executable
For Each pExec In pExecs
Dim taskHost As TaskHost = CType(pExec, TaskHost)
Console.WriteLine("Type {0}", taskHost.InnerObject.ToString())
Next
Console.Read()

End Sub

End Module

Exemple de sortie :

Type Microsoft.SqlServer.Dts.Tasks.FileSystemTask.FileSystemTask

Type Microsoft.SqlServer.Dts.Tasks.BulkInsertTask.BulkInsertTask

Conteneur TaskHost
La classe TaskHost est un conteneur très important pour la programmation, même s'il
n'apparaît pas dans l'interface utilisateur graphique. Cette classe sert de wrapper pour
chaque tâche. Les tâches qui, à l'aide de la méthode Add, sont ajoutées au package en
tant qu'objet Executable peuvent être converties en objet TaskHost. Lorsqu'une tâche est
convertie en TaskHost, vous pouvez lui appliquer des propriétés et des méthodes
supplémentaires. Par ailleurs, la tâche elle-même est accessible par l'intermédiaire de la
propriété InnerObject de TaskHost. Selon vos besoins, vous pouvez décider de conserver
la tâche sous la forme d'un objet TaskHost afin de pouvoir vous servir des propriétés de
la tâche par le biais de la collection Properties. Properties a pour avantage de vous
permettre d'écrire plus de code générique. Si vous avez besoin d'utiliser du code très
spécifique pour une tâche, vous devez effectuer un cast de la tâche en son objet
approprié.

L'exemple de code suivant indique comment effectuer un cast de TaskHost,


thBulkInsertTask, qui contient BulkInsertTask, en objet BulkInsertTask.

VB

Dim myTask As BulkInsertTask = CType(thBulkInsertTask.InnerObject,


BulkInsertTask)
L'exemple de code suivant montre comment effectuer un cast du fichier exécutable en
TaskHost, puis comment utiliser la propriété InnerObject pour identifier le type de fichier
exécutable que contient l'hôte.

VB

Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Tasks.FileSystemTask
Imports Microsoft.SqlServer.Dts.Tasks.BulkInsertTask

Module Module1

Sub Main()

Dim p As Package = New Package()


' Add a File System task to the package.
Dim exec1 As Executable = p.Executables.Add("STOCK:FileSystemTask")
Dim thFileSystemTask1 As TaskHost = CType(exec1, TaskHost)
' Add a Bulk Insert task to the package.
Dim exec2 As Executable = p.Executables.Add("STOCK:BulkInsertTask")
Dim thFileSystemTask2 As TaskHost = CType(exec2, TaskHost)

' Iterate through the package Executables collection.


Dim pExecs As Executables = p.Executables
Dim pExec As Executable
For Each pExec In pExecs
Dim taskHost As TaskHost = CType(pExec, TaskHost)
If TypeOf taskHost.InnerObject Is
Microsoft.SqlServer.Dts.Tasks.FileSystemTask.FileSystemTask Then
' Do work with FileSystemTask here.
Console.WriteLine("Found task of type {0}",
taskHost.InnerObject.ToString())
ElseIf TypeOf taskHost.InnerObject Is
Microsoft.SqlServer.Dts.Tasks.BulkInsertTask.BulkInsertTask Then
' Do work with BulkInsertTask here.
Console.WriteLine("Found task of type {0}",
taskHost.InnerObject.ToString())
End If
' Add additional statements to check InnerObject, if desired.
Next
Console.Read()

End Sub

End Module

Exemple de sortie :

Found task of type Microsoft.SqlServer.Dts.Tasks.FileSystemTask.FileSystemTask

Found task of type Microsoft.SqlServer.Dts.Tasks.BulkInsertTask.BulkInsertTask


L'instruction Add retourne un fichier exécutable converti en objet TaskHost à partir de
l'objet Executable créé récemment.

Pour définir des propriétés ou appeler des méthodes sur le nouvel objet, vous disposez
de deux options :

1. Utilisez la collection Properties de TaskHost. Par exemple, pour obtenir une


propriété à partir de l’objet, utilisez th.Properties["propertyname"].GetValue(th)) .
Pour définir une propriété, utilisez th.Properties["propertyname"].SetValue(th,
<value>); .

2. Effectuez un cast de InnerObject de TaskHost vers la classe de tâche. Par exemple,


pour effectuer un cast de la tâche d'insertion en bloc en BulkInsertTask une fois
qu'elle a été ajoutée à un package en tant que Executable, puis convertie en
TaskHost, utilisez BulkInsertTask myTask = th.InnerObject as BulkInsertTask; .

Utiliser la classe TaskHost dans le code, au lieu d'effectuer un cast vers la classe
spécifique à une tâche présente les avantages suivants :

Le fournisseur TaskHostProperties ne requiert pas de référence à l’assembly dans le


code.

Vous pouvez coder des routines génériques qui fonctionnent avec toutes les
tâches, car vous n'avez pas besoin de connaître le nom de la tâche au moment de
la compilation. Ces routines génériques incluent des méthodes dans lesquelles
vous pouvez passer le nom de la tâche et dont le code fonctionne avec toutes les
tâches. C'est une méthode pratique pour écrire un code de test.

Effectuer un cast à partir de TaskHost vers la classe spécifique à une tâche présente les
avantages suivants :

Le projet Visual Studio propose la saisie semi-automatique des instructions


(IntelliSense).

Le code peut s'exécuter plus rapidement.

Les objets spécifiques à une tâche prennent en charge la liaison anticipée et les
optimisations qui en résultent. Pour plus d'informations sur la liaison anticipée et
tardive, consultez la rubrique sur les liaisons anticipées et les liaisons tardives dans
les concepts de langage de Visual Basic.

L'exemple de code suivant développe le concept de réutilisation du code de tâche. Au


lieu d'effectuer un cast des tâches en leurs équivalents dans une classe spécifique,
l'exemple de code montre comment effectuer un cast du fichier exécutable en TaskHost,
puis il utilise Properties pour écrire du code générique pour toutes les tâches.

VB

Imports Microsoft.SqlServer.Dts.Runtime

Module Module1

Sub Main()

Dim package As Package = New Package()

Dim tasks() As String = New String() {"STOCK:SQLTask",


"STOCK:ScriptTask", _
"STOCK:ExecuteProcessTask", "STOCK:PipelineTask", _
"STOCK:FTPTask", "STOCK:SendMailTask", "STOCK:MSMQTask"}

For Each s As String In tasks

Dim taskhost As TaskHost = CType(package.Executables.Add(s), TaskHost)


Dim props As DtsProperties = taskhost.Properties
Console.WriteLine("Enumerating properties on " & taskhost.Name)
Console.WriteLine(" TaskHost.InnerObject is " &
taskhost.InnerObject.ToString())
Console.WriteLine()

For Each prop As DtsProperty In props


Console.WriteLine("Properties for " + prop.Name)
Console.WriteLine(" Name : " + prop.Name)
Console.WriteLine(" Type : " + prop.Type.ToString())
Console.WriteLine(" Readable : " + prop.Get.ToString())
Console.WriteLine(" Writable : " + prop.Set.ToString())
Console.WriteLine()
Next

Next
Console.Read()

End Sub

End Module

Ressources externes
Entrée de blog, EzAPI - Updated for SQL Server 2012 , sur blogs.msdn.com.

Voir aussi
Connexion de tâches par programme
Connexion de tâches par programme
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Une contrainte de précédence, représentée dans le modèle objet par la classe


PrecedenceConstraint, établit l'ordre dans lequel les objets Executable s'exécutent dans
un package. La contrainte de précédence permet de rendre l'exécution des conteneurs
et des tâches d'un package dépendante du résultat de l'exécution d'une tâche ou d'un
conteneur précédent. Les contraintes de précédence sont établies entre des paires
d'objets Executable en appelant la méthode Add de la collection PrecedenceConstraints
sur l'objet conteneur. Après avoir créé une contrainte entre deux objets exécutables,
vous devez définir la propriété Value pour établir les critères d'exécution du deuxième
objet exécutable défini dans la contrainte.

Vous pouvez utiliser une contrainte ou une expression dans une seule contrainte de
précédence, en fonction de la valeur spécifiée pour la propriété EvalOp, tel que décrit
dans le tableau suivant :

Valeur de la propriété Description


EvalOp

Constraint Spécifie que le résultat de l'exécution détermine l'exécution de la


tâche ou du conteneur contraint. Affectez la valeur souhaitée de
l'énumération Value à la propriété PrecedenceConstraint de
DTSExecResult.

Expression Spécifie que la valeur d'une expression détermine l'exécution de la


tâche ou du conteneur contraint. Définissez la propriété Expression de
PrecedenceConstraint.

ExpressionAndConstraint Spécifie que la contrainte doit produire un résultat et que l'expression


doit prendre une valeur, pour que la tâche ou le conteneur contraint
s'exécute. Définissez les propriétés Value et Expression de
PrecedenceConstraint, et attribuez la valeur true à la propriété
LogicalAnd.

ExpressionOrConstraint Spécifie que la contrainte doit produire un résultat ou que l'expression


doit prendre une valeur, pour que la tâche ou le conteneur contraint
s'exécute. Définissez les propriétés Value et Expression de
PrecedenceConstraint, et attribuez la valeur false à la propriété
LogicalAnd.

L'exemple de code suivant illustre l'ajout de deux tâches à un package. Un


PrecedenceConstraint est créé entre elles pour empêcher l'exécution de la deuxième
tâche tant que la première n'a pas fini de s'exécuter.

VB

Imports Microsoft.SqlServer.Dts.Runtime

Module Module1

Sub Main()

Dim p As Package = New Package()


' Add a File System task.
Dim eFileTask1 As Executable = p.Executables.Add("STOCK:FileSystemTask")
Dim thFileHost1 As TaskHost = CType(eFileTask1, TaskHost)

' Add a second File System task.


Dim eFileTask2 As Executable = p.Executables.Add("STOCK:FileSystemTask")
Dim thFileHost2 As TaskHost = CType(eFileTask2, TaskHost)

' Put a precedence constraint between the tasks.


' Set the constraint to specify that the second File System task cannot
run
' until the first File System task finishes.
Dim pcFileTasks As PrecedenceConstraint = _
p.PrecedenceConstraints.Add(CType(thFileHost1, Executable),
CType(thFileHost2, Executable))
pcFileTasks.Value = DTSExecResult.Completion

End Sub

End Module

Voir aussi
Ajout de la tâche de flux de données par programmation
Utilisation de variables par
programmation
Article • 23/05/2023

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Les variables constituent un moyen de définir des valeurs et de contrôler des processus
dans les packages, conteneurs, tâches et gestionnaires d'événements de manière
dynamique. Les variables peuvent également être utilisées par les contraintes de
précédence pour contrôler la direction du flux de données vers différentes tâches. Les
variables ont diverses utilisations :

Mise à jour des propriétés d'un package au moment de l'exécution.

Remplissage de valeurs de paramètres pour des instructions Transact-SQL au


moment de l’exécution.

Contrôle du flux d'une boucle Foreach. Pour plus d’informations, consultez Ajouter
une énumération à un flux de contrôle.

Contrôle d'une contrainte de précédence par son utilisation dans une expression.
Une contrainte de précédence peut inclure des variables dans la définition de
contrainte. Pour plus d’informations, consultez Ajouter des expressions aux
contraintes de précédence.

Contrôle de la répétition conditionnelle d'un conteneur de boucles For. Pour plus


d’informations, consultez Ajouter une itération à un flux de contrôle.

Création d’expressions qui incluent des valeurs de variables.

Vous pouvez créer des variables personnalisées pour tous les types de conteneurs :
packages, conteneurs de boucles Foreach, conteneurs de boucles For, conteneurs
de séquences, TaskHosts et gestionnaires d’événements. Pour plus d’informations,
consultez Variables Integration Services (SSIS) et Utiliser des variables dans des
packages.

Étendue
Chaque conteneur possède sa propre collection Variables. Lorsqu'une nouvelle variable
est créée, elle se trouve dans la portée de son conteneur parent. Le conteneur de
packages se trouvant au sommet de la hiérarchie de conteneurs, les variables avec une
portée de package fonctionnent comme les variables globales et sont visibles pour tous
les conteneurs contenus dans le package. La collection de variables du conteneur est
également accessible par les enfants du conteneur via la collection Variables, en utilisant
le nom de variable ou l'index de la variable dans la collection.

Parce que la visibilité d'une variable s'étend du haut vers le bas, les variables déclarées
au niveau du package sont visibles pour tous les conteneurs situés dans le package. Par
conséquent, la collection Variables sur un conteneur inclut toutes les variables qui
appartiennent à son parent en plus de ses propres variables.

Inversement, les variables contenues dans une tâche sont limitées en termes de portée
et de visibilité et sont uniquement visibles pour la tâche.

Si un package exécute d'autres packages, les variables définies dans la portée du


package appelant sont disponibles pour le package appelé. La seule exception se
produit lorsqu'une variable de même nom existe dans le package appelé. Lorsque cette
collision se produit, la valeur de la variable dans le package appelé remplace celle du
package appelant. Les variables définies dans la portée du package appelé ne sont
jamais de nouveau disponibles pour le package appelant.

L'exemple de code suivant crée une variable, myCustomVar , par programme, à la portée
du package, puis parcourt toutes les variables visibles pour le package, en imprimant
leur nom, leur type de données e

Vous aimerez peut-être aussi