SQLServerCentral Article

A First Look at SSMS 21

,

This isn't really a first look, per se. I've seen Erin Stellato present on this a few times in MVP sessions and at the PASS Data Community Summit. However, this is a look on my machine, where I'm in control. The new version preview was announced recently, and this looks at the new process to get this working, as well as a few thoughts on using it.

If you want to see the install, keep reading. If you really just want to see what's new, go to the Preview section.

Getting Started

The announcement gives a link to the install page. I'm going over this, as this is a big change for SSMS. The new version will use the modern Visual Studio shell, as opposed to an older 2015(?) one. This page has a lot, but for most of us, some of the items below don't matter, such as language packs. If that's important to you, write me an article on that. For me, I am mostly competent in English, but very slow in French and Japanese, and when I've used those versions, I spend more time deciphering things than working.

SSMS 21 Install Page TOC

Let's go through some of these steps and see how things work.

Check the Computer

I somewhat assumed my computer would run SSMS21, but when I first looked at this section, I was concerned. I saw Windows 11 first, and thought, I don't want to run that on my desktop. I don't, but if I read carefully, Windows 10 is supported.

SSMS Os requirements

I think I'm good, as I pressed Win+I, then typed About and got this item. You can see I have Windows 10 Pro

Local Windows version

Next the hardware requirements. These on the on the system requirements page. Again, I was concerned when I saw the ARM64 and ARM32 not supported.

Hardware needed

I have an AMD64 processor and it took me a minute to actually realize AMD <> ARM. ARM are the low-power tablet/laptop CPUs that will be supported at some point. Not now. If I check my specs, I think I'm fine. I have an x64 CPU, more than 4GB of RAM, lots of disk space, and my video runs at 1920x1080.

hardware specs

The other requirement is administrator rights, which I have. It's my machine, and I run as admin (with UAC enabled). I think I'm good.

Installation

If you click the download link on any of the pages, you get a small vs_ssms.exe application. It's 4MB. This is just the installer shell. If you've installed Visual Studio lately, this will seem familiar. If not, this is new. When I click this, I get a UAC dialog, then this:

VS installer

VS (Visual Studio) has it's own installer that runs separately from the program and manages some add-ins as well as patches/updates. When I click Continue, I see the "installing" dialog and the workloads chosen. In this case, it's just the SSMS 21 preview. Note, this needs 2.37GB of space.

SSMS 21 workload

Under the Individual components, I only see the help viewer, which I'll ignore.

component choices

Under Language packs, I see a lot, but I'm only doing English.

SSMS language packs

Lastly, we have the locations. There is a place to install the product, a cache and then a shared location. I'll leave these at defaults as a) I don't care and b) sometimes patches hard code these locations. They shouldn't, but sometimes they do. Not worth moving stuff, IMHO.

SSMS install locations

Once I'm done looking here, I click Install. This kicks off the install, which is slow for me. If you haven't installed VS, you new see the VS Installer, which manages the product. As with VS, the download exe is small, just to bootstrap the install. From there, the actual product is downloaded separately. As you can see below, this hasn't started. As I watch this run, it's coming down around 2MB/s, so not quick. I get faster downloads, so I'm not sure why.

Below the SSMS install, you can see I have existing VS installs already.

VS Installing

Here's an updated look at the process. As the bits are downloading, some are installing. As you can see, the inter-tubes are not running quick today.

installation progress

Fortunately, I have dogs that would appreciate a few throws of a ball, so I walked outside while this was downloading and made a phone call. Once done, I saw the completion message.

SSMS installed

After clicking OK, I can see all my installs, and I can click "Launch".

I also see SSMS in the Windows menu.

SSMS installs

Let's run this and see what's changed.

Note: If you have issues installing, there is a troubleshooting document.

Starting the SSMS 21 Preview

On first launch, I see this screen, asking me to log in. This is optional, but I like that I have choices between Microsoft and Github. I assume this is for the settings sync, as well as linking with Azure. Since I don't want to link this with all my Azure services, and because I have multiple accounts, I'll just choose GitHub.

ssms login

I missed the first screen, but a browser opened and GH asked me to verify I wanted to link my account to SSMS. I clicked the button and got a confirmation.

GH confirmation

Once that was complete, I now had this screen, which I've seen in previous SSMS installs. I like that I can import from multiple versions. I chose 19 since I use that the most, as all the RG tools worked there, so that's the one where my most recent settings are stored.

SSMS import settings

Once I clicked the import, I saw SSMS. This looks like what I expected, and it has my recent connection already set up. Note the preview in the upper right.

First look at SSMS 21

There is a new icon as well, which may take some getting used it. The icon on the far left is SSMS 20, which I happened to to be running. The one on the far right is SSMS 21.

icons in task bar

My first impressions on connection were that the Object Explorer was a bit snappier. It just seemed to respond better. When I compared it with SSMS 20, it's similar, but the shell feels slightly more responsive.

Most things are the same, we have an object explorer, we have query windows. So what's new. Here are a few things that occurred to me.

A Cleaner Look

In SSMS 20, I often see way more icons at the top than I use. Mostly I click about 6 buttons, but there are a ton of them added by default.

SSMS 20 icons

In SSMS 21, there are fewer, with the MDX/XMLA/etc. ones removed. The copy paste ones as well are gone, which cleans up the icon bars.

SSMS 21 icons

Searching

Another thing I noticed was the Search drop down added to the top. In v20, there is an edit box next to find, where I can type something, however it doesn't work smoothly. I can click find, and if I find code, I get a dialog to enter something. I do that and click Find All.

find dialog

I get a separate window at the bottom (for me) with results. I can click on any lines, it goes to that line in the query window, bringing that to the forefront.

