<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Enjoy Every Sandwich</title>
        <link>http://geekswithblogs.net/ktegels/Default.aspx</link>
        <description>Kent Tegels on SQL Server, .NET and Sometimes Beer</description>
        <language>en-US</language>
        <copyright>Kent Tegels</copyright>
        <managingEditor>ktegels@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Enjoy Every Sandwich</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/ktegels/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Using Signed Assemblies for SQLCLR: Doing the Safety Dance.</title>
            <category>.NET Development</category>
            <category>DevelopMentor</category>
            <category>SQL Server</category>
            <link>http://geekswithblogs.net/ktegels/archive/2006/02/16/69762.aspx</link>
            <description>&lt;P&gt;You know that song. Yes, that song. The beeping. The arm flailing. &lt;A href="http://music.yahoo.com/track/1141573"&gt;&lt;STRONG&gt;The Safety Dance.&lt;/STRONG&gt;&lt;/A&gt; I so wanted it stay in the 80s &amp;#8211; along side the uncounted Wild Turkey inflicted hangovers. It just won&amp;#8217;t. Every now and then that damn beeping rhythm creeps into my conscious thought when I least need it to. Like today. I&amp;#8217;ve been trying to figure out how to use the last-minute-added ability to catalog signed assemblies that need External Access or Unsafe permission without having to set the database trustworthy bit. Getting frustrated with the &lt;EM&gt;interesting&lt;/EM&gt; example in &lt;A href="http://msdn2.microsoft.com/ms345102.aspx"&gt;Books Online&lt;/A&gt;, the beeping started.&lt;/P&gt;
&lt;P&gt;So here&amp;#8217;s what you really need to know:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;The first you need is a certificate that can establish a chain of trust to some trusted root certificate authority on the target machine. If you&amp;#8217;ve already got one thanks to having Certificate Server on your network or you&amp;#8217;ve purchased one, great. If not, you can make one for yourself as we&amp;#8217;ll do there. 
&lt;LI&gt;You need to understand the *interesting* inter-play of certificates, logins and signing assemblies. It is not hard once you understand that you can use a single certificate to do all of that. 
&lt;LI&gt;You will have to comfortable using the Command Shell and a couple of tools in the .NET Software Development Kit (SDK), namely SignTool and MakeCert.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;A href="http://geekswithblogs.net/ktegels/articles/UsingSignedAssemblies.aspx"&gt;Continues here.&lt;/A&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=69762"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=69762" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/ktegels/aggbug/69762.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kent Tegels</dc:creator>
            <guid>http://geekswithblogs.net/ktegels/archive/2006/02/16/69762.aspx</guid>
            <pubDate>Thu, 16 Feb 2006 18:23:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/ktegels/comments/69762.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/ktegels/archive/2006/02/16/69762.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/ktegels/comments/commentRss/69762.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/ktegels/services/trackbacks/69762.aspx</trackback:ping>
        </item>
        <item>
            <title>The first rule of Talk Club is not to talk about the rules of Talk Club</title>
            <category>DevelopMentor</category>
            <link>http://geekswithblogs.net/ktegels/archive/2006/02/15/69559.aspx</link>
            <description>&lt;P&gt;Offered without comment as none is needed:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;EM&gt;The brain reacts in exactly the same way when a talk goes wrong.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;You see an error on the screen that you&amp;#8217;ve never seen before. Your demo has broken on a line that you don&amp;#8217;t remember writing. For some reason, the error message is in Greek.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Your forehead tingles as blood floods the capillaries, flushing your face in seconds and turning it into an I&amp;#8217;M A F***CKING IDIOT beacon for everybody to see. Sweat creeps out of glands in places you didn&amp;#8217;t know you had &amp;#8216;em, you suddenly become acutely aware of your own body odor, and then your eyes resolve the blurry thing that&amp;#8217;s just beyond the monitor &amp;#8211; yes, the audience &amp;#8211; that&amp;#8217;s what it is, and it&amp;#8217;s staring at you, shocked, and sending you a telepathic message which goes something like &amp;#8220;Yes, Rory, your I&amp;#8217;M A F***CKING IDIOT beacon is working properly. We can all see you up there, being acutely aware of your own body odor. Please resolve this soon or we will eat you.&amp;#8221;&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;More at &lt;A href="http://neopoleon.com/blog/posts/17449.aspx"&gt;http://neopoleon.com/blog/posts/17449.aspx&lt;/A&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=69559"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=69559" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/ktegels/aggbug/69559.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kent Tegels</dc:creator>
            <guid>http://geekswithblogs.net/ktegels/archive/2006/02/15/69559.aspx</guid>
            <pubDate>Wed, 15 Feb 2006 10:02:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/ktegels/comments/69559.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/ktegels/archive/2006/02/15/69559.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/ktegels/comments/commentRss/69559.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/ktegels/services/trackbacks/69559.aspx</trackback:ping>
        </item>
        <item>
            <title>SmallDateTime Conversion</title>
            <category>SQL Server</category>
            <link>http://geekswithblogs.net/ktegels/archive/2006/02/10/68984.aspx</link>
            <description>&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If String.IsNullOrEmpty(Row.Date.Trim()) Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Row.NewDate_IsNull = True&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Row.NewDate = DateTime.Parse(Row.Date)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If String.IsNullOrEmpty(Row.Age.Trim()) Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Row.NewAge_IsNull = True&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Row.NewAge = Int32.Parse(Row.Age)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;BR&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=68984"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=68984" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/ktegels/aggbug/68984.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kent Tegels</dc:creator>
            <guid>http://geekswithblogs.net/ktegels/archive/2006/02/10/68984.aspx</guid>
            <pubDate>Fri, 10 Feb 2006 12:29:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/ktegels/comments/68984.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/ktegels/archive/2006/02/10/68984.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/ktegels/comments/commentRss/68984.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/ktegels/services/trackbacks/68984.aspx</trackback:ping>
        </item>
        <item>
            <title>I, Sandwiches</title>
            <category>Community</category>
            <link>http://geekswithblogs.net/ktegels/archive/2006/02/08/68755.aspx</link>
            <description>&lt;P&gt;Thanks for linking to me, Ken. At least somebody laughts at my jokes. Did I ever tell you one about the Panda...?&lt;/P&gt;
