<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Keith Burns SQL Server Blog</title><subtitle type="html" /><id>http://blogs.msdn.com/keithbu/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/keithbu/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/keithbu/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2007-06-22T10:44:00Z</updated><entry><title>Upcoming SQL Server 2008 webcasts</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/keithbu/archive/2007/08/20/upcoming-sql-server-2008-webcasts.aspx" /><id>http://blogs.msdn.com/keithbu/archive/2007/08/20/upcoming-sql-server-2008-webcasts.aspx</id><published>2007-08-20T18:22:00Z</published><updated>2007-08-20T18:22:00Z</updated><content type="html">&lt;P&gt;There are two livemeeting webcasts scheduled which you might be interested. The first on the new datetime datatype is scheduled for 9pm GMT &lt;U&gt;&lt;STRONG&gt;tomorrow&lt;/STRONG&gt;&lt;/U&gt; and the&amp;nbsp;second, on Ordpath, at 9pm on the 28th. To participate I've posted the links below but if these don't work, or you need more details, then go to the connect site &lt;SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-GB; mso-bidi-language: AR-SA"&gt;&lt;A href="http://connect.microsoft.com/"&gt;http://connect.microsoft.com&lt;/A&gt;&amp;nbsp;&lt;FONT face=Arial color=#000000 size=2&gt;and navigate to the SQL Server 2008 content page. Listed on that page you will see a link to all the upcomming SQL webcasts.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-GB; mso-bidi-language: AR-SA"&gt;&lt;FONT face=Arial color=#000000 size=2&gt;Datetime: Aug 21st 9pm GMT&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-GB; mso-bidi-language: AR-SA"&gt;&lt;FONT face=Arial color=#000000 size=2&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;A href="https://www.livemeeting.com/cc/lmevents/join?id=msft082107fs&amp;amp;role=attend&amp;amp;pw=WG987A"&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;https://www.livemeeting.com/cc/lmevents/join?id=msft082107fs&amp;amp;role=attend&amp;amp;pw=WG987A&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-GB; mso-bidi-language: AR-SA"&gt;&lt;FONT face=Arial color=#000000 size=2&gt;Ordpath Aug 28th 9pm GMT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&lt;A href="https://www.livemeeting.com/cc/lmevents/join?id=msft082807fs&amp;amp;role=attend&amp;amp;pw=WG987A"&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;https://www.livemeeting.com/cc/lmevents/join?id=msft082807fs&amp;amp;role=attend&amp;amp;pw=WG987A&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-GB; mso-bidi-language: AR-SA"&gt;&lt;FONT face=Arial color=#000000 size=2&gt;Keith&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4480840" width="1" height="1"&gt;</content><author><name>keithbu</name><uri>http://blogs.msdn.com/members/keithbu.aspx</uri></author></entry><entry><title>VSDBPro and ERWin 7.2 WebCast 14th Aug 6pm GMT</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/keithbu/archive/2007/08/13/vsdbpro-and-erwin-7-2-webcast-14th-aug-6pm-gmt.aspx" /><id>http://blogs.msdn.com/keithbu/archive/2007/08/13/vsdbpro-and-erwin-7-2-webcast-14th-aug-6pm-gmt.aspx</id><published>2007-08-13T16:51:00Z</published><updated>2007-08-13T16:51:00Z</updated><content type="html">&lt;P&gt;Cameron Skinner is doing a joint webcast with CA showing a demo of VSDBPro and&amp;nbsp;ERWin working together. To participate in the webcast have a look at Cameron's blog post where he supplies all the details&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://blogs.msdn.com/camerons/archive/2007/08/06/erwin-7-2-and-dbpro-webcast.aspx"&gt;http://blogs.msdn.com/camerons/archive/2007/08/06/erwin-7-2-and-dbpro-webcast.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Keith&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4368421" width="1" height="1"&gt;</content><author><name>keithbu</name><uri>http://blogs.msdn.com/members/keithbu.aspx</uri></author><category term="VSDBPro" scheme="http://blogs.msdn.com/keithbu/archive/tags/VSDBPro/default.aspx" /></entry><entry><title>VSDBPro Power Tools release v1.0 is now available</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/keithbu/archive/2007/08/13/vsdbpro-power-tools-release-v1-0-is-now-available.aspx" /><id>http://blogs.msdn.com/keithbu/archive/2007/08/13/vsdbpro-power-tools-release-v1-0-is-now-available.aspx</id><published>2007-08-13T16:45:00Z</published><updated>2007-08-13T16:45:00Z</updated><content type="html">&lt;P&gt;The Visual Studio for Database deveopers team have just released their PowerTools. Rather than list the details in my blog jomp over to Gert's blog posting at&amp;nbsp; &lt;A href="http://blogs.msdn.com/gertd/archive/2007/08/07/it-is-august-6th.aspx"&gt;http://blogs.msdn.com/gertd/archive/2007/08/07/it-is-august-6th.aspx&lt;/A&gt;&amp;nbsp;to get all the details.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;The powertools can be downloaded from the following link &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=da3f11ad-bd54-4eda-b08c-4df84df0d641&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=da3f11ad-bd54-4eda-b08c-4df84df0d641&amp;amp;displaylang=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Keith&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4368372" width="1" height="1"&gt;</content><author><name>keithbu</name><uri>http://blogs.msdn.com/members/keithbu.aspx</uri></author><category term="VSDBPro" scheme="http://blogs.msdn.com/keithbu/archive/tags/VSDBPro/default.aspx" /></entry><entry><title>July CTP released</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/keithbu/archive/2007/08/02/july-ctp-released.aspx" /><id>http://blogs.msdn.com/keithbu/archive/2007/08/02/july-ctp-released.aspx</id><published>2007-08-02T17:42:00Z</published><updated>2007-08-02T17:42:00Z</updated><content type="html">&lt;P&gt;A new July CTP of SQL Server 2008 was released this week. Its available from &lt;A href="http://connect.microsoft.com/" mce_href="http://connect.microsoft.com/"&gt;http://connect.microsoft.com&lt;/A&gt; Once you register there is an excellent graphic which show exactly what new features were introduced in both the June and July CTP's. Of the ten&amp;nbsp;inprovements outlined for the July CTP I'm particulatly interested in looking at the Date/Time data types and the performance data collection. I'll be playing with these as well as some of the other new features over the next couple of weeks and posting comments as appropriate.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4189924" width="1" height="1"&gt;</content><author><name>keithbu</name><uri>http://blogs.msdn.com/members/keithbu.aspx</uri></author></entry><entry><title>Send me feedback on what events we should be running over the next few months?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/keithbu/archive/2007/07/13/send-me-feedback-on-what-events-we-should-be-running-over-the-next-few-months.aspx" /><id>http://blogs.msdn.com/keithbu/archive/2007/07/13/send-me-feedback-on-what-events-we-should-be-running-over-the-next-few-months.aspx</id><published>2007-07-13T18:58:00Z</published><updated>2007-07-13T18:58:00Z</updated><content type="html">I been planning what sort of SQL Server 2008 awareness events we should be running for UK ISV's over the next 6 months or so. If you work for a UK ISV I'd be interested in your views on what would work best for you. Send me an email with your thoughts &lt;A href="mailto:keithbu@microsoft.com"&gt;keithbu@microsoft.com&lt;/A&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3850016" width="1" height="1"&gt;</content><author><name>keithbu</name><uri>http://blogs.msdn.com/members/keithbu.aspx</uri></author></entry><entry><title>SQL Server 2008 Launch date announced</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/keithbu/archive/2007/07/13/sql-server-2008-launch-date-announced.aspx" /><id>http://blogs.msdn.com/keithbu/archive/2007/07/13/sql-server-2008-launch-date-announced.aspx</id><published>2007-07-13T11:24:00Z</published><updated>2007-07-13T11:24:00Z</updated><content type="html">&lt;P&gt;A few days ago at the Worldwide Partner Conference we &lt;A class="" href="http://www.microsoft.com/presspass/press/2007/jul07/07-10WPCDay1PartnersPR.mspx" mce_href="http://www.microsoft.com/presspass/press/2007/jul07/07-10WPCDay1PartnersPR.mspx"&gt;announced&lt;/A&gt; that we will launch Windows Server&lt;SUP&gt;®&lt;/SUP&gt; 2008, Visual Studio&lt;SUP&gt;®&lt;/SUP&gt; 2008 and Microsoft SQL Server™ 2008 together at an event in Los Angeles on Feb. 27, 2008. This is great news. However I've already seen reports elsewhere confusing&amp;nbsp;the launch event date with&amp;nbsp;the RTM date. They aren't necessarily the same. The current expectation is that SQL Server 2008 is &lt;EM&gt;likely&lt;/EM&gt; to RTM in Q2 CY08.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3843868" width="1" height="1"&gt;</content><author><name>keithbu</name><uri>http://blogs.msdn.com/members/keithbu.aspx</uri></author><category term="SQL Server 2008" scheme="http://blogs.msdn.com/keithbu/archive/tags/SQL+Server+2008/default.aspx" /></entry><entry><title>Merge Command</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/keithbu/archive/2007/07/06/merge-command.aspx" /><id>http://blogs.msdn.com/keithbu/archive/2007/07/06/merge-command.aspx</id><published>2007-07-06T15:49:00Z</published><updated>2007-07-06T15:49:00Z</updated><content type="html">&lt;P&gt;One of the new features in CTP3 is the &lt;EM&gt;&lt;STRONG&gt;merge&lt;/STRONG&gt;&lt;/EM&gt; command. This was introduced in the ISO SQL:2003 revision&amp;nbsp;of the&amp;nbsp;SQL language definition. Some readers may be familiar with the term &lt;EM&gt;&lt;STRONG&gt;upsert&lt;/STRONG&gt;&lt;/EM&gt; which provides similar functionality in other databases.&lt;/P&gt;
&lt;P&gt;A common use of &lt;STRONG&gt;&lt;EM&gt;merge&lt;/EM&gt;&lt;/STRONG&gt; would be where a new set of data needs to be added to an existing fact table. Often the new data will contain a mixture of updates, to pre-existing records as well as totally new data. The conventional solution would be to split the new data into two groups. The new records can simply be inserted into the fact table while the updated data needs to be joined with the fact table and the existing fact columns updated with the new values.&lt;/P&gt;
&lt;P&gt;What the merge command provides is a mechanism to perform these two operations with one single command,&amp;nbsp;together with&amp;nbsp;a &lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;commensurate &lt;/SPAN&gt;improvement in performance. Having worked with several partners who regularly "merge" tens of millions of records into fact tables this feature has the potential to improve performance considerably.&lt;/P&gt;
&lt;P&gt;So what does the syntax look like? Well here is an example from the BOL:-&lt;/P&gt;
&lt;P&gt;MERGE FactBuyingHabits AS fbh&lt;BR&gt;USING (SELECT CustomerID, ProductID, PurchaseDate FROM PurchaseRecords) AS src&lt;BR&gt;ON (fbh.ProductID = src.ProductID AND fbh.CustomerID = src.CustomerID)&lt;BR&gt;WHEN MATCHED THEN&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UPDATE SET fbh.LastPurchaseDate = src.PurchaseDate&lt;BR&gt;WHEN NOT MATCHED THEN&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT (CustomerID, ProductID, LastPurchaseDate)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUES (src.CustomerID, src.ProductID, src.PurchaseDate);&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Pulling this statement apart we can see that we are merging data into an existing table called FactBuyingHabits. The new data is a query from the PurchaseRecords table. The on clause states which columns need to match between the two tables. The rest of the syntax then defines what happens when there is either a match&amp;nbsp;or no match. In this case we either update the approprate columns with new values, or create a new record in the FactBuyingHabits table&amp;nbsp;from the unmatched record.&lt;/P&gt;
&lt;P&gt;There is a considerable flexibility in the above statement. For example instead of issuing an UPDATE statement when a match is found you can DELETE the record from the existing table. Its also possible to have two clauses for either the matched or not matched conditions which allows an additional condition to determine the action. An example could be when we match we will delete the record if the new quantity is zero but update the record if the quantity is non-zero.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;If the merge command sounds interesting then download the CTP, read the&amp;nbsp;books online,&amp;nbsp;and have a play with it yourself. Let me know how you get on.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3727931" width="1" height="1"&gt;</content><author><name>keithbu</name><uri>http://blogs.msdn.com/members/keithbu.aspx</uri></author><category term="Katmai" scheme="http://blogs.msdn.com/keithbu/archive/tags/Katmai/default.aspx" /><category term="SQL Server 2008" scheme="http://blogs.msdn.com/keithbu/archive/tags/SQL+Server+2008/default.aspx" /></entry><entry><title>DMF bug in the June CTP build of SQL Server 2008</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/keithbu/archive/2007/06/22/dmf-bug-in-the-june-ctp-build-of-sql-server-2008.aspx" /><id>http://blogs.msdn.com/keithbu/archive/2007/06/22/dmf-bug-in-the-june-ctp-build-of-sql-server-2008.aspx</id><published>2007-06-22T12:52:00Z</published><updated>2007-06-22T12:52:00Z</updated><content type="html">&lt;P&gt;I've been looking at the June CTP build for a few days now. Only a small number of the promised features are actually available in this early build. One of the features that is available is DMF (Declaritive Management Framework). This allows organisations to define how their SQL Server(s) should behave by defining policies. So for example if I want all my databases to have certain settings or tables to have specific naming conventions I can define policies that eforce these behaviours.&amp;nbsp;However there is a bug in this CTP build that will result in a error when you attempt to use the feature. This is a known issue and Dan Jones who is a PM in the SQL team explains the problem and has a simple fix in his &lt;A class="" href="http://blogs.msdn.com/dtjones/archive/2007/06/06/sql-server-2008-june-ctp-bug.aspx" mce_href="http://blogs.msdn.com/dtjones/archive/2007/06/06/sql-server-2008-june-ctp-bug.aspx"&gt;blog post here.&lt;/A&gt;&amp;nbsp;All you need to do is run the folllowing:-&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;SPAN style="COLOR: red"&gt;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sn.exe -Vr Microsoft.SqlServer.DmfSqlClrWrapper,89845DCD8080CC91&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3456425" width="1" height="1"&gt;</content><author><name>keithbu</name><uri>http://blogs.msdn.com/members/keithbu.aspx</uri></author><category term="Katmai" scheme="http://blogs.msdn.com/keithbu/archive/tags/Katmai/default.aspx" /><category term="SQL Server 2008" scheme="http://blogs.msdn.com/keithbu/archive/tags/SQL+Server+2008/default.aspx" /></entry><entry><title>Welcome</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/keithbu/archive/2007/06/22/welcome.aspx" /><id>http://blogs.msdn.com/keithbu/archive/2007/06/22/welcome.aspx</id><published>2007-06-22T12:44:00Z</published><updated>2007-06-22T12:44:00Z</updated><content type="html">&lt;P&gt;Hi. I've avoided creating a blog for several years now. However with the launch of the first public CTP of SQL Server 2008 I thought this would be a good time to begin.&lt;/P&gt;
&lt;P&gt;I've worked at Microsoft since 1993 and although I've had a variety of roles within the company they have always involved SQL Server. When I joined I supported SQL Server 4.2 on OS/2. How things have changed!&amp;nbsp;These days I work in the the ISV team within Microsoft UK. This coming year my principal objective will be to work with ISV's who are developing solutions on SQL Server 2008 (aka Katmai). &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3456264" width="1" height="1"&gt;</content><author><name>keithbu</name><uri>http://blogs.msdn.com/members/keithbu.aspx</uri></author></entry></feed>