Bucket List

Comments: 3 Comments
Published on: October 26, 2010

I have no intentions of kicking the bucket – ever.  I have no intentions of getting old either.  We’ll see how all of that works out.

Bob Pusateri (BlogTwitter) posted his bucket list this morning and it seemed like an interesting topic for an early day such as this.  You can see his Bucket List here.

Pilot an aircraft – preferably something very fast.  I would even settle for a ride in a cockpit of an F-18 (Blue Angels) or F16 (Thunderbirds).  I know – the F-16 is a single pilot cockpit.  The point is – I want to ride up front in something really fast.

Skydiving – at least once.

Start my own Business.  It would be nice someday to be a consultant.

Write A Book.  Someday it would be nice to at least contribute to a publication, preferably about SQL Server or something career minded.

European Vacation.  I would like to take my family on a vacation to Europe.  I have been and lived there.  It would be good for the family to see different parts of the world.

Speak at the Summit.  I think I will practice a lot before that happens.  I will start submitting sessions for Summit, beginning with 2011.

Be Teleported.  I don’t want to experience the same things as we see in Willy Wonka.  I would rather it be more like Star Trek teleportation.

See Bears.  I would like to attend a game at Soldier Field and watch the Bears play.  Even better if I could take a couple of my sons with me.

Q3 Review

Categories: News, Professional
Comments: 1 Comment
Published on: October 26, 2010

Finally I am getting around to posting my Quarterly Goal review.  Last quarter’s review can be found here.

Start a Blog

This has been covered pretty well.

Implement a BI Solution

I have made no further progress on this.  Despite that, I have been converting several dts packages into SSIS packages.  I also have numerous reports for SSRS that I need to implement.  Also, let’s throw out there that I have spent considerable time working on the COGNOS 7 platform over this past quarter.  I have had to troubleshoot various components from cube build to security to execution and report accuracy.  That doesn’t count as a BI solution, however, it should be noted that there is more BI experience being gained.  The purpose of this goal was to increase experience and knowledge with BI.  Albeit, the goal was designed to gain that experience in the Microsoft products.

I have started several more projects along the lines of this goal.  Many have been implemented and are in use now.  However, the point of this goal was driven towards an end-to-end solution that involved SSAS, SSIS and SSRS – I have two of the three down-pat pretty good now.

1 Technical Blog Post per Week

This one is getting harder for me currently.  I am in the middle of some very big and high profile projects that have consumed a lot of my time.  I will be working harder at this goal over the upcoming quarter.  Despite that difficulty, I am still ahead of the goal by means of averages though I missed a technical post this last week.

I am leaving the above comment as-is for the time being.  It became more difficult to maintain that goal due to my schedule – but it will change in the upcoming quarter – I can feel it.

Attend 2010 Pass Summit

I have not yet attended the summit, and can’t do that until November.  However, I have registered for the Summit and have every intention of attending this year.

Present Once a Quarter (or 4 times)

I continued to make measurable progress.  I only presented once this quarter.  Next quarter I have more presentations that I can report on (like my Presentation for SQLSat54).

Write 2 Articles

I can mark this goal as achieved at this point.  My second article was published recently and I have a few more that I am working on in queue currently.  I wrote a short blog on the publication of this article.

Run Two Marathons

I have not run a marathon yet this year, and that sucks.  Due to too many conflicts and knee pain I didn’t run and won’t be running any marathons this year unless a miracle happens.

As for the less measurable goals, I think I am doing fine there as well.  I was assigned as VP to our PASS Users Group, I am on a subcommittee for Summit 2010, and I am actively involved with the community at SQLServerCentral.com.

My SQLSat54 Experience

Comments: 1 Comment
Published on: October 25, 2010

In case you hadn’t heard SQLSaturday #54 was Oct 23 in Salt Lake City.  It was a dreary opening to the Deer hunt, and a good morning to be inside to learn about SQL Server.  I was there to make my first presentation at a larger scale event (than a UG setting).

I got to meet some cool people and to learn a few things while I was there.  I enjoyed the time I had to chat with Denny Cherry (Twitter | Blog), Nic Cain (Twitter | new twitter | Blog), Bill Pearson (Twitter), TJay Belt (Twitter | Blog), Pat Wright (Twitter | Blog), Meredith Ryan-Smith (Twitter), and Randy Knight (Twitter) as well as some others.

I picked up a few pointers for when we do a SQLSat in Las Vegas (like order overkill on the pizza).  It is also encouraging after having participated in a SQLSat to just get out and do it.  Nevermind the concerns about this or that, just do it.  So we will be formally working toward a SQLSat in LV very shortly.  I will be presenting that to the UG in LV first though.  We had tinkered with the idea – but now it is time to do something about it.

If you have never participated in a SQLSat, I highly recommend that you do.  I got some good networking in, some knowledge transfer, and I got to give my presentation (which needs a little more tuning).  That brings me to another thing that I learned.  It seems to be a trend that it is difficult to get audience participation no matter where you go (first hand experience as well as from what I have heard).  As presenters, many thrive on participation.  For my presentations – participation is crucial.

