blog.back_article_list

SQL Server Management Studio setup and alternatives

SQL Server Management Studio setup and alternatives

Updated and tested 4 October 2026

Two things changed in the SQL Server tooling picture inside a year, and both of them break habits people have carried for a decade. SSMS no longer arrives as a standalone installer you download and double-click. It comes through the Visual Studio Installer. Azure Data Studio, which was Microsoft's answer for anyone not sitting at a Windows machine, hit end of support on 28 February 2026 with no more updates and no more security fixes.

So "what do I use to connect to SQL Server" has a different answer in 2026 than it had in 2024, and the answer depends on which operating system you are sitting at. Worth going through the options properly. Habit will point you at a download that no longer exists.

MSSQL Management Studio: installing SSMS 22 from the Visual Studio Installer

SSMS 22 is the current release. There is no standalone setup executable any more, so you start by pulling down a small stub from Microsoft:

https://aka.ms/ssms/22/release/vs_SSMS.exe

Microsoft's install page walks the same path with screenshots, and it covers the offline layout option for a target machine with no internet access. Running vs_SSMS.exe hands off to the Visual Studio Installer, which handles the download, the component selection and every update from that point on. If Visual Studio is already on the machine, SSMS turns up in the same installer interface next to it.

The upside is real. Patching SSMS becomes the same operation as patching everything else Microsoft routes through that installer, and the version you are on stops being a mystery. The downside is that a tool plenty of DBAs used to drop onto locked-down jump boxes now drags installer machinery along with it, and some change control processes are going to have opinions about that.

SSMS 22 system requirements

Windows only, 64-bit only. There has never been a macOS or Linux build of SSMS and there is not one coming, which is worth saying plainly because it will not change. It wants .NET Framework 4.8, and the supported platforms are Windows 11 along with Windows Server 2019, 2022 and 2025. SSMS 22 also added initial support for Windows on Arm64. I have had it in front of me on an Arm laptop for about one afternoon in total, so take the Arm64 line as Microsoft's claim and not as a report from me.

Connect to a SQL Server instance for the first time

Server name forms

The Server name box in the Connect to Server dialog accepts more forms than the placeholder text suggests, and picking the wrong one is behind a startling share of first-connection failures.

  • localhost or a bare . for a default instance on the same machine. The single full stop is valid and it is two fewer keystrokes.
  • SERVERNAME for a default instance elsewhere, resolved by DNS.
  • SERVERNAME\INSTANCE for a named instance. This form needs the SQL Server Browser reachable over UDP 1434, and when it is not you get error 26.
  • SERVERNAME,1433 to give an explicit port. Comma, never a colon. It skips the Browser entirely, which is why an explicit port number is what I type for anything reached across a network.
  • SERVERNAME\INSTANCE,1435 if you want to name the instance and pin the port at the same time.

Error 18456 is where you land once the server name is right and the credentials are not. The client is deliberately told nothing useful, so you need the server's error log to find out which of the dozen reasons applied, and on a machine somebody else owns that can be the slow part.

What sits behind the Options button in the Connect to Server dialog

The dialog opens with four controls: Server type, Server name, Authentication and, for SQL Server Authentication, a login and password with a Remember password tick. The Options button expands it into tabs. Connection Properties holds the database to connect to, the network protocol, the network packet size in bytes, the connection and execution timeouts in seconds, the two encryption controls and Use custom color. Always Encrypted holds the column encryption setting and the enclave attestation URL. Additional Connection Parameters is a free text box whose contents get appended to the connection string. There is no OK button on the expanded pane; Connect at the bottom applies whatever the tabs are set to.

Encrypt and Trust server certificate

These two matter far more than they did a few years ago, because the client stacks underneath flipped their defaults. ODBC Driver 18 changed Encrypt from no to yes. Microsoft.Data.SqlClient made it true in version 4.0. A SQL Server instance using the self-signed certificate it generated for itself at install time fails the resulting check, and what you see is a complaint about the certificate chain being issued by an authority that is not trusted.

Two ways out in the dialog. Tick Trust server certificate and you get encryption on the wire with no verification of who is on the other end, or install a certificate the client already trusts, which is the answer for anything carrying real data. Trusting blindly is fine on a lab box you reached through an SSH tunnel and wrong across the open internet.

That same decision is TrustServerCertificate=True in a connection string, and it explains most of the connections that worked last year and stopped working this year. One exception to know about: on Microsoft.Data.SqlClient 5.0 and later, setting Encrypt=Strict makes the client ignore TrustServerCertificate completely and validate the certificate regardless.

Object Explorer basics

The tree itself is fixed. Under a server node you get Databases, Security, Server Objects, Replication, PolyBase, Always On High Availability, Management, Integration Services Catalogs and SQL Server Agent, in that order, with Agent missing on Express because Express has no Agent. Under a database you get Database Diagrams, Tables, Views, External Resources, Synonyms, Programmability, Service Broker, Storage and Security.

Most of the value hides in two features nobody points out. Right-click a table and Script Table as writes CREATE, SELECT, INSERT or UPDATE scaffolding straight into a new query window, which beats typing a forty-column list by hand and beats getting one of the forty wrong.

F7 is the other one. It opens Object Explorer Details, a sortable grid of whatever node you have selected, and it is the fastest way to find the biggest tables in a database or every stored procedure touched this month. The filter icon on a folder node is worth finding too. On a database with four thousand tables, filtering Tables by schema or name substring turns an unusable tree into a usable one.

SSMS options to change after install

Four things I change on every fresh install, all of them under Tools then Options.

