SQL Server

Microsoft SQL Server 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 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. "Call Stack"

    Provide DMV to provide the call stack of stored procedures, triggers, CLR functions etc prefferable in JSON format so it is parsable.

    As Erland Sommarskog says this is available but only in the "event Blocked Process Report:

    <executionStack>

    &lt;frame line=&quot;17&quot; stmtstart=&quot;1332&quot; stmtend=&quot;2906&quot; sqlhandle=&quot;0x03000d00399f00558c840601a29800000100000000000000&quot;/&gt;
    
    &lt;frame line=&quot;1&quot; sqlhandle=&quot;0x01000d00638e300f302e10ac000000000000000000000000&quot;/&gt;

    </executionStack>

    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…

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

    We’ll send you updates on this idea

    under review  ·  2 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  2. Column Store Deadlock XML Is Missing Information

    Deadlock XML for column store indexes is missing several pieces of information about which objects were deadlocked in the resource-list section of the XML

    See here for background https://www.brentozar.com/archive/2018/04/column-store-deadlocks-missing-information/

    Also attaching files.

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

    We’ll send you updates on this idea

    under review  ·  0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  3. Wrong Results When Selecting SQLServer2016 JOIN DATETIME2(3) with DATETIME

    I'm getting unexpected results when joining between DATETIME2(3) column to DATETIME column with PK , in SQLServer 2016.

    The details are :

    I have the following table:

    CREATE TABLE DATETIME_TEST (

    [DATETIME] DATETIME   NOT NULL,
    
    [DATETIME2_3] DATETIME2(3));

    ALTER TABLE DATETIMETEST ADD CONSTRAINT PKDATETIMETEST PRIMARY KEY ([DATETIME]);
    INSERT INTO DATETIME
    TEST
    ( [DATETIME],[DATETIME2_3])
    VALUES
    ('20020202 02:02:02.000', '20020202 02:02:02.000' ),
    ('20020202 02:02:02.003', '20020202 02:02:02.003' ),
    ('20020202 02:02:02.007', '20020202 02:02:02.007' ),
    ('2019-04-28 07:23:29.447', '2019-04-28 07:23:29.447' )
    ;

    SELECT * FROM DATETIMETEST WHERE CONVERT(DATETIME2(3), [DATETIME]) = [DATETIME23]
    The results :

    DATETIME DATETIME2_3
    2002-02-02 02:02:02.000 2002-02-02 02:02:02.000
    2002-02-02 02:02:02.003 2002-02-02…

    57 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 →
  4. SQL Server 2017 Minimal Logging Not Behaving As Documented

    According to my interpretation of the docs (https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008/dd425070(v=sql.100)) the following scenarios should minimally log...

    Recovery model must be Simple or Bulk Logged
    Table must be either
    A heap and insert done with TABLOCK
    A heap + nonclustered index with TABLOCK and either trace flag 610 or SQL Server 2016+
    A clustered index with no data and TABLOCK
    A clustered index with no data and either trace flag 610 or SQL Server 2016+
    A clustered index with data and trace flag 610 or SQL Server 2016+
    A clustered index with nonclustered indexes and TABLOCK and trace flag 610 or…

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

    We’ll send you updates on this idea

    under review  ·  0 comments  ·  Bugs  ·  Flag idea as inappropriate…  ·  Admin →
  5. Move measures between tables in SSAS Tabular

    In Power BI Desktop and Power Pivot, you can easily move a DAX measure between tables (since a measure isn't actually related to a table anyway).
    However, this is not possible in SSAS Tabular (current version: 2017). You can cut a measure, but only paste it again in the same table, not in a different table.
    The current process is to create a duplicate of the original measure with a different name, delete original measure and then rename the new measure. Time consuming.

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

    We’ll send you updates on this idea

    under review  ·  4 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  6. SSMS 18.0 tabs don't display proper contents

    I'm getting this CONSTANTLY on my new install of SSMS 18.0, and it's DANGEROUS. I'll open several tabs, and when I switch from one tab to another, the contents of the window don't change... I'm still looking at the old tab's contents with the new tab selected. It doesn't ALWAYS happen, but it happens at least half the time... FREQUENTLY. Further, I can close a tab, and the contents of the closed tab will still display under the new "top most" tab. This can lead to making changes to the wrong file, or being confused, and losing code. This is…

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

    We’ll send you updates on this idea

    23 comments  ·  Bugs  ·  Flag idea as inappropriate…  ·  Admin →
  7. Make is possible to retrieve all error messages in a CATCH handler

    When you trap an error in a CATCH handler, you can use the functions errormessage, errornumber etc to get information about the error. This works well, as long as only one error message is produced. However, there are situations where multiple error message. In this case you can only retrieve one error message, and with a bit of bad luck this is only a generic error message. A typical example is BACKUP-RESTORE:
    BEGIN TRY
    BACKUP DATABASE msdb TO DISK = 'X:\nosuchdisk\dxx.bak'
    END TRY
    BEGIN CATCH
    PRINT error_message()
    END CATCH

    The output is "BACKUP DATABASE is terminating abnormally." The…

    55 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 →
  8. Add Application-period temporal tables and Bitemporal tables to SQL Server 2016

    SQL Server 2016 has temporal tables however these are only for system period temporal tables.

    Please add Application-period temporal tables and Bitemporal tables similar to the existing feature in DB2.

    52 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: 29

    <=-=Jul 27 2016 5:17PM=-=>

    This feature vastly simplifies development of certain types of applications. Would be interesting at least know if microsoft has some intention to implement it.

    <=-=Jul 27 2016 5:19PM=-=>

    A fully compliant implementation to ansi sql 2011 would nice too.

    <=-=Jul 28 2016 1:01AM=-=>

    I would also like to see bitemporal support added, it would be most useful!

    <=-=Mar 7 2017 11:54AM=-=>

    This feature would really help people trying to migrate their DBs from DB2 or Oracle to SQL Server that much easier.

  9. Ability to upgrade SQL Server Management Studio directly from About menu

    I think it will be really cool to update the management studio directly from the about menu when it is open and also it for checking for new versions and notify us.

    Thanks in advance

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

    We’ll send you updates on this idea

    unplanned  ·  5 comments  ·  Setup + Deployment  ·  Flag idea as inappropriate…  ·  Admin →
  10. Add sp_estimate_data_compression_savings to SQL Azure Database

    Now Data Compression is available in Azure SQL Database (https://msdn.microsoft.com/en-us/library/cc280449.aspx), but the spestimatedatacompressionsavings is not available yet. The error message is:

    Msg 534, Level 16, State 1, Procedure spestimatedatacompressionsavings, Line 20 [Batch Start Line 14]
    'spestimatedatacompressionsavings' failed because it is not supported in the edition of this SQL Server instance 'MSSQLSERVER'. See books online for more details on feature support in different SQL Server editions.

    The workaround is to create another copy via database backup, compress and compare the table and index. But it takes more time, resource and money to get the result.

    51 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 →
  11. Named Parameters for User Defined Functions without EXEC

    Currently, stored procedures and scalar user-defined functions invoked with the EXEC keyword support named parameters.

    User-defined functions invoked as part of a SELECT or other statement require ordered parameter specification without parameter names.

    Specifying parameter names should be supported when invoked as part of a SELECT statement.

    When any parameters are named, all must be named,

    When any parameters are named, any omitted parameters should receive default values. Omitted parameters without default values should result in an error.

    See also:

    https://connect.microsoft.com/SQLServer/Feedback/Details/361449

    51 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: 25

    <=-=Feb 7 2017 7:34PM=-=>

    Yes! I myself a use heavily inline table value functions and that would improve the clarity of their use even more!

    <=-=Mar 5 2017 2:48PM=-=>

    We understand the requirement, and it is good that it gets a lot of votes in very short period. It is in out backlog and we will consider it for some of the next releases; however, currently we cannot confirm when it will be implemented..

    <=-=Dec 22 2017 3:17PM=-=>

    This would be quite incredibly useful. When it was added to C#, it was a “so-what?” thing for me at the time – but now, I don’t know how I ever coded without named parameters. It has saved me countless hours getting things right the first time, and not chasing around dumb problems. I am sure the same would be true if SQL Server supported named parameters in User-Defined Functions.…

  12. DIVIDE function in T-SQL

    The languages MDX and DAX both have a DIVIDE function, which has the following syntax:

    DIVIDE(<numerator>, <denominator> [,<alternateresult>])
    The alternate result is specified as the result when a division by zero is encountered. If it isn't specified, NULL is returned.

    This would be a fine addition to the T-SQL language.

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

    We’ll send you updates on this idea

    under review  ·  1 comment  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  13. Change execution plan terminology

    SQL Server has since almost forever used the terms "Actual Execution Plan" and "Estimated Execution Plan" for execution plans with and without added run-time counters. And this has since almost forever caused confusion and misunderstanding.

    Erin Stellato, Grant Fritchey, and me, with the help of Pedro Lopes, have prepared a proposal for better terminology. Terms that better describe the reality and have less chance for confusion.
    See https://sqlserverfast.com/blog/hugo/2020/02/stop-the-name-calling-execution-plan-terminology/ for a more detailed explanation.

    Together with Erin and Grant, I request Microsoft to change the terminology in their tooling. In the next release of Management Studio, please replace "Estimated Execution Plan"…

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

    We’ll send you updates on this idea

    unplanned  ·  7 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  14. SSMS and Grouping by Schema

    Let SSMS group tables & other objects by Schema! This makes large databases a lot easier to maintain.

    If I have a database with a lot of objects, say 300, organized in a lot of schemas (say 20), it is not easy to keep the overview. In Visual Studio there is a solution: You can group the objects by schema. There is even an outdated SSMS extension: https://ssmsschemafolders.codeplex.com

    48 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 →
  15. Create a new DMV that Exposes CPU Utilization Information

    One common way to get CPU utilization by SQL Server is to query the sys.dmosringbuffers DMV. This DMV is undocumented and unsupported. It also sometimes returns incorrect information (with negative values or values over 100%) on some systems. This usually happens on systems that have more than 64 cores. I have attached a sample query that uses sys.dmosringbuffers for this purpose.

    It would be very useful to have a new DMV (that was supported and documented) that would more reliably return this information.

    47 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 →
  16. Replace the import wizard with Power Query

    Instead of using the outdated import wizard (not the new one that was released recently in SSMS), a new one should be created that leverages the Power Query engine (aka the M language) to import data into SQL Server.

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

    We’ll send you updates on this idea

    under review  ·  3 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  17. Option to store query store data in a filegroup other than PRIMARY

    Query store data is incredibly useful but depending on activity and settings it can grow to quite a large size. I would like an option to store this data on a filegroup other than PRIMARY. This would allow discretion regarding storage used, reduce the impact to recovery times and give DBAs more flexibility in managing query store data.

    46 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: 57

    <=-=Feb 8 2017 2:13PM=-=>

    We disallow ALL use of the PRIMARY filegroup on the premise that any use of PRIMARY is unauthorized, and PRIMARY is set to a small size with no autogrow. Since the Query Store on very active servers with non-parameterized workloads grows very, very fast, setting it to a filegroup whose data file is on a specific LUN (based on speed and cost, i.e. a specific storage tier) is vital.

    <=-=Apr 2 2017 7:56AM=-=>

    Thank you for taking time to post this issue! We understand that this could be an important issue for you.

    We get a lot of feedback regarding PRIMARY filegroup from the field and many MVPs. �
    This item is high on our priory list, but unfortunately, we do not plan to include a fix for this issue in the upcoming release. Although, we might include it as an improvement in future…

  18. Filtered index not used when IS NULL and key lookup with no output

    Filtered index not used when IS NULL is used. IS NOT NULL works fine, but IS NULL does a key lookup. Same as this issue but on different version of SQL Server
    https://connect.microsoft.com/SQLServer/feedback/details/454744/filtered-index-not-used-and-key-lookup-with-no-output

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

    We’ll send you updates on this idea

    3 comments  ·  Bugs  ·  Flag idea as inappropriate…  ·  Admin →
  19. SQL2012 Could not locate Statistics on secondary replica

    When querying a table thru a linked server, got the following error message.

    Msg 2767, Level 16, State 1, Procedure sptablestatistics2rowset, Line 105
    Could not locate statistics '
    WASys00000007_47DBAE45' in the system catalogs.

    The database was a secondary replica, primary replica was fine. Ran dbcc show statistics on secondary replica, that failed to find statistics distribution. There was an entry in sys.stats on both. Drop statistics on primary, to resolve.

    44 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 →

    Upvotes: 48

    <=-=Jul 9 2014 11:04PM=-=>

    This is happening to us, at least 3 times a week, on different tables in the database. The drop statistics on primary works, but the processes that are meant to run on the secondary via, linked servers are failing! A real pain!

    <=-=Apr 2 2015 1:38AM=-=>

    >A real pain!
    +1

    <=-=May 4 2015 3:39AM=-=>

    Microsoft folks – Can we please have some kind of explanation on why this happens for dynamic stats and on the asynchronous node only? It has been a real pain for us to manually drop the statistic on the primary node to clean up the corrupt statistic on the asynchronous secondary node.

    <=-=May 19 2015 11:48PM=-=>

    Clearing the userstore_dbmetadata related pools on ASYNC commit resolves the issue.
    DBCC FREESYSTEMCACHE (‘dbname’)

    Or create a stored procedure to check if the instance is an ASYNC commit, then clear the cache using an…

  20. Change Tracking auto cleanup error 22123

    Just upgraded to 2016 SP2 (13.0.5026.0) and receiving frequent error messages logged from change tracking auto cleanup: Error 22123, severity 16, state 1 Change Tracking autocleanup is blocked on side table of "<>". If the failure persists, check if the table "<>" is blocked by any process . Routinely for different tables, not repeatedly from the same table.

    I suspect this was added as part of the changes to auto cleanup released in SP2, and is raised when a table is blocked and marked for retry. Can anyone please confirm this?

    Additionally, this seems to me like more…

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

    We’ll send you updates on this idea

    under review  ·  18 comments  ·  Bugs  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

SQL Server

Categories

Feedback and Knowledge Base