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.
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.
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
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.
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.
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 (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.
Under the Individual components, I only see the help viewer, which I'll ignore.
Under Language packs, I see a lot, but I'm only doing English.
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.
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.
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.
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.
After clicking OK, I can see all my installs, and I can click "Launch".
I also see SSMS in the Windows menu.
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.
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.
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.
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.
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.
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.
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.
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.
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.
The line is also highlighted. Note, the results are hidden when I click as well.
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.
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.
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.
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.
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.
If you click on one, like members, you can see this is likely something inherited from the shell.
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.
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.
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.
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.
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.
The multiple rows is nice. Clicking that gives me this.
This 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.
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.
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:
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.
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).
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.
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.
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.
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.
This isn't going to be an exhaustive view, but I can make commits in SSMS now.
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.
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.
It's everywhere. Well, everywhere-ish. Still some things to fix.
I found a bunch of pop up dialogs that are still light, but hey, I can submit feedback.
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.