T-SQL Basics

“First learn stand, then learn fly. Nature rule, Daniel-san, not mine.” – Karate Kid

What is SQL?

SQL (Structured Query Language) is a language for manipulating database data and structure. It can be pronounced by stating it’s letters “S-Q-L” as well as the word “sequel”, as in the Matrix had two crappy sequels.

SQL is mostly standardized across Relational Database Management Systems RDMBS, but each, like SQL Server, may have it’s own unique syntax. T-SQL is Microsoft’s version of the language and it’s the version I focus on.

Two Main SQL Statement Types

There are other types of SQL Statements but we’ll restrict our discussions to these two.

  • Data Definition Language (DDL) – These define database structure and schema. Eg. Create Database.
  • Data Manipulation Language (DML) – These statements manipulate data. Eg. Select * from

Most of what I’ll cover with you are DML since most Made2Manage Admins will not be creating a lot of databases, manipulating indexes, etc.

Basic Syntax Rules of Using SQL

“Do you understand the words that are coming out of my mouth? – Rush Hour

These rules are true for the most part and in most circumstances. I’m generalizing to make things as simple to learn as possible. The syntax requirements of T-SQL are incredibly flexible. In this article, I’ll explain what you can do, and in a future article, I’ll explain what I think you should do.

I’m explaining these rules in the context of a very basic select statement. This following statement requests all of the values in the column (or field) fsono from the somast table.

SELECT fsono FROM somast
  1. T-SQL statements are case insensitive. For example the following scripts will function the same way:
  2. SELECT fsono FROM somast

    SeleCT fSoNO froM SOMast

  3. The “*” is a wildcard and will select all fields from a table. “Never” use this as it wastes resources and creates maintenance headaches. If you delve into M2M’s own code however, you will see many instances where they do that very thing.
  4. When selecting fields, separate them with commas. The order of fields selected doesn’t matter to the computer, but as I said earlier I’ll explain my preferences in a future post.
  5. White Space, and placement of some punctuation, doesn’t matter. The following statements are equivalent to the computer.
  6. SELECT  fcompany, fcustno, fcustpono, forderdate, fsono, fsorev FROM somast
    -- Extra Spaces
    SELECT  fcompany       , fcustno,       fcustpono, forderdate, fsono, fsorev FROM somast
    -- Extra Carriage Returns
    SELECT fcompany,
      FROM somast
    --Leading Commas


If there’s one thing I’ve learned over the years its that consistency is key. Since most M2M Admins are the lone DBA and reporting person, you must create your own standard ways of writing SQL code and stick to them. Consistency has several benefits.

  1. Your code will be easily read by you and others.
  2. You will be able to cut and paste code snippets between SQL Scripts (more on this later).
  3. Your efficiency goes up dramatically when you work this way.

So Daniel-san, as I said before this is your first lesson. Tomorrow, I’ll show you around our dojo that will use for future lessons in this T-SQL Basics Series.

Toad for SQL Server

I wish I knew how to quit you… Well, not really.

In previous articles, I’ve mentioned that I use Toad for SQL Server, but until now I have not really advocated that my readers use it. While I’ve been using Toad for several years, I’ve had a love/hate relationship with it. When I first started using it, the product was buggy and problematic. Also, while Toad does everything, it is often unintuitive. To compound that problem, not many people blog about it so information isn’t readily available as to how to leverage Toad effectively. Even after all this time I still come across some new feature in the product on a weekly basis. If my readership, all 5 of you, are interested in learning more about it, I’ll create a regular blog segment for Toad tips and tricks.

Unsurprisingly, I took an active role in the improvement of the product. Quest Management sensed my enthusiasm for giving feedback (loudly demanding to be heard), so they assigned me a dedicated tech support rep. He has dutifully relayed my suggestions (rants and complaints) directly to the development team and it’s nice to be heard. Amazingly, they’ve implemented most of my suggestions over the years and it’s a much better product because of it.

What’s the Point?

