2009-09-08 9 views
2

J'ai créé un package SSIS, dans lequel j'appelle 2 sp avec un seul paramètre chacun. Donc, comment appeler ce paquetage dans une procédure stockée en passant une valeur à en paramètre à ce paquet et à la procédure stockée dynamiquement.SSIS dans le serveur SQL 2005

+0

Votre question est "comment appeler cette procédure stockée dans un emballage en passant une valeur en tant que paramètre à ce package, dynamique" – Faiz

Répondre

1

Il est préférable de créer un Job, puis de le démarrer à partir de votre procédure. Sinon, vous devrez démarrer votre paquet SSIS en utilisant xp_cmdshell, que beaucoup considèrent comme mauvais à utiliser (risques de sécurité).

EXEC msdb.dbo.sp_start_job N'YourJobNameHere ';

essayer de regarder Running SSIS package programmatically qui couvre toutes les méthodes suivantes:

  • package Exécuter programme en utilisant SSIS Object Model
  • Démarrer processus dtexec.exe. DTEXEC est un utilitaire de ligne de commande permettant d'exécuter des packages SSIS
  • Utilisez SQL Agent. Vous pouvez configurer un travail de l'Agent pour exécuter votre package
  • Utilisez un autre utilitaire pour démarrer DTExec pour vous
  • Créer une application personnalisée qui exécutera le package

EDIT basé sur OP en disant qu'ils peuvent » t passer une valeur dans un travail

Si plusieurs personnes n'essaient pas d'exécuter ce package à la fois, vous pouvez insérer vos valeurs dans une table spéciale que les procédures stockées (dans votre package) peuvent sélectionner et utilisation. Si vous avez plusieurs personnes essayant d'exécuter le paquet en même temps, vous pouvez créer une table de file d'attente, où le travail tire les paramètres nécessaires de cette table de file d'attente et exécute le paquet, quand il tire l'ensemble suivant, etc.

0

Vous pouvez exécuter le package à l'aide de l'utilitaire DTExec.exe en mode ligne de commande. Vérifiez Jamie Thomson's blog.

Ex: - /SET \package\DataFlowTask.Variables[User::MyVariable].Value;newValue

Vérifiez également ce MSDN page

+0

I pense que DTExec.exe est uniquement SQL Server 2008 –

+0

Non ce n'est pas le cas. Vérifiez MSDN. – Faiz

+0

@Faiz, oui duh. Je ne pouvais pas trouver dans mon livre en ligne 2005 local, mais votre lien montre qu'il est en 2005, j'ai alors remarqué que je filtrais mes recherches locales BOL, quand j'ai changé que je pourrais le trouver. –

Questions connexes