Categories
T-SQL Tuesday

T-SQL Tuesday #191 – Art of the Parsable

This month’s invitation from Steve asks us about our favourite string parsing routines. It conveniently popped up as I was trying out the new Regular Expression (Regex) functions in SQL Server 2025. I adore them for handling string validation and parsing, which I’ve historically done in .Net or PowerShell. Now that we’re on the cusp of adoption […]

Categories
SQL

Exploring Regular Expressions in SQL Server 2025

String parsing is a regular occurrence when it comes to data engineering. Splitting strings, converting, combining – all in an effort to bring some order. Sometimes we need a more powerful tool, and that would be Regular Expressions (Regex). Regular expressions are something I have a fondness for under the right conditions, and with them being introduced […]

Categories
SSRS

Review Security Drift in Reporting Services

Reporting Services deployments aren’t exactly the latest fashion, so any you stumble upon are probably a little dated and in need of TLC. One place to review would be the security. Security in SSRS comes in two flavours: Item level roles are what we’re digging into here. Before we start, it’s worth defining a simple […]

Categories
Azure

File Operations in SharePoint Using Logic Apps and App Registration

The standard SharePoint connectors in Logic Apps authenticate with Entra accounts. When you want to use an App Registration instead, it’s a little trickier. In this post, we’ll show how to interface with the SharePoint REST API using an App Registration authenticated with a certificate securely stored in a Key Vault. Configure app registration First […]

Categories
SQL

Why Do We Still Use RAISERROR?

I don’t use RAISERROR often – I usually forget which severity code to use. After looking at a sprinkling of them recently I decided it was time for a refresher, so come along for the ride. If you check out the online documentation it states that “New applications should use THROW instead”. It also sounds like its used to raise […]

Categories
SQL

How Many Rows Are In That Table?

A question I ask myself often when exploring unfamiliar data sets. So here’s a quickie: If you’re in need of a quick measuring stick, this should do the job. Microsoft does note that the row_count field is an approximate value in this DMV. It’s taken from the internal table PARTITIONCOUNTS which can be cached, but […]

Categories
T-SQL Tuesday

T-SQL Tuesday #190 – Mastering Skills

This month’s T-SQL Tuesday invitation from Todd asks us to consider mastery of skills. Learning is a continual cycle, a part of our everyday – be it on a personal or professional journey. Mastering is more than simply learning though. Todd hits on key terms in his invitation – commitment, planning, deliberate practice, consistency. Ticking those boxes […]

Categories
SQL

Batching Large Data Changes Using Key Ranges

Handling data modifications to large tables can be tricky. We can end up with long running queries and large transactions. Efficiently handling them comes from batching. Effective batching in general helps us by: In this post we’ll take a look at a key-range approach to solve the issue. With this solution a batch will be […]

Categories
SQL Server

Discovering More About Join Operator Internals

In the previous post I explained Join Operators in SQL Server. Whilst compiling that I dug a little deeper and came across a few interesting points I thought were worth sharing. Let’s look at behaviour of the operators which may occur under specific conditions. Hopefully you find them as interesting as I did: Optimised nested loop […]

Categories
SQL Server

SQL Server Join Operators Explained

When reviewing our execution plans we’ll see joins executed using different operators. The type of operator is chosen based on the data that’s available to join and how the optimiser wants to execute it. In this post we’ll take a look at what the operators are, when they are used, and how they work. These […]