Toad is in a new beta cycle for version 5.5. This means that anyone can download and use the full product until February 13th. As I am embarking on this series of basic T-SQL articles, I am encouraging you download Toad and use it with me. All of my screenshots in these articles will be using the new Toad beta.

Keep in mind that this is a beta product, and therefore will have bugs. For example, someone has disabled the ability to save editor windows individually, presumably by accident. As of now, you must save all files at once. Even so, I’ve already switched to using it in production because so many of my latest rounds of my suggestions were implemented that this tool now feels like it was designed specifically for me.

Why do I need a 3rd party program to write T-SQL?

In my opinion, all beginning SQL writers should use aids in writing T-SQL, especially if you are using SQL 2000’s Query Analyzer. Query Analyzer is basically like programming in Notepad. There is no Intellisense or code assist to speak of, the error messages are cryptic and difficult to understand, and there isn’t any structure or style enforced.

The two most common 3rd party choices are Red Gate’s SQL Prompt and Quest’s TOAD for SQL Server. Both offer code completion which increases the rate at which you code, and SQL Formatting which standardizes your code structure. However, they are paid software. SQL Prompt works directly in SSMS, while TOAD is a stand alone product. They both have features to recommend them.

There are also some free SQL Formatting options you can use such as:

The web sites will format your T-SQL code, but it’s a pain to open them, copy your T-SQL from SSMS, paste it into the website, format it, and then copy and paste it out again. My time is worth money to me, so I use the paid version of TOAD for SQL Server. The SSMS Tools Pack is great, but it doesn’t offer the code formatting (vertical and horizontal spacing) that Toad and SQL Prompt do.

How to set up Toad

Simply download and install the product with the defaults. As Toad fires up the first time, you’ll encounter the following Configuration Wizard. For now, choose MS Management Studio.

After that you may get a Connections Wizard screen. Cancel that and I’ll show you how to set up a connection in the regular interface.

Create a Connection

One of the great aspects of Toad is that you can create several connections to servers and databases, save the login information if you choose, and switch back and forth between them seamlessly. Toad makes extensive use of the right click menu and I rely heavily on it.

Right click in the upper left hand corner of the screen in the Connection Manager and select Create.

The Create New Connection screen appears. Just like in SSMS, the server name can be typed in or browsed by selecting the ellipses. Select your authentication method, password if required, and default database for that connection. You aren’t limited to that database for query writing of course.

The interesting settings are below the Name line. Toad allows you to name your data connections. At a glance I can tell which server I am accessing and in what capacity. I use names such as:

  • M2M Production – Read Only
  • M2M Production – Administrator
  • M2M Development
  • M-Data Analytics Production

Categories allow you to color code editor windows. Connections with production logins that have write access I use red, development is green, etc.

Finally, you can elect to have connections start up automatically when you start Toad and to save passwords when you’re using a SQL account login. I never connect to my production server automatically with write access. I never save passwords for accounts that have write access either.

Create a New Editor Tab

Depending on the default settings you may see a blank editor or you may see something like this:

That blank tab is new in this beta, and although I like the concept I don’t care for the way they implemented it. Anyway, right click on the tab and select Open New Editor.

The editor is where you write your T-SQL Code. In future articles I’ll describe how to write T-SQL the Toad way to increase your speed and effectiveness.

As I mentioned before, one of the reasons why I’m suggesting you use Toad is for the automatic formatting. Kevin Kline (Blog/Twitter) has put out a few excellent videos on Toad. You should watch Basic Formatting and Advanced Formatting as soon as you start using the product. I just wish Quest would produce more of them (Hint Hint Hint).

Full Disclosure: I am not sponsored, nor paid by Quest in any way. I just simply like Toad for SQL Server.

So, who’s with me? Who’s going to give Toad a try? Are you interested in learning more about Toad?

You Want Me to Put That Where???

In my previous article I mentioned my surprise that many readers were not running the sample code posted on my blog. When I asked a few as to why, the number one answer was that some M2M Admins don’t know which program(s) they can use to query their SQL databases. I don’t know why this came as a shock since M2M Support instructed me how to open Query Analyzer my first time a decade ago. We all start somewhere.

