Im Folgenden wird über den Taskplaner ausgeführt wird, werden die beiden Befehle ausführen, um die gleiche Aufgabe mit (nur Änderung des Triggerzeitpunktes) und ich abzumelden den Server, bevor die Task Triggerzeit auftritt arbeiten.Geplante sqlcmd Aufgabe nicht
Wenn ich eine Batch-Datei für den folgenden Befehl erstellen, wird es gut ausgeführt (es erstellt die Protokolldateien und schreibt die sqlcmd-Ausgabe in die Datei), außerdem ist die Ausgabe in der Protokolldatei 1, was erklärt, dass das Konto die Batch-Datei hat die Erlaubnis, die gespeicherte Prozedur auszuführen:
sqlcmd -E -S .\SQLEXPRESS -d WEDFUTtest -Q"select HAS_PERMS_BY_NAME('sp_DBMaintenance', 'OBJECT', 'EXECUTE')" -o %FILENAMEANDPATH%
Wenn ich bearbeiten sie die Batchdatei (so unterhält die gleichen Berechtigungen usw.) mit dem folgenden Befehl:
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_DBMaintenance @dbName=TestDB, @FragmentationThresholdForReorganizeTableLowerLimit='5.0', @FragmentationThresholdForRebuildTableLowerLimit='30.0'" -d TestDB -o %FILENAMEANDPATH%
und Abmelde und lassen sie den Task Scheduler, um es zu starten, es funktioniert nicht, dh gibt es keine Protokolldatei und die ganze Aufgabe ausführt, in sehr kurzer Zeit, manchmal weniger als 1 Sekunde ... und ich weiß, dass das sp_DBMaintenance Skript über 20 Minuten in Anspruch nimmt keine Fehlermeldungen zu beenden ... es gibt ...
Darüber hinaus (auf dem Domain-Administrator-Konto angemeldet) kann ich manuell den 2. (nicht funktionierenden) Befehl manuell entweder über cmd oder durch Rechtsklick auf die Aufgabe in Taskplaner ausführen und alles funktioniert gut.
Die Frage ist also, warum nicht der zweite Befehl richtig funktioniert?
P.S. % FILENAMEANDPATH% von der Form SP_Log_23-11-2016_11-41-00.log