<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.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>Rob Farley : sql, adssug</title><link>http://msmvps.com/blogs/robfarley/archive/tags/sql/adssug/default.aspx</link><description>Tags: sql, adssug</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Infinite Drill-through in a single SSRS report</title><link>http://msmvps.com/blogs/robfarley/archive/2009/12/21/infinite-drill-through-in-a-single-ssrs-report.aspx</link><pubDate>Mon, 21 Dec 2009 10:18:15 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1746973</guid><dc:creator>Rob Farley</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/robfarley/rsscomments.aspx?PostID=1746973</wfw:commentRss><comments>http://msmvps.com/blogs/robfarley/archive/2009/12/21/infinite-drill-through-in-a-single-ssrs-report.aspx#comments</comments><description>&lt;p&gt;Grant Paisley of Angry Koala and Report Surfer put me onto this a while back, and I have to admit I’m a bit of a fan. The idea comes from the fact the way that SQL Server Reporting Services (both 2005 and 2008) handles parameters with Analysis Services, and lets you make a report that drills through into itself, deeper and deeper into a hierarchy. Today I did a talk at the Adelaide SQL Server User Group, and mentioned this was possible (but didn’t have the time to demonstrate it properly).&lt;/p&gt;  &lt;p&gt;If you make a parameterized query in an MDX query in SSRS, you use the STRTOMEMBER or STRTOSET function to handle this. But the MDX has no other indication of what dimension, hierarchy or level is being passed in. If you grab the children of whatever you’ve passed in, you can easily put this on the Rows axis and get one level down. Passing the UniqueName of whatever you’ve just provided back in as the next parameter, and you have infinite drill-through.&lt;/p&gt;  &lt;p&gt;Look at the following MDX query:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;WITH        &lt;br /&gt;MEMBER [Measures].[NextLevel] as StrToMember(@SomeDate).Hierarchy.CurrentMember.UniqueName        &lt;br /&gt;MEMBER [Measures].[NextLevel Name] as StrToMember(@SomeDate).Hierarchy.CurrentMember.Member_Name &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;SELECT        &lt;br /&gt;NON EMPTY { [Measures].[Internet Sales Amount], [Measures.NextLevel], [Measures].[NextLevel Name] } ON COLUMNS,         &lt;br /&gt;NON EMPTY { (StrToMember(@SomeDate).Children ) } ON ROWS &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;FROM [Adventure Works] &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;You see that I provide the UniqueName and Member_Name properties in known columns, so that I can easily reference them in my report. You’ll also notice that nowhere do I actually indicate which dimension I’m planning to drill down on, or to which hierarchy the @SomeDate parameter refers. I have suggested it’s a date, but only in name. At this point I also make sure that the Report Parameter is not restricted to values from a particular query, and I hide it from the user. I’m going to be passing in UniqueName values, which aren’t particular user-friendly.&lt;/p&gt;  &lt;p&gt;If I start with [Date].[Fiscal].[Fiscal Year].&amp;amp;[2003], then my NextLevels will be [Date].[Fiscal].[Fiscal Semester].&amp;amp;[2003]&amp;amp;[1] and [Date].[Fiscal].[Fiscal Semester].&amp;amp;[2003]&amp;amp;[2]. This then continues down as far as I want it to go. I could always put a condition on my Action to pick up when there are no more levels, and potentially start down a different hierarchy. After all, I can always use a bunch of other parameters in the WHERE clause to slice the cube in other ways first, for placeholders. It really just comes down to MDX creativity to investigate different ways of drilling through the data.&lt;/p&gt;  &lt;p&gt;Please bear in mind that other people may well have achieved the same sort of thing using a different query – I’m just posting what has worked for me. Hopefully by doing this, you can avoid making five drill-through reports just because your hierarchy has five levels. This might just remove 80% of your reporting effort!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1746973" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/robfarley/archive/tags/adssug/default.aspx">adssug</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/sql/default.aspx">sql</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/reporting+services/default.aspx">reporting services</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/ssas/default.aspx">ssas</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/mdx/default.aspx">mdx</category></item><item><title>Access’ DISTINCTROW keyword explained – it means WHERE EXISTS</title><link>http://msmvps.com/blogs/robfarley/archive/2009/06/11/access-distinctrow-keyword-explained-it-means-where-exists.aspx</link><pubDate>Thu, 11 Jun 2009 11:25:15 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1694981</guid><dc:creator>Rob Farley</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/robfarley/rsscomments.aspx?PostID=1694981</wfw:commentRss><comments>http://msmvps.com/blogs/robfarley/archive/2009/06/11/access-distinctrow-keyword-explained-it-means-where-exists.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://www.convertu2.com" target="_blank"&gt;Steve Koop&lt;/a&gt; spoke recently at the &lt;a href="http://www.sqlserver.org.au" target="_blank"&gt;Adelaide SQL Server User Group&lt;/a&gt;, talking about things which don’t convert particularly nicely when upsizing from Microsoft Access to SQL Server 2008. I think this is a really important thing for SQL people to know, as there seem to be many Access databases living in even the largest organisations.&lt;/p&gt;  &lt;p&gt;One of the things he mentioned was DISTINCTROW. I’ve never really known what DISTINCTROW does, so I asked him. He sent me a link which explained the difference between DISTINCTROW and DISTINCT, and it described as “DISTINCTROW works on records, not just individual fields”. This might be good for some people, but I wanted to know a little more.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/aa140015.aspx" href="http://msdn.microsoft.com/en-us/library/aa140015.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa140015.aspx&lt;/a&gt; says “The DISTINCTROW keyword is similar to the DISTINCT keyword except that it is based on entire rows, not just individual fields.” – but it also goes on to say a little more, confirming my suspicions. “It is useful only when based on multiple tables, and only when you select fields from some, but not all, of the tables.”&lt;/p&gt;  &lt;p&gt;So DISTINCTROW is more about the JOIN type than anything else. It only applies if you are querying multiple tables, but not returning fields from all of them. So it’s a SEMI JOIN to the unused tables, which you write SQL Server using a WHERE EXISTS clause. It’s not really like DISTINCT at all – it’s about doing a Join without seeing the ‘duplication’ effect, clearly only feasible if you’re not returning columns from the other table.&lt;/p&gt;  &lt;p&gt;If you’re not sure what a Semi Join is, then just think about the WHERE EXISTS clause, and it should become clear. If you look at the execution plan of a query in SQL Server that uses WHERE EXISTS, you’ll see that it’s doing a Semi Join. And if you’re looking at queries which use DISTINCTROW, consider changing them to WHERE EXISTS instead.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1694981" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/robfarley/archive/tags/adssug/default.aspx">adssug</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/sql/default.aspx">sql</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/access/default.aspx">access</category></item><item><title>OUTPUT clause - knowing what goes in, and what you've accidentally taken out</title><link>http://msmvps.com/blogs/robfarley/archive/2008/10/04/output-clause-knowing-what-goes-in-and-what-you-ve-accidentally-taken-out.aspx</link><pubDate>Sat, 04 Oct 2008 00:08:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1649653</guid><dc:creator>Rob Farley</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/robfarley/rsscomments.aspx?PostID=1649653</wfw:commentRss><comments>http://msmvps.com/blogs/robfarley/archive/2008/10/04/output-clause-knowing-what-goes-in-and-what-you-ve-accidentally-taken-out.aspx#comments</comments><description>&lt;p&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/ms177564.aspx" target="_blank"&gt;OUTPUT clause&lt;/a&gt; has to be one of the best T-SQL features out there. It was new in SQL Server 2005, but it&amp;#39;s still remarkably little known. I guess like many of the features that were introduced in SQL 2005, many people just make do with the way they did things before.&lt;/p&gt; &lt;p&gt;The basic point of the OUTPUT clause is to turn a data modification statement into one that returns data (although this data can be redirected to an existing table by simply adding &amp;quot;INTO tablename&amp;quot; after it), by providing a way of accessing the &lt;em&gt;inserted&lt;/em&gt; and &lt;em&gt;deleted&lt;/em&gt; tables that we have been using in triggers for years. If a DELETE statement is being issued, only the &lt;em&gt;deleted&lt;/em&gt; table is available, and similarly &lt;em&gt;inserted&lt;/em&gt; for an INSERT statement. UPDATE provides both - and the MERGE statement (new in SQL Server 2008) populates both (although it feels as if a FULL JOIN has been applied to them).&lt;/p&gt; &lt;p&gt;I&amp;#39;m sure it&amp;#39;s easy to imagine the tremendous advantage to using it with UPDATE statements - auditing. It&amp;#39;s very easy to push the changes to an audit table, without the need to create a trigger to do it for us. But I find that the biggest advantage is for those times when carelessness has got the better of us. Hopefully these times are rare (and the more experienced we get with databases the more we seem to respect the sanctity of the data), but if you always use &amp;quot;OUTPUT deleted.*&amp;quot; when deleting, or &amp;quot;OUTPUT deleted.*, inserted.*&amp;quot;, then the odd time when you see more rows come back that you expected, you can have a plan associated with your &amp;quot;Oops&amp;quot; moment.&lt;/p&gt; &lt;p&gt;If you don&amp;#39;t use the OUTPUT clause, you get a message that tells you how many rows were affected by your query. If you expect that number to be small, and it&amp;#39;s actually quite large, you&amp;#39;ve probably done something wrong. &amp;quot;Oops&amp;quot; is probably an understatement. You may have started a transaction and be able to roll it back, but until such time as you get to that, you have locks which aren&amp;#39;t being released. Regardless of whether or not you can roll it back, having something which shows you what you&amp;#39;ve just done can really help you out. You can copy the data presented into Excel, or Notepad, or whatever, and work out your problem. If you can&amp;#39;t roll it back, then this may involve some sort of import process being quickly thrown together.&lt;/p&gt; &lt;p&gt;The benefit is far less obvious when inserting data - but in some ways, it&amp;#39;s actually even more useful.&lt;/p&gt; &lt;p&gt;We&amp;#39;ve had the @@IDENTITY and SCOPE_IDENTITY() functions available for some time, and they&amp;#39;re widely used. But if multiple records are inserted, or if the targetted table doesn&amp;#39;t contain an identity field, then they&amp;#39;re actually not quite so great. Knowing which record is which is a question of re-querying the data and hoping you can tell. But if you &amp;quot;OUTPUT inserted.*&amp;quot;, your application can immediately tell which row was inserted with which surrogate key (it&amp;#39;s less of an issue if you use a natural primary key of course). With a large number of systems opting to use guids for PKs, defaulting to a value of newid(), it really helps to have an OUTPUT clause so that the guid doesn&amp;#39;t have to be generating prior to performing the insert.&lt;/p&gt; &lt;p&gt;The biggest caveat with the OUTPUT clause is that it can be ruined by triggers. A trigger being called can prevent the inserted and deleted tables from being available at the end of the statement. I&amp;#39;d like to have a way of stating that the OUTPUT clause should still work, returning the state of the inserted and deleted tables prior to any triggers being called, but I suppose I can understand the logic behind the decision to disallow it.&lt;/p&gt; &lt;p&gt;This was one of the tips in my TechEd Australia presentation, which was re-delivered to &lt;a href="http://www.sqlserver.org.au/events" target="_blank"&gt;user groups in Adelaide and Melbourne&lt;/a&gt;. The &lt;a href="http://msmvps.com/blogs/robfarley/archive/2008/09/03/dat283.aspx" target="_blank"&gt;scripts&lt;/a&gt; and &lt;a href="http://msmvps.com/blogs/robfarley/archive/2008/09/18/improving-your-t-sql-arsenal-slides.aspx" target="_blank"&gt;slides&lt;/a&gt; are available for download. This was one of the more popular tips, based on feedback.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1649653" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/robfarley/archive/tags/adssug/default.aspx">adssug</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/sql/default.aspx">sql</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/teched/default.aspx">teched</category></item><item><title>SQL and Virtual Earth</title><link>http://msmvps.com/blogs/robfarley/archive/2007/11/01/sql-and-virtual-earth.aspx</link><pubDate>Thu, 01 Nov 2007 09:07:11 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1276589</guid><dc:creator>Rob Farley</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/robfarley/rsscomments.aspx?PostID=1276589</wfw:commentRss><comments>http://msmvps.com/blogs/robfarley/archive/2007/11/01/sql-and-virtual-earth.aspx#comments</comments><description>&lt;p&gt;A while back I was talking to Bronwen Zande, of Brisbane-based &lt;a href="http://www.soulsolutions.com.au/" target="_blank"&gt;SoulSolutions&lt;/a&gt; and &lt;a href="http://geekgirlblogs.com/" target="_blank"&gt;GeekGirlBlogs&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Anyway, she and her partner &lt;a href="https://mvp.support.microsoft.com/default.aspx/profile=6e49794c-edfc-4c3b-a5a2-ae648353a22d" target="_blank"&gt;John&lt;/a&gt; are big fans of &lt;a href="http://www.microsoft.com/virtualearth/" target="_blank"&gt;Virtual Earth&lt;/a&gt;. As it&amp;#39;s well publicised that &lt;a href="http://virtualearth.spaces.live.com/Blog/cns!2BBC66E99FDCDB98!8675.entry" target="_blank"&gt;SQL Server 2008 will have new spatial types&lt;/a&gt;, including fancy ways of integrating with Virtual Earth, I asked her if they were planning a tour of the &lt;a href="http://www.sqlserver.org.au/" target="_blank"&gt;Australian SQL Server User Groups&lt;/a&gt; to demonstrate how this could work. I figure this is something that few SQL Server people will do much investigation into, but may well be asked about by developers who are keen to find out what&amp;#39;s possible.&lt;/p&gt; &lt;p&gt;Lo and behold, I guess things are happening, because &lt;a href="http://www.soulsolutions.com.au/Blog/tabid/73/EntryID/282/Default.aspx" target="_blank"&gt;they&amp;#39;re on their way&lt;/a&gt;! In Adelaide, this meeting will be on January 10th, our usual time-slot on the second Thursday of the month, and there are other events happening around the country too. All this despite the fact that the latest publicly available version (&lt;a href="http://connect.microsoft.com/SQLServer/Downloads/DownloadDetails.aspx?DownloadID=7557" target="_blank"&gt;July still&lt;/a&gt;) of SQL Server 2008 doesn&amp;#39;t have the spatial types in it. Hopefully by then something will be available for us to check out the demos. Keep your eye on &lt;a title="https://connect.microsoft.com/sql" href="https://connect.microsoft.com/sql"&gt;https://connect.microsoft.com/sql&lt;/a&gt; for news on that.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1276589" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/robfarley/archive/tags/community/default.aspx">community</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/australia/default.aspx">australia</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/adssug/default.aspx">adssug</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/sql/default.aspx">sql</category></item><item><title>User Group meeting with Christine Bishop</title><link>http://msmvps.com/blogs/robfarley/archive/2007/10/12/user-group-meeting-with-christine-bishop.aspx</link><pubDate>Fri, 12 Oct 2007 02:04:01 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1243694</guid><dc:creator>Rob Farley</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/robfarley/rsscomments.aspx?PostID=1243694</wfw:commentRss><comments>http://msmvps.com/blogs/robfarley/archive/2007/10/12/user-group-meeting-with-christine-bishop.aspx#comments</comments><description>&lt;p&gt;Yesterday we had &lt;a href="http://www.sqlserver.org.au/Events/ViewEvent.aspx?EventId=286" target="_blank"&gt;Christine Bishop come to Adelaide&lt;/a&gt;. She&amp;#39;s the Product Marketing Manager for SQL Server and BI for Microsoft Australia. That makes her handy to know if you&amp;#39;re in the SQL space, and we had a nice crowd come along to the user group to meet her. &lt;/p&gt; &lt;p&gt;One thing that made this meeting different to the usual is that Christine isn&amp;#39;t overly technical. She&amp;#39;s not bad, but compared to the people in the crowd listening to her, she would&amp;#39;ve been in the less technical half. Normally we&amp;#39;d have some in depth technical session, showing people how to do particular things, but this time we looked more at the business side of things.&lt;/p&gt; &lt;p&gt;Feedback was good, and for those people looking for something a little more technical I demonstrated a quick point about SSIS and one about the use of row_number() to make sure that only the three most recent records for each category were stored in a table. I might post about these more another time.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1243694" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/robfarley/archive/tags/community/default.aspx">community</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/adssug/default.aspx">adssug</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/adelaide/default.aspx">adelaide</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/sql/default.aspx">sql</category></item><item><title>My favourite thing about SQL Server 2008</title><link>http://msmvps.com/blogs/robfarley/archive/2007/08/20/my-favourite-thing-about-sql-server-2008.aspx</link><pubDate>Mon, 20 Aug 2007 05:35:48 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1125383</guid><dc:creator>Rob Farley</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/robfarley/rsscomments.aspx?PostID=1125383</wfw:commentRss><comments>http://msmvps.com/blogs/robfarley/archive/2007/08/20/my-favourite-thing-about-sql-server-2008.aspx#comments</comments><description>&lt;p&gt;A few people have asked me what my favourite thing is in SQL Server 2008 (&amp;quot;Katmai&amp;quot;). But my favourite thing isn&amp;#39;t actually a feature at all, it&amp;#39;s a mindset that Microsoft are taking with it.&lt;/p&gt; &lt;p&gt;This mindset is &amp;quot;We will only put features into the CTPs once they are basically complete - including the documentation.&amp;quot; And this makes me say &amp;quot;Wow!&amp;quot;.&lt;/p&gt; &lt;p&gt;One of the problems with all beta software is the stuff that&amp;#39;s in there that just isn&amp;#39;t finished yet. You try to use some feature, and it doesn&amp;#39;t work. Or worse, something dies because you tried it. It&amp;#39;s these scenarios that stop people trying out betas, and seeing people using the previous version still nearly two years after release (It&amp;#39;s now over 21 months since SQL 2005 was released).&lt;/p&gt; &lt;p&gt;Not the case with SQL Server 2008 though. Functionality may be limited, but hopefully new features should be both stable and documented when they appear. So now because this is the case, people should be able to port their systems over before release, confident that features won&amp;#39;t be changing significantly between that time and RTM.&lt;/p&gt; &lt;p&gt;This week at my user-group I&amp;#39;m giving a talk on MERGE &amp;amp; TVPs. Two essentially different topics, but ones that compliment each other nicely. I think people will be leaving this meeting picturing places in their code where they want to refactor it to take advantage of these new features.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1125383" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/robfarley/archive/tags/community/default.aspx">community</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/australia/default.aspx">australia</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/adssug/default.aspx">adssug</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/adelaide/default.aspx">adelaide</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/sql/default.aspx">sql</category></item><item><title>Darren Gosbell in Adelaide on July 12th</title><link>http://msmvps.com/blogs/robfarley/archive/2007/07/03/darren-gosbell-in-adelaide-on-july-12th.aspx</link><pubDate>Tue, 03 Jul 2007 08:03:02 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:998802</guid><dc:creator>Rob Farley</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/robfarley/rsscomments.aspx?PostID=998802</wfw:commentRss><comments>http://msmvps.com/blogs/robfarley/archive/2007/07/03/darren-gosbell-in-adelaide-on-july-12th.aspx#comments</comments><description>&lt;p&gt;What a great week for Adelaide having Australian SQL MVPs presenting! &lt;a href="http://msmvps.com/blogs/robfarley/archive/2007/07/03/code-camp-hits-adelaide.aspx" target="_blank"&gt;Code Camp SA&lt;/a&gt; on the weekend of July 7th and 8th features the Gregs (Linwood and Low), and BI expert &lt;a href="http://geekswithblogs.net/darrengosbell/" target="_blank"&gt;Darren Gosbell&lt;/a&gt; will be coming to speak to the &lt;a href="http://www.sqlserver.org.au" target="_blank"&gt;Adelaide SQL Server User Group&lt;/a&gt; the following Thursday. He&amp;#39;ll be presenting about MDX, which is a topic that a few people have asked about in recent months. It should be great, and I only wish I could be there myself. I will put the event on the website just as soon as I have an abstract from him. Many thanks to his employer, &lt;a href="http://www.jamesandmonroe.com/" target="_blank"&gt;James and Monroe&lt;/a&gt;, for sending him across for this. &lt;p&gt;If you&amp;#39;re reading this and wondering how to find out more, go to the &lt;a href="http://www.sqlserver.org.au" target="_blank"&gt;sqlserver.org.au&lt;/a&gt; site, register, and say you&amp;#39;re from Adelaide. Then you&amp;#39;ll be on my mailing list and will find out all about our upcoming events. Our meetings are on the second Thursday of the month (although in August we&amp;#39;ll pick a different day, that doesn&amp;#39;t clash with &lt;a href="http://www.microsoft.com/australia/teched/" target="_blank"&gt;TechEd&lt;/a&gt;), in the &lt;a href="http://msmvps.com/blogs/robfarley/archive/2007/07/03/an-adelaide-icon-waves-goodbye.aspx" target="_blank"&gt;building that used to be called the Santos Building&lt;/a&gt;. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=998802" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/robfarley/archive/tags/community/default.aspx">community</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/australia/default.aspx">australia</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/adssug/default.aspx">adssug</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/adelaide/default.aspx">adelaide</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/sql/default.aspx">sql</category></item><item><title>Powershell script from my SQL presentation</title><link>http://msmvps.com/blogs/robfarley/archive/2007/01/17/powershell-script-from-my-sql-presentation.aspx</link><pubDate>Tue, 16 Jan 2007 21:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:498565</guid><dc:creator>Rob Farley</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/robfarley/rsscomments.aspx?PostID=498565</wfw:commentRss><comments>http://msmvps.com/blogs/robfarley/archive/2007/01/17/powershell-script-from-my-sql-presentation.aspx#comments</comments><description>&lt;p&gt;Last week I &lt;a href="http://www.sqlserver.org.au/events/ViewEvent.aspx?EventId=231" target="_blank"&gt;presented at my user-group&lt;/a&gt; about &lt;a href="http://www.microsoft.com/powershell" target="_blank"&gt;PowerShell&lt;/a&gt; and why every DBA should know this. The talk went for just over an hour, and as most of the audience hadn't used PowerShell at all, I started from the top and really pushed concepts like "You pipe objects not text". The script can be downloaded from &lt;a href="http://msmvps.com/files/folders/robfarley/entry482629.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;br&gt;&lt;/p&gt;&lt;p&gt;So then by the time I got around to talking about the fact that you can really easily hook into ADO and SMO, I think the audience were already caught on the idea that PowerShell really is very powerful and that anything you can do with SMO can be done really easily with PowerShell too. Most DBAs write scripts that use SMO to manage their SQL boxes. In the past they've used VBScript, but I think they should use PowerShell - it's got so much more going for it, and because it can replace cmd, there's almost no reason not to use it.&lt;br&gt;&lt;/p&gt;&lt;p&gt;The talk didn't go into all the stuff you can do with SMO - that's a different presentation. This was a way of demonstrating that you can use PowerShell for SMO, as well as everything else you might want from a sysadmin perspective.&lt;br&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=498565" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/robfarley/archive/tags/community/default.aspx">community</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/adssug/default.aspx">adssug</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/adelaide/default.aspx">adelaide</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/sql/default.aspx">sql</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/powershell/default.aspx">powershell</category></item><item><title>Adelaide SQL UG this week</title><link>http://msmvps.com/blogs/robfarley/archive/2006/12/11/adelaide-sql-ug-this-week.aspx</link><pubDate>Mon, 11 Dec 2006 10:06:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:412009</guid><dc:creator>Rob Farley</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/robfarley/rsscomments.aspx?PostID=412009</wfw:commentRss><comments>http://msmvps.com/blogs/robfarley/archive/2006/12/11/adelaide-sql-ug-this-week.aspx#comments</comments><description>&lt;p&gt;This Thursday &lt;a href="http://blogs.sqlserver.org.au/blogs/Greg_Linwood/" target="_blank"&gt;Greg Linwood&lt;/a&gt; of Solid Quality Learning is coming to the &lt;a href="http://www.sqlserver.org.au/Events/ViewEvent.aspx?EventId=227" target="_blank"&gt;Adelaide SQL Server User Group&lt;/a&gt; to talk present about Performance Tuning. It should be a great time. Greg does a lot for the SQL Community in Australia, and it will be really good to have him over again. If you're interested in coming, drop me a line, or check out the event page at &lt;a href="http://www.sqlserver.org.au/Events/ViewEvent.aspx?EventId=227" target="_blank"&gt;sqlserver.org.au&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=412009" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/robfarley/archive/tags/australia/default.aspx">australia</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/adssug/default.aspx">adssug</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/adelaide/default.aspx">adelaide</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/sql/default.aspx">sql</category></item><item><title>Office 2007 RTM today, great time for a talk about it and SQL!</title><link>http://msmvps.com/blogs/robfarley/archive/2006/11/07/Office-2007-RTM-today_2C00_-great-time-for-a-talk-about-it-and-SQL_2100_.aspx</link><pubDate>Mon, 06 Nov 2006 23:31:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:258837</guid><dc:creator>Rob Farley</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/robfarley/rsscomments.aspx?PostID=258837</wfw:commentRss><comments>http://msmvps.com/blogs/robfarley/archive/2006/11/07/Office-2007-RTM-today_2C00_-great-time-for-a-talk-about-it-and-SQL_2100_.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://office.microsoft.com" target="_blank"&gt;Office 2007&lt;/a&gt; has RTM&amp;#39;d today, and this includes Microsoft Office SharePoint Server 2007.&lt;/p&gt;&lt;p&gt;This is great timing, with Grant Paisley coming to Adelaide to give his talk about integrating BI and MOSS. This is a great talk, and if you&amp;#39;re going to be in Adelaide, you should be there! Go to &lt;a href="http://sqlserver.org.au" target="_blank"&gt;sqlserver.org.au&lt;/a&gt;, and find the link. And if you can&amp;#39;t make it in Adelaide, go to his session in Canberra instead! I heard it at the SQL Code Camp, and it&amp;#39;s definitely worth checking out.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The great thing about Office 2007 with BI stuff is that BI is all about making the data you have more useful. And Office 2007 is so much better integrated with other systems than previous versions, so it can become a great portal to getting your information out there.&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=258837" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/robfarley/archive/tags/community/default.aspx">community</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/code+camp/default.aspx">code camp</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/australia/default.aspx">australia</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/adssug/default.aspx">adssug</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/adelaide/default.aspx">adelaide</category><category domain="http://msmvps.com/blogs/robfarley/archive/tags/sql/default.aspx">sql</category></item></channel></rss>