SQL Server

Microsoft SQL Server 2017 powers your entire data estate by supporting structured and unstructured data sources. It builds on previous versions of SQL Server, which have been industry leading for four years in a row and a leader in TPC-E. It scales to petabytes of data and allows customers to process big data through PolyBase using T-SQL over any data. SQL Server has also been the least vulnerable database during the last seven years. SQL Server 2017 brings data insights with business intelligence capabilities that provide analytics at a fraction of the cost on any device along with advanced analytics with support for R and Python.

More details about SQL Server are available in the SQL Server documentation.
If you have a technical issue, please open a post on the developer forums through Stack Overflow or MSDN.

Do you have a comment or suggestion to improve SQL Server? We’d love to hear it!

(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Should be possible to create a filtered index on a deterministic persisted computed column

    On a client site the other day, I came across a situation (unfortunately too common) where a column in a table was being used for two purposes. It could either hold an integer value or a string. Only about 100 rows out of many millions had the integer value. Some of the client code needed to calculate the maximum value when it was an integer. First step I tried was to add a persisted computed column like so:

    CREATE TABLE dbo.LousyTable
    ( ColumnWithMixedValues varchar(20),
    SomeOtherColumn varchar(10),
    MixedValueColumnAsInt AS
    CASE WHEN ISNUMERIC(ColumnWithMixedValues) = 1
    THEN CAST(ColumnWithMixedValues AS int)
    ELSE NULL
    END…

    13 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →

    Upvotes: 158

    <=-=Dec 4 2009 10:01PM=-=>

    I think this goes further than computed columns, as a filtered index can’t be used for something as simple as WHERE num % 2 = 0 (with no computed columns in sight). I really want to see filtered indexes become more useful.

    <=-=Dec 7 2009 10:29AM=-=>

    Greg,

    Thanks for your feedback. I agree we should allow filtered indexes on persisted computed columns, and should support more complex filter expressions, at some point in the future. We restricted the functionality for the first version but we’ll consider this for a future release. The documentation should be more precise about the restrictions on predicate expressions. I’ll follow up on that.

    Best regards,
    Eric

    <=-=Dec 8 2009 8:56PM=-=>

    I was AMAZED when I could not create a filtered index on computed column.

    But I as APPALLED and DUMBFOUNDED when I could not create a filtered indexes on…

  2. New security role for SQL Agent - SQLAgentAdminRole

    I feel the SQL Agent roles are too limiting. If you want to allow freedom in a development, or assign management of SQL Agent jobs to a person; even SQLAgentOperatorRole doesn't do much. This means SysAdmins are still required to assist others in altering/removing jobs.

    I propose a new role that allows the member to do anything with SQL Agent, like a member of SysAdmin, but without the access to all other parts of SQL Server that SysAdmin provides.

    12 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  3. Add backup configuration to the setup process for SQL Server.

    What I’m asking for (besides you to upvote that User Voice item) is for Microsoft, as part of SQL Server setup, to add two new screens. The first would be called “Backup”—it would offer a dire warning to the effect of:

    In order to protect the data in your databases, Microsoft strongly encourages you to take backups of your data. In the event of hardware failure, data corruption, or malicious software, Microsoft support will be unable to help you recovery your data, and you will incur data loss. This box is checked by defaults to enable automatic daily backups of…

    11 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Setup + Deployment  ·  Flag idea as inappropriate…  ·  Admin →
  4. SSMS Standard Reports -- Include as .rdl files

    Include the standard reports as .rdl files so that they can be modified and saved back into the "Custom Reports" folder.

    10 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  5. Need VIEW DEFINITION permissions per database

    A common question on the newsgroups is "What do I need to do so that users in Mgmt
    Studio only see the databases they have access to?". Surely, they are accustomed to
    this from SQL 2000, where EM would behave this way. Alas, there were issues with
    how EM implemented this. It went and checked every database, and this could be
    costly, particularly if there were many databases on auto-close.

    What is possible in SQL 2005, is to revoke or deny the permission VIEW ANY DATABASE.
    However, this is too far-reaching, because now users can only see the system databases …

    10 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →

    Upvotes: 258

    <=-=Apr 6 2008 6:30PM=-=>

    Hi Erland,

    Thank you for your suggestion. We will investigate a solution for a future version of SQL Server (post 2008).

    Il-Sung Lee.

    <=-=Jun 11 2010 12:51PM=-=>

    Surely a change could also be made to SSMS as well? When it parses master.sys.databases it could conceivably filter those results. Whilst not a foolproof method, at least it would work as a quick temporary solution (considering this was posted 3 yrs ago).

    <=-=Sep 23 2010 4:12PM=-=>

    The problem with changing SSMS is that it doesn’t strictly fix the issue as anyone who is determined to discover the other databases would just directly query the server metadata. As such, I think we need to investigate a solution this for all cases, not just SSMS.

    Il-Sung.

    <=-=Aug 3 2011 7:12AM=-=>

    Has there been any new development for this suggestion? As an organization, we’d like to see this…

  6. Add "Dark" color theme to SQL Server 2016 SSMS

    Please, add "Dark" color theme to SQL Server 2016 SSMS.

    9 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  7. Attempting to create a database diagram causes error "Index was outside the bounds of the array"

    When attempting to create a new database diagram on an on premises SQL 2014 database using SQL Server Management Studio 16.5, an error window is shown with error "Index was outside the bounds of the array". Additionally, SSMS 2014 is able to create a database diagram just fine. When back in SSMS 2016, I can view the new diagram, but it is in a window on another monitor, with no ability to resize the window (window chrome is missing).

    9 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    22 comments  ·  Bugs  ·  Flag idea as inappropriate…  ·  Admin →

    Hello all

    Database Diagrams is being deprecated for SSMS 18. As such, we have not planned any work on this feature for a while. Please use Visio or any of the 3rd party ER modeling tools for this functionality. I understand some of you may have dependency on this feature. You are welcome to continue using 17.9.1 if it works for you.

    thanks,
    Dinakar

  8. Provide a hint to force generation of a parallel plan

    The SQL Server query optimizer often chooses a serial plan (with a significant estimated cost) where a parallel plan would execute much faster.
    Often, the desired parallel plan costs only very slightly higher than the serial version.

    The root cause can usually be traced back to optimizer model limitations, other simplifying assumptions made by the costing component, unavoidable cardinality estimation errors in moderately complex plans,
    or the use of operations that do not allow us to give the optimizer good information about the cardinality and distribution of output values (e.g. CLR functions).

    To be clear, the motivation for this suggestion…

    8 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →

    Upvotes: 220

    <=-=Dec 21 2011 10:50AM=-=>

    Thanks for the suggestion. We will consider this for a future release. There is an undocumented trace flag 8649 to set the cost overhead of parallelism to 0. This may provide some relief, but is not a full solution. You can use it in a query hint in the form OPTION.

    Best regards,
    Eric Hanson
    Program Manger
    SQL Server Query Processing

    <=-=Dec 21 2011 3:39PM=-=>

    Hi Eric,

    Thanks for the very quick response. TF 8649 is indeed very helpful – perhaps we’re not so far away from seeing a PARALLEL_PLAN or MINDOP hint as I thought! Very cool, thanks again.

    Paul

    <=-=Feb 20 2014 1:02AM=-=>

    Any update on this? a normal hint would be much better than some undocumented or short term workarounds.

    <=-=Jun 8 2014 10:04PM=-=>

    Any update? It’s been a couple of years….

    <=-=Dec 1 2014 1:26AM=-=>

    I have major problem…

  9. Allow SSRS Parameter Panel to be formatted

    The parameter panel layout for a SSRS report cannot be customised in any way. This is a major flaw and often a reason that SSRS is rejected as an end user tool. The parameter panel has changed very little since the initial release of SSRS and looks dated

    8 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →

    Upvotes: 185

    <=-=Apr 1 2010 8:04AM=-=>

    It would be really nice to be able to use other input controls at the very least. We always talk about “end-user experience” but that concept doesn’t seem to reach to end-users running SSRS reports. Multi-value drop-down lists only go so far for input, particularly with reports that use KPI—ah, wouldn’t it be nice to have a slider!?

    <=-=Apr 26 2010 10:59AM=-=>

    Thank you for the suggestion and we do agree with you. We are looking at improving the parameter story in our next release. We agree with your idea for using sliders and other more “up to date” features. Look for changes in SQL11 and possibly Dev11.

    <=-=Feb 23 2011 9:24AM=-=>

    OH YES!

    - Placement control, at the very least a “ForceToLeftColumn” for a parameter or a separator
    - Size control. As it is, single-choice dropdowns grow with the contents with…

  10. SSMS debugger should show the contents of TSQL table variables

    Inability to see the contents of TSQL table-valued parameters or local table variables within the Auto/Local pane seriously impedes the ability to debug TSQL code that depends on them.

    There are workarounds, for example this one...

    http://stackoverflow.com/a/6748570/533120

    ...but they are tedious and tend to "eject" the developer from the current "mind-frame" exactly at the moment this ejection is most harmful - when trying to understand a complex bug.

    8 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    unplanned  ·  2 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  11. Plain Text Password in Maintenance Plans

    The user and password of the user that create a Maintenance Plans using the MSSMS is save in plain text, you can use the following query to access this informaci�n.

    SELECT CAST(CAST(packagedata AS VARBINARY(max)) AS VARCHAR(max)) FROM sysssispackages
    WHERE name LIKE 'MaintenancePlansName'

    This will show the xml of Maintenance Plans including the user and password.

    8 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Bugs  ·  Flag idea as inappropriate…  ·  Admin →
  12. Regex functionality in pattern matching

    It would be good to be able to have full regex capabilities when using LIKE or Patindex.

    It would also be good to have a regex table function that returned matches.

    8 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →

    Upvotes: 419

    <=-=Mar 8 2007 3:20AM=-=>

    I agree with the functionality request, but not the suggested approach of enhancing the LIKE, PATINDEX or adding a table function.

    This functionality should be implemented by supporting the SQL99 SIMILAR predicate (ISO 9075 feature T141, ISO 9075-2-1999 section 8.6).

    <=-=Mar 21 2007 1:23PM=-=>

    I echo the wish to not overload LIKE or PATINDEX. Personally I don’t like SIMILAR either, though. How about a REGEX function with REGEX somewhere in the name?

    <=-=Aug 20 2007 10:21PM=-=>

    Hello,

    First of all i would like to thank all of you for sending your feedback to us. We are definitely going to consider adding this capability in the query language in a future release. However, until then have you considered using CLR integration for this purpose. .NET has the capability and it is very simple to use .NET to add this capability…

  13. Add optional checks for more robust development

    As programming environment SQL Server has shortcomings that are entirely
    inappropriate for enterprise development. In a modern programming language,
    the compile tries to catch as many errors as possible. The earlier errors
    are found, the cheaper it is to fix them. And nothing is as cheap as a
    compiler slapping the error in your face. Errors normally not caught by
    SQL Server when you create a T-SQL modules are:

    o If a query refers to a missing table, SQL Server is completely silent;
    you don't get the error until run-time.

    o In fact, when query refers to a missing table,…

    8 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →

    Upvotes: 201

    <=-=Aug 23 2007 11:00PM=-=>

    The last suggestion (regarding wrong join clauses) was also posted by me in Feedback ID 150032. You can close my suggestion as a duplicate of this one.

    Razvan

    <=-=Jan 30 2008 2:49PM=-=>

    Hello Erland

    Thanks for sending in this feedback and for clearly listing the conditions for which detection at compile time would enhance the development experience. We are tracking these as potential enhancements to T-SQL in a future SQL Server release.

    SQL Server Engine Team

    <=-=Feb 5 2008 1:44PM=-=>

    The option to disallow implicit conversions definitely gets my vote. I’d like to see a separate setting for that. Something like: ALTER DATABASE SET IMPLICT_CONVERSION OFF;

    <=-=Jun 14 2008 1:46PM=-=>

    I developed this idea in an article on my web site. In this article I go into more depth how this feature should work with reagards to missing tables. I have…

  14. SQL Server should not raise illogical errors

    You already have tons of these bug reports, and I bet that you have closed them all "by design" and told people to use the CASE statement. But, no, you are wrong. This is a bug, and should be fixed. Although the fix is to add new functionality, hang on.

    Consider this silly repro:

    create table albert(a int NOT NULL,
    b varchar(23) NOT NULL)
    create table stina (a int NOT NULL)
    go
    insert albert (a, b)
    values (1, '99'),
    (2, 'Gurka'),
    (3, '89')
    insert stina (a) values(1), (3), (9), (12)
    go
    SELECT a.a, a.b + 100
    FROM albert a
    JOIN…

    7 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Bugs  ·  Flag idea as inappropriate…  ·  Admin →

    Upvotes: 82

    <=-=Mar 3 2010 10:44AM=-=>

    Hi Erland,
    Thanks for your feedback. We are aware of this request and hope to address it in a future version of SQL Server.


    Umachandar, SQL Programmability Team

    <=-=Jul 21 2010 5:36PM=-=>

    This bug cost me and others about 8 hours of troubleshooting this week. And the query was working until statistics were updated. That’s the spooky part, that a new join order can cause an error in a previously-working query. This was compounded by the fact that the query was in a UDF and 1) error messages don’t list the line in the UDF but rather the calling SP and 2) I know of no way to see the execution plan of a UDF, which would have helped because I could have seen in the plan the conversion to float before the JOIN to the filtering table.

    <=-=Mar 9 2011 12:08PM=-=>

  15. Allow OPTION(HASH GROUP) with SQLCLR UDAs

    Currently, it appears that when SQLCLR UDA are used with a GROUP BY clause, a StreamAggregate operation must always be used. Attempting to specify OPTION(HASH GROUP) on a query like this:

    SELECT dbo.SomeUDA(col1) FROM someTable GROUP BY someColumn OPTION(HASH GROUP)

    produces an "Msg 8622, Query processor could not produce a query plan..."

    I only have a single test case, but because there is no special considerations in the grouping column (someColumn) in this case, I can only guess its because you'd need to allocate N UDA instances where N is the number of groups.

    This should be permitted (indeed a…

    7 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →

    Upvotes: 24

    <=-=Jan 4 2011 4:40PM=-=>

    Hi Bob,

    Thanks for the feedback. We’ll consider fixing this in a future release. Can you tell me more about the scenario? What UDAgg were you implementing and why? Feel free to contact me by email if you want.

    Best regards,
    Eric Hanson
    Program Manager, SQL Server Query Processing
    eric.n.hanson@microsoft.com

    <=-=Jan 4 2011 5:15PM=-=>

    Sure Eric, there are a few that I can think of. This actually came about because of the following forum question:
    http://social.technet.microsoft.com/Forums/en-US/sqlnetfx/thread/957a5b94-c7d0-49d8-928d-7cccff14b0c6. I realized that the sort was required because of choice of stream aggregate. And he can’t put on every index possible to get rid of the sort.

    Second is that the spatial aggregates in Denali would need this funtionality. Related to that is that there’s a vendor product that consists of a library of UDAs, Fuzzy Logix (http://www.fuzzyl.com/in-database_analytics.php#) that could benefit from this flexibility as…

  16. Add a dark theme for SQL server management studio 2016

    A massive white space is a strain on the eyes when working for long periods with Management studio. In Tools >> Options >> Environment >> General add a "Dark" colour theme.

    7 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    unplanned  ·  1 comment  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  17. Debugging Stored Procedure in SQL Management Studio

    While debugging the yellow cursor-line will become misplaced (see attached image)

    7 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    unplanned  ·  6 comments  ·  Bugs  ·  Flag idea as inappropriate…  ·  Admin →
  18. Enable Network Compression (compress TDS stream)

    When transferring data between SQL instances on different servers, network sometimes becomes a bottleneck. If the size of the payload can be compressed prior to transmit perf may increase (given adequate resources to process the compression).

    Consider adding the ability to compress the TDS stream for future a SQL Server release.

    7 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →

    Upvotes: 80

    <=-=Feb 20 2009 10:20AM=-=>

    Dear Customer,

    Thank you for helping us improve our products!
    The issue of TDS compression has come up already, and we are considering possibilities. As you mention, it is not a something that would provide a benefit in all scenarios. We need to spend some time justifying the need for it and thinking about a safe way to enable without negatively impacting existing use cases. We�ll keep the issue open until make a final a decision, and we�ll keep you updated of the progress.

    Meanwhile, please take a look at this link that explains how Windows Server 2008 does TCP compression for SQL Server 2008, which might be sufficient for your scenario – http://msdn.microsoft.com/en-us/library/dd263442.aspx.

    Thanks again,
    Zlatko Michailov
    Program Manager, SQL Protocols

    <=-=Sep 8 2009 8:34AM=-=>

    We typically see this when we want to move large amounts of data between SQL Servers over…

  19. Expand synonym to other entities (database, linked server)

    Synonyms provide a great layer of abstraction, allowing us to use friendly and/or local names for verbosely named or remote tables, views, procedures and functions. I have often felt that they are lacking, however, in enabling us to abstract a database or a server.

    In one system I have a CRM_test database and a CRM_production database, and it would be nice to be able to change only a single synonym in order to move the main database from test to production. This is much easier than changing 80 synonyms that point to the individual objects inside the CRM database.

    Similarly,…

    7 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →

    Upvotes: 310

    <=-=Dec 13 2007 9:53AM=-=>

    Hi aaron,
    Thanks for your feedback on this. As I replied to another change request from you earlier (on a synonym support for Databases) we are unable to take up this alias/synonym support for databases in SQL Server 2008 due to time/resource constraints. We will definitely investigate this further to see if we can take this up in the next SQL Server release.

    thanks
    Srini Acharya

    <=-=Jun 6 2008 5:43PM=-=>

    The inability to create database synonyms severely restricts the usefulness of synonyms in general. The use of synonyms is substantially complicated when moving from one database to another (e.g., Dev to UAT to Production) because you can’t create a synonym for a database. This would be a very useful feature and would likely increase the use of synonyms in a greater variety of projects.

    <=-=Nov 18 2008 3:36PM=-=>

    I’d like to see database synonyms…

  20. Support POSIX-style regular expressions in T-SQL

    Regular expressions is a very powerful way to match data, far more powerful
    than the LIKE operator in SQL. Regular expressions comes in a number of flavours:
    POSIX defines one standard, .Net have their own twist (I think), and Perl is
    probably the most elaborate of them all. But they all share some common
    traits: . is a wildchard charcted, * means previous pattern zero or more times etc.

    ANSI/ISO have tried to catch up, and SQL:1999 introduced the SIMILAR TO
    operator, but it's obvious that they are on the wrong track. They still use % and
    _ as wildcard…

    7 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →

    Upvotes: 22

    <=-=Aug 12 2008 2:12PM=-=>

    Of course, there should also a be a replace function that can work with regular expression. Both for the pattern to find – and for the replacement string.

    <=-=Aug 13 2008 7:16AM=-=>

    Hi Erland,

    I’ve resolved this as a duplicate of Connect #261342 and made sure your comments are reflected in that issue. I can tell you that this is under serious consideration right now. If you haven’t already voted on that item, it would be worth it to do so.

    Thanks,
    -Isaac

  • Don't see your idea?

SQL Server

Feedback and Knowledge Base