The SQL Server 2012 (formerly code-named Denali) CTP3 is now available for public consumption, announced in very large font on the Microsoft SQL Server page. Now that there’s a highly functional version available for testing, it’s time to start seriously planning my next book.  But sometimes I find myself resisting, trying to convince myself that there’s still plenty of time, and asking myself “What’s my hurry anyway?” In fact, Freud would probably have something to say about the fact that I frequently misspell the code name for the next version, and write “Denial” instead of “Denali.”

One of delaying tactics that I employ is to tell myself that I can’t start planning a book about a product that doesn’t even really have a name yet. For quite a while, people just assumed that it would be called SQL Server 2011, as the previous version was named for the year in which it was released (SQL Server 2008). But now that it’s very improbable that the product will be released this year, should we start calling it SQL Server 2012? Microsoft isn’t saying. However, the day the official Denali CTP3 announcement was made, there were websites announcing it as SQL Server 2011 and others announcing it as SQL Server 2012, even though neither name is official.

In addition to the code name (in this case, “Denali”), there’s an internal number, used by some of the Microsoft engineers when referring to the product.  You can see this number by calling the ServerProperty function, with the argument ProductVersion as the following command shows:

<span style="font-family: consolas;">SELECT ServerProperty(‘ProductVersion’)</span>

When I run this SELECT statement, I get the following version number for my SQL Server 2008 R2 Developer Edition instance: 

10.50.1617.0.

The first two components (10.50) indicate the internal version number. The rest of the numbers indicate the service pack, cumulative update (CU), or interim build of the product. For SQL Server 2008, the first two components were 10.00, so it’s sometimes referred to as SQL10. SQL Server 2005 had internal numbers starting with 9.00 and was referred to as SQL9.  For SQL Server Denali, the internal number is 11.00 (the ServerProperty function shows me a value of 11.0.1440.19), so it can be referred to as SQL11, just adding to the confusion of whether the actual name of the product is SQL Server 2011.  For a complete list of internal version numbers (not including SQL Server Denali, however), visit www.sqlteam.com/article/sql-server-versions.

I was out of town when the official announcement of SQL Server Denali CTP3’s availability came out, and I didn’t have the bandwidth or the disk space on my travel computer to be able to download it, so I had to wait almost an entire week to finally download it.  Fortunately, I spent some time while I was gone reading various blog posts about the release, including one blog post by Aaron Bertrand (“SQL Server v.Next (Denali) : CTP3 Installation Walk-Through”) about some of the things to watch out for during the installation process.

Thanks to Aaron, I was able to install the Denali CTP3 without a hitch the first time I tried, and now I can start exploring all the cool new features of the next version of the SQL Server engine. You can start learning about the new engine features here.  The first difference I noticed was when I ran Microsoft’s script to install the pubs sample database; I got an error that the sp_dboption procedure wasn’t available. This procedure has been deprecated for several versions now, and the documentation has been saying we should use ALTER DATABASE instead.  In SQL Server Denali, you’ll have to avoid sp_dboption because it’s not there.  

One of the first things I did was make sure Microsoft hadn’t removed the undocumented DBCC commands DBCC PAGE and DBCC IND. A lot of my own exploration of internal structures uses these commands, and with every new version I’m worried they might disappear (they are undocumented after all), but so far my fears haven’t been realized.  Now I’m starting to run other favorite scripts that explore the metadata, particularly the Dynamic Management Objects (DMVs), to see which ones have new columns added and what new DMVs are now available. I’m sure this exploration will keep me busy for a while, as I continue to procrastinate submitting an outline for my next book.

What are you most looking forward to trying out in SQL Server Denali?