My Management Studio wishlist for SQL Server 2011
Inspired both directly and indirectly by fellow MVP Erland Sommarskog, whose programming wishlist I talked about the other day, I have decided to compile a list of my own wish list items, in the same spirit of, "it's never too early." This list is restricted to issues involving Management Studio; I was going to cover all of the management tools that ship with SQL Server, but this quickly proved to be quite an undertaking on its own, and the rest I might leave to someone else.
I have grouped the items in seven different categories, and present them here in no particular order. Some are bugs that should be fixed, and some are suggestions that could use more weight if you are interested in seeing the changes. I did not spend a lot of time describing the items below, so if you don't get enough information here, please feel free to read the Connect feedback items themselves, as there is certainly more detail available there.
Editor / Results
- Support an advanced option to allow downlevel IntelliSense (e.g. in SQL Server Management Studio for the next version, SQL Server 2008 should be supported).
- Restore full Ctrl+N functionality, which doesn't appear to be available in all cases as of SQL Server 2008 RTM.
- Never truncate column names in grid results… currently depending on the font you have chosen, column names get truncated.
Connect #230600 / Connect #230912
- Use the same rules for deciding on column widths in grid results. It appears to partly be a function of the data, but also partly a function of how many resultsets have already been presented. Pulling the exact same data in successive queries, you can see staggered widths for the same columns.
- Support pushpin/auto-hide functionality for the results pane… this is one of the only panes that can't auto-hide and requires keyboard input to show/hide.
- There is a generic item that suggests some improvements to the new tab functionality.
- A while back I suggested improvements to the "save multiple files" dialog you get when you have multiple unsaved files open and try to close Management Studio. Currently you need to save each file one by one, and I think it could be more streamlined.
- It should be harder to accidentally start debugging; currently the debug icon is not very intuitive… it looks like the execute button from Query Analyzer, and many users upgrading directly from 2000 to 2008 tools are going to start debugging sessions accidentally.
- Restore full F8 functionality. Currently this opens Object Explorer (sometimes), but it is no longer possible to close it using the same keyboard shortcut.
- Allow custom folders to organize objects by schema, or functionality, etc.
- Same custom folder organization could be implemented for SQL Server Agent and Linked Servers
- In the list of synonyms, show different icons or group the items to Indicate object type.
- Include synonyms (with slightly different icon) in list of procedures, tables etc., making them more discoverable.
Object Explorer Details
- Do not load all object explorer details data when the window is not even displayed; barring that, at least fix the cursor that runs queries for every db when showing Object Explorer results.
- Rather than generate an error, ignore or bypass Object Explorer Details for objects (e.g. databases) where the user doesn't have access.
- There are some sorting issues in Object Explorer Details as well.
Scripting / Designers
- Fix BIT data type entry in "open table" / "edit top n"… currently this grid only accepts TRUE/FALSE, and does not accept 1, 0, -1, T, F, etc. There are five active items about this… take your pick.
- Stop referencing deprecated objects such as sysobjects.
(There should also be a thrust for not submitting ad hoc sql to the server. And definitely lose any old-style joins… though I couldn't find any examples of this in SSMS 2008.)
- Deprecate open table. 'Nuff said.
- Some scripting options still yield dynamic SQL, which generates scripts that are much harder to read/debug.
- Many people have complained about slow scripting performance; I'm hoping Erland will point me to one of his items that demonstrates this symptom.
SQL Server Agent
- Job step command window should support most editor functionality — syntax highlighting has gone away, tab and shift+tab don't work as expected against selected text, and the parse button behaves differently than in a normal query window. I think IntelliSense could be there too, but didn't feel strong enough about it to submit an item.
- In the Job Activity Monitor and Job History viewer, consistent times need to be shown. In some cases server time is shown, and in some cases client time is shown… this can cause confusion when the server is in a data center on the other side of the country or on the other side of the world. This should be more consistent.
- There should be a top level node for managing schedules, as currently you can only edit a schedule from within one of the jobs it is enclosed in, and it is not clear whether the changes affect that job only, or if they affect all jobs associated with that schedule.
- In the history / log file viewer, there is no ability to sort any columns.
- The history / log file viewer is modal, making it hard to escape and go back to the job steps… or to compare history of two jobs in separate windows (instead of interspersed in the same window). Would be great if this were non-modal and/or allowed multiple.
- Since occasionally an error message is long enough to be clipped, all dialogs should have a maximize button.
- There are several minor issues with dialogs (especially modal) not respecting primary or initial monitor when using SSMS on multiple monitors.
- On many dialogs where you can browse for a folder, you can create a new folder inline; however, there are many examples in SSMS where you can't. The browse or find folder dialogs should all use a common underlying control that allow inline folder creation. I'm surprised this kind of dialog is allowed within Windows logo guidelines, or whatever they're calling their standards compliance policies these days.
- In the grid mode of Top SQL, queries that contain carriage returns, line feeds, tabs etc. end up displayed with ugly boxes.
- With a long query, the tooltip that hovers over the grid row shows part of the SQL, but not all. My suggestion is that if the tooltip can't show the whole query (which is reasonable), it should indicate that there is more behind it, for example with ellipses.
Of course, you will note that most of the items above are my own. However, I am sure I missed many that are equally important, or more so. If you have other Connect items that you feel deserve more exposure, please post them below.
I have stumbled upon this post by sheer accident and I just wanted to share, that I have recently discovered an add-in for SSMS that extends its functionality to allow grouping of databases, tables etc. in custom defined folders. The product website is http://www.skilledsoftware.com. Maybe someone will find this one useful. I did 🙂
how about the ability to alphabetize columns, in a query, in a view, etc
I'd honestly like some helpers to alphabetize columns in a view.. that would be great
how about including simple copy and paste functionality– you know the functionality that used to be included in 'Analysis Manager'?
Why can't I copy / paste a table, full of data?
Access Data Projects make this easy… but this should be a part of basic SQL Server Management Studio functionality
My number one feature is better extensibility support (MEF), similar to what has happened in VS2010. Guessing that VS and SSMS share much of the same code base I'm hoping to see a SSMS transition to WPF and also MEF extensibility support.
Support for SubVersion
There are few good features MS Access: I wish that kind of functinality is available in SQL SERVER Too. If already available, I'm unaware.1. RE: Access database 2003 window: on left the vertical bar has Objects and groups (favorites). Custom groups too can be defined. 2. Re: Details pane of database window: in Details view, Description column is useful- Rightclick object bname and properties value allows adding/changing description and marking object HIDDEN.
I've voted for a number of the bugs above on Connect, and really hope some of them can be added in the next version.
I know this is a bit of an obvious one, but would anyone mind voting for my suggestion to automatically update stored procedures and functions when you rename a table/column:
I've got three Connect items related to the new Activity Monitor that I think are relevant to your posting:
I second Aaron's comment: "A very, very important one that I forgot on my list was the ability to prevent Object Explorer from displaying databases that I don't have access to." I'd add that I would like to see a way for the setting which doesn't display system objects made alterable only by those with a certain level of access to the server. At present any user of Management Studio can set this flag one way or the other. I would like to make the tool available to certain end users and while I realise they can't alter system objects (including the master database) I think it's wrong that they can look in master and for example see a list of logins or databases which don't concern them. Better to deploy the tool to them with no ability to view system objects and know that it will stay that way.
Thanks Roy! I knew I had seen one somewhere.
At least one old style join still appears in sp_spaceused, not that it matters all that much.
@reservedpages = @reservedpages + sum(reserved_page_count),
@usedpages = @usedpages + sum(used_page_count)
FROM sys.dm_db_partition_stats p, sys.internal_tables it
WHERE it.parent_id = @id AND it.internal_type IN (202,204,211,212,213,214,215,216) AND p.object_id = it.object_id;
Erland has pointed out a couple of other items that will greatly affect the way SSMS loads Object Explorer and more specifically the list of databases:
Denis Gobo found it for me, although the title and description are kind of backwards. The submitter is saying that certain things are NOT showing up in certain scenarios, when my beef is that an entire database node should not be shown unless I have some reason to be able to see it. In any case, here it is:
A very, very important one that I forgot on my list was the ability to prevent Object Explorer from displaying databases that I don't have access to. I have been trying to find a Connect item for this, and cannot. This potentially helps with #357349 of course, but more importantly, when I am connecting to my shared hosting SQL instance at my ISP, I shouldn't be able to scan the list of database names and see who else is their client.
Kevin, that's possible, but the only ones that even have a chance of making a cut are the ones that are considered bugs. Anything that is a new feature would not, and should not, be added in a service pack.
This may sound like a wishlist for SSMS 2011, but how about this being a wishlist for SSMS 2008 SP1? I could use a lot of these features now rather than 3 years from now.
I checked all of them and voted.
I couldn't find an entry related to what I mentioned in my previous post, so I filed one.
Thanks Alejandro, I have submitted multiple connect items against the filtering, but not that specific issue. You can see a few others here:
Nice list Aaron. I would add a slight change to saving XML query plans. As of right now if you have 10 graphical query plans showing in SSMS you can save each one individually as an XML query plan (.showplan), but I don't see any option to save them all to a single file at once.
Great list. I just fwded the link to the whole team.
Definitely a great list, and thanks for compiling it.
One item I would like to add, is to be able to filter by multiple values in the object explorer. Right now it seems you can just filter by one value. For example, if I just want to see tables for a group of schemas.
I haven't filed a connect entry.