Exécuter le code C # dans un travail d'agent SQL
J'ai un morceau de code qui doit s'exécuter tous les jours à une heure spécifiée. Le code de droit est maintenant assis comme une partie de mon application web. Il y a 2 procédures stockées pour afficher/enregistrer les données qui utilise le code.
Comment puis-je le programme d'installation de Microsoft SQL Server Management Studio 2008 R2 pour exécuter mon code ainsi que la stockées procs dans une Tâche de l'Agent SQL. Je n'ai jamais fait cela auparavant et n'arrive pas à trouver de la documentation.
source d'informationauteur Tom
Vous devez vous connecter pour publier un commentaire.
La méthode la plus simple est de faire un .NET application console qui est juste un shell de votre code réel assis dans une DLL ou un webservice ou n'importe où. Puis, dans votre tâche de l'Agent SQL, créer une étape qui est de type "système d'Exploitation (CmdExec)" qui appelle votre application console. Vous permet d'économiser les tracas de la SSIS (et c'est un majeur tracas à éviter). Je suis également d'accord avec @Hasanain qu'un .NET proc peut-être une autre solution de rechange raisonnable.
Une autre chose à noter. L'Agent SQL CmdExec va chercher un entier code de retour, afin d'avoir votre
public static int Main(string args[]) {}
méthode renvoie 0 en cas de réussite et certains nombre négatif de l'échec. Ou, si vous jetez une exception, cela fonctionnera très bien aussi. Et le SQL Agent du journal le texte à partir de ce que vous avez jeté depuis l'application de console va avoir écrit sur la sortie standard stdout/stderr.Vous devriez lire sur Sql Server Integration Services (SSIS). Vous pouvez ensuite planifier des packages SSIS qui sont des unités de fonctionnalités sql. Au sein d'un package SSIS vous pouvez exécuter le script d'emplois et d'appel CLR (Common Language Runtime - c'est à dire .Emplois nets) des fonctions à exécuter votre .net code.
Une chose cependant, vous pouvez penser à ce sujet dans un peu vers l'arrière de la mode. Est la principale raison de l'utilisation de SSIS à l'annexe code d'exécutions qui appellent certains sql? Si oui, je vous recommande de recherche /utilisation Windows Workflow Foundation (WWF). C'est un .net framework pour le développement et l'exécution de "long terme" .net des activités. Sur un plan pratique, vous pouvez la considérer comme l'équivalent de SSIS .Net des programmes. Il peut être construit directement dans votre .Net applications sans sql server, SSIS de connaissances.
Enfin, si votre application est très simple, vous pouvez envisager seulement l'emballage jusqu'à la base de données mise à jour appelle à une simple Application Console. De cette façon, vous pouvez simplement appeler à l'application via le Le Planificateur de tâches intégré à Windows à exécuter à certains jours ou heures, etc.
Vous pouvez créer un .NET procédure stockée, et l'ajouter à SQL Server. Ensuite, créez une tâche de l'Agent SQL qui ferait appel de cette nouvelle procédure stockée.
L' .Net procédure stockée seraient essentiellement se limiter à un petit jeu de .NET bibliothèques qui sont déjà intégrés au sein de SQL Server. Vous pouvez ajouter vos propres dll afin de s'assurer que toutes les fonctionnalités seront disponibles. Toutefois, étant donné qu'il y a un avertissement de la part de MS qu'il n'y a aucune garantie que toutes les dll de la volonté de travail, il serait tout simplement besoin de tests rigoureux, afin de garantir que.