Anyway, I’ve put together this basic tutorial as to how to do that. I’m hitting only the bare basics of how to use the query tools, and will mostly leave it up to you dear reader to Google more about them or to ask questions in the comments.

Keep in mind that you should not remote desktop your server and log into administration and query software on it because that eats up memory and other resources. You should install the SQL tools on a workstation and administer and query remotely. Also, you should never run code from my site, or any site for that matter, on your production server, you really need a test server.

SQL 2000 Query Analyzer

In order to open up the SQL 2000 Query Analyzer, you’ll typically select Start, All Programs, Microsoft SQL Server, and Query Analyzer.

M2M requires you to install SQL Server in Mixed Mode and requires administrator access to its databases. Therefore, you can log in to QA with Windows Authentication or SQL Server Authentication. Notice how the SQL Server selection defaults to “localhost” which is the SQL Engine running on the local machine. You can also substitute that with a “.” as well. When connecting to another server, you can either type the name in directly or select the ellipses and a list of SQL Servers on your network will display for you to select.

After logging into QA, you’ll see a screen similar to the following. I’ve entered a simple query and executed it against M2M’s sample database.

Keep in mind that I’m only covering the basics. Queries are entered in the Query Pane, the results are shown in the Results Pane, and you can browse objects such as databases and fields in the Object Browser. I’ve also highlighted where you can change the database your query will run against, as well as the buttons to check your syntax and execute your query.

You can also execute your query by hitting F5 as well. If you have multiple queries in the window, all will execute. However, selecting and highlighting specific query(ies) and hitting F5 will limit execution to those queries.

SQL Server Management Studio (SSMS) 2005 through 2008/R2

I’m covering all of these together, because for the most part they function the same way. To open SSMS, typically you’ll select Start, All Programs, Microsoft SQL Server 2005 (or whichever version you are using), and SQL Server Management Studio. In the screenshot below, you’ll notice that I’ve substituted a “.” for local host.

After logging in, you’ll see something similar to the following.

Notice that I have browsed into the M2MData01 Database, and you can see the objects in the Summary Pane. To write a new query, select the button I’ve highlighted and the Summary Pane. I’ve written and executed the same query below.

This isn’t to say that there haven’t been improvements in SSMS over the years. Brad McGehee (Blog/Twitter) wrote an excellent article on these improvements some time ago.

Third Party Products

There are several third party products you can use to query your database and I will cover TOAD for SQL Server in a later blog post.

Any questions?

Planes, Trains, and.... Well Actually Just Automobiles.

Over the holidays and through the first week of this year, I took a journey back home to Michigan. Why did I drive you ask? Well, I wanted to take my Cockatoo Anakin with me. Sometime along the trip he decided that migrating was for the birds. We survived, but he was thrilled after we returned home.

Master O, Lady Gaga, and Myself

Anyway, on the way up, I stopped by Chicago and had lunch with Brent Ozar (Blog/Twitter). I hung out with him most of the afternoon, we discussed all things SQL Server, and he was kind enough to take the picture celebrating my iPad “Win.”

Once again, thank you Red Gate Software. I’m geeked to try SQL Monitor this week.

After I got settled in Grand Rapids, I visited with friends and family. Before traveling to the east side of Michigan I contacted Tim Ford (Blog/Twitter) and he was kind enough to have dinner with me as well. He’s a great guy that I wish I had met before I left Michigan. He and I discussed the economic climate for West Michigan, SQL Server, Community participation, and other stuff. His family seemed very taken with Anakin. In fact, when Tim and I returned from dinner, his rather large cat was staring longingly at the bird through a glass door.

Anyway, I spent time with family near the Detroit area and then spent 4 days teaching SQL Administration and SQL Server Reporting Services to a few Made2Manage companies. I won’t mention them by name because I haven’t asked permission, but I had a great time with them and learned several things in the process. What did I learn? Well, I’m glad you asked.

