sql >> Databasteknik >  >> Database Tools >> SSMS

Fjärranslutning till MS SQL - Fel vid användning av pyodbc vs framgång med användning av SQL Server Management Studio

"Men varför ...?"

För dem som är intresserade av varför SQL Server Management Studio (SSMS) kan ansluta till servername\instance medan andra applikationer (som våra pyodbc-appar) inte kan, beror det på att SSMS håller en MRU-lista (Most Recently Used) över portnummer i Windows-registret på

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib\LastConnect

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSSQLServer\Client\SuperSocketNetLib\LastConnect

Varje MRU-post (registervärde) ser ut ungefär så här:

Name: PANORAMA\SQLEXPRESS
Type: REG_SZ 
Data: -1006030326:tcp:PANORAMA,52865

När SSMS framgångsrikt har anslutit med instansnamn via SQL Browser-tjänsten på fjärrdatorn, kan den fortsätta att ansluta med instansnamn även om SQL Browser inte längre körs på fjärrdatorn, förutsatt att portnumret inte har ändrats. Appar som inte använder den här MRU-listan (som vår pyodbc-app) måste ha SQL Browser-tjänsten körd på fjärrdatorn varje gång de vill ansluta med instansnamn.

Det vanligaste scenariot:

  • Jag vill ansluta till YOUR-PC\SQLEXPRESS . Jag försöker göra det från SSMS på MY-PC , men det fungerar inte eftersom SQL-webbläsaren installerades med "Startläge" inställt på "Manuell" på YOUR-PC .
  • Jag ber dig att starta SQL Browser-tjänsten på YOUR-PC , och du är vänlig, men du startar bara tjänsten och glömmer att ändra inställningen "Startläge" till "Automatisk".
  • Jag kan ansluta via SSMS (som cachar YOUR-PC\SQLEXPRESS port i MRU). Min python-app kan också ansluta.
  • Efter nästa gång YOUR-PC startar om, jag kan ansluta via SSMS (via MRU) men min python-app kan inte (eftersom SQL Browser-tjänsten inte längre körs på YOUR-PC ).


  1. Hur kan jag använda SQLCMD med Windows-autentisering (-E,) men utan förhöjda behörigheter

  2. Kopiera ett stort fält (varbinary(max)) till fil/urklipp

  3. MySQL:Hur ställer jag in den primära nyckeln på phpMyAdmin?

  4. Dela upp ett enstaka fältvärde i flera kolumnvärden med fast längd i T-SQL