2013-01-14 10 views
7

Próbuję skonfigurować harmonogram uruchamiania procedury składowanej co godzinę w Harmonogramie zadań systemu Windows (ponieważ używam programu SQL Express i nie można instalować narzędzi innych firm), ale po wypróbowaniu różnych metod, takich jak uruchamianie pliku .bat z harmonogramu zadań, otwieranie narzędzia SqlCmd z harmonogramu zadań i przekazywanie składni wiersza poleceń lub pliku skryptowego .sql, nie mam szczęścia.Wykonywanie procedury składowanej przy użyciu zadania Windows Scheduler

Wiem, że można to zrobić, a zatem jestem pewien, że jest to coś, za czym tęskniłem, ale jeśli ktoś może podzielić się z tym doświadczeniem, bardzo bym to docenił.

Thanks a lot

+1

Używanie sqlcmd wygląda na nadający się do użytku. Dlaczego zawiodłeś na tym? –

+0

Wygląda pomocniczo: http://stackoverflow.com/questions/3794897/need-help-to-write-bat-file-that-execute-sql-scripts-in-sql-server-2008-and-ano – sgeddes

+0

A co z plik .bat do uruchomienia SQLCMD nie działa? Podaj nam szczegóły. – Mark

Odpowiedz

9

Jeśli jesteś adminem na instancji SQL (Ponieważ używasz SQLEXPRESS Założę się, że starają się to zrobić na własnym komputerze, więc istnieje duża szansa, użytkownik jest administratorem sql) nie powinieneś używać -E, po prostu zignoruj ​​to.

Po drugie, określ serwer, nawet jeśli pracujesz lokalnie.

zacząć od prostego polecenia SQL jak poniżej:

sqlcmd.exe -S "" -d MY_DATABASE -Q "SELECT * FROM MY_TABLE"

Wymień MY_DATABASE i MY_TABLE z dbname i nazwy tabeli. Upewnij się, że możesz uruchomić go z wiersza poleceń. Powinien zwrócić dane z twojego stołu. (Uwaga, że ​​opcje linii poleceń uwzględniają wielkość liter, więc -s nie są takie same jak -S)

Nie próbuj podawać parametrów za pomocą terminarza zadań. Umieść polecenie ze wszystkimi parametrami w pliku .bat i po prostu uruchom partię z harmonogramu zadań.

+0

Nie Zdalnie łączyłem się z komputerem, na którym znajduje się serwer SQL, nie próbując robić tego lokalnie. Podam twoje sugestie, ale jeśli chodzi o plik wsadowy - jak by wyglądał ten plik? – richardterris

+1

SQLExpress jest skonfigurowany do domyślnego odmawiania połączeń zdalnych. Czy na pewno możesz połączyć się z tym zdalnym SQLExpress z twojego komputera? Możesz spróbować z Management Studio na przykład –

+0

Tak Mogę połączyć się z nim ze studia zarządzania na mojej maszynie – richardterris

-1

Niedawno miałem podobny problem i moje doświadczenie może ci pomóc. Dzwoniłem do małej aplikacji, np. EXE, z pliku wsadowego. Planowałem uruchamianie pliku wsadowego z Harmonogramu zadań systemu Windows. Aplikacja uzyskała dostęp do danych SQL przy użyciu uwierzytelniania systemu Windows. Mogę uruchomić aplikację bezpośrednio, tj. Kliknąć plik EXE, aby go uruchomić. Mogę uruchomić aplikację z pliku wsadowego. Ale jeśli próbowałem uruchomić zaplanowane zadanie, zdawało się, że to się zaczęło, ale nic nie zrobiłem i nie napisałem żadnych błędów, które mogłem znaleźć. Znalazłem, jeśli zmieniłem aplikację, aby działała z uwierzytelnieniem SQL, można uruchomić z Harmonogramu zadań.

Podejrzeń, że jest coś w kontekście uwierzytelniania systemu Windows, gdy jest uruchamiany z Task Scheduler, który nie jest rozpoznawany przez SQL.