<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The Synchronizer : SQL2005</title><link>http://blogs.msdn.com/synchronizer/archive/tags/SQL2005/default.aspx</link><description>Tags: SQL2005</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>New Release: Windows Mobile Line of Business Solution Accelerator 2008</title><link>http://blogs.msdn.com/synchronizer/archive/2008/03/16/new-release-windows-mobile-line-of-business-solution-accelerator-2008.aspx</link><pubDate>Sun, 16 Mar 2008 22:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8272822</guid><dc:creator>Rafik</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/synchronizer/comments/8272822.aspx</comments><wfw:commentRss>http://blogs.msdn.com/synchronizer/commentrss.aspx?PostID=8272822</wfw:commentRss><description>&lt;p&gt;Rob Tiffany, &lt;a href="http://blogs.msdn.com/robtiffany/default.aspx" class="" mce_href="http://blogs.msdn.com/robtiffany/default.aspx"&gt;the mobile accelerator guy&lt;/a&gt;, just announced the new release of &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=428E4C3D-64AD-4A3D-85D2-E711ABC87F04&amp;amp;displaylang=en" class="" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=428E4C3D-64AD-4A3D-85D2-E711ABC87F04&amp;amp;displaylang=en"&gt;Windows Mobile Line of Business Solution Accelerator 2008&lt;/a&gt;. It a collection of windows&amp;nbsp;mobile centric samples that showcase different new technologies and help developers greatly accelerate building their applications, thus the name “Accelerator”. Rob also has a great &lt;a href="http://blogs.msdn.com/robtiffany/default.aspx" class="" mce_href="http://blogs.msdn.com/robtiffany/default.aspx"&gt;blog&lt;/a&gt; that I read regularly. Here is a quick overview of what this new release contains:&lt;/p&gt;&lt;p&gt;&lt;img src="http://blogs.msdn.com/synchronizer/attachment/8272822.ashx" style="width: 194px; height: 323px;" mce_src="http://blogs.msdn.com/synchronizer/attachment/8272822.ashx" align="middle" height="323" hspace="150" width="194"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Adapt your App&lt;/b&gt;&lt;br&gt;Create a single binary that runs unchanged on Windows Mobile Standard or Pro, Portrait or Landscape, Rectangle or Square.&amp;nbsp; No more wasting time building separate executables to accommodate different screen sizes or input methods.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Sync Services for ADO.NET&lt;/b&gt; &lt;br&gt;Synchronize your data between SQL Server 2008 and SQL Server Compact 3.5 using the new Sync Framework.&amp;nbsp; Keep all your occasionally-connected mobile workers on the same page.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Windows Communication Foundation (WCF) Store and Forward&lt;/b&gt; &lt;br&gt;Reliably push messages to servers or other devices via Exchange Server 2007.&amp;nbsp; Programmatically notify peer devices that they have new orders waiting for them and need to sync.&lt;/li&gt;&lt;li&gt;&lt;b&gt;MapPoint&lt;br&gt;&lt;/b&gt;Guide delivery drivers to their customers via either the shortest or quickest route.&amp;nbsp; Integrated mapping means you’ll never get lost again.&lt;/li&gt;&lt;li&gt;&lt;b&gt;LINQ&lt;br&gt;&lt;/b&gt;Use the new Language Integrated Query to filter results from Generic Object Collections.&amp;nbsp; Query both your objects and XML using a familiar, SQL-like syntax to boost developer productivity.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Custom Controls&lt;/b&gt; &lt;br&gt;Capture signatures and dazzle your end-users with 3D and Alpha-blended controls that alter their behavior depending on the platform they’re running on.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Managed Stored Procedures and Triggers&lt;/b&gt; &lt;br&gt;The pluggable data layer allows you to say goodbye to compiling Dynamic SQL inside your code and fires events to react to INSERT, UPDATE, and DELETE operations.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Notifications and Online Help&lt;br&gt;&lt;/b&gt;Formerly only supported on Pro, say hello to Popup Notifications and Online Help on Standard.&amp;nbsp; Popup Notifications, also known as “toast,” display an HTML message and then disappear after a pre-determined amount of time.&amp;nbsp; Using Online Help on every screen reduces your application training costs.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Language Switching and Localization&lt;/b&gt; &lt;br&gt;Change Language/Regional Settings inside your app and watch text and Online Help speak a different language.&amp;nbsp; Don’t wait until your application is finished to realize that it needs to be world-ready.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Time to Market&lt;br&gt;&lt;/b&gt;Stop reinventing the wheel and use this Accelerator as the foundation for your next Windows Mobile development effort.&amp;nbsp; If you don’t want to use the whole thing, pick and choose the components that are the best fit for your project.&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I am playing with it right now.. pretty cool stuff. &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=428E4C3D-64AD-4A3D-85D2-E711ABC87F04&amp;amp;displaylang=en" class="" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=428E4C3D-64AD-4A3D-85D2-E711ABC87F04&amp;amp;displaylang=en"&gt;&lt;b&gt;Download Now&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Update: Just to let you know, I left Microsoft to start a new company, &lt;b&gt;&lt;a href="http://www.raveable.com" class="" mce_href="http://www.raveable.com"&gt;Raveable Hotel Reviews&lt;/a&gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;. See examples: &lt;b&gt;&lt;a href="http://www.raveable.com/sc/myrtle-beach/top-10-hotels-in-myrtle-beach/l6180c3" mce_href="http://www.raveable.com/sc/myrtle-beach/top-10-hotels-in-myrtle-beach/l6180c3"&gt;Top 10 Hotels in Myrtle Beach&lt;/a&gt;, &lt;a href="http://www.raveable.com/ny/new-york-city/best-hotels-in-new-york-city/l5039c1" title="best hotels in nyc" mce_href="http://www.raveable.com/ny/new-york-city/best-hotels-in-new-york-city/l5039c1"&gt;Best Hotels in NYC&lt;/a&gt;, &lt;a href="http://www.raveable.com/wa/seattle/romantic-hotels-in-seattle/l7344c2" mce_href="http://www.raveable.com/wa/seattle/romantic-hotels-in-seattle/l7344c2"&gt;Romantic Hotels in Seattle&lt;/a&gt;&lt;/b&gt;, &lt;b&gt;&lt;a href="http://www.raveable.com/fl/orlando/kid-friendly-hotels-in-orlando/l1653c16" title="kid friendly hotels in orlando" mce_href="http://www.raveable.com/fl/orlando/kid-friendly-hotels-in-orlando/l1653c16"&gt;Kid Friendly Hotels in Orlando&lt;/a&gt;&lt;/b&gt; and &lt;b&gt;&lt;a href="http://www.raveable.com/ca/san-diego/top-10-hotels-in-san-diego/l568c3" title="top 10 hotels in san diego" mce_href="http://www.raveable.com/ca/san-diego/top-10-hotels-in-san-diego/l568c3"&gt;Top 10 Hotels in San Diego&lt;/a&gt;&lt;/b&gt;. Your feedback is welcome on &lt;a href="http://twitter.com/raveable" mce_href="http://twitter.com/raveable"&gt;twitter.com/raveable&lt;/a&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma; font-size: 13px;"&gt;,&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://blog.raveable.com/" title="raveable blog" mce_href="http://blog.raveable.com" style="color: rgb(0, 101, 226);"&gt;raveable blog&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br&gt; &lt;br&gt;&lt;/p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;I am not actively blogging about Sync Technologies. Please see &lt;a href="http://blogs.msdn.com/sync/" class="" mce_href="http://blogs.msdn.com/sync/"&gt;Sync Team Blog&lt;/a&gt; for more updated content.&lt;/font&gt;&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8272822" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/synchronizer/attachment/8272822.ashx" length="14906" type="image/jpeg" /><category domain="http://blogs.msdn.com/synchronizer/archive/tags/SQLCE/default.aspx">SQLCE</category><category domain="http://blogs.msdn.com/synchronizer/archive/tags/demos/default.aspx">demos</category><category domain="http://blogs.msdn.com/synchronizer/archive/tags/SQL2008/default.aspx">SQL2008</category><category domain="http://blogs.msdn.com/synchronizer/archive/tags/mobile/default.aspx">mobile</category><category domain="http://blogs.msdn.com/synchronizer/archive/tags/SQL2005/default.aspx">SQL2005</category></item><item><title>A nice gift from SQL Server 2005 SP2 to sync developers</title><link>http://blogs.msdn.com/synchronizer/archive/2007/02/20/a-nice-gift-from-sql-server-2005-sp2-to-sync-developers.aspx</link><pubDate>Tue, 20 Feb 2007 22:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1729871</guid><dc:creator>Rafik</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/synchronizer/comments/1729871.aspx</comments><wfw:commentRss>http://blogs.msdn.com/synchronizer/commentrss.aspx?PostID=1729871</wfw:commentRss><description>&lt;p&gt;If you haven’t heard the news yet, &lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/servicepacks/sp2.mspx" class="" mce_href="http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/servicepacks/sp2.mspx"&gt;SQL Server 2005 SP2&lt;/a&gt; is out! Now if you are like me, thinking about data synchronization for the most part of your day, then you should be really excited about SP2. Let me tell you why. &lt;br&gt;&lt;br&gt;Recall that in all sync services demos in this blog, we used timestamp tracking column to know when the row was updated. This works fine if there were no uncommitted transactions on the SQL server backend. So what would happen if there was a pending transaction? Well, changes made in that transaction will not be enumerated by the SelectIncrememental commands, that’s expected since dirty data is not visible in read committed isolation level in which we typically operate. When the transaction is committed sometime later on, the timestamp value of the changed rows could be older than the one the client stores for the next sync. Timestamp value is captured at statement execution time and that poses the problem for our simple tracking approach. Basically, next time the client synchronizes it will miss those changes with older timestamp. This is not cool and not acceptable of course!&lt;/p&gt;&lt;p&gt;To clarify this point more, let’s look at a timeline diagram:&lt;br&gt;&lt;/p&gt;&lt;p mce_keep="true"&gt;&lt;img src="http://blogs.msdn.com/synchronizer/attachment/1729871.ashx" style="width: 580px; height: 253px;" mce_src="http://blogs.msdn.com/synchronizer/attachment/1729871.ashx" align="middle" height="253" width="580"&gt;&lt;/p&gt;&lt;p&gt;As the diagram shows, timestamp is monotonically increasing with every change made in the database regardless if the change is committed or not. Transaction T2 is committed therefore all its changes (from 53-68) are visible. Transaction T1 on the other hand has not committed yet, changes at 50, 51, 52 and 60, 61, 62, 63 are not visible. In the diagram, the sync request for a new anchor came back with timestamp value of 61; therefore all sync enumerations will go up until this point for committed rows only. After T1 commits, all its changes will be visible. In the next sync, changes from 61 to N (70 for example) will see T1 changes of 60, 62 and 63 but will miss 50, 51 and 52. Too bad!&lt;/p&gt;&lt;p&gt;But hey, sync team is part of SQL Server and the SQL engine guys are next door. So we asked politely, of course, for a little favor to somehow be able to get the timestamp of the oldest uncommitted transaction. Well, guess what? Our request was granted and SP2 has this little function (&lt;b&gt;min_active_rowversion&lt;/b&gt;())&amp;nbsp; for sync services developers. &lt;br&gt;Let’s put the new function to test. Below is a simple SQL commands to show the min_active_rowversion in action in the same database and table I used in the demos:&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Courier New';"&gt;select&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt; &lt;span style="color: fuchsia;"&gt;min_active_rowversion&lt;/span&gt;&lt;span style="color: gray;"&gt;()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Courier New';"&gt;select&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt; &lt;span style="color: fuchsia;"&gt;@@DBTS&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: fuchsia; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Courier New';"&gt;select&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt; &lt;span style="color: gray;"&gt;*&lt;/span&gt; &lt;span style="color: blue;"&gt;from&lt;/span&gt; orders&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Courier New';"&gt;begin&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt; &lt;span style="color: blue;"&gt;tran&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Courier New';"&gt;insert&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt; &lt;span style="color: blue;"&gt;into&lt;/span&gt; orders&lt;span style="color: gray;"&gt;(&lt;/span&gt;order_id&lt;span style="color: gray;"&gt;,&lt;/span&gt; order_date&lt;span style="color: gray;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;values&lt;/span&gt; &lt;span style="color: gray;"&gt;(&lt;/span&gt;5&lt;span style="color: gray;"&gt;,&lt;/span&gt; &lt;span style="color: fuchsia;"&gt;GetDate&lt;/span&gt;&lt;span style="color: gray;"&gt;())&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Courier New';"&gt;insert&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt; &lt;span style="color: blue;"&gt;into&lt;/span&gt; orders&lt;span style="color: gray;"&gt;(&lt;/span&gt;order_id&lt;span style="color: gray;"&gt;,&lt;/span&gt; order_date&lt;span style="color: gray;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;values&lt;/span&gt; &lt;span style="color: gray;"&gt;(6,&lt;/span&gt; &lt;span style="color: fuchsia;"&gt;GetDate&lt;/span&gt;&lt;span style="color: gray;"&gt;())&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Courier New';"&gt;commit&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt; &lt;span style="color: blue;"&gt;tran&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The result I got on my test server is as follows:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table class="MsoTableLightGrid" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr style=""&gt;&lt;td style="border-style: solid; border-color: black; border-width: 1pt 1pt 2.25pt; padding: 0in 5.4pt; width: 159.6pt; background-color: transparent;" width="213"&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center;" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 11pt;"&gt;&lt;o:p&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-style: solid solid solid none; border-color: black black black rgb(225, 224, 210); border-width: 1pt 1pt 2.25pt medium; padding: 0in 5.4pt; width: 159.6pt; background-color: transparent;" width="213"&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center;" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font face="Times New Roman"&gt;Select @@DBTS&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-style: solid solid solid none; border-color: black black black rgb(225, 224, 210); border-width: 1pt 1pt 2.25pt medium; padding: 0in 5.4pt; width: 159.6pt; background-color: transparent;" width="213"&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center;" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font face="Times New Roman"&gt;Select min_active_rowversion()&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="border-style: none solid solid; border-color: rgb(225, 224, 210) black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; background: silver none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 159.6pt;" width="213"&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center;" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font face="Times New Roman"&gt;Before Tran&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-style: none solid solid none; border-color: rgb(225, 224, 210) black black rgb(225, 224, 210); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; background: silver none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 159.6pt;" width="213"&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center;" align="center"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font face="Times New Roman"&gt;0x0000000000000BC4&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-style: none solid solid none; border-color: rgb(225, 224, 210) black black rgb(225, 224, 210); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; background: silver none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 159.6pt;" width="213"&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center;" align="center"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font face="Times New Roman"&gt;0x0000000000000BC5&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="border-style: none solid solid; border-color: rgb(225, 224, 210) black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 159.6pt; background-color: transparent;" width="213"&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center;" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font face="Times New Roman"&gt;Begin Tran + Inserting 2 rows&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-style: none solid solid none; border-color: rgb(225, 224, 210) black black rgb(225, 224, 210); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 159.6pt; background-color: transparent;" width="213"&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center;" align="center"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font face="Times New Roman"&gt;0x0000000000000BC6&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-style: none solid solid none; border-color: rgb(225, 224, 210) black black rgb(225, 224, 210); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 159.6pt; background-color: transparent;" width="213"&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center;" align="center"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font face="Times New Roman"&gt;0x0000000000000BC5&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="border-style: none solid solid; border-color: rgb(225, 224, 210) black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; background: silver none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 159.6pt;" width="213"&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center;" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font face="Times New Roman"&gt;Commit Tran&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-style: none solid solid none; border-color: rgb(225, 224, 210) black black rgb(225, 224, 210); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; background: silver none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 159.6pt;" width="213"&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center;" align="center"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font face="Times New Roman"&gt;0x0000000000000BC6&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-style: none solid solid none; border-color: rgb(225, 224, 210) black black rgb(225, 224, 210); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; background: silver none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 159.6pt;" width="213"&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center;" align="center"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font face="Times New Roman"&gt;0x0000000000000BC7&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Also try opening another query window to experiment when an older tran is committed the min_active_rowversion function will return the timestamp of the next oldest pending tran in line! Beautiful!&lt;/p&gt;&lt;p&gt;Back to sync services; to take advantage of this new function simply update the implementation of GetNewAnchorCommand on the server provider to “Select min_active_rowversion() - 1” with this little change you’ve solved a serious data consistency problem! Viva SP2!&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma; font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="word-spacing: 0px; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 13px; line-height: normal; text-transform: none; color: rgb(0, 0, 0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2;"&gt;Update: Just to let you know, I left Microsoft to start a new company,&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;a href="http://www.raveable.com/" title="raveable hotel reviews" mce_href="http://www.raveable.com" style="color: rgb(0, 101, 226);"&gt;Raveable Hotel Reviews.&lt;/a&gt;&lt;/b&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;See Examples:&amp;nbsp;&lt;b&gt;&lt;a href="http://www.raveable.com/sc/myrtle-beach/romantic-hotels-in-myrtle-beach/l6180c2" mce_href="http://www.raveable.com/sc/myrtle-beach/romantic-hotels-in-myrtle-beach/l6180c2" style="color: rgb(0, 101, 226);"&gt;Romantic Hotels in Myrtle Beach&lt;/a&gt;&lt;/b&gt;,&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;a href="http://www.raveable.com/wa/seattle/top-10-hotels-in-seattle/l7344c3" mce_href="http://www.raveable.com/wa/seattle/top-10-hotels-in-seattle/l7344c3" style="color: rgb(0, 101, 226);"&gt;Top 10 Hotels in Seattle&lt;/a&gt;&lt;/b&gt;,&lt;a href="http://www.raveable.com/fl/miami/best-hotels-in-miami/l1644c1" title="best hotels in miami" mce_href="http://www.raveable.com/fl/miami/best-hotels-in-miami/l1644c1" style="color: rgb(0, 101, 226);"&gt;&lt;b&gt;Best Hotels in Miam&lt;/b&gt;i&lt;/a&gt;,&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;a href="http://www.raveable.com/ca/san-francisco/best-hotels-in-san-francisco/l717c1" title="best hotels in san francisco" mce_href="http://www.raveable.com/ca/san-francisco/best-hotels-in-san-francisco/l717c1" style="color: rgb(0, 101, 226);"&gt;Best Hotels in San Francisco&lt;/a&gt;&lt;/b&gt;,&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;a href="http://www.raveable.com/hotels-with-jacuzzi" title="hotels with jacuzzi" mce_href="http://www.raveable.com/hotels-with-jacuzzi" style="color: rgb(0, 101, 226);"&gt;Hotels with in-room jacuzzi&lt;/a&gt;&lt;/b&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;and&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-converted-space"&gt;&lt;b&gt;&lt;a href="http://www.raveable.com/ca/los-angeles/5-star-hotels-in-los-angeles/l519c15" title="5 star hotels in los angeles" mce_href="http://www.raveable.com/ca/los-angeles/5-star-hotels-in-los-angeles/l519c15" style="color: rgb(0, 101, 226);"&gt;5 Star Hotels in Los Angeles&lt;/a&gt;&lt;/b&gt;. Your feedback is welcome on&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://twitter.com/raveable" mce_href="http://twitter.com/raveable" style="color: rgb(0, 101, 226);"&gt;twitter.com/raveable&lt;/a&gt;,&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://blog.raveable.com/" title="raveable hotel reviews blog" mce_href="http://blog.raveable.com" style="color: rgb(0, 101, 226);"&gt;raveable blog&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p mce_keep="true"&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1729871" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/synchronizer/attachment/1729871.ashx" length="11651" type="image/jpeg" /><category domain="http://blogs.msdn.com/synchronizer/archive/tags/SyncServices/default.aspx">SyncServices</category><category domain="http://blogs.msdn.com/synchronizer/archive/tags/SQL2005/default.aspx">SQL2005</category></item></channel></rss>