2014-09-25 7 views
6

serwer SQL 2014, staram się wywołać skrypt SQL za pomocą wiersza polecenia:SQL: Błąd 997 podczas określania hasła w linii poleceń

~ osql -U sa -P passwd -i script.sql

i pojawia się komunikat o błędzie: Logowanie nie powiodło się dla użytkownika 'sa' OS błąd 997 Pokryw operacji i/o jest w toku.

Jednak kiedy uruchomić komendę w trybie interaktywnym:

~ osql -U sa -i script.sql

prosi o hasło i polecenie powiedzie. Czy ktoś może mi pomóc, jak uruchomić skrypty sql wyłącznie z linii poleceń bez interwencji użytkownika?

dzięki.

+3

Począwszy od SQL Server ** 2005 **, powinieneś zacząć używać 'sqlcmd' zamiast' osql' lub 'isql' .... –

+0

Czy w tle działasz jednocześnie w tle? – CJBS

Odpowiedz

3

Po prostu użyłem błędu 997, gdy używam także osql. Wygląda na to, że osql nieprawidłowo raportuje błędy, podając błąd 997 zamiast bardziej użytecznego błędu. Prawdopodobnie wynika to z tego, że jest przestarzałe.

W moim przypadku rzeczywistą przyczyną było ustawienie trybu uwierzytelniania serwera na "Tryb uwierzytelniania Windows" zamiast "Serwer SQL i tryb uwierzytelniania Windows". Można to zmienić, łącząc się za pomocą SQL Server Management Studio i przechodząc do właściwości najwyższego poziomu dla połączenia, a następnie wybierając stronę Bezpieczeństwo.

Dodatkowo musiałem włączyć logowanie sa, poprzez Bezpieczeństwo -> Loginy -> sa -> prawy przycisk myszy -> Właściwości w Eksploratorze obiektów, a następnie ustawienie logowania na Włączone przy użyciu strony Stan.

0

Też miałem ten sam problem. Próbowałem sqlcmd zamiast osql i dał mi bardziej zrozumiały błąd, w moim przypadku problem polegał na tym, że używałem niewłaściwego hasła do tej konkretnej bazy danych.

Moja rada jest taka, że ​​jeśli ktoś napotka podobny problem, użyj sqlcmd, który jest następcą polecenia osql. Użyj również -o, aby uzyskać plik tekstowy z wyjściem problemu.

1

To mi się przydarzyło, a sprowadzono do niewłaściwego hasła.

Powiązane problemy