How can we help you today? How can we help you today?

Adding Intelligence to Intellisense

First let me say that v3 is a VAST improvement over v2 in many ways. I love the metadata caching. I work over a VPN most of the time and waiting for v2 to load metadata each time I typed a USE statement was driving me crazy. Well done, Red-gate!

Now, because the good usually comes with bad, the issues:

1. Not sure if someone has said this yet or not but I'm finding the suggested candidate list a little, well, non-intelligent.

For example, if I type GRANT the candidate list contains functions first, then some tables, then some keywords that don't make sense like "ALTER'.

There are a limited number of options that can go after GRANT. It would be nice if SQLPrompt knew these and only presented you with relevant candidates. In order to get 'grant update' in some databases I have to type 'grant update' before the candidate list shows me 'UPDATE' at the top. Typing 'grant upd<down><down><down>' doesn't save any typing.

2. I don't see anywhere where SQLPrompt can pick up and suggest user/login names. Again, back to the grant statement.

'grant update on [myTable] to' brings up the same list of candidates that 'grant' did by itself. Obviously, there is a limited population here consisting of users in the current database. Could SQLPrompt give you a list of these preferentially?

3. The ability to not have to enter all parametes of a stored procedure but still have the entries parameterized.

For example, I type 'sp_addlogin' and hit enter. I get:

[sp_addlogin]
@loginame = ?, -- nvarchar
@passwd = ?, -- nvarchar
@defdb = ?, -- nvarchar
@deflanguage = ?, -- nvarchar
Sid = ?, -- varbinary
@encryptopt = ? -- varchar

Nice, but I spend more time deleting the parameters I don't want to use. How about guided entry? For example, you type 'sp_addlogin' and hit enter.

You get:

sp_addlogin @loginname='

you type the loginname, type ', at the end and get

sp_addlogin @loginname='JoeUser',@passwd=

Get the idea? If you just hit enter at the = then the parameter gets replaced with the next one. For example, hitting enter on the line above would result in:

sp_addlogin @loginname='JoeUser',@defdb=

and not

sp_addlogin @loginname='JoeUser',@passwd=,@defdb=

Also, add an "escape" key so I can stop being asked for parameters. This way I don't have to type:

sp_addlogin @loginname='JoeUser'<enter><enter><enter><enter><enter><enter>

but can type

sp_addlogin @loginname='JoeUser'<esc><enter>



I realize these may be asking a lot and may be fodder for the next version but I think you're on to something with this product and would love to see it be all it can be.
JTShyman
0

Comments

2 comments

  • Tilman
    Hi,

    Thanks for the feedback.
    1. Not sure if someone has said this yet or not but I'm finding the suggested candidate list a little, well, non-intelligent.

    For example, if I type GRANT the candidate list contains functions first, then some tables, then some keywords that don't make sense like "ALTER'.

    There are a limited number of options that can go after GRANT. It would be nice if SQLPrompt knew these and only presented you with relevant candidates. In order to get 'grant update' in some databases I have to type 'grant update' before the candidate list shows me 'UPDATE' at the top. Typing 'grant upd<down><down><down>' doesn't save any typing.

    2. I don't see anywhere where SQLPrompt can pick up and suggest user/login names. Again, back to the grant statement.

    'grant update on [myTable] to' brings up the same list of candidates that 'grant' did by itself. Obviously, there is a limited population here consisting of users in the current database. Could SQLPrompt give you a list of these preferentially?
    These are valid points. I'm afraid we decided to concentrate on DML for this release, i.e. DDL and statements like GRANT are not supported in this version. We are definitely planning on supporting them in a future version, though.
    3. The ability to not have to enter all parametes of a stored procedure but still have the entries parameterized.

    For example, I type 'sp_addlogin' and hit enter. I get:

    [sp_addlogin]
    @loginame = ?, -- nvarchar
    @passwd = ?, -- nvarchar
    @defdb = ?, -- nvarchar
    @deflanguage = ?, -- nvarchar
    Sid = ?, -- varbinary
    @encryptopt = ? -- varchar

    Nice, but I spend more time deleting the parameters I don't want to use. How about guided entry? For example, you type 'sp_addlogin' and hit enter.

    You get:

    sp_addlogin @loginname='

    you type the loginname, type ', at the end and get

    sp_addlogin @loginname='JoeUser',@passwd=

    Get the idea? If you just hit enter at the = then the parameter gets replaced with the next one. For example, hitting enter on the line above would result in:

    sp_addlogin @loginname='JoeUser',@defdb=

    and not

    sp_addlogin @loginname='JoeUser',@passwd=,@defdb=

    Also, add an "escape" key so I can stop being asked for parameters. This way I don't have to type:

    sp_addlogin @loginname='JoeUser'<enter><enter><enter><enter><enter><enter>

    but can type

    sp_addlogin @loginname='JoeUser'<esc><enter>
    That's an interesting idea. I've added it to our list.
    Tilman
    0
  • Bart Read
    If you're finding it annoying you could just turn off the stored procedure/function signature insertion. You'll find it in the Options dialog on the Auto Insert tab. Simply uncheck "Insert parameters for functions and stored procedures" on this tab. You can then manually insert the parameters by selecting them from the completion drop down after you've entered:

    EXEC owner.sp_name

    Hope that helps.


    Thanks,
    Bart
    Bart Read
    0

Add comment

Please sign in to leave a comment.