Nie można zmusić SQLCMD do działania niezależnie od tego, co próbuję

10

Bez względu na to, co robię, nie mogę uruchomić SQLCMD. Próbuję uruchomić skrypt o rozmiarze ponad 200 MB i nie można go uruchomić z aplikacji serwera SQL, więc muszę to zrobić za pomocą SQLCMD, jednak za każdym razem, gdy próbuję się zalogować lub uruchomić skrypt, natychmiast się zamyka.

Śledziłem narzędzie sqlcmd przez msdn.

Próbowałem go zmienić za pomocą zaufanego polecenia SQLCMD -EI:

Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Named Pipes Provider: Could not open a connection to SQL Server [2]. .
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Login timeout expired.
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online..

Próbowałem za pośrednictwem jawnego serwera, nazwy użytkownika i hasła:

C:\Users\MyUserName\Documents>SQLCMD -S DESKTOP-1N3OD6V\SQLEXPRESS -U DESKTOP-1N3OD6V\MyUserName-P MyPassword
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Login failed for user 'DESKTOP-1N3OD6V\MyUserName'..
TheAkhemist
źródło

Odpowiedzi:

23

SQLCMD, po wywołaniu bez podania nazwy serwera, próbuje połączyć się z domyślną instancją na komputerze lokalnym. Jeśli go nie masz, wyświetla pierwszy wyświetlany błąd. Użyj tego -Sparametru, aby określić nazwę serwera.

Aby korzystać z uwierzytelniania systemu Windows, użyj -Eflagi i nie musisz podawać nazwy użytkownika ani hasła.
Przykład: SQLCMD -Smyserver\myinstance -E

Aby użyć uwierzytelniania programu SQL Server, użyj parametrów -Ui -P, aby podać poświadczenia.
Przykład: SQLCMD -Smyserver\myinstance -UsomeUser -PhisPassword

Jeśli określisz -U, nie możesz użyć nazwy użytkownika systemu Windows: dotyczy to logowania do SQL Server. Jeśli chcesz podszyć się pod innego użytkownika systemu Windows, najpierw uruchom wiersz polecenia, podszywając się pod tego użytkownika.

Przykład:

  1. Otwórz wiersz polecenia
  2. Rodzaj runas /USER:domain\username cmd
  3. Wpisz hasło dla swojego użytkownika
  4. Biegać SQLCMD

Możesz osiągnąć ten sam wynik, klikając prawym przyciskiem myszy link do cmd i wybierając „Uruchom jako inny użytkownik ...”

spaghettidba
źródło
To właśnie uratowało mi długą noc przeszukiwania Internetu. Dziękuję Ci!
Rhys Johns
Spędzony wiek próbuje to rozwiązać. Dziękuję Ci!
Joel Murphy,