First, I hate to sound like a broken record, but I really love teaching. I am really in my element in that role and intend to spend more time doing it.

Second, while teaching the class and referring to my blog during it, I found errors in some of my T-SQL example code. That shouldn’t be a surprise to me since I’ve come so far in the past several years. What did surprise me is that people must not be running my code or they would have reported problems with it.

So, why aren’t you running my code? I asked several readers and got a variety of answers, most of which point to my next realization.

Made2Manage people really need SQL training, especially in writing T-SQL code. Two of the people I asked about my code samples admitted that they didn’t know where to paste the code in the first place simply to run it. I intend to focus on these basics quite a bit in the coming weeks. In my opinion, you cannot effectively use SSRS and other reporting tools if you cannot write basic free hand T-SQL code.

So, in tomorrow’s installment I’ll start at the very beginning and tell you where to paste and run the code.

Christmas is a Time of Miracles/New Year's Resolutions

Santa was geeked to take the pic, but Anakin wasn't convinced.

Since the holidays are fast approaching, along with the end of the year, I’d like to take a moment to reflect on the previous year, discuss some small miracles that have happened recently, and share my New Year’s Resolutions.

My Girlfriend Missy and I at ICE Gaylord Texan

Christmas Miracles?

There have been several small miracles around me lately.

  • Missy has recovered from a devastating injury and illness. Without going into details, this was one of the reasons why I haven’t been blogging as much as I’d like. She’s officially cured.
  • An unexpected Day Off. I was waaaay behind in my Christmas Shopping and on Friday our building broke a water main. Since that means the bathrooms stopped working, we were “forced” to take the day off. Not really a “miracle” but it saved my butt.
  • I won an Ipad. Thanks to Brent Ozar (Blog/Twitter) and Red Gate Software, I won an iPad loaded with SQL Monitor. All I had to do was admit an unhealthy obsession for Lady GaGa.
  • I’m teaching again. I’ll be back home in Michigan during the holidays through the first week of January. The reason I’m extending the visit is that I will be teaching three days of SQL Server and Reporting Services classes for several companies in the frozen tundra. I am so grateful that I re-discovered my love of teaching.
  • SQL University. In February, I’ll be teaching a week of Data Warehouse Modeling for The SQL University. I’m honored to be asked and really looking forward to contributing to that cause.
  • The SQL Community. Joining and participating in the SQL Community with blogging, presenting, and networking with people has been a miracle for me, both personally and professionally. While I thanked Brent and RedGate about the iPad the truth is that every one of you deserves the credit for my “win” as well. If I wasn’t involved, I wouldn’t have won that, starting teaching again, or received the multitude of other blessings that have come my way.

Happy Festivus – The Airing of Grievances

Enough of the mushy stuff, it’s time to gather around and air our grievances Festivus style. Unlike traditional the typical Airing of Grievances my grievances are all with me.

Will You Forgive Me?

I’m frustrated with myself because I’ve neglected my blogging. Partially that’s because of my personal life (mentioned above), but also because of the M-Data Analyitics and other projects I’m working on. Rest assured, I’m committed to blogging and this lapse will be rectified.

New Year’s Resolutions

  • Blog regularly and become better at it. I’m on the verge of posting numerous blog articles on Microsoft Business Intelligence, Data Warehousing, etc and will hit the ground running in January.
  • Release M-Data Analytics to beta by the end of first quarter 2011. We’re currently re-working the ETL (Extract, Transform, and Load) using a sophisticated SSIS Framework with built in logging. It’s not enough to get it done, I want it done right which is why this is taking so long.
  • Work on my presentation skills. I want to be a world class technical presenter.
  • Start posting instructional videos in SQL Server Business Intelligence and Data Warehousing. I promise to get that set up and you’ll begin seeing videos in 2011.

Happy ChristmaHanuKwanzaakah everyone! I look forward to “seeing” you in the New Year!

On the Third Day of SQL Todd McDermid Gave to Me...

