What’s new in SQL Server 2008 - dilemmas!

The other week I was asked by Colin Mackay of Scottish Developers to do a 15 minute talk on “What’s new in SQL Server 2008” for the Community Launch of Visual Studio 2008 and Windows 2008 in Glasgow. So I set about putting some slides together in Power Point, the first one was obvious a simple table of new features so I set about trawling Books online for a list and ended up very quickly with a list of 34 features, some were more like areas like the Auditing enhancements which covers a multitude of things to specific enhancements such as the FILESTREAM data type.

I got back to Colin saying that if I only briefly touched each of these subjects I would probably be looking at 90 minutes instead of 15! So as the audience was going to be mainly developers I should concentrate on “What’s new in SQL Server 2008 T-SQL”. As a DBA this was meant I wouldn’t be talking about some of the cool features I get excited about such as Policy Based Management (which I am sure will still be called DMF by many for a long time!), Compressed Storage, Transparent Data Encryption, Backup Compression, Resource Governor etc... which are all solid reasons to upgrade to the new version and we are currently running session on features like these at the SQL Server User Group and SQLBits Community Conferences in the run up to the release of the RTM version of SQL Server 2008.

But back to the talk in hand! I had to pick out what new T-SQL features were going to be of interest to those attending the Community Launch! I ruled out anything to do with the Spatial Data Type and indexing as Colin had already given a presentation to Scottish Developers on the subject so then I picked out some of the things from what was left including:

Row Constructors - This feature may be best know as a method to only allow multiple rows to be inserted in a single statement in an ANSI standard manner (you could always use INSERT...SELECT in previous versions anyhow!) but the ROW operator is also a powerful tool

Merge Statement – Three in one (INSERT/UPDATE/DELETE), could be very useful!

Hierarchy ID data type – This could prove useful; as one of our systems uses a materialised path hierarchy it is something I would love to compare.

Sparse Columns and Column Sets – This could help with lesser normal form designs.

Grouping Sets – More ANSI compliance which will fill some of the gaps that CUBE and ROLLUP have.

Filestream data type – This could be an end to the common question asked in the newsgroups is “Where do I store my binary data?”

User Defined Table type – User defined types may be under used area, but maybe this will help to make them more popular as they are needed for Tabled Valued Parameters.

Tabled Valued Parameters – Giving developers what they want! Another commonly asked newsgroup question “How do I pass an array parameter to a stored procedure”

Date and Time data types – About time! But don’t forget that datetime2 , datetimeoffset which also offer portability and higher precision.

Dependency Reporting – New dependency DMVs should be very useful (did you know CTP5 had 38 more DMVs and 8 more DMFs?)

I ended up with 17 slides and several demo scripts which I promptly sent off to Colin; but he pointed out I only had 15 minutes, so I ditched the demos and said I’d talk fast, because by that time it was too late to really do anything about it.

The evening went very well, Colin gave a short talk about Linq to XML, followed by my presentation and our star speaker Mike Ormondshowed us How toBuild Web Applications with Visual Studio 2008. And before you ask, no I didn’t manage stick to the my 15 minute time slot, I was 50% over, but I still have loads of material which I can use for the meeting of the SQL Server User Group in Leeds at the end of this month.