<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>syscomments</title>
        <link>http://weblogs.sqlteam.com/chrism/Default.aspx</link>
        <description>RocketScientist's Miscellaneous Ramblings</description>
        <language>en-US</language>
        <copyright>Chris Miller</copyright>
        <generator>Subtext Version 2.5.1.0</generator>
        <image>
            <title>syscomments</title>
            <url>http://weblogs.sqlteam.com/images/RSS2Image.gif</url>
            <link>http://weblogs.sqlteam.com/chrism/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Actually useful BI</title>
            <category>KCTechBlog Syndication</category>
            <link>http://weblogs.sqlteam.com/chrism/archive/2011/05/18/actually-useful-bi.aspx</link>
            <description>Kidding. Mostly.&lt;br /&gt;
&lt;br /&gt;
Here's another BI-type analysis tool that's probably used by more people than any other BI tool in the world.  It's cloud based, it provides incredibly detailed and useful information for performance analysis and identifying areas of improvement.  Here's a sample report:&lt;br /&gt;
&lt;a href="http://www.worldoflogs.com/reports/4iqif366qb2zrgpj/analyze/hd/source/?s=4429&amp;amp;e=4789"&gt;&lt;br /&gt;
http://www.worldoflogs.com/reports/4iqif366qb2zrgpj/analyze/hd/source/?s=4429&amp;amp;e=4789&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I think you should be able to see that without being logged in or anything.  Let me know if you can't and I'll find a public report.&lt;br /&gt;
&lt;br /&gt;
My point is, this is mainstream BI.  This is actually useful business intelligence methodology being used to do real analysis by average people.&lt;br /&gt;
&lt;br /&gt;
And if you're wondering...&lt;br /&gt;
&lt;br /&gt;
Yes that's my guild&lt;br /&gt;
Yes I was the top healer :).&lt;img src="http://weblogs.sqlteam.com/chrism/aggbug/61296.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Miller</dc:creator>
            <guid>http://weblogs.sqlteam.com/chrism/archive/2011/05/18/actually-useful-bi.aspx</guid>
            <pubDate>Wed, 18 May 2011 21:28:18 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/chrism/archive/2011/05/18/actually-useful-bi.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/chrism/comments/commentRss/61296.aspx</wfw:commentRss>
        </item>
        <item>
            <title>IsNumeric('.')</title>
            <category>KCTechBlog Syndication</category>
            <link>http://weblogs.sqlteam.com/chrism/archive/2011/03/01/isnumeric.aspx</link>
            <description>So, anybody know why if you do this:&lt;br /&gt;
&lt;br /&gt;
print IsNumeric('.') &lt;br /&gt;
&lt;br /&gt;
it prints out this:&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seems that it won't convert to a float, it won't convert to an int, but it will throw lots of great errors.....&lt;img src="http://weblogs.sqlteam.com/chrism/aggbug/61283.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Miller</dc:creator>
            <guid>http://weblogs.sqlteam.com/chrism/archive/2011/03/01/isnumeric.aspx</guid>
            <pubDate>Tue, 01 Mar 2011 23:08:13 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/chrism/archive/2011/03/01/isnumeric.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/chrism/comments/commentRss/61283.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Quickie Post Describing Things I Want To Post</title>
            <category>KCTechBlog Syndication</category>
            <link>http://weblogs.sqlteam.com/chrism/archive/2010/12/01/quickie-post-describing-things-i-want-to-post.aspx</link>
            <description>First, I owe our proprietor here a review of Ignite Free or whatever from Confio.  Here's the quick review: It's like liquid awesome poured into a coffee cup, ready to drink.  Took 5 minutes to set up, 5 minutes to realize "holy crap I need to get this pointed at production NOW!".  5 minutes to ascertain the server load caused by monitoring (almost none).  1 minute to get it pointed to production, and then 5 minutes to start finding and fixing horrible queries.  The biggest part of a performance tuning task is finding out what's slow.  This tool DOES THAT FOR YOU.  In a way that's complete, inobtrusive, fast, accurate, and amazing.  If you're not using this tool, you're a tool.&lt;br /&gt;
&lt;br /&gt;
Second, I want do a nice writeup of Change Data Capture, which looks just unbelievably good.  This one feature is good enough to justify an Enterprise Edition license.  Seriously.  It's that good.  I'm gonna get this project done and then do a review for y'all.&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://weblogs.sqlteam.com/chrism/aggbug/61241.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Miller</dc:creator>
            <guid>http://weblogs.sqlteam.com/chrism/archive/2010/12/01/quickie-post-describing-things-i-want-to-post.aspx</guid>
            <pubDate>Wed, 01 Dec 2010 17:12:13 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/chrism/archive/2010/12/01/quickie-post-describing-things-i-want-to-post.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/chrism/comments/commentRss/61241.aspx</wfw:commentRss>
        </item>
        <item>
            <title>MERGE, the degenerate case</title>
            <category>KCTechBlog Syndication</category>
            <link>http://weblogs.sqlteam.com/chrism/archive/2010/12/01/merge-the-degenerate-case.aspx</link>
            <description>Looking on teh interwebs for some example of how to write a very simple MERGE statement.  I haven't done much with MERGE.  I want to update one column, one row, from a variable.  If the row exists, update, if the row doesn't exist, insert it.  This is, in my mind, the bread-and-butter MERGE.  What MERGE was written to do.  Yeah, it'll do a ton more than that, but the very simplest case, the degenerate case, would be something stupidly simple.  There are a bunch of really simple people on teh interwebs, I'll ask Mr Google how to do this.  I'm sure someone's covered it...&lt;br /&gt;
