Trade in Yours
For a £2.72 Gift Card
Trade in
Have one to sell? Sell yours here
Sorry, this item is not available in
Image not available for
Image not available

Tell the Publisher!
I’d like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Defensive Database Programming with SQL Server [Paperback]

Alex Kuznetsov
4.0 out of 5 stars  See all reviews (2 customer reviews)

Available from these sellers.


Amazon Price New from Used from
Paperback --  
Trade In this Item for up to £2.72
Trade in Defensive Database Programming with SQL Server for an Amazon Gift Card of up to £2.72, which you can then spend on millions of items across the site. Trade-in values may vary (terms apply). Learn more

Book Description

31 May 2010 1906434492 978-1906434496
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.

Product details

  • Paperback: 394 pages
  • Publisher: Red gate books (31 May 2010)
  • Language: English
  • ISBN-10: 1906434492
  • ISBN-13: 978-1906434496
  • Product Dimensions: 23.4 x 15.6 x 2.1 cm
  • Average Customer Review: 4.0 out of 5 stars  See all reviews (2 customer reviews)
  • Amazon Bestsellers Rank: 1,234,655 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, and more.

Product Description

About the Author

Alex Kuznetsov has been working with object oriented languages and databases for more than a decade. He has worked with Sybase, SQL Server, Oracle and DB2. He regularly blogs on, mostly about database unit testing, defensive programming, and query optimization. Alex has written multiple articles on and, and contributed a chapter to "MVP Deep Dives" book. Currently he works with DRW Trading Group in Chicago, where he leads a team of developers, practicing agile development, defensive programming, and database unit testing every day. In his leisure time Alex prepares for and runs ultramarathons. --This text refers to an out of print or unavailable edition of this title.

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

What Other Items Do Customers Buy After Viewing This Item?

Customer Reviews

5 star
3 star
2 star
1 star
4.0 out of 5 stars
4.0 out of 5 stars
Most Helpful Customer Reviews
1 of 1 people found the following review helpful
4.0 out of 5 stars very good stab at a difficult subject 2 Sep 2010
This is a very good book that is based on practical experience. Reading it would save you trying days of coding and testing. I am very pleased to have read it and advise any sql coder to go through it.

It is very specific to sql server, rather than generic theory that may or may not apply to your installation.

Covers so many good ideas that will take years to understand and learn. some of which I am generally aware of but have not understood in details. Such as the behaviour of set and select.

Attempt to solve the problem with code reuse which is an almost impossible problem. SQL code is routinely duplicated to maintain a good performance (e.g. scalar functions aren't used - i've coded them in then out when things slowed down), so here there are some practical suggestions that should help the disillusioned.

I don't think i can fault it in any of the examples apart from a couple of typos it is very well written, at times there seem to be pages and pages of code with slightly different versions, but I guess that gives a very clear and step by step examples to prove solid points.

OK, I am not sure about de-normalising for sake of enforcing business logic in constraints, I am not sure if i can get this passed the architecture team (they will want to keep business rules in the application layer - despite the arguments in the book to the contrary), still I am really impressed with the creative approach (don't know if anyone else thought of doing this before), and will try to apply - but only if I can see the benefits outweigh the data duplication and the additional code complexity and its a big ask...
Read more ›
Comment | 
Was this review helpful to you?
4.0 out of 5 stars A valuable read for experienced SQL developers 13 Feb 2014
Format:Paperback|Verified Purchase
Defensive programming is not a new idea but has been around for 30+ years. This book applies the tenets of it to database programming to produce more robust code that is safe to run in unexpected situations.

The subject of this book is to some degree also covered in other books on SQL development, where authors usually recommend to avoid 'risky' practices that might unexpectedly break one day, e.g., after an update of server software. However, it's usually not covered at depth because it's a rather special subject that will mainly appeal to expert developers who have already mastered all the basics of SQL and database programming.

The book focuses on a special, advanced subject, and therefore it is most useful for experienced SQL developers. In it the author looks into a number of typical pitfalls that most SQL programmers will experience the hard way one day in their careers. He offers valuable, practical advice how to avoid these pitfalls before they hurt. The text is well-written and clearly the author knows the subject very well and has significant experience in the field. Some of the practices highlighted in this book and discouraged as 'potentially risky' by the author are of the type that a 'good' programmer will not do anyway. As I myself know only too well often this is more inspired by gut-feeling than really solid knowledge, experience or systematic experimentation.

This book fills the gap between gut-feeling and knowledge in selected areas of SQL development by pointing out why the gut-feeling is indeed justified, why and in what way the practices are potentially problematic, what their impact may be if things go wrong, and how the risk can be avoided and at what price.

In my view the book will be a valuable read for most experienced SQL developers.
Comment | 
Was this review helpful to you?
Most Helpful Customer Reviews on (beta) 5.0 out of 5 stars  5 reviews
6 of 6 people found the following review helpful
5.0 out of 5 stars Useful and Informative.... 16 Jun 2010
By H. Treftz - Published on
I have worked with SQL Server as a developer and a programmer for over 15 years so I have read a lot of books about the product and T-SQL. This is one of the most informative books I have read on SQL in a long time because it made me think a little differently when looking at code. It presented me with situations I haven't seen before (for example a connection setting it's own rowcount explicitly) and the implications that could have.

