<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blog.magenic.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The W Blog</title><link>http://blog.magenic.com/blogs/whitneyw/default.aspx</link><description>Whitney Weaver, Magenic Technologies</description><dc:language>en</dc:language><generator>CommunityServer 2.1 (Build: 60809.935)</generator><item><title>OT: Another reason to love Red Gate</title><link>http://blog.magenic.com/blogs/whitneyw/archive/2008/11/21/OT_3A00_-Another-reason-to-love-Red-Gate.aspx</link><pubDate>Fri, 21 Nov 2008 20:15:22 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:7372</guid><dc:creator>WhitneyW</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/whitneyw/comments/7372.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/whitneyw/commentrss.aspx?PostID=7372</wfw:commentRss><description>&lt;p&gt;After Thursday’s sessions ended I was invited to a dinner thrown by Red Gate software.&amp;#160; I’m in their “Friends of Red Gate” program, which basically means I show their tremendous software to customers or at user groups.&amp;#160; It’s been an easy relationship for me as I am quite a fan of their products.&lt;/p&gt;  &lt;p&gt;So the event is packed at a local restaurant, we all sit down and on either side of me I’ve got Peter deBetta and Adam Machanic.&amp;#160; Also at the table is Roman Rehak and Heidi Sweeney.&amp;#160; Not bad company at all, right?&amp;#160; So the conversation runs in every possible direction and a lot of red wine and good food follows.&amp;#160; I begged off the party at 3 as I’m a sissy (or at least that’s what I was told).&lt;/p&gt;  &lt;p&gt;Red Gate put on a really great evening and their people are even better than the products they build (if you can imagine).&lt;/p&gt;  &lt;p&gt;UPDATE: I added a couple iPhone photos from the evening.&amp;#160; &lt;/p&gt;  &lt;p&gt;Note the serious, foreboding face of one Peter DeBetta…&lt;/p&gt; &lt;img src="http://numyjw.blu.livefilestore.com/y1pE02ghRRzdOi7yr2po0qXVLhdqdox3dPYlzW_r5Os-MmTy-19duFlggvqHgPd_h5oySMPM-Zazj8" width="240" height="180" /&gt;&lt;/img&gt;   &lt;p&gt;And the rest of the gang…Rowan, Heidi, and Adam.&lt;/p&gt; &lt;img src="http://numyjw.blu.livefilestore.com/y1p27guDvxmUX1irzpPxuGlK8E5mdzAHn4Eb4KKPop_Fw87ZnvrOnquFe1K0eEuZGxlvmQyhH-AF8U" width="240" height="180" /&gt;&lt;/img&gt;&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=7372" width="1" height="1"&gt;</description></item><item><title>SQL PASS: Thursday</title><link>http://blog.magenic.com/blogs/whitneyw/archive/2008/11/21/SQL-PASS_3A00_-Thursday.aspx</link><pubDate>Fri, 21 Nov 2008 19:37:28 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:7369</guid><dc:creator>WhitneyW</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/whitneyw/comments/7369.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/whitneyw/commentrss.aspx?PostID=7369</wfw:commentRss><description>&lt;p&gt;Another fun filled day at PASS started with a session from Kalen Delaney.&amp;#160; The room was packed and she was discussing query plans.&amp;#160; I had heard a good bit of the content before but it was still interesting to finally see her present live.&amp;#160; Very much like Itzik, her asides can be as informative as the content in her slides or demos.&lt;/p&gt;  &lt;p&gt;The second session was a lot of fun as Paul Nielson and Louis Davidson had everyone join in their personal debate over what exactly is “proper design”.&amp;#160; It was a 300 level session so nothing really earth-shattering came from it but it was really interesting to see the wide range of opinions across the room.&amp;#160; There were even defenders of the dreaded “Muck” table, or the single table housing all look-up data (the horror!).&amp;#160; I tend to fall on Louis’ side of most issues, but Paul made some strong arguments as well.&amp;#160; At the end of the session Paul demoed a project called NORDIC which is an object-oriented database design.&amp;#160; I’ll need to give this more attention before commenting but it certainly left me with questions swirling in my head.&lt;/p&gt;  &lt;p&gt;The third session I attended was the most fun for me personally.&amp;#160; Erik Kang, Program Manager from the product team, discussed intellisense and the debugger in 2008.&amp;#160; We talked for a while after the session and I have a much better understanding of where he was coming from back in our early &lt;a href="http://blog.magenic.com/blogs/whitneyw/archive/2008/05/04/Backward-compatibility-for-IntelliSense-please.aspx"&gt;conversations&lt;/a&gt; about down-level support for intellisense.&amp;#160; I think there are other pieces of the product that will be much better for the attention devoted to them than the time for implementing down-level support.&amp;#160; I missed two opportunities to meet his team this week which really bummed me out.&amp;#160; Just too many pieces of my schedule have been in play to make it happen.&lt;/p&gt;  &lt;p&gt;The last session was a question and answer time with three general managers of the SQL team.&amp;#160; They basically let attendees line up and fire questions at them for over an hour and a half.&amp;#160; Now that’s brave.&amp;#160; Some really interesting questions (some polite others not so much) were asked ranging from dedication to new product features (we hardly knew you Notification Services) to future support for jdbc driver.&amp;#160; The coolest part to me was when a question was trending towards too technical a direction the GMs were able to point into the crowd and say “oh, here’s &lt;em&gt;XXX&lt;/em&gt; he/she is the program manager for the area you’re discussing, they would be more than happy to talk more about it…”.&amp;#160; Another benefit of having the event so near Redmond.&lt;/p&gt;  &lt;p&gt;All in all, a tremendous day of SQL geekiness.&amp;#160; I have to give some props again to Magenic for okaying this adventure out to the northwest.&amp;#160; It’s been a great time.&lt;/p&gt;&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=7369" width="1" height="1"&gt;</description></item><item><title>SQL PASS: Wednesday</title><link>http://blog.magenic.com/blogs/whitneyw/archive/2008/11/19/SQL-PASS_3A00_-Wednesday.aspx</link><pubDate>Wed, 19 Nov 2008 23:59:50 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:7326</guid><dc:creator>WhitneyW</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/whitneyw/comments/7326.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/whitneyw/commentrss.aspx?PostID=7326</wfw:commentRss><description>&lt;p&gt;A quick post about today’s sessions so far…Ted Kummert’s keynote was interesting in how sparse his details were.&amp;#160; &lt;a href="http://sqlblog.com/blogs/aaron_bertrand/archive/2008/11/19/pass-keynote-wednesday-delivering-on-our-data-platform-vision.aspx"&gt;Aaron&lt;/a&gt; has a good overview of his talking points – I won’t bother retyping.&amp;#160; I guess I was expecting at least one big “woo hoo” announcement out of him.&amp;#160; Oh well.&lt;/p&gt;  &lt;p&gt;The most interesting thing I saw was a demo from Dan Jones of a new feature called DAC.&amp;#160; The basic premise is that you have a “fabric” of instances defined and you can then create a deployment package (Dan used the analogy of an .msi for the database) for use against any of those instances.&amp;#160; The tool in SSMS will allow you to apply policy to the deployment and check for successful passage of said policies before implementing on the target instance.&amp;#160; Very cool.&lt;/p&gt;  &lt;p&gt;Another great piece of the keynote was a demo of some of the DATAllegro features that will be rolled into the next version of the product.&amp;#160; A demo took place showing data being spread across multiple instances then coming together as it was accessed via an SSRS report.&lt;/p&gt;  &lt;p&gt;I went to Mark Sousa’s session on lessons learned by the SQLCAT team around SQL 2008 installations.&amp;#160; The session focused on places where the product team expecting certain behaviors and were surprised by results on the ground (both positive and negative).&lt;/p&gt;  &lt;p&gt;I’m about to head to a session with Paul Randall and Kimberly Tripp called “Corruption Survival Techniques”.&amp;#160; I suspect my head will be close to explosion after listening to those two for an hour and a half.&amp;#160; :)&lt;/p&gt;  &lt;p&gt;More fun to come…&lt;/p&gt;&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=7326" width="1" height="1"&gt;</description></item><item><title>Headed to PASS</title><link>http://blog.magenic.com/blogs/whitneyw/archive/2008/11/17/Headed-to-PASS.aspx</link><pubDate>Tue, 18 Nov 2008 01:29:18 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:7278</guid><dc:creator>WhitneyW</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/whitneyw/comments/7278.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/whitneyw/commentrss.aspx?PostID=7278</wfw:commentRss><description>&lt;p&gt;I’m a couple thousand miles over Colorado as I’m typing this, headed to Seattle and the PASS conference.&amp;#160; Should be a tremendous week of content and networking.&amp;#160; It’s also a bonus to be so close to the Microsoft campus.&amp;#160; I will finally get to put a face with a couple names that have been very helpful to me over the years.&lt;/p&gt;  &lt;p&gt;If you are going to be attending the conference drop me a line through the Contact section of this blog and we can meet up during the week.&lt;/p&gt;&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=7278" width="1" height="1"&gt;</description></item><item><title>Where have you been?…I blame Windows 7</title><link>http://blog.magenic.com/blogs/whitneyw/archive/2008/11/13/Where-have-you-been_3F002620_I-blame-Windows-7.aspx</link><pubDate>Thu, 13 Nov 2008 04:02:29 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:7130</guid><dc:creator>WhitneyW</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/whitneyw/comments/7130.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/whitneyw/commentrss.aspx?PostID=7130</wfw:commentRss><description>&lt;p&gt;I recently broke my own blog admonition about Windows 7 and virtual environments.&amp;#160; In my defense, I came across a laptop drive in my home office that worked in my Dell D620.&amp;#160; That’s a sign right?&amp;#160; You’re just meant to install it… :)&lt;/p&gt;  &lt;p&gt;So I gave it a whirl fully expecting to either blue screen my laptop (at best) or end up with scorch marks in the carpet and a bad limp.&amp;#160; I was thinking back to the beta of Vista that had all sorts of little maddening quirks.&lt;/p&gt;  &lt;p&gt;I think I was struck most by just how uneventful the whole installation process was.&amp;#160; The look and feel was pretty Vista like with some nice differences from my current 64-bit Vista install.&amp;#160; I really liked the paired down feel with the removal of duplicated items like Mail and Photo Gallery (which can be replaced by installing Windows Live versions).&amp;#160; &lt;/p&gt;  &lt;p&gt;The largest effort in setup was getting the “superbar” or taskbar to show up like the demos seen at PDC.&amp;#160; If you are interested &lt;a href="http://www.withinwindows.com/2008/11/02/flashy-windows-7-bits-protected-by-elaborate-scheme-workaround/"&gt;Rafael&lt;/a&gt; has the easy steps to make that happen for you.&lt;/p&gt;  &lt;p&gt;Knowing I was dealing with a spare drive I got a bit of a daredevil streak going.&amp;#160; I tried installing the drivers for my broadband modem.&amp;#160; I installed Office, I set up connection to my company’s Exchange server and started dragging email over.&amp;#160; I then kicked off the Windows Live installer and fired up IE.&amp;#160; With all this activity going on I still never saw higher than 1.3 gigs of memory utilization.&amp;#160; Sweet.&amp;#160; I continued to beat on the OS just waiting for the “well there you go…” moment where the beta rolled over.&amp;#160; Never happened.&lt;/p&gt;  &lt;p&gt;The only things that really never worked were installing Flash (I never pay attention to how many sites use flash until I’m on a machine without it) and using Live Mesh.&amp;#160; While I can’t truly say Live Mesh didn’t &lt;em&gt;work&lt;/em&gt; it did decide to change my color scheme at random intervals.&amp;#160; Perhaps this is just a user interface “feature” I’m just not getting.&amp;#160; I am a data guy after all.&amp;#160; ;)&lt;/p&gt;  &lt;p&gt;I even went so far as to use this OS for a week at my current client.&amp;#160; There were no crashes, no problems.&amp;#160; I think Microsoft really has a winner with Windows 7.&lt;/p&gt;  &lt;p&gt;So hopefully this will explain a bit of where I’ve been in regards to this blog.&amp;#160; Focus will be returning to SQL Server after this R&amp;amp;D boondoggle, just need to make a trip to Seattle first.&lt;/p&gt;&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=7130" width="1" height="1"&gt;</description></item><item><title>SQLSaturday content – DMVs</title><link>http://blog.magenic.com/blogs/whitneyw/archive/2008/10/12/SQLSaturday-content-_1320_-DMVs.aspx</link><pubDate>Sun, 12 Oct 2008 16:35:00 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:6646</guid><dc:creator>WhitneyW</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/whitneyw/comments/6646.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/whitneyw/commentrss.aspx?PostID=6646</wfw:commentRss><description>&lt;p&gt;As promised here are the code samples and slide deck from yesterday&amp;rsquo;s presentation.&amp;nbsp; Thanks to everyone who came to hear me speak, you were a great audience.&lt;/p&gt;&lt;p&gt;I would also like to give a virtual high five to all the folks involved in putting on SQLSaturday in Greenville.&amp;nbsp; You guys did a super job.&lt;/p&gt;&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=6646" width="1" height="1"&gt;</description><enclosure url="http://blog.magenic.com/blogs/whitneyw/attachment/6646.ashx" length="143153" type="application/x-zip-compressed" /></item><item><title>Split a string in TSQL (without looping)</title><link>http://blog.magenic.com/blogs/whitneyw/archive/2008/10/08/Split-a-string-in-TSQL-_2800_without-looping_2900_.aspx</link><pubDate>Wed, 08 Oct 2008 14:43:00 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:6557</guid><dc:creator>WhitneyW</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/whitneyw/comments/6557.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/whitneyw/commentrss.aspx?PostID=6557</wfw:commentRss><description>&lt;p&gt;During the course of two days in the MSDN TSQL forums I must have seen 10 requests that were basically the same issue.&amp;nbsp; Some string of values is passed from your application and you need to split them into the individual items.&amp;nbsp; Here is a quick implementation that will get you a string splitting inline function that requires no recursion.&lt;/p&gt;&lt;p&gt;First, we need to create a numbers table that we will later utilize for string parsing.&amp;nbsp; I&amp;rsquo;m using a version Itzik Ben-Gan&amp;rsquo;s number table that he posts frequently in SQL Mag articles.&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:green;"&gt;-- Create and populate an auxiliary table of numbers (1,000,000 entries)
&lt;/span&gt;&lt;span style="color:blue;"&gt;IF &lt;/span&gt;&lt;span style="color:magenta;"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;dbo.Numbers&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;) IS NOT NULL 
&lt;/span&gt;&lt;span style="color:blue;"&gt;DROP TABLE &lt;/span&gt;dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;Numbers&lt;span style="color:gray;"&gt;;
&lt;/span&gt;&lt;span style="color:blue;"&gt;GO
CREATE TABLE &lt;/span&gt;dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;Numbers
&lt;span style="color:gray;"&gt;(
&lt;/span&gt;number &lt;span style="color:blue;"&gt;INT &lt;/span&gt;&lt;span style="color:gray;"&gt;NOT NULL &lt;/span&gt;&lt;span style="color:blue;"&gt;CONSTRAINT &lt;/span&gt;PK_Numbers &lt;span style="color:blue;"&gt;PRIMARY KEY CLUSTERED
&lt;/span&gt;&lt;span style="color:gray;"&gt;);

