SQL Server

Resurrection of OLE DB

Long Live OLE DB!

Back in August of 2011, an announcement from Microsoft started a wave of angst among those who build and support solutions on the Microsoft data platform. In that brief blog post, the data access team announced the deprecation of the OLE DB data interface driver, and that SQL Server 2012 would be the last version to include OLE DB. The…


SQL Server temporal tables

SQL Server Temporal Tables

Temporal data storage, which was defined in the ANSI SQL:2011 standard, describes an architecture in which relational databases maintain row-level versioned copies of data. When using temporal data, the database does automatically what many DBAs and application developers have had to do manually for years to track point-in-time versioning for individual tables. Starting in 2016, Microsoft added SQL Server temporal…


SQL Server Development Toolbox

My SQL Server Development Toolbox

Having the right tools for the job makes the work much more efficient. However, for those just starting out in SQL Server land, it may not be clear which tools are useful or appropriate for a given task. I regularly field questions about which tools I use on my development machines, and why. To that end, I’ve compiled a brief…


SQL Server 2016 Service Pack 1 Changes Everything

Earlier today, Microsoft announced the release of Service Pack 1 (SP1) for SQL Server 2016. Pay close attention to this announcement, because this is not a typical update. Service Pack 1 unlocks most all of the programmability features found in Enterprise Edition, making them available in lower-cost (and even free) editions of SQL Server. Folks, this is a huge change…


DevConnections 2016

Speaking at DevConnections 2016

I am excited to share that I will be presenting at the DevConnections conference in Las Vegas in October of this year. This is my fourth (if I remember correctly) time to have spoken at DevConnections, and the first time I will have delivered a full-day workshop there. This year I will present one workshop and two regular presentations: Building…


Getting Started with Change Tracking in SQL Server

Change tracking for SQL Server is a flexible and easy-to-use technology for monitoring tables for inserts, updates, and deletes. In this post, I’ll discuss getting started with change tracking in SQL Server, and will show an example of how to get started with it. Change Tracking Overview Change tracking is a lightweight mechanism for tracking which rows have been inserted,…


No Picture

T-SQL Quirk: Using NOT IN With NULL Values

There is a little quirk in T-SQL with NULLs when using the NOT IN qualifier.  I use the term “quirk” loosely here because the behavior is exactly as intended, though it may not be obvious.  The following query shows a trivial example: At first glance, one might think that we’ll see returned the row for the Chevy MINIVAN.  However, when…


SQL Injection

SQL Injection… is this still a problem?

For some reason, today I came across at least a half-dozen blog posts and articles about how to avoid SQL injection attacks.  It had been a while since I had read about SQL injections, and an odd thought comes to mind: Why is SQL injection still an issue? This is such an easy problem to get around.  The use of…