It really makes you think about the what-if, what happens if your caller does something unexpected and what you might do to mitigate this risk. There are not a whole lot of SQL Server programming books that I learn something from anymore, this was one of them.
2 of 2 people found the following review helpful
5.0 out of 5 stars Great reading for database practitioners 28 Jan 2011
By Plamen Ratchev - Published on
This is excellent work on a very important topic. Defensive programming is very often misunderstood, especially in the database world.

Alex deals with this "inconvenient" topic using very practical approach. Instead of filling pages with theory and reasons why defensive programming is good, he dives right into simple examples from the daily work of every database professional. We have all seen (and ignored) many of these issues, but demonstrating how this affects our code and how simple it is to avoid these problems makes this book shine. It is not a complete catalog of defensive techniques, rather a good collection of examples to illustrate the need for defensive coding and applicable methods. It builds the mindset to think proactively and create robust solutions.

The book includes coverage of the following topics: basic defensive technique, code vulnerabilities, changes to database objects, upgrades, reusing code, data integrity and constraints, error handling, concurrency.

"Defensive Database Programming with SQL Server" should be required reading for all SQL practitioners.
1 of 1 people found the following review helpful
5.0 out of 5 stars Excellent book 13 April 2011
By Rand E. Gerald - Published on
Format:Paperback|Verified Purchase
I was at a presentation by the author about this subject last year (March 2010) even before the book was published. Unfortunately, the book was not published until several months later. If I recall correctly, I ordered it on a pre-release basis. I have not been disappointed.

If you go through the book you will very likely find reference to oversights that you may have made in the past and how to avoid them in the future.

The only negative I can say about the book is that I wish that it had more of the author's helpful hints. A good subject, perhaps, for a Volume 2.

By the way - where did the author get that beautiful cover photo? Where was it taken?
1 of 1 people found the following review helpful
5.0 out of 5 stars When TRY ... CATCH is not enough. 21 Oct 2010
By Alejandro Mesa - Published on
Format:Paperback|Verified Purchase
I really enjoyed reading "Defensive Database Programming with SQL Server", and I would recommend it to any SQL Server developer. My favorite chapter was "Chapter 7: "Advanced Use of Constraints", where the author demonstrates the power of the declarative part of the model.

This is not a book for beginners that want to learn about T-SQL language, but if you are already familiar with the language then you will learn about best practices for making your program more robust.

Walk with the author through those situations that can make your code to break. Being aware of these situations is a good start, learning how to defend your code from them is what this book is all about.
5.0 out of 5 stars Defensive SQL Server programming 'gotchas' 14 Nov 2010
By JRGWV - Published on
This is a great book to read for all levels, as it exposes techniques to test and defend against common mistakes and vulnerabilities that TSQL lends itself too. The book provides lots of example code that you can walk through to get the hands-on experience, to prove to yourself how the code works. The book also offers some brevity, so that you can quickly move through the chapters. One of the parts I enjoyed was the explanation of triggers, constraints and when different situations call for using them. Another chapter of interest was the Defensive Error Handling, which shows some of the limitations of the Try Catch error handling in SQL Server 2005 and 2008. Overall, I found this book to be very helpful and I will begin using some of the takeaways I found immediately.
Were these reviews helpful?   Let us know
Search Customer Reviews
Only search this product's reviews

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
First post:
Prompts for sign-in

Search Customer Discussions
Search all Amazon discussions

Look for similar items by category