This year I made a concerted effort to get involved in the community in a big way and that has benefited me in several ways. I’ve made tons of new friends and found great people who are willing to share their knowledge with me and others. To recognize others for what they do in the community, I joined other bloggers in the Twelve Days of SQL in which we spotlight people producing great content. Anyway, I was given day three so Good Day and Welcome to Day Three. Obviously, I”ve chosen to spotlight Todd McDermid.

Why Todd McDermid?

Umm.. because he’s awesome. I recently “found” Todd McDermid (blog|twitter). He is a SQL Server MVP and excellent resource for SSIS and Data Warehouse information. In fact, he created a free, performant SSIS Slowly Changing Dimension Component which simplifies Data Warehouse loading. How many people would go to all that trouble to solve a problem many of us have and then simply give it away?

I could have picked any number of his blog posts. The one I settled on was Parallelism in SSIS Multiple Lookups. The post is extremely informative, well written, and very thorough. One thing in particular I like is that Todd explains the concepts using real world examples, in this case an automobile assembly line, which makes it much easier to understand.

It’s obvious that he puts a great deal of time into his blog posts, and I just want to thank Todd for his efforts.

Great, who’s day four?

Well, you’re in for a treat folks, because tomorrow the great Andy Leonard has day four. Andy is an amazing presenter, blogger, and mentor with SSIS and you should follow him as religiously as I do. Tune in tomorrow to “hear” him wax poetic about another blogger who makes the SSIS world a better place.

I Win

When the twelve of us were talking about doing the Twelve Days of SQL we had a friendly contest about who had the tackiest ornament. After all, Brent Ozar posted a gem. Well, I assured everyone that I had the winning entry. And now, for your amusement… and perhaps condemnation… behold my tackiest ornament.

Merry Christmas!

Database Views - Using PowerPivot with Problem Databases Part 2

In the previous post I mentioned the use of views to simplify querying your database in general and PowerPivot in particular.

What are Database Views?

Views are virtual tables, which you can create with a SQL statement. Some of the advantages of using views are:

  1. Simplified Data Access – The view hides the data structure from the user making reporting less complex. Also, calculations can be performed in the view for them making their lives easier as well.
  2. Security – Through the use of views you can easily limit your users to certain types of data in your database. You can restrict them from looking at specific tables, or even certain fields or rows in a database.
  3. Standardization/Maintainability – The table logic for views is stored in the view itself. Therefore, if a change in that logic is required or the database structure changes, which happens occasionally when you upgrade M2M, the view need only be updated once. Otherwise every report, spreadsheet, etc. based on the changed areas must be edited.

View Security

As I’ve mentioned in the past, you should use a report login for your reporting with read only access. The simplest way to do so is to add a SQL Login and assign it the db_datareader role for that database. There are clear directions with screenshots covering this here. I create report logins which I creatively call ReportsXX, where XX represents which Made2Manage database that user will primarily report from. I use separate accounts per M2M company so different companies cannot see others data.

When creating these views, you should always create them with the same owner or in the same schema. In SQL 2000 objects were owned by a database user. When you look at the M2M database you’ll notice that every object is owned by dbo (database owner). Objects created in SQL 2000 tend to default to the owner who created them and if an account is designated as a database owner the default is dbo. In my case, all objects owned by Reports01 would be Reports01.ObjectName and would need to be referred to with their fully qualified name by any user other than Reports01.

The concept of database schemas was introduced in SQL 2005. Schemas serve as “containers” for objects and are useful for enforcing security as well as organization in the database. In this case you would create a schema called Reports01 (or Reports or whatever you like), and since your report login has the db_datareader role, it can also read from your views.

How do I Create a View?

As always, please read my standard disclaimer before implementing any code from my site. Creating a view is very simple. Let’s take the following SQL statement.

