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. SQL Server Integration Services: Auto Task Retry

    SQL Server Integration Services:
    Add a property to tasks to retry themselves on failure with a defined wait time / number of tries.

    1 vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      Signed in as (Sign out)

      We’ll send you updates on this idea

      0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
    • Use Zstandard compression instead of LZ77 across SQL Server

      I suggest changing the columnstore archival compression algorithm from LZ77 to Zstandard, which provides better compression ratio, while being much much faster at compression and decompression speeds. The reference implementation is licensed with BSD license. https://facebook.github.io/zstd/

      Performance of Zstandard tends to be order-of-magnitude better than LZ77.

      Any compression used by SQL Server can benefit from that: columnstore archival compression, backup compression, maybe even page compression. It is worth considering if TDS can also use Zstandard compression to decrease network transmit time of large data sets and generally increase performance (also of linked servers). This TDS compression could be configurable so…

      1 vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        Signed in as (Sign out)

        We’ll send you updates on this idea

        0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
      • Execution plan search option only searches first plan

        See the attached image for details..
        Am using SSMS 17.5

        Assume we have 2 sections of plans in the Execution Plan window, which got displayed by executing 2 queries in one batch.

        Test case 1:
        1. Right click 1st section of the execution plan panel and click "Find Node" menu from the context menu. The filter window appears on the right top of the execution plan panel.
        2. Search for a Node Id and hit the arrow button. The node gets highlighted.

        Test case 2 - (Issue here):
        1. Walk though the test case mentioned in the 1st test case…

        1 vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          Signed in as (Sign out)

          We’ll send you updates on this idea

          0 comments  ·  Bugs  ·  Flag idea as inappropriate…  ·  Admin →
        • Add Default Backup Checksum Option to SSMS GUI

          SSMS should have a checkbox under Server Properties, on the Database Settings page, labeled something like "Use Backup Checksums" that would toggle the sp_configure setting for "backup checksum default". This would make it easier for people to enable backup checksum default, which is a good "best practice" that the tooling should encourage.

          7 votes
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            Signed in as (Sign out)

            We’ll send you updates on this idea

            1 comment  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
          • Explain why indexes were skipped

            Feature request: expose information about what indexes the optimizer considered while compiling an execution plan. Specifically, the index names and WHY the index was rejected for that particular query. This could potentially be included in per-operator execution plan properties (see attached mockup), an extended event target, or some other avenue.

            Reason: many developers and DBAs wonder why certain indexes on their tables aren't being chosen for specific queries. This gives them better tools to figure that out and make better use of the SQL Server product.

            I've blogged about this feature request in more detail here: http://joshthecoder.com/2018/06/21/feature-request-index-rejection-reasons.html

            This request was…

            5 votes
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              Signed in as (Sign out)

              We’ll send you updates on this idea

              0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
            • Support Parameter Embedding Optimisation for queries that assign to variables

              `OPTION (RECOMPILE)` is needed to get a filtered index to match when the predicate is using variables or parameters.

              Recently I had a need to perform conditional logic in a stored proc dependant on whether or not a predicate (matched by a filtered index) contains any rows.

              1st attempt

              IF EXISTS(SELECT ...)

              But no way of applying a query hint to the query in an IF that I can see so no way of adding OPTION (RECOMPILE).

              2nd attempt

              SELECT @RowsExist = CASE WHEN EXISTS(SELECT ...) THEN 1 ELSE 0 END OPTION (RECOMPILE)

              But this doesn't work either as the…

              2 votes
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                Signed in as (Sign out)

                We’ll send you updates on this idea

                0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
              • Fully implement Contained Database Feature

                We didn't find fully containment in any of the SQL Server after 2012. Still using same methodoly to move users.

                Please include this full feature in SQL Server 2017

                1 vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  Signed in as (Sign out)

                  We’ll send you updates on this idea

                  0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
                • EXCEPTION_ACCESS_VIOLATION when SELECT'ing from a cloned db and table is partitioned

                  Issue:
                  Cloned db, gets exception when trying to SELECT from a partitioned table.

                  Other tables in the clone db SELECT's work.

                  Dump file attached.

                  Server:
                  SQL Server 2016 SP1 CU9
                  (tested with the same parent db on multiple hosts)

                  Clients:
                  SSMS 2017 17.6
                  SSMS 2016
                  sqlcmd

                  T-SQL:
                  sp_help mytable --works
                  sp_helpindex mytable --works
                  select top 1 * from mytable --exception

                  WinDbg .ecxr and kC1000 output:
                  0:000> .ecxr
                  rax=0000000000000000 rbx=000000a1e08416b0 rcx=000000a889258060
                  rdx=0000000000000200 rsi=000000a1220dca68 rdi=0000000000000001
                  rip=00007ffee881434e rsp=0000009ea4cbadd0 rbp=0000000000000000
                  r8=0000000000000000 r9=0000000000000000 r10=000000a99352c000
                  r11=0000000000000007 r12=00007ffee9eaa178 r13=0000000000000001
                  r14=000000a8c3da5a48 r15=0000000000000001
                  iopl=0 nv up ei pl nz na po nc
                  cs=0033 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010206 …

                  1 vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    Signed in as (Sign out)

                    We’ll send you updates on this idea

                    0 comments  ·  Bugs  ·  Flag idea as inappropriate…  ·  Admin →
                  • UNIQ_SnapshotChunkMapping is missing from the ReportServer_tempdb database SegmentedChunk table.

                    1) It is a bad practice to use an index hint, because if the index gets dropped, you'll introduce a bug.
                    2) This has been a bug since SQL Server 2008 R2 and possibly before.

                    Either remove the hint from the stored procedures:
                    [ReportServer].[dbo].[CopyChunks] and [ReportServer].[dbo].[CopyChunksOfType]

                    3 votes
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      Signed in as (Sign out)

                      We’ll send you updates on this idea

                      0 comments  ·  Bugs  ·  Flag idea as inappropriate…  ·  Admin →
                    • being able to stop SSMS searching through an entire solution

                      Sometimes Find and Replace changes Look in to 'Entire Solution' unexpectedly. In a big solution, possibly with connections that may not work anymore, search will open all these files, sometimes presenting dialogs, without a possiblility to stop. This happened to me a couple of times, and really wastes a lot of time.

                      1 vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        Signed in as (Sign out)

                        We’ll send you updates on this idea

                        0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
                      • Make built-in FORMAT function deterministic

                        Now it's impossible to use FORMAT function in PERSISTED COMPUTED columns because it's non-determistic. Example here https://stackoverflow.com/q/37621457/1548895 Of course, you cast reuse other functions for this case but this is so much inconvenient.

                        2 votes
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          Signed in as (Sign out)

                          We’ll send you updates on this idea

                          0 comments  ·  Bugs  ·  Flag idea as inappropriate…  ·  Admin →
                        • SSMS: add option to hide/unhide result sets and query plans

                          When you run something that produces many result sets (for instance a stored procedure you are debugging /troubleshooting) not all result sets may be of interest. I can get more space for the result sets I want to see by dragging the bar around, but I can't hide thm entirely. And it is a bit tedious. There should be an ability to hide a result entirely, so that only a expansion cross or similar remains. There could be such expansion icons on all result set, but another option is to add it on the context menu. Particularly, you could then…

                          1 vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            Signed in as (Sign out)

                            We’ll send you updates on this idea

                            0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
                          • SSMS should retain mapping to server/database after waking up after hibernate

                            Today, when you wake up a computer from hibernate/sleep, all Windows in SSMS appears as "not connected". However, if you lose network connection while the computer is awake, SSMS does a good job to reconnect to the server/database you were connected to under the covers. So why cannot this happen on wakeup? I understand that the windows are disconnected, but SSMS could still display server/database on the tab (if configured to do so) and then connect on first attempt to run in that window. This is something I run into daily.

                            1 vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              Signed in as (Sign out)

                              We’ll send you updates on this idea

                              0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
                            • SSDT - column names not validated for temporary tables in procedures

                              When a temporary table is referenced from within a stored procedure, the table's column names are validated for insert operations, but not for select, update or delete.

                              It's not caught as a warning or error during build, nor during deployment. This is only caught at runtime.

                              To repro:
                              1) create a new empty SSDT project.
                              2) add a database reference to the master database
                              3) add the attached demo procedure
                              4) build

                              expected: warning of unknown column names
                              actual: no build or deployment warnings. At runtime:

                              (8 rows affected)
                              Msg 207, Level 16, State 1, Procedure Test1, Line 14 [Batch…

                              1 vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                Signed in as (Sign out)

                                We’ll send you updates on this idea

                                0 comments  ·  Bugs  ·  Flag idea as inappropriate…  ·  Admin →
                              • KPI incorrect percent in case if goal has negative value

                                Reporting services KPI: incorrect percent in case if goal has negative value.

                                Scenario: comparison of current and last year figures.
                                In case if last year value (goal) is negative, and actual value is positive: KPI percent is negative, but it must show positive grows.

                                Please, see data example:

                                Product: SSRS 2016

                                1 vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  Signed in as (Sign out)

                                  We’ll send you updates on this idea

                                  0 comments  ·  Bugs  ·  Flag idea as inappropriate…  ·  Admin →
                                • Let me add a Safeguard to prevent unauthroized database restores

                                  Even us DBA's are human, we make mistakes. I need a simple method to prevent a DBA - SA from running a database restore without first double, triple, quadruple checking. Something like a SERVER Trigger that unless disabled, will stop a restore command before it begins. This will prevent a casual/accidental restore of a database. Yes, this happened where I work. The DBA thought the connection was to the development server, it wasn't it was connected to production. A simple click and the restore took off. At this point it was already too late. Had there been a SERVER trigger…

                                  1 vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    Signed in as (Sign out)

                                    We’ll send you updates on this idea

                                    0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
                                  • SQL Server Always On Health Report before executing a failover

                                    Hi Msft Team!
                                    I'm writing to you to give you a recommendation in SQL Server Always on Feature. Every time that I need to perform a manual failover I need to check some things to avoid any issue. Those are:
                                    1) Nt\authority system account permissions (Otherwise the failover will not be successful)
                                    2) Current transactions running (Otherwise.. All the transactions that are running since long time will be killed on the primary which means that the secondary will turned into recovery state until those transactions finishes)
                                    3) Any delay on long send queue size/Harden/redo queue size /Redone (Example always on…

                                    4 votes
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      Signed in as (Sign out)

                                      We’ll send you updates on this idea

                                      0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
                                    • SQL Server Azure - Bulk Insert to temp table fails when running under user other than sysadmin

                                      Bulk insert to a temporary table in SQL Server azure from an Azure blob only seems to work when running under the sysadmin account.

                                      The following scenarios describe the situation:
                                      - non sysadmin user into permanent table : works OK
                                      - non sysadmin user into temp table : doesn't work - Msg 4834, Level 16, State 1, Line 31
                                      You do not have permission to use the bulk load statement.
                                      - sysadmin user into permanent table: works OK
                                      - sysadmin user into temp table: works OK.

                                      This is a little frustrating as it means we need to use the sysadmin…

                                      1 vote
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        Signed in as (Sign out)

                                        We’ll send you updates on this idea

                                        0 comments  ·  Bugs  ·  Flag idea as inappropriate…  ·  Admin →
                                      • diagram modal

                                        I had this odd situation with multiple monitors.
                                        SSMS on secondary monitor.
                                        Used 'create new database diagram'. This opened a non-modal 'add table' dialog on the primary monitor which I didn't notice.

                                        I used 'Add table' from the secondary monitor. Completed the diagram and saved.

                                        Now I noticed the first add table dialog which I was unable to close.

                                        When closing SSMS I was then told there was an active dialog and did I want to force a shutdown. Answering yes succeeded but there was an exception dialog.

                                        Right click on diagram and select 'add table'

                                        1 vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          Signed in as (Sign out)

                                          We’ll send you updates on this idea

                                          0 comments  ·  Bugs  ·  Flag idea as inappropriate…  ·  Admin →
                                        • Identify Slow Queries in Stored Procedures

                                          Slow queries in stored procedures are difficult to find. After much searching on Google and some enhancing, I use the query below to find slow queries. The 3 ORDER BY clauses find the slowest query per execution, the query with the highest total time, and the query that executes the most. It is very helpful to know which query in which stored procedure is slow. I suggest adding this or something similar to the "Reports->Standard Reports" area of SSMS.

                                          SELECT qs.total_elapsed_time,
                                          qs.last_execution_time, qs.execution_count, qs.total_worker_time,
                                          so.name,
                                          SUBSTRING(st.text,qs.statement_start_offset/2+1,
                                          ((CASE WHEN qs.statement_end_offset = -1 THEN DATALENGTH(st.text)
                                          ELSE qs.statement_end_offset END) - qs.statement_start_offset)/2 + 1)…

                                          1 vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            Signed in as (Sign out)

                                            We’ll send you updates on this idea

                                            0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
                                          ← Previous 1 3 4 5 406 407
                                          • Don't see your idea?

                                          SQL Server

                                          Feedback and Knowledge Base