A Windows error message

Read the error message

This post is brought to you — indirectly — from a boss I loved working for, on a project which almost killed me, at a company which I had to walk away from to restore my mental health. I learned a great many things from my boss (and yes, we are still friends). I learned
-> Continue reading Read the error message

Xero logo

Using the Xero OAuth 2.0 API from a .NET Core console application

This is not a post about SQL Server, but I need to write about something that I’ve been struggling with for a number of weeks so that other people don’t have to. A few months ago Xero announced that they would be moving their API authentication mechanism to OAuth 2.0. This is good news for
-> Continue reading Using the Xero OAuth 2.0 API from a .NET Core console application

Green rope meshwork

Using indexed views? What is an imprecise or non-deterministic convert?

After last week’s post about using WITH (NOEXPAND) to query indexed views even on SQL Server Enterprise Edition, this week is a short but interesting side-road into deterministic values, and why it is important to get your data types correct. Longtime readers will know I care deeply about data types. Here is a T-SQL query
-> Continue reading Using indexed views? What is an imprecise or non-deterministic convert?

A filing cabinet drawer containing index cards

Using indexed views? Don’t forget this important tip.

Today after fighting with designing a view that let me create a clustered index on it (indexed views — also known as materialized views — are awesome in the right context!), I kept running into the same problem whenever I clicked Display Estimated Execution Plan in SQL Server Management Studio. The problem was that the plan was doing
-> Continue reading Using indexed views? Don’t forget this important tip.

Convert legacy password storage without aggravating your users

In a previous post I wrote about storing password hashes in a database, which raises the question of how to convert an existing legacy password storage system to use hashes (or even no passwords!) without annoying the people who use your system. Dial ‘S’ for Secret Let’s assume that you have inherited a database which stores passwords
-> Continue reading Convert legacy password storage without aggravating your users

What is a container anyway?

Recently there was a thread on Twitter which established that a lot of IT people didn’t know the difference between virtual machines and containers. | ̄ ̄ ̄ ̄ ̄ ̄ ̄|| CONTAINERS || ARE NOT | | VIRTUAL || MACHINES || _________| (__/) || (•ㅅ•) || /   づ — Ian Coldwater 📦💥 (@IanColdwater) June 9, 2019 I felt like this
-> Continue reading What is a container anyway?

Containers and data: you gotta keep ’em separated

There was an interesting conversation on Twitter recently, between Grant Fritchey (blog | twitter), Kenneth Fisher (blog | twitter), Anthony E. Nocentino (blog | twitter), Vicky Harp (twitter), and me about containers and SQL Server. Here’s the summary tweet: Already mentioned, you can use a persisted storage volume to keep your databases around (thanks @_randolph_west
-> Continue reading Containers and data: you gotta keep ’em separated

Ship Containers

SQL Server containers no longer being updated in the Docker registry

In October 2018, Microsoft announced a change to the source of their Docker containers. You should be using the new Microsoft Container Registry (MCR) as the source for official Docker container images for Microsoft products. While existing container images in the Docker Hub are not affected, you may not get updated images unless you switch.
-> Continue reading SQL Server containers no longer being updated in the Docker registry

Speaking at SQLBits in March 2019

I have been selected to speak for a second time at SQLBits, which is being hosted in Manchester UK this year from 27 February to 2 March 2019. My session is called An overview of SQL Server 2019 for the busy DBA / developer. Here is the abstract: SQL Server 2019 is a major new
-> Continue reading Speaking at SQLBits in March 2019

dbForge Studio logo

Database modelling in a post-SSMS world: dbForge Studio

A few months ago, Microsoft announced that SQL Server Management Studio (SSMS) will no longer include the visual Database Diagrams feature from v18.0 onward. [Edit: Microsoft reversed this decision with SSMS 18.1, and the designer is back. Apparently a lot of people missed it. Keep reading for the original post.] When releasing a new version
-> Continue reading Database modelling in a post-SSMS world: dbForge Studio