<?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-1098818986309590576</id><updated>2012-02-16T00:58:24.401-08:00</updated><category term='Analysis Services'/><category term='SQL Server Management Studio'/><category term='Project Management'/><category term='Log Management'/><category term='SQL Server 2008'/><category term='Data Warehouse Concepts'/><category term='DMV'/><category term='Index'/><category term='BIDS'/><category term='Podcast'/><category term='SQL Server Installation'/><category term='BI Humor'/><category term='SQL Server'/><category term='Partitioning'/><category term='Data Types'/><category term='SSIS'/><category term='SOA'/><category term='Video'/><category term='Date and Time'/><category term='Business Intelligence'/><category term='MDX'/><category term='Tips and Tricks'/><title type='text'>Intelligent BI : Rahul Agrawal's BI Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-361115565817695372</id><published>2011-08-17T13:31:00.000-07:00</published><updated>2011-08-17T13:33:00.982-07:00</updated><title type='text'>Change Environment Variables through Command Prompt</title><content type='html'>You can use the DOS Set command to change the Environment variables through Command Prompt.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you wish to make the changes permanent use SetX command.&lt;/div&gt;&lt;div&gt;e.g. SETX ENV DEV&lt;/div&gt;&lt;div&gt;This will change the Enviornment Variable "ENV" to "DEV".&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-361115565817695372?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/361115565817695372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2011/08/change-environment-variables-through.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/361115565817695372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/361115565817695372'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2011/08/change-environment-variables-through.html' title='Change Environment Variables through Command Prompt'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-4485560826343709605</id><published>2011-03-29T07:15:00.000-07:00</published><updated>2011-03-29T07:25:21.991-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Delete logical duplicates using Ranking Function</title><content type='html'>A simple way to delete duplicate (not absolute duplicate records where records are completely identical) records from table using the ranking function and CTE is as follows. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The following SQL will remove logical duplicate records from the table tblTransaction. &lt;/div&gt;&lt;div&gt;If the table tblTransaction has multiple records for a combination of AccountId and RecordId the DELETE syntax will keep only the latest dates and delete all previous records for the combination.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;WITH Transaction_CTE (Ranking, AccountId, RecordId, StartDate) AS (&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  SELECT Ranking = DENSE_RANK() &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  OVER(PARTITION BY AccountId, RecordId &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  ORDER BY StartDate ASC),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  AccountId, RecordId, StartDate &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  FROM dbo.tblTransaction&lt;/span&gt; &lt;span style="font-family:courier new;font-size:85%;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt; &lt;span style="font-family:courier new;font-size:85%;"&gt;DELETE FROM Transaction_CTE WHERE Ranking &amp;gt; 1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt; &lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-4485560826343709605?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/4485560826343709605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2011/03/delete-logical-duplicates-using-ranking.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/4485560826343709605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/4485560826343709605'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2011/03/delete-logical-duplicates-using-ranking.html' title='Delete logical duplicates using Ranking Function'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-3150275850207017210</id><published>2011-03-24T06:43:00.000-07:00</published><updated>2011-03-24T06:53:54.260-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips and Tricks'/><title type='text'>Pass NULL String in the Conditional Expression</title><content type='html'>I have a SSIS package that reads data from a flat file and loads it into database table. The flat file should send valid values for all columns. However, I got the file with "NULL" written for integer values. The requirement was to store NULL values in the database column.&lt;br /&gt;&lt;br /&gt;Passing NULL in SSIS is not straight forward. The MSDN article recommends using the expression &lt;strong&gt;NULL(DT_STR,10,1252)&lt;/strong&gt; to return NULL.&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms141758.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms141758.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This did not work for me. After some work, I figured that you have to again cast the NULL return value to string to make it work.&lt;br /&gt;&lt;strong&gt;(DT_STR,10,1252)NULL(DT_STR,10,1252)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;If you want to use this in Conditional expression, you can use the following format.&lt;br /&gt;Pts_Earned == "NULL" ? (DT_STR,10,1252)NULL(DT_STR,10,1252) : Pts_Earned&lt;br /&gt;The above expression means if it finds "NULL" string in the column Pts_Earned it will pass on NULL or else passes on the actual value.&lt;br /&gt;&lt;br /&gt;Hope this helps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-3150275850207017210?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/3150275850207017210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2011/03/pass-null-string-in-conditional.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/3150275850207017210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/3150275850207017210'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2011/03/pass-null-string-in-conditional.html' title='Pass NULL String in the Conditional Expression'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-8158502386526523679</id><published>2011-01-10T06:32:00.000-08:00</published><updated>2011-01-10T06:33:37.690-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BIDS'/><title type='text'>New line in SSIS annotations</title><content type='html'>If you want a newline on your SSIS annotations, please hit Ctrl + Enter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-8158502386526523679?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/8158502386526523679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2011/01/new-line-in-ssis-annotations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/8158502386526523679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/8158502386526523679'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2011/01/new-line-in-ssis-annotations.html' title='New line in SSIS annotations'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-4418588117294963799</id><published>2011-01-03T09:53:00.000-08:00</published><updated>2011-01-03T10:00:21.369-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Business Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><title type='text'>How it works : Analytics from IBMSocialMedia</title><content type='html'>IBM is investing a lot these days on Analytics.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The following video gives a very good overview of Analytics. Courtesy &lt;a href="http://www.youtube.com/user/IBMSocialMedia"&gt;IBMSocialMedia&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="449" height="278"&gt;&lt;param name="movie" value="http://www.youtube.com/v/_HbjsNaUJ2A?fs=1&amp;amp;hl=en_US&amp;amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/_HbjsNaUJ2A?fs=1&amp;amp;hl=en_US&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="449" height="278"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-4418588117294963799?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/4418588117294963799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2011/01/how-it-works-analytics-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/4418588117294963799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/4418588117294963799'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2011/01/how-it-works-analytics-from.html' title='How it works : Analytics from IBMSocialMedia'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-8158037948072519642</id><published>2010-12-22T12:39:00.000-08:00</published><updated>2010-12-29T10:43:02.641-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Analysis Services'/><title type='text'>Could not load file or assembly 'System.EnterpriseServices.Wrapper.dll</title><content type='html'>I have been struggling since a few days with the following issues on MS Analysis Services 2008. When I try and create a Data Source with the Provider "Native OLE DB\SQL Server Native Client 10.0" I was not able browse the list of databases. The list of databases always remained empty.&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_L-vCyOExq_0/TRJjR7Nk0cI/AAAAAAAAFM8/zVr2Gqdt7aw/s1600/ASDataSourceScreen.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 381px; height: 400px;" src="http://4.bp.blogspot.com/_L-vCyOExq_0/TRJjR7Nk0cI/AAAAAAAAFM8/zVr2Gqdt7aw/s400/ASDataSourceScreen.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5553610450104799682" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When I click on Test Connection I get the following error message "Test connection failed because of an error in initializing provider. Could not load file or assembly 'System.EnterpriseServices.Wrapper.dll' or one of its dependencies. The system cannot find the path specified".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After searching for the resolution on Internet, I found that I may have to reinstall my .Net Framework 2.0. Although, Windows will not allow me to remove my .Net Framework. It turned out that since I additionally had .Net Framework 3.0 and 3.5 installed, I had to remove them first before removing 2.0. And it worked..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After reinstalling .Net Framework 2.0 and all others I was able to browse the databases. Hope it helps...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Meanwhile, till the time I was not able to work with "Native OLE DB\SQL Server Native Client 10.0" I used ".Net Providers\SqlClient Data Provider"&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-8158037948072519642?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/8158037948072519642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2010/12/could-not-load-file-or-assembly.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/8158037948072519642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/8158037948072519642'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2010/12/could-not-load-file-or-assembly.html' title='Could not load file or assembly &apos;System.EnterpriseServices.Wrapper.dll'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_L-vCyOExq_0/TRJjR7Nk0cI/AAAAAAAAFM8/zVr2Gqdt7aw/s72-c/ASDataSourceScreen.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-5724313247549161610</id><published>2010-12-21T09:50:00.000-08:00</published><updated>2010-12-29T10:42:08.232-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Analysis Services'/><title type='text'>Error "Unable to get the window handle for the 'ActionsAwarePivotTable' control."</title><content type='html'>I got the following error "Unable to get the window handle for the 'ActionsAwarePivotTable' control." while browsing the cube in SQL Server Analysis Services 2008.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It turns out that you get this error message when your Lotus Notes is up. The error went away after closing the Lotus Notes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Wish there were better integration between IBM and Microsoft. :-)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-5724313247549161610?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/5724313247549161610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2010/12/error-unable-to-get-window-handle-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/5724313247549161610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/5724313247549161610'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2010/12/error-unable-to-get-window-handle-for.html' title='Error &quot;Unable to get the window handle for the &apos;ActionsAwarePivotTable&apos; control.&quot;'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-6958283462182462050</id><published>2010-12-18T12:51:00.000-08:00</published><updated>2010-12-22T12:56:23.559-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server Installation'/><title type='text'>SQL Server 2008 Installation error for Reporting Services</title><content type='html'>If you get the following error while installing SQL Server 2008 "The Reporting Services catalog database file exists. Select a Reporting Services files-only mode installation.", please follow the link on Microsoft Support page. &lt;a href="http://support.microsoft.com/kb/956095"&gt;http://support.microsoft.com/kb/956095&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To resolve this issue, move, rename, or delete the existing Report Server databases. Or, use a different instance name.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-6958283462182462050?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/6958283462182462050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2010/12/sql-server-2008-installation-error-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/6958283462182462050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/6958283462182462050'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2010/12/sql-server-2008-installation-error-for.html' title='SQL Server 2008 Installation error for Reporting Services'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-513890352590969748</id><published>2010-12-18T12:00:00.000-08:00</published><updated>2010-12-22T13:02:08.388-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server Installation'/><title type='text'>SQL Server 2008 Installation error for "Restart failed"</title><content type='html'>While trying to install SQL Server 2008 the installation may not proceed showing that Restart has failed. Even though you restart your computer it may show you the same message.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Check your system's pending file rename operations registry key. It should be cleared after you reboot your system. If not, something must be wrong.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-513890352590969748?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/513890352590969748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2010/12/sql-server-2008-installation-error-for_18.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/513890352590969748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/513890352590969748'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2010/12/sql-server-2008-installation-error-for_18.html' title='SQL Server 2008 Installation error for &quot;Restart failed&quot;'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-1997975830129209664</id><published>2010-05-06T17:40:00.000-07:00</published><updated>2010-05-06T17:43:43.828-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DMV'/><title type='text'>DMV a day by Glen Berry</title><content type='html'>Last month &lt;a href="http://glennberrysqlperformance.spaces.live.com/"&gt;Glen Berry&lt;/a&gt; started a fantastic series called "DMV a day" and posted one DMV everyday.&lt;br /&gt;&lt;br /&gt;This &lt;a href="http://glennberrysqlperformance.spaces.live.com/blog/cns%2145041418ECCAA960%215636.entry"&gt;post&lt;/a&gt; has a compilation of all 30 DMV's.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-1997975830129209664?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/1997975830129209664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2010/05/dmv-day-by-glen-berry.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/1997975830129209664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/1997975830129209664'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2010/05/dmv-day-by-glen-berry.html' title='DMV a day by Glen Berry'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-4998349031964500211</id><published>2010-01-18T02:35:00.000-08:00</published><updated>2010-01-18T02:39:34.074-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips and Tricks'/><title type='text'>Transfer Tables between Schemas</title><content type='html'>Sometimes we accidentally create table in our own user schema instead of dbo (or others). The following code translates between different schema.&lt;br /&gt;&lt;br /&gt;Suppose there is a table called Employee which has been created in ragarwal schema instead of dbo. The following code will transfer it to dbo from ragarwal schema.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ALTER SCHEMA dbo&lt;br /&gt;TRANSFER ragarwal.Employee&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span &gt;More on Alter Schema at the following &lt;a href="http://msdn.microsoft.com/en-us/library/ms173423.aspx"&gt;MSDN Link&lt;/a&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-4998349031964500211?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/4998349031964500211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2010/01/transfer-tables-between-schemas.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/4998349031964500211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/4998349031964500211'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2010/01/transfer-tables-between-schemas.html' title='Transfer Tables between Schemas'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-1155122577574903491</id><published>2010-01-17T12:22:00.001-08:00</published><updated>2010-01-17T12:24:18.541-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips and Tricks'/><title type='text'>Record Resultset from Stored Procedure in a Table</title><content type='html'>&lt;p&gt;There may be times when a Store Procedure outputs a Rowset and you may want to capture the results in a database table.&lt;/p&gt;  &lt;p&gt;(The below example is executed on the AdventureWorks database)&lt;/p&gt;  &lt;p&gt;Here is how you can do that. Suppose you have a Stored Procedure named LoadEmployee and it accepts the three parameters MaritalStatus, Gender and SalariedFlag and it outputs the resultset from the HumarResources.Employee table. Now, if you are interested in finding all salaried single ladies from the table and store it in EmployeeMaster table, this is how you do..&lt;/p&gt;  &lt;pre class="csharpcode"&gt;INSERT &lt;span class="kwrd"&gt;INTO&lt;/span&gt; dbo.EmployeeMaster&lt;br /&gt;&lt;span class="kwrd"&gt;EXEC&lt;/span&gt; dbo.LoadEmployee @MaritalStatus = &lt;span class="str"&gt;'S'&lt;/span&gt;, @Gender = &lt;span class="str"&gt;'F'&lt;/span&gt;, @SalariedFlag = 1&lt;/pre&gt;And the output will be stored in a table.&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-1155122577574903491?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/1155122577574903491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2010/01/record-resultset-from-stored-procedure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/1155122577574903491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/1155122577574903491'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2010/01/record-resultset-from-stored-procedure.html' title='Record Resultset from Stored Procedure in a Table'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-2725459486464632636</id><published>2009-12-21T07:09:00.000-08:00</published><updated>2010-12-29T10:46:13.186-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MDX'/><title type='text'>ANCESTOR MDX Function</title><content type='html'>I recently started looking up on MDX Functions and one of the first MDX Function I came across was ANCESTOR. Although, MSDN does provide some very good resource on MDX functions, but it was not so simple for me. Either I am totally new to MDX or I am too lame.&lt;br /&gt;&lt;br /&gt;MSDN tries to explain the ANCESTOR MDX function using the Product Hierarchy on the Adventure Works Database but I think Date Hierarchy can be more cool.&lt;br /&gt;&lt;br /&gt;So, here we go...&lt;br /&gt;&lt;br /&gt;As the name suggests, the Ancestor MDX expression helps you find the Ancestor of any MDX Expression. You can specify the either the no. of levels you want to go back or also an expression specifying a level.&lt;br /&gt;&lt;br /&gt;The syntax for Ancestor is as follows:&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span &gt;Ancestor(Member_Expression, Level)&lt;br /&gt;or&lt;br /&gt;Ancestor(Member_Expression, Distance)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Thus, for example, if the Date Hierarchy is as follows:&lt;br /&gt;Year -&gt; Semester -&gt; Quarter -&gt; Month -&gt; Date&lt;br /&gt;The MDX expression results to 04th October 2003&lt;br /&gt;and you want to know the total Internet Sales Amount for the Semester this date belongs to... you will use the following syntax&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;"&gt;SELECT {&lt;br /&gt;ANCESTOR(&lt;br /&gt;[Date].[Calendar].[Date].[October 4, 2003], &lt;span style="color: rgb(51, 204, 0);"&gt;--Member Expression&lt;/span&gt;&lt;br /&gt;[Date].[Calendar].[Calendar Semester]) &lt;span style="color: rgb(51, 204, 0);"&gt;--Level Expression&lt;br /&gt;&lt;/span&gt;} ON COLUMNS,&lt;br /&gt;[Measures].[Internet Sales Amount] ON ROWS&lt;br /&gt;FROM [Adventure Works]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Please note as the Member Expression can return sets, this is used with { }.&lt;br /&gt;&lt;br /&gt;If you want to know the Internet Sales Amount for the Month, Quarter and Year based on the given date you will use the following syntax&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;"&gt;SELECT {&lt;br /&gt;ANCESTOR([Date].[Calendar].[Date].[October 4, 2003], [Date].[Calendar].[Month]),&lt;br /&gt;ANCESTOR([Date].[Calendar].[Date].[October 4, 2003], [Date].[Calendar].[Calendar Quarter]),&lt;br /&gt;ANCESTOR([Date].[Calendar].[Date].[October 4, 2003], [Date].[Calendar].[Calendar Year])&lt;br /&gt;} ON COLUMNS,&lt;br /&gt;[Measures].[Internet Sales Amount] ON ROWS&lt;br /&gt;FROM [Adventure Works]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The syntax produces the following output&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_L-vCyOExq_0/Sy-WTdcgJuI/AAAAAAAAEro/dX2YVmTq-6I/s1600-h/Screenshot.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5417714137815852770" style="margin: 0px 10px 10px 0px; float: left; width: 381px; height: 67px;" alt="" src="http://3.bp.blogspot.com/_L-vCyOExq_0/Sy-WTdcgJuI/AAAAAAAAEro/dX2YVmTq-6I/s400/Screenshot.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can use the following syntax to use the Distance (Numeric Expression) to get the same output.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;"&gt;SELECT {&lt;br /&gt;ANCESTOR([Date].[Calendar].[Date].[October 4, 2003], 1),&lt;br /&gt;ANCESTOR([Date].[Calendar].[Date].[October 4, 2003], 2),&lt;br /&gt;ANCESTOR([Date].[Calendar].[Date].[October 4, 2003], 4)&lt;br /&gt;} ON COLUMNS,&lt;br /&gt;[Measures].[Internet Sales Amount] ON ROWS&lt;br /&gt;FROM [Adventure Works]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Remeber from Date, Month is 1 Level up, Quarter is 2 Levels up and Year is 4 Levels up..&lt;br /&gt;&lt;br /&gt;Please note the Ancestor Function always returns a single value..&lt;br /&gt;Interestingly, there is also an MDX Function ANCESTORS but I could not find the difference between two. Even the Ancestors return a single value..&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ms145616.aspx"&gt;The MSDN article on ANCESTOR can be access here...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-2725459486464632636?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/2725459486464632636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/12/ancestor-mdx-function.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/2725459486464632636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/2725459486464632636'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/12/ancestor-mdx-function.html' title='ANCESTOR MDX Function'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_L-vCyOExq_0/Sy-WTdcgJuI/AAAAAAAAEro/dX2YVmTq-6I/s72-c/Screenshot.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-1919883455459289536</id><published>2009-11-23T05:34:00.000-08:00</published><updated>2011-01-03T10:07:55.765-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Business Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><title type='text'>Sharepoint in Plain English</title><content type='html'>The very simple video by CommonCraft explains the concept of Microsoft Sharepoint Server in "plain english".&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://www.microsoft.com/video/en/us/player/embed/76e8d3af-c2bd-42a6-bb12-befcbd041bf1" frameborder="0" width="430" scrolling="no" height="326"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/video/en/us/details/76e8d3af-c2bd-42a6-bb12-befcbd041bf1?vp_evt=eref&amp;amp;vp_video=SharePoint%20in%20Plain%20English"&gt;SharePoint in Plain English&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-1919883455459289536?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/1919883455459289536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/11/sharepoint-in-plain-english.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/1919883455459289536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/1919883455459289536'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/11/sharepoint-in-plain-english.html' title='Sharepoint in Plain English'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-7496649904131807734</id><published>2009-11-05T05:55:00.000-08:00</published><updated>2009-11-15T13:26:18.072-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips and Tricks'/><title type='text'>Special Characters in a Table Name</title><content type='html'>The last day we accidentally changed a table name from 'dbo.TableName' to 'db.TableName'.&lt;br /&gt;&lt;br /&gt;Afterwards we were not able to access the table at all, although we could see the table on querying sys.objects or INFORMATION_SCHEMA.TABLES.&lt;br /&gt;&lt;br /&gt;The first impression was that the table schema/ownership got changed from dbo to db. However, the table was still existing in the same dbo schema but the name of the table became 'db.TableName' from 'TableName'.&lt;br /&gt;&lt;br /&gt;Thus to rename the table I used the following command.&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EXEC sp_Rename 'dbo.[db.TableName]', 'TableName'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Please note the use of [] brackets. It is used to embed special characters in the SQL Syntax.&lt;br /&gt;Also, in the second parameter we do not specify the schema/username.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-7496649904131807734?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/7496649904131807734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/11/special-characters-in-table-name.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/7496649904131807734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/7496649904131807734'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/11/special-characters-in-table-name.html' title='Special Characters in a Table Name'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-5960124359939053320</id><published>2009-11-05T05:15:00.000-08:00</published><updated>2009-11-05T05:27:46.708-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Partitioning'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Unable to remove Partition Filegroup</title><content type='html'>Today while removing a Filegroup we came across the famous error message.&lt;br /&gt;&lt;em&gt;&lt;span style="color:#ff0000;"&gt;The filegroup FileGroupNameXXX cannot be removed because it is not empty.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Normally, on getting this error message the first thing I do is try to shrink the Filegroup&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DBCC SHRINKFILE (FileGroupNameXXX, 0)&lt;/span&gt;&lt;br /&gt;This will clear all unused space from it.&lt;br /&gt;&lt;br /&gt;However SQL Server informed me that the File does not exist. On further checking I noticed that the Filegroup does not have an associated File or Partition Scheme associated with it. Then why is it not empty and what is associated with it?&lt;br /&gt;&lt;br /&gt;At this point, SQL Server DMV (Dynamic Management Views) came to my rescue and the following command showed there is a table along with an index still associated with the Filegroup.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT ds.name, i.name, o.name&lt;br /&gt;FROM sys.data_spaces ds&lt;br /&gt;inner join sys.indexes i on i.data_space_id = ds.data_space_id&lt;br /&gt;inner join sys.objects o on i.object_id = o.object_id&lt;br /&gt;where ds.name = FileGroupNameXXX&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This gave me the name of the Objects associated. So, I first dropped the table and ran the following command to remove the FileGroup.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ALTER DATABASE TestDB REMOVE FILEGROUP FileGroupNameXXX&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hope this helps...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-5960124359939053320?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/5960124359939053320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/11/unable-to-remove-partition-filegroup.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/5960124359939053320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/5960124359939053320'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/11/unable-to-remove-partition-filegroup.html' title='Unable to remove Partition Filegroup'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-5906588047571791445</id><published>2009-11-04T07:45:00.000-08:00</published><updated>2009-11-04T10:43:18.039-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips and Tricks'/><title type='text'>Rename a Table or a Column</title><content type='html'>Microsoft SQL Server has a very cool function to change the name of table or column or indexes.. sp_rename&lt;br /&gt;&lt;br /&gt;To rename a table&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EXEC sp_rename 'dbo.Cust' 'Customer'&lt;/span&gt;&lt;br /&gt;The above command renames the table Cust to Customer in the dbo schema.&lt;br /&gt;&lt;br /&gt;To rename a column&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EXEC sp_rename 'dbo.Cust.CustName' 'CustomerName', 'COLUMN'&lt;/span&gt;&lt;br /&gt;The above command renames the Column CustName to CustomerName on the table dbo.Cust&lt;br /&gt;&lt;br /&gt;You can use the same command to rename an Index as well.&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EXEC sp_rename 'dbo.Customer.idx_CustomerId', 'idx_Customer_CustomerId', 'INDEX'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;More details about the sp_rename on &lt;a href="http://msdn.microsoft.com/en-us/library/ms188351.aspx"&gt;MSDN Link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-5906588047571791445?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/5906588047571791445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/11/rename-table-or-column.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/5906588047571791445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/5906588047571791445'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/11/rename-table-or-column.html' title='Rename a Table or a Column'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-6849418094029020229</id><published>2009-11-04T07:01:00.000-08:00</published><updated>2009-11-04T07:36:12.031-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Partitioning'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Clean Partition on SQL Server</title><content type='html'>During the development and testing for Partitions on SQL Server, I have come across this question a lot of time "How do we clear the partition, file, filegroup, partition scheme and function and then start all over again?"&lt;br /&gt;&lt;br /&gt;This can be a really tedious process, if you do not do it right and in the right order. This post documents on the steps you need to take to clean everything and start from scratch.&lt;br /&gt;&lt;br /&gt;The first thing I always suggest is move all the tables that are on the said partition back to PRIMARY file group. You can check the steps &lt;a href="http://intelligent-bi.blogspot.com/2009/06/move-partitioned-table-to-primary.html"&gt;here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once you have moved all the tables to the PRIMARY file group, the second step is to remove the Partitioned file groups. Assuming you have a database named TestDB and the Partition Filegroups name is something like TEST_PARTITION_2009_01, TEST_PARTITION_2009_02 and so on for 12 months, run the following syntax&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ALTER DATABASE TestDB REMOVE FILE TEST_PARTITION_2009_01&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILE TEST_PARTITION_2009_02&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILE TEST_PARTITION_2009_03&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILE TEST_PARTITION_2009_04&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILE TEST_PARTITION_2009_05&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILE TEST_PARTITION_2009_06&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILE TEST_PARTITION_2009_07&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILE TEST_PARTITION_2009_08&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILE TEST_PARTITION_2009_09&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILE TEST_PARTITION_2009_10&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILE TEST_PARTITION_2009_11&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILE TEST_PARTITION_2009_12&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Third, remove the Partition Scheme and Function. Replace the Partition scheme and Function name accordingly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DROP PARTITION SCHEME TEST_PARTITION_Part_Sch&lt;br /&gt;DROP PARTITION FUNCTION TEST_PARTITION_Part_Func&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Finally, you need to remove the Partition FileGroups from the database. I assume the same naming convention..&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ALTER DATABASE TestDB REMOVE FILEGROUP TEST_PARTITION_2009_01&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILEGROUP TEST_PARTITION_2009_02&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILEGROUP TEST_PARTITION_2009_03&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILEGROUP TEST_PARTITION_2009_04&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILEGROUP TEST_PARTITION_2009_05&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILEGROUP TEST_PARTITION_2009_06&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILEGROUP TEST_PARTITION_2009_07&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILEGROUP TEST_PARTITION_2009_08&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILEGROUP TEST_PARTITION_2009_09&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILEGROUP TEST_PARTITION_2009_10&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILEGROUP TEST_PARTITION_2009_11&lt;br /&gt;ALTER DATABASE TestDB REMOVE FILEGROUP TEST_PARTITION_2009_12&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And voila... you have a clean slate now. Enjoy&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-6849418094029020229?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/6849418094029020229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/11/clean-partition-on-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/6849418094029020229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/6849418094029020229'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/11/clean-partition-on-sql-server.html' title='Clean Partition on SQL Server'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-4397737222829420367</id><published>2009-10-22T05:06:00.001-07:00</published><updated>2009-10-22T08:27:29.854-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Podcast'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><title type='text'>Service Oriented Architecture Podcast</title><content type='html'>A compilation of podcasts related to Service Oriented Architecture (SOA) spread across the internet.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://searchwebservices.com/r/0,,49903,00.htm?IBM"&gt;What is SOA? From whatis.com, sponsored by IBM&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Another good article explaining what is SOA?&lt;br /&gt;&lt;a href="http://www.javaworld.com/javaworld/jw-06-2005/jw-0613-soa.html"&gt;An introduction to SOA on Javaworld.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-4397737222829420367?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/4397737222829420367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/10/service-oriented-architecture-podcast.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/4397737222829420367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/4397737222829420367'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/10/service-oriented-architecture-podcast.html' title='Service Oriented Architecture Podcast'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-709448205356465612</id><published>2009-10-20T13:30:00.001-07:00</published><updated>2009-10-20T13:33:09.213-07:00</updated><title type='text'>Microsoft Excel 2010</title><content type='html'>Get a sneak preview of Microsoft's most famous BI Tool Excel in a new avatar Excel 2010 here.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/office/2010/"&gt;http://www.microsoft.com/office/2010/&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-709448205356465612?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/709448205356465612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/10/microsoft-excel-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/709448205356465612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/709448205356465612'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/10/microsoft-excel-2010.html' title='Microsoft Excel 2010'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-3093208021003171209</id><published>2009-10-20T06:33:00.000-07:00</published><updated>2009-11-04T06:59:30.230-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips and Tricks'/><title type='text'>Count Distinct Records for Multiple Column</title><content type='html'>We all know how to find the Distinct Count for any particular column in a table&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;SELECT COUNT(DISTINCT ColumnName) FROM dbo.TableName&lt;/span&gt; &lt;/blockquote&gt;What if you want to count the Distinct combination for multiple Columns? The above syntax will not work. You can use a Derived table to count the distinct combination&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:courier new;"&gt;SELECT COUNT(*) FROM (&lt;br /&gt;SELECT DISTINCT Column1, Column2, Column3 FROM dbo.TableName) &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;AS DistinctTable&lt;/span&gt; &lt;/p&gt;&lt;/blockquote&gt;Hope this helps!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-3093208021003171209?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/3093208021003171209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/10/count-distinct-records-for-multiple.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/3093208021003171209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/3093208021003171209'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/10/count-distinct-records-for-multiple.html' title='Count Distinct Records for Multiple Column'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-7130837037671470536</id><published>2009-10-19T12:42:00.000-07:00</published><updated>2009-11-04T06:58:56.908-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Create a Duplicate table</title><content type='html'>There are often times when I want to create a duplicate structure of an existing table. The simplest way to do that is following:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;SELECT TOP 0 * INTO dbo.tablename&lt;/span&gt; &lt;/blockquote&gt;Remember to put a dbo before the new tablename, or else SQL Server creates the table under your schema.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-7130837037671470536?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/7130837037671470536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/10/create-duplicate-table_19.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/7130837037671470536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/7130837037671470536'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/10/create-duplicate-table_19.html' title='Create a Duplicate table'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-2019053134049585028</id><published>2009-10-08T07:19:00.000-07:00</published><updated>2009-10-08T07:25:59.323-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><title type='text'>Phases of Development Projects</title><content type='html'>&lt;p&gt;I was watching the following Microsoft Webcast&lt;br /&gt;&lt;a class="stdLink" onclick="" href="http://www.microsoft.com/events/series/technetsqlserver2008.aspx?tab=Webcasts&amp;amp;seriesid=111&amp;amp;webcastid=6558"&gt;IT Manager Webcast: How Microsoft IT Manages Vendor Development Projects (Level 300)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lots of interesting sheets, graphs and tracker. Also, liked the following phases listed in Development Project. This can act as a Ready Reckoner.&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;REQ - Requirements&lt;/li&gt;&lt;li&gt;HLD - High Level Design (e.g. FSPEC) &lt;/li&gt;&lt;li&gt;HLDINSP - High Level Design Inspection &lt;/li&gt;&lt;li&gt;DLD - Detail Design &lt;/li&gt;&lt;li&gt;DLDR - Detail Design Review &lt;/li&gt;&lt;li&gt;DLDINSP - Detail Design Inspection &lt;/li&gt;&lt;li&gt;TCR - Test Case Review &lt;/li&gt;&lt;li&gt;CODE - Coding &lt;/li&gt;&lt;li&gt;CR - Code Review &lt;/li&gt;&lt;li&gt;UT - Unit Test &lt;/li&gt;&lt;li&gt;CODEINSP - Code Inspection &lt;/li&gt;&lt;li&gt;IT - Integration Testing &lt;/li&gt;&lt;li&gt;ST - System Testing &lt;/li&gt;&lt;li&gt;PM - Post-mortem &lt;/li&gt;&lt;li&gt;STRAT - Strategy (e.g. Vision/Scope) &lt;/li&gt;&lt;li&gt;PLAN - Planning, Project Management &lt;/li&gt;&lt;li&gt;UAT - User Acceptance Test &lt;/li&gt;&lt;li&gt;PL - Product Live&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/1098818986309590576-2019053134049585028?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/2019053134049585028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/10/phases-of-development-projects.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/2019053134049585028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/2019053134049585028'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/10/phases-of-development-projects.html' title='Phases of Development Projects'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-8640818184431343829</id><published>2009-10-02T07:01:00.000-07:00</published><updated>2009-10-02T07:11:41.917-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Index'/><title type='text'>Impact of Multi-Column Clustered Index</title><content type='html'>Clustered Indexes are really important and special. Special because there can only be 1 Clustered Index in a table and they decide the order in which data is stored in tables.&lt;br /&gt;&lt;br /&gt;Clustered Index help the database uniquely identify individual rows in a table. As mentioned in my &lt;a href="http://intelligent-bi.blogspot.com/2009/06/create-clustered-index-as-unique-or-not.html"&gt;previous blog &lt;/a&gt;if the Clustered Index do not uniquely identify a row, SQL Server automatically adds a 4 byte uniqueidentifier column to make it unique.&lt;br /&gt;&lt;br /&gt;However we should be really careful not to add too many columns in a Clustered Index in trying to make it unique, because all Non-Clustered Indexes store the columns from Clustered Index at the end to point to a row in a table.&lt;br /&gt;&lt;br /&gt;Therefore, more the no. of columns in a Clustered Index will be, more the size of Non-Clustered Index will be.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-8640818184431343829?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/8640818184431343829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/10/impact-of-multi-column-clustered-index.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/8640818184431343829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/8640818184431343829'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/10/impact-of-multi-column-clustered-index.html' title='Impact of Multi-Column Clustered Index'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-691896779400053159</id><published>2009-09-30T06:19:00.001-07:00</published><updated>2009-10-02T07:01:09.072-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips and Tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='Index'/><title type='text'>Disable and Enable Index</title><content type='html'>Microsoft introduced the concept of disabling an Index in SQL Server 2005.&lt;br /&gt;&lt;br /&gt;They syntax to disable the index is as follows:&lt;br /&gt;ALTER INDEX &lt;em&gt;indexname&lt;/em&gt; ON &lt;em&gt;tablename&lt;/em&gt; DISABLE&lt;br /&gt;e.g.&lt;br /&gt;ALTER INDEX idx_TEST ON dbo.TEST DISABLE&lt;br /&gt;&lt;br /&gt;However, contrary to popular belief syntax to enable the index is not&lt;br /&gt;ALTER INDEX idx_TEST ON dbo.TEST ENABLE&lt;br /&gt;&lt;br /&gt;The correct syntax to enable an Index is&lt;br /&gt;ALTER INDEX idx_TEST ON dbo.TEST &lt;strong&gt;REBUILD&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Remember the keyword REBUILD for it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-691896779400053159?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/691896779400053159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/09/disable-and-enable-index.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/691896779400053159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/691896779400053159'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/09/disable-and-enable-index.html' title='Disable and Enable Index'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-4009575387485111254</id><published>2009-09-28T08:31:00.000-07:00</published><updated>2009-09-28T08:43:44.112-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Business Intelligence'/><title type='text'>The Evolution and Future of Business Intelligence</title><content type='html'>A good article explaining the evolution of Business Intelligence taking an example of a hypothetical Telecom Company and how it emerges during the different stages of evolution.&lt;br /&gt;&lt;br /&gt;BI Gen I : Reporting using the Enterprise Data Warehouse using slicing and dicing. Helps in Reporting at Speed-of-Thought.&lt;br /&gt;BI Gen II : Giving real time Reporting capability to the Data Warehouse using Dashboards and Scorecards. Ability to analyze events as it happens.&lt;br /&gt;BI Gen III : Reporting should not only be Real-Time but also be Actionable. Automated decision making.&lt;br /&gt;BI Gen IV : Simulating Business Strategies based on past available information. Run hypothetical scenarios on real data and analyze results as if it were real.&lt;br /&gt;BI Gen V : Optimize business using Artificial Intelligence as well as Traditional Statistics. Make it Autopilot.&lt;br /&gt;&lt;br /&gt;Read the complete article here...&lt;br /&gt;&lt;a href="http://www.information-management.com/infodirect/2009_140/business_intelligence_bi-10016145-1.html"&gt;The Evolution and Future of Business Intelligence&lt;/a&gt; by Rob Walker&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-4009575387485111254?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/4009575387485111254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/09/evolution-and-future-of-business.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/4009575387485111254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/4009575387485111254'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/09/evolution-and-future-of-business.html' title='The Evolution and Future of Business Intelligence'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-8455344772486905767</id><published>2009-09-27T10:25:00.000-07:00</published><updated>2009-09-28T04:17:37.942-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BI Humor'/><title type='text'>OLAP Jokes to tickle your Funny Bone</title><content type='html'>I came across this collection of really funny OLAP Jokes.&lt;br /&gt;&lt;br /&gt;Posting some of them..&lt;br /&gt;&lt;br /&gt;Q: Why did the dimension take all day to take off its suit and put on a pair of jeans?&lt;br /&gt;A: It was a slowly-changing dimension&lt;br /&gt;&lt;br /&gt;Q: Why couldn't the hierarchy become a tightrope-walker?&lt;br /&gt;A: It was unbalanced&lt;br /&gt;&lt;br /&gt;Q: Why did the dimension keep itself to itself?&lt;br /&gt;A: It was a private dimension.&lt;br /&gt;&lt;br /&gt;Q: What's the porn director's favourite MDX function?&lt;br /&gt;A: BottomCount&lt;br /&gt;&lt;br /&gt;Q: What MDX function makes Previous Year Growth and Market Share blush?&lt;br /&gt;A: StripCalculatedMembers&lt;br /&gt;&lt;br /&gt;Q: How did the BI developer send his backed-up database to a colleague on the other side of London?&lt;br /&gt;A: In a .cab file&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;And my favorite one.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q: Was the cube straight or gay?&lt;br /&gt;A: Neither, it was BI.&lt;br /&gt;&lt;br /&gt;You can read more at the &lt;a href="http://cwebbbi.spaces.live.com/Blog/cns%211pi7ETChsJ1un_2s41jm9Iyg%21290.entry"&gt;Chris Webb's BI Blog....&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-8455344772486905767?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/8455344772486905767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/09/olap-jokes-to-tickle-your-funny-bone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/8455344772486905767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/8455344772486905767'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/09/olap-jokes-to-tickle-your-funny-bone.html' title='OLAP Jokes to tickle your Funny Bone'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-2888423696034632959</id><published>2009-09-18T04:02:00.000-07:00</published><updated>2009-09-18T04:08:48.560-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Business Intelligence'/><title type='text'>US Government IT Dashboard</title><content type='html'>The US Govenment in June launched a IT Dashboard to keep a track of their IT Spending. This is an extremely good example of use of Business Intelligence by a Federal Government to bring more transparency and acccountability in the way they work.&lt;br /&gt;&lt;br /&gt;The Dashboard was developed in flat six weeks time. It is highly interactive and allows you to drill down to individual departments, their investments and presents a scorecard of their performance.&lt;br /&gt;&lt;br /&gt;Check out the site at &lt;a href="http://it.usaspending.gov/"&gt;http://it.usaspending.gov/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-2888423696034632959?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/2888423696034632959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/09/us-government-it-dashboard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/2888423696034632959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/2888423696034632959'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/09/us-government-it-dashboard.html' title='US Government IT Dashboard'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-234905543361210520</id><published>2009-09-18T02:21:00.000-07:00</published><updated>2009-09-18T03:05:15.463-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Warehouse Concepts'/><title type='text'>Surrogate Key in Data Warehouse</title><content type='html'>Simply put, Surrogate Keys are substitution to&lt;strong&gt; &lt;/strong&gt;original Primary Key of a Dimension Table. They still act as a Primary Key but are Data Warehouse generated unique Integer values.&lt;br /&gt;&lt;br /&gt;One may argue if these are simply Substitution then why can't we simply use the original Primary Keys. Well, it has its own advantages:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What if the Source Primary Key Changes? (We agree this is an unlikely situation, but yes this can happen)&lt;/li&gt;&lt;li&gt;What if data is integrated from Multiple Sources? (How do we uniquely identify a row in this case. Because both system may have their own key, and the key can be repeated in both systems. Well, this is not possible if we use a GUID column, because as the name says it is Globally Unique Identifier. But we will come back to this later.)&lt;/li&gt;&lt;/ul&gt;Thus, as the Surrogate Key is generated and maintained by the Datawarehouse System and not the the Source/Transactional Sytem, we can easily overcome these issues. &lt;strong&gt;The Surrogate Key acts as a bridge or substitution over the Source System. &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;It also helps us in dealing with Dummy Values&lt;/strong&gt;. Normally -1 or 0 is used to denote a Dummy Value. (e.g. If you receive Sales without Promotions you can put -1 as a value for "No Promotions" instead of NULL Values). While handling large queries joins between Integer values are more efficient than NULL Values.&lt;br /&gt;&lt;br /&gt;Another important characteristic of Surrogate Keys are &lt;strong&gt;it should be meaningless&lt;/strong&gt;. No Intelligence should be derived from these keys. A lot of source system has keys where there are hidden meanings in the Keys. (e.g. A source key value XXYYYZZZ1234 the first 2 characters may refer to country code, the next 3 department code and so on.) This may be good for a Transactional System but not for a Data Warehouse environment. If we come across such scenarios it is always good to bifurcate the meanings and store it into different columns using ETL. So that later they can be referred as individual columns in a SQL Query which will be more efficient.&lt;br /&gt;&lt;br /&gt;Another great advantage of Surrogate Keys are &lt;strong&gt;it helps optmize space&lt;/strong&gt;. These days a lot of Source System has their Primary Keys as AlphaNumeric Values or GUID Columns. A GUID column occupies 16 bytes and it can be anything for a AlphaNumeric value. Whereas an integer value generally uses 4 bytes. Thus, in comparison to GUID it saves 12 bytes. This may look small in isolation or when you simply see a Dimension Table. But Imagine a saving of 12 bytes over a 100 million rows Fact Table, which is pretty moderate. This means a saving of around 1 GB and we are talking only one column. What if the table has 1 Billion rows, it will save around 11 GB and if you have multiple GUID columns.. Huh!!!&lt;br /&gt;&lt;br /&gt;Thus, we see the benefits of having a Surrogate Key over a normal Primary Key. It also goes by the following names in many environments.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Alternate Key&lt;/li&gt;&lt;li&gt;Non Natural Key&lt;/li&gt;&lt;li&gt;Meaningless Key&lt;/li&gt;&lt;li&gt;Integer Key&lt;/li&gt;&lt;li&gt;Artifical Key&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/1098818986309590576-234905543361210520?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/234905543361210520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/09/surrogate-key-in-data-warehouse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/234905543361210520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/234905543361210520'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/09/surrogate-key-in-data-warehouse.html' title='Surrogate Key in Data Warehouse'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-5544377970924702743</id><published>2009-08-04T03:18:00.000-07:00</published><updated>2009-08-06T20:03:38.518-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips and Tricks'/><title type='text'>Check if #Temporary table exists on the database</title><content type='html'>You can check if a #Temporary exists in the database with the following command.&lt;br /&gt;&lt;br /&gt;SELECT * FROM tempdb.dbo.sysobjects WHERE name LIKE '#%'&lt;br /&gt;&lt;br /&gt;e.g.&lt;br /&gt;If you create a temporary table with the name #Customer you can check for it using:&lt;br /&gt;SELECT * FROM tempdb.dbo.sysobjects WHERE name LIKE '#Customer__%'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-5544377970924702743?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/5544377970924702743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/08/check-if-temporary-table-exists-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/5544377970924702743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/5544377970924702743'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/08/check-if-temporary-table-exists-on.html' title='Check if #Temporary table exists on the database'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-6659896700797402843</id><published>2009-06-26T12:15:00.000-07:00</published><updated>2009-06-26T12:32:00.233-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Warehouse Concepts'/><title type='text'>10 Essential Rules of Dimensional Modeling by Kimball University</title><content type='html'>Margy Ross from Kimball University writes the 10 Commandments of Dimensional Modeling. (Well she hated to use the word Commandments but I still liked it.)&lt;br /&gt;&lt;br /&gt;The article contains pointers, most of which we do follow while designing a Data Warehouse. But, it was really good to have all of them at one place.&lt;br /&gt;&lt;br /&gt;I am listing the Commandments here, but please read the full article by clicking on the link &lt;a href="http://www.intelligententerprise.com/showArticle.jhtml;jsessionid=0OOD1MPHH53A0QSNDLOSKH0CJUNN2JVN?articleID=217700810"&gt;here...&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Load &lt;span style="font-weight: bold;"&gt;detailed atomic &lt;/span&gt;data into dimensional structures.&lt;/li&gt;&lt;li&gt;Structure dimensional models around &lt;span style="font-weight: bold;"&gt;business processes&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Ensure that every fact table has an &lt;span style="font-weight: bold;"&gt;associated date&lt;/span&gt; dimension table.&lt;/li&gt;&lt;li&gt;Ensure that all facts in a single fact table are at the &lt;span style="font-weight: bold;"&gt;same grain&lt;/span&gt; or level of detail.&lt;/li&gt;&lt;li&gt;Resolve many-to-many relationships in fact tables.&lt;/li&gt;&lt;li&gt;Resolve many-to-one relationships in dimension tables.&lt;/li&gt;&lt;li&gt;Store report labels and filter domain values in dimension tables.&lt;/li&gt;&lt;li&gt;Make certain that dimension tables use a &lt;span style="font-weight: bold;"&gt;surrogate &lt;/span&gt;key.&lt;/li&gt;&lt;li&gt;Create &lt;span style="font-weight: bold;"&gt;conformed dimensions&lt;/span&gt; to integrate data across the enterprise.&lt;/li&gt;&lt;li&gt;Continuously balance requirements and realities to deliver a DW/BI solution that's accepted by business users and that supports their decision-making.&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/1098818986309590576-6659896700797402843?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/6659896700797402843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/10-essential-rules-of-dimensional.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/6659896700797402843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/6659896700797402843'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/10-essential-rules-of-dimensional.html' title='10 Essential Rules of Dimensional Modeling by Kimball University'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-5707419902200054105</id><published>2009-06-25T04:54:00.001-07:00</published><updated>2009-06-25T05:02:21.989-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Index'/><title type='text'>Create Clustered Index as Unique or Not?</title><content type='html'>Clustered Index is very important and determine the order in which data is stored in the table. A table without a Clustered Index is called a HEAP. (Try and picture a Heap in your mind and then you can visualize how data is stored in table without a Clustered Index.. Huh!!)&lt;br /&gt;&lt;br /&gt;Clustered Index also helps the SQL Engine &lt;strong&gt;uniquely&lt;/strong&gt; identify a row. Thus, if possible, always create a Clustered Index as UNIQUE. If you do not specify the UNIQUE clause while creating your Clustered Index, SQL Server automatically adds a 4 byte uniqueidentifier column to the table to make every row unique.&lt;br /&gt;&lt;br /&gt;Thus, specifying a UNIQUE clause also helps save valueable database space.&lt;br /&gt;&lt;br /&gt;More information can be found at the following &lt;a href="http://msdn.microsoft.com/en-us/library/ms190639.aspx"&gt;MSDN Page.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-5707419902200054105?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/5707419902200054105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/create-clustered-index-as-unique-or-not.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/5707419902200054105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/5707419902200054105'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/create-clustered-index-as-unique-or-not.html' title='Create Clustered Index as Unique or Not?'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-392002736501064496</id><published>2009-06-24T07:39:00.000-07:00</published><updated>2009-06-26T12:32:45.605-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server Management Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips and Tricks'/><title type='text'>Handy Shortcuts for SSMS</title><content type='html'>I like to add the following short-cut keys to my SQL Server Management Studio. This makes a lot of regular day-to-day commands much easier to use.&lt;br /&gt;&lt;br /&gt;Click on Tools Menu.&lt;br /&gt;Select Options Menu&lt;br /&gt;Select Keyboard on the Environment Tree&lt;br /&gt;add the following shortcuts&lt;br /&gt;&lt;br /&gt;Ctrl+3 : sp_Columns&lt;br /&gt;Ctrl+4 : sp_Depends&lt;br /&gt;Ctrl+5 : sp_SpaceUsed&lt;br /&gt;Ctrl+6 : sp_HelpIndex&lt;br /&gt;Ctrl+7 : sp_HelpText&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_L-vCyOExq_0/SkI7Me97XFI/AAAAAAAAEME/xsEDqLPjFaw/s1600-h/SSMSKBShortcut.jpg"&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_L-vCyOExq_0/SkI7feCMfNI/AAAAAAAAEMM/LcRCNGOxT20/s1600-h/SSMSKBShortcut.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5350904719093824722" style="width: 400px; height: 237px;" alt="" src="http://2.bp.blogspot.com/_L-vCyOExq_0/SkI7feCMfNI/AAAAAAAAEMM/LcRCNGOxT20/s400/SSMSKBShortcut.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;(You can add/change your own Shortcut Commands)&lt;br /&gt;&lt;br /&gt;Click OK. You will have to re-start SSMS to use these shortcuts.&lt;br /&gt;&lt;br /&gt;Next time if you want to see the size of a table, instead of typing sp_SpaceUsed TableName, simply select the table and press &lt;strong&gt;Ctrl+5&lt;/strong&gt; and Voila...&lt;br /&gt;&lt;br /&gt;A list of Database Engine Stored Procedures can be found &lt;a href="http://msdn.microsoft.com/en-us/library/ms176007.aspx"&gt;here...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-392002736501064496?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/392002736501064496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/handy-shortcut-for-ssms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/392002736501064496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/392002736501064496'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/handy-shortcut-for-ssms.html' title='Handy Shortcuts for SSMS'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_L-vCyOExq_0/SkI7feCMfNI/AAAAAAAAEMM/LcRCNGOxT20/s72-c/SSMSKBShortcut.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-4793943187359104329</id><published>2009-06-24T06:28:00.000-07:00</published><updated>2009-06-24T06:38:10.429-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Warehouse Concepts'/><title type='text'>Comparison of Kimball and Inmon Methods</title><content type='html'>I have always been bugged and intrigued by Kimball and Inmon methods of Data Warehouse. Some questions that always used to bother me was:&lt;br /&gt;What is the Kimball Method?&lt;br /&gt;How is Inmon's Datawarehouse different from Kimball's?&lt;br /&gt;Which model am I working on? Strangely I did not knew this, except for the fact that it was a Dimensional Model.&lt;br /&gt;&lt;br /&gt;I could find a plethora of articles on web. But this one by Mary Breslin is the best. "&lt;a href="http://www.bi-bestpractices.com/view-articles/4768"&gt;Data Warehousing Battle of the Giants: Comparing the Basics of the Kimball and Inmon Models&lt;/a&gt;". The article explains both the methods, does a fair analysis and comparison and also suggest which approach is best in a given scenario.&lt;br /&gt;&lt;br /&gt;I could also find a link to the Presentation for the same article. &lt;a href="http://ioug.itconvergence.com/pls/htmldb/DWBISIG.download_my_file?p_file=2346"&gt;You can download the PDF here.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-4793943187359104329?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/4793943187359104329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/comparison-of-kimball-and-inmon-methods.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/4793943187359104329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/4793943187359104329'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/comparison-of-kimball-and-inmon-methods.html' title='Comparison of Kimball and Inmon Methods'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-7367758784918854359</id><published>2009-06-23T07:13:00.000-07:00</published><updated>2009-06-23T07:28:44.449-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Log Management'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Clear Log Space from Database</title><content type='html'>After large operations on the database the Log file may get filled and you may get a warning that there is no space to execute the SQL Command.&lt;br /&gt;&lt;br /&gt;Use the following command to clear the Log File.&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DBCC SHRINKFILE(LogFileName, 1)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can get the name of the Log File with the following command&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sp_helpdb databasename&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;DBCC SHRINKFILE is an interesting command and can also be used to shrink the Data files. &lt;a href="http://msdn.microsoft.com/en-us/library/ms189493.aspx"&gt;Read the following MSDN article to more about this command.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-7367758784918854359?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/7367758784918854359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/clear-log-space-from-database.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/7367758784918854359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/7367758784918854359'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/clear-log-space-from-database.html' title='Clear Log Space from Database'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-7105904212856958007</id><published>2009-06-23T06:46:00.000-07:00</published><updated>2009-06-23T06:58:35.527-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Log Management'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>View Log Size and Space Used</title><content type='html'>Use the following command to see the current log size (MB) and space used for all Databases.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DBCC SQLPERF(LOGSPACE)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The output will be as follows&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_L-vCyOExq_0/SkDfHwdJZEI/AAAAAAAAEGw/Jk6fu76Tey8/s1600-h/LogSize.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5350521681675379778" style="WIDTH: 395px; CURSOR: hand; HEIGHT: 95px" alt="" src="http://3.bp.blogspot.com/_L-vCyOExq_0/SkDfHwdJZEI/AAAAAAAAEGw/Jk6fu76Tey8/s400/LogSize.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-7105904212856958007?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/7105904212856958007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/view-log-size-and-space-used.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/7105904212856958007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/7105904212856958007'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/view-log-size-and-space-used.html' title='View Log Size and Space Used'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_L-vCyOExq_0/SkDfHwdJZEI/AAAAAAAAEGw/Jk6fu76Tey8/s72-c/LogSize.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-1935516077781730739</id><published>2009-06-23T06:25:00.000-07:00</published><updated>2009-06-23T06:37:26.460-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Partitioning'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Move a Partitioned Table to PRIMARY Filegroup</title><content type='html'>The following command will move the Partitioned Table to PRIMARY Filegroup. (The table will be un-partitioned then....)&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Drop the existing Non Clustered Indexes on the Table (if any)&lt;/li&gt;&lt;li&gt;Drop the Clustered Index on the table&lt;/li&gt;&lt;li&gt;Re-Create the Clustered Index on the table specify the Filegroup as PRIMARY.&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CREATE CLUSTERED INDEX IndexName ON TableName(ColName) ON &lt;strong&gt;[PRIMARY]&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Re-Create the Non Clustered Indexes (if any)&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/1098818986309590576-1935516077781730739?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/1935516077781730739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/move-partitioned-table-to-primary.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/1935516077781730739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/1935516077781730739'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/move-partitioned-table-to-primary.html' title='Move a Partitioned Table to PRIMARY Filegroup'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-7151077111961431328</id><published>2009-06-23T06:12:00.000-07:00</published><updated>2009-06-23T06:18:04.848-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Partitioning'/><title type='text'>Steps for Creating Partition</title><content type='html'>&lt;ul&gt;&lt;li&gt;Identify the List of Tables to be Partitioned&lt;/li&gt;&lt;li&gt;Determine Partitioning Keys in the Tables and re-align Indexes if required&lt;/li&gt;&lt;li&gt;Determine No. of Partition for each table or group of Tables&lt;/li&gt;&lt;li&gt;Create Filegroups (both on Database and Filesystem)&lt;/li&gt;&lt;li&gt;Create Partition Function&lt;/li&gt;&lt;li&gt;Create Partition Scheme&lt;/li&gt;&lt;li&gt;If new Tables, Create tables on Partition Scheme&lt;/li&gt;&lt;li&gt;If existing Tables, Create Indexes with DROP INDEX...WITH (MOVE TO...) syntax &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/1098818986309590576-7151077111961431328?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/7151077111961431328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/steps-for-creating-partition.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/7151077111961431328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/7151077111961431328'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/steps-for-creating-partition.html' title='Steps for Creating Partition'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-7109406974344706650</id><published>2009-06-23T05:30:00.001-07:00</published><updated>2009-06-23T05:33:41.961-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Identify your SQL Server Version</title><content type='html'>The following code can help you identify your SQL Server Version.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SERVERPROPERTY('ProductVersion'),&lt;br /&gt;SERVERPROPERTY('ProductLevel'),&lt;br /&gt;SERVERPROPERTY('Edition')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Well, more details on this can be found at the following &lt;a href="http://support.microsoft.com/kb/321185"&gt;KB321185&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-7109406974344706650?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/7109406974344706650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/identify-your-sql-server-version.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/7109406974344706650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/7109406974344706650'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/identify-your-sql-server-version.html' title='Identify your SQL Server Version'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-7034682689422778657</id><published>2009-06-23T04:09:00.000-07:00</published><updated>2009-06-23T05:25:17.922-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Partitioning'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Partition Alignment, LEFT or RIGHT?</title><content type='html'>While defining the Partition Range you need to specify if the Partition will be &lt;strong&gt;LEFT&lt;/strong&gt; aligned or &lt;strong&gt;RIGHT&lt;/strong&gt; aligned. Unless you have a good idea of this, it can be very confusing.&lt;br /&gt;Let us break the code..... :)&lt;br /&gt;&lt;br /&gt;A Partition Range defined with:&lt;br /&gt;LEFT means Upper boundary of the 1st Partition Range&lt;br /&gt;RIGHT means Lower boundary of the 2nd Partition Range&lt;br /&gt;&lt;br /&gt;Also, the no. of Partition Boundary is always 1 less than total no. of Partition Range. e.g. A Partition with 5 Range will have 4 boundary specified.&lt;br /&gt;&lt;br /&gt;Let us try and understand all with an example.&lt;br /&gt;A Partition defined with the LEFT as follows&lt;br /&gt;RANGE LEFT for VALUES ('20010101', '20020101', '20030101', '20040101')&lt;br /&gt;will have the following Partition Range&lt;br /&gt;&lt;= 20010101&lt;br /&gt;20010102 to 20020101&lt;br /&gt;20020102 to 20030101&lt;br /&gt;20030102 to 20040101&lt;br /&gt;&gt;= 20040102&lt;br /&gt;&lt;br /&gt;(Notice the first date for every Partition Range is 1 more than the Boundary value specified as the LEFT is for Upper Boundary)&lt;br /&gt;&lt;br /&gt;Similarly a Partition defined with the RIGHT&lt;br /&gt;RANGE RIGHT for VALUES ('20010101', '20020101', '20030101', '20040101')&lt;br /&gt;will have the following Partition Range&lt;br /&gt;&lt;20010101&lt;br /&gt;20010101 to 20011231&lt;br /&gt;20020101 to 20021231&lt;br /&gt;20030101 to 20031231&lt;br /&gt;&gt;= 20040101&lt;br /&gt;&lt;br /&gt;(Notice the first date for every Partition Range is the same as Boundary value specified as the RIGHT is for Lower Boundary)&lt;br /&gt;&lt;br /&gt;Thus, you see it is more simple to specify a Partition Range as RIGHT Aligned for date values.&lt;br /&gt;&lt;br /&gt;Specifying a Partition Boundary with a datetime data type has additional complexities. We will discuss this in a later post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-7034682689422778657?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/7034682689422778657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/partition-alignment-left-or-right.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/7034682689422778657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/7034682689422778657'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/partition-alignment-left-or-right.html' title='Partition Alignment, LEFT or RIGHT?'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-3302385945695503125</id><published>2009-06-23T01:06:00.000-07:00</published><updated>2009-06-23T04:07:48.926-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Types'/><category scheme='http://www.blogger.com/atom/ns#' term='Date and Time'/><title type='text'>New Date and Time data types in SQL Server 2008</title><content type='html'>We the developers have always struggled with storing either the Date or Time values in SQL Server, because earlier versions had only "datetime" and "smalldatetime" data type. So, even if the requirement is to store only date you will also have time part stored in the column with may be default values as 00:00:00. Same goes for time.&lt;br /&gt;&lt;br /&gt;With SQL Server 2008, Microsoft did a big favor to the developers by introducing 2 new data types "&lt;strong&gt;date&lt;/strong&gt;" and "&lt;strong&gt;time&lt;/strong&gt;" which allows us to do exactly that, "Store Date and Store Time". It looks much clean now.... isn't it.&lt;br /&gt;&lt;br /&gt;There are also 2 additional data types for date and time.&lt;br /&gt;&lt;strong&gt;datetime2&lt;/strong&gt;: This is an extension of earlier datetime with added precision and larger date range.&lt;br /&gt;&lt;strong&gt;datetimeoffset&lt;/strong&gt;: This has been included to store datetime along with timezone awareness.&lt;br /&gt;&lt;br /&gt;More information about new date and time data types in SQL Server 2008 can be found &lt;a href="http://msdn.microsoft.com/en-us/library/ms187752.aspx"&gt;here..&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-3302385945695503125?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/3302385945695503125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/new-date-and-time-data-types-in-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/3302385945695503125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/3302385945695503125'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/new-date-and-time-data-types-in-sql.html' title='New Date and Time data types in SQL Server 2008'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1098818986309590576.post-3275314565609878133</id><published>2009-06-22T21:36:00.000-07:00</published><updated>2009-06-22T22:25:44.434-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><title type='text'>SQL Server 2008 Overview</title><content type='html'>A very good presentation by Microsoft on the overview and new features on &lt;a href="http://www.microsoft.com/sql/2008/overviewdemo/"&gt;SQL Server 2008&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1098818986309590576-3275314565609878133?l=intelligent-bi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelligent-bi.blogspot.com/feeds/3275314565609878133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/sql-server-2008-overvew.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/3275314565609878133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098818986309590576/posts/default/3275314565609878133'/><link rel='alternate' type='text/html' href='http://intelligent-bi.blogspot.com/2009/06/sql-server-2008-overvew.html' title='SQL Server 2008 Overview'/><author><name>Rahul Agrawal</name><uri>http://www.blogger.com/profile/15055821261551580717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/rahulunlimited/Rn6MD0Tq7dI/AAAAAAAAAlE/xo29B8D6tUE/Rahulda1.jpg?imgmax=512'/></author><thr:total>0</thr:total></entry></feed>