&lt;br /&gt;
Every single example I found on the internet was a regurgitation of the one in Books Online.  Every Last One.  Blog posts by renown MVP's, social.msdn posts from people who want to be MVP's.  Basically cribbing BOL for content and changing some column/table names around.  It was funny and sad at the same time.  Wow, really, you can do a join in a MERGE?  Fascinating.  But that's something I'll do once in a blue moon, why did you pick that example Mr Blog Post Author?  Oh, because it's the one in BOL and was the least amount of work.  Sigh.  Nobody really explained what every line of MERGE does.  Because that would be useful and involve work and wouldn't be easy to search engine optimize, so wouldn't provide revenue.  &lt;br /&gt;
&lt;br /&gt;
Since the proprietor here pays me a flat rate in beer, I don't care about revenue.  So here ya go, actual useful content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;declare @From_LSN_Leadraw binary(10)&lt;/pre&gt;
&lt;pre&gt;SET @From_LSN_Leadraw =  sys.fn_cdc_get_min_lsn('dbo_leadraw')&lt;/pre&gt;
&lt;pre&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;        merge into CDCTransactionTracking&lt;/pre&gt;
&lt;pre&gt;        Using (select @From_LSN_Leadraw From_LSN_Leadraw) Source&lt;/pre&gt;
&lt;pre&gt;        on CDCTransactionTracking.Tablename = 'LeadRaw'&lt;/pre&gt;
&lt;pre&gt;        when matched then update set MinLSN = Source.From_LSN_LeadRaw&lt;/pre&gt;
&lt;pre&gt;        when not matched then insert (TableName, MinLSN) values ('LeadRaw', Source.From_LSN_LeadRaw);&lt;/pre&gt;
&lt;pre&gt;        &lt;br /&gt;&lt;/pre&gt;
So let's break this down.  &lt;br /&gt;
&lt;br /&gt;
First, specify the target table, in this case CDCTransactionTracking.  I could alias this to a name like Target, but this is an engineering POC, not pretty production code.  The next line specifies the data source.  You can't source from a scalar variable, so this does a select and creates a little quickie rowset that is enough to fool the compiler and let it run.  &lt;br /&gt;
&lt;br /&gt;
Yes you could use a table variable here.  Every time you create a table variable, god kills a kitten.  I don't particularly like cats, but that's just unnecessarily cruel.&lt;br /&gt;
&lt;br /&gt;
Next, the ON clause.  We need to define what's going to join the target and the source.  In this case, that's a constant.&lt;br /&gt;
&lt;br /&gt;
After that, what should happen when the statements match.  When that happens I just want to do an update.  Easy peasy.  That line could also read set MinLSN = @From_LSN_Leadraw.  Same thing.&lt;br /&gt;
&lt;br /&gt;
Then when we don't match, we want to do an insert.  Pretty straightforward.  Again, could do @From_LSN_Leadraw.&lt;br /&gt;
&lt;br /&gt;
There ya go.  Original work.  On the internet.  No kittens harmed or copy/paste/Search/Replace from BOL.  &lt;br /&gt;&lt;img src="http://weblogs.sqlteam.com/chrism/aggbug/61240.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Miller</dc:creator>
            <guid>http://weblogs.sqlteam.com/chrism/archive/2010/12/01/merge-the-degenerate-case.aspx</guid>
            <pubDate>Wed, 01 Dec 2010 17:03:31 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/chrism/archive/2010/12/01/merge-the-degenerate-case.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/chrism/comments/commentRss/61240.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Max Server Memory....OOPS</title>
            <category>KCTechBlog Syndication</category>
            <link>http://weblogs.sqlteam.com/chrism/archive/2010/11/22/max-server-memory-oops.aspx</link>
            <description>Max Server Memory is actually Max Buffer Pool Memory.&lt;br /&gt;
From the knowledge base:&lt;br /&gt;
&lt;br /&gt;
Note that the &lt;strong&gt;max server memory&lt;/strong&gt; option only limits the size of the SQL Server buffer pool. The &lt;strong&gt;max server memory&lt;/strong&gt;  option does not limit a remaining unreserved memory area that SQL  Server leaves for allocations of other components such as extended  stored procedures, COM objects, non-shared DLLs, EXEs, and MAPI  components. Because of the preceding allocations, it is normal for the  SQL Server private bytes to exceed the &lt;strong&gt;max server memory&lt;/strong&gt; configuration. &lt;br /&gt;
&lt;br /&gt;
That explains why it's using 30 and change GB when I set it to 28GB.  Oops.  Fortunately, my sysadmin agrees with me that any resource that isn't maxed is wasted.&lt;br /&gt;
&lt;br /&gt;
The optimist says the glass is half full.&lt;br /&gt;
&lt;br /&gt;
The pessimist says the glass is half empty.&lt;br /&gt;
&lt;br /&gt;
The engineer says the glass is twice as big as it needs to be.&lt;img src="http://weblogs.sqlteam.com/chrism/aggbug/61237.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Miller</dc:creator>
            <guid>http://weblogs.sqlteam.com/chrism/archive/2010/11/22/max-server-memory-oops.aspx</guid>
            <pubDate>Mon, 22 Nov 2010 20:00:19 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/chrism/archive/2010/11/22/max-server-memory-oops.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/chrism/comments/commentRss/61237.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Tables, and the space they use</title>
            <category>KCTechBlog Syndication</category>
            <link>http://weblogs.sqlteam.com/chrism/archive/2010/10/05/tables-and-the-space-they-use.aspx</link>
            <description>So I hacked around in sp_spaceused and got this sorted out. Works in SQL 2005, haven't tested north or south of that.  &lt;br /&gt;
