Ten SSMS Settings Worth Changing on Day One

SSMS settings change what you see, what you save, and how easily you notice the wrong connection. I review these ten choices before settling into a new installation, then test them in a disposable query window.

A small desk organizer holds neatly arranged pencils beside a plain adjustable reading lamp.

Make the Connection Hard to Miss

First, use connection colors to distinguish environments. Pick a consistent color for production and apply it when registering or opening connections. A color is a reminder, not access control. You still need permissions and an execution habit that make accidental changes harder.

Second, configure tab text to show useful connection context, including server and database names where your SSMS version supports it. A row of tabs called SQLQuery followed by numbers tells you very little. Keep the names visible enough to read without hovering.

SELECT
    @@SERVERNAME AS server_name,
    DB_NAME() AS database_name,
    ORIGINAL_LOGIN() AS original_login;

Run this before a consequential command. Compare the result with the task you intended to perform. Neither tab labels nor connection colors prove that an alias resolves where you expect. The server can tell you which connection you actually opened.

Make the Editor Easier to Read

Third, enable line numbers in the text editor options. They help when discussing an error or reviewing a procedure with another person. Remember that a reported error line can be relative to a batch or procedure. The visible document line isn’t always the same coordinate.

Fourth, choose a readable editor font and size. Set it for the screen you use, not for fitting the most characters into a screenshot. Distinguish punctuation clearly. A comfortable font prevents more mistakes than squeezing another long expression onto one line.

Use the Options search if your version has moved a setting. SSMS releases don’t all arrange the dialog identically. Open a new query window after changing defaults and verify the result. Existing windows can retain settings from when they were created.

Control What the Results Show

Fifth, review maximum characters retrieved for Results to Grid. A truncated cell can look like truncated database data when you forget the display limit. Don’t raise every limit without reason. Large values also consume client memory and make the grid harder to handle.

Sixth, choose whether copied or saved grid results include column headers. Headers make a result understandable after it leaves SSMS. When passing data to another tool, confirm the expected format instead. A heading row accidentally loaded as data creates a different afternoon.

SELECT
    REPLICATE(CONVERT(varchar(max), 'x'), 9000) AS sample_text,
    DATALENGTH(REPLICATE(CONVERT(varchar(max), 'x'), 9000)) AS stored_bytes;

This generates an intentional example rather than reporting a measured application result. Compare the value’s byte length with what the grid displays and copies. A display limit doesn’t change the underlying expression. Test the export path too before trusting a visual inspection.

Choose Execution Behavior Deliberately

Seventh, review the execution timeout for query windows. Zero means no timeout in this setting. A finite value can interrupt an investigation or maintenance statement you intended to finish. Choose deliberately and distinguish this client timeout from SQL Server’s remote query timeout.

Eighth, learn the Include Actual Execution Plan toggle, normally Ctrl+M. Enable it when you need runtime plan information. The query still executes, including writes. An actual plan isn’t a harmless preview of a statement you aren’t ready to run.

SET STATISTICS IO ON;
SET STATISTICS TIME ON;
SELECT name FROM sys.databases ORDER BY name;
SET STATISTICS TIME OFF;
SET STATISTICS IO OFF;

Use a harmless query to check the Messages and plan tabs. Review the reported values on your instance without treating this exercise as a benchmark. Turn off diagnostic options when you no longer need them. Extra output is useful only when someone reads it.

Keep Multi-Server Results Identifiable

Ninth, review multi-server result options before using a Registered Servers group. Include server names in combined results. Decide whether errors from a failed connection should remain visible. A clean-looking result from some servers isn’t proof that every server answered.

Start with a read-only identity query against a small known group. Confirm which servers received it and how failures appear. Don’t use a write statement as your first test of group execution. One mistaken connection is enough work without distributing it.

Protect the Text You Are Writing

Tenth, review AutoRecover under the environment options. Set a recovery interval and retention period that fit your work. Recovery information can help after an abnormal exit, but it isn’t the same as saving a named SQL file. Save important changes yourself.

Keep scripts in an approved local location and give them names that describe their purpose. Test recovery behavior with disposable text if you depend on it. Then export or record your chosen settings so the next installation doesn’t require rediscovering every preference.

I don’t expect settings to make a session safe by themselves. They make useful evidence visible and reduce avoidable confusion. The final check still belongs to you: the connection, the statement, and the scope of its effect.

An SSMS preference is not a safeguard by itself, it is a reminder you should be able to see.

This post was rewritten from scratch in September 2026. The original, published on 2019-04-29, was a short announcement about something that no longer exists. The address is the same, the subject is now something worth keeping.

Published by Pinal Dave on SQLAuthority. More of my work at pinaldave.com.

Best Practices, Database, SQL Scripts, SQL Server
Previous Post
SQL SERVER – Docker Volume and Persistent Storage
Next Post
SQL SERVER – Global Variable @@DEF_SORTORDER_ID – Old and May be Deprecated

Related Posts

2 Comments. Leave new

  • Hi Pinal,

    Thanks for the post. I have installed SSMS 18.0 and spent some time on exploring the new features. Below are my observations.

    1). Database diagrams are not there.
    2). SSMS is hanging while i was using Adventure works. i had to close and re open SSMS. ( I have 1 TB Hard disk and 8 GB RAM) i am not sure whether we need to have better configuration for SSMS 18.0

    Just sharing my thoughts here.

    BR
    Narendra

    Reply
  • Pinal. It installs NF 4.7.2 if you don’t have it already installed as well as ODBC 17.3.1.1

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.