• Actually, this topic got me thinking of another really bad practice along the lines of "object qualification".  Perhaps this is not the thread for this discussion, but I'd be curious to see how everyone responds.

    The bad practice I'm referring to is SERVER.DBNAME qualification (in "user" databases of course... don't give me a hard time for master, msdb, et al).  The problem in this case is not performance; it's code reusability.

    Once you stick that SERVER or DBNAME in your qualification, you're done.  Actually, I've only seen the DBNAME ever really hardcoded, as most people know better than to stick a SERVER qualification, unless you're using a linked server, in which case you kind of have to.

    But, back to the point...  Of course the problem with dbname() qualification is the inability to move the SQL to another database of a different name.  The only time (that I can think of) that you would want/need to do this is for cross-database SQL.  Then, in that case, for architecture reasons, I've found it better to take a hit on performance (by utilizing dynamic SQL), rather than hardcoding a database name into SQL.

    ok, go ahead, shoot me down or ignore me...