<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-36914164</id><updated>2011-10-06T07:08:38.963-07:00</updated><category term='system tables'/><category term='test'/><category term='Teradata'/><category term='volatile table'/><category term='transactions'/><category term='TSqlTest'/><category term='Architecture'/><category term='temp table'/><category term='SQL'/><category term='data types'/><category term='personal'/><category term='web'/><category term='view'/><category term='Fiserv'/><category term='function'/><category term='SQL Server'/><category term='career'/><category term='WebMD'/><category term='writing'/><category term='recursion'/><category term='time'/><title type='text'>Persistence of Vision</title><subtitle type='html'>Rob Garrison's writings on Data Architecture: SQL Server, performance, design, testing, best-practices, automation, and whatever else I decide to include.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>57</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-36914164.post-1927484204551236818</id><published>2011-08-24T08:28:00.000-07:00</published><updated>2011-08-24T08:28:35.964-07:00</updated><title type='text'>Lorem Ipsum (Test String) Generator</title><content type='html'>I am working on building test data for a large client and wanted to have strings that were not just 'x' 100 times or something like that.&lt;br /&gt;&lt;br /&gt;I used the "Lorem Ipsum Generator" &lt;a href="http://www.procato.com/lipsum/"&gt;here&lt;/a&gt;. It allowed me to build non-repeating strings. Here are a few examples with the choices available:&lt;br /&gt;&lt;br /&gt;Generate 25 Words&lt;br /&gt;[Checked] Begin text with "Lorem ipsum dolor sit amet"&lt;br /&gt;All other defaults&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: #666666;"&gt;Lorem ipsum dolor sit amet phasellus velit placerat nam. Leo cubilia libero. Aliquam ut gravida congue non et. Lectus volutpat justo. Penatibus lectus urna wisi. &lt;/span&gt;&lt;/blockquote&gt;Generate 50 Words&lt;br /&gt;[Unchecked] Begin text with "Lorem ipsum dolor sit amet"&lt;br /&gt;All other defaults&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: #666666;"&gt;Pharetra est scelerisque. Dolor et augue integer et non volutpat maecenas consequat id malesuada turpis. Vestibulum habitasse maecenas quis ultricies vestibulum arcu augue orci. Duis sed non vel mi lacus. Et commodo ac morbi semper commodo. Consequat pretium in. Nulla suscipit tincidunt. Diam id ut. A iaculis enim suspendisse cras. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;It's a simple tool, but it creates nice strings.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-1927484204551236818?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/1927484204551236818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2011/08/lorem-ipsum-test-string-generator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/1927484204551236818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/1927484204551236818'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2011/08/lorem-ipsum-test-string-generator.html' title='Lorem Ipsum (Test String) Generator'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-7954213409729439620</id><published>2011-07-13T16:00:00.000-07:00</published><updated>2011-07-13T16:00:01.755-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fiserv'/><category scheme='http://www.blogger.com/atom/ns#' term='WebMD'/><category scheme='http://www.blogger.com/atom/ns#' term='career'/><title type='text'>What Goes Around Comes Around</title><content type='html'>My time at &lt;a href="http://www.webmdhealthservices.com/"&gt;WebMD Health Services&lt;/a&gt; will come to a close at the end of this week. I am returning to &lt;a href="http://www.fiserv.com/"&gt;Fiserv&lt;/a&gt; as the Data Architect for the development team in Hillsboro.&lt;br /&gt;&lt;br /&gt;I am very excited about the new opportunity and look forward to the new challenges.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-7954213409729439620?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/7954213409729439620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2011/07/what-goes-around-comes-around.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7954213409729439620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7954213409729439620'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2011/07/what-goes-around-comes-around.html' title='What Goes Around Comes Around'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-1034681904753554876</id><published>2011-02-16T13:34:00.000-08:00</published><updated>2011-02-16T13:34:02.152-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Teradata'/><category scheme='http://www.blogger.com/atom/ns#' term='writing'/><title type='text'>Second Teradata Article Published</title><content type='html'>My second Teradata article has been published: &lt;a href="http://developer.teradata.com/database/articles/exploring-teradata-13s-period-functions"&gt;Exploring Teradata 13's PERIOD Functions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It is the follow-up to &lt;a href="http://developer.teradata.com/database/articles/exploring-teradata-13s-period-data-type"&gt;Exploring Teradata 13's PERIOD Data Type&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The article is quite long (12 printed pages) and took a &lt;i&gt;long&lt;/i&gt; time to write, but I'm pleased with the outcome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-1034681904753554876?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/1034681904753554876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2011/02/second-teradata-article-published.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/1034681904753554876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/1034681904753554876'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2011/02/second-teradata-article-published.html' title='Second Teradata Article Published'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-82344936791648358</id><published>2011-02-08T11:56:00.000-08:00</published><updated>2011-02-08T11:56:40.704-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Teradata'/><title type='text'>The "Other" Persistence of Vision</title><content type='html'>Today marks the opening of my blog at &lt;a href="http://developer.teradata.com/"&gt;Teradata Developer Exchange&lt;/a&gt;. I've named it &lt;a href="http://developer.teradata.com/blog/robg"&gt;Persistence of Vision&lt;/a&gt; just like this one, but now I will keep this one focused on SQL Server and put anything specific to Teradata in the other blog.&lt;br /&gt;&lt;br /&gt;My first post is &lt;a href="http://developer.teradata.com/blog/robg/2011/02/detecting-a-broken-prior-valuenew-value-chain"&gt;Detecting a Broken Prior Value/New Value Chain&lt;/a&gt;, which I plan to post here also but with SQL Server code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-82344936791648358?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/82344936791648358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2011/02/other-persistence-of-vision.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/82344936791648358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/82344936791648358'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2011/02/other-persistence-of-vision.html' title='The &quot;Other&quot; Persistence of Vision'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-8564152985579254875</id><published>2011-01-07T10:18:00.000-08:00</published><updated>2011-01-28T16:19:19.176-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='transactions'/><category scheme='http://www.blogger.com/atom/ns#' term='Teradata'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Transactions in Teradata</title><content type='html'>Here is a quick test to show how transactions work in Teradata.&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;CREATE TABLE &lt;/span&gt;&lt;span style="color: black;"&gt;t1 &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Col1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;INT&lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;t1 &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;t1 &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;2&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;t1 &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;3&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: black;"&gt;Col1 &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;AfterInsert &lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;t1&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;BEGIN TRANSACTION&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;UPDATE &lt;/span&gt;&lt;span style="color: black;"&gt;t1 &lt;/span&gt;&lt;span style="color: blue;"&gt;SET &lt;/span&gt;&lt;span style="color: black;"&gt;Col1 &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;Col1 &lt;/span&gt;&lt;span style="color: grey;"&gt;* &lt;/span&gt;&lt;span style="color: black;"&gt;10&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: black;"&gt;Col1 &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;AfterUpdate &lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;t1&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;ROLLBACK&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: green;"&gt;--ABORT;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: black;"&gt;Col1 &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;AfterRollback &lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;t1&lt;/span&gt;&lt;span style="color: grey;"&gt;; &lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Running this query in Teradata SQL Assistant creates two results panes and highlights the ROLLBACK. The message at the bottom states, "ROLLBACK Failed. 3514: User-generated transaction ABORT."&lt;br /&gt;&lt;br /&gt;Running this same query in Nexus creates three results panes.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;AfterInsert&lt;br /&gt;-----------&lt;br /&gt;1&lt;br /&gt;2&lt;br /&gt;3&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Nexus adds a tab here with no results. It appears to correspond to the ROLLBACK.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;AfterUpdate&lt;br /&gt;-----------&lt;br /&gt;20&lt;br /&gt;30&lt;br /&gt;10&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Neither returns results for the "AfterRollback" query.&lt;br /&gt;&lt;br /&gt;Running that query after running the whole script returns the expected (rolled back) results.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;AfterInsert&lt;br /&gt;-----------&lt;br /&gt;1&lt;br /&gt;2&lt;br /&gt;3&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;There is clearly more to understand here. I will update this post as I learn more.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update 1 (2011-01-07)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Our system uses Teradata transaction semantics. Look &lt;a href="http://www.coffingdw.com/sql/tdsqlutp/ansi_vs_teradata_transactions.htm"&gt;here&lt;/a&gt; for a quick explanation of transaction semantics.&lt;br /&gt;&lt;br /&gt;To see which mode you are running in a session, use HELP SESSION and look for the column "Transaction Semantics".&lt;br /&gt;&lt;br /&gt;(Many thanks to my friend and colleague Joshua Skarphol for the details.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-8564152985579254875?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/8564152985579254875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2011/01/transactions-in-teradata.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8564152985579254875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8564152985579254875'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2011/01/transactions-in-teradata.html' title='Transactions in Teradata'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-1583181979854877968</id><published>2011-01-06T16:52:00.000-08:00</published><updated>2011-01-28T16:18:38.798-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recursion'/><category scheme='http://www.blogger.com/atom/ns#' term='Teradata'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='view'/><title type='text'>Teradata Recursive View</title><content type='html'>Here is a complete example of building a recursive view in Teradata.&lt;br /&gt;&lt;br /&gt;The table stores records that show the current [slightly simplified] hierarchy of two top-level automobile manufacturers.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Table Create&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;CREATE &lt;/span&gt;&lt;span style="color: black;"&gt;MULTISET &lt;/span&gt;&lt;span style="color: blue;"&gt;TABLE &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarque &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;200&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;NULL,&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ParentMarqueName&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;200&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;NULL&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt; )&lt;/span&gt;&lt;span style="color: blue;"&gt; UNIQUE PRIMARY INDEX &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarque_UPI &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Inserts&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarque &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;ParentMarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'Volkswagen AG'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;'Volkswagen AG'&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarque &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;ParentMarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'AUDI AG'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;'Volkswagen AG'&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarque &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;ParentMarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'Bentley Motors Limited'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: red;"&gt;'Volkswagen AG'&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarque &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;ParentMarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'Bugatti Automobiles S.A.S.'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: red;"&gt;'Volkswagen AG'&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarque &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;ParentMarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'SEAT, S.A.'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: red;"&gt;'Volkswagen AG'&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarque &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;ParentMarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'Skoda automobilova a.s.'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;'Volkswagen AG'&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarque &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;ParentMarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'Volkswagen Passenger Cars'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;'Volkswagen AG'&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarque &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;ParentMarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'NSU Motorenwerke AG'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;'AUDI AG'&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarque &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;ParentMarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'Automobili Lamborghini S.p.A.'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;'AUDI AG'&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarque &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;ParentMarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'Tata Motors'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;'Tata Motors'&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarque &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;ParentMarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'Jaguar'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: red;"&gt;'Tata Motors'&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarque &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;ParentMarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'Land Rover'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: red;"&gt;'Tata Motors'&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Recursive View Definition&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: magenta;"&gt;REPLACE &lt;/span&gt;&lt;span style="color: black;"&gt;RECURSIVE &lt;/span&gt;&lt;span style="color: blue;"&gt;VIEW &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarqueRecurse &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ParentMarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;TopLevelMarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;RecurseLevel&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;LOCKING ROW &lt;/span&gt;&lt;span style="color: blue;"&gt;FOR &lt;/span&gt;&lt;span style="color: black;"&gt;ACCESS&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;SELECT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ParentMarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;-- TopLevelMarqueName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarque&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;ParentMarqueName &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;MarqueName&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;UNION &lt;/span&gt;&lt;span style="color: grey;"&gt;ALL&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;m.MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;m.ParentMarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;r.TopLevelMarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;r.RecurseLevel &lt;/span&gt;&lt;span style="color: grey;"&gt;+ &lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarqueRecurse &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;r&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;JOIN &lt;/span&gt;&lt;span style="color: black;"&gt;AutoMarque&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;m&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;ON &lt;/span&gt;&lt;span style="color: black;"&gt;m.ParentMarqueName &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;r.MarqueName&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;m.ParentMarqueName &lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;lt;&amp;gt; &lt;/span&gt;&lt;span style="color: black;"&gt;m.MarqueName&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SELECT All Rows From Base Table&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: black;"&gt;MarqueName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ParentMarqueName&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: green;"&gt;----------------------------- ----------------&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: black;"&gt;Automobili Lamborghini S.p.A. AUDI AG&lt;br /&gt;NSU Motorenwerke AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AUDI AG&lt;br /&gt;Jaguar&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Tata Motors&lt;br /&gt;Land Rover&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Tata Motors&lt;br /&gt;Tata Motors&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tata Motors&lt;br /&gt;AUDI AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Volkswagen AG&lt;br /&gt;Bentley Motors Limited&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Volkswagen AG&lt;br /&gt;Bugatti Automobiles S.A.S.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Volkswagen AG&lt;br /&gt;SEAT&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;S.A.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Volkswagen AG&lt;br /&gt;Skoda automobilova a.s.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Volkswagen AG&lt;br /&gt;Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Volkswagen AG&lt;br /&gt;Volkswagen Passenger Cars&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Volkswagen AG&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SELECT All Rows From Recursive View&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: black;"&gt;MarqueName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ParentMarqueName TopLevelMarqueName RecurseLevel&lt;/span&gt;&lt;span style="color: green;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: green;"&gt;----------------------------- ---------------- ------------------ --------------&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: black;"&gt;Jaguar&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Tata Motors&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Tata Motors&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;br /&gt;Land Rover&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Tata Motors&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Tata Motors&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;br /&gt;Tata Motors&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tata Motors&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Tata Motors&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;br /&gt;Automobili Lamborghini S.p.A. AUDI AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;br /&gt;NSU Motorenwerke AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AUDI AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;br /&gt;AUDI AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;br /&gt;Bentley Motors Limited&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;br /&gt;Bugatti Automobiles S.A.S.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;br /&gt;SEAT&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;S.A.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;br /&gt;Skoda automobilova a.s.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;br /&gt;Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;br /&gt;Volkswagen Passenger Cars&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Volkswagen AG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/span&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-1583181979854877968?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/1583181979854877968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2011/01/teradata-recursive-view.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/1583181979854877968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/1583181979854877968'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2011/01/teradata-recursive-view.html' title='Teradata Recursive View'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-787469705517811990</id><published>2010-12-29T15:45:00.000-08:00</published><updated>2011-01-28T16:19:44.048-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='function'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>SUM with NULL Values in SQL Server</title><content type='html'>Follow on the &lt;a href="http://persistencevision.blogspot.com/2010/12/sum-with-null-values-in-teradata.html"&gt;SUM with NULL Values in Teradata&lt;/a&gt; post, I wanted to check the same thing in SQL Server.&lt;br /&gt;&lt;br /&gt;When you SUM a value that is nullable, does it work correctly if there are null values? Here's the test and the result. The answer is yes, it works fine here too; it just requires some change in syntax.&lt;br /&gt;&lt;br /&gt;Note that if you set up your flag column as a bit column, you have to add a CONVERT in the SUM since you can't add bit columns.&lt;br /&gt;&lt;br /&gt;It is also interesting to note that SQL Server throws the following warning after the results of the first query: "Warning: Null value is eliminated by an aggregate or other SET operation."&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;DECLARE &lt;/span&gt;&lt;span style="color: #434343;"&gt;@rgWork1 &lt;/span&gt;&lt;span style="color: blue;"&gt;TABLE &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;client&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;INT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;flag&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bit&lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: #434343;"&gt;@rgWork1 &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;client&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;flag&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: #434343;"&gt;@rgWork1 &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;client&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;flag&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;2&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: #434343;"&gt;@rgWork1 &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;client&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;flag&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;3&lt;/span&gt;&lt;span style="color: grey;"&gt;, NULL);&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: magenta;"&gt;SUM&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;CONVERT&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;INT&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;flag&lt;/span&gt;&lt;span style="color: grey;"&gt;)) &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;FlagSum&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: #434343;"&gt;@rgWork1&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: magenta;"&gt;SUM&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;CONVERT&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;INT&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;flag&lt;/span&gt;&lt;span style="color: grey;"&gt;)) &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;FlagSum&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: #434343;"&gt;@rgWork1&lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;flag &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: magenta;"&gt;SUM&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;CONVERT&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;INT&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;flag&lt;/span&gt;&lt;span style="color: grey;"&gt;)) &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;FlagSum&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: #434343;"&gt;@rgWork1&lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;flag &lt;/span&gt;&lt;span style="color: blue;"&gt;IS &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: magenta;"&gt;SUM&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;CONVERT&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;INT&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;flag&lt;/span&gt;&lt;span style="color: grey;"&gt;)) &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;FlagSum&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: #434343;"&gt;@rgWork1&lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;flag &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: grey;"&gt;OR &lt;/span&gt;&lt;span style="color: black;"&gt;flag &lt;/span&gt;&lt;span style="color: blue;"&gt;IS &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL);&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;All of these queries return the correct answer of 1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-787469705517811990?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/787469705517811990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2010/12/sum-with-null-values-in-sql-server.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/787469705517811990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/787469705517811990'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2010/12/sum-with-null-values-in-sql-server.html' title='SUM with NULL Values in SQL Server'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-6291706083081604435</id><published>2010-12-29T15:31:00.000-08:00</published><updated>2011-01-28T16:20:04.092-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='function'/><category scheme='http://www.blogger.com/atom/ns#' term='Teradata'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>SUM with NULL Values in Teradata</title><content type='html'>In Teradata, when you SUM a value that is nullable, does it work correctly if there are null values? Here's the test and the result. The answer is yes, it works fine.&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;CREATE &lt;/span&gt;&lt;span style="color: black;"&gt;VOLATILE &lt;/span&gt;&lt;span style="color: blue;"&gt;TABLE &lt;/span&gt;&lt;span style="color: black;"&gt;rgWork1 &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;client&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;INT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;flag&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byteint&lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;span style="color: blue;"&gt; UNIQUE PRIMARY INDEX &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;client&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;ON COMMIT &lt;/span&gt;&lt;span style="color: black;"&gt;PRESERVE ROWS&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;rgWork1 &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;client&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;flag&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;rgWork1 &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;client&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;flag&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;2&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;rgWork1 &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;client&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;flag&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;3&lt;/span&gt;&lt;span style="color: grey;"&gt;, NULL);&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: magenta;"&gt;SUM&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;flag&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;rgWork1&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: magenta;"&gt;SUM&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;flag&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;rgWork1&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;flag &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: magenta;"&gt;SUM&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;flag&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;rgWork1&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;flag &lt;/span&gt;&lt;span style="color: blue;"&gt;IS &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: magenta;"&gt;SUM&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;flag&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;rgWork1&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;flag &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: grey;"&gt;OR &lt;/span&gt;&lt;span style="color: black;"&gt;flag &lt;/span&gt;&lt;span style="color: blue;"&gt;IS &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL);&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;All of these queries return the correct answer of 1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-6291706083081604435?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/6291706083081604435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2010/12/sum-with-null-values-in-teradata.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/6291706083081604435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/6291706083081604435'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2010/12/sum-with-null-values-in-teradata.html' title='SUM with NULL Values in Teradata'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-4782797386611005411</id><published>2010-12-29T15:16:00.000-08:00</published><updated>2011-01-28T16:20:29.872-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='volatile table'/><category scheme='http://www.blogger.com/atom/ns#' term='temp table'/><category scheme='http://www.blogger.com/atom/ns#' term='Teradata'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Volatile (Temp) Tables in Teradata</title><content type='html'>I keep having to look this up, so I'm going to record it here. This is the syntax for creating temp tables (volatile tables) in Teradata.&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;CREATE &lt;/span&gt;&lt;span style="color: black;"&gt;VOLATILE &lt;/span&gt;&lt;span style="color: blue;"&gt;TABLE &lt;/span&gt;&lt;span style="color: black;"&gt;rgWork1 &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;client&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;INT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;flag&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byteint&lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;br /&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;UNIQUE PRIMARY INDEX &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;client&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;ON COMMIT &lt;/span&gt;&lt;span style="color: black;"&gt;PRESERVE ROWS&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;DROP TABLE &lt;/span&gt;&lt;span style="color: black;"&gt;rgWork1&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The table is linked to the session, so you don't have to drop it if you're going to log out.&lt;br /&gt;&lt;br /&gt;Using &lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;UNIQUE PRIMARY INDEX &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;...&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;/code&gt; or &lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;PRIMARY INDEX &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;...&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;/code&gt; is optional. It works fine without it, but leaving it off can affect performance.&lt;br /&gt;&lt;br /&gt;However, if you leave off &lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;ON COMMIT &lt;/span&gt;&lt;span style="color: black;"&gt;PRESERVE ROWS&lt;/span&gt;&lt;/code&gt;, you can INSERT rows, but they won't be there when you SELECT from the table.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-4782797386611005411?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/4782797386611005411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2010/12/volatile-temp-tables-in-teradata.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/4782797386611005411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/4782797386611005411'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2010/12/volatile-temp-tables-in-teradata.html' title='Volatile (Temp) Tables in Teradata'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-7812744914200442785</id><published>2010-12-14T14:43:00.000-08:00</published><updated>2011-01-28T16:21:24.592-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Teradata'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='system tables'/><title type='text'>Teradata Date Dimension</title><content type='html'>In our project, we needed a date dimension. I did a quick check on-line, but most of the examples were not specific to Teradata.&lt;br /&gt;&lt;br /&gt;Teradata has views and an underlying table that made this relatively easy:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;sys_calendar.CALENDAR:&lt;/b&gt; This is just a simple view on top of the CALENDARTMP view.&lt;/li&gt;&lt;li&gt;&lt;b&gt;sys_calendar.CALENDARTMP:&lt;/b&gt; This is a set of calculations on top of the CALBASICS view.&lt;/li&gt;&lt;li&gt;&lt;b&gt;sys_calendar.CALBASICS:&lt;/b&gt; This is a set of calculations on top of the CALDATES table.&lt;/li&gt;&lt;li&gt;&lt;b&gt;sys_calendar.CALDATES:&lt;/b&gt; This is a single-column table (cdate) with 73,414 rows and dates from 01/01/1900 to 12/31/2100.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Here is the actual code I used. I'm sure there are more elegant ways to pull this data, but this was straightforward and maintainable.&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;(Code updated 2010-12-16. All columns are now NOT NULL, and calculation for week_end_dt has been updated to deal with last six days of internal calendar.) &lt;/div&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;DROP TABLE &lt;/span&gt;&lt;span style="color: black;"&gt;leap&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;CREATE &lt;/span&gt;&lt;span style="color: black;"&gt;VOLATILE &lt;/span&gt;&lt;span style="color: blue;"&gt;TABLE &lt;/span&gt;&lt;span style="color: black;"&gt;leap &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;leap_year_nbr&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;INT&lt;br /&gt;&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;ON COMMIT &lt;/span&gt;&lt;span style="color: black;"&gt;PRESERVE ROWS&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;leap &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;leap_year_nbr&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: black;"&gt;year_of_calendar&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;sys_calendar.CALENDAR&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;29&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;--SELECT * FROM leap;&lt;br /&gt;--SELECT COUNT(*) AS LeapCt FROM leap;&lt;br /&gt;&lt;br /&gt;-- sys_calendar.calendar&lt;br /&gt;-- 73,414 entries (01/01/1900 to 12/31/2100)&lt;br /&gt;-- ================================================&lt;br /&gt;-- date_dim&lt;br /&gt;-- ================================================&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;DROP TABLE &lt;/span&gt;&lt;span style="color: black;"&gt;date_dim&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;CREATE TABLE &lt;/span&gt;&lt;span style="color: black;"&gt;date_dim &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;calendar_dt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;year_nbr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;smallint&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week_nbr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byteint&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month_nbr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byteint&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;day_of_year_nbr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; smallint&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;week_of_month_nbr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byteint&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;week_of_year_nbr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byteint&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;month_of_quarter&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byteint&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byteint&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;month_of_calendar&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; smallint&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;quarter_of_year&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byteint&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week_nm&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;9&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week_abbr2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;2&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week_abbr3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;3&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;month_nm&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;15&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;month_abbr2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;2&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;month_abbr3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;3&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;week_end_dt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;end_of_month_flag&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;first_of_quarter_flag&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;end_of_quarter_flag&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;end_of_year_flag&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;weekday_flag&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;weekend_flag&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;leap_year_flag&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOT NULL&lt;br /&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;UNIQUE PRIMARY INDEX &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;calendar_dt&lt;/span&gt;&lt;span style="color: grey;"&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: black;"&gt;date_dim &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;calendar_dt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;year_nbr&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week_nbr&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month_nbr&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;day_of_year_nbr&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;week_of_month_nbr&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;week_of_year_nbr&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;month_of_quarter&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;month_of_calendar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;quarter_of_year&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week_nm&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week_abbr2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week_abbr3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;month_nm&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;month_abbr2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;month_abbr3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;week_end_dt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;end_of_month_flag&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;first_of_quarter_flag&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;end_of_quarter_flag&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;end_of_year_flag&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;weekday_flag&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;weekend_flag&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;leap_year_flag&lt;br /&gt;&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;--TOP 1000&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;calendar_date&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;year_of_calendar&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;day_of_year&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;week_of_month&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;week_of_year&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;month_of_quarter&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;month_of_calendar&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;quarter_of_year&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: magenta;"&gt;CASE &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;-- day_of_week_nm&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Sunday'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;2 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Monday'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;3 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Tuesday'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;4 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Wednesday'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;5 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Thursday'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;6 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Friday'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;7 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Saturday'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: magenta;"&gt;CASE &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;-- day_of_week_abbr2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Su'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;2 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Mo'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;3 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Tu'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;4 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'We'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;5 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Th'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;6 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Fr'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;7 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Sa'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: magenta;"&gt;CASE &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;-- day_of_week_abbr3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Sun'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;2 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Mon'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;3 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Tue'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;4 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Wed'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;5 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Thu'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;66 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Fri'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;7 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Sat'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: magenta;"&gt;CASE &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;-- month_nm&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'January'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;2 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'February'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;3 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'March'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;4 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'April'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;5 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'May'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;6 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'June'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;7 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'July'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;8 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'August'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;9 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'September'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;10 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'October'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;11 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'November'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;12 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'December'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: magenta;"&gt;CASE &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;-- month_abbr2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Ja'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;2 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Fe'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;3 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Mr'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;4 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Ap'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;5 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'My'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;6 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Jn'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;7 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Jl'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;8 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Au'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;9 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Se'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;10 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Oc'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;11 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'No'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;12 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'De'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: magenta;"&gt;CASE &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;-- month_abbr3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Jan'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;2 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Feb'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;3 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Mar'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;4 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Apr'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;5 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'May'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;6 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Jun'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;7 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Jul'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;8 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Aug'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;9 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Sep'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;10 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Oct'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;11 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Nov'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;12 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Dec'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: magenta;"&gt;CASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;-- week_end_dt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;calendar_date &lt;/span&gt;&lt;span style="color: grey;"&gt;BETWEEN &lt;/span&gt;&lt;span style="color: black;"&gt;DATE &lt;/span&gt;&lt;span style="color: red;"&gt;'2100-12-26' &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;DATE &lt;/span&gt;&lt;span style="color: red;"&gt;'2100-12-31' &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: black;"&gt;DATE &lt;/span&gt;&lt;span style="color: red;"&gt;'2101-01-01'&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;-- For these dates, the calculations run off the end of the internal calendar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: black;"&gt;calendar_date &lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;sys_calendar.CALENDAR &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;t &lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;t.day_of_calendar &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;c.day_of_calendar &lt;/span&gt;&lt;span style="color: grey;"&gt;+ &lt;/span&gt;&lt;span style="color: black;"&gt;6&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;2 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: black;"&gt;calendar_date &lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;sys_calendar.CALENDAR &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;t &lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;t.day_of_calendar &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;c.day_of_calendar &lt;/span&gt;&lt;span style="color: grey;"&gt;+ &lt;/span&gt;&lt;span style="color: black;"&gt;5&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;3 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: black;"&gt;calendar_date &lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;sys_calendar.CALENDAR &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;t &lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;t.day_of_calendar &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;c.day_of_calendar &lt;/span&gt;&lt;span style="color: grey;"&gt;+ &lt;/span&gt;&lt;span style="color: black;"&gt;4&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;4 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: black;"&gt;calendar_date &lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;sys_calendar.CALENDAR &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;t &lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;t.day_of_calendar &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;c.day_of_calendar &lt;/span&gt;&lt;span style="color: grey;"&gt;+ &lt;/span&gt;&lt;span style="color: black;"&gt;3&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;5 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: black;"&gt;calendar_date &lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;sys_calendar.CALENDAR &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;t &lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;t.day_of_calendar &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;c.day_of_calendar &lt;/span&gt;&lt;span style="color: grey;"&gt;+ &lt;/span&gt;&lt;span style="color: black;"&gt;2&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;6 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: black;"&gt;calendar_date &lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;sys_calendar.CALENDAR &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;t &lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;t.day_of_calendar &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;c.day_of_calendar &lt;/span&gt;&lt;span style="color: grey;"&gt;+ &lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;7 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: black;"&gt;calendar_date&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;ELSE &lt;/span&gt;&lt;span style="color: black;"&gt;DATE &lt;/span&gt;&lt;span style="color: red;"&gt;'9999-12-31'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: magenta;"&gt;CASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;-- end_of_month_flag&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;31 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;2 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND (&lt;/span&gt;&lt;span style="color: black;"&gt;l.leap_year_nbr &lt;/span&gt;&lt;span style="color: blue;"&gt;IS &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;29&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;2 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND (&lt;/span&gt;&lt;span style="color: black;"&gt;l.leap_year_nbr &lt;/span&gt;&lt;span style="color: blue;"&gt;IS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;NULL AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;28&lt;/span&gt;&lt;span style="color: grey;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;3 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;31 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;4 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;30 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;5 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;31 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;6 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;30 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;7 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;31 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;8 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;31 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;9 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;30 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;10 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;31 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;11 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;30 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;12 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;31 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;ELSE &lt;/span&gt;&lt;span style="color: red;"&gt;'N'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: magenta;"&gt;CASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;-- first_of_quarter_flag&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;4 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;7 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;10 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;ELSE &lt;/span&gt;&lt;span style="color: red;"&gt;'N' &lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: magenta;"&gt;CASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;-- end_of_quarter_flag&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;3 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;31 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;6 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;30 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;9 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;30 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;12 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;31 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;ELSE &lt;/span&gt;&lt;span style="color: red;"&gt;'N' &lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: magenta;"&gt;CASE &lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;month_of_year &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;12 &lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_month &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;31 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y' &lt;/span&gt;&lt;span style="color: blue;"&gt;ELSE &lt;/span&gt;&lt;span style="color: red;"&gt;'N' &lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;-- end_of_year_flag&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: magenta;"&gt;CASE &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week &lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'N' &lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;7 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'N' &lt;/span&gt;&lt;span style="color: blue;"&gt;ELSE &lt;/span&gt;&lt;span style="color: red;"&gt;'Y' &lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;-- weekday_flag&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: magenta;"&gt;CASE &lt;/span&gt;&lt;span style="color: black;"&gt;day_of_week &lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y' &lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;7 &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y' &lt;/span&gt;&lt;span style="color: blue;"&gt;ELSE &lt;/span&gt;&lt;span style="color: red;"&gt;'N' &lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;-- weekend_flag&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: magenta;"&gt;CASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;-- leap_year_flag&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: black;"&gt;l.leap_year_nbr &lt;/span&gt;&lt;span style="color: blue;"&gt;IS &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'Y' &lt;/span&gt;&lt;span style="color: blue;"&gt;ELSE &lt;/span&gt;&lt;span style="color: red;"&gt;'N'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;br /&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;sys_calendar.CALENDAR&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;c&lt;br /&gt;&lt;/span&gt;&lt;span style="color: magenta;"&gt;LEFT &lt;/span&gt;&lt;span style="color: grey;"&gt;OUTER &lt;/span&gt;&lt;span style="color: blue;"&gt;JOIN &lt;/span&gt;&lt;span style="color: black;"&gt;leap&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;l &lt;/span&gt;&lt;span style="color: blue;"&gt;ON &lt;/span&gt;&lt;span style="color: black;"&gt;c.year_of_calendar &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;l.leap_year_nbr&lt;br /&gt;&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-7812744914200442785?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/7812744914200442785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2010/12/teradata-date-dimension.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7812744914200442785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7812744914200442785'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2010/12/teradata-date-dimension.html' title='Teradata Date Dimension'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-84785765273936255</id><published>2010-12-07T15:15:00.000-08:00</published><updated>2011-01-28T16:21:52.442-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='function'/><category scheme='http://www.blogger.com/atom/ns#' term='time'/><category scheme='http://www.blogger.com/atom/ns#' term='Teradata'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Using Teradata's CURRENT_TIMESTAMP(n)</title><content type='html'>CURRENT_TIMESTAMP can take an argument stating the precision. This allows the result to easily be passed to a column with matching precision.&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;CREATE &lt;/span&gt;&lt;span style="color: black;"&gt;MULTISET &lt;/span&gt;&lt;span style="color: blue;"&gt;TABLE &lt;/span&gt;&lt;span style="color: black;"&gt;test1&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;NO FALLBACK&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;NO BEFORE JOURNAL&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;NO AFTER JOURNAL &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;INT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;start_dtm0&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;TIMESTAMP&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;NOT NULL &lt;/span&gt;&lt;span style="color: blue;"&gt;DEFAULT &lt;/span&gt;&lt;span style="color: magenta;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;span style="color: grey;"&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;start_dtm1&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;TIMESTAMP&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;NOT NULL &lt;/span&gt;&lt;span style="color: blue;"&gt;DEFAULT &lt;/span&gt;&lt;span style="color: magenta;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: grey;"&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;start_dtm2&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;TIMESTAMP&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;2&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;NOT NULL &lt;/span&gt;&lt;span style="color: blue;"&gt;DEFAULT &lt;/span&gt;&lt;span style="color: magenta;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;2&lt;/span&gt;&lt;span style="color: grey;"&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;start_dtm3&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;TIMESTAMP&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;3&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;NOT NULL &lt;/span&gt;&lt;span style="color: blue;"&gt;DEFAULT &lt;/span&gt;&lt;span style="color: magenta;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;3&lt;/span&gt;&lt;span style="color: grey;"&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;start_dtm4&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;TIMESTAMP&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;4&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;NOT NULL &lt;/span&gt;&lt;span style="color: blue;"&gt;DEFAULT &lt;/span&gt;&lt;span style="color: magenta;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;4&lt;/span&gt;&lt;span style="color: grey;"&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;start_dtm5&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;TIMESTAMP&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;5&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;NOT NULL &lt;/span&gt;&lt;span style="color: blue;"&gt;DEFAULT &lt;/span&gt;&lt;span style="color: magenta;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;5&lt;/span&gt;&lt;span style="color: grey;"&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;start_dtm6&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;TIMESTAMP&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;6&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;NOT NULL &lt;/span&gt;&lt;span style="color: blue;"&gt;DEFAULT &lt;/span&gt;&lt;span style="color: magenta;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;6&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;br /&gt;);&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Results:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;   &lt;th&gt;Column&lt;/th&gt;   &lt;th&gt;Value&lt;/th&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;start_dtm0&lt;/td&gt;   &lt;td&gt;12/07/2010 3:10:30&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;start_dtm1&lt;/td&gt;   &lt;td&gt;12/07/2010 3:10:30.8&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;start_dtm2&lt;/td&gt;   &lt;td&gt;12/07/2010 3:10:30.82&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;start_dtm3&lt;/td&gt;   &lt;td&gt;12/07/2010 3:10:30.820&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;start_dtm4&lt;/td&gt;   &lt;td&gt;12/07/2010 3:10:30.8200&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;start_dtm5&lt;/td&gt;   &lt;td&gt;12/07/2010 3:10:30.82000&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;start_dtm6&lt;/td&gt;   &lt;td&gt;12/07/2010 3:10:30.820000&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-84785765273936255?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/84785765273936255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2010/12/using-currenttimestampn.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/84785765273936255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/84785765273936255'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2010/12/using-currenttimestampn.html' title='Using Teradata&apos;s CURRENT_TIMESTAMP(n)'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-7260518699473768845</id><published>2010-12-07T09:40:00.000-08:00</published><updated>2011-01-28T16:24:34.523-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data types'/><category scheme='http://www.blogger.com/atom/ns#' term='Teradata'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Does Teradata Support BIT Columns? Yes and No.</title><content type='html'>In Teradata 13.0, I can create a column with a type of bit.&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;CREATE &lt;/span&gt;&lt;span style="color: black;"&gt;MULTISET &lt;/span&gt;&lt;span style="color: blue;"&gt;TABLE &lt;/span&gt;&lt;span style="color: black;"&gt;test1&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;NO FALLBACK&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;NO BEFORE JOURNAL&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;NO AFTER JOURNAL&lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;INT&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;bitColumn&amp;nbsp;&amp;nbsp;bit&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;But did it &lt;i&gt;really&lt;/i&gt; create a bit column? No.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Query &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: black;"&gt;RequestText&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;DBC.Tables&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;DatabaseName &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;'rgarrison'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;TableName &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;'test1'&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Result&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;CREATE &lt;/span&gt;&lt;span style="color: black;"&gt;MULTISET &lt;/span&gt;&lt;span style="color: blue;"&gt;TABLE &lt;/span&gt;&lt;span style="color: black;"&gt;test1&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: black;"&gt;NO FALLBACK&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: black;"&gt;NO BEFORE JOURNAL&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: black;"&gt;NO AFTER JOURNAL&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; id &lt;/span&gt;&lt;span style="color: blue;"&gt;INT &lt;/span&gt;&lt;span style="color: grey;"&gt;NOT NULL,&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: black;"&gt;bitColumn &lt;span style="background-color: yellow;"&gt;BYTEINT&lt;/span&gt; FORMAT &lt;/span&gt;&lt;span style="color: red;"&gt;'9'&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: grey;"&gt;);&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Query&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: black;"&gt;ColumnType&lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;ColumnLength&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;DBC.Columns&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;DatabaseName &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;'rgarrison'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;TableName&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;'test1'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;ColumnName&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;'bitColumn'&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Result&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;   &lt;td&gt;&lt;b&gt;ColumnType&lt;/b&gt;&lt;/td&gt;   &lt;td&gt;&lt;b&gt;ColumnLength&lt;/b&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;I1&lt;/td&gt;   &lt;td&gt;1&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;So, Teradata will allow you to specify bit as a datatype, but it will silently translate that request to byteint.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-7260518699473768845?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/7260518699473768845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2010/12/does-teradata-support-bit-columns-yes.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7260518699473768845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7260518699473768845'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2010/12/does-teradata-support-bit-columns-yes.html' title='Does Teradata Support BIT Columns? Yes and No.'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-1804422858657370700</id><published>2010-11-16T13:27:00.000-08:00</published><updated>2011-01-07T11:43:58.097-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='writing'/><title type='text'>First Teradata-Related Article is Live</title><content type='html'>My first article has gone live here: &lt;a href="http://developer.teradata.com/database/articles/exploring-teradata-13s-period-data-type"&gt;Exploring Teradata 13's PERIOD Data Type&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I am very excited to be writing in this new role. A follow-up article should be up within two weeks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-1804422858657370700?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/1804422858657370700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2010/11/first-teradata-related-article-is-live.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/1804422858657370700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/1804422858657370700'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2010/11/first-teradata-related-article-is-live.html' title='First Teradata-Related Article is Live'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-3962960093662150230</id><published>2010-11-02T10:21:00.000-07:00</published><updated>2011-01-07T11:43:43.804-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='writing'/><title type='text'>First Teradata-Related Article</title><content type='html'>I just sent the draft of my first Teradata-related article to the publisher.&lt;br /&gt;&lt;br /&gt;It will be published on &lt;a href="http://developer.teradata.com/"&gt;Teradata Developer Exchange&lt;/a&gt;. The title of the article is "Exploring Teradata 13's PERIOD Data Type". It is the first of at least two parts. The second part, on PERIOD functions in 13, should publish fairly closely behind the first.&lt;br /&gt;&lt;br /&gt;I am very excited to be writing in my new role. There is &lt;i&gt;so&lt;/i&gt; much to learn about data warehousing and business intelligence. I am just scratching at the surface.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-3962960093662150230?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/3962960093662150230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2010/11/first-teradata-related-article.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/3962960093662150230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/3962960093662150230'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2010/11/first-teradata-related-article.html' title='First Teradata-Related Article'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-4218007630232298968</id><published>2010-09-16T13:52:00.000-07:00</published><updated>2011-01-07T11:44:21.343-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='career'/><title type='text'>Major Changes</title><content type='html'>Last week, I changed roles and teams here at WebMD. I am now working on the Business Intelligence team as a Data Architect. This is a big switch, but it is at my request. I'll be learning BI principles, Cognos, and Teradata. Lots to learn.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-4218007630232298968?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/4218007630232298968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2010/09/major-changes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/4218007630232298968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/4218007630232298968'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2010/09/major-changes.html' title='Major Changes'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-7713616409778362110</id><published>2010-06-02T08:31:00.000-07:00</published><updated>2011-01-07T11:44:33.003-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Microsoft Fixing a Bug I Reported</title><content type='html'>In February of 2009, I reported a bug in SQL Server Management Studio: &lt;a href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=418596&amp;amp;wa=wsignin1.0"&gt;SSMS 2008 Uncomment Bug&lt;/a&gt; using &lt;a href="http://connect.microsoft.com/"&gt;connect.microsoft.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This week, I received an e-mail stating "I am happy to say that this issue has been fixed and it will be part of a future release of Sql Server."&lt;br /&gt;&lt;br /&gt;It's nice to know that they actually fix things that are reported this way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-7713616409778362110?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/7713616409778362110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2010/06/microsoft-fixing-bug-i-reported.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7713616409778362110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7713616409778362110'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2010/06/microsoft-fixing-bug-i-reported.html' title='Microsoft Fixing a Bug I Reported'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-7141334178432170173</id><published>2010-01-29T14:57:00.000-08:00</published><updated>2011-01-07T11:45:01.893-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Index Columns</title><content type='html'>I seem to always have to rediscover how this works, so I'm going to record it.&lt;br /&gt;&lt;br /&gt;This is how to join sys.indexes, sys.index_columns, and sys.columns.&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;SELECT&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;...&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;FROM&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;sys.indexes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;i&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;JOIN&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;sys.index_columns&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ic&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;ON&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;i.[object_id]&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ic.[object_id]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;AND&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;i.index_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ic.index_id&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;JOIN&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;sys.columns&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;c&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;ON&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ic.[object_id]&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;c.[object_id]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;AND&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ic.column_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;c.column_id&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-7141334178432170173?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/7141334178432170173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2010/01/index-columns.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7141334178432170173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7141334178432170173'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2010/01/index-columns.html' title='Index Columns'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-8109692899378965338</id><published>2009-11-16T15:52:00.000-08:00</published><updated>2011-01-07T11:45:06.480-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Find All Functions and Procedures That Have No Parameters</title><content type='html'>To find all &lt;b&gt;functions&lt;/b&gt; that have no parameters, use this code:&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;SELECT&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;o.name &lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;FunctionName&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;FROM&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;sys.objects&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;o&lt;br /&gt;&lt;/span&gt;&lt;span style="color: magenta;"&gt;LEFT&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;OUTER&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;JOIN&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;sys.all_parameters&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;p&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;ON&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;o.[object_id]&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;p.[object_id]&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;o.type&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;IN&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'AF'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;'FN'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;'IF'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;'TF'&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;p.parameter_id&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;IS&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;NULL&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;ORDER&amp;nbsp;BY &lt;/span&gt;&lt;span style="color: black;"&gt;o.name&lt;/span&gt;&lt;/code&gt;&lt;/b&gt;&lt;/blockquote&gt;&lt;br /&gt;To find all &lt;b&gt;stored procedures&lt;/b&gt; that have no parameters, use this code:&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;SELECT&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;o.name &lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ProcedureName&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;FROM&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;sys.procedures&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;o&lt;br /&gt;&lt;/span&gt;&lt;span style="color: magenta;"&gt;LEFT&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;OUTER&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;JOIN&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;sys.all_parameters&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;p&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;ON&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;o.[object_id]&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;p.[object_id]&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;1&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;AND&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;p.parameter_id&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;IS&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;NULL&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;ORDER&amp;nbsp;BY &lt;/span&gt;&lt;span style="color: black;"&gt;o.name&lt;/span&gt;&lt;/code&gt;&lt;/b&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-8109692899378965338?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/8109692899378965338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/11/find-all-functions-and-procedures-that.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8109692899378965338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8109692899378965338'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/11/find-all-functions-and-procedures-that.html' title='Find All Functions and Procedures That Have No Parameters'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-5585185261568207503</id><published>2009-11-13T14:29:00.000-08:00</published><updated>2009-11-13T14:29:48.889-08:00</updated><title type='text'>Download PASS Summit Session Presentations</title><content type='html'>I couldn't figure out how to get access to the PASS Summit session presentations. Here's the scoop. Thanks to Elena Sebastiano at PASS for the instructions.&lt;br /&gt;&lt;br /&gt;To download session presentations:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Log onto the PASS Summit Itinerary Planner using the email address you used when registering for the conference&lt;/li&gt;&lt;li&gt;Click on Presentation Decks from the top menu&lt;/li&gt;&lt;li&gt;From there you can search by track, session code or speaker to choose a session&lt;/li&gt;&lt;li&gt;Once you have located your session(s) of interest, click on the session title&lt;/li&gt;&lt;li&gt;From the session info page scroll to the bottom and click on the View button&lt;/li&gt;&lt;li&gt;Then click on the link provided to gain access to the handout(s)&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-5585185261568207503?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/5585185261568207503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/11/download-pass-summit-session.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/5585185261568207503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/5585185261568207503'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/11/download-pass-summit-session.html' title='Download PASS Summit Session Presentations'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-5622606771116676840</id><published>2009-10-27T10:59:00.001-07:00</published><updated>2011-01-07T11:45:10.880-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Where are my SSMS templates?</title><content type='html'>I'll be moving to Windows 7 at home shortly, and I understand that the templates folder has changed. Here's what my coworker Sopheap found:&lt;br /&gt;&lt;blockquote&gt;C:\Users\&lt;user&gt;\AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell\Templates\Sql&lt;br /&gt;&lt;/user&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-5622606771116676840?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/5622606771116676840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/10/where-are-my-ssms-templates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/5622606771116676840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/5622606771116676840'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/10/where-are-my-ssms-templates.html' title='Where are my SSMS templates?'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-5689509301462251041</id><published>2009-10-23T10:23:00.000-07:00</published><updated>2011-01-28T16:38:29.787-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='system tables'/><title type='text'>Function and Procedure Parameters</title><content type='html'>My task was to find all table-valued functions that had no parameters. I used the DMV sys.parameters.&lt;br /&gt;&lt;blockquote&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;SELECT&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;o.name&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;FunctionName&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;FROM&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;sys.objects&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;o&lt;br /&gt;&lt;/span&gt;&lt;span style="color: magenta;"&gt;LEFT&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;OUTER&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;JOIN&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;sys.parameters&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;p&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ON&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;o.[object_id]&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;p.[object_id]&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;o.[type]&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;'IF'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;AND&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;p.[object_id]&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;IS&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;NULL&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;ORDER&amp;nbsp;BY&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;o.name&lt;/span&gt;&lt;/code&gt;&lt;/blockquote&gt;This could be easily switched to stored procedures.&lt;br /&gt;&lt;blockquote&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;SELECT&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;s.name&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ProcedureName&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;FROM&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;sys.procedures&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;s&lt;br /&gt;&lt;/span&gt;&lt;span style="color: magenta;"&gt;LEFT&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;OUTER&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;JOIN&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;sys.parameters&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;p&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ON&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;s.[object_id]&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;p.[object_id]&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;p.[object_id]&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;IS&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;NULL&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;ORDER&amp;nbsp;BY&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;s.name&lt;/span&gt;&lt;/code&gt;&lt;/blockquote&gt;To find all functions that have a particular parameter, you could do this:&lt;br /&gt;&lt;blockquote&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;SELECT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;o.name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;FunctionName&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;p.parameter_id&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ParameterOrder&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;FROM&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;sys.objects&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;o&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;JOIN&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;sys.parameters&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;p&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;ON&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;o.[object_id]&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;p.[object_id]&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;o.[type]&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;'IF'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;AND&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;p.name&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;'@PersonID'&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;ORDER&amp;nbsp;BY&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;o.name&lt;/span&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-5689509301462251041?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/5689509301462251041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/10/function-and-procedure-parameters.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/5689509301462251041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/5689509301462251041'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/10/function-and-procedure-parameters.html' title='Function and Procedure Parameters'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-5140050464483138244</id><published>2009-09-17T10:21:00.000-07:00</published><updated>2009-09-17T11:38:16.010-07:00</updated><title type='text'>Stopping a Script with Embedded GO Statements</title><content type='html'>&lt;div style="font-family: inherit;"&gt;I’m sure you’ve run into this issue before: you have a script that needs GO statements, but you want to stop running if there’s an error.&lt;/div&gt;&lt;blockquote style="font-family: inherit;"&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="color: blue;"&gt;PRINT&lt;/span&gt; &lt;span style="color: red;"&gt;'Before 19'&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;GO&lt;br /&gt;RAISERROR &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'Fatal  error'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; 19&lt;span style="color: grey;"&gt;,&lt;/span&gt;  1&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;WITH&lt;/span&gt; &lt;span style="color: magenta;"&gt;LOG&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;RETURN&lt;br /&gt;GO&lt;br /&gt;PRINT&lt;/span&gt; &lt;span style="color: red;"&gt;'After &amp;nbsp;19'&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;GO&lt;br /&gt;&lt;br /&gt;PRINT&lt;/span&gt; &lt;span style="color: red;"&gt;'Before 20'&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;GO&lt;br /&gt;RAISERROR &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'Fatal  error'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; 20&lt;span style="color: grey;"&gt;,&lt;/span&gt;  1&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;WITH&lt;/span&gt; &lt;span style="color: magenta;"&gt;LOG&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;RETURN&lt;br /&gt;GO&lt;br /&gt;PRINT&lt;/span&gt; &lt;span style="color: red;"&gt;'After &amp;nbsp;20'&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;Before 19&lt;/div&gt;&lt;div style="color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Msg 50000, Level 19, State 1, Line 1&lt;/div&gt;&lt;div style="color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Fatal error&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;After 19 &lt;/span&gt;&lt;span style="background-color: lime; color: black;"&gt;-- &lt;/span&gt;&lt;i&gt;&lt;span style="background-color: lime; color: black;"&gt;It kept going after RAISERROR/RETURN&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Before 20&lt;/div&gt;&lt;div style="color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Msg 2745, Level 16, State 2, Line 1&lt;/div&gt;&lt;div style="color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Process ID 110 has raised user error 50000, severity 20. SQL Server is  terminating this process.&lt;/div&gt;&lt;div style="color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Msg 50000, Level 20, State 1, Line 1&lt;/div&gt;&lt;div style="color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Fatal error&lt;/div&gt;&lt;div style="color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Msg 0, Level 20, State 0, Line 0&lt;/div&gt;&lt;div style="color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;A severe error occurred on the current command. The results, if any,  should be discarded.&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="font-family: inherit;"&gt;Bailing out requires both a severity of 20 or higher &lt;i&gt;and&lt;/i&gt; the “WITH LOG” option &lt;i&gt;and&lt;/i&gt; running with special permissions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Notes from BOL:&lt;/b&gt;&lt;/div&gt;&lt;ul style="font-family: inherit;"&gt;&lt;li&gt;“Only a member of the sysadmin fixed server role or a user with ALTER TRACE permissions can specify WITH LOG.”&lt;/li&gt;&lt;li&gt;“Severity levels from 19 through 25 can only be specified by members of the sysadmin fixed server role or users with ALTER TRACE permissions. For severity levels from 19 through 25, the WITH LOG option is required.”&lt;/li&gt;&lt;li&gt;“Severity levels from 20 through 25 are considered fatal. If a fatal severity level is encountered, the client connection is terminated after receiving the message, and the error is logged in the error and application logs.”&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: inherit;"&gt;Source: &lt;a href="http://stackoverflow.com/questions/659188/sql-server-stop-or-break-execution-of-a-sql-script/660112#660112"&gt;SQL Server - stop or break execution of a SQL script&lt;/a&gt; at stackoverflow.com.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-5140050464483138244?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/5140050464483138244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/09/stopping-script-with-embedded-go.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/5140050464483138244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/5140050464483138244'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/09/stopping-script-with-embedded-go.html' title='Stopping a Script with Embedded GO Statements'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-7961725935800442261</id><published>2009-09-01T09:30:00.001-07:00</published><updated>2009-09-01T09:32:06.860-07:00</updated><title type='text'>Find All Public Role Permissions</title><content type='html'>A standard best-practice in SQL Server is that the public role should not have any permissions. Here is a script that will show you all permissions granted to the public role in all databases on an instance.&lt;br /&gt;&lt;pre&gt;-- Find all permissions in all databases granted to the public role&lt;br /&gt;SET NOCOUNT ON&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;IF OBJECT_ID('tempdb..#DBList') IS NOT NULL&lt;br /&gt;    DROP TABLE #DBList&lt;br /&gt;IF OBJECT_ID('tempdb..#ObjectList') IS NOT NULL&lt;br /&gt;    DROP TABLE #ObjectList&lt;br /&gt;&lt;br /&gt;CREATE TABLE #DBList (&lt;br /&gt;    EntryID         int             IDENTITY,&lt;br /&gt;    DbName          sysname&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;CREATE TABLE #ObjectList (&lt;br /&gt;    EntryID         int             IDENTITY    PRIMARY KEY,&lt;br /&gt;    DatabaseName    nvarchar(128),&lt;br /&gt;    ObjectType      nvarchar(60),&lt;br /&gt;    ObjectName      sysname,&lt;br /&gt;    Permission      nvarchar(128),&lt;br /&gt;    GrantState      nvarchar(60)&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;DECLARE @dbCt           int&lt;br /&gt;DECLARE @objCt          int&lt;br /&gt;DECLARE @dbName         nvarchar(128)&lt;br /&gt;DECLARE @sql            nvarchar(4000)&lt;br /&gt;&lt;br /&gt;INSERT INTO #DBList (&lt;br /&gt;    DbName&lt;br /&gt;)&lt;br /&gt;SELECT name&lt;br /&gt;FROM sys.databases&lt;br /&gt;ORDER BY name&lt;br /&gt;&lt;br /&gt;SET @dbCt = 0&lt;br /&gt;WHILE @dbCt &lt; (SELECT COUNT(*) FROM #DBList) BEGIN&lt;br /&gt;    SET @dbCt = @dbCt + 1&lt;br /&gt;    SELECT @dbName = DbName&lt;br /&gt;    FROM #DBList&lt;br /&gt;    WHERE EntryID = @dbCt&lt;br /&gt;&lt;br /&gt;    SET @sql =&lt;br /&gt;        N'USE ' + QUOTENAME(@dbName) + ';&lt;br /&gt;        INSERT INTO #ObjectList (&lt;br /&gt;            DatabaseName,&lt;br /&gt;            ObjectType,&lt;br /&gt;            ObjectName,&lt;br /&gt;            Permission,&lt;br /&gt;            GrantState&lt;br /&gt;        )&lt;br /&gt;        SELECT&lt;br /&gt;            DB_NAME(),&lt;br /&gt;            o.type_desc,&lt;br /&gt;            o.name,&lt;br /&gt;            dp.permission_name,&lt;br /&gt;            dp.state_desc&lt;br /&gt;        FROM sys.database_permissions   AS dp&lt;br /&gt;        JOIN sys.objects                AS o  ON dp.major_id = o.[object_id]&lt;br /&gt;        WHERE 1 = 1&lt;br /&gt;          AND dp.grantee_principal_id = (&lt;br /&gt;            SELECT principal_id&lt;br /&gt;            FROM sys.database_principals&lt;br /&gt;            WHERE name = ''public''&lt;br /&gt;          )&lt;br /&gt;          AND dp.[state] IN (''G'', ''W'')&lt;br /&gt;          AND o.is_ms_shipped = 0&lt;br /&gt;          AND o.name NOT LIKE ''MSmerge%''&lt;br /&gt;          AND o.name NOT LIKE ''sysmerge%''&lt;br /&gt;          AND o.name NOT IN (&lt;br /&gt;            ''MSsubscription_properties''&lt;br /&gt;          )&lt;br /&gt;        ORDER BY&lt;br /&gt;            o.type_desc,&lt;br /&gt;            o.name,&lt;br /&gt;            dp.permission_name'&lt;br /&gt;&lt;br /&gt;    EXEC sp_executesql&lt;br /&gt;        @stmt           = @sql,&lt;br /&gt;        @params         = N'@dbNameParam nvarchar(128)',&lt;br /&gt;        @dbNameParam    = @dbName;&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;SELECT&lt;br /&gt;    ROW_NUMBER() OVER (&lt;br /&gt;        PARTITION BY DatabaseName&lt;br /&gt;        ORDER BY EntryID&lt;br /&gt;    ) AS [DB Row],&lt;br /&gt;    DatabaseName,&lt;br /&gt;    ObjectType,&lt;br /&gt;    ObjectName,&lt;br /&gt;    Permission,&lt;br /&gt;    GrantState&lt;br /&gt;FROM #ObjectList&lt;br /&gt;ORDER BY&lt;br /&gt;    EntryID&lt;br /&gt;GO&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-7961725935800442261?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/7961725935800442261/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/09/find-all-public-role-permissions.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7961725935800442261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7961725935800442261'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/09/find-all-public-role-permissions.html' title='Find All Public Role Permissions'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-6721222861435349201</id><published>2009-08-13T10:38:00.000-07:00</published><updated>2009-08-13T10:45:17.884-07:00</updated><title type='text'>SQL Saturday in Redmond, WA</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KzXtwuR1Gmk/SoRQzQ5ZaMI/AAAAAAAACTI/vAEnenaEEDI/s1600-h/sql_saturday_logo_small.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 84px;" src="http://1.bp.blogspot.com/_KzXtwuR1Gmk/SoRQzQ5ZaMI/AAAAAAAACTI/vAEnenaEEDI/s200/sql_saturday_logo_small.JPG" alt="" id="BLOGGER_PHOTO_ID_5369505497371732162" border="0" /&gt;&lt;/a&gt;I just signed up to speak at SQL Saturday in Redmond on October 3rd. I will be presenting two sessions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://sqlsaturday.com/viewsession.aspx?sessionid=673"&gt;Exploring SQL 2008’s Transparent Data Encryption&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://sqlsaturday.com/viewsession.aspx?sessionid=674"&gt;Exploring SQL Server Column-Level Encryption&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I really enjoyed the SQL Saturday here in Portland and look forward to Redmond.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-6721222861435349201?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/6721222861435349201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/08/sql-saturday-in-redmond-wa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/6721222861435349201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/6721222861435349201'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/08/sql-saturday-in-redmond-wa.html' title='SQL Saturday in Redmond, WA'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KzXtwuR1Gmk/SoRQzQ5ZaMI/AAAAAAAACTI/vAEnenaEEDI/s72-c/sql_saturday_logo_small.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-713772822003360474</id><published>2009-08-12T09:52:00.001-07:00</published><updated>2009-08-12T15:43:48.352-07:00</updated><title type='text'>[Not SQL-related] Networking Through Existing House Wires</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KzXtwuR1Gmk/SoMkeXyNNPI/AAAAAAAACS4/xTX33Xm60tA/s1600-h/Linksys.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 200px;" src="http://4.bp.blogspot.com/_KzXtwuR1Gmk/SoMkeXyNNPI/AAAAAAAACS4/xTX33Xm60tA/s200/Linksys.jpg" alt="" id="BLOGGER_PHOTO_ID_5369175284955034866" border="0" /&gt;&lt;/a&gt;I seldom write about non-SQL topics, but this product was just too great. Last night I purchased and installed a Linksys Powerline AV Network Kit (model PLK300).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Problem:&lt;/span&gt; We moved to a new house about two months ago. Our wireless (N) router is at one end of the house on the main floor. I was trying to connect a computer in the basement on the other end of the house. That room receives &lt;span style="font-style: italic;"&gt;zero&lt;/span&gt; cell service, and I found that the wireless signal was too weak. I purchased two different receivers, but neither worked.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt; After talking with someone at Best Buy about what options we had, we purchased the "Powerline Network Kit". It routes the network signals over your home's existing power wires.&lt;br /&gt;&lt;br /&gt;Installation was dead simple. Plug one unit into the router; plug the other unit into the receiving computer. They both plug into the regular wall outlet. Bingo. It worked. The only thing I had to do was plug both into the outlet without going through a surge suppressor. That was explained in the brief installation instructions.&lt;br /&gt;&lt;br /&gt;The receiver has four ethernet ports, but I'm only using one. The speed seems quite good.&lt;br /&gt;&lt;br /&gt;Nice product. Great solution to my problem.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[Slight] Caveat:&lt;/span&gt; The little stands are a waste. The units are so light that the cables make them fall over. Pitch the stands and just lay them down flat. That works great.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-713772822003360474?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/713772822003360474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/08/not-sql-related-networking-through.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/713772822003360474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/713772822003360474'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/08/not-sql-related-networking-through.html' title='[Not SQL-related] Networking Through Existing House Wires'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KzXtwuR1Gmk/SoMkeXyNNPI/AAAAAAAACS4/xTX33Xm60tA/s72-c/Linksys.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-3087040541876653162</id><published>2009-08-03T09:47:00.000-07:00</published><updated>2009-08-11T16:08:22.848-07:00</updated><title type='text'>Table Variables and Transactions</title><content type='html'>Did you know that table variables are not affected by ROLLBACKs? After I discovered it in my testing, I searched Google and found many references to it. Apparently everyone knew about this besides me.&lt;br /&gt;&lt;br /&gt;Here is a simple example:&lt;br /&gt;&lt;pre&gt;-- Create two tables: one a temp table and one a table variable&lt;br /&gt;IF OBJECT_ID('tempdb..#t') IS NOT NULL DROP TABLE #t&lt;br /&gt;CREATE TABLE #t  (Col1 int NOT NULL)&lt;br /&gt;DECLARE @t TABLE (Col1 int NOT NULL)&lt;br /&gt;&lt;br /&gt;-- Begin a transaction&lt;br /&gt;BEGIN TRAN&lt;br /&gt;&lt;br /&gt;-- INSERT two values into each table&lt;br /&gt;INSERT INTO @t VALUES (1)&lt;br /&gt;INSERT INTO @t VALUES (2)&lt;br /&gt;INSERT INTO #t VALUES (1)&lt;br /&gt;INSERT INTO #t VALUES (2)&lt;br /&gt;&lt;br /&gt;-- ROLLBACK and check values&lt;br /&gt;ROLLBACK TRAN&lt;br /&gt;&lt;br /&gt;PRINT '#t'&lt;br /&gt;SELECT * FROM #t&lt;br /&gt;PRINT '@t'&lt;br /&gt;SELECT * FROM @t&lt;br /&gt;&lt;br /&gt;-- Just in case&lt;br /&gt;IF @@TRANCOUNT &gt; 0 ROLLBACK TRAN&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;Result:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;#t&lt;br /&gt;Col1&lt;br /&gt;----&lt;br /&gt;&lt;br /&gt;@t&lt;br /&gt;Col1&lt;br /&gt;----&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/pre&gt;The table variable (@t) is not affected by the ROLLBACK.&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.sqlservercentral.com/articles/Temporary+Tables/66720/"&gt;Comparing Table Variables with Temporary Tables&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/database/SQP_performance.aspx"&gt;Temporary Tables vs. Table Variables and Their Effect on SQL Server Performance&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.odetocode.com/articles/365.aspx"&gt;Table Variables In T-SQL&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-3087040541876653162?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/3087040541876653162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/08/table-variables-and-transactions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/3087040541876653162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/3087040541876653162'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/08/table-variables-and-transactions.html' title='Table Variables and Transactions'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-4787675917175733145</id><published>2009-07-24T10:55:00.000-07:00</published><updated>2009-07-24T11:15:03.916-07:00</updated><title type='text'>"dt_*" Stored Procedures</title><content type='html'>I was recently trying to find all objects in our production databases that had &lt;a href="http://persistencevision.blogspot.com/2009/07/what-objects-have-grants-to-public.html"&gt;GRANTs to public&lt;/a&gt;. I found a number of "dt_*" stored procedures. In researching them, I found some outdated information.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://databases.aspfaq.com/database/what-are-all-these-dt-stored-procedures-and-can-i-remove-them.html"&gt;This post&lt;/a&gt; states that "They are safe to delete, provided you are not using full-blooded source control and Visual Studio integration, and you do not have any diagrams that you want to keep around."&lt;br /&gt;&lt;br /&gt;I won't comment about the VSS issues, but the diagram issues appear to be outdated. (That post is from March of 2005.)&lt;br /&gt;&lt;br /&gt;There is similar information in &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/sqltools/thread/200ea417-f798-40e6-97a7-3ed8b174d962/"&gt;this post&lt;/a&gt;. Jens Suessmeyer, a moderator, comments, "Yes, if you need created database diagrams you should leave the dbpoperties.[sic]" My assumption is that he meant the d&lt;span style="font-weight: bold;"&gt;t&lt;/span&gt;poperties table. In &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/sqltools/thread/7dbea050-53e8-435c-a7f9-1a7c7664ff98"&gt;another post&lt;/a&gt;, Steve Twitchell states,&lt;br /&gt;&lt;blockquote&gt;You can delete the dt_* procedures if you're sure no one is using the database designer, table designer, view designer, or query designer in Visual Studio, SQL Server Management Studio, or SQL Enterprise Manager.  The database tools functionality will recreate them (after prompting for permission) if it thinks it needs them.  If you delete the dt_* tables, you'll delete all the database diagrams stored on the server.&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Time to Test&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In SQL Server 2005 (Developer Edition), I first created a new database and checked for stored procedures. No diagram-related SPs existed. I right-clicked on the "Database Diagrams" folder and got a message about the database not having support objects. I clicked Yes to create them.&lt;br /&gt;&lt;br /&gt;I then created a diagram and re-checked for new objects. I found a dbo.sysdiagrams system table and seven dbo.sp_*diagram* system stored procedures.&lt;br /&gt;&lt;br /&gt;These objects appear to be the SQL Server 2005 versions of the old dt_ objects.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This does not answer all possible questions regarding dt_ stored procedures or their SQL Server 2005 equivalents, but hopefully it is useful.&lt;br /&gt;&lt;br /&gt;As always, test in your own environment. For us, we're going to remove all the dt_* procedures.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-4787675917175733145?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/4787675917175733145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/07/dt-stored-procedures.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/4787675917175733145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/4787675917175733145'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/07/dt-stored-procedures.html' title='&quot;dt_*&quot; Stored Procedures'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-816736081786933663</id><published>2009-07-24T10:43:00.000-07:00</published><updated>2009-07-24T11:12:11.798-07:00</updated><title type='text'>What Objects Have GRANTs to public?</title><content type='html'>This query returns any objects that have GRANTs to public.&lt;br /&gt;&lt;br /&gt;In case you see them, my next post will be about the &lt;a href="http://persistencevision.blogspot.com/2009/07/dt-stored-procedures.html"&gt;"dt_*" stored procedures&lt;/a&gt;.&lt;br /&gt;&lt;pre&gt;SELECT&lt;br /&gt; o.[type_desc]       AS ObjType,&lt;br /&gt; o.name,&lt;br /&gt; dp.permission_name  AS Perm&lt;br /&gt;FROM sys.database_permissions   AS dp&lt;br /&gt;JOIN sys.objects                AS o&lt;br /&gt;ON dp.major_id = o.[object_id]&lt;br /&gt;WHERE dp.grantee_principal_id = (&lt;br /&gt; SELECT principal_id&lt;br /&gt; FROM sys.database_principals&lt;br /&gt; WHERE name = 'public'&lt;br /&gt;)&lt;br /&gt;AND dp.[state] = 'G'&lt;br /&gt;AND o.name NOT LIKE 'MSmerge%'&lt;br /&gt;AND o.name NOT LIKE 'sys%'&lt;br /&gt;ORDER BY&lt;br /&gt; o.[type_desc],&lt;br /&gt; o.name,&lt;br /&gt; dp.permission_name&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;Example Output:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;ObjType     name   Perm&lt;br /&gt;----------- ------ ----------&lt;br /&gt;USER_TABLE  t1     DELETE&lt;br /&gt;USER_TABLE  t1     INSERT&lt;br /&gt;USER_TABLE  t1     REFERENCES&lt;br /&gt;USER_TABLE  t1     SELECT&lt;br /&gt;USER_TABLE  t1     UPDATE&lt;br /&gt;VIEW        vw_t1  DELETE&lt;br /&gt;VIEW        vw_t1  INSERT&lt;br /&gt;VIEW        vw_t1  REFERENCES&lt;br /&gt;VIEW        vw_t1  SELECT&lt;br /&gt;VIEW        vw_t1  UPDATE&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-816736081786933663?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/816736081786933663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/07/what-objects-have-grants-to-public.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/816736081786933663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/816736081786933663'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/07/what-objects-have-grants-to-public.html' title='What Objects Have GRANTs to public?'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-7307514624961037989</id><published>2009-07-02T10:45:00.000-07:00</published><updated>2009-07-02T11:26:27.491-07:00</updated><title type='text'>Who Has db_owner Rights?</title><content type='html'>I wanted to see who in my database has db_owner rights. Here is the script that worked:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;SELECT m.name&lt;br /&gt;FROM sys.database_role_members  AS rm&lt;br /&gt;JOIN sys.database_principals    AS p&lt;br /&gt;&amp;nbsp;&amp;nbsp;ON rm.role_principal_id   = p.principal_id&lt;br /&gt;JOIN sys.database_principals    AS m&lt;br /&gt;&amp;nbsp;&amp;nbsp;ON rm.member_principal_id = m.principal_id&lt;br /&gt;WHERE p.name = N'db_owner'&lt;br /&gt;&amp;nbsp;&amp;nbsp;AND m.name NOT IN (N'dbo', N'SQLServiceAct')&lt;br /&gt;ORDER BY m.name&lt;hr&gt;name&lt;br /&gt;-----------&lt;br /&gt;[&lt;i&gt;result1&lt;/i&gt;]&lt;br /&gt;[&lt;i&gt;result2&lt;/i&gt;]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Based on a script pulled from an entry &lt;a href="http://www.sqlservercentral.com/Forums/Topic411310-338-1.aspx"&gt;here&lt;/a&gt; by "&lt;a href="http://scarydba.wordpress.com/"&gt;The Scary DBA&lt;/a&gt;".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-7307514624961037989?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/7307514624961037989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/07/who-has-dbowner-rights.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7307514624961037989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7307514624961037989'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/07/who-has-dbowner-rights.html' title='Who Has db_owner Rights?'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-1549480887867309747</id><published>2009-06-29T16:00:00.000-07:00</published><updated>2009-06-29T16:21:22.160-07:00</updated><title type='text'>Using JOIN, NOLOCK, and Table (Index) Hints Together</title><content type='html'>Using JOIN, NOLOCK, or table hints by themselves is straightforward, but what if you need to use them all at once? What's the order?&lt;br /&gt;&lt;br /&gt;I tried and failed with a number of different permutations. I finally figured out that the NOLOCK has an implied WITH*. That brought me to the solution.&lt;blockquote style="font-weight: bold;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;SELECT ...&lt;br /&gt;FROM xx AS x WITH (NOLOCK)&lt;br /&gt;JOIN yy AS y &lt;span style="color: rgb(0, 0, 153);"&gt;WITH (NOLOCK, INDEX (yIdx))&lt;/span&gt;&lt;br /&gt;ON x.col = y.col&lt;/span&gt;&lt;/blockquote&gt;* I always write NOLOCKs using the the WITH and "()", but I didn't write this query originally.&lt;br /&gt;&lt;br /&gt;Here is an example that you can run:&lt;blockquote&gt;&lt;span style="font-weight: bold;font-family:courier new;font-size:85%;"  &gt;IF OBJECT_ID('tempdb..#t1') IS NOT NULL&lt;br /&gt;DROP TABLE #t1&lt;br /&gt;IF OBJECT_ID('tempdb..#t2') IS NOT NULL&lt;br /&gt;DROP TABLE #t2&lt;br /&gt;GO&lt;br /&gt;CREATE TABLE #t1 (ColID int IDENTITY, Col2 int)&lt;br /&gt;CREATE TABLE #t2 (ColID int IDENTITY, Col2 int)&lt;br /&gt;GO&lt;br /&gt;CREATE INDEX t1Col2 ON #t2 (Col2)&lt;br /&gt;GO&lt;br /&gt;INSERT INTO #t1 (Col2) VALUES (1)&lt;br /&gt;INSERT INTO #t1 (Col2) VALUES (2)&lt;br /&gt;INSERT INTO #t2 (Col2) VALUES (3)&lt;br /&gt;INSERT INTO #t2 (Col2) VALUES (4)&lt;br /&gt;GO&lt;br /&gt;SELECT t1.Col2, t2.Col2&lt;br /&gt;FROM #t1 AS t1 WITH (NOLOCK)&lt;br /&gt;JOIN #t2 AS t2 WITH (NOLOCK, INDEX (t1Col2))&lt;br /&gt;ON t1.ColID = t2.ColID&lt;hr /&gt;Col2 Col2&lt;br /&gt;---- ----&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-1549480887867309747?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/1549480887867309747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/06/using-join-nolock-and-table-index-hint.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/1549480887867309747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/1549480887867309747'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/06/using-join-nolock-and-table-index-hint.html' title='Using JOIN, NOLOCK, and Table (Index) Hints Together'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-8214229843527122862</id><published>2009-06-22T09:04:00.000-07:00</published><updated>2009-06-22T09:41:47.595-07:00</updated><title type='text'>SSMS 2008 Uncomment Bug</title><content type='html'>In SQL Server Management Studio 2008, there is a bug in the way it uncomments lines of code.&lt;br /&gt;&lt;br /&gt;If you start with this code:&lt;blockquote&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;--Code line 1&lt;br /&gt;--Code line  2&lt;br /&gt;--Code line 3&lt;br /&gt;--Code line 4&lt;/span&gt;&lt;br /&gt;Code line  5&lt;/span&gt;&lt;/blockquote&gt;and want to uncomment lines 1, 2, and 3, you would select the first three lines and click [ctl]K/U.&lt;br /&gt;&lt;br /&gt;The problem is that in SSMS 2008, if the line immediately after the line or  block you are trying to uncomment is also commented, that line will be uncommented.&lt;br /&gt;&lt;br /&gt;I know that's hard to follow, but after selecting lines 1, 2, and 3 to  uncomment, you will end up with lines 1, 2, 3, &lt;span style="color: rgb(51, 51, 255);"&gt;&lt;strong&gt;and 4&lt;/strong&gt;&lt;/span&gt; uncommented.&lt;br /&gt;&lt;br /&gt;Instead of this:&lt;blockquote style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-family:Courier New;"&gt;Code line 1&lt;br /&gt;Code line 2&lt;br /&gt;Code line 3&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;--Code line 4&lt;/span&gt;&lt;br /&gt;Code line 5&lt;/span&gt;&lt;/blockquote&gt;You'll see this:&lt;blockquote&gt;&lt;span style="font-family:Courier New;"&gt;Code line 1&lt;br /&gt;Code line 2&lt;br /&gt;Code line 3&lt;br /&gt;Code  line 4 &lt;span style="color: rgb(0, 128, 0);"&gt;-- whoops&lt;/span&gt;&lt;br /&gt;Code line  5&lt;/span&gt;&lt;/blockquote&gt;I entered this issue at &lt;a href="https://connect.microsoft.com/"&gt;Microsoft Connect&lt;/a&gt; in February. They logged it as &lt;a href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=418596&amp;amp;wa=wsignin1.0"&gt;bug ID 418596&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Today, they replied and wrote that they would fix it (someday). This is great news.&lt;blockquote&gt;&lt;table bgcolor="#c0c0c0" border="0" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Hello rgarrison,&lt;br /&gt;&lt;br /&gt;Thank you for reporting this problem. We understand the usability issue wrt uncommenting and will fix this issue in a future release.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;-Karthik&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-8214229843527122862?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/8214229843527122862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/06/ssms-2008-uncomment-bug.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8214229843527122862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8214229843527122862'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/06/ssms-2008-uncomment-bug.html' title='SSMS 2008 Uncomment Bug'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-9189000590863321593</id><published>2009-06-15T12:34:00.000-07:00</published><updated>2009-06-17T12:39:23.037-07:00</updated><title type='text'>Speaking at PASS Summit 2009</title><content type='html'>I received word over the weekend (in the middle of moving) that one of my abstracts had been accepted for PASS.&lt;ul&gt;&lt;li&gt;Accepted: &lt;span style="color: rgb(0, 0, 153);"&gt;Working in Management Will Rot Your Brain - How to Stay Technical and Advance Your Career&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Alternate: &lt;span style="color: rgb(0, 0, 153);"&gt;Exploring Filtered Indexes: How They Work, When They are Used&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;I am very excited to be able to speak there. Now I just have to do all the work to get that talk ready.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img style="width: 320px; height: 138px;" src="http://summit2009.sqlpass.org/Portals/0/2009PASS_Signature01_Speaker.gif" alt="PASS Speaker" border="0" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-9189000590863321593?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/9189000590863321593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/06/speaking-at-pass-summit-2009.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/9189000590863321593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/9189000590863321593'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/06/speaking-at-pass-summit-2009.html' title='Speaking at PASS Summit 2009'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-5558696710699538508</id><published>2009-05-29T09:54:00.000-07:00</published><updated>2009-05-29T09:59:57.208-07:00</updated><title type='text'>CodeCamp and SQL Saturday</title><content type='html'>I will be speaking tomorrow at &lt;a href="http://portlandcodecamp.org/"&gt;CodeCamp&lt;/a&gt;. My session is "&lt;a href="http://portlandcodecamp.org/session.aspx?sid=9d02857f-842b-4a57-a3e2-598f75052a1f"&gt;Exploring SQL Server Column-Level Encryption&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;Next Saturday I'll be speaking at &lt;a href="http://sqlsaturday.com/eventhome.aspx?eventid=16"&gt;SQL Saturday #12&lt;/a&gt;. I'll have two sessions there: "Understanding SQL Injection (DB Devs and Admins) and "Perf Testing 2008’s Transparent Data Encryption".&lt;br /&gt;&lt;br /&gt;Should be fun. I'm still waiting to hear &lt;span style="font-style: italic;"&gt;anything&lt;/span&gt; from PASS about speaking there. So far there have been zero updates to the &lt;a href="http://www.sqlpass.org/Community/SpeakerResource.aspx"&gt;speaker's resource page&lt;/a&gt; besides saying that the "call for speakers" has closed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-5558696710699538508?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/5558696710699538508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/05/codecamp-and-sql-saturday.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/5558696710699538508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/5558696710699538508'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/05/codecamp-and-sql-saturday.html' title='CodeCamp and SQL Saturday'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-7371049184314501079</id><published>2009-04-13T19:37:00.000-07:00</published><updated>2009-07-01T09:00:08.070-07:00</updated><title type='text'>PASS 2009's "Call for Speakers"</title><content type='html'>Well, &lt;a href="http://sqlpass.org"&gt;PASS&lt;/a&gt;'s 2009 Summit "Call for Speakers" deadline got moved out two weeks, so I had a bit more time to get everything ready. I submitted four abstracts tonight. They are posted &lt;a href="http://www.softconference.com/subs/PASS/2009/status.asp"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now ... I wait.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-7371049184314501079?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/7371049184314501079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/04/pass-2009s-call-for-speakers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7371049184314501079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7371049184314501079'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/04/pass-2009s-call-for-speakers.html' title='PASS 2009&apos;s &quot;Call for Speakers&quot;'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-3954937632591749134</id><published>2009-02-03T10:28:00.000-08:00</published><updated>2009-02-03T13:09:47.563-08:00</updated><title type='text'>Using REPLICATE to Build Long Strings</title><content type='html'>REPLICATE is a very useful tool, but there are limitations to its "out of the box" functionality.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color: rgb(102, 102, 102);font-size:150%;" &gt;Problem&lt;/span&gt;&lt;br /&gt;This code shows the problem:&lt;br /&gt;&lt;pre style="font-weight: bold;"&gt;SELECT LEN(REPLICATE('X',  1000))&lt;br /&gt;SELECT LEN(REPLICATE('X',  5000))&lt;br /&gt;SELECT LEN(REPLICATE('X', &lt;span style="color: rgb(51, 51, 255);"&gt;10000&lt;/span&gt;))&lt;/pre&gt;The result is:&lt;br /&gt;&lt;pre style="font-weight: bold;"&gt;----&lt;br /&gt;1000&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;5000&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;8000&lt;/span&gt;&lt;/pre&gt;REPLICATE will not, by default, create a string longer than 8,000 characters. Here is the test that shows that the longest string is exactly 8,000 characters:&lt;br /&gt;&lt;pre style="font-weight: bold;"&gt;DECLARE @ct  int&lt;br /&gt;DECLARE @s1  varchar(max)&lt;br /&gt;&lt;br /&gt;SET @ct = 0&lt;br /&gt;WHILE @ct &amp;lt; 10000 BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;SET @ct = @ct + 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;SET @s1 = &lt;span style="color: rgb(51, 51, 255);"&gt;REPLICATE&lt;/span&gt;('X', &lt;span style="color: rgb(51, 51, 255);"&gt;@ct&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;IF len(@s1) &amp;lt;&amp;gt; @ct BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT @ct AS '@ct', len(@s1) AS 'Len @s1'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BREAK&lt;br /&gt;&amp;nbsp;&amp;nbsp;END&lt;br /&gt;END&lt;/pre&gt;&lt;hr /&gt;&lt;pre style="font-weight: bold;"&gt;@ct   Len @s1&lt;br /&gt;----  -------&lt;br /&gt;8001     8000&lt;/pre&gt;&lt;span style="font-weight: bold;color: rgb(102, 102, 102);font-size:150%;" &gt;Fix&lt;/span&gt;&lt;br /&gt;How can you make it build a longer string? Use CAST.&lt;br /&gt;&lt;pre style="font-weight: bold;"&gt;DECLARE @ct  int&lt;br /&gt;DECLARE @s1  varchar(max)&lt;br /&gt;&lt;br /&gt;SET @ct = 0&lt;br /&gt;WHILE @ct &amp;lt; 10000 BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;SET @ct = @ct + 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;SET @s1 = REPLICATE(&lt;span style="color: rgb(51, 51, 255);"&gt;CAST&lt;/span&gt;('X' &lt;span style="color: rgb(51, 51, 255);"&gt;AS varchar(max)&lt;/span&gt;), @ct)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;IF LEN(@s1) &amp;lt;&amp;gt; @ct BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT @ct AS '@ct', LEN(@s1) AS 'LEN @s1'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BREAK&lt;br /&gt;&amp;nbsp;&amp;nbsp;END&lt;br /&gt;END&lt;br /&gt;SELECT LEN(@s1) AS 'Final String Length'&lt;/pre&gt;&lt;hr /&gt;&lt;pre style="font-weight: bold;"&gt;Final String Length&lt;br /&gt;-------------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10000&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-3954937632591749134?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/3954937632591749134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/02/using-replicate-to-build-long-strings.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/3954937632591749134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/3954937632591749134'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/02/using-replicate-to-build-long-strings.html' title='Using REPLICATE to Build Long Strings'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-2098509345614244737</id><published>2009-01-09T16:42:00.000-08:00</published><updated>2009-01-09T16:43:42.187-08:00</updated><title type='text'>Skip the Splash Screen on SQL Server Management Studio Start-Up</title><content type='html'>Simply add "-nosplash" to the target line in your SSMS shortcut, and it will skip displaying the splash screen.&lt;br /&gt;&lt;br /&gt;According to a SQL Server Magazine article, "disabling the splash screen can cut the load time for SSMS in half."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-2098509345614244737?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/2098509345614244737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/01/skip-splash-screen-on-sql-server.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/2098509345614244737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/2098509345614244737'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/01/skip-splash-screen-on-sql-server.html' title='Skip the Splash Screen on SQL Server Management Studio Start-Up'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-2502593573921045718</id><published>2009-01-08T09:31:00.001-08:00</published><updated>2009-01-08T10:02:28.047-08:00</updated><title type='text'>Cut-and-Paste from Grid-Mode Output in SSMS</title><content type='html'>If you've ever cut-and-pasted output from the grid-mode output of SSMS to Excel, you've probably had to insert a row above the results and type in the column headings.&lt;br /&gt;&lt;br /&gt;Well, you can get SSMS to include those headings in the cut-and-paste output.&lt;br /&gt;&lt;br /&gt;Go to Tools, Options, Query Results, SQL Server, Results to Grid. Check "Include column headers when copying or saving the results".&lt;br /&gt;&lt;blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KzXtwuR1Gmk/SWY6poUO7XI/AAAAAAAAB3o/9R3bs1HDzp4/s1600-h/SsmsSettings.PNG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 237px;" src="http://1.bp.blogspot.com/_KzXtwuR1Gmk/SWY6poUO7XI/AAAAAAAAB3o/9R3bs1HDzp4/s400/SsmsSettings.PNG" alt="" id="BLOGGER_PHOTO_ID_5288979299264556402" border="0" /&gt;&lt;/a&gt;&lt;/blockquote&gt;Without that set, copying this from SSMS&lt;br /&gt;&lt;blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KzXtwuR1Gmk/SWY6pfE7rZI/AAAAAAAAB3g/5j2sYk2yF5k/s1600-h/SsmsOutput.PNG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 79px;" src="http://1.bp.blogspot.com/_KzXtwuR1Gmk/SWY6pfE7rZI/AAAAAAAAB3g/5j2sYk2yF5k/s400/SsmsOutput.PNG" alt="" id="BLOGGER_PHOTO_ID_5288979296784461202" border="0" /&gt;&lt;/a&gt;&lt;/blockquote&gt;and pasting it into Excel gives you this:&lt;br /&gt;&lt;blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_KzXtwuR1Gmk/SWY6p4YGFOI/AAAAAAAAB3w/YWmgjMhBGm0/s1600-h/ExcelPaste1.PNG"&gt;&lt;img style="cursor: pointer; width: 274px; height: 52px;" src="http://2.bp.blogspot.com/_KzXtwuR1Gmk/SWY6p4YGFOI/AAAAAAAAB3w/YWmgjMhBGm0/s400/ExcelPaste1.PNG" alt="" id="BLOGGER_PHOTO_ID_5288979303575721186" border="0" /&gt;&lt;/a&gt;&lt;/blockquote&gt;With it set, you get this:&lt;br /&gt;&lt;blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KzXtwuR1Gmk/SWY_jY472lI/AAAAAAAAB4I/m8sCEFHcAnU/s1600-h/ExcelPaste2b.PNG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 60px;" src="http://1.bp.blogspot.com/_KzXtwuR1Gmk/SWY_jY472lI/AAAAAAAAB4I/m8sCEFHcAnU/s400/ExcelPaste2b.PNG" alt="" id="BLOGGER_PHOTO_ID_5288984689602452050" border="0" /&gt;&lt;/a&gt;&lt;/blockquote&gt;Much better.&lt;br /&gt;&lt;br /&gt;(Thanks to Roman Rehak's tip in SQL Server Magazine.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-2502593573921045718?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/2502593573921045718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2009/01/cut-and-paste-from-grid-mode-output-in.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/2502593573921045718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/2502593573921045718'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2009/01/cut-and-paste-from-grid-mode-output-in.html' title='Cut-and-Paste from Grid-Mode Output in SSMS'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KzXtwuR1Gmk/SWY6poUO7XI/AAAAAAAAB3o/9R3bs1HDzp4/s72-c/SsmsSettings.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-8242385888989794333</id><published>2008-12-29T11:22:00.000-08:00</published><updated>2008-12-29T11:28:04.452-08:00</updated><title type='text'>First Article at SQLPASS.org</title><content type='html'>I wrote an article last week for PASS's web-site, and it's currently their "feature article":&lt;blockquote&gt;&lt;a style="font-weight: bold;" href="http://www.sqlpass.org/LearningCenter/TechnicalArticles/articleType/ArticleView/articleId/38.aspx"&gt;time and datetime2 - Exploring SQL Server 2008's New Date/Time Data Types&lt;/a&gt;&lt;/blockquote&gt;I may end up doing some volunteering for them regarding technical articles. Right now, I think everyone is on Christmas vacation.&lt;br /&gt;&lt;br /&gt;Also, the 22nd installment of my Database Journal column was published Friday:&lt;blockquote&gt;&lt;a style="font-weight: bold;" href="http://www.databasejournal.com/features/mssql/article.php/3792476/Performance-Testing--SQL-Server-2008-versus-SQL-Server-2005.htm"&gt;Performance Testing – SQL Server 2008 versus SQL Server 2005&lt;/a&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-8242385888989794333?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/8242385888989794333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2008/12/first-article-at-sqlpassorg.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8242385888989794333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8242385888989794333'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2008/12/first-article-at-sqlpassorg.html' title='First Article at SQLPASS.org'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-6123908037277241876</id><published>2008-12-04T15:06:00.000-08:00</published><updated>2008-12-04T15:46:54.292-08:00</updated><title type='text'>Ten Minutes with SQL 2008's Geography Methods</title><content type='html'>&lt;span style="color: rgb(0, 0, 153);"&gt;Problem: Figure the distance between two points.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;How far is WebMD's office from my home (as the crow flies)? How far will I travel to get to Spokane for New Year's Eve? We just booked a trip to Disney World. How far is that?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Let's use SQL 2008's new Geography methods.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Initially, just using variables, here's how it's done.&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;DECLARE @MyHome  geography&lt;br /&gt;DECLARE @WebMD   geography&lt;br /&gt;DECLARE @Spokane geography&lt;br /&gt;DECLARE @Disney  geography&lt;br /&gt;&lt;br /&gt;DECLARE @MilesPerMeter decimal(19,12)&lt;br /&gt;DECLARE @SRID smallint&lt;br /&gt;&lt;br /&gt;SET @MilesPerMeter = 0.000621371192&lt;br /&gt;SET @SRID = 4326&lt;br /&gt;&lt;br /&gt;-- Exercise the Point, STDistance and&lt;br /&gt;--   STAsText methods on variables&lt;br /&gt;-- Address-to-Lat/Lon Converter:&lt;br /&gt;--   http://stevemorse.org/jcal/latlon.php&lt;br /&gt;SET @MyHome  =&lt;br /&gt; Geography::Point(45.55823900, -122.84051000, @SRID)&lt;br /&gt;SET @WebMD   =&lt;br /&gt; Geography::Point(45.53677100, -122.70774100, @SRID)&lt;br /&gt;SET @Spokane =&lt;br /&gt; Geography::Point(47.65354400, -117.41126300, @SRID)&lt;br /&gt;SET @Disney  =&lt;br /&gt; Geography::Point(28.40982500,  -81.58848800, @SRID)&lt;/pre&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Notice how we create variables and then call methods on those variables. The STAsText method returns this:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;SELECT @myHome.STAsText() AS Point&lt;br /&gt;&lt;br /&gt;POINT&lt;br /&gt;----------------------------&lt;br /&gt;POINT (-122.84051 45.558239)&lt;/pre&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Next, let's get the distances:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;SELECT&lt;br /&gt;  'My home to Spokane' AS 'From/To',&lt;br /&gt;  (@myHome.STDistance(@Spokane)&lt;br /&gt;    * @MilesPerMeter) AS 'Distance in Miles'&lt;br /&gt;UNION ALL&lt;br /&gt;SELECT&lt;br /&gt;  'My home to WebMD''s office' AS 'From/To',&lt;br /&gt;  (@myHome.STDistance(@WebMD)&lt;br /&gt;    * @MilesPerMeter) AS 'Distance in Miles'&lt;br /&gt;UNION ALL&lt;br /&gt;SELECT&lt;br /&gt;  'My home to Disney World' AS 'From/To',&lt;br /&gt;  (@myHome.STDistance(@Disney)&lt;br /&gt;    * @MilesPerMeter) AS 'Distance in Miles'&lt;/pre&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Results:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;From/To                   Distance in Miles&lt;br /&gt;------------------------- -----------------&lt;br /&gt;My home to Spokane        296.125371694122&lt;br /&gt;My home to WebMD's office 6.61091520932017&lt;br /&gt;My home to Disney World   2533.12214098223&lt;/pre&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Now let's put this into a table.&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;CREATE TABLE dbo.Points (&lt;br /&gt;  PointName varchar(32)   NOT NULL,&lt;br /&gt;  Lat       decimal(19,8) NOT NULL,&lt;br /&gt;  Lon       decimal(19,8) NOT NULL,&lt;br /&gt;  Geog      Geography     NULL&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;INSERT INTO dbo.Points (PointName, Lat, Lon) VALUES&lt;br /&gt;  ('Rob''s Home',    45.55823900, -122.84051000),&lt;br /&gt;  ('WebMD Portland', 45.53677100, -122.70774100),&lt;br /&gt;  ('Spokane, WA',    47.65354400, -122.70774100),&lt;br /&gt;  ('Disney World',   28.40982500,  -81.58848800)&lt;br /&gt;&lt;br /&gt;-- Populate the Geog column based on&lt;br /&gt;--   the Lat and Lon columns&lt;br /&gt;UPDATE dbo.Points&lt;br /&gt;SET Geog = Geography::Point(Lat, Lon, @SRID)&lt;/pre&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;If you SELECT the Geog column, you'll see something like this:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;Geog&lt;br /&gt;----------------------------------------------&lt;br /&gt;0xE6100000010C062D246074C74640807D74EACAB55EC0&lt;/pre&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Here are the points translated from the Geog column:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;SELECT&lt;br /&gt;  PointName,&lt;br /&gt;  Geog.STAsText() AS Point&lt;br /&gt;FROM dbo.Points&lt;br /&gt;&lt;br /&gt;PointName      Point&lt;br /&gt;-------------- -----------------------------&lt;br /&gt;Rob's Home     POINT (-122.84051 45.558239)&lt;br /&gt;WebMD Portland POINT (-122.707741 45.536771)&lt;br /&gt;Spokane, WA    POINT (-122.707741 47.653544)&lt;br /&gt;Disney World   POINT (-81.588488 28.409825)&lt;/pre&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Last, let's get the distance between my home and the other three points using this query:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;SELECT&lt;br /&gt;  TravelPoints.PointName,&lt;br /&gt;  (MyHome.Geog.STDistance(TravelPoints.Geog)&lt;br /&gt;    * @MilesPerMeter) AS 'Distance from My Home'&lt;br /&gt;FROM dbo.Points AS MyHome&lt;br /&gt;CROSS JOIN dbo.Points AS TravelPoints&lt;br /&gt;WHERE MyHome.PointName = 'Rob''s Home'&lt;br /&gt;  AND TravelPoints.PointName &lt;&gt; 'Rob''s Home'&lt;br /&gt;&lt;br /&gt;PointName      Distance from My Home&lt;br /&gt;-------------- ---------------------&lt;br /&gt;WebMD Portland 6.61091520932017&lt;br /&gt;Spokane, WA    144.868086608637&lt;br /&gt;Disney World   2533.12214098223&lt;/pre&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;There is a lot more functionality available. This just scratches the surface.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-6123908037277241876?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/6123908037277241876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2008/12/ten-minutes-with-sql-2008s-geography.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/6123908037277241876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/6123908037277241876'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2008/12/ten-minutes-with-sql-2008s-geography.html' title='Ten Minutes with SQL 2008&apos;s Geography Methods'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-3712656976470214535</id><published>2008-10-09T15:43:00.000-07:00</published><updated>2008-10-09T16:06:44.777-07:00</updated><title type='text'>Listing Column Defaults</title><content type='html'>I had a need to list all the defaults in a database on columns that are rowguidcols where the default is not NewSequentialID(). This code is useful for joining these tables, regardless of what the WHERE clause is.&lt;br /&gt;&lt;br /&gt;Books Online's entry for &lt;a href="http://msdn.microsoft.com/en-us/library/ms173758.aspx"&gt;sys.default_constraints&lt;/a&gt; threw me off because the JOIN logic is incomplete. I've highlighted the missing part in the query below. Here is the full query that returned just what I needed:&lt;br /&gt;&lt;pre&gt;  SELECT&lt;br /&gt;      t.[name]      AS TableName,&lt;br /&gt;      c.[name]      AS ColumnName,&lt;br /&gt;      i.[name]      AS IndexName,&lt;br /&gt;      ct.[name]     AS TypeName,&lt;br /&gt;      dc.definition AS DefaultDefinition&lt;br /&gt;  FROM sys.tables              AS t&lt;br /&gt;  JOIN sys.indexes             AS i&lt;br /&gt;    ON t.[object_id] = i.[object_id]&lt;br /&gt;  JOIN sys.index_columns       AS ic&lt;br /&gt;    ON i.[object_id] = ic.[object_id]&lt;br /&gt;      AND i.index_id = ic.index_id&lt;br /&gt;  JOIN sys.columns             AS c&lt;br /&gt;    ON ic.[object_id] = c.[object_id]&lt;br /&gt;      AND ic.column_id = c.column_id&lt;br /&gt;  JOIN sys.types               AS ct&lt;br /&gt;    ON c.system_type_id = ct.system_type_id&lt;br /&gt;  JOIN sys.default_constraints AS dc&lt;br /&gt;    ON &lt;span style="color: rgb(0, 0, 255);"&gt;dc.parent_object_id = t.[object_id]&lt;/span&gt;&lt;br /&gt;      AND dc.parent_column_id = c.column_id&lt;br /&gt;  WHERE c.is_rowguidcol = 1&lt;br /&gt;    AND dc.definition NOT LIKE '%newsequentialid%'&lt;br /&gt;  ORDER BY&lt;br /&gt;      t.[name],&lt;br /&gt;      c.[name],&lt;br /&gt;      i.[name]&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-3712656976470214535?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/3712656976470214535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2008/10/listing-column-definitions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/3712656976470214535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/3712656976470214535'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2008/10/listing-column-definitions.html' title='Listing Column Defaults'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-8459647804754752455</id><published>2008-09-10T11:21:00.000-07:00</published><updated>2008-09-10T12:55:43.525-07:00</updated><title type='text'>Parentheses are Cheap (use them in Boolean expressions in SQL)</title><content type='html'>Here is a simple example of how a lack of parentheses will cause results that were possibly not intended:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Statement 1&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&amp;nbsp;IF (1 = 2 OR 1 = 1 AND 1 = 2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRINT 'True - 1'&lt;br /&gt;&amp;nbsp;&amp;nbsp;ELSE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRINT 'False - 1'&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;Statement 2&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&amp;nbsp;IF (1 = 1 OR 1 = 2 AND 1 = 2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRINT 'True - 2'&lt;br /&gt;&amp;nbsp;&amp;nbsp;ELSE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRINT 'False - 2'&lt;/pre&gt;The only difference between the Boolean expressions is that they evaluate to&lt;blockquote&gt;Statement 1:&lt;pre&gt;&amp;nbsp;&amp;nbsp;(false OR true AND false)&lt;/pre&gt;Statement 2:&lt;pre&gt;&amp;nbsp;&amp;nbsp;(true OR false AND false)&lt;/pre&gt;&lt;/blockquote&gt;Look at the statements. What will the results be? Is it &lt;span style="font-style: italic;"&gt;obvious&lt;/span&gt; what the results will be?&lt;br /&gt;&lt;br /&gt;The first statement is false, and the second is true.&lt;br /&gt;&lt;br /&gt;The first statement finds that (1 = 2) is false and is followed by an OR, so it keeps going. (1 = 1) is true, but it's followed by an AND, so it keeps checking. (1 = 2) is false, so the result is false.&lt;br /&gt;&lt;br /&gt;The second statement finds that (1 = 1) is true and is followed by an OR. It stops evaluating and returns true.&lt;br /&gt;&lt;br /&gt;The lesson? Use parentheses to make things &lt;i&gt;clear&lt;/i&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-8459647804754752455?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/8459647804754752455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2008/09/parentheses-are-cheap-use-them-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8459647804754752455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8459647804754752455'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2008/09/parentheses-are-cheap-use-them-in.html' title='Parentheses are Cheap (use them in Boolean expressions in SQL)'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-1337240017448373199</id><published>2008-09-10T10:18:00.000-07:00</published><updated>2008-09-10T10:33:47.444-07:00</updated><title type='text'>T-SQL: COUNT(*) without FROM</title><content type='html'>I just learned that “SELECT COUNT(*)” actually works without a FROM clause (no syntax error).&lt;br /&gt;&lt;br /&gt;In a script, I wrote a SELECT and forgot to add the FROM. I was scratching my head as to why the “COUNT(*)” kept returning 1. Apparently it will always return 1 if there is no FROM.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Test Script:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;SELECT COUNT(*) AS 'Ct* - Initial'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SET NOCOUNT ON&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT COUNT(*) AS 'Ct* - Initial'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT @@SERVERNAME AS '@@SERVERNAME'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT COUNT(*) AS 'Ct* - @@SERVERNAME'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT TOP 10 [name] FROM sys.databases&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT COUNT(*) AS 'Ct* - sys.databases'&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Results:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;Ct* - Initial&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;(1 row(s) affected)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;Ct* - Initial&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;@@SERVERNAME&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[snip]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;Ct* - @@SERVERNAME&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;master&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;tempdb&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;model&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;msdb&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;Ct* - sys.databases&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;1&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-1337240017448373199?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/1337240017448373199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2008/09/t-sql-count-without-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/1337240017448373199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/1337240017448373199'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2008/09/t-sql-count-without-from.html' title='T-SQL: COUNT(*) without FROM'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-5391324565837580213</id><published>2008-05-23T15:48:00.000-07:00</published><updated>2008-05-23T15:52:19.048-07:00</updated><title type='text'>WebMD and Column</title><content type='html'>I have been a WebMD for awhile now, and I am really enjoying it there. My boss is great; the rest of the Data Architecture team is great. I really enjoy my role there: leadership without management. Perfect.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.databasejournal.com/features/mssql/article.php/3748051"&gt;16th entry in my column&lt;/a&gt; was published today. Linda, the series editor, is great to work with.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-5391324565837580213?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/5391324565837580213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2008/05/webmd-and-column.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/5391324565837580213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/5391324565837580213'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2008/05/webmd-and-column.html' title='WebMD and Column'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-4389458728103255557</id><published>2007-11-14T08:42:00.001-08:00</published><updated>2007-11-14T08:48:52.885-08:00</updated><title type='text'>New Job - WebMD</title><content type='html'>It's been a long time since my last blog entry, but that doesn't mean I've been idle.&lt;br /&gt;&lt;br /&gt;I recently left Corillian after more than eight years and accepted a position with WebMD Health Services as a Data Architect. I am really enjoying it and looking forward to contributing to WebMD's continued success.&lt;br /&gt;&lt;br /&gt;On the writing front, the eleventh installment of the SQL Credit series on &lt;a href="http://www.DatabaseJournal.com"&gt;Database Journal&lt;/a&gt; will be published November 23rd. I am also working on an article on leadership development.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-4389458728103255557?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/4389458728103255557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2007/11/new-job-webmd.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/4389458728103255557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/4389458728103255557'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2007/11/new-job-webmd.html' title='New Job - WebMD'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-7424271563459416223</id><published>2007-02-23T10:55:00.000-08:00</published><updated>2007-02-23T10:58:25.442-08:00</updated><title type='text'>SqlCredit - Part 2</title><content type='html'>The second installment in the SqlCredit series was just published this morning. This article is entitled "&lt;a href="http://www.databasejournal.com/features/mssql/article.php/3661116"&gt;Creating the Database, Tables, CRUD Procedures&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;My hope is that it will generate much more discussion in the &lt;a href="http://forums.databasejournal.com/forumdisplay.php?s=&amp;daysprune=&amp;amp;f=40"&gt;forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Rob&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-7424271563459416223?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.databasejournal.com/features/mssql/article.php/3661116' title='SqlCredit - Part 2'/><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/7424271563459416223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2007/02/sqlcredit-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7424271563459416223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7424271563459416223'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2007/02/sqlcredit-part-2.html' title='SqlCredit - Part 2'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-8683434189047794705</id><published>2007-02-21T15:29:00.000-08:00</published><updated>2007-02-21T15:31:48.371-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TSqlTest'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>TSqlTest - Getting the Word Out</title><content type='html'>TSqlTest has been added to lists at &lt;a href="http://www.opensourcetesting.org/unit_sql.php#TSqlTest"&gt;opensourcetesting.org&lt;/a&gt; and &lt;a href="http://www.testingreflections.com/node/view/4990"&gt;testingReflections.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I am working on updating the documentation. I hope to have it out soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-8683434189047794705?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.TSqlTest.org/' title='TSqlTest - Getting the Word Out'/><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/8683434189047794705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2007/02/tsqltest-getting-word-out.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8683434189047794705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8683434189047794705'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2007/02/tsqltest-getting-word-out.html' title='TSqlTest - Getting the Word Out'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-8255913748091969703</id><published>2007-02-21T14:58:00.000-08:00</published><updated>2007-02-21T15:24:11.064-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>The web is awesome: Shopping for a cell phone</title><content type='html'>I've been wanting to get a new cell phone for awhile now since mine started having issues. I have &lt;span style="font-style: italic;"&gt;not&lt;/span&gt; wanted to go stand in line to talk to somebody at the Cingular store. That process is far too time-consuming.&lt;br /&gt;&lt;br /&gt;So today I logged onto Cingular's on-line site and clicked on "upgrade phone". That took me to a long list of phones that were available to me at significant discounts. Since I just ordered a new car with Bluetooth, I had it show me only phones that had Bluetooth and then sorted by price.&lt;br /&gt;&lt;br /&gt;What I could get from my desk and not in the store was reviews on every phone I was interested in. &lt;a href="http://reviews.cnet.com/"&gt;cnet's site&lt;/a&gt; was great. I looked up probably twelve different phones. They had all but one. I ended up purchasing a Samsung D807 for just $50. Check out &lt;a href="http://reviews.cnet.com/Samsung_SGH_D807/4505-6454_7-31660630.html?tag=prod.txt.1"&gt;this link&lt;/a&gt; for an example of their excellent reviews.&lt;br /&gt;&lt;br /&gt;I was not completely sure of the pricing, so I clicked on the chat link at Cingular's site and was on-line with a real person in just a few seconds. He gave me the info I needed quickly, and I made the order.&lt;br /&gt;&lt;br /&gt;Lots of choices, expert reviews, filtering and sorting, all that from the comfort of my desk chair. Slick.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-8255913748091969703?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/8255913748091969703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2007/02/web-is-awesome-shopping-for-cell-phone.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8255913748091969703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8255913748091969703'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2007/02/web-is-awesome-shopping-for-cell-phone.html' title='The web is awesome: Shopping for a cell phone'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-8762456404749564610</id><published>2007-02-14T16:14:00.000-08:00</published><updated>2007-02-14T16:18:37.736-08:00</updated><title type='text'>CheckFree to Acquire Corillian</title><content type='html'>CheckFree announced today that they will be acquiring Corillian.&lt;br /&gt;&lt;br /&gt;I haven't been through an acquisition before, but I think this will go well. It's clear that they are purchasing Corillian for their technolo&lt;span style="font-weight: bold;"&gt;gy&lt;/span&gt; &lt;span style="font-style: italic;"&gt;and&lt;/span&gt; their technolo&lt;span style="font-weight: bold;"&gt;gists&lt;/span&gt;. It will be interesting to look back on this day six or twelve months from now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-8762456404749564610?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://biz.yahoo.com/prnews/070214/clw049a.html?.v=1' title='CheckFree to Acquire Corillian'/><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/8762456404749564610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2007/02/checkfree-to-acquire-corillian.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8762456404749564610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8762456404749564610'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2007/02/checkfree-to-acquire-corillian.html' title='CheckFree to Acquire Corillian'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-1971214658797681371</id><published>2007-01-31T08:32:00.000-08:00</published><updated>2007-01-31T08:36:58.707-08:00</updated><title type='text'>SQL Prompt 3</title><content type='html'>I pre-ordered a copy of &lt;a href="http://www.red-gate.com/products/SQL_Prompt/index.htm"&gt;SQL Prompt 3&lt;/a&gt; and just loaded it yesterday. So far, I really like it. It will take some getting used to, but I think it will eventually help me write code much faster. The coolest thing I see right away is the suggestion when you type "ON" in a JOIN.&lt;br /&gt;&lt;br /&gt;If you haven't used it, or if you used the old version and rejected it as slow and buggy, give the new version a try.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-1971214658797681371?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/1971214658797681371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2007/01/sql-prompt-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/1971214658797681371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/1971214658797681371'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2007/01/sql-prompt-3.html' title='SQL Prompt 3'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-8596896485519521736</id><published>2007-01-30T12:35:00.000-08:00</published><updated>2007-01-30T14:35:18.495-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='writing'/><title type='text'>First SqlCredit Article</title><content type='html'>My first article for Database Journal was posted yesterday. I am very excited about this and hope that I get reader feedback. The scary part is that the feedback is important to the process, but I don't have any control over it.&lt;br /&gt;&lt;br /&gt;Rob&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-8596896485519521736?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.databasejournal.com/features/mssql/article.php/3649271' title='First SqlCredit Article'/><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/8596896485519521736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2007/01/first-sqlcredit-article.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8596896485519521736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8596896485519521736'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2007/01/first-sqlcredit-article.html' title='First SqlCredit Article'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-4291350640530303265</id><published>2007-01-02T16:35:00.000-08:00</published><updated>2007-01-22T09:25:20.891-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Comments on Architecture</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;"Architecture". Why does it seem so difficult to get people to understand the need for architecture in software systems?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;No one would build a building by hiring eight different architects to design individual rooms and then try to put them together after-the-fact. Why do we build software systems without having architectural plans, goals, and guidelines?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;I have been thinking quite a bit about systems architecture lately and will jot down some of my thoughts. I reserve the right to add to or modify this list in the future (&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;updated 2007-01-17&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;).&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:trebuchet ms;"&gt;Either &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;designate (promote from within)&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt; or &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;hire&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt; an overall system architect (a single person) who works closely with specialists such as a data architect and a UI architect. This person needs technical skills and abilities, but that's not all. This position also requires the ability to &lt;span style="font-style: italic;"&gt;lead&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;build consensus&lt;/span&gt; among teams.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-style: italic;"&gt;Do&lt;/span&gt; build a committee &lt;span style="font-style: italic;"&gt;around&lt;/span&gt; this architect, but give this one person both the &lt;span style="font-weight: bold;"&gt;responsibility&lt;/span&gt; and the &lt;span style="font-weight: bold;"&gt;authority&lt;/span&gt; to design and implement your organization's architecture.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:trebuchet ms;"&gt;Have this person, with the help of the architecture team, create a comprehensive enterprise architecture. It should include guidance for all parts of the system (UI, mid-tier, database, messaging, security, installation and implementation, application &lt;a href="http://en.wikipedia.org/wiki/Cohesion_%28computer_science%29"&gt;cohesion&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Coupling_%28computer_science%29"&gt;coupling&lt;/a&gt;, etc.).&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:trebuchet ms;"&gt;Have a five-years-out goal and r&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;equire that every new bit of software written somehow gets you closer to that goal.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:trebuchet ms;"&gt;Learn from each project and update the overall architecture and the plans and guidelines as necessary. Technology, your customers, and your competition will all change. Your architecture should change in response.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:trebuchet ms;"&gt;Also, if you haven't already seen it, check out &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;a href="http://www.architecturejournal.net/2006/issue8/"&gt;issue 8&lt;/a&gt; of &lt;a href="http://www.architecturejournal.net/"&gt;The Architecture Journal&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;. There are some great articles there about overall system architecture, with a theme of "Data by Design".&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-4291350640530303265?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/4291350640530303265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2007/01/comments-on-architecture.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/4291350640530303265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/4291350640530303265'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2007/01/comments-on-architecture.html' title='Comments on Architecture'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-7820994115007684657</id><published>2006-12-18T16:25:00.000-08:00</published><updated>2006-12-22T09:03:35.724-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='writing'/><title type='text'>New Column in Database Journal</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;In an &lt;/span&gt;&lt;a style="font-family: trebuchet ms;" href="http://persistencevision.blogspot.com/2006/11/is-sqljunkiescom-abandoned.html"&gt;earlier post&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;,  I commented that I have been "looking for alternatives" in my writing. Well, I found it.&lt;br /&gt;&lt;br /&gt;Starting January 29, 2007, I will be writing a "column" for &lt;a href="http://www.databasejournal.com/"&gt;Database Journal&lt;/a&gt;. Committing to write a column for them means that I will be writing a series of articles about a specific subject. My first series is called "SqlCredit – Developing a Complete SQL Server OLTP Database Project".&lt;br /&gt;&lt;br /&gt;I am really looking forward to this.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-7820994115007684657?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/7820994115007684657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2006/12/writing-new-column-in-database-journal.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7820994115007684657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/7820994115007684657'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2006/12/writing-new-column-in-database-journal.html' title='New Column in Database Journal'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-6743839044692141010</id><published>2006-12-01T16:11:00.000-08:00</published><updated>2006-12-05T08:47:49.955-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TSqlTest'/><category scheme='http://www.blogger.com/atom/ns#' term='test'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>TSqlTest - "RTM"</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;After developing it, using it, and refining it for years, I have finally released my SQL Server testing framework into the wild. It is available now at &lt;/span&gt;&lt;a style="font-family: trebuchet ms;" href="http://www.tsqltest.org/"&gt;http://www.tsqltest.org/&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-6743839044692141010?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/6743839044692141010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2006/12/tsqltest-rtm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/6743839044692141010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/6743839044692141010'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2006/12/tsqltest-rtm.html' title='TSqlTest - &quot;RTM&quot;'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-6596295563633002111</id><published>2006-11-28T14:02:00.000-08:00</published><updated>2006-11-28T14:06:45.841-08:00</updated><title type='text'>Source Control is Your Friend</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;I use source control &lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;religiously &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;in my development. I would never think of writing code without saving it in a source control system and checking in "early and often".&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;So why was I hand-editing the template for my blog without first saving the old version? Misplaced confidence, that's why. Of course I made one too many changes and completely screwed it up.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Since I had no source, I had to rebuild it from another blog's template. It is now under source control.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;This is a lesson I learned many years ago. I just keep learning it over and over.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Rob&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-6596295563633002111?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/6596295563633002111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2006/11/source-control-is-your-friend.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/6596295563633002111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/6596295563633002111'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2006/11/source-control-is-your-friend.html' title='Source Control is Your Friend'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-4967608644440739190</id><published>2006-11-20T14:05:00.000-08:00</published><updated>2006-12-05T08:49:08.473-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Back from PASS 2006</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;I had a &lt;i&gt;great&lt;/i&gt; time at PASS 2006. The classes were great. The keynotes were great. I got to have lunch with two great people from Microsoft, &lt;a href="http://blogs.msdn.com/cbiyikoglu/"&gt;Cihangir Biyikoglu&lt;/a&gt; (Cihan) and &lt;a href="http://blogs.technet.com/wardpond/"&gt;Ward Pond&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I have been working with Cihan for quite awhile now and always value his knowledge and advice. His class on Friday was very well attended and quite interesting.&lt;br /&gt;&lt;br /&gt;I had been reading Ward's blog but had never met him. I just commented in his blog that I would like to meet him. We spent an hour and a half talking Friday at lunch about design, Microsoft, the plight of development-focused database people*, and many other topics.&lt;br /&gt;&lt;br /&gt;Overall, it was a great week and definitely worth all the money Corillian paid for me to be there.&lt;br /&gt;&lt;br /&gt;Rob&lt;br /&gt;&lt;br /&gt;* The question: Why do so many organizations have database &lt;i&gt;administrators&lt;/i&gt; to clean up the problems in their databases. Why not just hire more (and/or better) database &lt;i&gt;developers&lt;/i&gt; so that the databases are designed and programmed better? Then there wouldn't be such a mess to clean up.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-4967608644440739190?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/4967608644440739190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2006/11/back-from-pass-2006.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/4967608644440739190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/4967608644440739190'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2006/11/back-from-pass-2006.html' title='Back from PASS 2006'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-8530696825829256713</id><published>2006-11-09T12:27:00.000-08:00</published><updated>2006-12-05T08:48:30.146-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='writing'/><title type='text'>Is SqlJunkies.com Abandoned?</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;So much for my idea of continuing to write for SqlJunkies.com. All indications are that the site has been abandoned. &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;I sent e-mail to someone at CMP Media, but I have not received a response.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;So, I am looking for alternatives. I &lt;span style="font-style: italic;"&gt;do&lt;/span&gt; want to continue to write for &lt;/span&gt;&lt;span style="font-style: italic;font-family:trebuchet ms;" &gt;someone&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Wish me luck.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Rob&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-8530696825829256713?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/8530696825829256713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2006/11/is-sqljunkiescom-abandoned.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8530696825829256713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/8530696825829256713'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2006/11/is-sqljunkiescom-abandoned.html' title='Is SqlJunkies.com Abandoned?'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36914164.post-116233195127511742</id><published>2006-10-31T13:48:00.000-08:00</published><updated>2006-12-05T08:48:48.118-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='writing'/><title type='text'>Writing Frustration</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;I have been frustrated trying to decide whether I should start a blog or continue writing articles for &lt;a href="http://www.sqljunkies.com/"&gt;SqlJunkies.com&lt;/a&gt;. The reason I don't like blogs is that there is &lt;i&gt;no&lt;/i&gt; barrier to entry. &lt;i&gt;Anyone&lt;/i&gt; can write &lt;i&gt;anything&lt;/i&gt; and post it on a blog. Is it worth reading? No matter; it gets posted on the vast Internet anyway.&lt;br /&gt;&lt;br /&gt;When you want to publish to a magazine, even an on-line magazine, there is an expectation that you have done a good amount of research and testing before publishing.&lt;br /&gt;&lt;br /&gt;So, I plan to continue to write for SqlJunkies, but I have now caved and started a blog. We'll see where it goes.&lt;br /&gt;&lt;br /&gt;Rob&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36914164-116233195127511742?l=persistencevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://persistencevision.blogspot.com/feeds/116233195127511742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://persistencevision.blogspot.com/2006/10/i-have-been-frustrated-about-whether-i.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/116233195127511742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36914164/posts/default/116233195127511742'/><link rel='alternate' type='text/html' href='http://persistencevision.blogspot.com/2006/10/i-have-been-frustrated-about-whether-i.html' title='Writing Frustration'/><author><name>Rob Garrison</name><uri>http://www.blogger.com/profile/09779841540941950357</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_KzXtwuR1Gmk/S1pBt6lkT3I/AAAAAAAAC8I/TQ-uSVFkTzY/S220/RobMug2009.PNG'/></author><thr:total>0</thr:total></entry></feed>
