Sie können sich nicht wirklich auf externe Prozesse verlassen. Alle "OS" -basierten Lösungen, die ich gesehen habe, konnten in der realen Welt nicht geliefert werden: Eine Datenbank ist viel mehr als nur die Daten, hauptsächlich wegen der Backup/Restore-Strategie, der Hochverfügbarkeitsstrategie, der Strategie zur Notfallwiederherstellung und all der anderen 'ities' zahlen Sie in Ihrer SQL Server-Lizenz. Ein OS-Scheduler basiert auf einer externen Komponente, die mit keiner von ihnen völlig unbewusst und nicht integriert ist. Ie. Sie können Ihren Zeitplan nicht mit Ihren Daten sichern/wiederherstellen, er wird nicht mit Ihrer Datenbank fehlschlagen, Sie können ihn nicht über Ihren SQL-Datenversandkanal an eine Remote-Disaster Recovery-Site senden.
Wenn Sie einen Agenten haben (dh keine Express Edition), dann verwenden Sie den Agenten. Hat eine lange Geschichte der Nutzung und das Know-how um es ist von Bedeutung. Das einzige Problem mit Agent ist seine Abhängigkeit von msdb, die dazu führt, dass es von der Anwendungsdatenbank getrennt wird und daher nicht gut mit Spiegelungsbasierten Verfügbarkeits- und Wiederherstellungslösungen funktioniert.
Für Express-Editionen (dh kein Agent) ist die beste Option, einen eigenen Scheduler basierend auf conversation timers zu rollen (zumindest in SQL 2k5 und forward). Sie verwenden Konversationen, um Nachrichten im gewünschten Moment zu planen, und verlassen sich auf activated procedures, um die Aufgaben auszuführen. Sie sind transaktional und in Ihre Datenbank integriert, sodass Sie sich darauf verlassen können, dass sie nach einer Wiederherstellung und nach einem Failover mit Spiegelung oder Clustering vorhanden sind. Leider ist das Know-how, wie man sie benutzt, ziemlich übertrieben, ich habe mehrere Artikel über das Thema auf meiner Website rusanu.com. Ich habe Systeme gesehen, die eine ziemlich große Menge von Agenten-APIs in Express replizieren, wobei sie sich ausschließlich auf Konversationstimer verlassen.
BTW, welche Version von SQL Server? –