SELECT ARM.fcinvoice AS InvoiceNo,
       ARM.fcustno AS CustNo,
       ARM.fbcompany AS CompanyName,
       ARM.fdgldate AS PostDate,
       ARM.fsalespn AS SalesPerson,
       Rtrim (ARI.fpartno) AS PartNo,
       ARI.ftotprice AS NetInvoiced,
       ARI.fprodcl AS ProdClass,
       INM.fgroup AS GroupCode
  FROM dbo.armast ARM
       INNER JOIN dbo.aritem ARI
          ON ARM.fcinvoice = ARI.fcinvoice
       INNER JOIN dbo.inmast INM
          ON INM.fpartno = ARI.fpartno AND INM.frev = ARI.frev
 WHERE ARM.fcstatus <> 'V'

Please keep in mind that this is a simplified invoicing script for demonstration purposes. The templates I use are much more comprehensive and bring in many other related tables such as FastForms extension tables, the Sales Person table which contains their full name, portions of the Item Master table for product details, etc.

Further, it’s important to note that if you run that script on your database it will retrieve every applicable record since you started using M2M. With my current company that’s more than a decade of records. With input from the business leaders, we agreed to limit these views to the prior two fiscal years. While you could hard code these dates in with a statement like this, you shouldn’t do so.

 AND ARM.fdgldate >= '1/1/2008'

Instead, construct your view so that it automatically selects the previous two years.

 AND ARM.fdgldate >=  DATEADD(yy, DATEDIFF(yy,0,getdate())-2, 0)  -- In this case 1/1/2008

This lessens the performance impact on your server. So, how do you create a view from this? You adapt the code as follows:

USE M2MDataXX -- Replace XX with your M2M Company 
CREATE VIEW ReportsXX.vw_Invoices
   SELECT ARM.fcinvoice AS InvoiceNo,
          ARM.fcustno AS CustNo,
          ARM.fbcompany AS CompanyName,
          ARM.fdgldate AS PostDate,
          YEAR (ARM.fdgldate) AS PostYear,
          MONTH (ARM.fdgldate) AS PostMonth,
          CONVERT (VARCHAR (3), ARM.fdgldate, 100) AS OrderMonthName,
          ARM.fsalespn AS SalesPerson,
          Rtrim (ARI.fpartno) AS PartNo,
          ARI.ftotprice AS NetInvoiced,
          ARI.fprodcl AS ProdClass,
          INM.fgroup AS GroupCode
     FROM dbo.armast ARM
          INNER JOIN dbo.aritem ARI
             ON ARM.fcinvoice = ARI.fcinvoice
          INNER JOIN dbo.inmast INM
             ON INM.fpartno = ARI.fpartno AND INM.frev = ARI.frev
    WHERE ARM.fcstatus <> 'V'
 AND ARM.fdgldate >= DATEADD(yy, DATEDIFF(yy,0,getdate())-2, 0) 

The view can be queried as if it were a SQL table, like so:

select CompanyName, InvoiceNo, NetInvoiced, PartNo FROM ReportsXX.vw_Invoices
where NetInvoiced > 1000 -- 1000 dollars

When run against the educational database the data returns like so:

You’ll notice that I’ve aliased the field names and replaced them with English. In programs such as SQL Reporting Services the alias names will be automatically formatted for you so NetInvoiced becomes Net Invoiced. Another advantage is that the view hides the table joins from the user as well and it looks like one object.

Now, keep in mind that what I’ve just shown you most likely violates your Consona User Agreement. You’re not really allowed to make changes to their database. The reason I say “most likely” is because I cannot get a definitive answer on this point from Consona.

Why do I need to bother with all that owner/schema stuff?

As I said before you can use them for security purposes and restrict user access only to the views you create. However, the most important reason is to make migration easier. When you migrate your M2M version, one of the first steps is a check of database objects and the installer may error out and quit if it finds objects that aren’t supposed to be there. Therefore, I document every view I create, run a script to drop all of the objects in the specific owner/schema, and migrate. After migration, I script all of my views back in, and begin testing them.

I wrote this simple script to drop all views belonging to a user in SQL 2000. Make sure to replace “ReportsXX” with the name of your report login and “M2MDataXX” with your database name.

