I show how to use metadata to avoid costly reads when retrieving counts, even for a subset of the table.
This month, Kay Sauter encourages us to say thanks to those who helped us this year.
I talk about some rarely-used WAITFOR functionality that I use for testing.
While I've very rarely been jealous of Oracle, 23c added something I really want in SQL Server.
I discuss reasons you might think a data change was successful when it wasn't – or vice-versa.
I talk about the evolution of my thinking on featured images, and how I use generative AI for most post companions these days.
Bit columns can be tricky, and I discuss a few techniques for sanity and performance – including filtered indexes when skew is dramatic.
For this month's T-SQL Tuesday, Steve Jones asks us to talk about problems we've solved using window functions.
UNPIVOT works great when you're populating a single output column, but I talk about how CROSS APPLY can work better in more complex scenarios.
I discuss decisions and trade-offs when migrating Stack Overflow for Teams – first to a new cluster, and then to a new version of SQL Server.
I recognize this year's recipient of my Community Influencer of the Year award.
In this tip, I talk about checklists to keep everyone involved in a deployment or migration – regardless of technical acumen – on the same page.
I talk about an inefficient but common use case for DISTINCT: removing extra rows from joins.
Over a decade of posts and videos involving bad habits and best practices in SQL Server.
SQL Server has updates that fix several vulnerabilities, for all modern versions from 2014 SP3 through 2022.
In this tip, I talk about various reasons a query's performance can change over time – even when the application hasn't changed.
I talk about making a minor schema improvement to large log-type tables containing repeated strings.
I talk about how I use dynamic SQL to handle many databases with not-quite-identical schema.
I discuss my roller coaster of emotions since learning that SQL Server 2022 would support instant file initialization for log files.
In this tip, I take a quick look at some changes to Always Encrypted that make it easier to use.
I've long been pro-schema-prefix, but in this post I talk about an exception to the rule at Stack Overflow, and why it works well.
I show how GENERATE_SERIES makes for easier set building, and decent alternatives while you're still stuck on older versions.
While it might promote less than ideal practices, I show how to use a DDL trigger to keep views in sync with a volatile schema.
In the final part of this series, I convert my T-SQL code to MySQL, so you can build a fancy archives page in WordPress.
Certainly not to encourage people to stay on ancient versions if they don't have to, I took a crack at replicating TRY_PARSE on older versions.
I show that a new experimental feature in Docker 4.16+ lets you run "real" SQL Server on Apple M1+ chips.
For my first post on Simple Talk, I rip apart a made-up stored procedure as if I had encountered it during a code review.
In the second part of this series, I show how to use a calendar table to simplify rendering an archives page.
I recently added a switch and an adapter to take much better advantage of AT&T's 5-gig service.
A good round of updates for most modern versions of SQL Server, including the first cumulative update for SQL Server 2022.
I started a short series on building visual calendars, like those seen in the monthly archives page here.
I discuss an organization’s responsibility for protecting personal information.
For T-SQL Tuesday #158, I talk about a couple of justifiable worst practices.
The story behind new SQLBlog-branded clothing (with proceeds going to The Trevor Project and Black Lives Matter).