&lt;/span&gt;&lt;span style="color:blue;"&gt;SET NOCOUNT ON&lt;/span&gt;&lt;span style="color:gray;"&gt;;

&lt;/span&gt;&lt;span style="color:blue;"&gt;DECLARE
  &lt;/span&gt;@max &lt;span style="color:blue;"&gt;AS INT&lt;/span&gt;&lt;span style="color:gray;"&gt;,
  &lt;/span&gt;@rc &lt;span style="color:blue;"&gt;AS INT&lt;/span&gt;&lt;span style="color:gray;"&gt;;

&lt;/span&gt;&lt;span style="color:blue;"&gt;SET &lt;/span&gt;@max &lt;span style="color:gray;"&gt;= &lt;/span&gt;1000000&lt;span style="color:gray;"&gt;;
&lt;/span&gt;&lt;span style="color:blue;"&gt;SET &lt;/span&gt;@rc &lt;span style="color:gray;"&gt;= &lt;/span&gt;1&lt;span style="color:gray;"&gt;;

&lt;/span&gt;&lt;span style="color:blue;"&gt;BEGIN TRAN&lt;/span&gt;&lt;span style="color:gray;"&gt;;
  &lt;/span&gt;&lt;span style="color:blue;"&gt;INSERT INTO &lt;/span&gt;dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;Numbers&lt;span style="color:gray;"&gt;(&lt;/span&gt;number&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;VALUES&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;1&lt;span style="color:gray;"&gt;);

  &lt;/span&gt;&lt;span style="color:blue;"&gt;WHILE &lt;/span&gt;@rc &lt;span style="color:gray;"&gt;* &lt;/span&gt;2 &lt;span style="color:gray;"&gt;&amp;lt;= &lt;/span&gt;@max
  &lt;span style="color:blue;"&gt;BEGIN
    INSERT INTO &lt;/span&gt;dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;Numbers&lt;span style="color:gray;"&gt;(&lt;/span&gt;number&lt;span style="color:gray;"&gt;)
      &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;number &lt;span style="color:gray;"&gt;+ &lt;/span&gt;@rc 
      &lt;span style="color:blue;"&gt;FROM &lt;/span&gt;dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;Numbers&lt;span style="color:gray;"&gt;;

    &lt;/span&gt;&lt;span style="color:blue;"&gt;SET &lt;/span&gt;@rc &lt;span style="color:gray;"&gt;= &lt;/span&gt;@rc &lt;span style="color:gray;"&gt;* &lt;/span&gt;2&lt;span style="color:gray;"&gt;;
  &lt;/span&gt;&lt;span style="color:blue;"&gt;END

  INSERT INTO &lt;/span&gt;dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;Numbers&lt;span style="color:gray;"&gt;(&lt;/span&gt;number&lt;span style="color:gray;"&gt;)
    &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;number &lt;span style="color:gray;"&gt;+ &lt;/span&gt;@rc 
    &lt;span style="color:blue;"&gt;FROM &lt;/span&gt;dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;Numbers
    &lt;span style="color:blue;"&gt;WHERE &lt;/span&gt;number &lt;span style="color:gray;"&gt;+ &lt;/span&gt;@rc &lt;span style="color:gray;"&gt;&amp;lt;= &lt;/span&gt;@max&lt;span style="color:gray;"&gt;;