--  SQL 2000
DECLARE @UserName   VARCHAR (25)
SET @UserName = 'ReportsXX'
SELECT [name] ViewName
  INTO #temp
  FROM sysobjects
 WHERE type = 'V' AND user_name (uid) = @UserName
   DropViews CURSOR FOR
      SELECT ViewName FROM #temp
OPEN DropViews
   SET @SQL = N'Drop View ' + @UserName + '.' + @ViewName
   PRINT @sql
   --EXEC( @SQL)
   FETCH NEXT FROM DropViews INTO @ViewName
CLOSE DropViews

For SQL 2005 and after, simply replace the code between the horizontal lines with:

SELECT [name] ViewName
  INTO #temp
  FROM sys.objects
 WHERE type = 'V' AND schema_name (schema_id) = @UserName

Stay Tuned

In the near future, I will be posting more information about M-Data Analytics which has an entirely separate database, easily understood field names, and will have a multitude of views built in, etc. That doesn’t help you now, but I assure you, it is coming.

In the meantime you can simplify your life by using Database Views. In the next article in this series I’ll put it all together and show you the steps you’ll need to follow to successfully use technology like PowerPivot with problem databases.

Also, make sure to come back Monday when I share my entry in the Twelve Days of SQL Series. Not only will I share my choice for one of the best blog posts (and bloggers) this year, but I will reveal a picture of the tackiest Christmas Ornament you have ever seen. And before I show it, let me assure you that I really do own it, it really is on my Christmas Tree, and you’ll understand why my girlfriend suggested I need psychiatric help simply for owning it.

More to come….

Check Out M2M Talk

There’s a new independent M2M forum available called M2M Talk, which is free for everyone who works with M2M. It was started by a third party solutions provider who’s been working with Made2Manage customers a long time.

It’s been running roughly two months and some of the best people in M2M are on it. It is independent, not affiliated with Consona, and could be a good place to get your questions answered.

The challenge with any of these projects is reaching critical mass. The more people participate in it, the more people will want to participate in it.

I urge everyone in M2M to use and support it, as I think it is a service that has been sorely lacking.

However, at the same time I want to be clear that I do not have any affiliation with the site either, except for visiting it regularly to look for opportunities to help other M2M “survivors.”

Anyway, I applaud the effort and hope that all of you will join me in my support of the project.

Branding Leaves a Mark

It's All About the Brand

I apologize for being late to the Un-SQL party, but work related problems have kept me busy since the PASS Summit. The Summit had a profound effect on me and I’m still trying to process it all.

Never mistake motion for action. – Ernest Hemingway

Like my new friend Grant “You’re Grant Fritchey!” Fritchey, I was invited to participate in Brent Ozar’s first FreeCon and one of the primary topics was branding.

Until now, my approach has been similar to Grant’s though I haven’t been at it nearly as long as he has. I got involved in various things like blogging, presenting, etc. without really having a goal in mind or a plan as to how to get there. When Brent asked the group to come up with their “three things” I was struck with the realization that I had never even thought about it. What does that say about me and what I’ve been doing the last few years? If I’ve been working hard to make career and personal progress, and after all this time I couldn’t come up with three defining words about me and this effort, how much of that effort and time has been wasted? Unfortunately, a lot of it.

Choose Your Own Adventure Books as a Career Model

There’s a reason Hemmingway didn’t write Choose Your Own Adventure Books and I shouldn’t be modeling my career after them. I’ve made progress, but I’ve been doing so in a random, unfocused way. One of the reasons I created the blog, and named myself Made2Mentor was because I was already receiving e-mails requesting help all the time. I’ve been a Made2Manage expert for a long time, but I haven’t really focused on it for years. My attention has shifted to the Microsoft Business Intelligence platform and Data Warehousing. Yet I continue to split my energy, attention, and focus with Made2Manage and all of the things associated with it. In fact, when I purchased this domain Made2Mentor, I also purchased because I knew that my career would eventually move in this direction.