&lt;br /&gt;
Share and enjoy.&lt;br /&gt;
&lt;pre&gt;drop table #mainpartitionstats&lt;/pre&gt;
&lt;pre&gt;drop table #LOBPartitionStats&lt;/pre&gt;
&lt;pre&gt;drop table #totals&lt;/pre&gt;
&lt;pre&gt;&lt;br /&gt;    SELECT &lt;/pre&gt;
&lt;pre&gt;        object_name(object_id) name, &lt;/pre&gt;
&lt;pre&gt;        SUM (reserved_page_count) reserved_page_count, &lt;/pre&gt;
&lt;pre&gt;        SUM (used_page_count) used_page_count, &lt;/pre&gt;
&lt;pre&gt;        SUM (&lt;/pre&gt;
&lt;pre&gt;            CASE&lt;/pre&gt;
&lt;pre&gt;                WHEN (index_id &amp;lt; 2) THEN (in_row_data_page_count + lob_used_page_count + row_overflow_used_page_count)&lt;/pre&gt;
&lt;pre&gt;                ELSE lob_used_page_count + row_overflow_used_page_count&lt;/pre&gt;
&lt;pre&gt;            END&lt;/pre&gt;
&lt;pre&gt;            ) Pages,&lt;/pre&gt;
&lt;pre&gt;        SUM (&lt;/pre&gt;
&lt;pre&gt;            CASE&lt;/pre&gt;
&lt;pre&gt;                WHEN (index_id &amp;lt; 2) THEN row_count&lt;/pre&gt;
&lt;pre&gt;                ELSE 0&lt;/pre&gt;
&lt;pre&gt;            END&lt;/pre&gt;
&lt;pre&gt;            ) RC&lt;/pre&gt;
&lt;pre&gt;    into #MainPartitionStats&lt;/pre&gt;
&lt;pre&gt;    FROM sys.dm_db_partition_stats&lt;/pre&gt;
&lt;pre&gt;    group by object_name(object_id)&lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre&gt;    SELECT object_name(p.object_id) name, &lt;/pre&gt;
&lt;pre&gt;        sum(reserved_page_count) Reserved_page_count,&lt;/pre&gt;
&lt;pre&gt;        sum(used_page_count) Used_page_Count&lt;/pre&gt;
&lt;pre&gt;    into #LOBPartitionStats&lt;/pre&gt;
&lt;pre&gt;    FROM sys.dm_db_partition_stats p&lt;/pre&gt;
&lt;pre&gt;        inner join sys.internal_tables it&lt;/pre&gt;
&lt;pre&gt;            on p.object_id = it.object_id&lt;/pre&gt;
&lt;pre&gt;    WHERE it.internal_type IN (202,204)&lt;/pre&gt;
&lt;pre&gt;    group by object_name(p.object_id)&lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre&gt;    select name, sum(reserved_page_count) reserved_page_Count, sum(used_page_count) used_page_Count, &lt;/pre&gt;
&lt;pre&gt;        sum(Pages) pages, sum(rc) rc&lt;/pre&gt;
&lt;pre&gt;    into #totals&lt;/pre&gt;
&lt;pre&gt;    from (&lt;/pre&gt;
&lt;pre&gt;        select name, reserved_page_count, used_page_count, pages, rc&lt;/pre&gt;
&lt;pre&gt;        from #mainpartitionstats&lt;/pre&gt;
&lt;pre&gt;        union &lt;/pre&gt;
&lt;pre&gt;        select name, reserved_page_count, used_page_count, 0 pages, 0 rc&lt;/pre&gt;
&lt;pre&gt;        from #LOBpartitionstats&lt;/pre&gt;
&lt;pre&gt;        ) c&lt;/pre&gt;
&lt;pre&gt;    group by name&lt;/pre&gt;
&lt;pre&gt;    &lt;/pre&gt;
&lt;pre&gt;    SELECT name, rc as [rows], &lt;/pre&gt;
&lt;pre&gt;        reserved_page_count * 8 Reserved_Space_KB, &lt;/pre&gt;
&lt;pre&gt;        pages * 8 Data_Space_KB,&lt;/pre&gt;
&lt;pre&gt;        case when used_page_count &amp;gt; pages then (used_page_count - pages) * 8 else 0 end as index_space_KB,&lt;/pre&gt;
&lt;pre&gt;        case when reserved_page_count &amp;gt; used_page_count then (reserved_page_count - used_page_count) * 8 end as unused_space_kb&lt;/pre&gt;
&lt;pre&gt;    from #totals&lt;/pre&gt;
&lt;pre&gt;    order by 3 desc&lt;/pre&gt;&lt;img src="http://weblogs.sqlteam.com/chrism/aggbug/61215.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Miller</dc:creator>
            <guid>http://weblogs.sqlteam.com/chrism/archive/2010/10/05/tables-and-the-space-they-use.aspx</guid>
            <pubDate>Tue, 05 Oct 2010 22:21:21 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/chrism/archive/2010/10/05/tables-and-the-space-they-use.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/chrism/comments/commentRss/61215.aspx</wfw:commentRss>
        </item>
        <item>
            <title>COM+, DTC, and 80070422</title>
            <category>KCTechBlog Syndication</category>
            <link>http://weblogs.sqlteam.com/chrism/archive/2010/02/11/COM-DTC-and-80070422.aspx</link>
            <description>&lt;p&gt;&lt;font face=""&gt;One of our  "packaged" software bits that accesses my servers is going through an upgrade right now.  Apparently this software requires DTC to be installed on my SQL Server, and able to accept remote connections.  So I look up how to do that in the knowledge base:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;http://support.microsoft.com/?kbid=555017&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;And immediately hit a roadblock.  The DTC components aren't showing up in my Component Services console.  The entire console's acting weird (well, weirder than usual) and when I go into the console and click "Options" it insists on having a timeout entered, and when I enter one, close the box, and go back, the setting's gone again and I'm required to re-enter it.  Lots of weirdness, and no DTC tab.  If you open the COM+ folders, you immediately get error 80070422.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;After a lot of searching I was looking through the Services listing on the box (after restarting DTC for the twelfth time) and saw that "Com+ System Application" was disabled.  I set it to manual, rebooted the box (test server) and everything started working.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;So, if you're trying to follow those instructions and discover that the Component Services tool is acting odder than usual, make sure that service isn't disabled.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;&lt;br /&gt;