&lt;/span&gt;&lt;span style="color:blue;"&gt;COMMIT TRAN&lt;/span&gt;&lt;span style="color:gray;"&gt;; 
&lt;/span&gt;&lt;span style="color:blue;"&gt;GO&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;p&gt;Next, we create the inline function that will do the heavy lifting for us.&amp;nbsp; I&amp;rsquo;ve added an input for separator as hard coding the comma almost always guarantees some other character will later be needed.&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;IF &lt;/span&gt;&lt;span style="color:magenta;"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;dbo.SplitString&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;IF&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;) IS NOT NULL
&lt;/span&gt;&lt;span style="color:blue;"&gt;DROP FUNCTION &lt;/span&gt;dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;SplitString&lt;span style="color:gray;"&gt;;
&lt;/span&gt;&lt;span style="color:blue;"&gt;GO
CREATE FUNCTION &lt;/span&gt;dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;SplitString&lt;span style="color:gray;"&gt;(&lt;/span&gt;@arr &lt;span style="color:blue;"&gt;AS VARCHAR&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;8000&lt;span style="color:gray;"&gt;), &lt;/span&gt;@sep &lt;span style="color:blue;"&gt;AS CHAR&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;1&lt;span style="color:gray;"&gt;))
  &lt;/span&gt;&lt;span style="color:blue;"&gt;RETURNS TABLE
