Advanced SQL Server Locking

I thought I knew SQL Server pretty well. I've been using the product for more than 6 years now, and I like to know my tools from the inside out.

While teaching a SQL Server programming course, I noticed that the Microsoft material presented a lock compatibility table. The same table is presented at MSDN.

Looking at this table I wondered -- is there no Intent Update lock? This led me to research locking. This article is the result of the research. I wrote this article with a specific reader in mind -- someone who understands isolation levels, intent locks, deadlocks, and lock granularity. If you don't have a good background in these areas, you might want to read up on these subjects before reading this article.

My hope is to expand your understanding of SQL Server locking, and maybe teach you a few tricks you can use when programming SQL Server.