July 2004 - Posts

First, let me say that I love the Visual Studio SQL Editor. I love being able to browse, edit, and execute SQL Server objects straight from the IDE.  There are only a few things that keep the VS IDE from being my primary SQL tool.

  • Lack of a results “grid.“  Sometimes the query results never show up in the command window.  Besides, the grid view is easier for me to deal with in most cases.  I like being able to resize columns (it would be nice to be able to toggle their visibility on and off too). The SQL Editor tab should break down into 4 tabs, sort of like Query analyzer does, but including the Designer piece--Designer, SQL, Results, Messages.
  • Reformatting of my views.  I'd love to have the option of right-clicking the views in the Server Explorer, and see the script for them, instead of have them automatically pushed into the Query Designer.  The Query Designer reformats my SQL, which I hate.  Of course, if the Query Designer could be made use a syntax-highlighted, custom formatted version of SQL in its SQL pane, then I wouldn't mind so much.
  • No intellisense for SQL objects.  Some tools such as SQLBuddy are trying to implement this feature, but to my knowledge, none have really succeeded.
  • The ability to execute a stored procedure without actually committing them to the database. Perhaps we could have two options instead of Save: 1) Save as script file, Commit to database.  If Save as Script file is chosen, then the IDE should add the script file to the current project.  Scripting it out is a pain, especially if you have many parameters. Perhaps if the stored procedure hasn't been committed to the database yet, the IDE could perform the scripting out behind the scenes. Let the IDE DECLARE and set variable values, and execute the SQL, but hide that process from the developer.  Here's an example of what I mean:

ALTER PROCEDURE dbo.dummy

(

@Parameter int   ---passed in a 5

)

AS

SELECT * FROM MyTable WHERE index = @Parameter

The IDE could run the above as:

DECLARE @Parameter int

SET @Parameter = 5 --whatever value was passed in

SELECT * FROM MyTable WHERE index = @Parameter

  • I would like VS to not reformat my SQL when I switch from text view to designer view.  This would allow me to use the designer more often.
  • I would like the same ctrl-arrow and ctrl-backspace behavior inside a SQL Comment block as outside.  It’s annoying to have an entire comment erased because I tried to delete one word (using ctrl-backspace).
    I would like GUI support for creating my own SQL Object designers (i.e., my own Stored procedure layout, etc.).
  • I would like the SQL Database Diagram to show Crow’s feet style diagrams as well in addition to the Key relationships.
  • I would like to be able to define SQL Regions in the same way that I can define Code regions in Visual Basic.  This would allow me to arrange my scripts in a hierarchical fashion that could be easily navigated.
  • I would like to be able to graphically design my command file during the “Create Command File” process.  Mainly, I would like to be able to specify the order in which I’d like my scripts to run from within the GUI. It currently defaults to alphabetical which means I have to name my scripts things like “01 Drop Constraints.”  I would like this GUI to remember how I had my scripts organized last time so that I don’t have to change it every time.
  • Direct Access to the T-SQL help would be nice.  I don’t see it in the help menu.  
  • I don’t know if this one is even possible, but it would be really great to be able to create custom groups of related tables and other objects in the server explorer.  In this way, a database could be navigated in an intuitive and contextual manner rather than solely on the basis of the object type.  The current organization (grandfathered in from Enterprise Manager, I know) would be analogous to organizing the .NET Framework with System.Classes, System.Enums, and System.Interfaces.  Sure it’s one way to organize stuff, but it’s more of a haystack approach.
  • Here’s a pie-in-the-sky wish: tie a script file in a database project directly to an object in the database.  When we are ready to implement the changes, generate a change script to move from the current version of the table to the new version and prompt to auto-execute the script.  The script should be intelligent enough to preserve the existing data.
  • This one is posted in the comments on this post: the ability to set permissions on SQL Objects from Visual Studio.

Don't let this list of annoyances imply that I'm not pleased with Visual Studio to date--I am. I'm just pointing out where I think it could be stronger.  I'm trying to focus on the time-consuming tasks that I do repeatedly.

Thanks for listening.

I recently completed my first multi-threaded network component.  I'm not positive at this point that I necessarily used all the best practices, but it was fun, and a great learning experience besides.

It looks like I'll be moving on to the Compact .NET Framework soon. Does anyone have any suggestions as to where I could start looking to get acclimated to development methodologies and standards for the hand-held market?

Finally, I'm looking for an inexpensive and easy-to-use data-modeling program.  I have Visio, but it doesn't display the various types of relationships (one-to-many, one-to-one, etc.)--just a generic arrow; which could mean anything.

UPDATE per Jeff Bollinger

Visio can display cardinality and crows feet, by changing the settings. Go to Database -> Options -> Document -> Relationship.

Posted by taganov | 2 comment(s)
Filed under: ,
More Posts