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.

  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Provide function to retrieve the entire call stack

    We have several log tables where among other things save the name of the current stored procedure. Typically, there is a dedicated stored procedure that writes to a log table, and we pass @@procid to a parameter.

    But there are cases where this is not really enough. Maybe the stored procedure that called the logging procedure itself is a general procedure. Or if we want log something by means of a trigger, we want to know the stored procedure that fired the trigger.

    The purpose for this information, is mainly for tracking down problems in the application, and how some…

    14 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: 146

    <=-=Oct 16 2006 11:24AM=-=>

    Hi Erland,

    Thanks for bringing this suggestion to our attention. This would definitly be a useful feature and we are considering implementing it in the next version of SQL Server.

    Thanks,
    Tomer Verona
    SQL Engine Development

    <=-=Oct 19 2007 2:15PM=-=>

    Any update on this? I happened to see this in the event Blocked Process Report:

    That is, here the call stack is available. Through the sqlhandle it is possible to retrieve
    the objectids of the calling procedures.

    If if it’s available this way, it can’t be too difficult to expose this in a DMV. Only exposing the
    sqlhandle would not match with my observation with permissions above, but since you probably
    only want this code in a few places, this could be dealt with adding extra privs with
    certificate signing.

    <=-=Apr 7 2008 12:18PM=-=>

    This would be of use in the scenario I…

  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.

    13 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…

    12 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. 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).

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

    We’ll send you updates on this idea

    25 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

  5. 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,…

    11 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: 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…

  6. 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 →
  7. Add "Dark" color theme to SQL Server 2016 SSMS

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

    10 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 →
  8. 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.

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

    We’ll send you updates on this idea

    4 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…

  9. 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…

  10. 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…

    9 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…

  11. 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

    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 →

    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…

  12. 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…

    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: 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…

  13. 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  ·  3 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  14. 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.

    8 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 →
  15. Debugging Stored Procedure in SQL Management Studio

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

    8 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 →
  16. 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 →
  17. 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=-=>

  18. Add support for OVER (ORDER BY) for CLR Aggregate functions

    Currently, there is no way to specify aggregate function processing order - and, indeed, the IsInvariantToOrder property of the SqlUserDefinedAggregate attribute has no effect.

    This can be important for string concatenation aggregates, as the strings may have to be aggregated in a specific order. The ability to use a clause such as:

    SELECT dbo.StringConcatenate(StringValue) OVER (ORDER BY ID) FROM dbo.MyTable

    This would mean that you could support better forms of aggregation, and that other aggregates could be implemented in a more succinct way (for example, a median aggregate could benefit from knowing that input was ordered).

    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: 36

    <=-=Oct 8 2010 11:58AM=-=>

    Hi Matt,
    Thanks for your feedback. We will consider it for a future version of SQL Server. Please note however that the syntax you are proposing doesn’t achieve what you are looking for. The ORDER BY within OVER clause controls the ordering of the window and not the order of rows to the aggregate. We support OVER clause (excluding ORDER BY clause since we don’t have it) already for CLR aggregates. So if we extend OVER clause to support ORDER BY it will work with existing CLR aggregates also.
    ANSI SQL:2008 and earlier has a feature called ordered set functions that use a WITHIN GROUP specification. One such aggregate is PERCENTILE_CONT which looks like:

    PERCENTILE_CONT( ) WITHIN GROUP (ORDER BY )

    Once we support the above syntax for ordered set function, we will consider extending the CLR Aggregate contract to do the…
  19. SQL Server 2008 Database Audit on INSERT UPDATE and DELETE actual SQL and not parameter values

    If a database Audit Specification is created for a table object on SELECT, INSERT UPDATE and DELETE and the Transact SQL to perform the SELECT, INSERT UPDATE or DELETE contains a parameter, then the parameter is shown in the Audit Log instead of the parameter value.

    For example, executing the following TSQL statement:

    INSERT INTO [config] VALUES ('test','1234')

    creates an audit entry:
    ..
    object_name:config
    statement:INSERT INTO [config] VALUES ('test','1234')
    ..

    However, executing the TSQL:

    DECLARE @stat1 varchar(10)='test'
    DECLARE @stat2 varchar(10)='1234'
    INSERT INTO [config] VALUES (@stat1,@stat2)

    Creates the audit entry:
    ..
    object_name:config
    statement:INSERT INTO [config] VALUES (@stat1,@stat2)
    ..

    In order for…

    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: 54

    <=-=Nov 29 2010 8:49AM=-=>

    Hi,

    First of all, thank you for your feedback!

    This is a great suggestion to improve the SQL Server Audit experience and we will try to consider this in our future release planning.

    Thank you and regards,
    Don Pinto
    SQL Server Engine

    <=-=Jul 29 2011 9:58AM=-=>

    I can’t believe there aren’t more comments on this subject. I assume it’s simply because not many are currently using the auditing system, likely one reason is due to the limitation described here.

    It seems like a logical step to include parameters within the additional_information field (which appears completely unused with regard to table level events). Perhaps this was overlooked due to performance issues?

    While I’m on the topic, and understanding that CDC is NOT necessarily to be used for auditing, it seems odd to me that the information regarding WHO did something is not included with the…

  20. 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…

  • Don't see your idea?

SQL Server

Categories

Feedback and Knowledge Base