Category: Blog

  • A Wellbeing Day at Redgate

    It’s a day off for Redgate today. This is our annual wellbeing day, where everyone gets the day off.

    Well, not everyone, but anyone that has to work today gets to take another day off. I missed last year’s day because of travel and commitments, but I managed to take a day off later in the year.

    For me, I was coaching in Orlando this weekend at the 2026 Sunshine Classic Girls Junior National Qualifier with my wife. Actually, I was the assistant to the assistant coach, so I was really there supporting my wife and cheerleading for the young ladies. We stayed an extra day for a cheaper flight, and to unwind a bit. The timing worked out, so I don’t use a vacation day today, though I did last Friday, which was the first day of the tournament.

    This is a relatively new perk, just a few years old, but I’m proud that Redgate tries to support and care for employees in different ways. The company has always recognized that balance in life is important and we need time away from work. We work hard when we’re working, so we need breaks.

    It’s a travel day, but these three day tournaments are long and tiring. It’s nice to have a day to unwind before getting back to it tomorrow.

  • A New Word: on tenderhooks

    on tenderhooks – adj. feeling the primal satisfaction of being needed by someone, which makes you feel that much more rooted to the world, even if the roots belong to someone else.

    I feel this all the time with my wife. She needs me, maybe as much as I need her. She tells me, and I both appreciate it and feel lots of pressure to be the person she needs.

    It’s an interesting conundrum to feel good that someone wants you around, but also feel some tension about it. It does help me stay rooted, and reminds me that not only have a made a difference in the world to someone, but I continue to do so.

    From the Dictionary of Obscure Sorrows

  • Identity Columns Can’t Be Updated: #SQLNewBlogger

    I’m not sure I knew identity column values could not be updated. I ran into this while trying to solve a problem recently and had to check the error I was getting. This post shows what happened.

    Another post for me that is simple and hopefully serves as an example for people trying to get blogging as #SQLNewBloggers.

    Setup

    A quick setup for you. I need to go to the store soon, so hence, here is my sample table (created and filled by SQL Prompt).

    CREATE TABLE Vodka
    ( id INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
      brandname VARCHAR(100) NOT NULL
      , rating TINYINT
    );

    INSERT INTO dbo.Vodka
    (
        brandname,
        rating
    )
    VALUES
    ('Grey Goose', 9),
    ('Belvedere', 8),
    ('Absolut', 7),
    ('Smirnoff', 6),
    ('Stolichnaya', 8),
    ('Ketel One', 9),
    ('Tito''s', 8),
    ('Ciroc', 7),
    ('Skyy', 6),
    ('Russian Standard', 7););

    I then tried this:

    2026-02_0157

    OK, what about IDENTITY_INSERT. I know this isn’t an insert, but I thought this “unlocked” the identity column. It doesn’t work.

    2026-02_0158

    I searched on MS Learn and found the UPDATE statement documentation. In here, you can see what it says below. I can’t do this.

    2026-02_0159

    The error reference provides no info, but apparently this isn’t a thing.

    What’s amazing to me is that in 30 years either I’ve never done this, or I’ve rarely encountered it and forgotten. Either is possible.

    In any case, if I want to change this, I likely need to “re-insert” the row with a new value (either take the seed or use identity_insert) and then delete the old one.

    Crazy.

    SQL New Blogger

    I was testing something else and ran across this. I decided it’s a great showcase of me learning something and giving a workaround. I’ll show the workaround in another post, which is actually about the thing I was doing.

    Of course, that post needs to change.

    This took about 10 minutes to write.

  • Rolling Back a Broken Release

    We had an interesting discussion about deployments in databases and how you go forward or back from the point when you discover a problem. You can watch the episode and see what you think, but one thing that Pat asked was about rolling back a broken release.

    I’ve seen a few broken releases that were rolled back immediately in my career. However, in a lot of cases, I’ve also been a part of semi-failed releases where we had to roll things forward.

    I learned early on to smoke test the system post-deployment. Either get an account, or run known queries after applying a patch to ensure things worked BEFORE I let someone know the deployment was complete.

    In one case, we applied a patch, restarted the application and started receiving errors immediately. We knew then that whatever things had changed, those changes were not in sync with the application. In this case, the application code and the database code had a small typo in a name, but late at night, we didn’t realize it was this simple.

    In the days of outage windows, we couldn’t debug for long, so I decided immediately that getting back online was important. We replaced the new .exe with the old one and I looked at each of the database commands and wrote a reversing one to reset the database. Since the system was down, there weren’t any data changes.

    In recent years, a few clients have had an easier time as they use feature flags to enable new functionality. When they’ve had an issue like the wrong name in code, they just flip the toggle to disable the feature. This rolls back the code.

    I highly recommend using feature flags to anyone working with database software changes. Coupled with zero-downtime architectures for database changes, this lets us rollback things quickly.