The Top 10 Feature Requests for SQL Server on

SQL Server

When a man loves a woman very much, he goes to and upvotes her feature requests. I was curious to see what requests were resonating the most with folks, so I went through the list of feature requests sorted by votes:

1. Please fix the “String or binary data would be truncated” message to give the column name – by DWalker, 1136 upvotes. This one is a classic, and good news! On June 17th, Microsoft’s David Shiflet left a comment that developers are motivated to make improvements, and they’re discussing options for the new error message.

2. Add native support for JSON, as in FOR JSON or FROM OPENJSON – by Bret_M_Lowery, 1111 upvotes. This one’s actually already added in SQL Server 2016, but the Connect item isn’t closed yet.


3. Add Visual Studio 2013 support to SSDT-BI – by David McClelland, 731 upvotes. I don’t know enough about SSDT-BI to know where this is at.

4. Add full justification in Reporting Services – by inDigeniCa, 653 upvotes. Lots of angry comments on this one, and doesn’t appear to be making headway.

5. New virtual table “errors” like the deleted and inserted tables – by danholmes, 593 upvotes. Given that the MERGE statement is pretty rough, a virtual “errors” table that we could use in triggers would be really handy.

6. OVER clause enhancement request – DISTINCT clause for aggregate functions – by Itzik Ben-Gan, 514 upvotes. Started back in 2007, there haven’t been a lot of comments on this one, just folks upvoting it.

7. Scalar user-defined function performance is bad – by Andrew Novick, 510 upvotes. I’ve seen so many companies burned badly by this when they encapsulated code in reusable functions without knowing it causes queries to go single-threaded.

8. CREATE OR REPLACE syntax – by BAnVA, 463 upvotes. Unfortunately, the details page link errors out for me on Connect at the moment, but I’m guessing the comments point to SQL 2016’s new drop-if-exists syntax. I would argue that that’s no replacement, but I gotta hand it to Microsoft that they did take a relative action on it.

9. Expand synonym to other entities (database, linked server) – by Aaron Bertrand, 409 upvotes. Synonyms are slick tools that let you move a table to another database, leave a synonym behind, and let your app keep right on trucking without noticing.

10. Regex functionality in pattern matching – by Simon Sabin, 402 upvotes. Regular expressions are powerful ways of doing text matching. I’ve seen folks roll their own with CLR code.

If the highly-voted Connect items are what shape the next version of SQL Server, it’s time to exercise your voting finger. Check out the rankings and make your voice heard. Microsoft is listening – and if you want proof, check out this month’s release of SSMS. Those developers are on fire fixing Connect requests.

Previous Post
TDE and Backup Compression: Together At Last
Next Post
Availability Group Direct Seeding: Mind Your Backup Jobs

24 Comments. Leave new

  • Sean Anderson
    July 6, 2016 12:07 pm

    For the RegEx functionality, CLR works good. If it was integrated it would prevent recompile for each row…not sure if that is already mitigated somehow.

  • Paul Barbin
    July 6, 2016 12:45 pm

    Number 10 from Aaron regarding linked servers. He says: “Similarly, if I have a linked server in dev and I want to test queries against the production server, I currently have to either search and replace for linked server names in procedure code, or drop and re-create linked servers. The former is tedious, and the latter is not always practical.”

    When we’re forced to use linked servers , we use the production server NAME in all environments but the linked server definition changes in each environment. So the procedural code never changes, just the definition of the linked server (ex: “svr-sql-prod01” is the name of the linked server but in the test environment, it points to svr-sql-test01).

    • We had that for one particular stored proc. We were using SSDT and were able to use variables to define the linked server/database name for that particular proc so it would be appropriate per environment.

  • Phil Parkin
    July 6, 2016 12:45 pm
  • Not sure how valuable the VS2013 SSDT-BI suggestion is with the latest version of SSDT. We now have one SSDT for SQL 2012-2016 BI projects. It’s actually pretty cool to be able to re-target an SSIS project without needing to re-create the package completely. As long as you don’t use any higher-version-specific components, you can change to a lower version of SSIS and rebuild. That’s pretty cool. Same for SSRS. I haven’t tried an SSAS project yet, but imagine it would be similar.

    I’m glad to see some motion on the “data would be truncated” error message. That’s long overdue and a big source of frustration when it pops up.

    • Phil Parkin
      July 6, 2016 5:06 pm

      It is cool. I’ve tested this only in ‘going forwards’ mode so far (eg, SSIS 2012 projects to SQL Server 2016). Can you confirm that it works ‘going backwards’ too? (Obviously using only components which are available in the version of SQL Server to which you are deploying.)

      • I moved a project between versions (from 2014 to 2012, I think). No issues as long as you’re not using something specific to a higher version. I’ve also had to downgrade some 2016 SSRS reports that got upgraded when I opened them. The RC releases had some issues (some XML code had to be manually edited), but the RTM didn’t seem to have any in that.

  • Is there a good reason why MAXDOP doesn’t work for UPDATE STATISTICS? Seems like that should get more votes.

  • WHY has the basic TRIM function not been done?
    I mean constantly doing LTRIM(RTRIM()) is PANTS.

  • Reply
  • Gerald Britton
    July 9, 2016 7:27 am

    RE: RegEx functionality

    Free with MDS / DQS. just install them and you have instant access to a regex function (and other cool ones as well!

  • DROP IF EXISTS is only partially implemented, i.e. not everything that you can DROP has IF EXISTS clause.

    There are many use cases which are not fully covered:
    a slightly different semantic than ALTER sometimes also known as CREATE … WITH (DROP_EXISTING=ON).
    It should be available for *everything* that can be CREATEd. Would help when it’s needed to retain permissions, extprops and other metatada, and wouldn’t fail if previous version of the object doesn’t exist.
    As a side note: inability to alter index columns with ALTER INDEX, instead being forced to use separate statement CREATE INDEX … WITH (DROP_EXISTING=ON) is something that I still don’t understand.

    would keep the data and not touch the object if it exists

    – REPLACE (or ALTER)
    available for *everything* that can be CREATEd. Now it’s not always the case. Would keep permissions, extprops and other metadata.

    Why can’t we have these? Implementation is trivial and would enrich DDL enormously.


    Regexps – I agree that we can craft them in CLR each time, or we can pick them out of MDS/DQS, but that’s not the way to go. Proper, native support out of the box *inside relational engine* just like Oracle or PostgreSQL have would be a game changer. Especially that it’s not something Microsoft has to *write* but just to *use* (I mean Regex libraries are everywhere).


    There’s one more: the ability to enable/disable IDENTITY property on a table. Active for over 10 years. Ridiculous.

  • MS moved the Connect items to Collaborate (which looks like UserVoice?? which links to… really confusing), losing all of the votes and authors of the issues from all of these years 🙁 and breaking everyone’s links from all of these years!

  • Yassine Elouati
    March 1, 2018 1:19 pm

    It would be great if the restore command had an enhancement to the “MOVE” file to move all files to the default location. It would save tons of time in side by side upgrades or database moves.

  • Arrangemonk
    June 17, 2019 6:07 am

    i want to decide weither the content of a rectangle moves with the rectangle or not, most of the time, i want it to move with the rectangle. when i copy paste elements u usually want to paste the location along with the element.
    i want to be able to repeat report elements n times

    August 2, 2019 1:18 am

    It will be nice to be able to restore a database across different instances by just pointing to another instance

  • Andrea Caldarone
    September 27, 2019 8:50 am

    your recent post about NUMA node imbalance bring to attention a feature request: do not use round robin to land connection on NUMA nodes, check nodes load before to chose the one…


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.