AS
RETURN
  SELECT
    &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;number &lt;span style="color:gray;"&gt;- &lt;/span&gt;1&lt;span style="color:gray;"&gt;) - &lt;/span&gt;&lt;span style="color:magenta;"&gt;LEN&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:magenta;"&gt;REPLACE&lt;/span&gt;&lt;span style="color:gray;"&gt;(LEFT(&lt;/span&gt;@arr&lt;span style="color:gray;"&gt;, &lt;/span&gt;number &lt;span style="color:gray;"&gt;- &lt;/span&gt;1&lt;span style="color:gray;"&gt;), &lt;/span&gt;@sep&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)) + &lt;/span&gt;1 &lt;span style="color:blue;"&gt;AS &lt;/span&gt;pos&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;&lt;span style="color:magenta;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;@arr&lt;span style="color:gray;"&gt;, &lt;/span&gt;number&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:magenta;"&gt;CHARINDEX&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;@sep&lt;span style="color:gray;"&gt;, &lt;/span&gt;@arr &lt;span style="color:gray;"&gt;+ &lt;/span&gt;@sep&lt;span style="color:gray;"&gt;, &lt;/span&gt;number&lt;span style="color:gray;"&gt;) - &lt;/span&gt;number&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;element
  &lt;span style="color:blue;"&gt;FROM &lt;/span&gt;dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;Numbers
  &lt;span style="color:blue;"&gt;WHERE &lt;/span&gt;number &lt;span style="color:gray;"&gt;&amp;lt;= &lt;/span&gt;&lt;span style="color:magenta;"&gt;LEN&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;@arr&lt;span style="color:gray;"&gt;) + &lt;/span&gt;1
    &lt;span style="color:gray;"&gt;AND &lt;/span&gt;&lt;span style="color:magenta;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;@sep &lt;span style="color:gray;"&gt;+ &lt;/span&gt;@arr&lt;span style="color:gray;"&gt;, &lt;/span&gt;number&lt;span style="color:gray;"&gt;, &lt;/span&gt;1&lt;span style="color:gray;"&gt;) = &lt;/span&gt;@sep&lt;span style="color:gray;"&gt;;
