Posts

Opinion: Most Corporate Compliance Training Isn't Training and Doesn't Work

Opinion: Most Corporate Compliance Training Isn't Training and Doesn't Work

Recently, I read a news report about a study that concluded that cybersecurity training doesn’t work. I can’t say that I’m surprised by that.

I spend a lot of time mentoring on client sites, and many of the clients are large organizations. Often these organizations require me to attend “training” on a regular basis, to satisfy their corporate compliance goals.

I don’t mind doing this at all, even though it’s incredibly repetitive. The course on conflicts of interest, or handling private or sensitive data, or IT security at company A is invariably almost word for word the equivalent course that I do at company B, and company C.

2025-12-04

SQL Interview: 93 Rebuilding a clustered index

SQL Interview: 93 Rebuilding a clustered index

This is a post in the SQL Interview series. These aren’t trick or gotcha questions, they’re just questions designed to scope out a candidate’s knowledge around SQL Server and Azure SQL Database.

Section: Administration Level: Medium

Question:

The table dbo.Customers has a clustered index CX_dbo_Customers on the CustomerID column. It also has two non-clustered indexes. One is on the CustomerName column and has an included column of PhoneNumber. The other non-clustered index is on the CityName column.

2025-12-03

Fix: SQL Server Reporting Services RDLC report designer and Visual Studio 2026

Fix: SQL Server Reporting Services RDLC report designer and Visual Studio 2026

I recently upgraded my laptop to Visual Studio 2026. The upgrade went quite smoothly except for one thing.

I received an error that told me that the RDLC Report Designer for use with SQL Server Reporting Services wasn’t going to work any more. In my case, we use that report viewer even without Reporting Services, by just uploading datasets in applications. I’ve found it very convenient. But I still needed the report designer so I could add new reports or change existing ones.

2025-12-02

Fix: Getting R and Python to actually work on SQL Server 2022 and 2025

Fix: Getting R and Python to actually work on SQL Server 2022 and 2025

This is an update of a post that I wrote for SQL Server 2022 . Unfortunately, those instructions needed to be updated, not because anything notable has changed in SQL Server 2025, but because the recent distribution of Python has changed. Thanks to Peter Bishop for reporting what was now missing.

R and Python in SQL Server

One of my more surprisingly popular blog posts in the past talked about Machine Learning: Testing ycd our installation of R and Python in SQL Server 2017. The problem is that SQL Server 2022 changed things, and then there is a further issue with the Python distribution.

2025-12-01

Book Review: You Don't Have to Have a Dream

Book Review: You Don't Have to Have a Dream

I recently listened (via Audible) to You Don’t Have to Have a Dream by Tim Minchin. I’m an unashamed fan of Tim’s and I was really pleased to see that he had published new content. Once again, a bonus was that Tim also narrated it. (I prefer books where the author reads it, not a hired voice actor).

Content

I was seriously surprised by how short this book was. I’m not sure how that made me feel: probably that I was hoping for more. This book is basically Tim repeating three graduation speeches that he’s given over the years, interspersed with some commentary about them. Generally, Tim tends to write fictional books.

2025-11-30

SQL Interview: 92 SELECT without specified order

SQL Interview: 92 SELECT without specified order

This is a post in the SQL Interview series. These aren’t trick or gotcha questions, they’re just questions designed to scope out a candidate’s knowledge around SQL Server and Azure SQL Database.

Section: Development Level: Intro

Question:

You issue the following query against the dbo.Customers table:

SELECT * FROM dbo.Customers;

The table has a clustered index on the CustomerID column.

When you have not specified an ORDER BY clause, which order will the rows be returned in?

2025-11-29

Book Review: How not to Become a Grumpy Old Bugger

Book Review: How not to Become a Grumpy Old Bugger

I recently listened (via Audible) to How not to Become a Grumpy Old Bugger: A Bloke’s Guide to Living a Better Life by Geoff Hutchison. It was only a few hours long, and the title sounded a little amusing, so I decided to listen to it. A bonus was that the author was the narrator. (I prefer books where the author reads it, not a hired voice actor).

Content

I was surprised by how broad the list of topics covered in the book was. Geoff covers the obvious topics like what on earth it means to be happy, but he also dives into darker areas with, for example, a chapter on death.

2025-11-28

SSMS Tips and Tricks 7-17: Git integration

SSMS Tips and Tricks 7-17: Git integration

Early versions of SSMS included the ability to work with source control systems. The way that worked was that SSMS implemented an SCCI (Source Code Control Interface). It would let you connect to any source control system that implemented that interface.

For a while, SSMS lost any ability to talk to source control. I thought that was a pity as I make extensive use of projects within SSMS and source control is where I want them stored.

2025-11-27

SQL: ANSI string concatenation with the || and ||= operators

SQL: ANSI string concatenation with the || and ||= operators

One change that was applied to Azure SQL Database a while back, and is coming in SQL Server 2025, is the use of ANSI string concatenation operators.

SQL Server has been using the + sign as a string concatenation operator since the early days, but that’s the same operator that’s used for numbers, and it’s not the ANSI standard. You’ll find that other database engines like PostgreSQL do not use + to join strings together; they use the || operator. I’ve been writing quite a lot of PostgreSQL lately, and avoiding using + to concatenate strings is always a challenge for my coding muscle memory.

2025-11-26

SQL Interview: 91 Table variables and memory

SQL Interview: 91 Table variables and memory

This is a post in the SQL Interview series. These aren’t trick or gotcha questions, they’re just questions designed to scope out a candidate’s knowledge around SQL Server and Azure SQL Database.

Section: Administration Level: Medium

Question:

A developer in your team has observed that your database servers are very I/O bound. He thinks the I/O is simply too slow.

What he’s suggesting is that you replace all use of temporary tables with table variables. His argument is that they are memory-based instead of disk-based and that this should help to reduce the I/O load. Your applications make heavy use of temporary tables, and most have large numbers of rows.

2025-11-25