Richard Douglas is a SQL Server Professional working in the UK where he recently worked as a DBA in women's clothing, not literally he hastens to add! He is certified in SQL Server 2008, runs the Maidenhead SQL Server User Group Pass Chapter and is on the organising committee for SQL Relay. In his spare time plays the trumpet in local symphony orchestras.

This month’s T-SQL Tuesday which is now at a staggering number 53, can it really have been going that long? Is hosted by the awesome Matt Velic. Matt posted this invitation T-SQL Tuesday #53 – Why So Serious? (Announcement) on April Fools Day and so the subject is that of pranks. Having posted a couple of April Fools day posts myself this year I thought why not share an old story.

My disclaimer here is that this happened a looooooooong time ago, in fact I’m quite impressed I remembered it to be honest. Do not do this, it’s not big and it’s not clever, quite funny, but not big and not clever. In fact it’s the opposite, it’s so simple it’s brilliant. Sorry, lost my remorseful inner voice there for a moment.

It all happened one fine summer’s day, OK it probably wasn’t summer but I don’t remember and you weren’t there so you can’t correct me even if I was wrong. It hadn’t been long since my company had been using SQL Server – see told you it was a long time ago – and we needed some help from the infrastructure team. On this occasion, the help we required wasn’t coming and one of us said something like “just do it, we’ll only keep bugging you until you do it” in a feeble attempt to be playful about the fact we were waiting and by now pretty annoyed. At this point the guy dug his heels in and said it had to wait and went back to playing Warcraft or whatever LAN game was the flavour of that period.

I don’t recall what it was we were asking him to do, but it was only a 5 minute job and to be honest were were a bit annoyed at the response. To be fair we were trying to bypass normal helpdesk request protocol but they weren’t “that” busy that it couldn’t have been sorted within an hour or so and we needed this to carry on with whatever we were working on. At this point it was down to a matter of principle the battle of wills between “us and them” started. This meant war!

It started off pretty light heartedly, we used to share a coffee round and so we’d offer to make coffee seeing as we couldn’t work on this part of the project anyway and interject a few “have you done it yet’s” into the conversation. Then there were a few phone calls and emails as time through the day went on. Mid afternoon the guy walked past us and said something like “There’s no way you’re going to be able to make me do it now, I’m going offsite to site x to fix issue y and then I’m going home”. There were a few other words, but I can’t guarantee you are over eighteen so they won’t be appearing here.

At this point most people would have resigned themselves to the fact it was going to be a long wait. For us it was more a case of “Ha, challenge accepted” and to quote Barney from How I Met Your Mother further, the solution was “Legen – wait for it – dary, Legendary”. As we’re a few months behind in scheduling please don’t ruin the ending of HIMYM for me, although to be fair I am quite good at guessing the endings. I worked out the twist in The Sixth Sense and the end to Titanic too.

So, quite a big introduction so far. You’re probably wondering what we did that involved SQL Server to make him fix our problem, I would too in your position. Unfortunately it’s not that time yet. Let’s fast forward to the next morning.

It had just turned 9am and this infrastructure guy rushes in (he was supposed to start at 8) and threatened to kill us. We asked if he was ready to fix our problem yet. He said no, we said we would do it again and again until he did it and he conceded. Woohoo victory was ours.

What had we done? Time to reveal all. You may recall that I said we sent a few emails, you may also recall that the infrastructure guy said he was going offsite. Now those people who worked across multiple sites needed to be contactable at all times in case the was a serious problem, this meant they were given a mobile/cell phone. Can you see where we went with this? We needed a way to keep pressure on this guy to do this task for us even when we were working on other things. To be fair looking back it was a bit harsh, but as you can see it did work.

In the end what we did was to create a SQL Agent job which ran once a minute between 10pm and 4am which sent various chase up messages to him during this period. At this time there weren’t smartphones, in fact if you had Snake on your phone then you felt pretty smug. Therefore you had to have a service that would forward on emails to your phone as text messages. As we also had the same work phones we knew how the forwarding worked, took a guess at his email address based on his phone number (admittedly this part could have gone disastrously wrong) and set up an operator for this account. Oh yes, we had him notified about the completion of the job too. After all he was in the infrastructure team and he should be aware of that kind of thing in case it was important!

The code to generate the random messages resides on a decommissioned server somewhere, but I think we created a table with a bunch of email titles in it, called it something like dbo.insults and then used the minutes from the current time and the modulo operator to pick which insult, err I mean subject header to use.

The story doesn’t quite end there. About an hour later his girlfriend turned up at our desks, she worked at the same place too, also late. She wasn’t particularly happy. I must admit I don’t think I had heard most of the words she was saying before, but the gist of it was that she told him to fix our problem and we were not to pull that [adjective retracted] stunt again.

Things were a little strained for a week or so after, but we did receive much better service from that point on whenever we requested something. If you would like some advice on how you can treat your customers better, then check out this blog post on How to provide a better customer service.