<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Allen White</title><link>http://sqlblog.com/blogs/allen_white/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Best Thing I Learned at PASS</title><link>http://sqlblog.com/blogs/allen_white/archive/2009/06/29/best-thing-i-learned-at-pass.aspx</link><pubDate>Mon, 29 Jun 2009 11:35:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:14992</guid><dc:creator>AllenMWhite</dc:creator><slash:comments>1</slash:comments><comments>http://sqlblog.com/blogs/allen_white/comments/14992.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/allen_white/commentrss.aspx?PostID=14992</wfw:commentRss><description>At the 2003 PASS Summit in Seattle the organization had a "SIG Challenge" that involved developing a database solution to a business problem. They assigned people to teams and allowed us to work on the problem only when sessions weren't occurring, but...(&lt;a href="http://sqlblog.com/blogs/allen_white/archive/2009/06/29/best-thing-i-learned-at-pass.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=14992" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/User+Group+Meetings/default.aspx">User Group Meetings</category></item><item><title>Emergency Procedures</title><link>http://sqlblog.com/blogs/allen_white/archive/2009/06/22/emergency-procedures.aspx</link><pubDate>Mon, 22 Jun 2009 19:34:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:14840</guid><dc:creator>AllenMWhite</dc:creator><slash:comments>3</slash:comments><comments>http://sqlblog.com/blogs/allen_white/comments/14840.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/allen_white/commentrss.aspx?PostID=14840</wfw:commentRss><description>In a followup to Aaron Bertrand's recent blog post on Disaster Recovery, I'd like to mention something I always mention when I teach SQL Server classes. One of the best sources of training I received for being a DBA was, in fact, the training I received...(&lt;a href="http://sqlblog.com/blogs/allen_white/archive/2009/06/22/emergency-procedures.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=14840" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/Database+Administration/default.aspx">Database Administration</category></item><item><title>PASS Summit 2009 - PowerShell and Performance</title><link>http://sqlblog.com/blogs/allen_white/archive/2009/06/15/pass-summit-2009-powershell-and-performance.aspx</link><pubDate>Mon, 15 Jun 2009 11:46:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:14670</guid><dc:creator>AllenMWhite</dc:creator><slash:comments>1</slash:comments><comments>http://sqlblog.com/blogs/allen_white/comments/14670.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/allen_white/commentrss.aspx?PostID=14670</wfw:commentRss><description>&lt;p&gt;Over the weekend I received the great news that I've been selected to present a new session, Gather SQL Server Performance Data with PowerShell, at the &lt;a href="http://summit2009.sqlpass.org/"&gt;2009 PASS Summit&lt;/a&gt; in Seattle.&lt;/p&gt;
&lt;p&gt;Here's the abstract:&lt;br&gt;&lt;br&gt;
We all know how important it is to keep a baseline of performance metrics that allow us to know when something is wrong and help us to track it down and fix the problem.  We don't always know how to do this easily and consistently.  This session will walk you through a series of PowerShell scripts you can schedule which will capture the most important data and a set of reports to show you how to use that data to keep your server running smoothly.&lt;/p&gt;
&lt;p&gt;I look forward to seeing you there.&lt;/p&gt;
&lt;p&gt;Allen&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=PASS Summit 2009 - PowerShell and Performance&amp;amp;body=Seen on SQLblog.com: %0A%0A%09PASS Summit 2009 - PowerShell and Performance%0A%0Ahttp://sqlblog.com/blogs/allen_white/archive/2009/06/15/pass-summit-2009-powershell-and-performance.aspx" target="_blank" title = "Email PASS Summit 2009 - PowerShell and Performance"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/allen_white/archive/2009/06/15/pass-summit-2009-powershell-and-performance.aspx&amp;amp;title=PASS+Summit+2009+-+PowerShell+and+Performance" target="_blank" title = "Submit PASS Summit 2009 - PowerShell and Performance to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/06/15/pass-summit-2009-powershell-and-performance.aspx&amp;amp;phase=2" target="_blank" title = "Submit PASS Summit 2009 - PowerShell and Performance to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/06/15/pass-summit-2009-powershell-and-performance.aspx&amp;amp;title=PASS+Summit+2009+-+PowerShell+and+Performance" target="_blank" title = "Submit PASS Summit 2009 - PowerShell and Performance to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/allen_white/archive/2009/06/15/pass-summit-2009-powershell-and-performance.aspx&amp;amp;title=PASS+Summit+2009+-+PowerShell+and+Performance" target="_blank" title = "Submit PASS Summit 2009 - PowerShell and Performance to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/allen_white/archive/2009/06/15/pass-summit-2009-powershell-and-performance.aspx&amp;amp;title=PASS+Summit+2009+-+PowerShell+and+Performance&amp;amp;;top=1" target="_blank" title = "Add PASS Summit 2009 - PowerShell and Performance to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=14670" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/Speaking/default.aspx">Speaking</category></item><item><title>PowerShell Whitepaper Published</title><link>http://sqlblog.com/blogs/allen_white/archive/2009/06/13/powershell-whitepaper-published.aspx</link><pubDate>Sat, 13 Jun 2009 16:50:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:14632</guid><dc:creator>AllenMWhite</dc:creator><slash:comments>2</slash:comments><comments>http://sqlblog.com/blogs/allen_white/comments/14632.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/allen_white/commentrss.aspx?PostID=14632</wfw:commentRss><description>&lt;p&gt;My first whitepaper for Microsoft, &lt;a href="http://msdn.microsoft.com/en-us/library/dd938892.aspx"&gt;Understanding and Using PowerShell Support in SQL Server 2008&lt;/a&gt; has been published.  It was a great honor to have been selected to write the paper, and I thank &lt;a href="http://sqlblog.com/blogs/kalen_delaney/default.aspx"&gt;Kalen Delaney&lt;/a&gt; for giving me the opportunity.  I hope you find it useful.&lt;/p&gt;
&lt;p&gt;Allen&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=PowerShell Whitepaper Published&amp;amp;body=Seen on SQLblog.com: %0A%0A%09PowerShell Whitepaper Published%0A%0Ahttp://sqlblog.com/blogs/allen_white/archive/2009/06/13/powershell-whitepaper-published.aspx" target="_blank" title = "Email PowerShell Whitepaper Published"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/allen_white/archive/2009/06/13/powershell-whitepaper-published.aspx&amp;amp;title=PowerShell+Whitepaper+Published" target="_blank" title = "Submit PowerShell Whitepaper Published to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/06/13/powershell-whitepaper-published.aspx&amp;amp;phase=2" target="_blank" title = "Submit PowerShell Whitepaper Published to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/06/13/powershell-whitepaper-published.aspx&amp;amp;title=PowerShell+Whitepaper+Published" target="_blank" title = "Submit PowerShell Whitepaper Published to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/allen_white/archive/2009/06/13/powershell-whitepaper-published.aspx&amp;amp;title=PowerShell+Whitepaper+Published" target="_blank" title = "Submit PowerShell Whitepaper Published to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/allen_white/archive/2009/06/13/powershell-whitepaper-published.aspx&amp;amp;title=PowerShell+Whitepaper+Published&amp;amp;;top=1" target="_blank" title = "Add PowerShell Whitepaper Published to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=14632" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/PowerShell/default.aspx">PowerShell</category><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Handling Errors in PowerShell</title><link>http://sqlblog.com/blogs/allen_white/archive/2009/06/08/handling-errors-in-powershell.aspx</link><pubDate>Mon, 08 Jun 2009 12:41:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:14558</guid><dc:creator>AllenMWhite</dc:creator><slash:comments>4</slash:comments><comments>http://sqlblog.com/blogs/allen_white/comments/14558.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/allen_white/commentrss.aspx?PostID=14558</wfw:commentRss><description>&lt;p&gt;Scripting tasks in PowerShell is a fairly easy way to automate tasks, but you have to know when you get errors and what the real error is.  There have been quite a number of blog posts on how to handle errors in PowerShell, like &lt;a href="http://huddledmasses.org/trap-exception-in-powershell/"&gt;this&lt;/a&gt; one by Joel 'Jaykul' Bennett.  What many of them don't do is deal with the "nested" errors that .NET throws for SQL errors.&lt;/p&gt;
&lt;p&gt;For example, the Database object in SMO provides the CheckTables() method, which runs the DBCC CHECKDB command.  The problem is that if an error occurs PowerShell just returns a message like&lt;/p&gt;
&lt;pre&gt;Exception calling "CheckTables with "1" argument(s): "Check tables failed for Database 'AdventureWorks'."&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;The important thing to remember is that the Error object captured by the Trap has a property called InnerException, and as long as this has a value, there's more to be found.  By iterating through the inner exceptions we can find the real message we need.  Here's an example:&lt;/p&gt;
&lt;pre&gt;[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null&lt;br&gt;&lt;br&gt;Trap {&lt;br&gt;  $err = $_.Exception&lt;br&gt;  while ( $err.InnerException )&lt;br&gt;    {&lt;br&gt;    $err = $err.InnerException&lt;br&gt;    write-output $err.Message&lt;br&gt;    };&lt;br&gt;    continue&lt;br&gt;  }&lt;br&gt;&lt;br&gt;$s = new-object ('Microsoft.SqlServer.Management.Smo.Server') 'SQLTBWS\INST01'&lt;br&gt;$db = $s.Databases['AdventureWorks']&lt;br&gt;$db.CheckTables('Fast')&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;This script runs DBCC CHECKDB(N'AdventureWorks', REPAIR_FAST), as you can see by watching it using Profiler.  The error gets thrown if you don't have AdventureWorks in Single User Mode.  The console output of this script then becomes&lt;/p&gt;
&lt;pre&gt;An exception occurred while executing a Transact-SQL statement or batch.&lt;br&gt;Repair statement not processed. Database needs to be in single user mode.&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;That's a whole lot more useful than the first message we received.&lt;/p&gt;
&lt;p&gt;Allen&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Handling Errors in PowerShell&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Handling Errors in PowerShell%0A%0Ahttp://sqlblog.com/blogs/allen_white/archive/2009/06/08/handling-errors-in-powershell.aspx" target="_blank" title = "Email Handling Errors in PowerShell"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/allen_white/archive/2009/06/08/handling-errors-in-powershell.aspx&amp;amp;title=Handling+Errors+in+PowerShell" target="_blank" title = "Submit Handling Errors in PowerShell to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/06/08/handling-errors-in-powershell.aspx&amp;amp;phase=2" target="_blank" title = "Submit Handling Errors in PowerShell to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/06/08/handling-errors-in-powershell.aspx&amp;amp;title=Handling+Errors+in+PowerShell" target="_blank" title = "Submit Handling Errors in PowerShell to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/allen_white/archive/2009/06/08/handling-errors-in-powershell.aspx&amp;amp;title=Handling+Errors+in+PowerShell" target="_blank" title = "Submit Handling Errors in PowerShell to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/allen_white/archive/2009/06/08/handling-errors-in-powershell.aspx&amp;amp;title=Handling+Errors+in+PowerShell&amp;amp;;top=1" target="_blank" title = "Add Handling Errors in PowerShell to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=14558" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/SMO/default.aspx">SMO</category><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/PowerShell/default.aspx">PowerShell</category></item><item><title>Scripting Our Daily (Professional) Lives</title><link>http://sqlblog.com/blogs/allen_white/archive/2009/06/03/scripting-our-daily-professional-lives.aspx</link><pubDate>Wed, 03 Jun 2009 16:00:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:14447</guid><dc:creator>AllenMWhite</dc:creator><slash:comments>1</slash:comments><comments>http://sqlblog.com/blogs/allen_white/comments/14447.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/allen_white/commentrss.aspx?PostID=14447</wfw:commentRss><description>&lt;p&gt;I talk a lot about scripting tasks on our servers to automate our regular processes, but in this case I'm talking about a different kind of script.&lt;/p&gt;
&lt;p&gt;When I first started college, I was a Theatre major.  Of course, I learned pretty quickly that my success in that field would be unlikely, so I switched to "Data Processing" and have had a good career.  (I continued to do community theatre until a couple of years ago, when work constraints limited my availability, but I look forward to getting back to it at some time in the foreseeable future.)&amp;nbsp; Theatre, of course, is mostly scripted, and the script provides a comfortable framework within which to work.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;In doing our everyday jobs, though, it seems that a script - a list of tasks necessary to accomplish a particular objective - would be helpful.  I know that as a DBA I have to have consistent and reliable backups.  What are the steps necessary to make that happen?  Yes, I can "script" that.  I also know I need to set up my servers in a somewhat consistent manner, so anyone walking into my shop can easily take over and understand where to find all the buttons and knobs.  I can script that, too.&lt;/p&gt;
&lt;p&gt;Performance monitoring is another area that I need to track.  Not only can I script the steps to build the performance monitor database and data collection jobs, but I can "script" the steps needed to get that monitoring process up and functional.&lt;/p&gt;
&lt;p&gt;A new IT project requires my services, well, there are always certain tasks they need me to do, and the project lifecycle process has that script.&lt;/p&gt;
&lt;p&gt;Now, don't get me wrong.  Not everything can be handled via "script".  Some problems can't be anticipated, but most of the normal, everyday tasks of our professional lives have a specific set of steps we follow every time, and having that script helps us be consistent in our work.&lt;/p&gt;
&lt;p&gt;I'd absolutely love to see some additional "scripts".  For example, what do you do when starting an ETL process, or designing a data warehouse?  These are all processes that can be scripted.&lt;/p&gt;
&lt;p&gt;Maybe we should work towards a central collection of scripts like this to help people who "find themselves assigned" to be responsible for these tasks.  Perhaps if we had someplace to go when faced with a set of new responsibilities, we could make good decisions based on industry expertise.&lt;/p&gt;
&lt;p&gt;It's just a thought.&lt;/p&gt;
&lt;p&gt;Allen&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Scripting Our Daily (Professional) Lives&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Scripting Our Daily (Professional) Lives%0A%0Ahttp://sqlblog.com/blogs/allen_white/archive/2009/06/03/scripting-our-daily-professional-lives.aspx" target="_blank" title = "Email Scripting Our Daily (Professional) Lives"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/allen_white/archive/2009/06/03/scripting-our-daily-professional-lives.aspx&amp;amp;title=Scripting+Our+Daily+(Professional)+Lives" target="_blank" title = "Submit Scripting Our Daily (Professional) Lives to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/06/03/scripting-our-daily-professional-lives.aspx&amp;amp;phase=2" target="_blank" title = "Submit Scripting Our Daily (Professional) Lives to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/06/03/scripting-our-daily-professional-lives.aspx&amp;amp;title=Scripting+Our+Daily+(Professional)+Lives" target="_blank" title = "Submit Scripting Our Daily (Professional) Lives to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/allen_white/archive/2009/06/03/scripting-our-daily-professional-lives.aspx&amp;amp;title=Scripting+Our+Daily+(Professional)+Lives" target="_blank" title = "Submit Scripting Our Daily (Professional) Lives to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/allen_white/archive/2009/06/03/scripting-our-daily-professional-lives.aspx&amp;amp;title=Scripting+Our+Daily+(Professional)+Lives&amp;amp;;top=1" target="_blank" title = "Add Scripting Our Daily (Professional) Lives to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=14447" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/Database+Administration/default.aspx">Database Administration</category></item><item><title>Changing Server Default Collation</title><link>http://sqlblog.com/blogs/allen_white/archive/2009/05/29/changing-server-default-collation.aspx</link><pubDate>Fri, 29 May 2009 07:23:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:14337</guid><dc:creator>AllenMWhite</dc:creator><slash:comments>2</slash:comments><comments>http://sqlblog.com/blogs/allen_white/comments/14337.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/allen_white/commentrss.aspx?PostID=14337</wfw:commentRss><description>&lt;p&gt;An interesting problem develops when the standard default collation for SQL Server isn't appropriate.  Working with clients here in the Czech Republic, I have to reset our lab systems server default collation to Czech_CI_AS, and I found it difficult to find out how to do this via Books Online.  Since we have systems running SQL 2000, SQL 2005 and SQL 2008, I have to be able to make these changes in each version, and each version has a different method for accomplishing this.&lt;/p&gt;
&lt;p&gt;In SQL 2000, you must run rebuildm.exe in the SQL Server binaries directory, and set the collation in the setup dialog.&lt;/p&gt;
&lt;p&gt;In SQL 2005, the following command will reset it:&lt;/p&gt;
&lt;pre&gt;setup.exe /qb INSTANCENAME=[instance] REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=[password] SQLCOLLATION=[new collation]
&lt;/pre&gt;
&lt;p&gt;In SQL 2008, the command is slightly different:&lt;/p&gt;
&lt;pre&gt;setup.exe /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=[instance] /SQLSYSADMINACCOUNTS=[admin account] /SAPWD=[password] /SQLCOLLATION=[new collation]&lt;/pre&gt;
&lt;p&gt;Note that you should do this before loading ANY databases or logins.  If you've already done so, detach the databases and script the logins using something like sp_help_revlogin (search the Microsoft KB articles for your version).  Then, after rebuilding the master database, you can reattach the databases and reload the login accounts.&lt;/p&gt;
&lt;p&gt;Collations can be very tricky, and when you're testing application compatibility it's important that issues like this are correctly handled so your testing is valid.&lt;/p&gt;
&lt;p&gt;Allen&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Changing Server Default Collation&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Changing Server Default Collation%0A%0Ahttp://sqlblog.com/blogs/allen_white/archive/2009/05/29/changing-server-default-collation.aspx" target="_blank" title = "Email Changing Server Default Collation"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/allen_white/archive/2009/05/29/changing-server-default-collation.aspx&amp;amp;title=Changing+Server+Default+Collation" target="_blank" title = "Submit Changing Server Default Collation to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/05/29/changing-server-default-collation.aspx&amp;amp;phase=2" target="_blank" title = "Submit Changing Server Default Collation to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/05/29/changing-server-default-collation.aspx&amp;amp;title=Changing+Server+Default+Collation" target="_blank" title = "Submit Changing Server Default Collation to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/allen_white/archive/2009/05/29/changing-server-default-collation.aspx&amp;amp;title=Changing+Server+Default+Collation" target="_blank" title = "Submit Changing Server Default Collation to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/allen_white/archive/2009/05/29/changing-server-default-collation.aspx&amp;amp;title=Changing+Server+Default+Collation&amp;amp;;top=1" target="_blank" title = "Add Changing Server Default Collation to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=14337" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/Database+Administration/default.aspx">Database Administration</category><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Tracking Deprecated Features</title><link>http://sqlblog.com/blogs/allen_white/archive/2009/05/26/tracking-deprecated-features.aspx</link><pubDate>Tue, 26 May 2009 10:03:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:14274</guid><dc:creator>AllenMWhite</dc:creator><slash:comments>4</slash:comments><comments>http://sqlblog.com/blogs/allen_white/comments/14274.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/allen_white/commentrss.aspx?PostID=14274</wfw:commentRss><description>
&lt;p&gt;This week I'm in Brno, Czech Republic leading an App Compat seminar for Microsoft clients here, and one of the  things we need to look for in their applications is the use of deprecated features.  I was poking around the sys.os_performance_counters DMV and discovered the [sqlinstance]:Deprecated Features object and found that if your application uses a deprecated feature, SQL Server increments the appropriate counter.&lt;/p&gt;

&lt;p&gt;For example, on my SQL Server instance INST03, I looked at the value for the use of the sysdatabases backward compatibility view using the following query:&lt;/p&gt;

&lt;pre&gt;select * from sys.dm_os_performance_counters&lt;br&gt;where object_name = 'MSSQL$INST03:Deprecated Features'&lt;br&gt;and instance_name = 'sysdatabases'&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;When I ran it the first time it returned the value of 2 in the cntr_value column.  I then selected from that view, then ran the query again, and it returned 3.&lt;/p&gt;

&lt;p&gt;If you're trying to track the use of deprecated features to eliminate them from your application, this is a quick and easy way to find which features (a) are deprecated and (b) your application is using.&lt;/p&gt;

&lt;p&gt;Allen&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Tracking Deprecated Features&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Tracking Deprecated Features%0A%0Ahttp://sqlblog.com/blogs/allen_white/archive/2009/05/26/tracking-deprecated-features.aspx" target="_blank" title = "Email Tracking Deprecated Features"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/allen_white/archive/2009/05/26/tracking-deprecated-features.aspx&amp;amp;title=Tracking+Deprecated+Features" target="_blank" title = "Submit Tracking Deprecated Features to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/05/26/tracking-deprecated-features.aspx&amp;amp;phase=2" target="_blank" title = "Submit Tracking Deprecated Features to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/05/26/tracking-deprecated-features.aspx&amp;amp;title=Tracking+Deprecated+Features" target="_blank" title = "Submit Tracking Deprecated Features to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/allen_white/archive/2009/05/26/tracking-deprecated-features.aspx&amp;amp;title=Tracking+Deprecated+Features" target="_blank" title = "Submit Tracking Deprecated Features to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/allen_white/archive/2009/05/26/tracking-deprecated-features.aspx&amp;amp;title=Tracking+Deprecated+Features&amp;amp;;top=1" target="_blank" title = "Add Tracking Deprecated Features to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=14274" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/Database+Administration/default.aspx">Database Administration</category><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>[Nashville] Presentation: Administering SQL Server 2008</title><link>http://sqlblog.com/blogs/allen_white/archive/2009/04/23/nashville-presentation-administering-sql-server-2008.aspx</link><pubDate>Thu, 23 Apr 2009 14:26:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:13480</guid><dc:creator>AllenMWhite</dc:creator><slash:comments>2</slash:comments><comments>http://sqlblog.com/blogs/allen_white/comments/13480.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/allen_white/commentrss.aspx?PostID=13480</wfw:commentRss><description>&lt;p&gt;As many of you know I run marathons.  My next one is on Saturday in Nashville, the &lt;a href="http://www.cmmarathon.com/home.html"&gt;Country Music Marathon&lt;/a&gt;.  Timing sometimes is our best asset, and so it is here in that the &lt;a href="http://nashville.sqlpass.org/"&gt;Nashville SQL Server Users Group&lt;/a&gt; is meeting on Friday at noon.&lt;/p&gt;

&lt;p&gt;They were kind enough to ask me to do my presentation on new features and administering SQL Server 2008. In this discussion, I will give an overview of SQL Server 2008 and the wealth of features aimed at the DBA. In this demo-fest of features you will see ways to make administering SQL Server easier and faster such as Centralized Data Management, Performance Data Warehouse, Resource Governor, Backup Compression and more.&lt;/p&gt;

&lt;p&gt;I hope to see you there, and then again Saturday morning along the marathon course to cheer me to finish my 24th state, in pursuit of my goal of running a marathon in all 50 states.&lt;/p&gt;

&lt;p&gt;Allen&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=[Nashville] Presentation: Administering SQL Server 2008&amp;amp;body=Seen on SQLblog.com: %0A%0A%09[Nashville] Presentation: Administering SQL Server 2008%0A%0Ahttp://sqlblog.com/blogs/allen_white/archive/2009/04/23/nashville-presentation-administering-sql-server-2008.aspx" target="_blank" title = "Email [Nashville] Presentation: Administering SQL Server 2008"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/allen_white/archive/2009/04/23/nashville-presentation-administering-sql-server-2008.aspx&amp;amp;title=%5bNashville%5d+Presentation%3a+Administering+SQL+Server+2008" target="_blank" title = "Submit [Nashville] Presentation: Administering SQL Server 2008 to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/04/23/nashville-presentation-administering-sql-server-2008.aspx&amp;amp;phase=2" target="_blank" title = "Submit [Nashville] Presentation: Administering SQL Server 2008 to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/04/23/nashville-presentation-administering-sql-server-2008.aspx&amp;amp;title=%5bNashville%5d+Presentation%3a+Administering+SQL+Server+2008" target="_blank" title = "Submit [Nashville] Presentation: Administering SQL Server 2008 to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/allen_white/archive/2009/04/23/nashville-presentation-administering-sql-server-2008.aspx&amp;amp;title=%5bNashville%5d+Presentation%3a+Administering+SQL+Server+2008" target="_blank" title = "Submit [Nashville] Presentation: Administering SQL Server 2008 to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/allen_white/archive/2009/04/23/nashville-presentation-administering-sql-server-2008.aspx&amp;amp;title=%5bNashville%5d+Presentation%3a+Administering+SQL+Server+2008&amp;amp;;top=1" target="_blank" title = "Add [Nashville] Presentation: Administering SQL Server 2008 to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=13480" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/Database+Administration/default.aspx">Database Administration</category><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/User+Group+Meetings/default.aspx">User Group Meetings</category><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/Speaking/default.aspx">Speaking</category></item><item><title>User Group Presentation: Administering SQL Server 2008</title><link>http://sqlblog.com/blogs/allen_white/archive/2009/03/10/user-group-presentation-administering-sql-server-2008.aspx</link><pubDate>Tue, 10 Mar 2009 11:32:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:12531</guid><dc:creator>AllenMWhite</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/allen_white/comments/12531.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/allen_white/commentrss.aspx?PostID=12531</wfw:commentRss><description>&lt;p&gt;We are pleased to invite you to the March 12th 2009 meeting of the Ohio North SQL Server Users Group (ONSSUG).  The meetings are held on the 2nd Thursday of every month at 5:45 in the Cleveland Microsoft office.  The address of the office is below:&lt;/p&gt;

&lt;p&gt;Microsoft Corporation&lt;br&gt;
6050 Oak Tree Blvd.  Suite 300&lt;br&gt;
Cleveland, OH 44131&lt;/p&gt;

&lt;p&gt;Agenda:&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Topic: Administering SQL Server 2008&lt;/b&gt; by Allen White&lt;/p&gt;

&lt;p&gt;At the March 12th, 2009, Ohio North SQL Server Users Group Meeting, Allen White will present on new features and administering SQL Server 2008.  In this discussion,  Allen will give an overview of SQL Server 2008 and the wealth of features aimed at the DBA.  In this demo-fest of features you will see ways to make administering SQL Server easier and faster such as Centralized Data Management, Performance Data Warehouse, Resource Governor, Backup Compression and more.&lt;/p&gt;

&lt;p&gt;Registration:&lt;/p&gt;

&lt;p&gt;To register, go to &lt;a href="http://www.bennettadelson.com/sql"&gt;www.bennettadelson.com/sql&lt;/a&gt; and click on the link "reserve your seat".&lt;/p&gt;

&lt;p&gt;Allen&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=User Group Presentation: Administering SQL Server 2008&amp;amp;body=Seen on SQLblog.com: %0A%0A%09User Group Presentation: Administering SQL Server 2008%0A%0Ahttp://sqlblog.com/blogs/allen_white/archive/2009/03/10/user-group-presentation-administering-sql-server-2008.aspx" target="_blank" title = "Email User Group Presentation: Administering SQL Server 2008"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/allen_white/archive/2009/03/10/user-group-presentation-administering-sql-server-2008.aspx&amp;amp;title=User+Group+Presentation%3a+Administering+SQL+Server+2008" target="_blank" title = "Submit User Group Presentation: Administering SQL Server 2008 to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/03/10/user-group-presentation-administering-sql-server-2008.aspx&amp;amp;phase=2" target="_blank" title = "Submit User Group Presentation: Administering SQL Server 2008 to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/03/10/user-group-presentation-administering-sql-server-2008.aspx&amp;amp;title=User+Group+Presentation%3a+Administering+SQL+Server+2008" target="_blank" title = "Submit User Group Presentation: Administering SQL Server 2008 to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/allen_white/archive/2009/03/10/user-group-presentation-administering-sql-server-2008.aspx&amp;amp;title=User+Group+Presentation%3a+Administering+SQL+Server+2008" target="_blank" title = "Submit User Group Presentation: Administering SQL Server 2008 to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/allen_white/archive/2009/03/10/user-group-presentation-administering-sql-server-2008.aspx&amp;amp;title=User+Group+Presentation%3a+Administering+SQL+Server+2008&amp;amp;;top=1" target="_blank" title = "Add User Group Presentation: Administering SQL Server 2008 to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=12531" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/User+Group+Meetings/default.aspx">User Group Meetings</category><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/Speaking/default.aspx">Speaking</category></item><item><title>SQL Injection</title><link>http://sqlblog.com/blogs/allen_white/archive/2009/02/21/sql-injection.aspx</link><pubDate>Sat, 21 Feb 2009 19:09:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:12067</guid><dc:creator>AllenMWhite</dc:creator><slash:comments>2</slash:comments><comments>http://sqlblog.com/blogs/allen_white/comments/12067.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/allen_white/commentrss.aspx?PostID=12067</wfw:commentRss><description>&lt;p&gt;I've been teaching a class called &lt;a href="http://www.microsoft.com/learning/en/us/syllabi/50068A.aspx"&gt;SQL Server 2008 for the Oracle DBA&lt;/a&gt; in a number of cities in the US and Canada. I helped build the class last summer and it's truly enjoyable to bring the technology of Microsoft SQL Server to people whose careers have kept them focused on Oracle.&lt;/p&gt;
&lt;p&gt;What scares me is the number of DBAs with decades of experience who've never heard of SQL Injection attacks.  In one class just two of twelve DBAs had ever heard of SQL Injection.&lt;/p&gt;
&lt;p&gt;The important thing to remember is that SQL Injection attacks aren't just limited to Microsoft SQL Server - they're just as prevalent on other database platforms, including Oracle, DB2, MySQL, ProgreSQL, etc.  It's also important to understand that it's not just externally facing applications that are of concern.  Your company's systems are probably more likely to be hacked by someone inside your organization than from the outside.  (Disgruntled employees are disgruntled, to use a current &lt;a href="http://www.fark.com/"&gt;Farkism&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;Here are a couple of sites to learn more about SQL Injection:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms161953.aspx"&gt;SQL Injection&lt;/a&gt; - SQL Server Books Online&lt;br&gt;
&lt;a href="http://en.wikipedia.org/wiki/SQL_injection"&gt;SQL Injection&lt;/a&gt; - Wikipedia&lt;/p&gt;
&lt;p&gt;I'm sure a quick look using your favorite search engine will return a long list of sites explaining the issue and ways to prevent it.  For your own sake, please understand this problem and help your organization build protections against it.&lt;/p&gt;
&lt;p&gt;Allen&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=SQL Injection&amp;amp;body=Seen on SQLblog.com: %0A%0A%09SQL Injection%0A%0Ahttp://sqlblog.com/blogs/allen_white/archive/2009/02/21/sql-injection.aspx" target="_blank" title = "Email SQL Injection"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/21/sql-injection.aspx&amp;amp;title=SQL+Injection" target="_blank" title = "Submit SQL Injection to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/21/sql-injection.aspx&amp;amp;phase=2" target="_blank" title = "Submit SQL Injection to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/21/sql-injection.aspx&amp;amp;title=SQL+Injection" target="_blank" title = "Submit SQL Injection to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/21/sql-injection.aspx&amp;amp;title=SQL+Injection" target="_blank" title = "Submit SQL Injection to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/allen_white/archive/2009/02/21/sql-injection.aspx&amp;amp;title=SQL+Injection&amp;amp;;top=1" target="_blank" title = "Add SQL Injection to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=12067" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/Database+Administration/default.aspx">Database Administration</category></item><item><title>SMO Changes from SQL 2005 to SQL 2008</title><link>http://sqlblog.com/blogs/allen_white/archive/2009/02/20/smo-changes-from-sql-2005-to-sql-2008.aspx</link><pubDate>Fri, 20 Feb 2009 14:17:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:12030</guid><dc:creator>AllenMWhite</dc:creator><slash:comments>4</slash:comments><comments>http://sqlblog.com/blogs/allen_white/comments/12030.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/allen_white/commentrss.aspx?PostID=12030</wfw:commentRss><description>&lt;p&gt;A year ago in anticipation of publishing a book on SMO (which never came to be) I wrote a number of chapters demonstrating how to manage specific sets of objects, and I provided examples in VB.Net, C# and PowerShell.  As should be expected, I thoroughly tested all of the code samples to make sure they worked.&lt;/p&gt;
&lt;p&gt;This year I've been part a couple of book projects, one being the MVP Charity book which will come out this spring, and I just completed the chapter called "Scripting with PowerShell" for Paul Nielsen's &lt;a href="http://www.sqlserverbible.com/"&gt;SQL Server 2008 Bible&lt;/a&gt;.  Without thinking much about it I included a couple of scripts that I'd written for the SMO book as examples.  Unfortunately, I didn't test them again in my SQL Server 2008 environment.&lt;/p&gt;
&lt;p&gt;I've already blogged &lt;a href="http://sqlblog.com/blogs/allen_white/archive/2007/10/19/sql-2008-smo-doing-a-little-rearranging.aspx"&gt;here&lt;/a&gt; about the relocation of objects from the SMO.dll to the SMOExtended.dll.&lt;/p&gt;
&lt;p&gt;What burned me most recently was a change in how you load a table object. Under SQL 2005 the following code worked fine:&lt;/p&gt;
&lt;pre&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO")  | out-null

$s = new-object ("Microsoft.SqlServer.Management.Smo.Server") "MyServer\MyInstance"

#Reference the AdventureWorks database.
$db = $s.Databases["AdventureWorks"]

#Connect to the HumanResources.Employee table
$tbhremp = $db.Tables["Employee", "HumanResources"]

&lt;/pre&gt;
&lt;p&gt;The script just wouldn't work using the SQL Server 2008 SMO DLLs.  Here's what I ended up doing, and this worked.&lt;/p&gt;
&lt;pre&gt;#Connect to the HumanResources.Employee table
$tbhremp = $db.Tables | where-object {$_.Name -eq 'Employee' -and $_.Schema -eq 'HumanResources'}
&lt;/pre&gt;
&lt;p&gt;I'm not sure why the first construct wouldn't work, but I couldn't even load the ErrorLog table using the first method.  (I used that table for testing because it's in the dbo schema, which my login had as its default, so I didn't need to specify the schema name.)&lt;/p&gt;
&lt;p&gt;Needless to say, any scripts you use today which rely on the behavior of the SQL 2005 DLLs need to be thoroughly tested with the SQL 2008 DLLs after they've been installed.&lt;/p&gt;
&lt;p&gt;Allen&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=SMO Changes from SQL 2005 to SQL 2008&amp;amp;body=Seen on SQLblog.com: %0A%0A%09SMO Changes from SQL 2005 to SQL 2008%0A%0Ahttp://sqlblog.com/blogs/allen_white/archive/2009/02/20/smo-changes-from-sql-2005-to-sql-2008.aspx" target="_blank" title = "Email SMO Changes from SQL 2005 to SQL 2008"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/20/smo-changes-from-sql-2005-to-sql-2008.aspx&amp;amp;title=SMO+Changes+from+SQL+2005+to+SQL+2008" target="_blank" title = "Submit SMO Changes from SQL 2005 to SQL 2008 to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/20/smo-changes-from-sql-2005-to-sql-2008.aspx&amp;amp;phase=2" target="_blank" title = "Submit SMO Changes from SQL 2005 to SQL 2008 to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/20/smo-changes-from-sql-2005-to-sql-2008.aspx&amp;amp;title=SMO+Changes+from+SQL+2005+to+SQL+2008" target="_blank" title = "Submit SMO Changes from SQL 2005 to SQL 2008 to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/20/smo-changes-from-sql-2005-to-sql-2008.aspx&amp;amp;title=SMO+Changes+from+SQL+2005+to+SQL+2008" target="_blank" title = "Submit SMO Changes from SQL 2005 to SQL 2008 to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/allen_white/archive/2009/02/20/smo-changes-from-sql-2005-to-sql-2008.aspx&amp;amp;title=SMO+Changes+from+SQL+2005+to+SQL+2008&amp;amp;;top=1" target="_blank" title = "Add SMO Changes from SQL 2005 to SQL 2008 to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=12030" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/SMO/default.aspx">SMO</category><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/PowerShell/default.aspx">PowerShell</category><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Finding Your Default File Locations in SMO</title><link>http://sqlblog.com/blogs/allen_white/archive/2009/02/19/finding-your-default-file-locations-in-smo.aspx</link><pubDate>Thu, 19 Feb 2009 17:31:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:12011</guid><dc:creator>AllenMWhite</dc:creator><slash:comments>3</slash:comments><comments>http://sqlblog.com/blogs/allen_white/comments/12011.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/allen_white/commentrss.aspx?PostID=12011</wfw:commentRss><description>&lt;p&gt;I love the fact that you can get information about your SQL Server installations from SMO, and then you can use that information in scripts.  This allows you to create one script for some function, like to create a database, for example, and run it on any server and you know it'll just run.&lt;/p&gt;
&lt;p&gt;There are two places where SMO stores database file default location.  One is for the system database and log files, and it's in the Information collection of the Server object.  The properties are MasterDBPath and MasterDBLogPath, respectively.  The other is in the Settings collection of the Server object, and the properties are DefaultFile and DefaultLog, respectively.&lt;/p&gt;
&lt;p&gt;Here's the problem: when the default location for the user database files is the same as the system database files, the DefaultFile and DefaultLog properties are never initialized.  If you change them (using Management Studio or via the registry values) then the properties will be populated, but if you don't the values will be empty.&lt;/p&gt;
&lt;p&gt;Using a PowerShell script to get this information, we can accommodate this issue by script like this:&lt;/p&gt;
&lt;pre&gt;	[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO')  | out-null

	$s = new-object ('Microsoft.SqlServer.Management.Smo.Server') 'SQLTBWS\INST01'
	$fileloc = $s.Settings.DefaultFile
	$logloc = $s.Settings.DefaultLog
	if ($fileloc.Length = 0) {
	    $fileloc = $s.Information.MasterDBPath
	    }
	if ($logloc.Length = 0) {
	    $logloc = $s.Information.MasterDBLogPath
	    }
&lt;/pre&gt;
&lt;p&gt;At this point the $fileloc variable contains a string object with the name of the default file location, and the $logloc variable contains a string object with the name of the default log file location.&lt;/p&gt;
&lt;p&gt;The SQL Server dev team is going to make a change in SMO so that DefaultFile and DefaultLog are properly populated, but until that's available this code will successfully return the locations you need in your scripts.&lt;/p&gt;
&lt;p&gt;Allen&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Finding Your Default File Locations in SMO&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Finding Your Default File Locations in SMO%0A%0Ahttp://sqlblog.com/blogs/allen_white/archive/2009/02/19/finding-your-default-file-locations-in-smo.aspx" target="_blank" title = "Email Finding Your Default File Locations in SMO"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/19/finding-your-default-file-locations-in-smo.aspx&amp;amp;title=Finding+Your+Default+File+Locations+in+SMO" target="_blank" title = "Submit Finding Your Default File Locations in SMO to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/19/finding-your-default-file-locations-in-smo.aspx&amp;amp;phase=2" target="_blank" title = "Submit Finding Your Default File Locations in SMO to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/19/finding-your-default-file-locations-in-smo.aspx&amp;amp;title=Finding+Your+Default+File+Locations+in+SMO" target="_blank" title = "Submit Finding Your Default File Locations in SMO to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/19/finding-your-default-file-locations-in-smo.aspx&amp;amp;title=Finding+Your+Default+File+Locations+in+SMO" target="_blank" title = "Submit Finding Your Default File Locations in SMO to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/allen_white/archive/2009/02/19/finding-your-default-file-locations-in-smo.aspx&amp;amp;title=Finding+Your+Default+File+Locations+in+SMO&amp;amp;;top=1" target="_blank" title = "Add Finding Your Default File Locations in SMO to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=12011" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/SMO/default.aspx">SMO</category><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/PowerShell/default.aspx">PowerShell</category><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/Database+Administration/default.aspx">Database Administration</category></item><item><title>Use PowerShell to Retrieve your Server Inventory</title><link>http://sqlblog.com/blogs/allen_white/archive/2009/02/18/use-powershell-to-retrieve-your-server-inventory.aspx</link><pubDate>Wed, 18 Feb 2009 17:49:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:11979</guid><dc:creator>AllenMWhite</dc:creator><slash:comments>3</slash:comments><comments>http://sqlblog.com/blogs/allen_white/comments/11979.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/allen_white/commentrss.aspx?PostID=11979</wfw:commentRss><description>&lt;p&gt;I've recently completed a chapter for Paul Nielsen's &lt;a href="http://www.sqlserverbible.com/"&gt;SQL Server 2008 Bible&lt;/a&gt; on Scripting with PowerShell.  While writing the chapter I created a short script to do a quick inventory of SQL Server information.&lt;/p&gt;
&lt;p&gt;Right after I wrote the chapter I was on a consulting assignment where I needed a much more complete inventory of servers, so I expanded the script.  I felt it would be useful to others, so I wrote an article and it's now available.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.simple-talk.com/sql/database-administration/let-powershell-do-an-inventory-of-your-servers/"&gt;Let PowerShell do an Inventory of your Servers&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Allen&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Use PowerShell to Retrieve your Server Inventory&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Use PowerShell to Retrieve your Server Inventory%0A%0Ahttp://sqlblog.com/blogs/allen_white/archive/2009/02/18/use-powershell-to-retrieve-your-server-inventory.aspx" target="_blank" title = "Email Use PowerShell to Retrieve your Server Inventory"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/18/use-powershell-to-retrieve-your-server-inventory.aspx&amp;amp;title=Use+PowerShell+to+Retrieve+your+Server+Inventory" target="_blank" title = "Submit Use PowerShell to Retrieve your Server Inventory to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/18/use-powershell-to-retrieve-your-server-inventory.aspx&amp;amp;phase=2" target="_blank" title = "Submit Use PowerShell to Retrieve your Server Inventory to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/18/use-powershell-to-retrieve-your-server-inventory.aspx&amp;amp;title=Use+PowerShell+to+Retrieve+your+Server+Inventory" target="_blank" title = "Submit Use PowerShell to Retrieve your Server Inventory to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/18/use-powershell-to-retrieve-your-server-inventory.aspx&amp;amp;title=Use+PowerShell+to+Retrieve+your+Server+Inventory" target="_blank" title = "Submit Use PowerShell to Retrieve your Server Inventory to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/allen_white/archive/2009/02/18/use-powershell-to-retrieve-your-server-inventory.aspx&amp;amp;title=Use+PowerShell+to+Retrieve+your+Server+Inventory&amp;amp;;top=1" target="_blank" title = "Add Use PowerShell to Retrieve your Server Inventory to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=11979" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/SMO/default.aspx">SMO</category><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/PowerShell/default.aspx">PowerShell</category><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/Database+Administration/default.aspx">Database Administration</category></item><item><title>Get a Quick Review of SQL Server Information</title><link>http://sqlblog.com/blogs/allen_white/archive/2009/02/01/get-a-quick-review-of-sql-server-information.aspx</link><pubDate>Sun, 01 Feb 2009 21:22:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:11638</guid><dc:creator>AllenMWhite</dc:creator><slash:comments>3</slash:comments><comments>http://sqlblog.com/blogs/allen_white/comments/11638.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/allen_white/commentrss.aspx?PostID=11638</wfw:commentRss><description>&lt;p&gt;It can be tedious to keep a list of the version, edition or other information on each of the servers you manage.  SMO provides an easy way to return this information, and PowerShell provides a quick way to get to SMO.&lt;/p&gt;
&lt;p&gt;Sometimes you may not know if a server is online, or reachable.  WMI has a class called Win32_PingStatus which sends a signal to the server to see if it's responding, and if so, returns a 0 in the StatusCode property of one of the result objects.&lt;/p&gt;
&lt;p&gt;The first thing we need to do is to define in a file the list of SQL Servers we're interested in.  There are most likely very many instances of SQL Server on your network that you don't care about.  (Lots of applications using SQL Server Express edition, for example.)  We'll put the servers we do care about in a file called servers.txt, and it looks like this.&lt;/p&gt;
&lt;pre&gt;SQLTBWS\INST01&lt;br&gt;SQLTBWS\INST02&lt;br&gt;SQLTBWS&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;PowerShell provides a cmdlet called Get-Content which will read this file and place its contents in a collection we'll iterate through to return our server information.  Once we load the collection we'll use a ForEach-Object cmdlet to loop through the servers.  For each server we'll extract the machine name by using the Split method on the server name and then returning the first part.  We'll use that to ping the server to see if it's responding.  If it is, then we can connect using SMO to return the server information we're interested in.&lt;/p&gt;
&lt;p&gt;Here's the script:&lt;/p&gt;
&lt;pre&gt;#serverinfo.ps1&lt;br&gt;#Pings a list of servers contained in the text file servers.txt and if&lt;br&gt;#the server responds, returns SQL Server information from each server&lt;br&gt;#&lt;br&gt;# Change log:&lt;br&gt;# February 1, 2009: Allen White&lt;br&gt;#   Initial Version&lt;br&gt;&lt;br&gt;[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null&lt;br&gt;$servers = Get-Content 'servers.txt'&lt;br&gt;&lt;br&gt;ForEach ($server in $servers) {&lt;br&gt;	$nm = $server.Split("\")&lt;br&gt;	$machine = $nm[0]&lt;br&gt;	# Ping the machine to see if it's on the network&lt;br&gt;	$results = Get-WMIObject -query "select StatusCode&lt;br&gt;		from Win32_PingStatus where Address = '$machine'"&lt;br&gt;	$responds = $false&lt;br&gt;	ForEach ($result in $results) {&lt;br&gt;		# If the machine responds break out of the result loop and indicate success&lt;br&gt;		if ($result.statuscode -eq 0) {&lt;br&gt;			$responds = $true&lt;br&gt;			break&lt;br&gt;		}&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	If ($responds) {&lt;br&gt;		# Gather info from the server because it responds&lt;br&gt;		$s = new-object ('Microsoft.SqlServer.Management.Smo.Server') $server&lt;br&gt;		$s.Information | select $s.Name, Version, Edition | format-table -Autosize&lt;br&gt;	} else {&lt;br&gt;		# Let the user know we couldn't connect to the server&lt;br&gt;		Write-Output "$server does not respond"&lt;br&gt;	}&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;It should be easy for you to modify this to add information you find useful.&lt;/p&gt;
&lt;p&gt;Allen&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Get a Quick Review of SQL Server Information&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Get a Quick Review of SQL Server Information%0A%0Ahttp://sqlblog.com/blogs/allen_white/archive/2009/02/01/get-a-quick-review-of-sql-server-information.aspx" target="_blank" title = "Email Get a Quick Review of SQL Server Information"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/01/get-a-quick-review-of-sql-server-information.aspx&amp;amp;title=Get+a+Quick+Review+of+SQL+Server+Information" target="_blank" title = "Submit Get a Quick Review of SQL Server Information to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/01/get-a-quick-review-of-sql-server-information.aspx&amp;amp;phase=2" target="_blank" title = "Submit Get a Quick Review of SQL Server Information to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/01/get-a-quick-review-of-sql-server-information.aspx&amp;amp;title=Get+a+Quick+Review+of+SQL+Server+Information" target="_blank" title = "Submit Get a Quick Review of SQL Server Information to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/allen_white/archive/2009/02/01/get-a-quick-review-of-sql-server-information.aspx&amp;amp;title=Get+a+Quick+Review+of+SQL+Server+Information" target="_blank" title = "Submit Get a Quick Review of SQL Server Information to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/allen_white/archive/2009/02/01/get-a-quick-review-of-sql-server-information.aspx&amp;amp;title=Get+a+Quick+Review+of+SQL+Server+Information&amp;amp;;top=1" target="_blank" title = "Add Get a Quick Review of SQL Server Information to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=11638" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/SMO/default.aspx">SMO</category><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/PowerShell/default.aspx">PowerShell</category><category domain="http://sqlblog.com/blogs/allen_white/archive/tags/Database+Administration/default.aspx">Database Administration</category></item></channel></rss>