&lt;/font&gt; &lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/chrism/aggbug/61101.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Miller</dc:creator>
            <guid>http://weblogs.sqlteam.com/chrism/archive/2010/02/11/COM-DTC-and-80070422.aspx</guid>
            <pubDate>Thu, 11 Feb 2010 17:18:42 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/chrism/archive/2010/02/11/COM-DTC-and-80070422.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/chrism/comments/commentRss/61101.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Star Trek Online Open Beta, Thumbnail Review</title>
            <link>http://weblogs.sqlteam.com/chrism/archive/2010/01/18/Star-Trek-Online-Open-Beta-Thumbnail-Review.aspx</link>
            <description>I figure there's got to be some crossover between the SQL Server folks and the MMO folks, so here ya go.&lt;br /&gt;
&lt;br /&gt;
I downloaded and played the new Star Trek: Online open beta this week, just to see if it was going to be worthwhile.  So here's some of my thoughts on it.&lt;br /&gt;
&lt;br /&gt;
It's an MMO, Massively Multiplayer Online game.  Typically that means you'll buy a box at your local retail outlet for $49.99 and then pay a monthly subscription fee, probably $15.  &lt;br /&gt;
&lt;br /&gt;
It's also a Role Playing Game.  I was looking forward to it, thinking it'd be a really interesting social experiment to get people to work together to run a ship.&lt;br /&gt;
&lt;br /&gt;
Wrong.&lt;br /&gt;
&lt;br /&gt;
So it's an MMO, and you're basically a one-man army, you have a ship of your very own, that you can fly using your mouse.  As long as you don't want to go upside down.  It's the Federation, son, YOU WILL FLY UPRIGHT AT ALL TIMES.  The weapons and upgrades are the predictable "more power" upgrades you'd get at the beginning of any MMO.  There seemed to be a lot more MMO jargon used in the weapon descriptions (weapons have DPS, armor/shield penetration, etc) that might be opaque to people who haven't done a lot with MMO's before.  That is likely to change, this is a beta.  &lt;br /&gt;
&lt;br /&gt;
Basically there are 2 "modes" to the game.  Ship mode, where you're flying your ship, and ground mode, where you're running around hallways as a person.  &lt;br /&gt;
&lt;br /&gt;
The ship combat was...well, boring.  Fly around (but not upside down) and shoot things.  make sure your weakest shield is facing away from your enemy.  Hold down the space bar to auto-fire.  It takes about 2 minutes to master.  The shield thing is interesting too, if by "interesting" you mean "really simple and cheesed-out".  There are 4 quadrants to your shield:  fore/aft/starboard/port.  If you fly above or below someone, it's pretty much *random* what's going to get hit.  Your energy weapons have a 200 degree firing arc, facing either forward or aft, but ignoring up and down.  Last time I checked, space combat was supposed to be 3D.  So it's a 2-d based combat where you can fly in 3 dimensions, sort of.  &lt;br /&gt;
&lt;br /&gt;
You can customize your ship pretty much on the fly.  Whenever you're out of combat, you can completely replace your weapons with any that you salvage (loot) off another ship you kill.  You know, what would take a drydock and several weeks takes 2 seconds in MMO-land.  &lt;br /&gt;
&lt;br /&gt;
Then occasionally you'll touch down on the planet and be the away team.  Now this is Borg-era Star Trek, and they let you, the captain, the person responsible for the ship, beam down into dangerous situations with the away team.  Hrm.  Yeah, so that regulation obviously didn't make it into the RPG.  When you're on the ground (or in another ship) the game acts like the world's most dumbed-down third person shooter.  Click your target, click your attack.  Repeat until target dies.  You have 3 attacks (2 shooting and a melee knockback) and that's...well, that's it.  You have medical packs too.  I never really felt in enough mortal peril to use one though.&lt;br /&gt;
&lt;br /&gt;
One of the things I like about MMO's is specialization.  I can pick a character class, learn that character class completely, and then I'll be a fairly good player.  ST:O went a different way.  You choose a character class, but I'm not exactly sure why, since no matter what class you pick you get the same skill trees, leveling track, and role.  You're the captain.  That's it.  Except when you're not the captain, and you're having to learn the roles of all the other classes so you can populate your bridge with good officers.  And then know all the other skill trees, so you can level those officers as they gain experience.&lt;br /&gt;
&lt;br /&gt;
It's like they took the worst parts of most RPG's (having to micro-manage a team of NPC's), the worst space flight game ever, and a really bad 3rd person shooter and crammed them into one package.&lt;br /&gt;
&lt;br /&gt;
So far: Bad character management, bad space flight, and bad third person shooter.  So how's the social part?&lt;br /&gt;
&lt;br /&gt;
Um.  Yeah.  There's a chat box, and it scrolls the Star Trek equivalent of Barrens chat.  People asking where different things are.  Someone actually (jokingly) asked where Mankrik's Wife was (a WoW joke) just to make the scene complete.  You *can* team up and there's a system called "Fleets" which look like a guild based system.  I didn't stick around long enough, the game mechanics were, frankly, boring me to tears.  &lt;br /&gt;
&lt;br /&gt;
The graphics are...fine.  I guess.  I have a midrange video card, there was no video lag (lots of server lag though).  Everything looked pretty enough, which for an MMO means "about 2 generations behind any other rendering system".  Phasers look like phasers, photon torpedos look like photon torpedos.  Nothing earth-shatteringly pretty or mind-numbingly awful.&lt;br /&gt;
&lt;br /&gt;
There are lots of loading screens.  In the WoW universe you can travel from the far southern end of the world to nearly the northern tip of the world with no loading screens and smooth transitions.  If you attempted to walk that distance it would take probably a couple of hours, which is why there are lots of fast-travel options in WoW.  There were loading screens inside ST:O within the same building.  Small building.  An area that took 30-45 seconds to run across would have a loading screen to get to it.  &lt;br /&gt;
&lt;br /&gt;
There were lots of glitches, which I mainly account to server lag.  I'm not sure that a shaky launch is going to do these guys any favors though when it comes to winning enough market share to be viable.  The only thing that Age of Conan did right was get have stable servers at launch and through beta. ST:O's operations people really don't understand how to seed torrents, it took me about 2 days to download the client software through their system, and the torrent wasn't seeded at all before it went live.  You know it's going to be fun when uTorrent says under "estimated time" 3y3d.  &lt;br /&gt;
&lt;br /&gt;
There were running glitches (run along, suddenly you rewind to 50 yards back down the hall), ship transition glitches (you beam up and you see your character running in space).  Ship flight glitches (you'd rewind to about 50...uh...probably meters back sometimes).  I'm going to attribute most of the glitchiness to the beta quality server software.  That's fine, that's why you have betas.  The gameplay mechanics, however, were just awful, and that's something you do in design, not in beta.&lt;br /&gt;
&lt;br /&gt;
A pretty horrible game so far.  I hope it gets better, but I'm not going to be buying it.&lt;br /&gt;&lt;img src="http://weblogs.sqlteam.com/chrism/aggbug/61083.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Miller</dc:creator>
            <guid>http://weblogs.sqlteam.com/chrism/archive/2010/01/18/Star-Trek-Online-Open-Beta-Thumbnail-Review.aspx</guid>
            <pubDate>Tue, 19 Jan 2010 02:13:41 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/chrism/archive/2010/01/18/Star-Trek-Online-Open-Beta-Thumbnail-Review.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/chrism/comments/commentRss/61083.aspx</wfw:commentRss>
        </item>
        <item>
            <title>SQL Server 2005 SP3 install issue</title>
            <category>KCTechBlog Syndication</category>
            <link>http://weblogs.sqlteam.com/chrism/archive/2009/12/29/SQL-Server-2005-SP3-install-issue.aspx</link>
            <description>&lt;p&gt;So I got this message:&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;MSP Error: 28017  SQL Server Setup cannot write to removable media. To continue, specify a directory on a hard disk attached to the computer where SQL Server will be installed.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;And I'm installing to locally attached storage.  After about 20 minutes of cursing, rebooting, and cursing some more, I went to My Computer and disconnected all my network drives.  My logon script helpfully maps network drives, I'd forgotten about them since mapping drives sucks and I don't ever use them (UNC paths for life!).  So I unmapped them and suddenly it worked.&lt;/p&gt;
&lt;p&gt;Stupid bug, bad error message, and stupid logon script.&lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/chrism/aggbug/61077.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Miller</dc:creator>
            <guid>http://weblogs.sqlteam.com/chrism/archive/2009/12/29/SQL-Server-2005-SP3-install-issue.aspx</guid>
            <pubDate>Tue, 29 Dec 2009 14:55:38 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/chrism/archive/2009/12/29/SQL-Server-2005-SP3-install-issue.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/chrism/comments/commentRss/61077.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Installing SQL Server 2005 on a Windows 2008 R2 Cluster</title>
            <category>KCTechBlog Syndication</category>
            <link>http://weblogs.sqlteam.com/chrism/archive/2009/12/28/Installing-SQL-Server-2005-on-a-Windows-2008-R2-Cluster.aspx</link>
            <description>&lt;p&gt;I just had an interesting issue with an installation I thought I'd share.  I was installing SQL Server 2005 on a Windows Server 2008 R2 cluster.  The cluster validates properly (use the cluster validation tool in 2008 R2, it will save you problems) and failed over properly prior to installation.  When installing SQL Server 2005, I got through putting in all the information and when it came time to actaully install the software got a "User has cancelled the installation" error, and a notification to check the logs.  The logs said:&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;Waiting for actions from remote setup(s)&lt;br /&gt;
Breaking wait state and aborting package due to cancel code received: 1602&lt;br /&gt;
Remote setup(s) are ready&lt;br /&gt;
Notify package action is determined: 1602&lt;br /&gt;
        Error Code: 0x800700e9 (233)&lt;br /&gt;
Windows Error Text: No process is on the other end of the pipe.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;  Source File Name: remotemessagelib\overlappedpipelistener.cpp&lt;br /&gt;
Compiler Timestamp: Fri Jul 29 01:13:51 2005&lt;br /&gt;
     Function Name: sqls::OverlappedPipeListener::writePipe&lt;br /&gt;
Source Line Number: 294&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;The installation was failing when it attempted to attach to the other cluster node.  The resolution is:&lt;/p&gt;
&lt;p&gt;1.  Make sure the task scheduler service is running on the remote cluster node.  If the task scheduler service is a cluster resource, fail that resource over to the remote node (the latter was not an issue on my side, I've read questions from people asking about it though).&lt;/p&gt;
&lt;p&gt;2.  Go into your registry (insert standard "don't ever edit the registry" disclaimer here) and go to HKLM/System/CurrentControlSet/Control/LSA and change the "disabledomaincreds" from 1 to 0 on EACH CLUSTER NODE and then reboot BOTH CLUSTER NODES.&lt;/p&gt;
&lt;p&gt;Then the install worked like a champ.&lt;/p&gt;
&lt;p&gt;Big thanks to MS Sql PSS for getting this fixed quickly.  &lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/chrism/aggbug/61076.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Miller</dc:creator>
            <guid>http://weblogs.sqlteam.com/chrism/archive/2009/12/28/Installing-SQL-Server-2005-on-a-Windows-2008-R2-Cluster.aspx</guid>
            <pubDate>Mon, 28 Dec 2009 20:15:35 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/chrism/archive/2009/12/28/Installing-SQL-Server-2005-on-a-Windows-2008-R2-Cluster.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/chrism/comments/commentRss/61076.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Left-duplicate indexes</title>
            <category>KCTechBlog Syndication</category>
            <link>http://weblogs.sqlteam.com/chrism/archive/2009/11/12/Left-duplicate-indexes.aspx</link>
            <description>&lt;p&gt;At Kim Tripp's PASS session on indexing and covered indexes, she more-or-less proved that wider is better for indexes, within reason and searchability.  It's better to have the index (Column1, Column2, Column3) than the index (Column1) and then a (Column1, Column2) and then a (Column1, Column2, Column3).  And the first two of that set are redundant and don't provide any significant performance improvement over a wider index in most applications.&lt;/p&gt;
&lt;p&gt;Finding cases where you have multiple indexes like that isn't a trivial problem.  Here's the answer I came up with.  This particular query finds cases of a (Column1, Column2....ColumnN) with a (Column1) but it could be pretty easily modified to do a multiple left side key required.  It's all filtering, just add [3] and the appropriate group by/max and you're set.  And once again, yes, you could do this without a temp table, but the temp table's kind of interesting on its own.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="color: blue; font-size: 10pt;"&gt;select&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; oname&lt;span style="color: gray;"&gt;,&lt;/span&gt; index_id&lt;span style="color: gray;"&gt;,&lt;/span&gt; [1]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [2]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [3]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [4]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [5]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [6]&lt;span style="color: gray;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; text-indent: 0.5in; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;[7]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [8]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [9]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [10]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [11]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [12]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [13]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [14]&lt;span style="color: gray;"&gt;,&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; text-indent: 0.5in; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;[15]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [16]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [17]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [18]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [19]&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;      &lt;span style="color: blue;"&gt;into&lt;/span&gt; #TableList&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;      &lt;span style="color: blue;"&gt;from &lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;            &lt;span style="color: blue;"&gt;select&lt;/span&gt; &lt;span style="color: fuchsia;"&gt;object_name&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;&lt;span style="color: fuchsia;"&gt;object_id&lt;/span&gt;&lt;span style="color: gray;"&gt;)&lt;/span&gt; oname&lt;span style="color: gray;"&gt;,&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; text-indent: 0.5in; margin: 0in 0in 0pt 1in;"&gt;&lt;span style="font-size: 10pt;"&gt;index_id&lt;span style="color: gray;"&gt;,&lt;/span&gt; key_ordinal&lt;span style="color: gray;"&gt;,&lt;/span&gt; Column_ID &lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; text-indent: 0.5in; margin: 0in 0in 0pt 1in;"&gt;&lt;span style="color: blue; font-size: 10pt;"&gt;from&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: green;"&gt;sys&lt;/span&gt;&lt;span style="color: gray;"&gt;.&lt;/span&gt;&lt;span style="color: green;"&gt;index_columns&lt;/span&gt;&lt;span style="color: gray;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;AS&lt;/span&gt; SourceTable&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;            &lt;span style="color: gray;"&gt;pivot&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;&lt;span style="color: fuchsia;"&gt;max&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;column_id&lt;span style="color: gray;"&gt;)&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;            &lt;span style="color: blue;"&gt;for&lt;/span&gt; key_ordinal &lt;span style="color: gray;"&gt;in&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;[1]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [2]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [3]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [4]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [5]&lt;span style="color: gray;"&gt;,&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; text-indent: 0.5in; margin: 0in 0in 0pt 1in;"&gt;&lt;span style="font-size: 10pt;"&gt;[6]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [7]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [8]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [9]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [10]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [11]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [12]&lt;span style="color: gray;"&gt;,&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; text-indent: 0.5in; margin: 0in 0in 0pt 1in;"&gt;&lt;span style="font-size: 10pt;"&gt;[13]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [14]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [15]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [16]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [17]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [18]&lt;span style="color: gray;"&gt;,&lt;/span&gt; [19]&lt;span style="color: gray;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;            &lt;span style="color: gray;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;as&lt;/span&gt; PivotTable&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;            &lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="color: blue; font-size: 10pt;"&gt;select&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; oname&lt;span style="color: gray;"&gt;,&lt;/span&gt; [1]&lt;span style="color: gray;"&gt;,&lt;/span&gt; &lt;span style="color: fuchsia;"&gt;max&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;[2]&lt;span style="color: gray;"&gt;),&lt;/span&gt; &lt;span style="color: fuchsia;"&gt;count&lt;/span&gt;&lt;span style="color: gray;"&gt;(*)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="color: blue; font-size: 10pt;"&gt;from&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; #TableList&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="color: blue; font-size: 10pt;"&gt;group&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: blue;"&gt;by&lt;/span&gt; oname&lt;span style="color: gray;"&gt;,&lt;/span&gt; [1]&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="color: blue; font-size: 10pt;"&gt;having&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: fuchsia;"&gt;count&lt;/span&gt;&lt;span style="color: gray;"&gt;(*)&lt;/span&gt; &lt;span style="color: gray;"&gt;&amp;gt;&lt;/span&gt; 1&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="color: blue; font-size: 10pt;"&gt;order&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: blue;"&gt;by&lt;/span&gt; 1&lt;/span&gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/chrism/aggbug/61053.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Miller</dc:creator>
            <guid>http://weblogs.sqlteam.com/chrism/archive/2009/11/12/Left-duplicate-indexes.aspx</guid>
            <pubDate>Thu, 12 Nov 2009 17:05:41 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/chrism/archive/2009/11/12/Left-duplicate-indexes.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/chrism/comments/commentRss/61053.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Finding tables with no unique indexes</title>
            <link>http://weblogs.sqlteam.com/chrism/archive/2009/11/11/Finding-tables-with-no-unique-indexes.aspx</link>
            <description>&lt;p&gt;Same vendor, different issue.  How many tables in the database aren't really tables, but are actually just 2 dimensional data stores of unknown quality?  Tables should have a unique index.  Of some kind.  If it's a formal PK, or a unique constraint or a unique index, it needs have *something* unique enforced, or it's not really a relational table, but is instead a pile of unknown quality data.  &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;select&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; so&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;name&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;from&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;span style="COLOR: green"&gt;sys&lt;/span&gt;&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;&lt;span style="COLOR: green"&gt;objects&lt;/span&gt; so&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&lt;span style="COLOR: gray"&gt;left&lt;/span&gt; &lt;span style="COLOR: gray"&gt;join&lt;/span&gt; &lt;span style="COLOR: green"&gt;sys&lt;/span&gt;&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;&lt;span style="COLOR: green"&gt;indexes&lt;/span&gt; si&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;            &lt;/span&gt;&lt;span style="COLOR: blue"&gt;on&lt;/span&gt; si&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;object_id&lt;/span&gt; &lt;span style="COLOR: gray"&gt;=&lt;/span&gt; so&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;object_id&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;            &lt;/span&gt;&lt;span style="COLOR: gray"&gt;and&lt;/span&gt; si&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;is_unique &lt;span style="COLOR: gray"&gt;=&lt;/span&gt; 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;where&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; si&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;index_id &lt;span style="COLOR: gray"&gt;is&lt;/span&gt; &lt;span style="COLOR: gray"&gt;null&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&lt;span style="COLOR: gray"&gt;and&lt;/span&gt; so&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;type_desc &lt;span style="COLOR: gray"&gt;=&lt;/span&gt; &lt;span style="COLOR: red"&gt;'user_table'&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;order&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;span style="COLOR: blue"&gt;by&lt;/span&gt; 1&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;font face=""&gt;&lt;/font&gt; 428 tables with no unique indexes.  This goes with the 36 completely duplicated indexes and 50+ partially duplicated indexes.  &lt;/p&gt;
&lt;p&gt;And by the way, I checked.  is_primary_key implies is_unique, and is_unique_constraint implies is_unique.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;img src="http://weblogs.sqlteam.com/chrism/aggbug/61051.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Miller</dc:creator>
            <guid>http://weblogs.sqlteam.com/chrism/archive/2009/11/11/Finding-tables-with-no-unique-indexes.aspx</guid>
            <pubDate>Wed, 11 Nov 2009 20:30:13 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/chrism/archive/2009/11/11/Finding-tables-with-no-unique-indexes.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/chrism/comments/commentRss/61051.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Finding duplicated indexes</title>
            <link>http://weblogs.sqlteam.com/chrism/archive/2009/11/11/Finding-duplicated-indexes.aspx</link>
            <description>&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;font size="3"&gt;So I wanted to start being a bit more aggressive about index management.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Specifically, I want to be able to find duplicated indexes inside of one of my vendor databases.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;So (1) I can make fun of them even more than I do already, and (2) so I can give them a script of all their issues that they might be able to resolve them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;font size="3"&gt;Here’s what I came up with.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Only really works if you have 19 or fewer columns per index.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Why 19?&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I got tired of typing there.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;You can write this up as a code generator if you don’t like it.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;There are better ways to do this, but the way I’m doing it you can look at the temp table and use it to find the more subtle problem of a table with two indexes which are subsets of each other, which are usually but not always redundant.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Anyway, here ya go.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;drop&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;span style="COLOR: blue"&gt;table&lt;/span&gt; #tablelist&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;select&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; oname&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; index_id&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [1]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [2]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [3]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [4]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [5]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [6]&lt;span style="COLOR: gray"&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;[7]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [8]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [9]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [10]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [11]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [12]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [13]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [14]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;[15]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [16]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [17]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [18]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [19]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;into&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; #TableList&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;from &lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: gray; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&lt;span style="COLOR: blue"&gt;select&lt;/span&gt; &lt;span style="COLOR: fuchsia"&gt;object_name&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;object_id&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; oname&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; index_id&lt;span style="COLOR: gray"&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;key_ordinal&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; Column_ID &lt;span style="COLOR: blue"&gt;from&lt;/span&gt; &lt;span style="COLOR: green"&gt;sys&lt;/span&gt;&lt;span style="COLOR: gray"&gt;.&lt;/span&gt;&lt;span style="COLOR: green"&gt;index_columns&lt;/span&gt;&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: blue"&gt;AS&lt;/span&gt; SourceTable&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&lt;span style="COLOR: gray"&gt;pivot&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt;max&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;key_ordinal&lt;span style="COLOR: gray"&gt;)&lt;/span&gt; &lt;span style="COLOR: green"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&lt;span style="COLOR: blue"&gt;for&lt;/span&gt; column_id &lt;span style="COLOR: gray"&gt;in&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: gray"&gt;(&lt;/span&gt;[1]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [2]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [3]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [4]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [5]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [6]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt 1in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;[7]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [8]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [9]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [10]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [11]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [12]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [13]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [14]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt 1in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;[15]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [16]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [17]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [18]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [19]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: gray; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: gray; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;)&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;span style="COLOR: blue"&gt;as&lt;/span&gt; PivotTable&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;            &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;select&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; oname&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [1]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [2]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [3]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [4]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [5]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [6]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;[7]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [8]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [9]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [10]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [11]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [12]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [13]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;[14]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [15]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [16]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [17]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [18]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [19]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;from&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; #TableList&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;group&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;span style="COLOR: blue"&gt;by&lt;/span&gt; oname&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [1]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [2]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [3]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [4]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [5]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [6]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;[7]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [8]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [9]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [10]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [11]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [12]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [13]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [14]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;[15]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [16]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [17]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [18]&lt;span style="COLOR: gray"&gt;,&lt;/span&gt; [19]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;having&lt;/span&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;span style="COLOR: fuchsia"&gt;count&lt;/span&gt;&lt;span style="COLOR: gray"&gt;(*)&lt;/span&gt; &lt;span style="COLOR: gray"&gt;&amp;gt;&lt;/span&gt; 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;order&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;span style="COLOR: blue"&gt;by&lt;/span&gt; 1&lt;/span&gt;&lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/chrism/aggbug/61050.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Miller</dc:creator>
            <guid>http://weblogs.sqlteam.com/chrism/archive/2009/11/11/Finding-duplicated-indexes.aspx</guid>
            <pubDate>Wed, 11 Nov 2009 15:45:40 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/chrism/archive/2009/11/11/Finding-duplicated-indexes.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/chrism/comments/commentRss/61050.aspx</wfw:commentRss>
        </item>
        <item>
            <title>How to specify a Windows Authentication user in T-SQL</title>
            <link>http://weblogs.sqlteam.com/chrism/archive/2009/08/18/How-to-specify-a-Windows-Authentication-user-in-T-SQL.aspx</link>
            <description>This may only be a SQL Server 2005 problem.  Comments either way please.&lt;br /&gt;
&lt;br /&gt;
Only one of these works:&lt;br /&gt;
grant execute on stored_proc to [domain1\ismom]&lt;br /&gt;
grant execute on stored_proc to 'domain1\ismom'&lt;br /&gt;
grant execute on stored_proc to '[domain1\ismom]'&lt;br /&gt;
&lt;br /&gt;
Only one of these Execute As User works:&lt;br /&gt;
&lt;br /&gt;
execute as user = 'domain1\ismom'&lt;br /&gt;
exec master..xp_sqlagent_enum_jobs 0, 'sys-admin'&lt;br /&gt;
revert&lt;br /&gt;
&lt;br /&gt;
execute as user = '[domain1\ismom]'&lt;br /&gt;
exec master..xp_sqlagent_enum_jobs 0, 'sys-admin'&lt;br /&gt;
revert&lt;br /&gt;
&lt;br /&gt;
execute as user = [domain1\ismom]&lt;br /&gt;
exec master..xp_sqlagent_enum_jobs 0, 'sys-admin'&lt;br /&gt;
revert&lt;br /&gt;
&lt;br /&gt;
The execute as user doesn't give you a syntax error, by the way.  Instead it goes all cryptic:&lt;br /&gt;
Msg 15404, Level 16, State 11, Line 1&lt;br /&gt;
Could not obtain information about Windows NT group/user '[domain1\ismom]', error code 0x534.&lt;br /&gt;
&lt;br /&gt;
Some consistency here would be nice.  Usable error messages are a plus also.&lt;br /&gt;
&lt;br /&gt;
For grant execute, use the bare brackets [domain1\ismom]&lt;br /&gt;
For Execute As User, use the quotes &lt;span style="font-weight: bold;"&gt;without&lt;/span&gt; brackets: 'domain1\ismom'&lt;br /&gt;&lt;img src="http://weblogs.sqlteam.com/chrism/aggbug/60985.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Miller</dc:creator>
            <guid>http://weblogs.sqlteam.com/chrism/archive/2009/08/18/How-to-specify-a-Windows-Authentication-user-in-T-SQL.aspx</guid>
            <pubDate>Tue, 18 Aug 2009 16:26:10 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/chrism/archive/2009/08/18/How-to-specify-a-Windows-Authentication-user-in-T-SQL.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/chrism/comments/commentRss/60985.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Someone might not understand how CASE works....</title>
            <link>http://weblogs.sqlteam.com/chrism/archive/2009/05/05/Someone-might-not-understand-how-CASE-works.aspx</link>
            <description>    case when StatusFlag = 'LWCA' and TransactionType &amp;lt;&amp;gt; 'W' then 'Layw Cancel'&lt;br /&gt;
        ELSE&lt;br /&gt;
    case when StatusFlag = 'LWCA' and TransactionType = 'W' then 'Warranty Cancel'&lt;br /&gt;
        ELSE&lt;br /&gt;
    case when StatusFlag = 'WAPK' then 'Warranty Pickup'&lt;br /&gt;
        ELSE&lt;br /&gt;
    case when StatusFlag = 'LWSE' and TransactionType &amp;lt;&amp;gt; 'W' then 'Layaway'&lt;br /&gt;
        ELSE&lt;br /&gt;
    case when StatusFlag = 'LWSE' and TransactionType = 'W' then 'Warranty Setup'&lt;br /&gt;
        ELSE&lt;br /&gt;
    case when StatusFlag = 'SALE' and isnull(HV.QTY,0) &amp;gt; 0 and layawaynumber is null then 'Sale'&lt;br /&gt;
        ELSE&lt;br /&gt;
    case when StatusFlag = 'SALE' and isnull(HV.QTY,0) &amp;gt; 0 and NOT layawaynumber is null then 'Lwy Pickup'&lt;br /&gt;
        ELSE&lt;br /&gt;
    case when StatusFlag = 'SALE' and isnull(HV.QTY,0) &amp;lt;= 0 then 'Return'&lt;br /&gt;
    End End End End End End End End,&lt;img src="http://weblogs.sqlteam.com/chrism/aggbug/60905.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Miller</dc:creator>
            <guid>http://weblogs.sqlteam.com/chrism/archive/2009/05/05/Someone-might-not-understand-how-CASE-works.aspx</guid>
            <pubDate>Tue, 05 May 2009 14:35:14 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/chrism/archive/2009/05/05/Someone-might-not-understand-how-CASE-works.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/chrism/comments/commentRss/60905.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>
