The goal of Defensive Programming is to produce resilient code that responds gracefully to the unexpected. To the SQL Server programmer, this means T-SQL code that behaves consistently and predictably in cases of unexpected usage, doesn't break under concurrent loads, and survives predictable changes to database schemas and settings. Inside this book, you will find dozens of practical, defensive programming techniques that will improve the quality of your T-SQL code and increase its resilience and robustness.
It was a nice read, but the whole concept of the book isn't very useful.
First of all, the concepts are fairly outdated and there are not a lot of references in what version of SQL Server this erroneous programming is occurring. Developers that support legacy systems, might find this useful.
Also, there are a lot of sparse problems/solutions and not a lot of "good programming logic". This means that only experienced developers can use this book. Developers that have tried to solve these problems and have attempted these erroneous approaches.
I wouldn't suggest this book to inexperienced developers.
I read the first 8 chapters in the free edition on RedGate's website, and definitely found it informative for anyone working with SQL Server. I plan to buy the book to read the last 2 chapters.
I think its value is that it covers topics that you don't find elsewhere. Don't expect the usual topics on normalization, T-SQL syntax, etc. Instead the book contains tips and tricks for the experienced developer, for example how to utilize foreign key constraints to achieve declarative denormalization as opposed to imperative denormalization (eg triggers). Hint: it uses cascading updates! There are lots of other random but worthwhile tips contained in the book.