Results to grid or results to text. Grid is the default and it is right for browsing. Ctrl+T switches the current window to text output, Ctrl+D switches it back, and text is what you want when you are pasting output into a ticket or diffing two result sets. While you are in Query Results, Results to Grid, tick "Include column headers when copying or saving the results", because losing your headers on the way into a spreadsheet is a small daily irritation with a one-time fix.

Line numbers. Text Editor, Transact-SQL, General, tick Line numbers. SQL Server reports errors by line number and counting them by hand in a three-hundred-line script wastes a perfectly good afternoon.

Prevent saving changes that require table re-creation. Designers, Table and Database Designers. It is on by default and it is why the table designer refuses to save a column reorder or a type change, with a message about saving changes not being permitted. Most guides tell you to turn it off. I leave it on and write the ALTER TABLE statement by hand, because what the designer does behind that setting is create a new table, copy the data across, drop the original and rename. On a large table that is a long exclusive lock and a lot of log.

A connection colour per environment. In the Connect to Server dialog, Options then the Connection Properties tab, there is Use custom color. Red for production, nothing for everything else. The status bar of every query window on that connection picks up the colour, and it costs ten seconds once to stop a DELETE landing in the wrong place forever.

The colour picker in that dialog is the old Windows one, sixteen basic swatches with a custom panel behind them, and it has survived several SSMS redesigns without anyone modernising it. It is the only place in the product where you meet it. I have no idea why it is still there. Anyway.

All of these are per-user and per-machine, so a new laptop starts from the defaults again.

Azure Data Studio is retired, use VS Code with the MSSQL extension

Azure Data Studio reached end of support on 28 February 2026. No further updates, no security fixes, including for the Electron and Node dependencies it is built on. If it is still on a machine you use for admin work, it is a frozen client holding credentials to your databases, and it should come off that machine.

Microsoft's replacement is Visual Studio Code with the MSSQL extension, and the extension has grown well past the syntax highlighting and query window it started as. Schema Compare, a schema designer, a table designer, a query plan visualizer, backup and restore, DACPAC and BACPAC handling, a query profiler, SQL notebooks, local SQL Server containers and database object search are all marked GA. GitHub Copilot integration is in there as well, including inside the schema designer, which you can take or leave.

It runs on macOS across Intel and Apple Silicon, on Linux x64 and Arm64 and on Windows 10 and 11. That is the gap SSMS has never filled, and for a lot of people it settles the question on its own.

DBeaver as a cross-platform client

DBeaver is what sits on my second monitor most days, because a normal week has me moving between SQL Server and PostgreSQL and one client with one set of keyboard shortcuts saves more time than any single feature either dedicated tool has. It is Java, it runs on everything and its SQL Server connections go through the Microsoft JDBC driver.

Same encryption story here as everywhere else, incidentally. The JDBC driver made encrypt default to true in version 10.2, so a self-signed instance needs trustServerCertificate set in the driver properties before it will connect.

Setting a default schema in DBeaver

This question comes up constantly and the popular answer to it is wrong. DBeaver's active schema dropdown, the one sitting in the toolbar, changes what the editor displays and what autocomplete prefers. It does not change how SQL Server resolves an unqualified object name. Set the dropdown to Sales, run SELECT * FROM Orders and the engine still looks in your user's default schema and then in dbo, exactly as it did before you touched the dropdown.

Default schema is a server-side property of the database user, set per database:

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;

Run that statement in the database you care about, reconnect and unqualified names start resolving where you expect. Qualifying every object name with its schema in anything you save to a file is the better habit anyway, since a two-part name removes the ambiguity for the engine and for the next person reading the script.

Which SQL Server client to use

MSSQL Studio is not a product name. People typing it into a search box mean SSMS most of the time and one of the cross-platform clients the rest of the time, so here is the split I would hand someone starting today.

On Windows doing administration work, SSMS 22. Nothing else matches its maintenance plan editor or the sheer depth of what sits behind a right-click, and every SQL Server answer written on the internet assumes you are looking at it.

On Windows writing application code, VS Code with the MSSQL extension, in the same window as the rest of the project. Alt-tabbing to MSSQL Server Management Studio to check a column type and back again is friction you can delete.

On macOS or Linux, VS Code with the MSSQL extension, plus DBeaver if your week involves other database engines too. Do not reach for Azure Data Studio out of habit. It is gone.

On a headless server there is still sqlcmd from the mssql-tools18 package, sitting in /opt/mssql-tools18/bin and staying off your PATH until you put it there. On mssql-tools18 the -N flag defaults to mandatory encryption, a change from SQL Server 2022 and earlier, so a first connection to a self-signed instance wants -C to trust the certificate or -No to make encryption optional. Same argument as the checkbox in the dialog, thirty years of user interface apart.

Questions?

Is SQL Server Management Studio free?

Yes, Microsoft's SSMS FAQ says it is free for personal or enterprise use. SSMS 22 has its own license terms and needs no Visual Studio subscription, even though it installs through the Visual Studio Installer. The SQL Server it connects to is licensed separately, by edition.

About the author

Oliver P. Redmond

I studied history and, for a while, expected to end up in archives (or academic publishing). Instead I took a copy-editing job with a small specialist publisher, learnt rather more about XML than the job description had implied and gradually found myself editing software manuals. Naturally, technical writing followed from there.

What I like about infrastructure is the accumulated quality. A modern service may have an elegant interface sitting on top of conventions and protocols that are sometimes older than the person using it. And so, understanding a system often means following those layers backwards. I write mostly about Linux systems, virtual machines and storage. I live in Bristol and still use a fountain pen for notes.

Deploy your next project in seconds

Bring your winning ideas online faster, with modern hardware and unmetered bandwidth. Join a European cloud trusted by thousands of developers and businesses worldwide.