My favorite blog post
Picking favorites is never easy. While I definitely feel like I had some more thought-provoking, controversial and laborious blog posts, my favorite would have to be my summary of 18456 errors:
When I initially wrote that post, it started as a quick listing of the new states introduced in SQL Server 2012 (involving contained databases). When I started testing various issues using both contained and non-contained databases, I quickly realized that there isn't really a comprehensive resource out there that lists the various states and helps decipher the root of the problem. There also isn't a lot of help about a more fundamental point: the error message that's relayed to the end user or application is intentionally vague. To find the real reason for the permissions issue, you need to look at the SQL Server error log.
In a more general sense, I am proud to have started getting serious again about the Connect digests. Even though most issues are way too late to consider for SQL Server 2012, I still think there is a lot of value in voting for items you think are important or worthwhile. There is even more value in expressing your business case for the change or fix – how specifically will your organization make better use of SQL Server, or in fact be able to justify a migration or an upgrade, if the issue in the Connect item is resolved?
My most popular blog post
By a wide margin, my most popular post in 2011 was actually a post I wrote in 2010. The purpose was to both express and prevent frustration in the removal of evaluation editions of SQL Server:
This process is unnecessarily complex, particularly if the expiration date has already passed. And since there's no straightforward or documented way to determine when an evaluation edition will expire, this is kind of a double-whammy for some folks. I have two related Connect items I'd like to point out:
Written in February of 2007, I expressed the fact that we have to use all kinds of cumbersome workarounds to determine when an evaluation edition installation will expire. My favorite is one that I learned of a lot more recently: check the earliest create date in sys.logins. But it is an ugly hack not unlike checking create_date of tempdb in sys.databases to determine system uptime. They've exposed this value in DMVs in the meantime; why not store the expiration date somewhere easily accessible?
The steps you have to go through sometimes to remove an instance of SQL Server are infuriating. In this connect item, filed in February of 2008, Microsoft initially responded that they were going to create a utility for cleaning up instances. Then they closed it as a duplicate. Then they closed it as "done." Then I re-opened it after discovering that the utility was not in the plans. Then it was closed as fixed again. Then I re-opened it. Then they explained that the utility would not be produced, but a KB article would be published instead. Three months later, they advised it was in edit. Four more months later, I inquired about the status of the KB article. They waited a few days and then explained that, like the utility, the KB article that they promised also wouldn't be published. Since they still haven't fixed a lot of the issues with removal of an instance, I guess they'd rather see folks wipe and pave a machine than take the risk of using MSIZAP and/or following my instructions in the blog post above. This is an embarrassing demonstration of how Connect fails (now, there are many examples out there of how Connect succeeds, so don't take this as an overall summary).
While I'm glad that I continue to help people get out of this sticky situation, and it's nice that so many express their appreciation, I do sincerely hope that Microsoft considers fixing this issue. Adding your votes and, more importantly, your comments, to the above issues will help show Microsoft that they should make these usability concerns a priority for the release after SQL Server 2012.
I had some great travel experiences last year. For work, I went to England twice (I spoke at both SQL Bits 8 in Brighton, and SQL Bits 9 in Liverpool), spoke at the SQL Rally Nordic event in Sweden and on the SQL Cruise to Alaska, and spoke for the first time at the PASS Summit in Seattle. I also spoke at countless SQL Saturdays, a handful of user group meetings, and visited our offices in Charlotte multiple times. I also got to enjoy Negril, Jamaica, with my wife, for our 1st anniversary – we went to the same resort where we were married on 10/10/10. We also went to Canada multiple times. This year I have even more travel planned – next week I embark on SQL Cruise Caribbean, then in February I'll be taking a trip to Quebec City and attending the MVP Summit in Seattle. In March I'll be hosting a curling bonspiel up near North Bay, speaking at SQL Saturday #105 in Ireland, and speaking again at SQL Server Connections in Vegas (another first for me). In April, Nicole's sister is getting married on the Mayan Riviera. Sound like a busy four months? Yeah, I thought so too.
At the end of 2010, I wrote a goals post for 2011. I did not meet all of them for various reasons, but rather than dwell on my failures (I'll be doing that quite enough on my own, thanks!), I'll treat a couple of successes:
I have plenty of items on my goals list for 2012, but not in a state to share just yet.