I hope to see you at future SQL Saturdays.

Oh,  and many thanks to Tjay Belt and Pat Wright for organizing this event.  Great Job.

A Haunting TSQL Tuesday Tale

Comments: 2 Comments
Published on: October 11, 2010

Time for the ghouls and goblins to come out of the woodwork once again for another tale of deception and tyranny.  OK maybe not tyranny but definitely a haunting tale is to be told this month while trick-or-treaters plan their routes and mend their costumes.  We have SQueeLing experts suiting up for the adult party known as TSQL Tuesday.

This month the vampires, ghosts, and zombies are all breaking it down at Sankar Reddy’s place (Blog | Twitter).  The ghoulish stories to be shared are to be myths from the underSQLworld.

Truncating a Table is Unrecoverable

Have you heard this one in the past?  If you truncate a table, you cannot undo the action like you can with a delete.  What is the difference between the two methods to remove data from a table?

When you truncate a table, the pages are deallocated with minimal locking of the resources.  When you use the delete statement, the data is deleted row-by-row with more locks.  Everybody knows that a delete can be rolled back.  Many people believe that a Truncate cannot be rolled back.

Well, at this point we really need a table to test.  So let’s create a table and perform a few simple tests.

With the test table ready to go, we will begin with the baseline demonstration on the Delete command.  Here is the script to demonstrate that a Delete can be rolled back (but we already knew that).

Pretty simple and straight forward – baseline is proven with that script.  The premise that a Delete can be rolled back has been established.  Now, how about that truncate statement?  For the truncate statement, I will use the same simple script, substituting the appropriate commands in this script.

When this script is executed, we see that indeed the data is recoverable.  Here are the results I get from the truncate and associated rollback script.


I think this is one of those myths that is frequently floated throughout the SQL world due to another myth that is related to the Truncate statement.  It is often explained that you can’t recover a truncate because the truncate is not logged.  That is also obviously wrong (if it weren’t logged, how could you recover the table without a restore?).  The myth about Truncate being non-logged has already been debunked (as has this one – in a different series) by Paul Randal in his Myth-A-Day series.  The key to this is that the Truncate is logged and that you wrap the command in a transaction – and only commit when you are ready.

This happens to be a good post for the back to basics series. Other topics in the series include (but are not limited to): Backupsbackup history and user logins.

October 2010 TSQL Tuesday Reminder

Comments: No Comments
Published on: October 6, 2010

Holy Cow, another month has flown by without much of  a hint.   We now have upon us another TSQL Tuesday.  If you hadn’t heard or haven’t seen the twitter announcement, you can find it to be hosted by Sankar Reddy (Blog).  The theme this month is all about myths (this should be a fun one).  There are plenty of myths to go around, so get your myth and debunk it this month as a part of the Blog Party.

Oh and by the way, the Party is Oct 12th.

It’s Implied

Comments: No Comments
Published on: October 5, 2010

This has been on my radar now for a little over a week.  I ran across a  request in the forums to assist with permissions and decided to test some things.  The gist of the request was to disallow a user from inserting into a table and still have execute permissions on a stored procedure that may need to insert data into the same table.

The Setup

To work through this, I decided to create a user, grant that user specific permissions, and create a stored procedure to which I would grant that user I created execute permissions.  All of this is pretty straight forward stuff just to demonstrate the principle.  I will also be using a database previously setup just for testing purposes.

So let’s just start by creating this user that we will be using to test our permissions.

[codesyntax lang=”tsql”]


We can see that the user creation is pretty straight forward and we are immediately adding the user to the denydatawriter role for the database.  Now for the next couple of items that we will be using in this little experiment, a table and a stored procedure.

[codesyntax lang=”tsql”]


[codesyntax lang=”tsql”]


And the last little bit of the setup is to grant our TestRW user execute permissions on this stored procedure.

[codesyntax lang=”tsql”]


That is it for the initial setup.  I think this is a pretty straight forward setup to demonstrate these permissions.  The next item of business is to actually create these objects and to test.

Testing – 1,2,3

The testing I have setup for this is also pretty straight forward.  I will execute the proc and then select all records from that table that was created.  If successful, then there will be no records.  If (per the requirements), we see records then the setup has failed and we need to explore other options or find a reasonable conclusion that is preventing us from achieving success.

[codesyntax lang=”tsql”]


Upon executing that, you should see the following results at this point.

Well, would you look at that.  Having denydatawriter on the table, and granting execute permissions on the proc has allowed us to insert data into the table.  Let’s take it one step further now – what if we explicitly deny update, delete, and insert permissions on the table to this user?  We can do that with the next script.

[codesyntax lang=”tsql”]


With the new permissions added (or subtracted depending on how you look at it), we can test once again – using the same script as in the first round.

Well, now we can see that explicitly denying update, insert and delete on the table is no more effective than adding the user to the denydatawriter role.  Are the deny permissions even working at this point?  Well, this verify that.