&lt;P&gt;Nevermind, let's not go there. Instead, let's talk about Sandwiches. Yes, stuff (preferablly eatible)&amp;nbsp;between&amp;nbsp;one or more&amp;nbsp;slices&amp;nbsp;of bread. An Ice&amp;nbsp;Cream sandiwich&amp;nbsp;counts in my book, but I'm&amp;nbsp;not so sure about my latest &amp;#8220;Sandwich&amp;#8221; addiction.&lt;/P&gt;
&lt;P&gt;Uncrustables.&lt;/P&gt;
&lt;P&gt;Yes, I eat them. Anybody that know me knows I'm addicted to Peanut Butter. Oh sure, the Jelly is important, but let's face it, it's a PEANUT BUTTER and&amp;nbsp;Jelly sandwich.&amp;nbsp;Its not&amp;nbsp;robotic science here either: bread, butter, Peanut Butter, Jelly and another slice of bread. For the last two weeks in a row, my&amp;nbsp;lunch has been&amp;nbsp;1 or 2 uncrustables, 1 or more fruit items (Apples, largely, Bananas last week, Oranges this) and a&amp;nbsp;bottle of Water.&amp;nbsp;The joys of living on the road. I try to stay in the classroom&amp;nbsp;for lunch when I'm&amp;nbsp;teaching and this combination&amp;nbsp;proves durable enough to last. There's just one problem.&lt;/P&gt;
&lt;P&gt;I don't&amp;nbsp;really believe Uncrustables&amp;nbsp;are&amp;nbsp;Sandwiches.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Go find one. Examine it. Go CSI:Sandwich on it. I dare you to tell me that&amp;nbsp;is anything more than a Pocket trying to pass itself off as&amp;nbsp;Sandwich. The evidence speaks for itself: Uni-bread. Crimped like Ravoli. Machined together. Someplace is Smuckerland there's an a spot-welding robot who suffered a mid-life crisis and is now punching bread instead of metal. Next to it&amp;nbsp;is other once-otherwise-employed 'bot sperting out the&amp;nbsp;PB&amp;amp;J. Call them Spert and Stamp..&lt;/P&gt;
&lt;P&gt;Why am I off on this rant? Four words:&amp;nbsp; I, Robot. Will Smith. I watched&amp;nbsp;less than&amp;nbsp;ten minutes of it. I'm scared forever.&lt;/P&gt;
&lt;P&gt;I'm now fully sure that there is a VIKI and she's got the really food people at Smuckers locked down so tight that the only way they can communicate with us via these abominations of the Sandwich name. The logic in this infallable: An Uncrustable may not injure a human being or, through inaction, allow a human being to come to harm. Since actually enjoying an Uncrustable as we might enjoy proper PB&amp;amp;J might cause us to&amp;nbsp;eat too many of them, those sinister minions of the Pocket revolution -- good old Spert and&amp;nbsp;Stamp --&amp;nbsp;actually make something unjoyable. I don't think yelling at&amp;nbsp;Spert and Stamp&amp;nbsp;about this is going to be any good.&amp;nbsp;Damn second and third&amp;nbsp;laws. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;And you think you've got issues. Don't even get me started on the Gummy Spider plants. I've already got the &lt;EM&gt;Roger Young&lt;/EM&gt; on Speed Dial.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=68755"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=68755" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/ktegels/aggbug/68755.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kent Tegels</dc:creator>
            <guid>http://geekswithblogs.net/ktegels/archive/2006/02/08/68755.aspx</guid>
            <pubDate>Wed, 08 Feb 2006 22:39:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/ktegels/comments/68755.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/ktegels/archive/2006/02/08/68755.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/ktegels/comments/commentRss/68755.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/ktegels/services/trackbacks/68755.aspx</trackback:ping>
        </item>
        <item>
            <title>Tag, I'm it!</title>
            <category>Community</category>
            <category>Help|About</category>
            <link>http://geekswithblogs.net/ktegels/archive/2006/01/24/66978.aspx</link>
            <description>&lt;P&gt;Yeah, I'm jumping on the &lt;A href="http://mattbrett.com/"&gt;Four-Things Tag-wagon&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Four jobs I&amp;#8217;ve had in my life:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Developer (Geek)&lt;/LI&gt;
