You’ve submitted thousands of bug reports and feature requests at feedback.azure.com, and here’s what you’ve voted as the top 10 requests right now:
#10: MIN/MAX as non-aggregate functions. PostgreSQL and Oracle have the GREATEST/LEAST functions that work like COALESCE, allowing you to pass in a list of values and get the top or lowest. Sounds nifty.
#9: SSMS keyboard shortcut to execute the current statement. Azure Data Studio has this and I love it so much.
#8: Better NoSQL functionality. Okay wait hold on, before you throw birds at the screen, they’re talking about how the world’s standards for XQuery, XPath, and XSDs have moved on since SQL Server first implemented those features. Alright, now you can throw birds.
#7: Support DISTINCT for STRING_AGG. Going by the notes in the request, it sounds like MySQL does this, and so when people come over from MySQL, they’re surprised at how much harder this task is in SQL Server. I honestly never noticed.
#6: Run CHECKDB automatically in the background. Despite the best efforts of the blogosphere, too many people just don’t check their databases for corruption. I get it – it’s not part of SQL Server’s defaults, it’s not a setup option, you have to learn about it to understand the risk, and Microsoft is never going to mount a user education campaign talking about how many corruption bugs SQL Server has. Instead, Microsoft just has to start fixing the problem by making databases more reliable.
#5: Add row position column to STRING_SPLIT. When you split a string with STRING_SPLIT, you get a table with the values, but they’re not guaranteed to be in order. Sometimes you really need to know the order when you’re processing a list.
#4: Add an SSRS ReportViewer for ASP.NET Core. It’s been marked as “under review” for over 3 years, but I have a pretty bad feeling about this. SQL Server Reporting Services strikes me as an NPC these days, with Power BI taking the new starring role. I wouldn’t expect SSRS to get a whole lot more development.
#3: Restore a table from backup. I really, really want this one because it’s the most common reason that we have to do restores: someone dropped a table or hosed up its contents.
#2: Put the Debugger back into SSMS 18. When Microsoft removed database diagrams and the debugger, I had a little fun with the blog post announcement, kicking those two features in the teeth. (I like using extreme announcement tactics on not-really-extreme things sometimes.) I’m completely ambivalent about those two features, though.
And your #1 top-voted request: Dark Mode for SSMS. And bad news, Microsoft has marked this as “Unplanned”, writing:
Unfortunately the complexity to implement dark mode into SSMS v18 is prohibitive and this item remains unplanned. Regular updates and improvements to SQL Server Management Studio are continuing, but most of the net new innovations in the graphical tooling space can be expected to be seen in Azure Data Studio.
You can kinda get dark mode with this workaround, and it’s a bummer that we’re so close but yet so far away.
For the longest time, I thought the dark mode request was dumb. Sure, I use dark mode on most of my apps, but I thought it was frivolous to ask for dark mode support in SSMS when that tool gets so little love. If Microsoft is going to allocate developer time to SSMS, I wanted real, meaningful improvements – not dark mode.
Then someone casually said to me, “You can tell that SQL Server and Azure SQL DB are legacy databases because SSMS doesn’t even have dark mode. Even our IBM mainframe development app has dark mode.”
Okay, that stung a little. It’s wrong…but it still stung.
I mean it is wrong, right?
45 Comments. Leave new
Aaron Bertrand posted his dark mode as zip in 2015: https://www.sentryone.com/blog/aaronbertrand/making-ssms-pretty-my-dark-theme
This is for fonts and colors, not UI.
Debugger is worth more than SSMS at this point
Aaron Bertrand has saved many an eyeball from being scorched staring at the stark white background of an SSMS window. Why M$ doesn’t think dark mode is a good idea, is beyond me. I guess they figure the more old time DBA’s they can blind the more young DBA’s will have to take their place and then they can more easily mold them into drones advocating for everything they don’t want to fix.
I really want to be able to restore a database without the blank space, ie shrinked already.
Looks like #10 (GREATEST/LEAST) has been done (but not documented yet as far as I can tell).
https://www.reddit.com/r/SQLServer/comments/k0dj2r/what_the_heck_when_did_sql_server_start/
Works in Azure SQL Database & Azure SQL Managed Instance, but not on-prem [2019 (RTM-CU10)].
They did document it:
https://feedback.azure.com/forums/908035-sql-server/suggestions/32902729-max-min-as-non-aggregate-function
https://docs.microsoft.com/en-us/sql/t-sql/functions/logical-functions-greatest-transact-sql?view=sql-server-ver15
In Azure SQL Database, it seems to work in user databases, but not in master. Strange.
https://docs.microsoft.com/en-us/sql/t-sql/functions/logical-functions-least-transact-sql?view=sql-server-ver15
They just (2 h ago) added a comment to the suggestion, that it now works on Azure and will be added to the next SQL Server version (maybe 2022 :-))
Thanks. Glad it’s documented.
It also works in master for me.
I used:
SELECT GREATEST(1,2,3) AS [GREATEST], LEAST(1,2,3) AS [LEAST]
How to rollback accidentally deleted row from azure database ?
You could make use of Temporal Tables.
https://docs.microsoft.com/en-us/sql/relational-databases/tables/querying-data-in-a-system-versioned-temporal-table?view=sql-server-ver15
I am surprised fixing Intellisense is not in the top ten. It may be due to everyone using a third party tool. It works really well in Azure Data Studio. I just do not like having to switch between tools just to write queries, but I am finding myself doing it more and more due to Intellisense in SSMS working so poorly.
If I have to do Ctrl-Shift-R one more time…
Robert – interesting, have you documented the problem at feedback.azure.com?
For some issues, I have found existing cases that others have opened and voted for. However, for others, I have not researched.
Right, so…you don’t get what you don’t ask for. 😉 But I hear you – it’s hard work tracing down all the bugs.
I would like to see the ability for a developer to run profiler (for sp) without giving sysadmin or some work around. The other items, amongst many, would be better import / export functionality to excel. I’d like the ability to import from excel and have it create a new table based upon how many columns are in the spreadsheet. How about “What the heck is killing my server” functionality ? Lol, my thoughts on a aggravated day.
Bruno – cool, so where did you file that feature request?
“Even our IBM mainframe development app has dark mode.” means that they develop from command line and the mainframe terminal is black.
I mean, this was the joke, right?
…or should I throw away my SQL Server certifications?
Don’t scare me, please.
Not a joke – it’s called Rational Developer for i, aka RDI.
That’s because COBOL developers they are getting so old that they have their eyesight failing. And IBM is ready to invest in order to keep them into the game.
I laughed out loud. Nicely done.
#9 is not the key F5?
No, they’re talking about executing the statement where the cursor is placed, without having to highlight the whole statement.
Among other things, this makes it easy to step through a script one statement at a time just by pressing a single key (or key combo).
#9 is implemented by Redgate SQL Prompt as SHIFT+F5.
This
Thanks for that! ??
#10 is implemented as stated:
> This is now live for Azure SQL Database and SQL Managed Instance. It will roll into the next version of SQL Server. Thank you for submitting this suggestion.
>
> Please reference GREATEST in the documentation:
> https://docs.microsoft.com/en-us/sql/t-sql/functions/logical-functions-greatest-transact-sql?view=sql-server-ver15
I would really like to see something similar to Flashback in Oracle implemented in SQL Server. Another feature would be to set a designated lag time on log redo on AG secondary databases, the delayed restore in Log Shipping has saved me more times than I care to remember.
I don’t think Flashback-like tech will appear in SQL Server anytime soon.
Oracle was very smart very early on and put a lot of thought into Redo and Undo, which, along with later Flashback logs, led to Flashback (database and tables). The way Oracle’s Redo and Undo actually work is convoluted, but very robust.
I suspect that Microsoft would also have to rearchitect locking to make it all happen (Oracle’s locking tech is quite different to SQL Server’s). A huge task.
I really love the idea behind Azure SQL DB Hyperscale – that would make Flashback-style restores closer to doable, but man, I wouldn’t want to deploy something that complex on premises. It’s the kind of thing that makes so much more sense as a managed service.
I agree it’s unlikely that we will ever see this in the SQL Server we deploy on premises. What will be interesting is if this ever becomes a possibility if Microsoft pull off the ability to switch to transaction log as a service which they talked about at a PASS (RIP) keynote a couple of years ago.
Speaking of managed services: Azure still hasn’t released Elastic Transactions into General Availability for Managed Instance; still in Public Preview. That makes migration to Managed Instance impossible if a business needs distributed transactions; gotta go for SQL on VMs, instead.
And how about the one that would make the biggest difference for the smallest amount of effort:
https://feedback.azure.com/forums/908035-sql-server/suggestions/32890519-add-a-built-in-table-of-numbers
Poor Itzik and friends have probably put in more man-hours than the SQL Server team would if/when they implement this.
There is also IS [DISTINCT FROM] which absolutely needs to be implemented, and is also a pretty quick fix. The algebrizer in the compiler already recognizes it as an operator.
https://feedback.azure.com/forums/908035-sql-server/suggestions/32889145-add-language-and-optimizer-support-for-iso-distin
I also wish there were proper SEMI/ANTI-JOIN operators, again this is already in the compiler
They totally ignored my request to separate out SQL Server Management Studio from SQL Server itself in the Feedback site. These are two totally different products. Yes, they work closely together, but as we all know, each can be installed separately and does NOT rely on the other. Take the #1 request: “Dark Mode” How does that affect a headless server, or one running SQL on Linux?
INHO, These UserVoice sites just get absolutely bloated. Remeber the old Connect site? That was useless.
Heh… Dark Mode… Yeah… good idea. That definitely should be the highest priority, right? After all, that’s nearly 100% of the reason why people blame the database for being slow, right? Developers can’t see the screen because of the white background and so they end up writing crap code. A Dark Mode would certainly fix that, right?
I’m not even going to put a smiley face behind that one.
Jeff, my nickname for you is now “Dark Mode”
NO NO WAIT DARK MODEN
Heh… careful now… Santa is watching! 😀
(??_?)
BWAAAA-HAAAAA!!! I’ve had “mo den enough” bad jokes with name. 😀
How about getting SSMS to not take 45+ seconds to start?
(Seems like even longer when you are sharing your screen in a meeting and everyone is staring at the splash screen while the crickets are chirping….)
What the heck is it doing during all that time?
You can shave a bit of time off the loading by:
1. Disabling the splash screen.
Right-click the shortcut –> properties –> add “-nosplash” to the Target.
2. Setting the environment to be empty.
[SSMS] Tools > Options > Environment > Startup > Select Open Empty Environment
3. Placing a small onion under a bale of fresh meadow grass when it’s a full moon and leave overnight.
Make REDO faster!!!