&lt;/span&gt;&lt;span style="color:blue;"&gt;GO&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;p&gt;Finally, we call our function with a string of values.&amp;nbsp; If we needed to then utilize this for filtering we could use the &lt;a href="http://msdn.microsoft.com/en-us/library/ms177634.aspx"&gt;CROSS APPLY&lt;/a&gt; operator introduced in SQL 2005.&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;DECLARE &lt;/span&gt;@arr &lt;span style="color:blue;"&gt;varchar&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;8000&lt;span style="color:gray;"&gt;);
&lt;/span&gt;&lt;span style="color:blue;"&gt;DECLARE &lt;/span&gt;@sep &lt;span style="color:blue;"&gt;char&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;1&lt;span style="color:gray;"&gt;);

&lt;/span&gt;&lt;span style="color:blue;"&gt;SET &lt;/span&gt;@arr &lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;;
&lt;/span&gt;&lt;span style="color:blue;"&gt;SET &lt;/span&gt;@sep &lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;,&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;;

&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color:gray;"&gt;*
&lt;/span&gt;&lt;span style="color:blue;"&gt;FROM &lt;/span&gt;dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;SplitString&lt;span style="color:gray;"&gt;(&lt;/span&gt;@arr&lt;span style="color:gray;"&gt;, &lt;/span&gt;@sep&lt;span style="color:gray;"&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;This will give us a two row result set containing a position and value.&amp;nbsp; Simple, easy, and set based to boot!&amp;nbsp; And now I can just reference this post instead of cutting and pasting code.&amp;nbsp; :)&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=6557" width="1" height="1"&gt;</description><category domain="http://blog.magenic.com/blogs/whitneyw/archive/tags/T-SQL/default.aspx">T-SQL</category></item><item><title>Windows 7 and PDC</title><link>http://blog.magenic.com/blogs/whitneyw/archive/2008/09/25/Windows-7-and-PDC.aspx</link><pubDate>Thu, 25 Sep 2008 02:17:02 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:6375</guid><dc:creator>WhitneyW</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/whitneyw/comments/6375.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/whitneyw/commentrss.aspx?PostID=6375</wfw:commentRss><description>&lt;p&gt;Are you looking for a super early beta of Windows 7 for your virtual machine of choice (and dear Lord please tell me you would only do this on a virtual)?&amp;#160; The Windows Vista &lt;a href="http://windowsvistablog.com/blogs/windowsvista/archive/2008/09/24/get-windows-7-at-pdc-and-winhec.aspx"&gt;blog&lt;/a&gt; is reporting that attendees of next month's PDC will be getting the first public beta of said OS.&amp;#160; &lt;/p&gt;  &lt;p&gt;There were other posts today regarding the giveaways that might be the best I've heard yet.&amp;#160; Apparently all software swag will be handed over on a 160GB USB drive.&amp;#160; Now that's a cool way to handle business.&amp;#160; &lt;/p&gt;  &lt;p&gt;Who knows, maybe the fine folks at Microsoft have saved you from yourself and put 7 on a virtual drive.&amp;#160; ;)&lt;/p&gt;&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=6375" width="1" height="1"&gt;</description></item><item><title>SQLSaturday, Greenville SC (Oct 11)</title><link>http://blog.magenic.com/blogs/whitneyw/archive/2008/09/04/SQLSaturday_2C00_-Greenville-SC-_2800_Oct-11_2900_.aspx</link><pubDate>Thu, 04 Sep 2008 12:57:00 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:5977</guid><dc:creator>WhitneyW</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/whitneyw/comments/5977.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/whitneyw/commentrss.aspx?PostID=5977</wfw:commentRss><description>&lt;p&gt;Next month there will be a free one day SQL event in Greenville, SC. It is part of the national SQLSaturday events and looks to be a great time.&amp;nbsp; There are tracks for BI and data management.&amp;nbsp; I will be presenting a session on &amp;#39;Dynamic Management Views&amp;#39; in the data management track.&lt;/p&gt;&lt;p&gt;A list of speakers can be found &lt;a href="http://www.sqlsaturday.com/schedule.aspx"&gt;here&lt;/a&gt;.&amp;nbsp; The schedule is still being fleshed out so make sure to check the site for a while to get the full list.&lt;/p&gt;&lt;p&gt;If you will be in the area, or can get there, come check out what should be a day of geeky goodness!&lt;/p&gt;&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=5977" width="1" height="1"&gt;</description><category domain="http://blog.magenic.com/blogs/whitneyw/archive/tags/User+Groups/default.aspx">User Groups</category></item><item><title>Google Chrome - another round of browser war headed our way?</title><link>http://blog.magenic.com/blogs/whitneyw/archive/2008/09/02/Google-Chrome-_2D00_-another-round-of-browser-war-headed-our-way_3F00_.aspx</link><pubDate>Tue, 02 Sep 2008 13:33:41 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:5933</guid><dc:creator>WhitneyW</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/whitneyw/comments/5933.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/whitneyw/commentrss.aspx?PostID=5933</wfw:commentRss><description>&lt;p&gt;On Google's blog site they are announcing the release of their own browser, Google Chrome.&amp;#160; The initial launch will be tomorrow, supporting Windows only.&lt;/p&gt;  &lt;p&gt;So what do you think about a new entrant into the browser space?&amp;#160; Normally, I would say more competition is always better.&amp;#160; Here, I have some reservations as Google already has such a strong position within the browser.&lt;/p&gt;  &lt;p&gt;I suppose this will give some fresh fodder for the flame wars that occur on various sites.&amp;#160; Good times... ;)&lt;/p&gt;&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=5933" width="1" height="1"&gt;</description></item><item><title>IE 8 Beta 2 now available</title><link>http://blog.magenic.com/blogs/whitneyw/archive/2008/08/28/IE-8-Beta-2-now-available.aspx</link><pubDate>Thu, 28 Aug 2008 12:18:23 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:5869</guid><dc:creator>WhitneyW</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/whitneyw/comments/5869.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/whitneyw/commentrss.aspx?PostID=5869</wfw:commentRss><description>&lt;p&gt;The new beta is available for download.&amp;#160; Head on over to the &lt;a href="http://blogs.msdn.com/ie/default.aspx"&gt;IE blog&lt;/a&gt; for details and a download link.&lt;/p&gt;&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=5869" width="1" height="1"&gt;</description></item><item><title>SQL Server vNext wish-list</title><link>http://blog.magenic.com/blogs/whitneyw/archive/2008/08/20/SQL-Server-vNext-wish_2D00_list.aspx</link><pubDate>Wed, 20 Aug 2008 20:13:10 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:5749</guid><dc:creator>WhitneyW</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/whitneyw/comments/5749.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/whitneyw/commentrss.aspx?PostID=5749</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://sqlblog.com/blogs/aaron_bertrand/archive/2008/08/20/my-current-tools-wishlist-for-sql-server-2011.aspx" target="_blank"&gt;Aaron Bertrand&lt;/a&gt; has posted his wish list for the next version of SQL Server.&amp;#160; As usual, I'm in solid agreement with Aaron's post.&lt;/p&gt;  &lt;p&gt;What's that you say?&amp;#160; A version just shipped?&amp;#160; I know, I know...but it's never too early to start asking for the functionality you want to see.&amp;#160; While I'm happy he included my &lt;a href="http://connect.microsoft.com/sqlserver/feedback/viewFeedback.aspx?FeedbackID=341872" target="_blank"&gt;Connect&lt;/a&gt; item for SQL Intellisense down-level support I really have hopes of it making a service pack for 2008.&lt;/p&gt;  &lt;p&gt;So if you have the next killer feature floating around in your head don't wait until you run across a SQL product team person somewhere, go to Connect and make it a reality!&lt;/p&gt;&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=5749" width="1" height="1"&gt;</description></item><item><title>SQL Server 2008 RTM!</title><link>http://blog.magenic.com/blogs/whitneyw/archive/2008/08/06/SQL-Server-2008-RTM_2100_.aspx</link><pubDate>Thu, 07 Aug 2008 01:55:44 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:5430</guid><dc:creator>WhitneyW</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/whitneyw/comments/5430.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/whitneyw/commentrss.aspx?PostID=5430</wfw:commentRss><description>&lt;p&gt;Hooray, it's finally here!&lt;/p&gt;  &lt;p&gt;Head on over to MSDN or TechNet and get your download on..&lt;/p&gt;&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=5430" width="1" height="1"&gt;</description></item><item><title>OT: It's iPhone love!</title><link>http://blog.magenic.com/blogs/whitneyw/archive/2008/08/05/OT_3A00_-It_2700_s-iPhone-love_2100_.aspx</link><pubDate>Tue, 05 Aug 2008 17:31:44 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:5409</guid><dc:creator>WhitneyW</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/whitneyw/comments/5409.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/whitneyw/commentrss.aspx?PostID=5409</wfw:commentRss><description>&lt;p&gt;A non SQL related post today.&amp;#160; Last week I gave in to my curiosity and bought an iPhone.&amp;#160; I was already with AT&amp;amp;T and a little intrigued by the ActiveSync integration.&amp;#160; After peppering &lt;a href="http://uxconfidential.typepad.com/" target="_blank"&gt;Anthony Handley&lt;/a&gt; (I owe him &lt;em&gt;several &lt;/em&gt;beers) with all sorts of questions about his iPhone experience I pulled the trigger.&amp;#160; &lt;/p&gt;  &lt;p&gt;This might be the only time I can remember that I went into a cellular company's store and didn't leave with a device.&amp;#160; Nothing like spending three hundred dollars and only having a receipt to show for it...The device arrived three days later and the folks at the AT&amp;amp;T store &lt;strike&gt;tortured me&lt;/strike&gt; assisted me with activation.&lt;/p&gt;  &lt;p&gt;I was coming from an HTC S620 (T-Mobile Dash) and honestly didn't know what to expect. I was preparing myself to be disappointed and need to roll back to the old device.&amp;#160; My experience could not have been further from that thought.&amp;#160; The touch screen is far easier to deal with than I imagined.&amp;#160; It took a day to get used to the input direction versus the thumb typing of true keys.&lt;/p&gt;  &lt;p&gt;After a week of use you couldn't pry this little guy from my hands.&amp;#160; Having my music, video, email, and phone all in one device has been fantastic.&amp;#160; Not to mention the app store and other assorted items like GPS in the 2.0 firmware.&amp;#160; Syncing with Exchange has been the same experience as my prior WM6 device, but the look and feel are worlds better.&amp;#160; Rendering of email is spot on to Outlook.&amp;#160; The browsing experience can't even be compared, the ability to manipulate the page to a given size is a great feature.&lt;/p&gt;  &lt;p&gt;I haven't experienced any of the nagging issues that seem to be reported online.&amp;#160; But then again I've been running Vista for over a year without the first driver issue.&amp;#160; Maybe I just lead a charmed life?&lt;/p&gt;  &lt;p&gt;I have to say this really changes my perception of Apple's place in the enterprise.&amp;#160; I am curious what the laptop experience would be like for me since I spend most all my time in Microsoft applications and server products.&amp;#160; Maybe I should email Anthony... :)&lt;/p&gt;&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=5409" width="1" height="1"&gt;</description></item><item><title>How to quickly get stored procedure text</title><link>http://blog.magenic.com/blogs/whitneyw/archive/2008/07/22/How-to-quickly-get-stored-procedure-text.aspx</link><pubDate>Tue, 22 Jul 2008 21:00:00 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:5177</guid><dc:creator>WhitneyW</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/whitneyw/comments/5177.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/whitneyw/commentrss.aspx?PostID=5177</wfw:commentRss><description>&lt;p&gt;I&amp;#39;ve answered this question twice today so I thought it made good sense to blog it.&amp;nbsp; I am going to give three examples that will quickly get you to the text of a stored procedure or other object type.&amp;nbsp; I am assuming you are looking to skip the [Database Name] --&amp;gt; Programmability --&amp;gt; Stored Procedures path of Object Browser, although the new &amp;quot;DROP and CREATE to&amp;quot; option in SQL 2008 is nice.&amp;nbsp; We will be using the following methods today:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;OBJECT_DEFINITION() &lt;/li&gt;&lt;li&gt;sys.sql_modules &lt;/li&gt;&lt;li&gt;sp_helptext &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;First up is &lt;a href="http://msdn.microsoft.com/en-us/library/ms176090.aspx"&gt;OBJECT_DEFINITION()&lt;/a&gt;.&amp;nbsp; This system function takes an object_id and returns a varchar(max) output of the object source text.&amp;nbsp; There are multiple types that can be used with OBJECT_DEFINITION, check the BOL reference for a complete list.&amp;nbsp; The syntax for this function is:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:321d993b-51b0-41f9-8dbc-7669f63a2417" style="display:inline;float:none;margin:0px;padding:0px;"&gt;&lt;pre style="overflow:auto;background-color:white;"&gt;&lt;div&gt;&lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt;&lt;span style="color:#000000;"&gt; OBJECT_DEFINITION(&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color:#000000;"&gt;(N&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;dbo.GetCustomer&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;, &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;P&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;)) &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt;&lt;span style="color:#000000;"&gt; objectText;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Next up is the object catalog view &lt;a href="http://msdn.microsoft.com/en-us/library/ms175081.aspx"&gt;sys.sql_modules&lt;/a&gt;.&amp;nbsp; This view returns a row for each object that is a SQL language-defined module.&amp;nbsp; Again, check the BOL reference for your complete list of types.&amp;nbsp; This view returns many useful pieces of information but today we are only after the definition column, which contains the SQL text of the module.&amp;nbsp; Here&amp;#39;s the simple query:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:bc7fbd52-57c7-4a04-b7d1-f5213739c812" style="display:inline;float:none;margin:0px;padding:0px;"&gt;&lt;pre style="overflow:auto;background-color:white;"&gt;&lt;div&gt;&lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;[&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;definition&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;]&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt;&lt;span style="color:#000000;"&gt; objectText
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;FROM&lt;/span&gt;&lt;span style="color:#000000;"&gt; sys.sql_modules
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;WHERE&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;[&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;object_id&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;]&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff00ff;"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color:#000000;"&gt;(N&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;dbo.GetCustomer&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;, &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;P&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Last is the old standby &lt;a href="http://msdn.microsoft.com/en-us/library/ms176112.aspx"&gt;sp_helptext&lt;/a&gt;.&amp;nbsp; This system stored procedure takes and object name (and potentially a column name) and returns the definition of multiple object types with a 255 character row output.&amp;nbsp; The source for this stored procedure is sys.sql_modules, referenced above.&amp;nbsp; Here is a sample call to this stored procedure:&lt;/p&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:b11c3d00-ab76-4097-bb59-cb80cc340f0e" style="display:inline;float:none;margin:0px;padding:0px;"&gt;&lt;pre style="overflow:auto;background-color:white;"&gt;&lt;div&gt;&lt;span style="color:#0000ff;"&gt;EXECUTE&lt;/span&gt;&lt;span style="color:#000000;"&gt; sp_helptext &lt;/span&gt;&lt;span style="color:#008000;"&gt;@objName&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; N&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;dbo.GetCustomer&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The one additional option provided by sp_helptext is the ability to return computed column definitions.&amp;nbsp; To get that detail we simply add the columnname parameter:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:71ff8e35-0a3f-4666-8c6b-3fac5bfdb05a" style="display:inline;float:none;margin:0px;padding:0px;"&gt;&lt;pre style="background-color:white;"&gt;&lt;div&gt;&lt;span style="color:#0000ff;"&gt;EXECUTE&lt;/span&gt;&lt;span style="color:#000000;"&gt; sp_helptext &lt;/span&gt;&lt;span style="color:#008000;"&gt;@objName&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; N&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;dbo.Customer&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;, &lt;/span&gt;&lt;span style="color:#008000;"&gt;@columnname&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;CustomerComputedColumn&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;So the next time you have that &amp;quot;what does this object do?&amp;quot; moment give one of these options a try.&lt;/p&gt;&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=5177" width="1" height="1"&gt;</description></item></channel></rss>