This past year I presented to large groups at Consona Connect 2010, the national conference for Consona’s customers including those who use M2M. I didn’t present on M2M topics; I presented on SQL Administration and PowerPivot. I’ve also been encouraging other M2M admins to advance their skills and specialize in areas such as SQL Server, .Net Programming, and network infrastructure.

It became obvious at PASS that I had been juggling too many balls at one time. Since then, I’ve been re-evaluating those balls and putting some of them aside so I can focus on others.

What does this have to do with branding?

Branding, to me, is about how others perceive me. Others perceive me based on what I do and how I act. This critical self evaluation has lead me to certain decisions about my career focus, professional community participation, and in my personal life. Branding to me is not jumping up and down and yelling to everyone how great I am. It’s about making measurable progress, helping others through the benefit of that experience, and looking forward in a focussed way.

I guess it’s all summed up in a line from The Color of Money. “He’s got to learn how to be himself, but on purpose.” – Paul Newman

It’s not about acting like something I’m not, but rather maximizing my strengths and minimizing my weaknesses. I think that’s what every one of us should strive for. When we maximize our potential others will see it and benefit from it.

Walking the Path

“Sooner or later you’re going to realize just as I did that there’s a difference between knowing the path and walking the path.” – Morpheus The Matrix

I’m not going to bore everyone with my three branding words, my career plans, or some other half baked advice about branding because I am far from skillful and it wouldn’t help you anyway. Rather than tell you what I’ve decided, I’ll simply show you in the coming weeks and months. That’s what this is really all about anyway, not telling everyone what you can do, but showing them.

PASS Vacation

Vacationing at PASS?

In my previous article about paying my own way to PASS an anonymous commenter said he wouldn’t attend because he would have to take vacation to do so. Well, let me tell you it was just like a vacation for me.

First, by my own admission, I basically acted like a tourist. Whereas someone might go to Las Vegas and say things like “Oh wow, those are the Bellagio Fountains!” I gushed things like, “Oh wow, you’re Donald Farmer, Steve Jones, Paul Randal, or Andy Leonard.

Steve Jones

It’s not that I was star struck necessarily, it’s just that until now these guys lived in the screen in front of me. Do you remember how it felt the first time you saw your teacher at a restaurant or the movies? You had a moment of realization where you realized they were actually real people? Well, these people are my teachers and I have been learning from them for several years. PASS was a non-stop series of these realizations as I met and spoke with most of the people I’ve admired for so long. I was kind of surprised just how many of them follow me as well. In fact, when Donald Farmer told me that he reads my stuff, I actually told him “Wow, I need to work harder if all you guys are reading it.”

Geoff Hiten, Grant Fritchey, and Buck Woody

Second, the entire experience was so much fun. Most of these people know each other personally so it’s like going on vacation with your friends. Sure, there’s learning going on and everyone is networking, but it’s enjoyable.

Third, speaking of fun there are all sorts of fun things to do. There are parties every night if you’re following the Twitter stream. There’s simply no excuse for being alone. To cut down on costs, I shared a room with the one and only SQL Chicken and he’s one of the most social people I know.

Tony Davis, Jorge Segara, Rodney and Karla Landrum

One of the highlights of my trip was SQL Karaoke. Rumor has it there is a video floating around of yours truly belting out Burning Love by Elvis Presley. God I hope that doesn’t surface. Another night, Chicken’s backpack was stolen outside of a Starbucks (there’s one on every corner in Seattle). So, we spent that evening walking the alleys, badgering and bribing homeless people for it. He and I are not exactly like the duo in Lethal Weapon, but I am definitely too old for this s$%t.

Andy Leonard and Joe Webb

Was I crazy busy all week? Was it exhausting? Was I working hard? Yes to all three. However, when I got home I was thoroughly drained in a good way. I felt like I had released all my stress and felt as if I had just finished a marathon.

The point of this article is this. If you have to pay your own way to the PASS Summit, even if you have to take vacation time to do it, go anyway. It’s worth it.

For me, it was the best vacation I could have taken right now.