SQL Server

Using Temporal Tables for Slowly Changing Dimensions

One of my favorite recent additions to SQL Server is the ability to use temporal tables to retain change history. As I wrote in an earlier post on this topic, temporal tables allow one to easily configure a table keep all of the changes (including updated and deleted rows) in a designated history table. In this post, I will share…


Webinar: Change Detection in SQL Server

Change detection is a critical component of any system that moves data from one structure to another. Most data movement mechanisms are designed to move a subset of the data – only that which is new or changed since the last load. For that to work properly, there must be a reliable system for detecting delta data touched since the…


Change Tracking Inserts Require SELECT Permission

I’ve been writing about change tracking in SQL Server for some time now, but I recently came across a permissions issue on a change tracking table that I’d never encountered before. When attempting to insert data into a change tracking-enabled table using an account with no select permissions, I learned that the effective security principal must have both insert and…


Naming Convention Hall of Shame

Call me pedantic, but I can be a stickler for standardized naming conventions. Whether it’s application code, database objects, documentation, or other digital assets, I find a tremendous amount of value in establishing a set pattern for naming and formatting. Especially for organizations with a large digital landscape, having a documented and agreed-upon standard for object names can make developers…


Using SQL Server Management Studio Projects

One of the most underutilized assets in SQL Server Management Studio is the SSMS project. Within Management Studio, one can create code projects that make organizing SQL scripts much simpler, and more easily integrate with source control systems. In this brief post, I’ll show the essentials of using SQL Server Management Studio projects for T-SQL code management. T-SQL Code Management…


My SQL Server Management Studio Setup

We’re all creatures of habit, and work more efficiently when we know exactly where to find the tools we need. The same holds true with digital tools, and those of us who work with SQL Server will spend a lot of time using SQL Server Management Studio. SSMS has a lot of features, but each data professional will likely use…


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…


Introduction to 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…


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…