Too often as developers, we stop work as soon as our code passes a few basic tests to confirm that it produces the 'right result' in a given use case. We do not stop to consider what other possible ways in which the code might be used in the future, or how our code will respond to common changes to the database environment, such as a change in the database language setting, or a change to the nullability of a table column, and so on.
In the short-term, this approach is attractive; we get things done faster. However, if our code is designed to be used for more than just a few months, then it is very likely that such changes can and will occur, and the inevitable result is broken code or, even worse, code that silently starts to behave differently, or produce different results. When this happens, the integrity of our data is threatened, as is the validity of the reports on which critical business decisions are often based. At this point, months or years later, and long after the original developer has left, begins the painstaking process of troubleshooting and fixing the problem.
Would it not be easier to prevent all this troubleshooting from happening? Would it not be better to spend a little more time and effort during original development, to save considerably more time on troubleshooting, bug fixing, retesting, and redeploying?
This is what defensive programming is all about: we learn what can go wrong with our code, and we proactively apply this knowledge during development. This book is filled with practical, realistic examples of the sorts of problems that beset database programs, including:
- Changes in database objects, such as tables, constraints, columns, and stored procedures
- Changes to concurrency and isolation levels
- Upgrades to new versions of SQL Server
- Changes in requirements
- Code reuse
- Problems causing loss of data integrity
- Problems with error handling in T-SQL
In each case, it demonstrates approaches that will help you understand and enforce (or eliminate) the assumptions on which your solution is based, and to improve its robustness. Ultimately, the book teaches you how to think and develop defensively, and how to proactively identify and eliminate potential vulnerabilities in T-SQL code.
Table of contents
- Basic Defensive Database Programming Techniques
- Code Vulnerabilities Due to SQL Server Misconceptions
- Surviving Changes to Database Objects
- When Upgrading Breaks Code
- Reusing T-SQL Code
- Common Problems with Data Integrity
- Advanced Use of Constraints
- Defensive Error Handling
- Concurrent Queries and Transaction Isolation Levels
- Developing Modifications that Survive Concurrency
Pages : | 389 |
Size : | 8.6 MB |
Downloads: | 130 |
Created: | 2022-02-02 |
License: | For personal or educational use |
Author(s): | Alex Kuznetsov |
Warning: Trying to access array offset on false in /home/tutovnfz/public_html/amp/article-amp.php on line 263
Others related eBooks about Defensive Database Programming with SQL Server
Download free course Programming Languages and Systems, pdf file on 1056 pages by Amal Ahmed.
This is a book on the functional paradigm in general. We'll use the world's most popular f..., download free Functional Programming tutorial in PDF (146 pages) created by Brian Lonsdorf .
Mathematica is a feature-rich, high-level programming language which has historically been used by engineers. This book unpacks Mathematica for programmers, building insights into programming style via real world syntax, real world examples, and extensive parallels to other languages.
Download free course Java 3D Programming, pdf file on 352 pages by Daniel Selman.
The book is an introductory and down-to-earth presentation of Constraint Logic Programming (CLP), an exciting software paradigm, more and more popular for solving combinatorial as well as continuous constraint satisfaction problems and constraint optimization problems. It is based on the popular,