<?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-8152671487595650437</id><updated>2012-02-08T10:24:02.124-05:00</updated><category term='sql stripes 2010 ctp2'/><category term='database file explorer'/><category term='Clipboard'/><category term='log table viewer'/><category term='doccolabs'/><category term='NEWID()'/><category term='SQL Server GUID'/><category term='sql stripes'/><category term='smart SQL solutions'/><category term='2010'/><category term='docco labs'/><category term='UNIQUEIDENTIFIER'/><category term='cliptable'/><category term='sql server'/><category term='happy new year'/><category term='SQL Stripes RTM'/><category term='beta'/><category term='sql stripes 2010 released'/><category term='sql server 2008'/><category term='ctp'/><category term='challange'/><category term='sql stipres 2010'/><category term='SQL Server code refactoring'/><category term='Import data into SQL Server'/><category term='sql server quiz'/><category term='new website released'/><category term='sql stripes 2010 beta 2'/><category term='NEWSEQUENTIALID'/><category term='free copy'/><category term='bundle'/><title type='text'>Docco labs Blog</title><subtitle type='html'>SQL Server stuff &amp;amp; our product-related posts</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sqlstripes.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sqlstripes.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Adi Sapir</name><uri>https://profiles.google.com/113640921155002866710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ZFTOuFJD_Jg/AAAAAAAAAAI/AAAAAAAAFO8/0ph2fi6c7KA/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8152671487595650437.post-5849609034393596457</id><published>2012-02-02T07:53:00.000-05:00</published><updated>2012-02-02T08:51:19.101-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Import data into SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='cliptable'/><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><category scheme='http://www.blogger.com/atom/ns#' term='Clipboard'/><title type='text'>Get to know – ClipTable</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;a href="http://2.bp.blogspot.com/-fjm1MS-9-dU/TyqUwCu1WxI/AAAAAAAAFeI/f4tHzQsDU-E/s1600/ClipTable_Logo1_48x48.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-fjm1MS-9-dU/TyqUwCu1WxI/AAAAAAAAFeI/f4tHzQsDU-E/s1600/ClipTable_Logo1_48x48.jpg" /&gt;&lt;/a&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;&lt;span style="color: #0b5394;"&gt;ClipTable&lt;/span&gt;&lt;/b&gt;objective is quite simple –&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #ffe599; background-image: initial; background-origin: initial;"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;revolutionizethe way you’re importing data into your SQL Server.&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-w4RQ1QhVxlk/TyqGfmRzc8I/AAAAAAAAFdw/huubbDEVUTw/s1600/ClipTable_Blog_Drawing.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="264" src="http://3.bp.blogspot.com/-w4RQ1QhVxlk/TyqGfmRzc8I/AAAAAAAAFdw/huubbDEVUTw/s640/ClipTable_Blog_Drawing.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;b&gt;Why:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;I’ve beenserving as a DBA for quite some time, performing production as well as developmenttasks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;One of thethings I always found quite time-consuming was import data, any data, into aSQL table format for additional processing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;While italways works at the end, this type of task never became easier.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;u&gt;Here’s atypical scenario:&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="text-indent: -18pt;"&gt;One of my customers handsme an Excel file containing his user data (let’s say, 50,000 users).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-indent: -18pt;"&gt;I open the Excel, see thatit contains multiple sheets; one of them contains the data I need.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-indent: -18pt;"&gt;I choose the direct importoption, using SSIS.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-indent: -18pt;"&gt;Trying to use Excel asinput, getting an error and after a while, recalling that there’s an issue ofreading Excel files when 64-bit office is not installed (hence missing theJet/ODBC driver)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-indent: -18pt;"&gt;OK, giving up on the directExcel-&amp;gt;SQL path, going for the CSV-&amp;gt;SQL&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-indent: -18pt;"&gt;&amp;lt;&lt;span style="color: #38761d;"&gt;Taking a deep breath,making another cup of coffee&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-indent: -18pt;"&gt;Saving sheet as CSV&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-indent: -18pt;"&gt;Trying SSIS again withflat-file input&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-indent: -18pt;"&gt;Battle continues with:&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: 'Courier New'; text-indent: -18pt;"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 7pt;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR" style="text-indent: -18pt;"&gt;&lt;/span&gt;&lt;span style="text-indent: -18pt;"&gt;Finding the right row/col delimiters&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: 'Courier New'; text-indent: -18pt;"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 7pt;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR" style="text-indent: -18pt;"&gt;&lt;/span&gt;&lt;span style="text-indent: -18pt;"&gt;Finding the best data-types(number, dates, text etc…)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: 'Courier New'; text-indent: -18pt;"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 7pt;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR" style="text-indent: -18pt;"&gt;&lt;/span&gt;&lt;span style="text-indent: -18pt;"&gt;Finding the correct lengthfor each column&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: 'Courier New'; text-indent: -18pt;"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 7pt;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR" style="text-indent: -18pt;"&gt;&lt;/span&gt;&lt;span style="text-indent: -18pt;"&gt;Hoping there are no “textqualifiers” (because this means further work and rules out working with bcp)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style="text-indent: -18pt;"&gt;Importing… Finger crossed…&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-indent: -18pt;"&gt;Worked? Great&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-indent: -18pt;"&gt;Didn't&amp;nbsp;work? Got anannoying unreadable SSIS error? Go back and try again…&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 72.0pt; margin-right: 0cm; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level2 lfo2; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 72.0pt; margin-right: 0cm; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level2 lfo2; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 72.0pt; margin-right: 0cm; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level2 lfo2; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 72.0pt; margin-right: 0cm; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level2 lfo2; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;Pardon fornot drawing the above as a flowchart, but I hope you’re getting the point.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;This is justone example. I’ve personally had so many of them I could write an entire articleon the subject.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;I could - butinstead, I’ve spent my time simply writing a solution for this annoyingproblem.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;So, the incentivewas there, and my objective was to &lt;b&gt;eliminate the frustration on this process&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;b&gt;How:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;First, Iwanted to eliminate the need of having input drivers for any format (my exampleabove was Excel, but the table may come from PDF, Word, any webpage etc…)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;So thenatural solution was to use the clipboard. Instead of re-inventing the wheel,we let Windows do the work of translating anything to a readable text format.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;Next, weneed to “understand” the data;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;This iswhere ClipTable’s smart engine is being used – analyzing thereverse-engineering the live data to understand the correct fields, types, delimitersetc…&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;And last – Iwanted to quickly access any of the SQL Servers within my organizations (i.e.the “Destination”) and for that, I’ve implemented the Shared Repositorycomponent (which will be discussed on a different blog post)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;b&gt;TheResult:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;Taking thesame example from the 1&lt;sup&gt;st&lt;/sup&gt; paragraph, this could have taken way overan hour.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;By usingClipTable, I simply:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l1 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="text-indent: -18pt;"&gt;Copy the users data fromthe relevant sheet&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-indent: -18pt;"&gt;Letting ClipTable do thefield/type analysis and turn it into a SQL formatted table&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-indent: -18pt;"&gt;Choose my destination&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-indent: -18pt;"&gt;Done!&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l1 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l1 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l1 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;That’s it – nomore than &lt;b&gt;&lt;span style="color: #558ed5;"&gt;2 minutes&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #558ed5;"&gt; &lt;/span&gt;andall done.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;If you wantto see more, go to our website (&lt;a href="http://doccolabs.com/"&gt;doccolabs.com&lt;/a&gt;) and get it – it’s totally free.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;Hope wemanaged to help you save at least an hour on your next import task.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;Let us know &lt;span style="font-family: Wingdings;"&gt;J&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="font-family: Wingdings;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="font-family: Wingdings;"&gt;&lt;br /&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/8152671487595650437-5849609034393596457?l=sqlstripes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlstripes.blogspot.com/feeds/5849609034393596457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlstripes.blogspot.com/2012/02/get-to-know-cliptable.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/5849609034393596457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/5849609034393596457'/><link rel='alternate' type='text/html' href='http://sqlstripes.blogspot.com/2012/02/get-to-know-cliptable.html' title='Get to know – ClipTable'/><author><name>Adi Sapir</name><uri>https://profiles.google.com/113640921155002866710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ZFTOuFJD_Jg/AAAAAAAAAAI/AAAAAAAAFO8/0ph2fi6c7KA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-fjm1MS-9-dU/TyqUwCu1WxI/AAAAAAAAFeI/f4tHzQsDU-E/s72-c/ClipTable_Logo1_48x48.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8152671487595650437.post-2626150391970077188</id><published>2011-12-01T09:53:00.001-05:00</published><updated>2011-12-01T10:20:53.039-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cliptable'/><category scheme='http://www.blogger.com/atom/ns#' term='database file explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><category scheme='http://www.blogger.com/atom/ns#' term='smart SQL solutions'/><category scheme='http://www.blogger.com/atom/ns#' term='sql stripes'/><category scheme='http://www.blogger.com/atom/ns#' term='docco labs'/><category scheme='http://www.blogger.com/atom/ns#' term='bundle'/><category scheme='http://www.blogger.com/atom/ns#' term='doccolabs'/><category scheme='http://www.blogger.com/atom/ns#' term='log table viewer'/><title type='text'>Enjoy a bundle of Smart SQL Solutions</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-OtXXTkrFyK8/TteU8WUkz3I/AAAAAAAAFcQ/4ssqLDBXokY/s1600/BundleLogo1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="270" src="http://2.bp.blogspot.com/-OtXXTkrFyK8/TteU8WUkz3I/AAAAAAAAFcQ/4ssqLDBXokY/s320/BundleLogo1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I'm super excited to share our new product bundle, which is constantly growing.&lt;br /&gt;&lt;b&gt;SQL Stripes is now part of a bigger family -- &lt;span style="font-size: large;"&gt;&amp;nbsp;The "&lt;a href="http://www.doccolabs.com/" target="_blank"&gt;Docco Labs&lt;/a&gt;" family&lt;/span&gt;!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The objective is always the same - to provide smart SQL solutions, making DBA's life easier and more productive.&lt;br /&gt;&lt;br /&gt;Here's a quick recap for each product; (I will post more detailed looking into each and every one of them in the near future):&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;ClipTable&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Make data import as easy as possible: Copy the desired data into your clipboard (yes, I mean Ctrl-C), and in a few seconds - have this data available in an SQL Table!&lt;/li&gt;&lt;li&gt;No more dealing with input drivers, delimiter settings, field size and type headaches.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Database File Explorer&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Explore your Database files/filegroups size &amp;amp; table location in a very easy to understand UI&lt;/li&gt;&lt;li&gt;The hierarchy view will help you quickly understand what's stored where&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Log Table Viewer&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;This is a complete SQL logging solutions - just use the server side procedure to write anything to the log, and then look at it with an amazing viewer, containing many kind of views, filters and more&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;SQL Stripes&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Our 1st product, which is a complete monitor and control solutions for multiple server environment&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;The "Glue"&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Although the 3 new products are seperate, there all use a "Shared Repository" (see screenshot), which means you only have to manage one server/group list, and quickly use any of the servers by any of the products&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-QugDlmRIkaw/TteaA9StRyI/AAAAAAAAFcY/NcUlAj45ihg/s1600/SharedRepository.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-QugDlmRIkaw/TteaA9StRyI/AAAAAAAAFcY/NcUlAj45ihg/s320/SharedRepository.jpg" width="266" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The new products are still in beta stage, this means they are &lt;b&gt;free &lt;/b&gt;to use!&lt;/div&gt;&lt;div&gt;Give it a shot and tell us what you think -&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.doccolabs.com/"&gt;www.doccolabs.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cheers :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8152671487595650437-2626150391970077188?l=sqlstripes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlstripes.blogspot.com/feeds/2626150391970077188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlstripes.blogspot.com/2011/12/enjoy-bundle-of-smart-sql-solutions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/2626150391970077188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/2626150391970077188'/><link rel='alternate' type='text/html' href='http://sqlstripes.blogspot.com/2011/12/enjoy-bundle-of-smart-sql-solutions.html' title='Enjoy a bundle of Smart SQL Solutions'/><author><name>Adi Sapir</name><uri>https://profiles.google.com/113640921155002866710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ZFTOuFJD_Jg/AAAAAAAAAAI/AAAAAAAAFO8/0ph2fi6c7KA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-OtXXTkrFyK8/TteU8WUkz3I/AAAAAAAAFcQ/4ssqLDBXokY/s72-c/BundleLogo1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8152671487595650437.post-5478301335764898143</id><published>2011-11-22T11:02:00.001-05:00</published><updated>2012-01-17T14:39:45.710-05:00</updated><title type='text'>Doccolabs.com is up!</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-26XJoBriNFk/TsvKXEn7R7I/AAAAAAAAFcI/iNUUhw_U7lA/s1600/logo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="96" src="http://3.bp.blogspot.com/-26XJoBriNFk/TsvKXEn7R7I/AAAAAAAAFcI/iNUUhw_U7lA/s320/logo.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;There are various great news coming in today!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;First, We're happy to announce that &lt;a href="http://www.doccolabs.com/"&gt;www.doccolabs.com&lt;/a&gt; is up and running.&lt;br /&gt;Second, We're launching two new products (currently @ beta stages)&lt;br /&gt;These products are the kickoff launch of our new path of extending our offered solutions.&lt;br /&gt;&lt;br /&gt;So, what are those new products, you ask?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ClipTable --&amp;nbsp;&lt;/b&gt;&lt;br /&gt;A brand new way to import &lt;b&gt;any&lt;/b&gt;&amp;nbsp;data into SQL tables.&lt;br /&gt;If you find yourself dealing with various SSMS wizards, trying to import those tricky Excel/CSV and other input files - ClipTable may be the best solution for you!&lt;br /&gt;Out smart parsing engine reads any data you copy into your clipboard, and creates a table out of it.&lt;br /&gt;Give it a shot - the beta is totally free!&lt;br /&gt;&lt;a href="http://www.doccolabs.com/products.html#ClipTable"&gt;http://www.doccolabs.com/products.html#ClipTable&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Database File Explorer --&lt;/b&gt;&lt;br /&gt;Our production databases usually have many files and filegroups.&lt;br /&gt;Analyzing the locations, space&amp;nbsp;consumption, hard-disk usage and more is usually a difficult task.&lt;br /&gt;Out of the box Management Studio (SSMS) view is just a simple, unsorted, list of all files and filegroups.&lt;br /&gt;So we usually find ourselves building various sys.* queries, into Excel and analyzing from there.&lt;br /&gt;Well, no more!&lt;br /&gt;We've created the perfect tool for such scenario, that gives you an&amp;nbsp;extremely&amp;nbsp;easy interface which helps you quickly understands the drive-space-file map each database is using.&lt;br /&gt;&lt;br /&gt;Again, the beta is totally free, you're invited to give it a shot.&lt;br /&gt;&lt;a href="http://www.doccolabs.com/products.html#DatabaseFileExplorer"&gt;http://www.doccolabs.com/products.html#DatabaseFileExplorer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8152671487595650437-5478301335764898143?l=sqlstripes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlstripes.blogspot.com/feeds/5478301335764898143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlstripes.blogspot.com/2011/11/doccolabscom-is-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/5478301335764898143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/5478301335764898143'/><link rel='alternate' type='text/html' href='http://sqlstripes.blogspot.com/2011/11/doccolabscom-is-up.html' title='Doccolabs.com is up!'/><author><name>Adi Sapir</name><uri>https://profiles.google.com/113640921155002866710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ZFTOuFJD_Jg/AAAAAAAAAAI/AAAAAAAAFO8/0ph2fi6c7KA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-26XJoBriNFk/TsvKXEn7R7I/AAAAAAAAFcI/iNUUhw_U7lA/s72-c/logo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8152671487595650437.post-7550367128924230851</id><published>2011-09-06T05:08:00.000-04:00</published><updated>2011-09-06T05:14:18.641-04:00</updated><title type='text'>Continuous Integration on SQL Server</title><content type='html'>&lt;br /&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;Yesterday, Igave a presentation at the “&lt;b&gt;I&lt;/b&gt;sraeli &lt;b&gt;S&lt;/b&gt;QL Server &lt;b&gt;U&lt;/b&gt;ser &lt;b&gt;G&lt;/b&gt;roup”(Part of PASS), discussing the &lt;b&gt;importance of continuous integration, automaticbuild, and the approach of SQL Code handling in general&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;Lecturingthere was a pleasure, the audience was great and I’ve got many responses during,and after the presentation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;Presentationaside; what puzzles me the most, is the fact that many SQL Developers don’ttreat their code the way other developers (c#, java etc...) do&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;SQL Code isnot just ad-hoc scripts; the code is often part of a big enterprise system -&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;It has toconnect altogether, to compile &amp;amp; build, to use the right references and tobe clean and readable.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;Keepingthese guidelines, even before you implement Automatic builds / CI, help you bein control when a team of SQL developers rapidly write new code and modifyexisting one.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;Anotherthing worth mentioning is – Automatic deployment in Visual Studio is by allmeans, &lt;b&gt;&lt;u&gt;not intended&lt;/u&gt;&lt;/b&gt; for production deployment.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;The mainconcept is to keep an updated, high-quality &lt;b&gt;development&lt;/b&gt; (and maybe &lt;b&gt;QA&lt;/b&gt;)environments with the latest code. This will help us:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;Provide a ‘Latest’ databaseversion for integration with the other dev teams&lt;/li&gt;&lt;li&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;Ensure code quality andstability&lt;/li&gt;&lt;/ul&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;div class="MsoListParagraphCxSpLast" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;Forproduction, use whatever you like (diff scripts, 3&lt;sup&gt;rd&lt;/sup&gt; parties…)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-C_5ltiFf1Ug/TmXhxHqxXkI/AAAAAAAAFbQ/sr6MlzPCNfY/s1600/bad_code.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="211" src="http://2.bp.blogspot.com/-C_5ltiFf1Ug/TmXhxHqxXkI/AAAAAAAAFbQ/sr6MlzPCNfY/s400/bad_code.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;"Bad Code"&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;Last but notleast – I sensed some excitement around controlling the presentation with mytablet. I’m always happy to see that I’m not the only gadget freak in the room &lt;span style="font-family: Wingdings;"&gt;J&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;So, thereare many solutions out there. I’ve used Unified Remote (for Android) along withthe server-side installation&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;Control canbe done either through Wi-Fi or BT&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;get it here:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://chart.apis.google.com/chart?cht=qr&amp;amp;chs=120x120&amp;amp;chl=http%3A%2F%2Fwww.unifiedremote.com%2F" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://chart.apis.google.com/chart?cht=qr&amp;amp;chs=120x120&amp;amp;chl=http%3A%2F%2Fwww.unifiedremote.com%2F" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8152671487595650437-7550367128924230851?l=sqlstripes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlstripes.blogspot.com/feeds/7550367128924230851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlstripes.blogspot.com/2011/09/continuous-integration-on-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/7550367128924230851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/7550367128924230851'/><link rel='alternate' type='text/html' href='http://sqlstripes.blogspot.com/2011/09/continuous-integration-on-sql-server.html' title='Continuous Integration on SQL Server'/><author><name>Adi Sapir</name><uri>https://profiles.google.com/113640921155002866710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ZFTOuFJD_Jg/AAAAAAAAAAI/AAAAAAAAFO8/0ph2fi6c7KA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-C_5ltiFf1Ug/TmXhxHqxXkI/AAAAAAAAFbQ/sr6MlzPCNfY/s72-c/bad_code.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8152671487595650437.post-7880752260124393316</id><published>2011-08-30T05:36:00.000-04:00</published><updated>2011-08-30T05:36:03.892-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server code refactoring'/><category scheme='http://www.blogger.com/atom/ns#' term='sql stripes'/><title type='text'>SQL Code refactoring</title><content type='html'>&lt;br /&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;Code refactoring (&lt;span style="color: #31859c;"&gt;wiki&lt;/span&gt;: &lt;span class="apple-converted-space"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Arial, sans-serif; font-size: 10pt; line-height: 115%;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Arial, sans-serif; font-size: 10pt; line-height: 115%;"&gt;"&lt;i&gt;disciplined technique for restructuring an existing body of code, altering its internal structure &lt;u&gt;without changing its external behavior&lt;/u&gt;&lt;/i&gt;"&lt;/span&gt;) is a very common method of self-improving our existing code.&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;Doing this is extremely important and there are many resources, articles and forums discussing this topic.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;Our SQL Code (procedures, functions etc…) is no different than any other regular code&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;And yet, we don’t see this common practice popular enough among SQL Developers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;It is important to distinct between &lt;b&gt;query refactoring&lt;/b&gt;, which would usually aim at reformatting the query to better readability and in some cases – better performance, and actual &lt;b&gt;code refactoring&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;Frequently refactoring your code helps you make sure you (and other developers in your team) don’t get lost in long, spaghetti, unstructured code as your project grows.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;In addition, you’ll be surprise of how much potential bugs you may find, fix and prevent during this process.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;So, here are the common items you should be aiming towards:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;-&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;&lt;b&gt;Renaming &lt;/b&gt;(at least the internals that are not exposed to the outside application)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 72.0pt; margin-right: 0cm; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;There are many tools, including Visual Studio, which will help you detect any rename any references to the renamed object. I strongly advise to use those&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;-&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;&lt;b&gt;Keeping your procedures and functions small. &lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 72.0pt; margin-right: 0cm; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;I personally saw too many of those 1000+ lines procedures. This is always a bad practice&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 72.0pt; margin-right: 0cm; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;And by the way, the solution is not to split a long procedure into [n] pieces &lt;span style="font-family: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;"&gt;J&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;-&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;&lt;b&gt;Keeping the same structure/pattern&lt;/b&gt;. I’m referring to formatting, variable declaration, naming convention and more&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;-&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;&lt;b&gt;Using schema prefix for different DALs.&lt;/b&gt; (this is a trick we’re using to divide the code into sub-systems) &amp;nbsp;For example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 72.0pt; margin-right: 0cm; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;Common.BatchDelete()&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 72.0pt; margin-right: 0cm; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;CallsDAL.StartTraceCall()&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 72.0pt; margin-right: 0cm; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;Etc…&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;Last but not least – during and after refactoring, always make sure that your project:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;-&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;Compiles and builds with no errors&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;-&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;Deploys successfully&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;-&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;Passes all relevant unit-tests (to make sure backward compatibility and logic are not harmed)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&amp;nbsp;This is another big topic which I’ll cover in the near future.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ppNf0HkUKy4/TlyuZ60BkWI/AAAAAAAAFbI/bX1-CvsQEqU/s1600/refactor_blog.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="261" src="http://4.bp.blogspot.com/-ppNf0HkUKy4/TlyuZ60BkWI/AAAAAAAAFbI/bX1-CvsQEqU/s400/refactor_blog.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8152671487595650437-7880752260124393316?l=sqlstripes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlstripes.blogspot.com/feeds/7880752260124393316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlstripes.blogspot.com/2011/08/sql-code-refactoring.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/7880752260124393316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/7880752260124393316'/><link rel='alternate' type='text/html' href='http://sqlstripes.blogspot.com/2011/08/sql-code-refactoring.html' title='SQL Code refactoring'/><author><name>Adi Sapir</name><uri>https://profiles.google.com/113640921155002866710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ZFTOuFJD_Jg/AAAAAAAAAAI/AAAAAAAAFO8/0ph2fi6c7KA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-ppNf0HkUKy4/TlyuZ60BkWI/AAAAAAAAFbI/bX1-CvsQEqU/s72-c/refactor_blog.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8152671487595650437.post-2437067086561691760</id><published>2010-10-01T02:25:00.000-04:00</published><updated>2010-10-01T02:25:12.315-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql server quiz'/><category scheme='http://www.blogger.com/atom/ns#' term='challange'/><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><category scheme='http://www.blogger.com/atom/ns#' term='free copy'/><category scheme='http://www.blogger.com/atom/ns#' term='sql stripes'/><title type='text'>Win a free copy of SQL Stripes on SQL Server Quiz 2010!</title><content type='html'>We are proud to be one of the prize&amp;nbsp;sponsors&amp;nbsp;for a great event: Beyond Relational's SQL Server Quiz 2010!&lt;br /&gt;This major TSQL&amp;nbsp;challenge&amp;nbsp;will take place during This month (October)&lt;br /&gt;&lt;br /&gt;One of the winners will win a SQL Stripes Enterprise license!&lt;br /&gt;&lt;br /&gt;For more details - visit this link:&lt;br /&gt;&lt;a href="http://beyondrelational.com/quiz/sqlserver/general/2010/default.aspx"&gt;http://beyondrelational.com/quiz/sqlserver/general/2010/default.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8152671487595650437-2437067086561691760?l=sqlstripes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlstripes.blogspot.com/feeds/2437067086561691760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlstripes.blogspot.com/2010/09/win-free-copy-of-sql-stripes-on-sql.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/2437067086561691760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/2437067086561691760'/><link rel='alternate' type='text/html' href='http://sqlstripes.blogspot.com/2010/09/win-free-copy-of-sql-stripes-on-sql.html' title='Win a free copy of SQL Stripes on SQL Server Quiz 2010!'/><author><name>Adi Sapir</name><uri>https://profiles.google.com/113640921155002866710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ZFTOuFJD_Jg/AAAAAAAAAAI/AAAAAAAAFO8/0ph2fi6c7KA/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8152671487595650437.post-58920919713653667</id><published>2010-05-19T13:05:00.000-04:00</published><updated>2010-05-19T13:05:51.177-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Stripes RTM'/><category scheme='http://www.blogger.com/atom/ns#' term='2010'/><category scheme='http://www.blogger.com/atom/ns#' term='sql stripes 2010 released'/><title type='text'>SQL Stripes 2010 is out!</title><content type='html'>We have some exciting news - SQL Stripes 2010 is officially out!&lt;br /&gt;The beta phase is over, we've fixed all known bugs, added some new features and tweaks and ready to go.&lt;br /&gt;&lt;br /&gt;SQL Stripes is now, more than ever, a complete solution for being in control over multiple SQL Servers.&lt;br /&gt;The monitoring capabilities are stronger, the quick analysis options are more robust and the notifications are easy to understand.&lt;br /&gt;&lt;br /&gt;Well, what are you waiting for? go grab the new version @&amp;nbsp;&lt;a href="http://www.sqlstripes.com/"&gt;www.sqlstripes.com&lt;/a&gt;&lt;br /&gt;For currently registered users - this upgrade is FOR FREE!&lt;br /&gt;For new users - we've extended the trial period to 30 days. Which means you'll have one month to play with the stripes. There are NO LIMITATIONS whatsoever to the trial version.&lt;br /&gt;&lt;br /&gt;I'd like to thank all people who contributed to this version, helping out test the various beta versions and suggesting new features.&lt;br /&gt;&lt;br /&gt;On our side - the work never stops, we're already started working on the next version, as well as a set of new and exciting products which will be introduced in the near future!&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Adi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8152671487595650437-58920919713653667?l=sqlstripes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlstripes.blogspot.com/feeds/58920919713653667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlstripes.blogspot.com/2010/05/sql-stripes-2010-is-out.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/58920919713653667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/58920919713653667'/><link rel='alternate' type='text/html' href='http://sqlstripes.blogspot.com/2010/05/sql-stripes-2010-is-out.html' title='SQL Stripes 2010 is out!'/><author><name>Adi Sapir</name><uri>https://profiles.google.com/113640921155002866710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ZFTOuFJD_Jg/AAAAAAAAAAI/AAAAAAAAFO8/0ph2fi6c7KA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8152671487595650437.post-3424723692037330744</id><published>2010-03-02T11:41:00.000-05:00</published><updated>2010-03-02T11:41:04.103-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NEWID()'/><category scheme='http://www.blogger.com/atom/ns#' term='UNIQUEIDENTIFIER'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server GUID'/><category scheme='http://www.blogger.com/atom/ns#' term='NEWSEQUENTIALID'/><title type='text'>Using GUID (Unique Identifiers) as table main keys</title><content type='html'>&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 16.0pt; line-height: 115%;"&gt;Using What?!&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Unique Identifier (which from now on will be referred to as ‘guid’) is an algorithm-based 32-byte hex string (128 bit integer) which is supposed to generate completely unique values.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;I’d like to compare the chances of two identical generated guids to the chance earth will be destroyed by a meteor in the next five minutes. Now if that happens – you won’t be here to prove me wrong! &lt;span style="font-family: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;"&gt;&lt;span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;"&gt;J&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;"&gt;&lt;span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Anyway, here’s one:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;i&gt;5B5D6F63-1FF0-4574-9B77-BD77D716FD66. &lt;/i&gt;It is probably unique and there’s no other like it in the world. (See more here - &lt;a href="http://en.wikipedia.org/wiki/Globally_Unique_Identifier"&gt;http://en.wikipedia.org/wiki/Globally_Unique_Identifier&lt;/a&gt;)&lt;/div&gt;&lt;div class="MsoNormal"&gt;With today’s increasing demand for fully-distributed systems, GUID usage is increasing accordingly, as it allows managing two disconnected databases which later on needs to merge, knowing that each row on desired shared tables is unique.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Here’s a simple example – &lt;/div&gt;&lt;div class="MsoNormal"&gt;Consider a very large company with many branches across the world.&lt;br /&gt;Each branch has local users, and there’s a sync process which merges the entire users list.&lt;/div&gt;&lt;div class="MsoNormal"&gt;The ‘traditional’ way is to maintain a range of numbers for each branch, use some prefix on the username to maintain uniqueness, or just make a combined key of UserId+Another column contains the branch id. &lt;br /&gt;This is a classic sample for using GUID instead – make the UserId column guid and problem is solved.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 16.0pt; line-height: 115%;"&gt;Sounds like fun! Any reason why I shouldn’t use it?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Well, yes. Before you get all excited and change your “int’s” and “bigint’s” to guid, consider the following:&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;span style="mso-list: Ignore;"&gt;-&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;Guid column takes 16 bytes, which is double than Bigint. This means that index on the column will also take more space&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;span style="mso-list: Ignore;"&gt;-&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;Index Fragmentation is an issue and it is most likely to happen.&lt;br /&gt;(See more about it on the Tips section below)&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 16.0pt; line-height: 115%;"&gt;Some Best-Practices Tips:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 16.0pt; line-height: 115%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #31849b; font-size: 12.0pt; line-height: 115%; mso-themecolor: accent5; mso-themeshade: 191;"&gt;[Tip #1]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;The first, and probably the most important tip is to &lt;b&gt;avoid using CLUSTERED INDEX&lt;/b&gt; &lt;b&gt;on guids&lt;/b&gt;. &lt;br /&gt;This is because the guid values are random – a physical sort will cause the table to be sorted on every insert.&lt;br /&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;Still, in many cases you’d want to avoid having HEAP tables, which means another ID (probably an internal identity) has to be used.&lt;/div&gt;&lt;div class="MsoNormal"&gt;When possible - use the &lt;b&gt;NEWSEQUENTIALID&lt;/b&gt; function. This will create unique guids on a table but will make sure the new generated guid is greater than the last. (It is still globally unique as long as the machine has its own MAC address).&lt;/div&gt;&lt;div class="MsoNormal"&gt;Let’s see a quick sample of the differences between the NEWID() function and the NEWSEQUENTIALID default value:&lt;/div&gt;&lt;div class="MsoNormal"&gt;Let’s create two tables; each uses one of the techniques:&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;-- Creating two tables:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;IF&lt;/span&gt; &lt;span style="color: magenta;"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'UsersNewId'&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;IS&lt;/span&gt; &lt;span style="color: grey;"&gt;NULL&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;BEGIN&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;CREATE&lt;/span&gt; &lt;span style="color: blue;"&gt;TABLE&lt;/span&gt; UsersNewId&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;UserId &lt;span style="color: blue;"&gt;UNIQUEIDENTIFIER&lt;/span&gt; &lt;span style="color: blue;"&gt;PRIMARY&lt;/span&gt; &lt;span style="color: blue;"&gt;KEY&lt;/span&gt; &lt;span style="color: blue;"&gt;NONCLUSTERED&lt;/span&gt; &lt;span style="color: blue;"&gt;DEFAULT&lt;/span&gt; &lt;span style="color: magenta;"&gt;NEWID&lt;/span&gt;&lt;span style="color: grey;"&gt;(),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;UserName &lt;span style="color: blue;"&gt;VarChar&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;255&lt;span style="color: grey;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;IF&lt;/span&gt; &lt;span style="color: magenta;"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'UsersNewSeqId'&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;IS&lt;/span&gt; &lt;span style="color: grey;"&gt;NULL&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;BEGIN&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;CREATE&lt;/span&gt; &lt;span style="color: blue;"&gt;TABLE&lt;/span&gt; UsersNewSeqId&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;UserId &lt;span style="color: blue;"&gt;UNIQUEIDENTIFIER&lt;/span&gt; &lt;span style="color: blue;"&gt;PRIMARY&lt;/span&gt; &lt;span style="color: blue;"&gt;KEY&lt;/span&gt; &lt;span style="color: blue;"&gt;NONCLUSTERED&lt;/span&gt; &lt;span style="color: blue;"&gt;DEFAULT&lt;/span&gt; &lt;span style="color: magenta;"&gt;NEWSEQUENTIALID&lt;/span&gt;&lt;span style="color: grey;"&gt;(),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;UserName &lt;span style="color: blue;"&gt;VarChar&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;255&lt;span style="color: grey;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;-- Now, let's fill the tables with some data&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;-- Note: I'm using SQL2008+ syntax here; On SQL2005 separate the insert statements&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;INSERT&lt;/span&gt; &lt;span style="color: blue;"&gt;INTO&lt;/span&gt; UsersNewId&lt;span style="color: grey;"&gt;(&lt;/span&gt;UserName&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'User1'&lt;/span&gt;&lt;span style="color: grey;"&gt;),(&lt;/span&gt;&lt;span style="color: red;"&gt;'User2'&lt;/span&gt;&lt;span style="color: grey;"&gt;),(&lt;/span&gt;&lt;span style="color: red;"&gt;'User3'&lt;/span&gt;&lt;span style="color: grey;"&gt;),(&lt;/span&gt;&lt;span style="color: red;"&gt;'User4'&lt;/span&gt;&lt;span style="color: grey;"&gt;),(&lt;/span&gt;&lt;span style="color: red;"&gt;'User5'&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;INSERT&lt;/span&gt; &lt;span style="color: blue;"&gt;INTO&lt;/span&gt; UsersNewSeqId&lt;span style="color: grey;"&gt;(&lt;/span&gt;UserName&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'User1'&lt;/span&gt;&lt;span style="color: grey;"&gt;),(&lt;/span&gt;&lt;span style="color: red;"&gt;'User2'&lt;/span&gt;&lt;span style="color: grey;"&gt;),(&lt;/span&gt;&lt;span style="color: red;"&gt;'User3'&lt;/span&gt;&lt;span style="color: grey;"&gt;),(&lt;/span&gt;&lt;span style="color: red;"&gt;'User4'&lt;/span&gt;&lt;span style="color: grey;"&gt;),(&lt;/span&gt;&lt;span style="color: red;"&gt;'User5'&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;-- Now, let's see the tables&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT&lt;/span&gt; &lt;span style="color: grey;"&gt;*&lt;/span&gt; &lt;span style="color: blue;"&gt;FROM&lt;/span&gt; &lt;b&gt;UsersNewId&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT&lt;/span&gt; &lt;span style="color: grey;"&gt;*&lt;/span&gt; &lt;span style="color: blue;"&gt;FROM&lt;/span&gt; &lt;b&gt;UsersNewSeqId&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-no-proof: yes;"&gt;The results:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/_9mlGNENx-3E/S40-J-auG9I/AAAAAAAAERw/ks5sOcdazLg/s1600-h/GuidVsSeqGuid.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_9mlGNENx-3E/S40-J-auG9I/AAAAAAAAERw/ks5sOcdazLg/s320/GuidVsSeqGuid.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-no-proof: yes;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-no-proof: yes;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-no-proof: yes;"&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"/&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"/&gt;   &lt;v:f eqn="sum @0 1 0"/&gt;   &lt;v:f eqn="sum 0 0 @1"/&gt;   &lt;v:f eqn="prod @2 1 2"/&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"/&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"/&gt;   &lt;v:f eqn="sum @0 0 1"/&gt;   &lt;v:f eqn="prod @6 1 2"/&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"/&gt;   &lt;v:f eqn="sum @8 21600 0"/&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"/&gt;   &lt;v:f eqn="sum @10 21600 0"/&gt;  &lt;/v:formulas&gt;  &lt;v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/&gt;  &lt;o:lock v:ext="edit" aspectratio="t"/&gt; &lt;/v:shapetype&gt;&lt;v:shape id="Picture_x0020_0" o:spid="_x0000_i1025" type="#_x0000_t75" alt="GuidVsSeqGuid.jpg" style='width:254.25pt;height:209.25pt;visibility:visible; mso-wrap-style:square'&gt;  &lt;v:imagedata src="file:///C:\Users\ADI~1.SAP\AppData\Local\Temp\msohtmlclip1\01\clip_image001.jpg"  o:title="GuidVsSeqGuid"/&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-no-proof: yes;"&gt;Note the guid on the 2&lt;sup&gt;nd&lt;/sup&gt; table looks the same on first sight, but actually it is not. Those are increasing values that still maintain uniqueness.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-no-proof: yes;"&gt;This is obviously much better for index fragmentation of any time!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-no-proof: yes;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #31849b; font-size: 12.0pt; line-height: 115%; mso-themecolor: accent5; mso-themeshade: 191;"&gt;[Tip #2]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;Related to the above tip – as a DBA&lt;b&gt;, try to keep the guid generation on your side&lt;/b&gt;! &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;othewise&lt;br /&gt;If the guid’s are generated by a different layer in your application (DAL or so), the guids cannot be sequential. &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Besides, try to think as if the guid’s are actually a new version of your INT identities; You wouldn’t let anyone control the auto-increase now would you?&lt;br /&gt;This is practically the same.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="" name="OLE_LINK2"&gt;&lt;/a&gt;&lt;a href="" name="OLE_LINK1"&gt;&lt;span style="mso-bookmark: OLE_LINK2;"&gt;&lt;span style="color: #31849b; font-size: 12.0pt; line-height: 115%; mso-themecolor: accent5; mso-themeshade: 191;"&gt;[Tip #3]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="mso-bookmark: OLE_LINK2;"&gt;&lt;/span&gt;&lt;span style="mso-bookmark: OLE_LINK1;"&gt;&lt;/span&gt;  &lt;div class="MsoNormal"&gt;In some cases you may want to consider surrogate keys, which will be used as the foreign key between the tables. To use the sample at th&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;e beginning of this article – each user will have its own GUID, but with an additional “UserInternalId” column (int) which will be the one to connect the main table to all the rest.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #31849b; font-size: 12.0pt; line-height: 115%; mso-themecolor: accent5; mso-themeshade: 191;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;[Tip #4]&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Don’t use Guid if you don’t have to! When a table needs an ID which does not have to be unique across the enterprise, keep using the regular numeric id.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 16.0pt; line-height: 115%;"&gt;Final Words:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Guids are great and simple solution to maintain uniqueness across the enterprise. However, don’t overuse it when not required as it might hurt your databases performances.&lt;/div&gt;&lt;div class="MsoNormal"&gt;This is a very wide subject. I was trying to limit myself to a blog-post size; I might write a follow-up article about this subject&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8152671487595650437-3424723692037330744?l=sqlstripes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlstripes.blogspot.com/feeds/3424723692037330744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlstripes.blogspot.com/2010/03/using-guid-unique-identifiers-as-table.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/3424723692037330744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/3424723692037330744'/><link rel='alternate' type='text/html' href='http://sqlstripes.blogspot.com/2010/03/using-guid-unique-identifiers-as-table.html' title='Using GUID (Unique Identifiers) as table main keys'/><author><name>Adi Sapir</name><uri>https://profiles.google.com/113640921155002866710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ZFTOuFJD_Jg/AAAAAAAAAAI/AAAAAAAAFO8/0ph2fi6c7KA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_9mlGNENx-3E/S40-J-auG9I/AAAAAAAAERw/ks5sOcdazLg/s72-c/GuidVsSeqGuid.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8152671487595650437.post-4212966470244583103</id><published>2010-02-11T10:09:00.000-05:00</published><updated>2010-02-11T10:09:04.784-05:00</updated><title type='text'>Off-Topic: Few words about Google Buzz</title><content type='html'>I've posted a short article about the new (as for today) Google Buzz.&lt;br /&gt;Read more here:&amp;nbsp;&lt;a href="http://adisapir.blogspot.com/2010/02/buzz-yay-or-nay.html"&gt;http://adisapir.blogspot.com/2010/02/buzz-yay-or-nay.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Oh, and a quick Stripes update - the non-beta version is near. Except some news soon!&lt;br /&gt;&lt;br /&gt;Cheers&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8152671487595650437-4212966470244583103?l=sqlstripes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlstripes.blogspot.com/feeds/4212966470244583103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlstripes.blogspot.com/2010/02/off-topic-few-words-about-google-buzz.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/4212966470244583103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/4212966470244583103'/><link rel='alternate' type='text/html' href='http://sqlstripes.blogspot.com/2010/02/off-topic-few-words-about-google-buzz.html' title='Off-Topic: Few words about Google Buzz'/><author><name>Adi Sapir</name><uri>https://profiles.google.com/113640921155002866710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ZFTOuFJD_Jg/AAAAAAAAAAI/AAAAAAAAFO8/0ph2fi6c7KA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8152671487595650437.post-3097743740424681574</id><published>2010-01-18T07:44:00.000-05:00</published><updated>2010-01-18T07:44:52.546-05:00</updated><title type='text'>The importance of easy access to your SQL Servers</title><content type='html'>&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;div class="MsoNormal"&gt;Sometimes, when access to a machine is not intuitive, admins tend to initiate such a connection “only when required”.&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Problem is – the “when” is sometimes &lt;b&gt;undefined&lt;/b&gt;. &lt;br /&gt;I see a lot of DBA’s having their “morning routine”, where they’ll connect to each of their servers (either through Remote Desktop, or through Management Studio for SQL-Only checkups) and see that they’re working, that no jobs have failed, that the disk space is OK etc…&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;But what if the problem occurs five minutes after you disconnect?&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Or – what if you didn’t follow your written protocol as to what should be checked, and missed out something?&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;The surprise is (at least for me personally) that I’ve seen many organizations that as of today (beginning of 2010), actually work that way!&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;So, (aside from the fact they see SqlStripes and get all excited, and that I am having thoughts about why&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;marketing didn’t get to them earlier &lt;span style="font-family: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;"&gt;&lt;span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;"&gt;J&lt;/span&gt;&lt;/span&gt;), I wonder how could that be? &lt;br /&gt;How can wide-production systems have SQL-Service monitor at best?&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;If you have a minute, click on the &lt;b&gt;&lt;span style="color: #3d85c6;"&gt;poll below&lt;/span&gt;&lt;/b&gt; to state what’s your way of monitoring your SQL Servers&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Cheers,&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Adi&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;embed allowscriptaccess="never" bgcolor="#ffffff" flashvars="p=2542930" height="500" name="beta3" pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" salign="tl" saveembedtags="true" scale="autoscale" src="http://i.polldaddy.com/poll.swf" type="application/x-shockwave-flash" width="252" wmode="transparent"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8152671487595650437-3097743740424681574?l=sqlstripes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlstripes.blogspot.com/feeds/3097743740424681574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlstripes.blogspot.com/2010/01/importance-of-easy-access-to-your-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/3097743740424681574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/3097743740424681574'/><link rel='alternate' type='text/html' href='http://sqlstripes.blogspot.com/2010/01/importance-of-easy-access-to-your-sql.html' title='The importance of easy access to your SQL Servers'/><author><name>Adi Sapir</name><uri>https://profiles.google.com/113640921155002866710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ZFTOuFJD_Jg/AAAAAAAAAAI/AAAAAAAAFO8/0ph2fi6c7KA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8152671487595650437.post-4283243612347841084</id><published>2010-01-04T16:26:00.000-05:00</published><updated>2010-01-04T16:26:21.166-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql stripes 2010 ctp2'/><category scheme='http://www.blogger.com/atom/ns#' term='sql server 2008'/><title type='text'>SQL Stripes 2010 CTP2 is out!</title><content type='html'>Hey,&lt;br /&gt;Excited to announce that we got &lt;span style="color: #990000;"&gt;&lt;a href="http://bit.ly/79YALG" rel="http://bit.ly/plugins/iframe?hashUrl=http%3A%2F%2Fbit.ly%2F79YALG" style="line-height: 1em;"&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;CTP2&lt;/span&gt;&lt;/a&gt;&lt;/span&gt; fresh out of the oven!&lt;br /&gt;We're getting very close to the final non-beta release. Although, as always, the development never stops (what I'm actually saying is that a new version means start working on the next one ;-)).&lt;br /&gt;&lt;br /&gt;Here's some of the new highlights on the new version (differs from ctp1):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: #0b5394;"&gt;Multiple SMTP&amp;nbsp;enhancements&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #0b5394;"&gt;Major&amp;nbsp;Stripe/UI Design Enhancements&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #0b5394;"&gt;New email alert method: Email-Per-Alert (which means the alert description is sent on the subject rather than the message body)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #0b5394;"&gt;CPU alert is now configurable&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #0b5394;"&gt;multiple bug-fix&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;So, grab your copy today! and as usual, send your feedback - we're always happy to hear and response&lt;br /&gt;&lt;br /&gt;Cheers&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;a bitly="BITLY_PROCESSED" href="http://www.sqlstripes.com/download"&gt;Grab CTP2 Here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8152671487595650437-4283243612347841084?l=sqlstripes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlstripes.blogspot.com/feeds/4283243612347841084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlstripes.blogspot.com/2010/01/sql-stripes-2010-ctp2-is-out.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/4283243612347841084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/4283243612347841084'/><link rel='alternate' type='text/html' href='http://sqlstripes.blogspot.com/2010/01/sql-stripes-2010-ctp2-is-out.html' title='SQL Stripes 2010 CTP2 is out!'/><author><name>Adi Sapir</name><uri>https://profiles.google.com/113640921155002866710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ZFTOuFJD_Jg/AAAAAAAAAAI/AAAAAAAAFO8/0ph2fi6c7KA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8152671487595650437.post-127323054946350561</id><published>2010-01-01T02:28:00.000-05:00</published><updated>2010-01-01T02:28:23.506-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='2010'/><category scheme='http://www.blogger.com/atom/ns#' term='sql stipres 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='happy new year'/><title type='text'>Happy New Year!</title><content type='html'>Wow! Another decade just went by!&lt;br /&gt;I read so many articles discussing how technology had evolved in the last ten years and predicting where it will go from here.&lt;br /&gt;The new anticipated version of SQL Stripes is getting closer (hey, we call it 2010 and that's what the calendar now says ;-))&lt;br /&gt;So, as the new decade begins, we do our best so the new version stands in the standards and requirements of multiple database watching.&lt;br /&gt;We know how important it is to keep track and maintain the growing amount of data everywhere, and will make sure that in 2010, with the new version out it will be much easier!&lt;br /&gt;&lt;br /&gt;Cheers &amp;amp; Happy New Year,&lt;br /&gt;Adi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8152671487595650437-127323054946350561?l=sqlstripes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlstripes.blogspot.com/feeds/127323054946350561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlstripes.blogspot.com/2009/12/happy-new-year.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/127323054946350561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/127323054946350561'/><link rel='alternate' type='text/html' href='http://sqlstripes.blogspot.com/2009/12/happy-new-year.html' title='Happy New Year!'/><author><name>Adi Sapir</name><uri>https://profiles.google.com/113640921155002866710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ZFTOuFJD_Jg/AAAAAAAAAAI/AAAAAAAAFO8/0ph2fi6c7KA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8152671487595650437.post-1153774696628106556</id><published>2009-12-02T04:31:00.000-05:00</published><updated>2009-12-02T04:31:54.609-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql stripes 2010 beta 2'/><title type='text'>Some information about the next beta...</title><content type='html'>We've been getting a lot of positive feedback on the current SQL Stripes 2010 Beta.&lt;br /&gt;This is great! and the work doesn't stop - already working on the next beta version of 2010&lt;br /&gt;&lt;br /&gt;So, if you wonder what's planned on the next beta (besides obvious bug-fixes), here's a partial list&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;UI Design change (yet another one, we're getting there... :-))&lt;/li&gt;&lt;li&gt;Detailed memory information (fully on 2008, partial on 2005 due to some missing DM's)&lt;/li&gt;&lt;li&gt;RSS Alerts implementation&lt;/li&gt;&lt;li&gt;Email alerts - an option to get email per alert (which means - the alert/notification is the subject and not the body)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;More to come...&lt;br /&gt;&lt;br /&gt;/Adi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8152671487595650437-1153774696628106556?l=sqlstripes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlstripes.blogspot.com/feeds/1153774696628106556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlstripes.blogspot.com/2009/12/some-information-about-next-beta.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/1153774696628106556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/1153774696628106556'/><link rel='alternate' type='text/html' href='http://sqlstripes.blogspot.com/2009/12/some-information-about-next-beta.html' title='Some information about the next beta...'/><author><name>Adi Sapir</name><uri>https://profiles.google.com/113640921155002866710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ZFTOuFJD_Jg/AAAAAAAAAAI/AAAAAAAAFO8/0ph2fi6c7KA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8152671487595650437.post-3711010498602553446</id><published>2009-11-10T17:53:00.000-05:00</published><updated>2009-11-10T17:53:17.632-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new website released'/><category scheme='http://www.blogger.com/atom/ns#' term='sql stripes 2010 released'/><title type='text'>SQL Stripes 2010 (beta) &amp; New Website RELEASED!</title><content type='html'>I'm very excited to announce that just a few minutes ago, the &lt;b&gt;new &lt;a href="http://www.sqlstripes.com/"&gt;SQL Stripes&lt;/a&gt; 2010 (beta)&lt;/b&gt; along with the new improved website are &lt;b&gt;UP!&lt;/b&gt;&lt;br /&gt;The wait is over - you can download the new version and play with it.&lt;br /&gt;&lt;br /&gt;If you're a new user - this beta is fully functional for 30 days&lt;br /&gt;Registered users - your license key is &lt;b&gt;good to go! &lt;/b&gt;no extra actions required :-)&lt;br /&gt;&lt;br /&gt;I'd love to get your feedback; Either comment here or sent an &lt;a href="mailto:support@sqlstripes.com"&gt;email&lt;/a&gt;.&lt;br /&gt;The final version is expected to be released in the beginning of 2010&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Adi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8152671487595650437-3711010498602553446?l=sqlstripes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlstripes.blogspot.com/feeds/3711010498602553446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlstripes.blogspot.com/2009/11/sql-stripes-2010-beta-new-website.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/3711010498602553446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/3711010498602553446'/><link rel='alternate' type='text/html' href='http://sqlstripes.blogspot.com/2009/11/sql-stripes-2010-beta-new-website.html' title='SQL Stripes 2010 (beta) &amp; New Website RELEASED!'/><author><name>Adi Sapir</name><uri>https://profiles.google.com/113640921155002866710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ZFTOuFJD_Jg/AAAAAAAAAAI/AAAAAAAAFO8/0ph2fi6c7KA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8152671487595650437.post-4797220888201046720</id><published>2009-11-07T10:24:00.000-05:00</published><updated>2009-11-07T10:30:46.304-05:00</updated><title type='text'>Even closer</title><content type='html'>As part of the new version, we're going to update our website (&lt;a href="http://www.sqlstripes.com"&gt;www.sqlstripes.com&lt;/a&gt;)  as well.&lt;div&gt;You can expect to see the new site, along with the new version (still in beta) in the &lt;b&gt;next few days&lt;/b&gt;...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of the new pages on the new website is a short introduction video. I've decided to post this video here even before the new website is up - have a look:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=Q05zyosqdoI"&gt;http://www.youtube.com/watch?v=Q05zyosqdoI&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Enjoy! I'll update again as soon as the new website is live!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8152671487595650437-4797220888201046720?l=sqlstripes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlstripes.blogspot.com/feeds/4797220888201046720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlstripes.blogspot.com/2009/11/even-closer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/4797220888201046720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/4797220888201046720'/><link rel='alternate' type='text/html' href='http://sqlstripes.blogspot.com/2009/11/even-closer.html' title='Even closer'/><author><name>Adi Sapir</name><uri>https://profiles.google.com/113640921155002866710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ZFTOuFJD_Jg/AAAAAAAAAAI/AAAAAAAAFO8/0ph2fi6c7KA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8152671487595650437.post-4031482155168289676</id><published>2009-10-20T18:00:00.000-04:00</published><updated>2009-10-20T18:11:04.562-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beta'/><category scheme='http://www.blogger.com/atom/ns#' term='ctp'/><category scheme='http://www.blogger.com/atom/ns#' term='sql stipres 2010'/><title type='text'>SQL Stripes 2010 CTP almost done</title><content type='html'>I'd like to open my 1st post here with some very exciting news - &lt;div&gt;Over the last year, there has been very intensive work on the next upcoming version of SQL Stripes.&lt;/div&gt;&lt;div&gt;This is going to be a MAJOR release, containing various new features.&lt;/div&gt;&lt;div&gt;I'd like to share some of them even before the version is out and our website is updated - &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A very partial list:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;New Stripe Design&lt;/li&gt;&lt;li&gt;Fresh UI&lt;/li&gt;&lt;li&gt;Database I/O Analysis&lt;/li&gt;&lt;li&gt;New real-time alerts &lt;/li&gt;&lt;li&gt;SQL 2008 Native-Client Support (while still being 100% backward-compatible)&lt;/li&gt;&lt;li&gt;Performance Boost&lt;/li&gt;&lt;li&gt;Improved multi-server search&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;The new beta is going to have an &lt;b&gt;extended&lt;/b&gt; &lt;b&gt;trial &lt;/b&gt;period, so new users can experience is for a longer period. Registered users will be able to enjoy it for free as part of the registration.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Further updates are coming...&lt;/div&gt;&lt;div&gt;&lt;br /&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/8152671487595650437-4031482155168289676?l=sqlstripes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlstripes.blogspot.com/feeds/4031482155168289676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlstripes.blogspot.com/2009/10/sql-stripes-2010-ctp-almost-done.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/4031482155168289676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8152671487595650437/posts/default/4031482155168289676'/><link rel='alternate' type='text/html' href='http://sqlstripes.blogspot.com/2009/10/sql-stripes-2010-ctp-almost-done.html' title='SQL Stripes 2010 CTP almost done'/><author><name>Adi Sapir</name><uri>https://profiles.google.com/113640921155002866710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ZFTOuFJD_Jg/AAAAAAAAAAI/AAAAAAAAFO8/0ph2fi6c7KA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
