<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/"><channel><title>The SQLTeam.com Weblogs</title><link>http://weblogs.sqlteam.com/mainfeed2.aspx</link><description>SQL Server thoughts, code and musings.</description><generator>Subtext Version 1.9.4.0</generator><item><title>Manipulate XML data with non-xml columns and not using variable</title><link>http://weblogs.sqlteam.com/peterl/archive/2009/07/03/Manipulate-XML-data-with-non-xml-columns-and-not-using-variable.aspx</link><pubDate>Fri, 03 Jul 2009 13:57:15 GMT</pubDate><guid isPermaLink="true">http://weblogs.sqlteam.com/peterl/archive/2009/07/03/Manipulate-XML-data-with-non-xml-columns-and-not-using-variable.aspx</guid><wfw:comment>http://weblogs.sqlteam.com/peterl/comments/60949.aspx</wfw:comment><wfw:commentRss>http://weblogs.sqlteam.com/peterl/comments/commentRss/60949.aspx</wfw:commentRss><comments>http://weblogs.sqlteam.com/peterl/archive/2009/07/03/Manipulate-XML-data-with-non-xml-columns-and-not-using-variable.aspx#comment</comments><slash:comments>2</slash:comments><trackback:ping>http://weblogs.sqlteam.com/peterl/services/trackbacks/60949.aspx</trackback:ping><source url="http://weblogs.sqlteam.com/peterl/rss.aspx">Manipulate XML data with non-xml columns and not using variable</source><description>&lt;p&gt;Some time ago, I displayed how to work with XML data when searching for data stored in a XML column. &lt;br /&gt;
Here &lt;a title="Some XML search approaches" href="http://weblogs.sqlteam.com/peterl/archive/2008/03/26/Some-XML-search-approaches.aspx"&gt;Some XML search approaches&lt;/a&gt; and here &lt;a title="Updated XML search (test case with variables)" href="http://weblogs.sqlteam.com/peterl/archive/2008/09/01/Updated-XML-search-test-case-with-variables.aspx"&gt;Updated XML search (test case with variables)&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
Today I thought I should demonstrate how to insert and update XML columns with data from other columns and not using variables. Well, I do have some examples of using variables in here because I wanted to display the core difference. &lt;br /&gt;
And this is my first blog post (not counting the previous announcement) since I become a MVP, I thought this blog post should be about something necessary. &lt;br /&gt;
&lt;br /&gt;
Much of the XML manipulations I have made by trials and errors, because I haven’t found a single good source of information about these things. If you do know of such information, please comment. &lt;br /&gt;
&lt;br /&gt;
First, we create a sample table to hold some important data, like this &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;CREATE&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="COLOR: blue"&gt;TABLE    &lt;/span&gt;#Sample &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: gray; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;( &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;                    RowID &lt;span style="COLOR: blue"&gt;INT&lt;/span&gt; &lt;span style="COLOR: blue"&gt;IDENTITY&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;1&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;PRIMARY&lt;/span&gt; &lt;span style="COLOR: blue"&gt;KEY&lt;/span&gt; &lt;span style="COLOR: blue"&gt;CLUSTERED&lt;/span&gt;&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;                    &lt;/span&gt;MemberID &lt;span style="COLOR: blue"&gt;INT&lt;/span&gt;&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;                    &lt;/span&gt;MemberData &lt;span style="COLOR: blue"&gt;XML &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;                &lt;/span&gt;&lt;span style="COLOR: gray"&gt;) &lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;INSERT  &lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;#Sample &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;SELECT  &lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;1&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'&amp;lt;meta&amp;gt;&amp;lt;customergroup&amp;gt;F&amp;lt;/customergroup&amp;gt;&amp;lt;mosaic&amp;gt;Young educated man&amp;lt;/mosaic&amp;gt;&amp;lt;/meta&amp;gt;'&lt;/span&gt; &lt;span style="COLOR: blue"&gt;UNION&lt;/span&gt; &lt;span style="COLOR: gray"&gt;ALL &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;SELECT  &lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;2&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'&amp;lt;meta&amp;gt;&amp;lt;age&amp;gt;24&amp;lt;/age&amp;gt;&amp;lt;/meta&amp;gt;' &lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;CREATE&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="COLOR: blue"&gt;PRIMARY&lt;/span&gt; &lt;span style="COLOR: blue"&gt;XML&lt;/span&gt; &lt;span style="COLOR: blue"&gt;INDEX&lt;/span&gt; IX_PrimaryXML &lt;span style="COLOR: blue"&gt;ON&lt;/span&gt; #Sample&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;) &lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;CREATE&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="COLOR: blue"&gt;XML&lt;/span&gt; &lt;span style="COLOR: blue"&gt;INDEX&lt;/span&gt; IX_Element &lt;span style="COLOR: blue"&gt;ON&lt;/span&gt; #Sample&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;) &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;USING&lt;/span&gt; &lt;span style="COLOR: blue"&gt;XML&lt;/span&gt; &lt;span style="COLOR: blue"&gt;INDEX&lt;/span&gt; IX_PrimaryXML &lt;span style="COLOR: blue"&gt;FOR&lt;/span&gt; &lt;span style="COLOR: blue"&gt;PATH &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;As you see, I also created the primary XML index and a secondary XML index on the XML column. &lt;br /&gt;
Now let’s see what is stored in the important table. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;SELECT  &lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;MemberID&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/customergroup[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'VARCHAR(8)'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; CustomerGroup&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/mosaic[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'VARCHAR(200)'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; Mosaic&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/age[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'TINYINT'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; Age&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/zipcode[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'VARCHAR(5)'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; ZipCode&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/status[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'VARCHAR(15)'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; [Status] &lt;br /&gt;
&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;FROM    &lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;#Sample &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;The exercise now is to add one or more elements to the XML column, both with using a variable but also, more importantly, using a column. Create a helper table like this below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;DECLARE &lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;@Sample &lt;span style="COLOR: blue"&gt;TABLE &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: gray; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        ( &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; COLOR: gray; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;            &lt;/span&gt;MemberID &lt;span style="COLOR: blue"&gt;INT&lt;/span&gt;&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; COLOR: gray; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;ZipCode &lt;span style="COLOR: blue"&gt;VARCHAR&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;5&lt;span style="COLOR: gray"&gt;), &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; COLOR: gray; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;            &lt;/span&gt;&lt;/span&gt;Mosaic &lt;span style="COLOR: blue"&gt;VARCHAR&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;200&lt;span style="COLOR: gray"&gt;) &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; COLOR: gray; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;) &lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;INSERT  &lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;@Sample &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;SELECT  &lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;1&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'26737'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'SQLTeam'&lt;/span&gt; &lt;span style="COLOR: blue"&gt;UNION&lt;/span&gt; &lt;span style="COLOR: gray"&gt;ALL &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;SELECT  &lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;2&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'12345'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'Smart woman in the countryside' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;When an element doesn’t already exist, the element is added to the XML column. Beware that an additional element is created if one alerady exists! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: green; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;-- New element for all &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;UPDATE&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;s &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;SET&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;         &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;&lt;span style="COLOR: blue"&gt;modify&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'insert &amp;lt;zipcode&amp;gt;{sql:column("x.ZipCode")}&amp;lt;/zipcode&amp;gt; into (/meta)[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;) &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;FROM&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;        &lt;/span&gt;#Sample &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; s &lt;br /&gt;
&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: gray; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;INNER&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="COLOR: gray"&gt;JOIN&lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;  &lt;/span&gt;@Sample &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; x &lt;span style="COLOR: blue"&gt;ON&lt;/span&gt; x&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;MemberID &lt;span style="COLOR: gray"&gt;=&lt;/span&gt; s&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;MemberID &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;Now do the SELECT again and you will see that a zipcode element was added to both records. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;SELECT  &lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;MemberID&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/customergroup[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'VARCHAR(8)'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; CustomerGroup&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/mosaic[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'VARCHAR(200)'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; Mosaic&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/age[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'TINYINT'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; Age&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/zipcode[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'VARCHAR(5)'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; ZipCode&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/status[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'VARCHAR(15)'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; [Status] &lt;br /&gt;
&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;FROM    &lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;#Sample &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;As I said before, if an element already exist a new elemtent with same name is added. This behaviour can be avoided by using a WHERE MemberData.exists clause. Do the updates first since it only touches existing records with matching elements and then do the inserts with the MemberData.exists clause. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: green; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;-- Update existing element &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;UPDATE&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;s &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;SET&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;         &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;&lt;span style="COLOR: blue"&gt;modify&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'replace value of (/meta/mosaic/text())[1] with sql:column("x.Mosaic")'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;) &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;FROM&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;        &lt;/span&gt;#Sample &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; s &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: gray; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;INNER&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="COLOR: gray"&gt;JOIN&lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;  &lt;/span&gt;@Sample &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; x &lt;span style="COLOR: blue"&gt;ON&lt;/span&gt; x&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;MemberID &lt;span style="COLOR: gray"&gt;=&lt;/span&gt; s&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;MemberID &lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: green; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;-- Insert new element. Beware of duplicates. &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;UPDATE&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;s &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;SET&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;         &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;&lt;span style="COLOR: blue"&gt;modify&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'insert &amp;lt;mosaic&amp;gt;{sql:column("x.Mosaic")}&amp;lt;/mosaic&amp;gt; into (/meta)[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;) &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;FROM&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;        &lt;/span&gt;#Sample &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; s &lt;br /&gt;
&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: gray; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;INNER&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="COLOR: gray"&gt;JOIN&lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;  &lt;/span&gt;@Sample &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; x &lt;span style="COLOR: blue"&gt;ON&lt;/span&gt; x&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;MemberID &lt;span style="COLOR: gray"&gt;=&lt;/span&gt; s&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;MemberID &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;Now do the SELECT again and you will see that the element mosaic was updated for member 1 and added to member 2. This is also true for member 1 because now this member has two elements with same name. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;SELECT  &lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;MemberID&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/customergroup[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'VARCHAR(8)'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; CustomerGroup&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/mosaic[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'VARCHAR(200)'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; Mosaic&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/age[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'TINYINT'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; Age&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/zipcode[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'VARCHAR(5)'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; ZipCode&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/status[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'VARCHAR(15)'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; [Status] &lt;br /&gt;
&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;FROM    &lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;#Sample &lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;br /&gt;
&lt;/span&gt;And this was my reason for this blog post. How to add and replace elements with values from another column. So why not display how to do this with variables too? &lt;br /&gt;
&lt;br /&gt;
&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;br /&gt;
DECLARE&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; @Status &lt;span style="COLOR: blue"&gt;VARCHAR&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;18&lt;span style="COLOR: gray"&gt;) &lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;SET&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;         &lt;/span&gt;@Status &lt;span style="COLOR: gray"&gt;=&lt;/span&gt; &lt;span style="COLOR: red"&gt;'Shipped' &lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: green; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;-- Update single record without prior element &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;UPDATE&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;#Sample &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;SET&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;         &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;&lt;span style="COLOR: blue"&gt;modify&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'replace value of (/meta/status/text())[1] with sql:variable("@Status")'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;) &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;WHERE&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;       &lt;/span&gt;MemberID &lt;span style="COLOR: gray"&gt;=&lt;/span&gt; 1 &lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: green; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;-- Create new element for single record &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;UPDATE&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;#Sample &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;SET&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;         &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;&lt;span style="COLOR: blue"&gt;modify&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'insert &amp;lt;status&amp;gt;{sql:variable("@Status")}&amp;lt;/status&amp;gt; as last into (/meta)[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;br /&gt;
&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;WHERE&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;       &lt;/span&gt;MemberID &lt;span style="COLOR: gray"&gt;=&lt;/span&gt; 2 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;As you can see now, same rules apply. Member 1 did not get a new Status element since we wanted to update previous value. But member 2 did get a new element. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;SELECT  &lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;MemberID&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/customergroup[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'VARCHAR(8)'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; CustomerGroup&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/mosaic[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'VARCHAR(200)'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; Mosaic&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/age[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'TINYINT'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; Age&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;/span&gt;MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/zipcode[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'VARCHAR(5)'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; ZipCode&lt;span style="COLOR: gray"&gt;, &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        MemberData&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;value&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'/meta[1]/status[1]'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'VARCHAR(15)'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; [Status] &lt;br /&gt;
&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;FROM    &lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;#Sample &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;Don’t forget to do your housecleaning and drop the important table. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes"&gt;DROP&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 8pt; mso-no-proof: yes"&gt; &lt;span style="COLOR: blue"&gt;TABLE&lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;  &lt;/span&gt;#Sample &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;Besides doing update and insert, you can also use the delete syntax to remove elements if you jus don’t to clear them. &lt;br /&gt;
I hope you liked this post.&lt;/p&gt;
&lt;p&gt;Cheers! &lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/peterl/aggbug/60949.aspx" width="1" height="1" /&gt;</description><dc:creator>Peter Larsson</dc:creator></item><item><title>WCF-SQL Adapter fails while inserting rows to a table that has an identity column.</title><link>http://weblogs.sqlteam.com/randyp/archive/2009/07/03/60948.aspx</link><pubDate>Fri, 03 Jul 2009 07:58:25 GMT</pubDate><guid isPermaLink="true">http://weblogs.sqlteam.com/randyp/archive/2009/07/03/60948.aspx</guid><wfw:comment>http://weblogs.sqlteam.com/randyp/comments/60948.aspx</wfw:comment><wfw:commentRss>http://weblogs.sqlteam.com/randyp/comments/commentRss/60948.aspx</wfw:commentRss><comments>http://weblogs.sqlteam.com/randyp/archive/2009/07/03/60948.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://weblogs.sqlteam.com/randyp/services/trackbacks/60948.aspx</trackback:ping><source url="http://weblogs.sqlteam.com/randyp/rss.aspx">WCF-SQL Adapter fails while inserting rows to a table that has an identity column.</source><description>&lt;p&gt;I was working on a Biztalk integration project that perform a CRUD operation using old SQL adapter (the new one is available via Microsoft Adapter Pack 2.0), everything works fine on the development environment but when we've tried to deploy it to test environment which have the same structure with the production server we stumble again on MSDTC issues. &lt;/p&gt;
&lt;p&gt;To cut the story short it was too complicated and too many settings (firewall, NETBIOS etc) needs to be change since the database server is located on DMZ. The next day while I'm configuring the mySAP adapter, I found out that license has expired, since we've downloaded the trial version of BizTalk adapter pack 1.0. So I have to look for another setup, it so happen that for some reason I can't find the 1.0 version that's why I've installed the Adapter pack 2.0. I was a little bit surprise to see that there's a new SQL Adapter included. So I've installed it and give it a try and it works fine.&lt;/p&gt;
&lt;p&gt;Two important sql binding settings that needs to be set are:&lt;/p&gt;
&lt;p&gt;1) useAmbientTransaction = false, to solve &lt;strong&gt;MSDTC issue.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;2) allowIdentityInsert = true, if you're trying to add rows to a table that has &lt;strong&gt;identity column.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1) &lt;img height="580" width="420" alt="" src="/images/weblogs_sqlteam_com/randyp/wcfsql.PNG" /&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/randyp/aggbug/60948.aspx" width="1" height="1" /&gt;</description><dc:creator>Randy Aldrich Paulo</dc:creator></item><item><title>Microsoft MVP</title><link>http://weblogs.sqlteam.com/peterl/archive/2009/07/01/Microsoft-MVP.aspx</link><pubDate>Wed, 01 Jul 2009 16:33:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.sqlteam.com/peterl/archive/2009/07/01/Microsoft-MVP.aspx</guid><wfw:comment>http://weblogs.sqlteam.com/peterl/comments/60946.aspx</wfw:comment><wfw:commentRss>http://weblogs.sqlteam.com/peterl/comments/commentRss/60946.aspx</wfw:commentRss><comments>http://weblogs.sqlteam.com/peterl/archive/2009/07/01/Microsoft-MVP.aspx#comment</comments><slash:comments>7</slash:comments><trackback:ping>http://weblogs.sqlteam.com/peterl/services/trackbacks/60946.aspx</trackback:ping><source url="http://weblogs.sqlteam.com/peterl/rss.aspx">Microsoft MVP</source><description>&lt;p&gt;Today it happened. I received the Microsoft &lt;a href="https://mvp.support.microsoft.com/profile=B4908039-EBFB-4531-8793-0683AAE4419D" target="_blank"&gt;MVP&lt;/a&gt; Award for my contributions to the Microsoft SQL Server community.    &lt;br /&gt;I am very honored by the award and I will continue to work hard for the community to keep their trust in me.    &lt;br /&gt;    &lt;br /&gt;I will continue to update this blog and help users out in the SQLTeam &lt;a href="http://www.sqlteam.com/forums/" target="_blank"&gt;forums&lt;/a&gt;, SqlServerCentral &lt;a href="http://www.sqlservercentral.com/Forums/" target="_blank"&gt;forums&lt;/a&gt;, SQL Server Magazine &lt;a href="http://sqlforums.windowsitpro.com/web/forum/default.aspx?forumid=10" target="_blank"&gt;forums&lt;/a&gt; and SQL Server Developer Center &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/transactsql/threads/" target="_blank"&gt;forums&lt;/a&gt; among a few other.    &lt;br /&gt;    &lt;br /&gt;Thank you to everyone who reads this blog and leave comments. I still learn something new every day.    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;Best Regards,    &lt;br /&gt;Peter Larsson&lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/peterl/aggbug/60946.aspx" width="1" height="1" /&gt;</description><dc:creator>Peter Larsson</dc:creator></item><item><title>DTLoggedExec 0.2.2.0: Here comes CSV Logging!</title><link>http://weblogs.sqlteam.com/dmauri/archive/2009/06/29/60945.aspx</link><pubDate>Mon, 29 Jun 2009 21:40:38 GMT</pubDate><guid isPermaLink="true">http://weblogs.sqlteam.com/dmauri/archive/2009/06/29/60945.aspx</guid><wfw:comment>http://weblogs.sqlteam.com/dmauri/comments/60945.aspx</wfw:comment><wfw:commentRss>http://weblogs.sqlteam.com/dmauri/comments/commentRss/60945.aspx</wfw:commentRss><comments>http://weblogs.sqlteam.com/dmauri/archive/2009/06/29/60945.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://weblogs.sqlteam.com/dmauri/services/trackbacks/60945.aspx</trackback:ping><source url="http://weblogs.sqlteam.com/dmauri/rss.aspx">DTLoggedExec 0.2.2.0: Here comes CSV Logging!</source><description>&lt;p&gt;In these last days I've released the latest version of DTLoggedExec. Now it has reached version 0.2.2.0.&lt;/p&gt;
&lt;p&gt;I planned the release to be done in May, but I added a l lot of stuff and then I realized that logging so much information without being able to automatically import it into SQL Server for further analsys has no clue.&lt;/p&gt;
&lt;p&gt;So I decided to hold on a little bit and also improve the DTLoggedExec db that I firstly released with version 0.2.1.4 just as an example of what can be done with the Data Profiling featture, and that news has grown to be official repository of all the data the DTLoggedExec can log.&lt;/p&gt;
&lt;p&gt;Of course with the added capability to log to CSV file, this feature was really needed.&lt;/p&gt;
&lt;p&gt;This new feature brought also the need to be able to associate CSV Logging with DataFlow Profiling, so I had to change the code a little bit so that everything can get a consistent and unique Execution ID, which allows the data to be tied all togheter, not matter if it comes from DataFlow Profiling or CSV Logging.&lt;/p&gt;
&lt;p&gt;Add this with some bug fixed and a very handy feature that allows you to get rid of the complex SET syntax to make yout package parametric and you can imagine that some work had to be done.&lt;/p&gt;
&lt;p&gt;Plus, add that before releasing any new release I want to test it for a while on myself, just to be sure that very basic bug does get unnoticed, at voilà, some months of delay.&lt;/p&gt;
&lt;p&gt;Anyway, now its there, and I'm sure you'll enjoy the new features:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
    &lt;div&gt;Added logging of expression used by variables for which the "EvaluateAsExpression" property is true.&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;Fixed the bug the prevented to log properly Custom Events (CodePlex id# 20513)&lt;/li&gt;
    &lt;li&gt;Fixed a bug that prevented to log properly all the container properties in case of error&lt;/li&gt;
    &lt;li&gt;Added support for "Params" commandline options&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Released CSV log provider&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;Handled exceptions when loaded configuration tries to configure non-existing objects&lt;/li&gt;
    &lt;li&gt;Changed the ILogProvider interface to allow Log Provider to get the ExecutionGUID value from the main program&lt;/li&gt;
    &lt;li&gt;Changed the Console and Null log providers to support the new ILogProvider interface&lt;/li&gt;
    &lt;li&gt;Changed the header of the *.dtsDataFlowProfile in order to store package, version and execution GUIDs&lt;/li&gt;
    &lt;li&gt;Changed .sql files to import Profiled DataFlow data in SQL Server&lt;/li&gt;
    &lt;li&gt;Updated DTLoggedExecDB database&lt;/li&gt;
    &lt;strong&gt;&lt;/strong&gt;
    &lt;li&gt;&lt;strong&gt;Released scripts to load CSV data proceduced by CSV Log Provider into SQL Server&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I'm now in the process of updating the documentation. I plan to be able to do it during this week and weekend, but using the new feature is quite easy and as usual I have included in released code some samples to show how to use them.&lt;/p&gt;
&lt;p&gt;So, if you cannot wait, go and play, otherwise just hold on a while, while I update the documentation here:&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;&lt;a href="http://dtloggedexec.davidemauri.it/MainPage.ashx"&gt;http://dtloggedexec.davidemauri.it/MainPage.ashx&lt;/a&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;One last notice about the new CSV Log Provider. This is completely functional and you can start to use it right now, but is just the first release. I plan to improve it more and more. I have to deep test it for performance impact, so play with it freely but be warned that performance may be lower then the Console Log Provider. Inside it pack data into XML format so that it can be stored in SQL Server easily, but this has some costs (You know, XML is flexble, standard, whatever you want, but surealy is not performant).&lt;/p&gt;
&lt;p&gt;In future I plan to change a little bit the Log Provider interface again so that everything can be redirected to the Log Provider, also the initial messages, so that in the CSV log can be put everything can currently be found in the Console Log Provider, event the initialization messages, so inside SQL Server you can have the complete picture of what happened, right from the initialization of DTLoggedExec, just as it now happens with the Console Log Provider. Anyway, and I wanted to share it with you so that you can have an idea of future improvements, but for now just playing with the CSV log provider can solve a lot of nice problems. For example Auditing packages :).&lt;/p&gt;
&lt;p&gt;More on that coming.... ;)&lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/dmauri/aggbug/60945.aspx" width="1" height="1" /&gt;</description><dc:creator>Davide Mauri</dc:creator></item><item><title>Forced Parameterization: A Turbo Button?</title><link>http://weblogs.sqlteam.com/dang/archive/2009/06/27/Forced-Parameterization-A-Turbo-Button.aspx</link><pubDate>Sat, 27 Jun 2009 14:47:17 GMT</pubDate><guid isPermaLink="true">http://weblogs.sqlteam.com/dang/archive/2009/06/27/Forced-Parameterization-A-Turbo-Button.aspx</guid><wfw:comment>http://weblogs.sqlteam.com/dang/comments/60944.aspx</wfw:comment><wfw:commentRss>http://weblogs.sqlteam.com/dang/comments/commentRss/60944.aspx</wfw:commentRss><comments>http://weblogs.sqlteam.com/dang/archive/2009/06/27/Forced-Parameterization-A-Turbo-Button.aspx#comment</comments><slash:comments>2</slash:comments><trackback:ping>http://weblogs.sqlteam.com/dang/services/trackbacks/60944.aspx</trackback:ping><source url="http://weblogs.sqlteam.com/dang/rss.aspx">Forced Parameterization: A Turbo Button?</source><description>&lt;font size="3"&gt;
&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;I never had the need to turn on the PARAMETERIZATION FORCED database option until this week.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;We pretty much use only stored procedures for our internal applications so the execution plans are almost always in cache and reused.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;This practice of using parameterized stored procedure calls, together with attention to detail in query and index tuning, allows us to comfortably handle several thousand requests per second on commodity hardware without taking special measures.&lt;/p&gt;
&lt;h1 style="MARGIN: 10pt 0in 0pt"&gt;&lt;font color="#17365d" size="5"&gt;The Perfect Storm&lt;/font&gt;&lt;/h1&gt;
&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;We acquired a third-party application which had to sustain thousands of batch requests per second in order to keep up with our peak demand.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Our first attempt to use the application out-of-the box failed miserably when the 16-core database server quickly hit 100% CPU and stayed there.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;An examination of the most frequently run query soon revealed why CPU was so high.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Not only was the moderately complex query not parameterized, each invocation required a full table scan. &lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;The schema (&lt;a href="http://en.wikipedia.org/wiki/Entity-Attribute-Value_model"&gt;&lt;font color="#800080"&gt;EAV model&lt;/font&gt;&lt;/a&gt;, missing primary keys and indexes), application code (ad-hoc, non-parameterized queries) and inattention to indexing seemed the perfect storm to guarantee failure.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;Our hands were tied in what the vendor could/would do to address our performance concerns.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;We worked with the vendor to optimize indexes and this brought the CPU down to about 65% but the batch requests/sec rate and slow response time was still unacceptable. &lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;We needed to increase performance by at least an order of magnitude to meet SLAs.&lt;/p&gt;
&lt;h1 style="MARGIN: 10pt 0in 0pt"&gt;&lt;font color="#17365d" size="5"&gt;The Perfect Fix&lt;/font&gt;&lt;/h1&gt;
&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;I then recalled an experience that &lt;a href="http://sqlblog.com/blogs/adam_machanic/default.aspx"&gt;&lt;font color="#800080"&gt;SQL Server MVP Adam Machanic&lt;/font&gt;&lt;/a&gt; shared not long ago:&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;
&lt;/p&gt;&lt;table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN: auto auto auto 22.1pt; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-border-alt: solid black .5pt; mso-yfti-tbllook: 1184" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"&gt;
    &lt;tbody&gt;
        &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
            &lt;td style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 456.7pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0in; mso-border-alt: solid black .5pt" valign="top" width="609"&gt;
            &lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;&lt;em style="mso-bidi-font-style: normal"&gt;&lt;font size="3"&gt;CPU was 95%+ at peak time (several thousand batch requests/second, via an ASP (classic) front end), and the peak time lasted 8+ hours every day.  The server was one of the big HP boxes -- not sure if it was a Superdome or some other model -- with something like 56 cores and 384 GB of RAM.  The database itself was only 40 or 50 GB, as I recall, so the entire thing was cached.  Long story short, I logged in during peak load, did a quick trace and noticed right away that none of the queries were parameterized.  I decided to throw caution to the wind and just go for it.  Flipped the thing into Forced Parameterization mode and held my breath as I watched the CPU counters *instantly* drop to 7% and stay there. I thought I'd broken the thing, but after checking my trace queries were running through the system same as before, and with the same number of errors (another story entirely &amp;lt;g&amp;gt;). Luckily the head IT guy happened to be watching his dashboard right as I made the change, and after seeing such an extreme result thought I was a god...&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;

&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;I knew of PARAMETERIZATION FORCED but never realized how big a difference the option could make until I learned of Adam's experience.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I'm not quite as adventuresome as he is so I restored the production database to a separate environment for some cursory testing.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;To my amazement, I watched the rate of my single-threaded test jump from a few dozen batch requests/sec to several hundred immediately after I executed "&lt;strong style="mso-bidi-font-weight: normal"&gt;ALTER DATABASE...SET PARAMETERIZATION FORCED&lt;/strong&gt;".&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;CPU dropped by half even with the tenfold increase in throughput.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;The production improvement was even more impressive - the 16 core Dell R900 hasn't exceeded 8% CPU since the change.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Response time is excellent, we have happy users and plenty of CPU headroom to spare.&lt;/p&gt;
&lt;h1 style="MARGIN: 10pt 0in 0pt"&gt;&lt;font color="#17365d" size="5"&gt;A Turbo Button?&lt;/font&gt;&lt;/h1&gt;
&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;Despite anecdotal success with PARAMETERIZATION FORCED, I wouldn't turn it on indiscriminately.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;When the PARAMETERIZATION FORCED database option is on, &lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;em style="mso-bidi-font-style: normal"&gt;all queries are parameterized&lt;/em&gt;&lt;/strong&gt;, including complex ones.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;This is good in that compilation costs are avoided due to cache hits.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;The bad news is that a single plan might not be appropriate for all possible values of a given query.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Worse overall performance will result when higher execution costs (due to sub-optimal plans) exceed compilation savings so you should understand the query mix before considering the option. &lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;In contrast, SQL Server parameterizes only relatively simple "no brainer" queries in the default PARAMETERIZATION SIMPLE mode.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;This behavior promotes reuse of plans for queries that will yield the same plan anyway regardless of the literal values in the query.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Complex queries are not parameterized automatically so that the optimizer can generate the optimal plan for the values of the current query in the event of a cache miss. &lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;The downside with simple parameterization, as Adam and I observed, is that complex queries not already in cache will incur costly compilation costs that are a CPU hog in a high-volume OLTP workload.&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;There is also middle ground between PARAMETERIZATION SIMPLE and PARAMETERIZATION FORCED.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;One can use plans guides with PARAMETERIZATION SIMPLE to avoid compilation for selected queries while other complex queries are compiled as normal.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;In my case, a plan guide may have been a better option because the culprit was a single query rather than many different unpredictable ones.&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;In my opinion, the best solution is to use stored procedures and/or parameterized queries in the first place.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;These methods provide the performance benefits of PARAMETERIZATION FORCED and add other security and application development benefits.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Unfortunately, third-party vendors are notorious for not following parameterization Best Practices so DBAs need to keep PARAMETERIZATION FORCED and plan guides in their tool belt.&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt; &lt;/p&gt;
&lt;/font&gt;&lt;img src="http://weblogs.sqlteam.com/dang/aggbug/60944.aspx" width="1" height="1" /&gt;</description><dc:creator>Dan Guzman</dc:creator></item><item><title>Microsoft Connect - Enhanced Syntax For Insert Into Statement</title><link>http://weblogs.sqlteam.com/peterl/archive/2009/06/27/Microsoft-Connect---Enhanced-Syntax-For-Insert-Into-Statement.aspx</link><pubDate>Sat, 27 Jun 2009 20:06:54 GMT</pubDate><guid isPermaLink="true">http://weblogs.sqlteam.com/peterl/archive/2009/06/27/Microsoft-Connect---Enhanced-Syntax-For-Insert-Into-Statement.aspx</guid><wfw:comment>http://weblogs.sqlteam.com/peterl/comments/60943.aspx</wfw:comment><wfw:commentRss>http://weblogs.sqlteam.com/peterl/comments/commentRss/60943.aspx</wfw:commentRss><comments>http://weblogs.sqlteam.com/peterl/archive/2009/06/27/Microsoft-Connect---Enhanced-Syntax-For-Insert-Into-Statement.aspx#comment</comments><slash:comments>5</slash:comments><trackback:ping>http://weblogs.sqlteam.com/peterl/services/trackbacks/60943.aspx</trackback:ping><source url="http://weblogs.sqlteam.com/peterl/rss.aspx">Microsoft Connect - Enhanced Syntax For Insert Into Statement</source><description>&lt;p&gt;I've posted a feedback on Microsoft Connect about how to enhance the INSERT INTO syntax.&lt;br /&gt;
Especially for INSERT INTO ... EXEC ...&lt;br /&gt;
&lt;br /&gt;
Sometimes when you need the result from a stored procedure, the SP itself returns two (or more) resultsets.&lt;br /&gt;
And it's only possibly to fetch and store the first resultset.&lt;br /&gt;
&lt;br /&gt;
What I have suggested is an enhanced syntax for INSERT INTO ... EXEC, like this&lt;/p&gt;
&lt;p&gt;INSERT INTO Table1 (Col1, Col2), Table2 (ColX, ColY, ColZ)&lt;br /&gt;
EXEC usp_MyStoredProcedure @Param1, @Param2&lt;br /&gt;
&lt;br /&gt;
In this example, usp_MyStoredProcedure returns three resultsets, of which I want to store the two first.&lt;br /&gt;
First resultset has two columns, and second resultset has three columns.&lt;br /&gt;
&lt;br /&gt;
Let Microsoft know what you think about this suggestion.&lt;br /&gt;
&lt;a target="_blank" href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=470881"&gt;https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=470881&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/peterl/aggbug/60943.aspx" width="1" height="1" /&gt;</description><dc:creator>Peter Larsson</dc:creator></item><item><title>Microsoft Connect - SSMS Debugger Issue</title><link>http://weblogs.sqlteam.com/peterl/archive/2009/06/27/Microsoft-Connect---SSMS-Debugger-Issue.aspx</link><pubDate>Sat, 27 Jun 2009 20:01:42 GMT</pubDate><guid isPermaLink="true">http://weblogs.sqlteam.com/peterl/archive/2009/06/27/Microsoft-Connect---SSMS-Debugger-Issue.aspx</guid><wfw:comment>http://weblogs.sqlteam.com/peterl/comments/60942.aspx</wfw:comment><wfw:commentRss>http://weblogs.sqlteam.com/peterl/comments/commentRss/60942.aspx</wfw:commentRss><comments>http://weblogs.sqlteam.com/peterl/archive/2009/06/27/Microsoft-Connect---SSMS-Debugger-Issue.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://weblogs.sqlteam.com/peterl/services/trackbacks/60942.aspx</trackback:ping><source url="http://weblogs.sqlteam.com/peterl/rss.aspx">Microsoft Connect - SSMS Debugger Issue</source><description>&lt;p&gt;I've found an issue with the Debugger for SQL Server 2008 Management Studio a while ago.&lt;br /&gt;
This is my way to ask you to endorse a fix&lt;br /&gt;
&lt;a target="_blank" href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=374183"&gt;https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=374183&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Please let Microsoft know what you think about this suggestion.&lt;br /&gt;
&lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/peterl/aggbug/60942.aspx" width="1" height="1" /&gt;</description><dc:creator>Peter Larsson</dc:creator></item><item><title>"join me on July 23rd and learn how to quickly deliver actionable information to your company's leaders"</title><link>http://weblogs.sqlteam.com/derekc/archive/2009/06/25/60941.aspx</link><pubDate>Fri, 26 Jun 2009 00:53:57 GMT</pubDate><guid isPermaLink="true">http://weblogs.sqlteam.com/derekc/archive/2009/06/25/60941.aspx</guid><wfw:comment>http://weblogs.sqlteam.com/derekc/comments/60941.aspx</wfw:comment><wfw:commentRss>http://weblogs.sqlteam.com/derekc/comments/commentRss/60941.aspx</wfw:commentRss><comments>http://weblogs.sqlteam.com/derekc/archive/2009/06/25/60941.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://weblogs.sqlteam.com/derekc/services/trackbacks/60941.aspx</trackback:ping><source url="http://weblogs.sqlteam.com/derekc/rss.aspx">"join me on July 23rd and learn how to quickly deliver actionable information to your company's leaders"</source><description>&lt;font face="Arial"&gt;&lt;font size="4"&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;font size="4"&gt;Learn how to strengthen your company's overall health and help your business thrive in this tough economy - without ever leaving your desk.&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;font face="Arial" size="4"&gt;Attend this exclusive series and discover how to quickly deliver actionable information without any significant software costs or long running data warehouse projects.&lt;/font&gt; &lt;/li&gt;
    &lt;li&gt;&lt;font face="Arial" size="4"&gt;Cut excessive costs, identify your most profitable customer's attributes, improve operations, and reap additional business value from your organization's existing data assets&lt;/font&gt; &lt;/li&gt;
    &lt;li&gt;&lt;font face="Arial" size="4"&gt;Get real-life tips and to-the-point training on how to leverage Microsoft BI to reduce uncertainty and generate quick ROI for your company.&lt;/font&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;font face="Arial"&gt;
&lt;p&gt;&lt;font size="4"&gt;Join industry gurus Derek Comingore and Barry Ralston for 3 lessons + live Q&amp;amp;A and learn how to:&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;font size="4"&gt;leverage Excel and Data Mining technologies that exist today&lt;/font&gt; &lt;/li&gt;
    &lt;li&gt;&lt;font size="4"&gt;support the democratization of BI in your organization using Excel and SharePoint technologies&lt;/font&gt; &lt;/li&gt;
    &lt;li&gt;&lt;font size="4"&gt;quickly provide enterprise visibility into your organization's key metrics  &lt;/font&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;font size="4"&gt;See you there!&lt;/font&gt;&lt;/p&gt;
&lt;/font&gt;
&lt;p&gt;&lt;a href="http://windowsitpro.com/elearning/index.cfm?fuseaction=dynamic&amp;amp;v=5168&amp;amp;p=5209&amp;amp;code=&amp;amp;eventid=29&amp;amp;code=EPspeakersBIeLearnJul09"&gt;&lt;font size="4"&gt;http://windowsitpro.com/elearning/index.cfm?fuseaction=dynamic&amp;amp;v=5168&amp;amp;p=5209&amp;amp;code=&amp;amp;eventid=29&amp;amp;code=EPspeakersBIeLearnJul09&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;img height="300" alt="" width="720" src="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/derekc/BIeLearning_720x300.jpg" /&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://weblogs.sqlteam.com/derekc/aggbug/60941.aspx" width="1" height="1" /&gt;</description><dc:creator>Derek Comingore</dc:creator></item><item><title>Cost to Compile a Query</title><link>http://weblogs.sqlteam.com/billg/archive/2009/06/24/Cost-to-Compile-a-Query.aspx</link><pubDate>Wed, 24 Jun 2009 04:49:09 GMT</pubDate><guid isPermaLink="true">http://weblogs.sqlteam.com/billg/archive/2009/06/24/Cost-to-Compile-a-Query.aspx</guid><wfw:comment>http://weblogs.sqlteam.com/billg/comments/60940.aspx</wfw:comment><wfw:commentRss>http://weblogs.sqlteam.com/billg/comments/commentRss/60940.aspx</wfw:commentRss><comments>http://weblogs.sqlteam.com/billg/archive/2009/06/24/Cost-to-Compile-a-Query.aspx#comment</comments><slash:comments>2</slash:comments><trackback:ping>http://weblogs.sqlteam.com/billg/services/trackbacks/60940.aspx</trackback:ping><source url="http://weblogs.sqlteam.com/billg/rss.aspx">Cost to Compile a Query</source><description>&lt;p&gt;It’s pretty easy to determine the CPU and disk resources that a given query or stored procedure will use.  It’s more difficult to determine the resources that were used to compile that query plan.  You can start by looking at sys.dm_exec_cached_plans.  It has a column called “size_in_bytes” that will tell you how much memory the query plan is using.&lt;/p&gt;  &lt;p&gt;If you generate an XML query plan through SSMS or Profiler you can get some additional information.  The XML plan includes this snippet:&lt;/p&gt;  &lt;p&gt;&amp;lt;QueryPlan CachedPlanSize="196" CompileTime="53" CompileCPU="53" CompileMemory="1896"&amp;gt;&lt;/p&gt;  &lt;p&gt;If you review the &lt;a href="http://schemas.microsoft.com/sqlserver/2004/07/showplan"&gt;schema for the XML query plan&lt;/a&gt; you can find a little bit about these values.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;CachedPlanSize is in kilobytes. &lt;/li&gt;    &lt;li&gt;CompileTime is in milliseconds (1/1000th of a second) and was introduced in SQL Server 2005 SP2. &lt;/li&gt;    &lt;li&gt;CompileCPU is in milliseconds (1/1000th of a second) and was introduced in SQL Server 2005 SP2. &lt;/li&gt;    &lt;li&gt;CompileMemory is in kilobytes and was introduced in SQL Server 2005 SP2. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There are also entries for MemoryGrant (KB) and DegreeOfParallelism but I haven’t used those as much.&lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/billg/aggbug/60940.aspx" width="1" height="1" /&gt;</description><dc:creator>Bill Graziano</dc:creator></item><item><title>Defragmenting/Rebuilding Indexes in SQL Server 2005</title><link>http://weblogs.sqlteam.com/tarad/archive/2009/06/23/DefragmentingRebuilding-Indexes-in-SQL-Server-2005.aspx</link><pubDate>Tue, 23 Jun 2009 12:48:22 GMT</pubDate><guid isPermaLink="true">http://weblogs.sqlteam.com/tarad/archive/2009/06/23/DefragmentingRebuilding-Indexes-in-SQL-Server-2005.aspx</guid><wfw:comment>http://weblogs.sqlteam.com/tarad/comments/60939.aspx</wfw:comment><wfw:commentRss>http://weblogs.sqlteam.com/tarad/comments/commentRss/60939.aspx</wfw:commentRss><comments>http://weblogs.sqlteam.com/tarad/archive/2009/06/23/DefragmentingRebuilding-Indexes-in-SQL-Server-2005.aspx#comment</comments><slash:comments>5</slash:comments><trackback:ping>http://weblogs.sqlteam.com/tarad/services/trackbacks/60939.aspx</trackback:ping><source url="http://weblogs.sqlteam.com/tarad/rss.aspx">Defragmenting/Rebuilding Indexes in SQL Server 2005</source><description>&lt;p&gt;I have modified isp_ALTER_INDEX, which is the stored procedure that I use to defragment/rebuild indexes in SQL Server 2005.  The changes include two bug fixes and one feature request.  &lt;/p&gt;  &lt;p&gt;The first bug fix was reported by Fedor Baydarov.  He found that @lobData was not being re-initialized to zero after a LOB data type was encountered.  This meant that the rest of the indexes to be processed were being done offline even if the online option was available.  &lt;a href="http://en.wikipedia.org/wiki/D'oh!"&gt;D’oh!&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The second bug fix is that it didn’t check for LOB data types of the included columns in a non-clustered index.  The online option is not available for this type of index, so the bug caused the stored procedure to fail when such a condition was encountered.  This bug fix might have been found by a blog reader, but I’m unable to find an email regarding it.  I came across the bug recently on a system that had such an index.&lt;/p&gt;  &lt;p&gt;The feature request was to add the option to do the sort operation in the tempdb database.  This is recommended if your tempdb is optimized according to best practices, such as by having a tempdb data file for each of the CPUs.  See &lt;a href="http://technet.microsoft.com/en-us/library/ms188388(SQL.90).aspx"&gt;ALTER INDEX topic in SQL Server Books Online&lt;/a&gt; for more details.&lt;/p&gt;  &lt;p&gt;You can download the new version of the stored procedure &lt;a href="http://www.tarakizer.com/files/scripts/isp_ALTER_INDEX_06232009.zip"&gt;here&lt;/a&gt;.  &lt;/p&gt;  &lt;p&gt;Let me know if you run into any issues with it.  I’d also be interested to hear if it works on SQL Server 2008.  &lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/tarad/aggbug/60939.aspx" width="1" height="1" /&gt;</description><dc:creator>Tara Kizer</dc:creator></item><item><title>Moving</title><link>http://weblogs.sqlteam.com/joew/archive/2009/06/23/60938.aspx</link><pubDate>Tue, 23 Jun 2009 09:02:09 GMT</pubDate><guid isPermaLink="true">http://weblogs.sqlteam.com/joew/archive/2009/06/23/60938.aspx</guid><wfw:comment>http://weblogs.sqlteam.com/joew/comments/60938.aspx</wfw:comment><wfw:commentRss>http://weblogs.sqlteam.com/joew/comments/commentRss/60938.aspx</wfw:commentRss><comments>http://weblogs.sqlteam.com/joew/archive/2009/06/23/60938.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://weblogs.sqlteam.com/joew/services/trackbacks/60938.aspx</trackback:ping><source url="http://weblogs.sqlteam.com/joew/rss.aspx">Moving</source><description>Over the past several years, I've regularly blogged about SQL Server and other technologies, and sometimes about life in general. I enjoy sharing my experiences and love it when something I've written evokes a good conversation in the comments section of the blog. &lt;br /&gt;
&lt;br /&gt;
For the past couple of years, I've hosted my blog right here on SQLTeam with my good friend and fellow SQL Server MVP, Bill Graziano. Bill's a wonderful guy with a true passion for the SQL Server community. &lt;br /&gt;
&lt;br /&gt;
Recently I finally finished porting my professional web site over to a platform that allows me to host my own blog content. This will afford me more flexibility and will give me a unified presence on the web - making it easier for me consulting, mentoring, and training clients to find and follow me on the web. &lt;br /&gt;
&lt;br /&gt;
I've already begun posting blogs to the new site. Here are a few that may be of interest to you. &lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://webbtechsolutions.com/2009/05/20/book-review-learning-sql-server-2008-reporting-services/"&gt;Book Review - Learning SQL Server 2008 Reporting Services&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://webbtechsolutions.com/2009/05/21/ill-have-a-number-4-combo-with-a-side-of-wifi/"&gt;I'll have a #4 combo with a side of wifi&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://webbtechsolutions.com/2009/06/09/live-from-devteach-2009-in-vancouver/"&gt;Live from DevTeach 2009 in Vancouver&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://webbtechsolutions.com/2009/06/18/finding-a-good-hobby/"&gt;Finding a good hobby&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://webbtechsolutions.com/2009/06/22/security-dont-overlook-the-obvious/"&gt;Security - Don't overlook the obvious&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
Bill's agreed to keep this blog and all its posts in place so that search engines and hard coded links will continue to direct traffic to content. &lt;br /&gt;
&lt;br /&gt;
If you've been a subscriber to this blog via rss, THANK YOU!!! I truly appreciate it. &lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(255, 0, 0); text-decoration: underline;"&gt;ACTION&lt;/span&gt;: To keep receiving updates, you'll need to modify your rss reader's settings for my blog. The new feed is &lt;a href="http://webbtechsolutions.com/feed/"&gt;http://webbtechsolutions.com/feed/&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
Thanks to Bill and SQLTeam for hosting my blog these years. It's been great!&lt;br /&gt;
&lt;br /&gt;
Joe&lt;img src="http://weblogs.sqlteam.com/joew/aggbug/60938.aspx" width="1" height="1" /&gt;</description><dc:creator>Joe Webb</dc:creator></item><item><title>Extended Get Nth Weekday of period</title><link>http://weblogs.sqlteam.com/peterl/archive/2009/06/18/Extended-Get-Nth-Weekday-of-period.aspx</link><pubDate>Thu, 18 Jun 2009 09:34:14 GMT</pubDate><guid isPermaLink="true">http://weblogs.sqlteam.com/peterl/archive/2009/06/18/Extended-Get-Nth-Weekday-of-period.aspx</guid><wfw:comment>http://weblogs.sqlteam.com/peterl/comments/60937.aspx</wfw:comment><wfw:commentRss>http://weblogs.sqlteam.com/peterl/comments/commentRss/60937.aspx</wfw:commentRss><comments>http://weblogs.sqlteam.com/peterl/archive/2009/06/18/Extended-Get-Nth-Weekday-of-period.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://weblogs.sqlteam.com/peterl/services/trackbacks/60937.aspx</trackback:ping><source url="http://weblogs.sqlteam.com/peterl/rss.aspx">Extended Get Nth Weekday of period</source><description>&lt;p&gt;Recently I posted a function which returned the Nth weekday of a month, either from the beginning of month or from the end of month. Function is found here &lt;font face="Arial"&gt;&lt;a href="http://weblogs.sqlteam.com/peterl/archive/2009/06/17/How-to-get-the-Nth-weekday-of-a-month.aspx"&gt;http://weblogs.sqlteam.com/peterl/archive/2009/06/17/How-to-get-the-Nth-weekday-of-a-month.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I have fiddled around with it and have now extended the function to find the Nth weekday not only for a month, but also for a quarter or a year. Below is the function.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;CREATE&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;FUNCTION&lt;/span&gt; dbo&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;fnGetNthWeekdayOfPeriod&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&gt;(&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    @theDate &lt;span style="COLOR: blue"&gt;DATETIME&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    @theWeekday &lt;span style="COLOR: blue"&gt;TINYINT&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    @theNth &lt;span style="COLOR: blue"&gt;SMALLINT&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    @theType &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;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&gt;)&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;RETURNS&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;DATETIME&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;BEGIN&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="COLOR: blue"&gt;RETURN &lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                &lt;span style="COLOR: blue"&gt;SELECT&lt;/span&gt; theDate&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                &lt;span style="COLOR: blue"&gt;FROM&lt;/span&gt;    &lt;span style="COLOR: gray"&gt;(&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                            &lt;span style="COLOR: blue"&gt;SELECT&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEADD&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;DAY&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; theDelta &lt;span style="COLOR: gray"&gt;+&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;@theWeekday &lt;span style="COLOR: gray"&gt;+&lt;/span&gt; 6 &lt;span style="COLOR: gray"&gt;-&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;DAY&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'17530101'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; theFirst&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: gray"&gt;%&lt;/span&gt; 7&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: gray"&gt;%&lt;/span&gt; 7&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; theFirst&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; theDate&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                            &lt;span style="COLOR: blue"&gt;FROM    &lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                        &lt;span style="COLOR: blue"&gt;SELECT&lt;/span&gt; &lt;span style="COLOR: blue"&gt;CASE&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;UPPER&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;@theType&lt;span style="COLOR: gray"&gt;)&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                    &lt;span style="COLOR: blue"&gt;WHEN&lt;/span&gt; &lt;span style="COLOR: red"&gt;'M'&lt;/span&gt; &lt;span style="COLOR: blue"&gt;THEN&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEADD&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;MONTH&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;MONTH&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theNth&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;),&lt;/span&gt; &lt;span style="COLOR: red"&gt;'19000101'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                    &lt;span style="COLOR: blue"&gt;WHEN&lt;/span&gt; &lt;span style="COLOR: red"&gt;'Q'&lt;/span&gt; &lt;span style="COLOR: blue"&gt;THEN&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEADD&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: blue"&gt;QUARTER&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: blue"&gt;QUARTER&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theNth&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;),&lt;/span&gt; &lt;span style="COLOR: red"&gt;'19000101'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                    &lt;span style="COLOR: blue"&gt;WHEN&lt;/span&gt; &lt;span style="COLOR: red"&gt;'Y'&lt;/span&gt; &lt;span style="COLOR: blue"&gt;THEN&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEADD&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;YEAR&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;YEAR&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theNth&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;),&lt;/span&gt; &lt;span style="COLOR: red"&gt;'19000101'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                &lt;span style="COLOR: blue"&gt;END&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; theFirst&lt;span style="COLOR: gray"&gt;,&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                &lt;span style="COLOR: blue"&gt;CASE&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;SIGN&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;@theNth&lt;span style="COLOR: gray"&gt;)&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                    &lt;span style="COLOR: blue"&gt;WHEN&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;1 &lt;span style="COLOR: blue"&gt;THEN&lt;/span&gt; 7 &lt;span style="COLOR: gray"&gt;*&lt;/span&gt; @theNth&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                    &lt;span style="COLOR: blue"&gt;WHEN&lt;/span&gt; 1 &lt;span style="COLOR: blue"&gt;THEN&lt;/span&gt; 7 &lt;span style="COLOR: gray"&gt;*&lt;/span&gt; @theNth &lt;span style="COLOR: gray"&gt;-&lt;/span&gt; 7&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                &lt;span style="COLOR: blue"&gt;END&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; theDelta&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                        &lt;span style="COLOR: blue"&gt;WHERE&lt;/span&gt;   @theWeekday &lt;span style="COLOR: gray"&gt;BETWEEN&lt;/span&gt; 1 &lt;span style="COLOR: gray"&gt;AND&lt;/span&gt; 7&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                &lt;span style="COLOR: gray"&gt;AND &lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                        @theNth &lt;span style="COLOR: gray"&gt;BETWEEN&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;5 &lt;span style="COLOR: gray"&gt;AND&lt;/span&gt; 5&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                        &lt;span style="COLOR: gray"&gt;AND&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;UPPER&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;@theType&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: gray"&gt;=&lt;/span&gt; &lt;span style="COLOR: red"&gt;'M'&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                    &lt;span style="COLOR: gray"&gt;OR&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                        @theNth &lt;span style="COLOR: gray"&gt;BETWEEN&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;14 &lt;span style="COLOR: gray"&gt;AND&lt;/span&gt; 14&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                        &lt;span style="COLOR: gray"&gt;AND&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;UPPER&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;@theType&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: gray"&gt;=&lt;/span&gt; &lt;span style="COLOR: red"&gt;'Q'&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                    &lt;span style="COLOR: gray"&gt;OR&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                        @theNth &lt;span style="COLOR: gray"&gt;BETWEEN&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;53 &lt;span style="COLOR: gray"&gt;AND&lt;/span&gt; 53&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                        &lt;span style="COLOR: gray"&gt;AND&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;UPPER&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;@theType&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: gray"&gt;=&lt;/span&gt; &lt;span style="COLOR: red"&gt;'Y'&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                &lt;span style="COLOR: gray"&gt;)&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                                &lt;span style="COLOR: gray"&gt;AND&lt;/span&gt; @theNth &lt;span style="COLOR: gray"&gt;&amp;lt;&amp;gt;&lt;/span&gt; 0&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                    &lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; d&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                        &lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; d&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                &lt;span style="COLOR: blue"&gt;WHERE&lt;/span&gt;   &lt;span style="COLOR: blue"&gt;CASE&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;UPPER&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;@theType&lt;span style="COLOR: gray"&gt;)&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                            &lt;span style="COLOR: blue"&gt;WHEN&lt;/span&gt; &lt;span style="COLOR: red"&gt;'M'&lt;/span&gt; &lt;span style="COLOR: blue"&gt;THEN&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;MONTH&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; theDate&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                            &lt;span style="COLOR: blue"&gt;WHEN&lt;/span&gt; &lt;span style="COLOR: red"&gt;'Q'&lt;/span&gt; &lt;span style="COLOR: blue"&gt;THEN&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: blue"&gt;QUARTER&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; theDate&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                            &lt;span style="COLOR: blue"&gt;WHEN&lt;/span&gt; &lt;span style="COLOR: red"&gt;'Y'&lt;/span&gt; &lt;span style="COLOR: blue"&gt;THEN&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;YEAR&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; theDate&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                        &lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;END&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: gray"&gt;=&lt;/span&gt; 0&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;        &lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&gt;)&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: blue; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;END&lt;br /&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/peterl/aggbug/60937.aspx" width="1" height="1" /&gt;</description><dc:creator>Peter Larsson</dc:creator></item><item><title>How to get the Weekday and Nth from a date</title><link>http://weblogs.sqlteam.com/peterl/archive/2009/06/18/How-to-get-the-Weekday-and-Nth-from-a-date.aspx</link><pubDate>Thu, 18 Jun 2009 00:28:14 GMT</pubDate><guid isPermaLink="true">http://weblogs.sqlteam.com/peterl/archive/2009/06/18/How-to-get-the-Weekday-and-Nth-from-a-date.aspx</guid><wfw:comment>http://weblogs.sqlteam.com/peterl/comments/60936.aspx</wfw:comment><wfw:commentRss>http://weblogs.sqlteam.com/peterl/comments/commentRss/60936.aspx</wfw:commentRss><comments>http://weblogs.sqlteam.com/peterl/archive/2009/06/18/How-to-get-the-Weekday-and-Nth-from-a-date.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://weblogs.sqlteam.com/peterl/services/trackbacks/60936.aspx</trackback:ping><source url="http://weblogs.sqlteam.com/peterl/rss.aspx">How to get the Weekday and Nth from a date</source><description>You call this function with a date. The function returns a table with one record and 3 columns.&lt;br /&gt;
First column is Weekday; Monday = 1, Tuesday = 2, Wednesday = 3; Thursday = 4, Friday = 5, Saturday = 6 and Sunday = 7.&lt;br /&gt;
Second column is number of occurencies of that date since beginning of selected period type.&lt;br /&gt;
Third columns is number of occurencies left of that period type.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;CREATE&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;FUNCTION&lt;/span&gt; dbo&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;fnGetWeekdayAndNths&lt;/span&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&gt;(&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    @theDate &lt;span style="COLOR: blue"&gt;DATETIME&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    @theType &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&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;RETURNS&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;TABLE&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;AS&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;RETURN &lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;   &lt;span style="COLOR: blue"&gt;SELECT&lt;/span&gt; 1 &lt;span style="COLOR: gray"&gt;+&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;DAY&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;53690&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: gray"&gt;%&lt;/span&gt; 7 &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; theWeekday&lt;span style="COLOR: gray"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                    1 &lt;span style="COLOR: gray"&gt;+(&lt;/span&gt;theDelta &lt;span style="COLOR: gray"&gt;-&lt;/span&gt; 1&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: gray"&gt;/&lt;/span&gt; 7 &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; Beginning&lt;span style="COLOR: gray"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                    &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;DAY&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEADD&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;DAY&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;1&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; thePeriod&lt;span style="COLOR: gray"&gt;),&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: gray"&gt;/&lt;/span&gt; 7 &lt;span style="COLOR: gray"&gt;-&lt;/span&gt; 1 &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; Ending&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: blue"&gt;FROM    &lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                        &lt;span style="COLOR: blue"&gt;SELECT&lt;/span&gt; &lt;span style="COLOR: blue"&gt;CASE&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;UPPER&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;@theType&lt;span style="COLOR: gray"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                    &lt;span style="COLOR: blue"&gt;WHEN&lt;/span&gt; &lt;span style="COLOR: red"&gt;'M'&lt;/span&gt; &lt;span style="COLOR: blue"&gt;THEN&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEADD&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;MONTH&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;MONTH&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;53690&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;),&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;53659&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                    &lt;span style="COLOR: blue"&gt;WHEN&lt;/span&gt; &lt;span style="COLOR: red"&gt;'Q'&lt;/span&gt; &lt;span style="COLOR: blue"&gt;THEN&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEADD&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: blue"&gt;QUARTER&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: blue"&gt;QUARTER&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;53690&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;),&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;53600&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                    &lt;span style="COLOR: blue"&gt;WHEN&lt;/span&gt; &lt;span style="COLOR: red"&gt;'Y'&lt;/span&gt; &lt;span style="COLOR: blue"&gt;THEN&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEADD&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;YEAR&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;YEAR&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;53690&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;),&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;53325&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                &lt;span style="COLOR: blue"&gt;END&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; thePeriod&lt;span style="COLOR: gray"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                &lt;span style="COLOR: blue"&gt;CASE&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;UPPER&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;@theType&lt;span style="COLOR: gray"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                    &lt;span style="COLOR: blue"&gt;WHEN&lt;/span&gt; &lt;span style="COLOR: red"&gt;'M'&lt;/span&gt; &lt;span style="COLOR: blue"&gt;THEN&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEPART&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;DAY&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                    &lt;span style="COLOR: blue"&gt;WHEN&lt;/span&gt; &lt;span style="COLOR: red"&gt;'Q'&lt;/span&gt; &lt;span style="COLOR: blue"&gt;THEN&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;DAY&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEADD&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: blue"&gt;QUARTER&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: blue"&gt;QUARTER&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; 0&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;),&lt;/span&gt; 0&lt;span style="COLOR: gray"&gt;),&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEADD&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: blue"&gt;QUARTER&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: blue"&gt;QUARTER&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;53690&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;),&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;53600&lt;span style="COLOR: gray"&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                    &lt;span style="COLOR: blue"&gt;WHEN&lt;/span&gt; &lt;span style="COLOR: red"&gt;'Y'&lt;/span&gt; &lt;span style="COLOR: blue"&gt;THEN&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEPART&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: blue"&gt;DAYOFYEAR&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                                &lt;span style="COLOR: blue"&gt;END&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; theDelta&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;                    &lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; d&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: blue"&gt;WHERE&lt;/span&gt;   &lt;span style="COLOR: fuchsia"&gt;UPPER&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;@theType&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: gray"&gt;IN&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: red"&gt;'Y'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'Q'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'M'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="FONT-SIZE: 8pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;        &lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: gray; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;)&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://weblogs.sqlteam.com/peterl/aggbug/60936.aspx" width="1" height="1" /&gt;</description><dc:creator>Peter Larsson</dc:creator></item><item><title>How to get the Nth weekday of a month</title><link>http://weblogs.sqlteam.com/peterl/archive/2009/06/17/How-to-get-the-Nth-weekday-of-a-month.aspx</link><pubDate>Wed, 17 Jun 2009 19:05:14 GMT</pubDate><guid isPermaLink="true">http://weblogs.sqlteam.com/peterl/archive/2009/06/17/How-to-get-the-Nth-weekday-of-a-month.aspx</guid><wfw:comment>http://weblogs.sqlteam.com/peterl/comments/60935.aspx</wfw:comment><wfw:commentRss>http://weblogs.sqlteam.com/peterl/comments/commentRss/60935.aspx</wfw:commentRss><comments>http://weblogs.sqlteam.com/peterl/archive/2009/06/17/How-to-get-the-Nth-weekday-of-a-month.aspx#comment</comments><slash:comments>4</slash:comments><trackback:ping>http://weblogs.sqlteam.com/peterl/services/trackbacks/60935.aspx</trackback:ping><source url="http://weblogs.sqlteam.com/peterl/rss.aspx">How to get the Nth weekday of a month</source><description>&lt;p&gt;You call this function with three parameters:&lt;br /&gt;
&lt;br /&gt;
1. Any date of the month in question&lt;br /&gt;
2. The weekday to calculate; Monday 1, Tuesday 2, Wednesday 3, Thursday 4, Friday 5, Saturday 6 and Sunday 7&lt;br /&gt;
3. The choice of weekday count; a positive number means from the beginning of month and a negative number means from the end of month&lt;br /&gt;
&lt;br /&gt;
If a valid date cannot be calculated, NULL is returned. For an extended version which, besides month, also handles quarter and year, see new blog post here&lt;br /&gt;
&lt;font face="Arial"&gt;&lt;a href="http://weblogs.sqlteam.com/peterl/archive/2009/06/18/Extended-Get-Nth-Weekday-of-period.aspx"&gt;http://weblogs.sqlteam.com/peterl/archive/2009/06/18/Extended-Get-Nth-Weekday-of-period.aspx&lt;/a&gt;&lt;br /&gt;
&lt;/font&gt;&lt;br /&gt;
&lt;span style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;CREATE&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;FUNCTION&lt;/span&gt; dbo&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;fnGetNthWeekdayOfMonth&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&gt;(&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    @theDate &lt;span style="COLOR: blue"&gt;DATETIME&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    @theWeekday &lt;span style="COLOR: blue"&gt;TINYINT&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;/span&gt;@theNth &lt;span style="COLOR: blue"&gt;SMALLINT&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&gt;)&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;RETURNS&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;DATETIME&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;BEGIN&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;/span&gt;&lt;span style="COLOR: blue"&gt;RETURN  &lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;SELECT&lt;/span&gt;  theDate&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;FROM    &lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;SELECT&lt;/span&gt;  &lt;span style="COLOR: fuchsia"&gt;DATEADD&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;DAY&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; 7 &lt;span style="COLOR: gray"&gt;*&lt;/span&gt; @theNth &lt;span style="COLOR: gray"&gt;-&lt;/span&gt; 7 &lt;span style="COLOR: gray"&gt;*&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;SIGN&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;SIGN&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;@theNth&lt;span style="COLOR: gray"&gt;)&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: gray"&gt;+&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;@theWeekday &lt;span style="COLOR: gray"&gt;+&lt;/span&gt; 6 &lt;span style="COLOR: gray"&gt;-&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;DAY&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: red"&gt;'17530101'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEADD&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;MONTH&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;MONTH&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theNth&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;),&lt;/span&gt; &lt;span style="COLOR: red"&gt;'19000101'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;))&lt;/span&gt; &lt;span style="COLOR: gray"&gt;%&lt;/span&gt; 7&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: gray"&gt;%&lt;/span&gt; 7&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEADD&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;MONTH&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;MONTH&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theNth&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;),&lt;/span&gt; &lt;span style="COLOR: red"&gt;'19000101'&lt;/span&gt;&lt;span style="COLOR: gray"&gt;))&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; theDate&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;WHERE&lt;/span&gt;   @theWeekday &lt;span style="COLOR: gray"&gt;BETWEEN&lt;/span&gt; 1 &lt;span style="COLOR: gray"&gt;AND&lt;/span&gt; 7&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;AND&lt;/span&gt; @theNth &lt;span style="COLOR: gray"&gt;IN &lt;/span&gt;&lt;span style="COLOR: gray"&gt;(-&lt;/span&gt;5&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;4&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;3&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;2&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;span style="COLOR: gray"&gt;-&lt;/span&gt;1&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; 1&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; 2&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; 3&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; 4&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; 5&lt;span style="COLOR: gray"&gt;)&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; d&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;WHERE&lt;/span&gt;   &lt;span style="COLOR: fuchsia"&gt;DATEDIFF&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;MONTH&lt;/span&gt;&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; theDate&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; @theDate&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: gray"&gt;=&lt;/span&gt; 0&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&gt;)&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: blue; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;END&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/peterl/aggbug/60935.aspx" width="1" height="1" /&gt;</description><dc:creator>Peter Larsson</dc:creator></item><item><title>SQL Server 2008 for Developers live meeting presentation</title><link>http://weblogs.sqlteam.com/mladenp/archive/2009/06/15/SQL-Server-2008-for-Developers-live-meeting-presentation.aspx</link><pubDate>Mon, 15 Jun 2009 21:22:56 GMT</pubDate><guid isPermaLink="true">http://weblogs.sqlteam.com/mladenp/archive/2009/06/15/SQL-Server-2008-for-Developers-live-meeting-presentation.aspx</guid><wfw:comment>http://weblogs.sqlteam.com/mladenp/comments/60934.aspx</wfw:comment><wfw:commentRss>http://weblogs.sqlteam.com/mladenp/comments/commentRss/60934.aspx</wfw:commentRss><comments>http://weblogs.sqlteam.com/mladenp/archive/2009/06/15/SQL-Server-2008-for-Developers-live-meeting-presentation.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://weblogs.sqlteam.com/mladenp/services/trackbacks/60934.aspx</trackback:ping><source url="http://weblogs.sqlteam.com/mladenp/rss.aspx">SQL Server 2008 for Developers live meeting presentation</source><description>&lt;p&gt;I’ll be talking about the following topics:&lt;/p&gt;  &lt;li&gt;What should developers know about database design so they don't have performance and logical problems? &lt;/li&gt;  &lt;li&gt;What's new in SQL Server 2008 that helps solve some business problems that sometime required "hacking" before. &lt;/li&gt;  &lt;li&gt;Concurrency design models and isolation levels.    &lt;p&gt; &lt;/p&gt;    &lt;p&gt;The presentation will start on Tuesday June 16th at 2:00 PM EST / 6:00 PM UTC / 8:00 PM CET&lt;/p&gt;    &lt;p&gt;More info at &lt;a href="http://www.sqlpass.org/Community/SIGs/ApplicationDevelopmentSIG/tabid/81/Default.aspx" target="_blank"&gt;&lt;strong&gt;&lt;font color="#004080"&gt;PASS Application Development SIG&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; you can view the presentation &lt;a href="http://www.sqlpass.org/Community/SIGs/ApplicationDevelopmentSIG/AppDevLiveMeetingRecordings.aspx" target="_blank"&gt;&lt;strong&gt;&lt;font color="#004080"&gt;here&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/mladenp/aggbug/60934.aspx" width="1" height="1" /&gt;</description><dc:creator>Mladen Prajdić</dc:creator></item></channel></rss>