Thursday, December 18, 2008


The other day I blogged a list of 'My Firsts'. Simple things like first kiss, first state I lived in, and so on.

After reading this blog post, a twitter friend replied that he really enjoyed it. This was over twitter, of course. I went on to tell him that I had wanted to do one about SQL Server Firsts, and needed help. He came up with a couple 'Firsts', as did I. We did this on Twitter, and before we knew it, 40 tweets had come in with different ideas on 'Firsts'. All this occurred in the Twitterverse in under 1 hour.
I am sure that more are to come.

So, here are some sample ones i had come up with prior to this Twitter Attack.

1. table created without indexes
2. dropped data
3. dropped procedure
4. dropped table
5. dropped database
6. caused corruption

Now, I will proceed to unveil the ones that came in over the Twitterverse, giving props to the tweeps that tweeted them. Think about these, apply them to yourself. When did you do similar actions? which ones have you not done, thankfully?

1. checked "boost priority"

1. setup transactional replication

1. First time you forgot a where clause for an update or delete statement

1. Delete from XACT --Where XACTId = 102455312

1. corrected a developers faulty delete script and forgot a parenthesis, resulting in a 56M row delete that then had to be restored
2. Accidentally "Denied All" on SSO users table to to Authenticated Users

1. 1st time you accidentally deleted the Customers table in production replaced deeply nested cursors with a single set based operation (that was a rewarding day)
2. wrote SELECT * FROM table that made it into production
3. The first time I looked at an execution plan and understood what was going on.

1. When you dropped a table from production?
2. First time you truly grokked set-based SQL instead of doing things procedurally?
3. Tuned a query from 30 minutes down to less than one?

1. Built first sql cluster
2. Locked sql service acct due to rdp w/ a bad pwd
3. Stepped on stage for 1st time to host SQL Quizbowl. May have peed myself a little.

1. rebuilding index during production day
2. manual failover of cluster during production day
3. use ent mgr to reposition a column in table
4. old auditor that you had no idea how logins get added to a server
5. completely filled backup drive
6. pipe trace to table, fill data drive on prod server
7. Passed cert exams
8. attend PASS
9. migrate from sybase to mssql #
10. all developer to the mat because they knew crap about tsql and db design
11. wrote first article (for SSC)
12. presented talk at PASS
13. wrote first article for simple-talk
14. attend first PASS volunteer outing at Billy Bob's
15. server powered down because of routine building power outage would not come back up
16. rebuild master

1. started a job, instead of viewing history
2. created a history table on oltp system, forgot PK, clustered and non clustered indexes, just a heap
3. used tsql to perform backup, not the UI
4. created a trigger
5. wrote a cursor
6. then wrote a cursor that never stopped
7. then wrote a cursor that never stopped, and inserted too many records
8. wrote a ShowContig, got the results, and understood them
9. wrote a Show_Statistics, got the results, and understood them
10. performed index maintenance on a ginormous table, in production, during day, during busiest time of day
11. understood coalesce
12. presented on a SQL topic you knew little about to a large crowd
13. wrote first article for SQL Server Central
14. wrote first article for
15. started a transaction. performed an update. confirmed update succeeded. went to lunch. got a phone call...
16. created a Crystal report against SQL Server db
17. created a Reporting Services report against SQL Server db
18. moved master db
19. moved tempdb

For a full list of those that were tweeted, and others not present here, check out the Search feature of Twitter at and see how many #sqlfirsts are there. More have shown up since last night. I am sure that more will come in as time marches along.

I will gather more of these, clean them up, and sometime present them as a more cohesive list of SQL firsts. I believe that it's important for each of us to review items like this from time to time, and make a mental note of where we are in our respective career paths. We can then better realize that we all have made mistakes, all have learned different things along the way, and more importantly, can all help each other out. That is why you are reading this far anyway, you have a desire to learn more, to help yourself, and possibly help others. Reflect on how far you have come, and make goals for how far you need to go.

No comments: