Sql-server – Recovering from: A transport-level error has occurred when sending the request to the server in SSMS

sql-server-2008ssms

Every now and than I loss the connection in SSMS and get the message

Msg 121, Level 20, State 0, Line 0
A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The semaphore timeout period has expired.)

The annoying thing is, that the button to change the connection ("Verbindung ändern" for me) is inactive, and I have to open a new tab, open the connection and copy the contents of the inactive window to it.

Is there a better way to handle this situation?

Best Answer

In 2005 at least, hit F5 to re-run your query. SSMS will determine it is no longer connected and then prompt you to reconnect. If I recall correctly, 2005 will put you back into the same database while 2008 puts you into your default catalog. A second execution of F5 will actually run the command. I've never had a semaphore timeout but it works for other disconnect scenarios.