&lt;LI&gt;System Analyst (Nerdy Geek)&lt;/LI&gt;
&lt;LI&gt;Enterprise Software Architect (Business Nerdy Geek)&lt;/LI&gt;
&lt;LI&gt;Instructor (Talking Head Geek)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Four movies I can watch over and over:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.imdb.com/title/tt0066206/"&gt;Patton&lt;/A&gt;&amp;nbsp;-- &lt;EM&gt;&amp;#8220;You want to know why this outfit got the hell kicked out of it? A blind man could spot it. They don't act like soldiers; they don't look like soldiers; why should they be expected to fight like soldiers? &amp;#8220;&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class=l onmousedown="return clk(this.href,'res','1','')" href="http://www.imdb.com/title/tt0047478/"&gt;&lt;FONT color=#0000cc&gt;Shichinin no Samurai&amp;nbsp;&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;-- &lt;EM&gt;&amp;#8220;Find hungry Samurai.&amp;#8220;&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.imdb.com/title/tt0085334/"&gt;A Christmas Story&lt;/A&gt;&amp;nbsp;-- &lt;EM&gt;"Be sure to drink your Ovaltine. Ovaltine? A crummy commercial? Son of a bitch!" &lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.imdb.com/title/tt0076257/"&gt;Kentucky Fried Movie&lt;/A&gt;&amp;nbsp;-- &lt;EM&gt;&amp;#8220;What was that? This is not a chawade. We need total concentwation.&amp;#8221;&lt;/EM&gt;&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Four places I have lived:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://maps.google.com/maps?q=Fremont,+NE&amp;amp;t=k"&gt;Fremont, Nebraska&lt;/A&gt;&amp;nbsp;-- Harmless.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;q=Lincoln,+NE&amp;amp;t=k"&gt;Lincoln, Nebraska&lt;/A&gt;&amp;nbsp;-- Mostly harmless.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;q=Omaha,+Nebraska&amp;amp;ll=41.258611,-95.9375&amp;amp;spn=0.402622,1.071167"&gt;Omaha, Nebraska&lt;/A&gt;&amp;nbsp;-- Still mostly harmless.&lt;/LI&gt;
&lt;LI&gt;And thousands of nights in hotels world-wide&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Four TV shows I love to watch:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.goodeatsfanpage.com/"&gt;Good Eats&lt;/A&gt;&amp;nbsp;-- &lt;EM&gt;"Of course, we're not going to have any more fresh ingredients because we're all out of hand grenades."&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.barefootcontessa.com/"&gt;Barefoot Contessa&lt;/A&gt;&amp;nbsp;-- &lt;EM&gt;"Food is not about impressing people. It's about making them feel comfortable."&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.historychannel.com/mailcall/"&gt;Mail Call&lt;/A&gt; -- &lt;EM&gt;&amp;#8220;OOOOOOOO-RAH!&amp;#8220;&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.greysanatomyonline.com/"&gt;Grey's Anatomy&lt;/A&gt;&amp;nbsp;-- -- &lt;EM&gt;"I want facts and until I get them my pants are staying on."&lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Four places I have been on vacation:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://maps.google.com/maps?q=Black+River+Falls,+WI&amp;amp;ll=44.292101,-90.847952&amp;amp;spn=0.049764,0.171661&amp;amp;t=k"&gt;Black River Falls, Wisconsin&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Atlanta, Georgia&lt;/LI&gt;
&lt;LI&gt;Yankton, South Dakota&lt;/LI&gt;
&lt;LI&gt;(I really don't go places on Vacation...)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Four websites I visit daily:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.sqljunkies.com"&gt;www.sqljunkies.com&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.bookpool.com"&gt;www.bookpool.com&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com"&gt;msdn.microsoft.com&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://beeradvocate.com/"&gt;beeradvocate.com/&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Four of my favorite foods:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Peanut Butter (with anything)&lt;/LI&gt;
&lt;LI&gt;BBQ, preferably pulled Pork&lt;/LI&gt;
&lt;LI&gt;Sushi and most things Japanesse&lt;/LI&gt;
&lt;LI&gt;Ribeye Steak&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Four places I would rather be right now:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Home&lt;/LI&gt;
&lt;LI&gt;On a flight home&lt;/LI&gt;
&lt;LI&gt;Driving to the airport for a flight home&lt;/LI&gt;
&lt;LI&gt;Black River Falls, Wisconsin&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Four bloggers I am tagging&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://staff.develop.com/nielsb/"&gt;Niels Berglund&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.donxml.com/"&gt;Don "DonXML" Demsak&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://prologika.com/CS/blogs/"&gt;Teo Lachev&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://spaces.msn.com/members/khen1234/"&gt;Ken Henderson&lt;/A&gt;&amp;nbsp;(the not-MSDN blog, btw)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I'm going to add a new set of four. The the four best things in my life:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;My Sunshine Janell&lt;/LI&gt;
&lt;LI&gt;Jack and Claire&lt;/LI&gt;
&lt;LI&gt;My extended families -- Kevin, Lizzie, John, Rita and Paul&lt;/LI&gt;
&lt;LI&gt;A kick-ass Job (despite the travel)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;See -- Beer, SQL Server and XML didn't even make the list.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=66978"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=66978" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/ktegels/aggbug/66978.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kent Tegels</dc:creator>
            <guid>http://geekswithblogs.net/ktegels/archive/2006/01/24/66978.aspx</guid>
            <pubDate>Tue, 24 Jan 2006 21:49:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/ktegels/comments/66978.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/ktegels/archive/2006/01/24/66978.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/ktegels/comments/commentRss/66978.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/ktegels/services/trackbacks/66978.aspx</trackback:ping>
        </item>
        <item>
            <title>Shreding XML with XQuery</title>
            <category>DevelopMentor</category>
            <category>MSFT MVP</category>
            <category>SQL Server</category>
            <link>http://geekswithblogs.net/ktegels/archive/2006/01/20/ShredWithXQuery01.aspx</link>
            <description>&lt;P&gt;Over on the Microsoft.Public.SqlServer.XML newsgroup, one Chris Kilmer asked a good question about how to shred a single XML document into multiple tables using multiple stored procedures. Chris's goal with this was to have each stored procedure update one table and pass the XML remaining nodes of the first document off to the next stored procedure. This is actually fairly easy except for one thing: maintaining referential activity between inserted elements.&lt;/P&gt;
&lt;P&gt;The XML involved is fairly simple:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;lt;Invoice&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;InvoiceID&amp;gt;1&amp;lt;/InvoiceID&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;Customer&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;FName&amp;gt;Bill&amp;lt;/FName&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;LName&amp;gt;Gates&amp;lt;/LName&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Address&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Street&amp;gt;1 Microsoft Way&amp;lt;/Street&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;City&amp;gt;Redmond&amp;lt;/City&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Zip&amp;gt;98052&amp;lt;/Zip&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Address&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;/Customer&amp;gt;&lt;BR&gt;&amp;lt;/Invoice&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;We want to shred this data using SQL Server 2005's XML datatype's Nodes method when and where we can. The database schema has three tables scripted as such.&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;create table dbo.invoices(pkid tinyint identity(10,1) primary key,InvoiceID int)&lt;BR&gt;create table dbo.customers(pkid tinyint identity(20,1) primary key,invoicePKID tinyint constraint fkCustomersInvoices foreign key references dbo.invoices(pkid) on delete cascade on update cascade,fname varchar(20),lname varchar(20))&lt;BR&gt;create table dbo.addresses(pkid tinyint identity(30,1) primary key,customerPKID tinyint constraint fkAddressesCustomers foreign key references dbo.customers(pkid) on delete cascade on update cascade,street varchar(50),locale varchar(50),postalCode varchar(25))&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;So no big deal with that. While we could argue that there's better designs, this one works for now. Our first stored procedure really needs to do&amp;nbsp;three things:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Extract the InvoiceID and insert that info the dbo.invoices table&lt;/LI&gt;
&lt;LI&gt;Get the identity value for the just inserted row as we'll use that we'll need that when we insert the customer's detail into dbo.customers&lt;/LI&gt;
&lt;LI&gt;We need to get the Customer element as a fresh XML document to pass on the next stored procedure&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Here's the code for a procedure that does that.&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;create procedure dbo.shred1(@in xml)&lt;BR&gt;as&lt;BR&gt;begin&lt;BR&gt;begin try&lt;BR&gt;&amp;nbsp;begin tran&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;declare @id tinyint&lt;BR&gt;&amp;nbsp;declare @c table(pkid tinyint)&lt;BR&gt;&amp;nbsp;declare @cust xml&lt;BR&gt;&lt;FONT color=#006400&gt;&amp;nbsp;-- Get the invoiceID from the XML and insert that into the invoices table,&lt;BR&gt;&amp;nbsp;-- capturing the PKID for row just inserted.&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;insert into dbo.invoices(invoiceid)&lt;BR&gt;&amp;nbsp;output inserted.pkid into @c&lt;BR&gt;&amp;nbsp;select c.cust.value('InvoiceID[1]','int')&lt;BR&gt;&amp;nbsp;from @in.nodes('/Invoice') as c(cust)&lt;BR&gt;&lt;FONT color=#006400&gt;&amp;nbsp;-- Get the Customer sub-element&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;select @cust = @in.query('/Invoice/Customer')&lt;BR&gt;&lt;FONT color=#006400&gt;&amp;nbsp;-- Get that PKID and insert it into the the Customer element&lt;BR&gt;&amp;nbsp;-- so we can pass that along to the next procedure.&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;select @id = pkid from @c&lt;BR&gt;&amp;nbsp;set @cust.modify('insert &amp;lt;invoiceID&amp;gt;{sql:variable("@id")}&amp;lt;/invoiceID&amp;gt; into /Customer[1]')&lt;BR&gt;&amp;nbsp;exec dbo.shred2 @cust&lt;BR&gt;&amp;nbsp;commit&lt;BR&gt;end try&lt;BR&gt;begin catch&lt;BR&gt;&amp;nbsp;rollback&lt;BR&gt;end catch&lt;BR&gt;end&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Times New Roman"&gt;A few comments need to be made about this example as there's some interesting things being done.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The inbound and outbound instances really should be bound to an XML Schema collection to make sure they valid. That's not shown here to save time, space and detailing of schema collection behavior.&lt;/LI&gt;
&lt;LI&gt;This method works great if the inbound instance (@in) contains a single invoice only. If it doesn't, things get more complicated in terms of getting the host row identity value into the outbound XML instance.&lt;/LI&gt;
&lt;LI&gt;We didn't have to embed the hosting row's identity value in the passed-down instance. We've done that here to keep in-line with Chris's request to pass XML instance between the procedures. However, a positive from this is that we could somewhat more easily resolve the issue above since the we could pass a single XML instance containing all of the customers.&lt;/LI&gt;
&lt;LI&gt;I wouldn't normally choose to use the .Nodes method to shred a single XML instance, however, Chris said that this is what he does so I'm showing that for the sake of consistency. Here there's no need to do that, per se, as we could just as easily and performantly pick element values out resorting to a .Nodes call.&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Times New Roman"&gt;Although you can shred XML using what we're looking at here, once you get more than four or five XQuery method calls in a T-SQL Server, you're probably better to have put the instance in a table with a primary XML index on the column holding the instance. Otherwise, you're generating a Node Table for each method call which isn't cheap.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The real meat of Chris's question in the post was this: &amp;#8220;However, I do not understand how to retreive the Customer node from the Invoice xml as a new xml doc and then send the new xml doc to the next sproc.&amp;#8220; Getting the Customer element is fairly easy -- declare a variable of type XML and then use a SET query calling the .Query method on the source instance to select the desired elements. Ala:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;select @cust = @in.query('/Invoice/Customer')&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Since we already have our desired instance as an XML instance, we can simply pass it to the next Stored Procedure as parameter thusly:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;exec dbo.shred2 @cust&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Our next stored procedure is similar. It takes in the customer's data, parses out their name dumps that into the dbo.customers table. The address portion of the data is extracted as passed along to the next procedure. Again, this has some of the same considerations in terms of performance as noted for the first procedure.&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Times New Roman"&gt;&lt;/FONT&gt;create procedure dbo.shred2(@cust xml)&lt;BR&gt;as&lt;BR&gt;begin&lt;BR&gt;&amp;nbsp;declare @c table(pkid tinyint);&lt;BR&gt;&amp;nbsp;declare @addr xml;&lt;BR&gt;&amp;nbsp;declare @id tinyint;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#006400&gt;&amp;nbsp;-- Shred out the customer information and&lt;BR&gt;&amp;nbsp;-- insert that into the customers table,&lt;BR&gt;&amp;nbsp;-- capturing the PKID.&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;insert into dbo.customers(fname,lname,invoicePKID)&lt;BR&gt;&amp;nbsp;output inserted.pkid into @c&lt;BR&gt;&amp;nbsp;select&amp;nbsp;c.x.value('FName[1]','varchar(20)'),&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;c.x.value('LName[1]','varchar(20)'),&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;c.x.value('invoiceID[1]','tinyint')&lt;BR&gt;&amp;nbsp;from @cust.nodes('/Customer') as c(x);&lt;BR&gt;&lt;FONT color=#006400&gt;&amp;nbsp;-- Get the ID for that just inserted row and embed it into Address Data.&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;select @id = pkid from @c&lt;BR&gt;&amp;nbsp;select @addr = @cust.query('/Customer/Address')&lt;BR&gt;&amp;nbsp;set @addr.modify('insert &amp;lt;customerID&amp;gt;{sql:variable("@id")}&amp;lt;/customerID&amp;gt; into /Address[1]')&lt;BR&gt;&lt;FONT color=#006400&gt;&amp;nbsp;-- Shred the Address data&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;exec dbo.shred3 @addr&lt;BR&gt;end&lt;BR&gt;go&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Times New Roman"&gt;Our last stored procedure is pretty straight forward, and the same comments apply:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;create procedure dbo.shred3(@addr xml)&lt;BR&gt;as&lt;BR&gt;begin&lt;BR&gt;&amp;nbsp;insert into dbo.addresses(street,locale,postalCode,customerPKID)&lt;BR&gt;&amp;nbsp;select&amp;nbsp;a.f.value('Street[1]','varchar(50)'),&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.f.value('City[1]','varchar(50)'),&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.f.value('Zip[1]','varchar(25)'),&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.f.value('customerID[1]','tinyint')&lt;BR&gt;&amp;nbsp;from&amp;nbsp;@addr.nodes('/Address') as a(f)&lt;BR&gt;end&lt;BR&gt;go&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Times New Roman"&gt;The only real pain here was figuring a good way to capture the identity value for the just inserted row. Sure, saving off SCOPE_IDENTITY()&amp;nbsp;is option, but this example also demonstrates that can get the identity using the new OUTPUT clause. More, SCOPE_IDENTITY wouldn't have worked well enough&amp;nbsp;if there had been multiple Invovices serialized into the first Stored Procedure's input XML as it returns the last identity generated, not all of the identities generated.&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=66550"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=66550" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/ktegels/aggbug/66550.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kent Tegels</dc:creator>
            <guid>http://geekswithblogs.net/ktegels/archive/2006/01/20/ShredWithXQuery01.aspx</guid>
            <pubDate>Fri, 20 Jan 2006 19:02:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/ktegels/comments/66550.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/ktegels/archive/2006/01/20/ShredWithXQuery01.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/ktegels/comments/commentRss/66550.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/ktegels/services/trackbacks/66550.aspx</trackback:ping>
        </item>
        <item>
            <title>Emeril seems, at all times, dangerously close to actually copulating with the food he prepares...</title>
            <category>Eat, Drink and be Merry</category>
            <category>Help|About</category>
            <link>http://geekswithblogs.net/ktegels/archive/2006/01/19/66468.aspx</link>
            <description>&lt;P&gt;And you'd thought you'd find *IT* Geek content here? You will... eventually. Promise. But now that I have your attention&lt;SUP&gt;1&lt;/SUP&gt;...&lt;/P&gt;
&lt;P&gt;Welcome to the new home&amp;nbsp;for my&amp;nbsp;Techno-Geek Foodie blog &amp;#8220;Enjoy Every Sandwich.&amp;#8221; I'm Kent Tegels, the&amp;nbsp;Database Curriculum Lead for &lt;A href="http://www.develop.com/"&gt;DevelopMentor&lt;/A&gt;. &lt;A href="https://mvp.support.microsoft.com/profile=8038f92f-455a-460b-9aa8-127222cda4fa"&gt;I've been blessed&lt;/A&gt; by &lt;A href="http://slashdot.org/"&gt;Microsoft&lt;/A&gt; as a &lt;A href="http://www.talisman.org/~erlkonig/humour/jp-beware-of-perverts.gif"&gt;Most Vaulable Professional&lt;/A&gt; for &lt;A href="http://www.microsoft.com/sql/"&gt;SQL Server&lt;/A&gt; since 2004. So as you can guess, this blog is mostly going to be about .NET, SQL Server and the communities involved with those tools. Well that and&amp;nbsp;stuff about my &amp;#8220;Domestic Partner&amp;#8221; Janell, our Cats Jack and Claire, our love of all things food and drink as well as whatever I feel the need to blab on about.&lt;/P&gt;
&lt;P&gt;And yes, you probably do recognize my name or at least the name of this blog. While I've been a proud member and supporter of the &lt;A href="http://sqljunkies.com/weblog/ktegels/"&gt;SQLJunkies&lt;/A&gt; community almost since day one, I decided --&amp;nbsp;after CMP took that site over --&amp;nbsp;that it was time to find a new home. Nothing against them, but I wanted to get back more control over&amp;nbsp;the blog and what gets aggregated.&amp;nbsp;Thankfully, fellow MVP and midwesterner Jeff Julian set me up with space on GWB. Thanks Jeff! As for the name of the blog, yes, it is from Warren Zevon's &amp;#8220;famous last words&amp;#8220; on the David Letterman show shortly before his death.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Let's whip this Llama up...&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;SUP&gt;1&lt;/SUP&gt;:I only wish I would have said it first. &lt;A href="http://flakmag.com/tv/flay.html"&gt;http://flakmag.com/tv/flay.html&lt;/A&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=66468"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=66468" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/ktegels/aggbug/66468.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kent Tegels</dc:creator>
            <guid>http://geekswithblogs.net/ktegels/archive/2006/01/19/66468.aspx</guid>
            <pubDate>Fri, 20 Jan 2006 02:58:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/ktegels/comments/66468.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/ktegels/archive/2006/01/19/66468.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/ktegels/comments/commentRss/66468.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/ktegels/services/trackbacks/66468.aspx</trackback:ping>
        </item>
    </channel>
</rss>