find results

The line is also highlighted. Note, the results are hidden when I click as well.

clicking on find results

In SSMS 21, I have a search drop down at the top. If I click this, it opens the feature search, but if I click the drop down, I get a choice. This also lists the shortcuts, which I have a problem with. I think I have another program using CTRL+T, which is what I might use often. Once SQL Prompt and SQL History work, I'll likely use those instead.

SSMS search option

The Feature Search is good for understanding how to do things. For example, if I search for "comment", I see a lot of results, including the shortcut.

feature search of comment

The code search is for looking in your code. If I want to see where I have insert statements, I can enter that and I see the various matches, with the line where the match takes place. If I click on a line, I get the view of the code in the file with the code above/below this.

code search results

There are also some filtered searches, for example, using f: searches in file names. If I type "audit" I only see the files with audit in the name.

searching file names

The types (t:) and members (m:) look like leftovers from the VS code interface for C# and other OOP languages. We don't really have types and members, but I could see this useful for datatypes of other strange things (like find where I am working with procs. We'll see if that works.

type search not working

If you click on one, like members, you can see this is likely something inherited from the shell.

member search description

The text (x:), appears to be the normal, default search. Here I am searching for errors with the x: filter.

and here I've removed it. This looks like the same search to me.

text search

As with SSMS 20 and previous, you can also limit your search in different ways. The project/document/solution drop down is in the upper right.

search limits

This entire dialog is moveable, so it can be placed on a separate monitor. That's not new, but glad things still work like this.

The find/replace dialog is the modern VS one, and it works like things did in V20, though with more options and a cleaner look.

find dialog

Tabs Arrangement

This is one of the big changes for SSMS 21. In v20 and below, I could drag drop a tab into it's own window, or a vertical/horizontal window, but my tab arrangement was always at the top. In my old v20, here I have 3 in one vertical tab and 1 in another.

v20 tab arrangement

In the new v21, I have other options. In the upper right, where the drop down is to see all tabs, I have a gear icon as well. If I click this, I see lots of options.

tab options

The multiple rows is nice. Clicking that gives me this.

tab optionsThis might be annoying and it seems like a lot of space. However, if I put the cursor in the list of tabs, my scroll wheel will alternate between 1 row and multiple ones. That I like.

I can also move tabs. For example, I rarely have anything on the right, other than the map of code. If I move tabs to the right, I see this.

no tabs on right

Hmmmm, that's not right. It's not on the right and it's not the behavior I expected. I can change this in the Environment/Tabs and Windows settings, but neither right nor left work. I reset this back to the top so I can see the gear icon.

tab options settings

I restarted and now this is working. Not sure what caused this, but I suspect just some transient error from a new install. No idea how that happens, but software can be maddening. In any case, I can see my tabs on the right. I don't know if I like this, but it is an option:

query tabs on right

I don't seem to be able to change sorting or add a regular expression for colorizing. I did create a solution and a couple projects, however to test colorization.

Just kidding, I can't seem to create a solution or project. Interesting.

no new project or solution type.

I'm sure that's me, but I'll have to experiment more.

I did open a number of files, and as you can see, the files are colorized by extension.  The colors are hard to discern, but I haven't seen a way to customize this (yet).

colors for file types.

One interesting thing as I work with code is that the new SSMS expects me to work in version control with git. Let's explore.

Git Integration

It was possible to get other versions of SSMS to work with Git, but it wasn't easy.

In SSMS 21, this is easy. For example, let me open a folder with a bunch of scripts. By default, when I click open folder, this uses the VS default of going to my user folder and the source\repos folder under here. I can see my VS projects here.

default open location

I tend to keep things in a git folder under my documents, just out of habit, so I open that. When I do that, I see my folder in the Solution Explorer, which I'd see in v20.

code in solution explorer

However, notice that each item is locked. If I change the first file, then the icon changes to a red check mark, an indication of change. In fact, the 20-audit.sql script also has this. If I right click a file, I see a number of options related to git, which is new. I can commit, stash, etc. here.

git file options

One great thing is that I know what change I just made to the 01 file, but what about the 20 file? I can't remember changing that. However, if I pick the Compare with unmodified, I can see the changes in a diff viewer. Note the tab is on the right side and says "diff-20.audit.sql". That's very handy and I remember this change now.

diff view of file

This isn't going to be an exhaustive view, but I can make commits in SSMS now.

commit dialog

Caveat, VS appeared to add some things to my repo, which I can't commit. I get a git error, both in SSMS and at the CLI, so I need to determine what's wrong here.

commit error

Dark Mode

The last thing I want to cover here is dark mode. I know a lot of people have asked for this for a long time. It's not a big deal to me, but it's not a real dark mode.

How do you enable it? Use Search. I searched and double clicked the first entry, and viola, dark mode.

dark mode

It's everywhere. Well, everywhere-ish. Still some things to fix.

dark mode with non dark mode

I found a bunch of pop up dialogs that are still light, but hey, I can submit feedback.

feedback page

Conclusion

Overall, this feels like a minor upgrade to me. It is also a little buggy, but I know these are early days. Over time, I think this move will greatly improve the way SSMS works, and we'll get more options for how things work. At the same time, we'll get more updates. Not only SSMS updates, but VS updates will come, so we might be changing SSMS more often.

One thing I am looking forward to is the ability to make real add-ins, not hacked ones as SQL Prompt is for now. I don't know when Prompt will have a VS 21 add-in, but we already do some of this work for VS, so I expect in the next month or so we'll start to see a preview Prompt for Preview SSMS 21.

 

 

 

 

Rate

5 (4)

You rated this post out of 5. Change rating

Share

Share

Rate

5 (4)

You rated this post out of 5. Change rating