2021 : The Year of the Exodus

In the midst of job change announcements throughout the SQL Server community, I have a little announcement of my own.

A handy search procedure

Updated this stored procedure I wrote a decade ago to search for a string in procedure bodies, object names, job steps, and more…

Bad Habits to Kick: Abusing bit columns

I talk a bit about bit columns: names with negative context, allowing NULLs, and using cryptic BITWISE operators instead of readable, self-documenting expressions.

Consolidating links and resources

I made some landing pages here, with simple and easy-to-remember URLs, presenting sets of links to very frequently-discussed topics around SQL Server.

SQL Server 2019 adventures on CentOS 7.5

After thinking setting up SQL Server 2019 on CentOS 7.5 was going to be a piece of cake, I explain how my team helped resolve a TLS issue preventing remote connections.

How to USE a calendar table – Part 1

It seems a lifetime ago I wrote about creating a calendar table; now I've started a new series showing how to use the calendar table. In the first installment, I deal with business day problems.

Performance of sys.partitions

After a question on #sqlhelp, I dug into what could be making sys.partitions slow, and how they might get the required information in a more efficient way.

T-SQL Tuesday #130: Automate your stress away

This month, Elizabeth Noble asks us to talk about things we have automated (or want to automate). I talk about a project I just started, called GetAllTheErrorLogs.

Please stop using this UPSERT anti-pattern

There is a very common anti-pattern you should avoid, involving updating a row if it exists and inserting it if it doesn't. See how to avoid race conditions and deadlocks.

Sometimes you CAN upsize a column in-place

Altering a fixed-width column on a large table can often mean either a lot of planning or a lot of downtime, but in some scenarios there may be an easy out.