<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Never Say Never &#187; RedGate</title>
	<atom:link href="http://phelabaum.com/archive/tag/redgate/feed/" rel="self" type="application/rss+xml" />
	<link>http://phelabaum.com</link>
	<description>MS SQL Server Development</description>
	<lastBuildDate>Thu, 29 Sep 2011 02:20:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Redgate Software &#8211; SQL Prompt</title>
		<link>http://phelabaum.com/archive/2009/12/redgate-software-sql-prompt/</link>
		<comments>http://phelabaum.com/archive/2009/12/redgate-software-sql-prompt/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 18:58:33 +0000</pubDate>
		<dc:creator>Seth Phelabaum</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[Apps/Tools]]></category>
		<category><![CDATA[intellisense]]></category>
		<category><![CDATA[RedGate]]></category>
		<category><![CDATA[SQL Prompt]]></category>

		<guid isPermaLink="false">http://phelabaum.com/?p=25</guid>
		<description><![CDATA[Redgate Software I&#8217;m going to post this entry *before* my blog starts being run on sqlservercentral.com so that people don&#8217;t assume I&#8217;m blowing smoke. Redgate is quite simply the best company I have ever done business with. Every single interaction I&#8217;ve ever had with them has been all I could ask for and then some, [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Redgate Software</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">I&#8217;m going to post this entry *before* my blog starts being run on sqlservercentral.com so that people don&#8217;t assume I&#8217;m blowing smoke.  Redgate is quite simply the best company I have ever done business with.  Every single interaction I&#8217;ve ever had with them has been all I could ask for and then some, and left me feeling good afterwards.  Every one of their tools that I try out changes the way I do things for the better in some large way.  I&#8217;ll probably talk about a few of the tools and how they helped me over time, but for now I&#8217;ll stick with SQL Prompt.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">SQL Prompt is basically Redgate&#8217;s Intellisense tool.  Until recently, SQL server didn&#8217;t offer intellisense and this filled an extremely valuable gap.  Personally, I&#8217;ve developed *without* intellisense for so long and type so fast that it actually annoys me as often as it helps; so I turn off the suggestions and only have it supply them when I ask for them.  Even without this though, several aspects of SQL Prompt save me a massive amount of time in my daily coding.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Favorite Features:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Column name lists.  These filter as you type them so you can just hit tab to complete the name.  Very useful if you can&#8217;t remember the exact column name.  This works as soon as you have the from clause on your query (and supports table aliases), so you&#8217;ll likely get used to writing the FROM clause of your queries first if you end up using the tool.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">SELECT * FROM &lt;table&gt; replacement.  SQL Prompt can automatically fill out all the field names.  Huge time saver.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">INSERT INTO &lt;table&gt; (Or Update).  SQL Prompt will generate all the fields in the insert list and corresponding values fields with a commented out field data type next to it.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">EXEC &lt;stored procedure&gt;.  This one is great.  This will supply all of the parameters that a stored procedure takes and the data types they should be filled in with.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Snippets: You can save snippets that can be auto inserted based on typing.  One that I use all the time is my &#8216;header&#8217; snippet, which is 15 or so lines of commenting that I put at the top of all my stored procedures.  I also save things like commonly used CTE&#8217;s and small bunches of code that I run all the time to analyze performance problems.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Gripes:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">There are two.  The fact that there are only 2 really says a lot for the product, because I&#8217;m exceptionally picky when it comes to tools that I use.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">The first is that it doesn&#8217;t highlight the beginning parenthesis as you close one.  Most versions of intellisense do this and it&#8217;s extremely handy as a quick reference to make sure you&#8217;re not lost in some monstrous nested function string.  Useful feature, maybe they&#8217;ll add it at some point.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">The second is actually a major annoyance and applies to both parenthesis and single quotes.  It auto replaces closing parenthesis/quotes as you type if there was another one immediately after your character.  For example:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Let&#8217;s say you have a statement like SELECT DATEADD(d, DATEDIFF(d,0,@MyDateField), 0).</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Then you decide you wanted to just use GETDATE() instead of @MyDateField, so you type it in.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">This would leave you with SELECT DATEADD(d, DATEDIFF(d,0,GETDATE(), 0) .</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">This is wrong.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">It should be:  SELECT DATEADD(d, DATEDIFF(d,0,GETDATE()), 0), but SQL Prompt automatically replaced the ) that was already there and ended the DATEDIFF with the one you typed in to close the GETDATE().  It does the same thing with single quotes which gets extremely confusing when you&#8217;re doing crazy things with dynamic SQL strings.  So if you do use SQL Prompt (as of version 4.0.2.53) be aware of this.  To get around it, either plan on it and type an extra ), or move your cursor so that it is to the right of the last ) or &#8216; and then type another one.  It only replaces them to the right, not the left.  Also, if you have a whole series of end parens, like )))), you&#8217;d actually have to type in the ) 5 times, as it would continually replace each one until you got to the end, and then you&#8217;d be inserting a fresh one.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">I reported this &#8216;bug&#8217; to them and asked if there was any way to not have it happen (to see if it was just a menu option somewhere).  While there is unfortunately not a fix for it at the moment, have a look at the response I received (less than 8 business hours later) from their support department.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Thanks for your enquiry.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">I have reproduced the scenario you described, and unfortunately there isn&#8217;t a way to turn off this behaviour.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">I have logged this as a bug with SQL Prompt 4, and now the developers are reviewing the issue.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Once they have had a chance to look at it, I can let you know if/when it will be fixed.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">For your reference, the bug tracking code for this is &#8212;&#8212;&#8212;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Thanks,</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">First class all the way in my opinion, this is everything you could ask for in a response to a bug report.  If you like intellisense and aren&#8217;t annoyed by it like myself, this tool is probably an even bigger benefit to you</div>
<p>I&#8217;m going to post this entry *before* my blog starts being run on sqlservercentral.com so that people don&#8217;t assume it is influenced by that in any way.  Redgate is quite simply the best company I have ever done business with.  Every single interaction I&#8217;ve ever had with them has been all I could ask for and then some, and left me feeling good afterwards.  Every one of their tools that I try out changes the way I do things for the better in some large way.  I&#8217;ll probably talk about a few of the tools and how they helped me over time, but for now I&#8217;ll stick with SQL Prompt.</p>
<p>SQL Prompt is basically Redgate&#8217;s Intellisense tool.  Until recently, SQL server didn&#8217;t offer intellisense and this filled an extremely valuable gap.  Personally, I&#8217;ve developed *without* intellisense for so long and type so fast that it actually annoys me as often as it helps; so I turn off the suggestions and only have it supply them when I ask for them.  Even without this though, several aspects of SQL Prompt save me a massive amount of time in my daily coding.</p>
<p><span style="text-decoration: underline;"><strong>Favorite Features:</strong></span></p>
<ul>
<li>Column name lists.  These filter as you type them so you can just hit tab to complete the name.  Very useful if you can&#8217;t remember the exact column name.  This works as soon as you have the from clause on your query (and supports table aliases), so you&#8217;ll likely get used to writing the FROM clause of your queries first if you end up using the tool.</li>
<li>SELECT * FROM &lt;table&gt; replacement.  SQL Prompt can automatically fill out all the field names.  Huge time saver.</li>
<li>INSERT INTO &lt;table&gt; (Or Update).  SQL Prompt will generate all the fields in the insert list and corresponding values fields with a commented out field data type next to it.</li>
<li>EXEC &lt;stored procedure&gt;.  This one is great.  This will supply all of the parameters that a stored procedure takes and the data types they should be filled in with.</li>
<li>Snippets: You can save snippets that can be auto inserted based on typing.  One that I use all the time is my &#8216;header&#8217; snippet, which is 15 or so lines of commenting that I put at the top of all my stored procedures.  I also save things like commonly used CTE&#8217;s and small bunches of code that I run all the time to analyze performance problems.</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Gripes:</strong></span></p>
<p>There are two.  The fact that there are only 2 really says a lot for the product, because I&#8217;m exceptionally picky when it comes to tools that I use.</p>
<ul>
<li>The first is that it doesn&#8217;t highlight the beginning parenthesis as you close one.  Most versions of intellisense do this and it&#8217;s extremely handy as a quick reference to make sure you&#8217;re not lost in some monstrous nested function string.  Useful feature, maybe they&#8217;ll add it at some point.</li>
<li>The second is actually a major annoyance and applies to both parenthesis and single quotes.  It auto replaces closing parenthesis/quotes as you type if there was another one immediately after your character.  For example:</li>
</ul>
<p>Let&#8217;s say you have a statement like</p>
<div class="codecolorer-container sql mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> DATEADD<span style="color: #66cc66;">&#40;</span>d<span style="color: #66cc66;">,</span> DATEDIFF<span style="color: #66cc66;">&#40;</span>d<span style="color: #66cc66;">,</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span>@MyDateField<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span></div></div>
<p>Then you decide you wanted to just use <code class="codecolorer sql mac-classic"><span class="sql">GETDATE<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> </span></code> instead of <code class="codecolorer sql mac-classic"><span class="sql">@MyDateField </span></code>, so you type it in.</p>
<p>This would leave you with </p>
<div class="codecolorer-container sql mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> DATEADD<span style="color: #66cc66;">&#40;</span>d<span style="color: #66cc66;">,</span> DATEDIFF<span style="color: #66cc66;">&#40;</span>d<span style="color: #66cc66;">,</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span>GETDATE<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span> </div></div>
<p>This is wrong.  It should be: </p>
<div class="codecolorer-container sql mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> DATEADD<span style="color: #66cc66;">&#40;</span>d<span style="color: #66cc66;">,</span> DATEDIFF<span style="color: #66cc66;">&#40;</span>d<span style="color: #66cc66;">,</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span>GETDATE<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span></div></div>
<p>SQL Prompt automatically replaced the ) that was already there to close the DATEDIFF with the one you typed in with GETDATE().  It does the same thing with single quotes (which gets extremely confusing when you&#8217;re doing crazy things with dynamic SQL strings).  So, if you do use SQL Prompt (as of version 4.0.2.53) be aware of this.  To get around it, either plan on it and type an extra ), or move your cursor so that it is to the right of the last ) or &#8216; and then type another one.  It only replaces them to the right, not the left.  Also, if you have a whole series of end parenthesis, like )))), you&#8217;d actually have to type in the ) 5 times, as it would continually replace each one until you got to the end, and then you&#8217;d be inserting a fresh one.</p>
<p>I reported this &#8216;bug&#8217; to them and asked if there was any way to not have it happen (to see if it was just a menu option somewhere).  While there is unfortunately not a fix for it at the moment, have a look at the response I received (less than 8 business hours later) from their support department.</p>
<blockquote><p>Thanks for your enquiry.</p>
<p>I have reproduced the scenario you described, and unfortunately there isn&#8217;t a way to turn off this behaviour.</p>
<p>I have logged this as a bug with SQL Prompt 4, and now the developers are reviewing the issue.</p>
<p>Once they have had a chance to look at it, I can let you know if/when it will be fixed.</p>
<p>For your reference, the bug tracking code for this is &#8212;&#8212;&#8212;</p>
<p>Thanks,</p></blockquote>
<p>First class all the way in my opinion; this is everything you could ask for in a response (other than an actual fix).    So&#8230; if you aren&#8217;t annoyed by intellisense like I am, this tool is probably an even bigger benefit to you,  and I&#8217;d definitely recommend heading over to <a href="http://www.redgate.com" target="_blank">www.RedGate.com</a> and downloading the SQL Toolbelt (available for a free 14 day trial).  I&#8217;m most likely going to be purchasing the entire toolbelt soon and will talk about a couple of the other products once I have full copies.  SQL Compare in particular is amazing even from the short time I spent playing with it.</p>
]]></content:encoded>
			<wfw:commentRss>http://phelabaum.com/archive/2009/12/redgate-software-sql-prompt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

