The Bit Bucket

Data Tales 12: The case of the code that refused to execute

Data Tales 12: The case of the code that refused to execute

This is the twelfth tale in a series of stories about data. I hope you enjoy the series.

Today’s tale relates to a SQL Server Integration Services (SSIS) package. It used the same architecture as other packages and on the same server, and even though it said it was successful, nothing happened. Let’s discuss why.

Some background information

At the site, a separate SSIS server (using an earlier version of SQL Server i.e., 2014) had been deployed. The server was used to run all the organization’s SSIS packages. These packages connected to several data sources:

2025-11-17

General: Icons and the real world

General: Icons and the real world

I’ve heard people lately discussing the Save icon and how it’s not relevant now. The Save icons that are a picture of a 3 1/2 inch floppy disk are basically meaningless today.

image

I did have to laugh when I heard a kid who saw a 3 1/2 inch floppy for the first time comment that someone had made “a physical save icon”. I suppose that’s how it seemed to him.

2025-11-16

General: Please don't spam unsubscribes

General: Please don't spam unsubscribes

I receive a lot of email. Most of it is relevant to me, or at least was at some point.

Dodgy brokers

That’s not the case for all my email though. A while back, I started receiving lots of email offering me things as a recruiter. But I’m not a recruiter. However, dodgy companies have included me in a list of recruiters for some reason, and then rent out access to the list to other companies in some way.

2025-11-16

SSMS Tips and Tricks 4-12: Avoiding deadlocks when working interactively

SSMS Tips and Tricks 4-12: Avoiding deadlocks when working interactively

Several times, I’ve seen situations where a user who’s working interactively in SSMS ends up causing deadlocks and causing issues for an application that’s in use. This is even more likely for users who hold locks for long periods of time, and who work directly with production systems.

At best, they might just cause an application to hang. At worst, they might cause a poorly-designed application to terminate.

Why would a user hold locks for a long time? Many users work in what’s called chained mode, where they automatically start a transaction when they make any sort of update. Some other database engines default to that behavior, but you can choose that as a session option in SQL Server as well.

2025-11-15

Echoes from the field 7: Tracking object dependencies in SQL Server

Echoes from the field 7: Tracking object dependencies in SQL Server

This post describes how the object dependency tracking views provide more reliable insights into object dependencies than previous methods such as the use of the sp_depends system stored procedure.

During a recent consulting engagement, I was asked about the best way to determine which stored procedures and views made use of a particular table. In the past, the methods available from within SQL Server were not very reliable. Way back in SQL Server 2008, significant improvements were made in this area, yet I see so few people using them, at least not directly. Many will use them indirectly via SSMS.

2025-11-14

General: Windows of opportunity beside large companies are often short-lived

General: Windows of opportunity beside large companies are often short-lived

I posted yesterday about how a small company can grow by being hired by a large company. But there’s another key opportunity that’s often even bigger.

Smaller companies often find a gap in the offerings of larger companies, and are able to create their own offerings to fill the gap.

Gaps are everywhere

I’ve worked with data for a very long time. And over that time, I’ve seen countless small companies and startups created. So many times, what propels them forward is finding a gap in a popular offering from a large company, and quickly filling that gap with their own offering.

2025-11-13

Writing SQL Queries for MySQL Online Course Released

Writing SQL Queries for MySQL Online Course Released

Our courses on writing T-SQL queries for SQL Server, SQL for PostgreSQL, and SQL for Snowflake have all been very popular. But we’ve had so many requests for a similar course targeting MySQL, and we’ve delivered that now.

We’re pleased to announce that this course is now available, and it’s low cost. Just $95 USD. It’s easy to set up to do the practical work so you get real experience with MySQL. You can find details of the course here:

2025-11-13

General: Why large companies hire small companies

General: Why large companies hire small companies

One of the best ways to grow a small business is to find something a large business needs, yet for some reason, they can’t or won’t do themselves.

This happens for many reasons:

Specialized Expertise

Small companies often have deep niche skills that the large company either doesn’t have or can’t easily build internally (e.g., a boutique AI consultancy, a specialist in SQL Server performance tuning).

These small firms might work across many clients, so they’re exposed to the latest best practices and pitfalls the big company hasn’t yet encountered. Large companies often also have marketing-driven outcomes rather than just technically-driven ones.

2025-11-12

SSMS Tips and Tricks 1-13: Database scoped configurations UI

SSMS Tips and Tricks 1-13: Database scoped configurations UI

The SQL Server team has been working towards making databases more standalone, and less dependent on the server, for quite a while. SQL Server 2012 was the first version that had a concept of a contained database. The thinking was that you should be able to move databases around to different servers and, in that case, users would follow with the database because they didn’t have a dependency on logins, which was the case up until then.

2025-11-11

Echoes from the field 6: Controlling stored procedure execution context (Part 2)

Echoes from the field 6: Controlling stored procedure execution context (Part 2)

This second article in a two-part series shows you how to control the execution context of stored procedures. This time, it’s by using digital signatures and code signing.

During a recent consulting engagement, I noticed that the client needed to control the security context a stored procedure was running under but was using a convoluted method to do so. Changing the security context that stored procedures run under is a common requirement, letting users execute code via stored procedures that they aren’t allowed to execute directly.

2025-11-10