TechNet
Exporter (0) Imprimer
Développer tout

Déployer et exécuter des packages SSIS à l'aide de procédures stockées

 

S'applique à: SQL Server 2016

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 projet de déploiement, consultez Packages et déploiement de projets.

Vous pouvez également utiliser SQL Server Management Studio ou Outils de données SQL Server (SSDT) pour déployer le projet et pour exécuter des packages. Pour plus d’informations, consultez les rubriques de la Voir aussi section.

System_CAPS_ICON_tip.jpg 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 catalogues Integration Services nœud dans l’Explorateur d’objets et accédez au package à exécuter.

  2. Cliquez sur le package, puis cliquez sur Execute.

  3. Si nécessaire, définissez les valeurs de paramètres, propriétés de gestionnaire de connexion et options dans la Avancé onglet tels que le niveau de journalisation.

    Pour plus d’informations sur les niveaux de journalisation, consultez Activer la journalisation de l’exécution du 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.

  1. Appelez catalog.deploy_project & #40 ; SSISDB base de données & #41 ; Pour déployer le Integration Services projet qui contient le package pour la Integration Services server.

    Pour récupérer le contenu binaire de la Integration Services fichier de déploiement de projet pour le @project_stream paramètre, utilisez une instruction SELECT avec la fonction OPENROWSET et le fournisseur d’ensemble de lignes en bloc. 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 & #40 ; Transact-SQL & #41 ;.

    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 est lu à partir du fichier de projet (SSISPackage_ProjectDeployment.ispac) et est stockées dans le @ProjectBinary le paramètre de type varbinary (max). Le @ProjectBinary valeur du paramètre est assignée à la @project_stream paramètre.

    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 & #40 ; SSISDB base de données & #41 ; Pour créer une instance d’exécution du lot et éventuellement appeler catalog.set_execution_parameter_value & #40 ; SSISDB base de données & #41 ; Pour définir des valeurs de paramètre de runtime.

    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.

    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 & #40 ; SSISDB base de données & #41 ; 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é.

    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  
    
    
    

Vous pouvez déployer un projet de serveur à serveur à l’aide de la catalog.get_project & #40 ; SSISDB base de données & #41 ; et catalog.deploy_project & #40 ; SSISDB base de données & #41 ; procédures stockées.

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 & #40 ; Base de données SQL Server moteur & #41 ;.

    Sur le Options serveur page de le Propriétés du serveur lié boîte de dialogue, définissez RPC et RPC à True. En outre, définissez Activer la Promotion des Transactions distribuées pour RPC à False.

  • Activer les paramètres dynamiques pour le fournisseur sélectionné pour le serveur lié, en développant le fournisseurs nœud sous des serveurs liés dans l’Explorateur d’objets, clic droit sur le fournisseur, puis en cliquant sur propriétés. Sélectionnez Activer regard 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.

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  
  

Déployer des projets sur le serveur Integration Services
Exécuter un package dans les outils de données SQL Server
Exécuter un package sur le serveur SSIS à l'aide de SQL Server Management Studio

Ajouts de la communauté

Afficher:
© 2016 Microsoft