[codesyntax lang=”tsql”]


Now, I had forgotten to mention this but it is very critical to the proper testing of this routine.  The objects created were created by a different user than the TestRW account we created.  Once the objects are created, then we MUST login to the Database Server with the new login and we must run the queries from that user account.  To recap – grant permissions and object creation are done from an account other than TestRW.  Running the test queries is done through the TestRW account.  (For ease of testing, you may also want to grant access to the db_datareader role on the TestRW user.

The results of running that simple Insert statement should yield the following result.

So we know that the permissions are working but that the stored procedure is circumventing those explicit permissions.


Well, this is not actually a failure.  This is by design.  This is called implicit permissions.  If I am going through the trouble of granting execute permissions on a stored procedure to a specific user, then the system interprets that as the stored proc permissions override any explicitly set permissions.  Is there a way around this?  You could setup triggers on a table to prevent this from happening or you could remove the execute permissions for that user on each proc.  I also think this helps to underscore the importance of not just granting execute to all stored procedures in a database to a user.  This simply over-permissions that user and they may be able to do more than you wish for them to do.  Another option is to add code to each stored procedure that would check for group memberships and error out if the user is a member of the denydatawriter role (for instance).  This would be very similar to the way that MS prevents users from executing certain system stored procs from being executed by users who do not have adequate permissions.

The Year of the Phantom

Tags: ,
Comments: No Comments
Published on: October 3, 2010

It is amazing how fast time moves the older (and slower) we as humans get.  Looking back on time, it doesn’t seem to have been that long since I got married.  Today marks the 15th anniversary of that occasion.  It has been a good fifteen years and both of us have learned a lot.  I would dare say that while many things have not changed, many have changed within our relationship.  That is a good thing – you can’t make a marriage work without teamwork.  We work well together.

For our anniversary celebration (we did it a day early), I took her to the Phantom of the Opera at the Venetian.  If I were to be reviewing it, I would give it high marks in most areas and I think it is a must see.  A tip though, order your tickets directly from the Venetian.  If you order from the Venetian, the initial ticket cost is cheaper than anywhere else I found the tickets.  Furthermore, I was able to find discount codes online for ticket purchases at the Venetian.  Overall cost savings was huge.

My wife and I sat front row for the show, right next to the orchestra pit.  The view was spectacular – even when we disappeared in the fog.  What we were unprepared for was the fireworks and fire plumes at various points in the show.  We like what they did with the chandelier and moving the characters from time to time throughout the audience.  Even being as close as we were, and being able to see fine details in the makeup, there were no real flaws to the production (not even in the makeup).

I would go see it again.  Just be aware that this production is not exactly the same as the production on Broadway.  This is still Andrew Lloyd Webbers work and all changes to the score were done by home.  The main changes are in scenery and transition as well as special effects.  Both versions have their highlights and are both well worth watching.

Red Pyramid

Comments: No Comments
Published on: October 2, 2010

After having read the Percy Jackson series of books, I wanted to read a few more books by Rick Riordan.  I happened across this book one day while browsing a local store.  It didn’t take much thought after seeing the cover, title and author (sometimes the cover art is important in finding a book).  The book is “The Red Pyramid (The Kane Chronicles, Book 1).

I have to remark that I was somewhat surprised by the end of the book in the vast improvement in grammatical mistakes that I noticed.  This book could have gotten away with a lot more based on the style.  At the end of the book, there were only two such mistakes that I had noticed – that is very good.  That is substantially better than the Percy Jackson series as well.  I had to bring that up since I had noted the problem in the Percy Jackson series and it is the same author.

The book takes on a different culture this time with the heroes (who are also once again godlings / demigods).  Rather than the Gods of Rome and Greece, we now get to learn a little about the Egyptian gods – mixed deeply in fantasy.  I found it intriguing – while also too similar to the Percy Jackson series.  There were substantial differences – but kind of the same feel while not being entirely the same plot.  I think it might have been recognized by the author as well when he made a subtle reference to the Percy Jackson series as our heroes arrived in Brooklyn.  I thought that was great.

This series is not about the adventures/misadventures of one teenage demi-god, but rather a brother and sister who must help each other.  There are some nice twists and turns and it should be enjoyable.

I would give this one a B+

SQLSat 54

Comments: No Comments
Published on: October 1, 2010

Wow, I have really been kinda slow in the blog department for a couple of weeks now.  I have a few things in queue that i will be letting out within the next week.

I got notice today that I have a presentation on the slate for SQL Saturday #54 – woohoo.  I was honestly unsure of whether I would be able to present.  I was hopeful but this is a new venture for me.  I hope to get to meet some of you at SQL Saturday 54.

You can find more info on it here.  You should be able to read my little blurb for the presentation as well as find a bit of a bio about me there.

BTW, I am a bit stoked to be able to do this in the community.

page 1 of 1

October 2010
« Sep   Nov »

Welcome , today is Tuesday, April 7, 2020