<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>stevienova.com</title>
	
	<link>http://blog.stevienova.com</link>
	<description>Homepage of Steve Novoselac</description>
	<lastBuildDate>Fri, 26 Feb 2010 15:21:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Stevienovacom" /><feedburner:info uri="stevienovacom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>43.095178</geo:lat><geo:long>-89.270408</geo:long><feedburner:emailServiceId>Stevienovacom</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FStevienovacom" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FStevienovacom" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FStevienovacom" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/Stevienovacom" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FStevienovacom" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FStevienovacom" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FStevienovacom" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item>
		<title>Agile in Business Intelligence? Of Course!</title>
		<link>http://feedproxy.google.com/~r/Stevienovacom/~3/eZcJa3UjZws/</link>
		<comments>http://blog.stevienova.com/2010/02/25/agile-in-business-intelligence-of-course/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 03:50:25 +0000</pubDate>
		<dc:creator>Steve Novoselac</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[BI]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://blog.stevienova.com/?p=1377</guid>
		<description>About 3.5 years ago I was introduced to Agile at the Agile 2006 Conference. After that, and implementing it in a software dev environment, I found that it just works. Sprints, Scrums, Stories, Backlog, Velocity, all the pieces fit and work.
Now that I am managing a Business Intelligence group, which when I started wasn&amp;#8217;t doing [...]</description>
			<content:encoded><![CDATA[<p style="clear: both">About 3.5 years ago I was introduced to Agile at the Agile 2006 Conference. After that, and implementing it in a software dev environment, I found that it just works. Sprints, Scrums, Stories, Backlog, Velocity, all the pieces fit and work.</p>
<p style="clear: both">Now that I am managing a Business Intelligence group, which when I started wasn&#8217;t doing *anything* as far as a method, I had to ask myself if doing Agile would work (I knew it could, but it is different than software dev in many ways, similar in others).</p>
<p style="clear: both">Back in October, my group went Agile. We set up a board, got some index cards, and just started Agile. A big paradigm shift at work for IT, but we needed to do something.</p>
<p style="clear: both">With Business Intelligence, we really don&#8217;t have *code* to work on, but more &#8220;objects&#8221; (Cubes, Dimensions, Reports, etc). As a team we needed to figure out &#8211; what is a story? What is a feature/enhancement/task. What is an epic? How are we going to score things, etc.</p>
<p style="clear: both">The first few sprints (2 week sprints &#8211; Wednesday&#8217;s to Tuesdays) our velocity was lower and/or we just scored things a little weird. But since then we have learned our &#8220;zone&#8221; of scoring stories and we got into a groove of releasing our BIG cube every 2 weeks, and releasing the smaller changes when completed. </p>
<p style="clear: both">We do the daily *scrum* for 15 minutes, and track burndown on stories, which lets us make some cool burndown charts that we tack up on our board, and we have some other cool bullet charts to track velocity by sprint, to our original, and final goal, and more.</p>
<p><a href="http://blog.stevienova.com/wp-content/uploads/2010/02/burndown.png"><img src="http://blog.stevienova.com/wp-content/uploads/2010/02/burndown.png" alt="" title="burndown" width="481" height="370" class="alignnone size-full wp-image-1380" /></a><a href="http://blog.stevienova.com/wp-content/uploads/2010/02/velocity_tracking.png"><img src="http://blog.stevienova.com/wp-content/uploads/2010/02/velocity_tracking.png" alt="" title="velocity_tracking" width="315" height="567" class="alignnone size-full wp-image-1381" /></a></p>
<p style="clear: both">What has Agile brought our group? Confidence, Stability, Ability to Meet Expectations. Agility. Results. and more..</p>
<p style="clear: both">Do we run into issues yet? Of course. Can we adjust and handle them. You bet! Are we continuously learning and changing our process to make it better? Yep. Always room for improvements.</p>
<p style="clear: both">What else does Agile bring us? Visibility to our customers, and to our peers in IT. Eventually the &#8220;BI&#8221; stuff should just run, over and over, iteratively. </p>
<div id="attachment_1384" class="wp-caption alignnone" style="width: 810px"><a href="http://blog.stevienova.com/wp-content/uploads/2010/02/storyboard.jpg"><img src="http://blog.stevienova.com/wp-content/uploads/2010/02/storyboard.jpg" alt="" title="storyboard" width="600" height="400" class="size-full wp-image-1384" /></a><p class="wp-caption-text">Trek BI Agile Story Board</p></div>
<p style="clear: both">Agile isn&#8217;t a silver bullet though. It isn&#8217;t easy. You still need to work to keep things organized and on track. You have to fight that organizational gravity that sucks teams back in and people in as well, and throws that scope creep back onto stories and projects. You also have to fight to get rid of your technical debt, which depending on how long things have been running before you started even thinking about Agile, might take you a while.</p>
<p style="clear: both">This post is more of a high level &#8220;Yes We Can&#8221; type post about Agile in BI. I haven&#8217;t decided yet, but my guess is I might have some more detailed posts on how I like to run an Agile project, and what we are doing as a team to handle situations that come up, and just how we do things. </p>
<p style="clear: both">In the end though, just remember, have fun!</p>
<p style="clear: both">
<p><br class="final-break" style="clear: both" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=eZcJa3UjZws:oUV4-xjpYj8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=eZcJa3UjZws:oUV4-xjpYj8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=eZcJa3UjZws:oUV4-xjpYj8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=eZcJa3UjZws:oUV4-xjpYj8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=eZcJa3UjZws:oUV4-xjpYj8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=eZcJa3UjZws:oUV4-xjpYj8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=eZcJa3UjZws:oUV4-xjpYj8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=eZcJa3UjZws:oUV4-xjpYj8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=eZcJa3UjZws:oUV4-xjpYj8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=eZcJa3UjZws:oUV4-xjpYj8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=eZcJa3UjZws:oUV4-xjpYj8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=eZcJa3UjZws:oUV4-xjpYj8:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Stevienovacom/~4/eZcJa3UjZws" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevienova.com/2010/02/25/agile-in-business-intelligence-of-course/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.stevienova.com/2010/02/25/agile-in-business-intelligence-of-course/</feedburner:origLink></item>
		<item>
		<title>SSRS DataSet Filter – “Like” Operand</title>
		<link>http://feedproxy.google.com/~r/Stevienovacom/~3/nNczP5FOi8g/</link>
		<comments>http://blog.stevienova.com/2010/02/23/ssrs-dataset-filter-like-operand/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 23:17:18 +0000</pubDate>
		<dc:creator>Steve Novoselac</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[SQLServerPedia Syndication]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[SQL 2005]]></category>
		<category><![CDATA[SQL Server Reporting Services]]></category>
		<category><![CDATA[SSRS]]></category>

		<guid isPermaLink="false">http://blog.stevienova.com/?p=1375</guid>
		<description>Figured out today that in SSRS, if you add a filter to your dataset, and you want to use &amp;#8220;Like&amp;#8221;, that the operand for everything is * instead of % like you might be used to in SQL, sometimes it is just the little things :)</description>
			<content:encoded><![CDATA[<p>Figured out today that in SSRS, if you add a filter to your dataset, and you want to use &#8220;Like&#8221;, that the operand for everything is * instead of % like you might be used to in SQL, sometimes it is just the little things :)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=nNczP5FOi8g:1Hw-f_5vgRg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=nNczP5FOi8g:1Hw-f_5vgRg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=nNczP5FOi8g:1Hw-f_5vgRg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=nNczP5FOi8g:1Hw-f_5vgRg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=nNczP5FOi8g:1Hw-f_5vgRg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=nNczP5FOi8g:1Hw-f_5vgRg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=nNczP5FOi8g:1Hw-f_5vgRg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=nNczP5FOi8g:1Hw-f_5vgRg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=nNczP5FOi8g:1Hw-f_5vgRg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=nNczP5FOi8g:1Hw-f_5vgRg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=nNczP5FOi8g:1Hw-f_5vgRg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=nNczP5FOi8g:1Hw-f_5vgRg:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Stevienovacom/~4/nNczP5FOi8g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevienova.com/2010/02/23/ssrs-dataset-filter-like-operand/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.stevienova.com/2010/02/23/ssrs-dataset-filter-like-operand/</feedburner:origLink></item>
		<item>
		<title>FlickrFetchr – great little Mac app to download flickr sets (supports Guest Passes!)</title>
		<link>http://feedproxy.google.com/~r/Stevienovacom/~3/y9DggxOisWg/</link>
		<comments>http://blog.stevienova.com/2010/02/14/flickrfetchr-great-little-mac-app-to-download-flickr-sets-supports-guest-passes/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 00:59:35 +0000</pubDate>
		<dc:creator>Steve Novoselac</dc:creator>
				<category><![CDATA[Product Reviews]]></category>
		<category><![CDATA[App]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[FlickrFetchr]]></category>
		<category><![CDATA[Guest Pass]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://blog.stevienova.com/2010/02/14/flickrfetchr-great-little-mac-app-to-download-flickr-sets-supports-guest-passes/</guid>
		<description>I get photo&amp;#8217;s shared with me on Flickr. Guest Passes. Pretty cool to look at them and do slideshows online, but what if I want to download them all?
There are many apps out there for windows and mac that let you download your OWN sets, or also download public sets from other users, but I [...]</description>
			<content:encoded><![CDATA[<p style="clear: both">I get photo&#8217;s shared with me on Flickr. Guest Passes. Pretty cool to look at them and do slideshows online, but what if I want to download them all?</p>
<p style="clear: both">There are many apps out there for windows and mac that let you download your OWN sets, or also download public sets from other users, but I needed to get a guest pass set. </p>
<p style="clear: both">stumbled upon this, <a href="http://innovationinsight.com/blog/flickrfetchr-a-new-flickr-album-downloader/" target="_blank">FlickrFetchr</a>. Works as promised, nice little app.</p>
<p><br class="final-break" style="clear: both" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=y9DggxOisWg:imHPMPLNupA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=y9DggxOisWg:imHPMPLNupA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=y9DggxOisWg:imHPMPLNupA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=y9DggxOisWg:imHPMPLNupA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=y9DggxOisWg:imHPMPLNupA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=y9DggxOisWg:imHPMPLNupA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=y9DggxOisWg:imHPMPLNupA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=y9DggxOisWg:imHPMPLNupA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=y9DggxOisWg:imHPMPLNupA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=y9DggxOisWg:imHPMPLNupA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=y9DggxOisWg:imHPMPLNupA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=y9DggxOisWg:imHPMPLNupA:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Stevienovacom/~4/y9DggxOisWg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevienova.com/2010/02/14/flickrfetchr-great-little-mac-app-to-download-flickr-sets-supports-guest-passes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.stevienova.com/2010/02/14/flickrfetchr-great-little-mac-app-to-download-flickr-sets-supports-guest-passes/</feedburner:origLink></item>
		<item>
		<title>Dev and Prod Systems, Using a HOST file to ensure your datasource is pointing the right system</title>
		<link>http://feedproxy.google.com/~r/Stevienovacom/~3/Q_vuPl1Hf6w/</link>
		<comments>http://blog.stevienova.com/2010/01/07/dev-and-prod-systems-using-a-host-file-to-ensure-your-datasource-is-pointing-the-right-system/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 02:10:31 +0000</pubDate>
		<dc:creator>Steve Novoselac</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Geeky/Programming]]></category>
		<category><![CDATA[SQLServerPedia Syndication]]></category>
		<category><![CDATA[HOSTS]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SSAS]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[SSMS]]></category>
		<category><![CDATA[Tip]]></category>
		<category><![CDATA[Trick]]></category>

		<guid isPermaLink="false">http://blog.stevienova.com/?p=1356</guid>
		<description>In many shops, I am guessing there are multiple servers. Development, Production, maybe a Staging, etc. 
With SQL Server Analysis Services (SSAS) and SQL Server Integration Services (SSIS), you set up data sources, connection to databases. In SSAS you usually have a connection which then you build your data source view off of, and in [...]</description>
			<content:encoded><![CDATA[<p>In many shops, I am guessing there are multiple servers. Development, Production, maybe a Staging, etc. </p>
<p>With SQL Server Analysis Services (SSAS) and SQL Server Integration Services (SSIS), you set up data sources, connection to databases. In SSAS you usually have a connection which then you build your data source view off of, and in SSIS you have connections from which you push data to and pull data from.</p>
<p>Another thing, in SSAS you can &#8220;deploy&#8221; right from Visual Studio (BIDS). All these things have a server name. What we have run into is this:</p>
<p>You develop on your local machine, pointing at development server. You deploy to development, your connections are pointing to development, and everything works great. When you deploy to production (usually planned, every 2 weeks, or whatever) you deploy your stuff and what ends up happening?</p>
<p>In SSIS your config files should have a connection string (or however you store it) and it should point to production. But in SSAS, if you deploy from BIDS, your data source will have to change and in the cube project properties you need to change your deployment server.</p>
<p>I have seen countless times, a cube or a connection in SSIS without a config that is running in production, yet pointing at development. We keep our dev data as fresh or very close so sometimes we don&#8217;t even notice, but then it happens, something weird is reported and we dig into it, and we find the erroneous connection string.</p>
<p>Here is my solution to the problem:</p>
<p>Developers &#8211; go to C:\Windows\System32\Drivers\Etc and open your Hosts file with notepad or text editor. You then add a couple of entries</p>
<p>#production<br />
#xxx.xxx.xxx.xxx       datawarehouse</p>
<p>#development<br />
yyy.yyy.yyy.yyy      datawarehouse</p>
<p>where xxx is the ip of your production system, and yyy is the ip of your dev system. the # is the rem/comment out symbol. You can see above I have everything commented out but the line for the dev system. But notice each is pointed to &#8220;datawarehouse&#8221; so if I ping or connect to &#8220;datawarehouse&#8221; from Management Studio, or whatever, it goes to the IP I have commented out.</p>
<p>Now, go on to each server, but only add the line that corresponds to that server in the hosts file, or better yet just</p>
<p>127.0.0.1      datawarehouse</p>
<p>Now, when you deploy to either server, and your connections, etc are set to connect to &#8220;datawarehouse&#8221; you ensure it will always connect to the local server. Brilliant!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=Q_vuPl1Hf6w:q_-CiQo6ZrA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=Q_vuPl1Hf6w:q_-CiQo6ZrA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=Q_vuPl1Hf6w:q_-CiQo6ZrA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=Q_vuPl1Hf6w:q_-CiQo6ZrA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=Q_vuPl1Hf6w:q_-CiQo6ZrA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=Q_vuPl1Hf6w:q_-CiQo6ZrA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=Q_vuPl1Hf6w:q_-CiQo6ZrA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=Q_vuPl1Hf6w:q_-CiQo6ZrA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=Q_vuPl1Hf6w:q_-CiQo6ZrA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=Q_vuPl1Hf6w:q_-CiQo6ZrA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=Q_vuPl1Hf6w:q_-CiQo6ZrA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=Q_vuPl1Hf6w:q_-CiQo6ZrA:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Stevienovacom/~4/Q_vuPl1Hf6w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevienova.com/2010/01/07/dev-and-prod-systems-using-a-host-file-to-ensure-your-datasource-is-pointing-the-right-system/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blog.stevienova.com/2010/01/07/dev-and-prod-systems-using-a-host-file-to-ensure-your-datasource-is-pointing-the-right-system/</feedburner:origLink></item>
		<item>
		<title>Cya 2009, Hello 2010, Last Decade of Tech</title>
		<link>http://feedproxy.google.com/~r/Stevienovacom/~3/n9dG160AMtI/</link>
		<comments>http://blog.stevienova.com/2009/12/24/cya-2009-hello-2010-last-decade-of-tech/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 17:49:44 +0000</pubDate>
		<dc:creator>Steve Novoselac</dc:creator>
				<category><![CDATA[Geeky/Programming]]></category>
		<category><![CDATA[2000 Decade]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[End Of Year]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Y2k]]></category>

		<guid isPermaLink="false">http://blog.stevienova.com/2009/12/24/cya-2009-hello-2010-last-decade-of-tech/</guid>
		<description>As we approach the end of the first decade of the new millennium, things feel kind of weird. 10 years ago, we were all worried the world was going to end with Y2K, and now we don&amp;#8217;t even think about it.
What were some of the best things tech to come out of the last 10 [...]</description>
			<content:encoded><![CDATA[<p style="clear: both">As we approach the end of the first decade of the new millennium, things feel kind of weird. 10 years ago, we were all worried the world was going to end with Y2K, and now we don&#8217;t even think about it.</p>
<p style="clear: both">What were some of the best things tech to come out of the last 10 years? (this list is in no particular order)</p>
<p style="clear: both">iPods..iPhones</p>
<p style="clear: both">YouTube</p>
<p style="clear: both">Facebook (MySpace paved the way, and the others, Friendster)</p>
<p style="clear: both">Netflix</p>
<p style="clear: both">Windows XP</p>
<p style="clear: both">HDTV</p>
<p style="clear: both">3G</p>
<p style="clear: both">Twitter</p>
<p style="clear: both">SQL Server 2005</p>
<p style="clear: both">.NET from Microsoft</p>
<p style="clear: both">Gmail</p>
<p style="clear: both">Blogger.com, Wordpress</p>
<p style="clear: both">Flickr</p>
<p style="clear: both">PlayStation 2, and Xbox 360.. and even the Wii</p>
<p style="clear: both">Wireless.. G, N, Mice, Keyboards</p>
<p style="clear: both">USB 2.0</p>
<p style="clear: both">Craigslist (after it expanded from the Bay Area)</p>
<p style="clear: both">Skype</p>
<p style="clear: both">Pandora (internet radio)</p>
<p style="clear: both">Kindle</p>
<p style="clear: both">GPS (Civilian Based &#8211; came out around 2004-2005)</p>
<p style="clear: both">Wikipedia</p>
<p style="clear: both">Music Games (Guitar Hero, Rockband, etc)</p>
<p style="clear: both">And I am sure there is a ton more I could think of.</p>
<p style="clear: both">Just think about it, 10 years ago we didn&#8217;t have anything like the above list in the tech arena. What long way we have come, and those are just some of the highlights. </p>
<p style="clear: both">What are some things you think should be on the list?</p>
<p style="clear: both">
<p style="clear: both">
<p style="clear: both">
<p><br class="final-break" style="clear: both" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=n9dG160AMtI:-JsJGBDDSwA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=n9dG160AMtI:-JsJGBDDSwA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=n9dG160AMtI:-JsJGBDDSwA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=n9dG160AMtI:-JsJGBDDSwA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=n9dG160AMtI:-JsJGBDDSwA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=n9dG160AMtI:-JsJGBDDSwA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=n9dG160AMtI:-JsJGBDDSwA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=n9dG160AMtI:-JsJGBDDSwA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=n9dG160AMtI:-JsJGBDDSwA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=n9dG160AMtI:-JsJGBDDSwA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=n9dG160AMtI:-JsJGBDDSwA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=n9dG160AMtI:-JsJGBDDSwA:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Stevienovacom/~4/n9dG160AMtI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevienova.com/2009/12/24/cya-2009-hello-2010-last-decade-of-tech/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.stevienova.com/2009/12/24/cya-2009-hello-2010-last-decade-of-tech/</feedburner:origLink></item>
		<item>
		<title>SQL Server Master Data Services (Nov CTP)</title>
		<link>http://feedproxy.google.com/~r/Stevienovacom/~3/4WkvtkkLGG4/</link>
		<comments>http://blog.stevienova.com/2009/12/08/sql-server-master-data-services-nov-ctp/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 14:13:46 +0000</pubDate>
		<dc:creator>Steve Novoselac</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Geeky/Programming]]></category>
		<category><![CDATA[SQLServerPedia Syndication]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[Master Data]]></category>
		<category><![CDATA[MDM]]></category>
		<category><![CDATA[MDS]]></category>
		<category><![CDATA[SQL 2008]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://blog.stevienova.com/?p=1363</guid>
		<description>Last night I configured up SQL Server Master Data Services (MDS) on a test box. It looks good so far. I ran into a few issues with the box/setup that I had to tweak in order to get it working. I had to allow &amp;#8220;handlers&amp;#8221; and &amp;#8220;modules&amp;#8221; in the applicationHost config on the machine. IIS [...]</description>
			<content:encoded><![CDATA[<p>Last night I configured up SQL Server Master Data Services (MDS) on a test box. It looks good so far. I ran into a few issues with the box/setup that I had to tweak in order to get it working. I had to allow &#8220;handlers&#8221; and &#8220;modules&#8221; in the applicationHost config on the machine. IIS was also inadvertently set up with only anon access, which was an issue, after I got windows auth installed and turned on everything seemed to work.</p>
<p>The app/system itself is pretty slick. Very basic, but lets you do complex things. Once you get some users set up, and a few models (think: Product, Customer), you can add entities (think: Category1, Category2, etc) you can set up hierarchies, business rules, etc. </p>
<p>I haven&#8217;t played much more with it, but it seems like it could get the job done. I would say some things aren&#8217;t intuitive enough. Example &#8211; they could say &#8220;drag this over to this area&#8221; but there is nothing as far as what to do, its kind of guess and check. </p>
<p>I&#8217;m excited to see where MDS goes.</p>
<p><a href="http://blog.stevienova.com/wp-content/uploads/2009/12/mds.PNG"><img src="http://blog.stevienova.com/wp-content/uploads/2009/12/mds.PNG" alt="mds" title="mds" width="300" height="200" class="alignnone size-full wp-image-1364" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=4WkvtkkLGG4:P-svBPQjZ2A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=4WkvtkkLGG4:P-svBPQjZ2A:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=4WkvtkkLGG4:P-svBPQjZ2A:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=4WkvtkkLGG4:P-svBPQjZ2A:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=4WkvtkkLGG4:P-svBPQjZ2A:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=4WkvtkkLGG4:P-svBPQjZ2A:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=4WkvtkkLGG4:P-svBPQjZ2A:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=4WkvtkkLGG4:P-svBPQjZ2A:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=4WkvtkkLGG4:P-svBPQjZ2A:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=4WkvtkkLGG4:P-svBPQjZ2A:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=4WkvtkkLGG4:P-svBPQjZ2A:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=4WkvtkkLGG4:P-svBPQjZ2A:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Stevienovacom/~4/4WkvtkkLGG4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevienova.com/2009/12/08/sql-server-master-data-services-nov-ctp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.stevienova.com/2009/12/08/sql-server-master-data-services-nov-ctp/</feedburner:origLink></item>
		<item>
		<title>Windows 7 – ASP.NET Temporary Internet Files, Assembly Redirects</title>
		<link>http://feedproxy.google.com/~r/Stevienovacom/~3/Q4_3vYsgjS8/</link>
		<comments>http://blog.stevienova.com/2009/12/07/windows-7-asp-net-temporary-internet-files-assembly-redirects/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 15:17:30 +0000</pubDate>
		<dc:creator>Steve Novoselac</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Geeky/Programming]]></category>
		<category><![CDATA[ADOMD]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[SQL 2005]]></category>
		<category><![CDATA[SQL 2008]]></category>
		<category><![CDATA[Web.Config]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://blog.stevienova.com/?p=1361</guid>
		<description>Just updated my work laptop to Windows 7. Sweet right? Except now the fun of getting everything to work.
First issue I ran into, a Web App in development, not being able to load up &amp;#8220;Microsoft.AnalysisServices.AdomdClient&amp;#8221; because it was looking for version &amp;#8220;9.0.242.0&amp;#8243; &amp;#8211; the version you get with Office 2007, SQL 2005. But I have [...]</description>
			<content:encoded><![CDATA[<p>Just updated my work laptop to Windows 7. Sweet right? Except now the fun of getting everything to work.</p>
<p>First issue I ran into, a Web App in development, not being able to load up &#8220;Microsoft.AnalysisServices.AdomdClient&#8221; because it was looking for version &#8220;9.0.242.0&#8243; &#8211; the version you get with Office 2007, SQL 2005. But I have 2010 running and SQL 2008 stuff on this new build, so saw that issue. Of course I could install the stuff from SQL 2005, the drivers, but also I can redirect my assembly in the Web.config</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dependentAssembly<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;assemblyIdentity</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Microsoft.AnalysisServices.AdomdClient&quot;</span> <span style="color: #000066;">publicKeyToken</span>=<span style="color: #ff0000;">&quot;89845dcd8080cc91&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;bindingRedirect</span> <span style="color: #000066;">oldVersion</span>=<span style="color: #ff0000;">&quot;9.0.242.0&quot;</span> <span style="color: #000066;">newVersion</span>=<span style="color: #ff0000;">&quot;10.0.0.0&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependentAssembly<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>I was also getting some weird stuff about permission denied to any third party assembly when trying to debug/run it locally. Since the web app is impersonating a user, I figured I need to give that user rights to the temporary internet files for ASP.NET, which worked, but in Win7 (and Vista?) the path is different, it is </p>
<p>%LocalAppData%\Temp\Temporary ASP.NET Files</p>
<p>I gave the user modify and my app finally builds!</p>
<p>Hopefully not too many more roadblocks going forward..</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=Q4_3vYsgjS8:aIdnfArvyCo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=Q4_3vYsgjS8:aIdnfArvyCo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=Q4_3vYsgjS8:aIdnfArvyCo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=Q4_3vYsgjS8:aIdnfArvyCo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=Q4_3vYsgjS8:aIdnfArvyCo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=Q4_3vYsgjS8:aIdnfArvyCo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=Q4_3vYsgjS8:aIdnfArvyCo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=Q4_3vYsgjS8:aIdnfArvyCo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=Q4_3vYsgjS8:aIdnfArvyCo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=Q4_3vYsgjS8:aIdnfArvyCo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=Q4_3vYsgjS8:aIdnfArvyCo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=Q4_3vYsgjS8:aIdnfArvyCo:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Stevienovacom/~4/Q4_3vYsgjS8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevienova.com/2009/12/07/windows-7-asp-net-temporary-internet-files-assembly-redirects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.stevienova.com/2009/12/07/windows-7-asp-net-temporary-internet-files-assembly-redirects/</feedburner:origLink></item>
		<item>
		<title>SQL Server Schema Automatic Revision History using DDL Triggers and SVN</title>
		<link>http://feedproxy.google.com/~r/Stevienovacom/~3/zT5naxCm1NI/</link>
		<comments>http://blog.stevienova.com/2009/11/24/sql-server-schema-automatic-revision-history-using-ddl-triggers-and-svn/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 05:15:35 +0000</pubDate>
		<dc:creator>Steve Novoselac</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Geeky/Programming]]></category>
		<category><![CDATA[SQLServerPedia Syndication]]></category>
		<category><![CDATA[DDL]]></category>
		<category><![CDATA[Delete File]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[Revision History]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL 2005]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[T-SQL]]></category>
		<category><![CDATA[Triggers]]></category>
		<category><![CDATA[TSQL]]></category>
		<category><![CDATA[Write File]]></category>

		<guid isPermaLink="false">http://blog.stevienova.com/?p=1358</guid>
		<description>SQL 2005 introduced DDL Triggers, where you could catch events on your DDL statements in SQL, and hopefully most DBA&amp;#8217;s are catching them, at least to a table and have some kind of report on who is adding, changing and deleting what objects.
What I wanted to do was capture that, but also keep and automatic [...]</description>
			<content:encoded><![CDATA[<p>SQL 2005 introduced DDL Triggers, where you could catch events on your DDL statements in SQL, and hopefully most DBA&#8217;s are catching them, at least to a table and have some kind of report on who is adding, changing and deleting what objects.</p>
<p>What I wanted to do was capture that, but also keep and automatic running log in SVN (subversion) source control. Here is how I went about it.</p>
<p>First, you need SVN set up somewhere. We use unfuddle (http://unfuddle.com/) &#8211; which we also use for Agile BI stuff, but that is another post :) and unfuddle also let&#8217;s us do SVN in the cloud, but you could do it locally or internally or whatever you&#8217;d like. I had to create a user for this, to do automatic commits, and give it rights to commit to the repo.</p>
<p>Second, you probably already want your DDL triggers set up to capture events on your databases, and write to a table. Writing to central DB on a server is probably a good idea. If you have that, or something similar, I then created a trigger on that table, to capture the INSERTED action and take that record that was just inserted and parse what I need, and automatically commit to SVN.</p>
<p>But first, you want to script out all your objects for a database to a folder, say C:\DBSchemas\</p>
<p>I created a folder structure to help me</p>
<p>DBSchemas\ServerName\DatabaseName\ObjectType</p>
<p>and then scripted out all the objects to each folder for ObjectType (Tables, StoredProcedures, Functions, and Views)</p>
<p>Once that was done, I did an initial import into SVN, and make the folder I was working with a working copy. Then the funs starts.</p>
<p>I created a couple of procs (which I found online, links to the blogs are below) to CREATE and DELETE files from T-SQL using OLE automation</p>
<p>CREATE/APPEND (http://sqlsolace.blogspot.com/2009/01/ole-automation-write-text-file-from.html)</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> PROCEDURE <span style="color: #66cc66;">&#91;</span>Utils<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">.</span><span style="color: #66cc66;">&#91;</span>usp_OLEWriteFile<span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#40;</span>@FileName varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1000</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> @TextData NVARCHAR<span style="color: #66cc66;">&#40;</span>MAX<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>@FileAction VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">12</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span>
&nbsp;
BEGIN
DECLARE @OLEfilesytemobject INT
DECLARE @OLEResult INT
DECLARE @FileID INT
&nbsp;
EXECUTE @OLEResult <span style="color: #66cc66;">=</span> 
 sp_OACreate <span style="color: #ff0000;">'Scripting.FileSystemObject'</span><span style="color: #66cc66;">,</span> @OLEfilesytemobject OUT
<span style="color: #993333; font-weight: bold;">IF</span> @OLEResult <span style="color: #66cc66;">&lt;&gt;</span> <span style="color: #cc66cc;">0</span> 
  PRINT <span style="color: #ff0000;">'Error: Scripting.FileSystemObject'</span>
&nbsp;
<span style="color: #808080; font-style: italic;">-- check if file exists</span>
EXEC sp_OAMethod @OLEfilesytemobject<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'FileExists'</span><span style="color: #66cc66;">,</span> @OLEresult OUT<span style="color: #66cc66;">,</span> @FileName 
<span style="color: #808080; font-style: italic;">-- if file esists</span>
<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>@OLEresult<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span> <span style="color: #993333; font-weight: bold;">AND</span> @FileAction <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'APPEND'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">OR</span> <span style="color: #66cc66;">&#40;</span>@OLEresult<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span> 
BEGIN   
&nbsp;
<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>@FileAction <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'CREATENEW'</span><span style="color: #66cc66;">&#41;</span>
 PRINT <span style="color: #ff0000;">'New file specified, creating...'</span>
<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>@OLEresult<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span> <span style="color: #993333; font-weight: bold;">AND</span> @FileAction <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'APPEND'</span><span style="color: #66cc66;">&#41;</span> 
 PRINT <span style="color: #ff0000;">'File exists, appending...'</span>
<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>@OLEresult<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">0</span> <span style="color: #993333; font-weight: bold;">AND</span> @FileAction <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'APPEND'</span><span style="color: #66cc66;">&#41;</span> 
 PRINT <span style="color: #ff0000;">'File doesnt exist, creating...'</span> 
&nbsp;
 <span style="color: #808080; font-style: italic;">-- open file</span>
 EXECUTE @OLEResult <span style="color: #66cc66;">=</span> sp_OAMethod @OLEfilesytemobject<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'OpenTextFile'</span><span style="color: #66cc66;">,</span> @FileID OUT<span style="color: #66cc66;">,</span>
 @FileName<span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">8</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span>
 <span style="color: #993333; font-weight: bold;">IF</span> @OLEResult <span style="color: #66cc66;">&lt;&gt;</span><span style="color: #cc66cc;">0</span> PRINT <span style="color: #ff0000;">'Error: OpenTextFile'</span>
&nbsp;
 <span style="color: #808080; font-style: italic;">-- write Text1 to the file</span>
 EXECUTE @OLEResult <span style="color: #66cc66;">=</span> sp_OAMethod @FileID<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'WriteLine'</span><span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span> @TextData
 <span style="color: #993333; font-weight: bold;">IF</span> @OLEResult <span style="color: #66cc66;">&lt;&gt;</span> <span style="color: #cc66cc;">0</span> 
  PRINT <span style="color: #ff0000;">'Error : WriteLine'</span>
 ELSE
  PRINT <span style="color: #ff0000;">'Success'</span> 
END
<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>@OLEresult<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span> <span style="color: #993333; font-weight: bold;">AND</span> @FileAction <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'CREATENEW'</span><span style="color: #66cc66;">&#41;</span>
 PRINT <span style="color: #ff0000;">'File Exists, specify APPEND if this is the desired action'</span>
&nbsp;
EXECUTE @OLEResult <span style="color: #66cc66;">=</span> sp_OADestroy @FileID
EXECUTE @OLEResult <span style="color: #66cc66;">=</span> sp_OADestroy @OLEfilesytemobject
&nbsp;
END
GO</pre></div></div>

<p>DELETE (http://www.kodyaz.com/articles/delete-file-from-sql-server-xp-cmdshell-ole-automation-procedures.aspx)</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">DECLARE @Result int
DECLARE @FSO_Token int
&nbsp;
EXEC @Result <span style="color: #66cc66;">=</span> sp_OACreate <span style="color: #ff0000;">'Scripting.FileSystemObject'</span><span style="color: #66cc66;">,</span> @FSO_Token OUTPUT
EXEC @Result <span style="color: #66cc66;">=</span> sp_OAMethod @FSO_Token<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'DeleteFile'</span><span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'C:<span style="color: #000099; font-weight: bold;">\d</span>elete-me-file.txt'</span>
EXEC @Result <span style="color: #66cc66;">=</span> sp_OADestroy @FSO_Token</pre></div></div>

<p>You need to make sure OLE Automation is on. You need to make sure that the account you are running SQL as has modify rights to your DBSchemas folder.</p>
<p>But the crux of the solution is the trigger that gets the DDL info, and writes/deletes the files and SVN Add/Del/Commit&#8217;s the file. Now this is some ugly 1 hour SQL script craziness, tons of IF statements, etc. It could be improved, but it works, and it is a start, it can be modified and tweaked to do whatever you want. Note, if your SVN repo isn&#8217;t authenticated you don&#8217;t need the username/password for the SVN commands.</p>
<p>You can see, it gets the DDL, checks the events (and I have it limited to one database), and it checks what type of object and what operation, and for and add, it adds and commits, for a updated, deletes file, recreates it, and commits, and for a delete it does and svn delete and commit. Pretty easy :)</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">&nbsp;
&nbsp;
&nbsp;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TRIGGER</span> DDLRevisionHistory
	<span style="color: #993333; font-weight: bold;">ON</span> dbo<span style="color: #66cc66;">.</span>DDLEventLog
	AFTER <span style="color: #993333; font-weight: bold;">INSERT</span>
<span style="color: #993333; font-weight: bold;">AS</span>
&nbsp;
BEGIN
<span style="color: #993333; font-weight: bold;">SET</span> NOCOUNT <span style="color: #993333; font-weight: bold;">ON</span>;
&nbsp;
DECLARE @EventType VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span>
DECLARE @DatabaseName VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span>
DECLARE @ServerName VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span>
DECLARE @ObjectName VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span>
DECLARE @SchemaName VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span>
DECLARE @CommandText VARCHAR<span style="color: #66cc66;">&#40;</span>MAX<span style="color: #66cc66;">&#41;</span>
DECLARE @LoginName VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #993333; font-weight: bold;">SELECT</span> 
	@EventType <span style="color: #66cc66;">=</span> EventInstance<span style="color: #66cc66;">.</span>value<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'(//EventType)[1]'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'varchar(50)'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
	@DatabaseName <span style="color: #66cc66;">=</span> EventInstance<span style="color: #66cc66;">.</span>value<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'(//DatabaseName)[1]'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'varchar(50)'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
	@ServerName <span style="color: #66cc66;">=</span> EventInstance<span style="color: #66cc66;">.</span>value<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'(//ServerName)[1]'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'varchar(50)'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
	@ObjectName <span style="color: #66cc66;">=</span> EventInstance<span style="color: #66cc66;">.</span>value<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'(//ObjectName)[1]'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'varchar(50)'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
	@SchemaName <span style="color: #66cc66;">=</span>EventInstance<span style="color: #66cc66;">.</span>value<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'(//SchemaName)[1]'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'varchar(50)'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
	@CommandText <span style="color: #66cc66;">=</span> EventInstance<span style="color: #66cc66;">.</span>value<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'(//TSQLCommand//CommandText)[1]'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'varchar(max)'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
	@LoginName <span style="color: #66cc66;">=</span> EventInstance<span style="color: #66cc66;">.</span>value<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'(//LoginName)[1]'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'varchar(50)'</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #993333; font-weight: bold;">FROM</span> inserted
&nbsp;
DECLARE @filepath VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8000</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #993333; font-weight: bold;">SET</span> @filepath <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'C:<span style="color: #000099; font-weight: bold;">\D</span>BSchemas<span style="color: #000099; font-weight: bold;">\'</span> + @ServerName + '</span>\<span style="color: #ff0000;">' + @DatabaseName + '</span>\<span style="color: #ff0000;">' 
&nbsp;
	IF (
		@EventType = '</span>CREATE_VIEW<span style="color: #ff0000;">' OR @EventType = '</span>ALTER_VIEW<span style="color: #ff0000;">' OR @EventType = '</span>DROP_VIEW<span style="color: #ff0000;">'
		OR @EventType = '</span>CREATE_TABLE<span style="color: #ff0000;">' OR @EventType = '</span>ALTER_TABLE<span style="color: #ff0000;">' OR @EventType = '</span>DROP_TABLE<span style="color: #ff0000;">'
		OR @EventType = '</span>CREATE_PROCEDURE<span style="color: #ff0000;">' OR @EventType = '</span>ALTER_PROCEDURE<span style="color: #ff0000;">' OR @EventType = '</span>DROP_PROCEDURE<span style="color: #ff0000;">'
		OR @EventType = '</span>CREATE_FUNCTION<span style="color: #ff0000;">' OR @EventType = '</span>ALTER_FUNCTION<span style="color: #ff0000;">' OR @EventType = '</span>DROP_FUNCTION<span style="color: #ff0000;">'
		) 
&nbsp;
		AND @DatabaseName = '</span>YourDatabase<span style="color: #ff0000;">' BEGIN
&nbsp;
&nbsp;
		-- write out new file to correct folder
		IF CHARINDEX('</span><span style="color: #993333; font-weight: bold;">VIEW</span><span style="color: #ff0000;">',@EventType) &gt; 0 BEGIN 
			SET @filepath = @filepath + '</span>Views\<span style="color: #ff0000;">' + @SchemaName + '</span><span style="color: #66cc66;">.</span><span style="color: #ff0000;">' + @ObjectName + '</span><span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">VIEW</span><span style="color: #66cc66;">.</span>sql<span style="color: #ff0000;">'
		END
&nbsp;
		IF CHARINDEX('</span><span style="color: #993333; font-weight: bold;">TABLE</span><span style="color: #ff0000;">',@EventType) &gt; 0 BEGIN 
			SET @filepath = @filepath + '</span><span style="color: #993333; font-weight: bold;">TABLES</span>\<span style="color: #ff0000;">' + @SchemaName + '</span><span style="color: #66cc66;">.</span><span style="color: #ff0000;">' + @ObjectName + '</span><span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">TABLE</span><span style="color: #66cc66;">.</span>sql<span style="color: #ff0000;">'
		END
&nbsp;
		IF CHARINDEX('</span>PROCEDURE<span style="color: #ff0000;">',@EventType) &gt; 0 BEGIN 
			SET @filepath = @filepath + '</span>StoredProcedures\<span style="color: #ff0000;">' + @SchemaName + '</span><span style="color: #66cc66;">.</span><span style="color: #ff0000;">' + @ObjectName + '</span><span style="color: #66cc66;">.</span>StoredProcedure<span style="color: #66cc66;">.</span>sql<span style="color: #ff0000;">'
		END
&nbsp;
		IF CHARINDEX('</span><span style="color: #993333; font-weight: bold;">FUNCTION</span><span style="color: #ff0000;">',@EventType) &gt; 0 BEGIN 
			SET @filepath = @filepath + '</span>Views\<span style="color: #ff0000;">' + @SchemaName + '</span><span style="color: #66cc66;">.</span><span style="color: #ff0000;">' + @ObjectName + '</span><span style="color: #66cc66;">.</span>UserDefinedFunction<span style="color: #66cc66;">.</span>sql<span style="color: #ff0000;">'
		END
&nbsp;
		IF CHARINDEX('</span><span style="color: #993333; font-weight: bold;">CREATE</span><span style="color: #ff0000;">',@EventType) &gt; 0 BEGIN
&nbsp;
			-- create file
			EXEC dbo.usp_OLEWriteFile @filepath,@CommandText,'</span>CREATENEW<span style="color: #ff0000;">'
&nbsp;
			-- svn add
			DECLARE @instrAdd VARCHAR(4000)
			SET @instrAdd='</span>svn <span style="color: #993333; font-weight: bold;">ADD</span> <span style="color: #ff0000;">' + @filepath + '</span> <span style="color: #808080; font-style: italic;">--username dbschema --password yourpassword'</span>
			EXEC xp_cmdshell @instrAdd
&nbsp;
			<span style="color: #808080; font-style: italic;">-- svn commit</span>
			DECLARE @instrCommitAdd VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">4000</span><span style="color: #66cc66;">&#41;</span>
			<span style="color: #993333; font-weight: bold;">SET</span> @instrCommitAdd<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'svn commit '</span> <span style="color: #66cc66;">+</span> @filepath <span style="color: #66cc66;">+</span> <span style="color: #ff0000;">' --message &quot;added by '</span><span style="color: #66cc66;">+</span> @LoginName <span style="color: #66cc66;">+</span><span style="color: #ff0000;">'&quot; --username dbschema --password yourpassword'</span>
			EXEC xp_cmdshell @instrCommitAdd
&nbsp;
		END
&nbsp;
		<span style="color: #993333; font-weight: bold;">IF</span> CHARINDEX<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'ALTER'</span><span style="color: #66cc66;">,</span>@EventType<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #cc66cc;">0</span> BEGIN
&nbsp;
			<span style="color: #808080; font-style: italic;">--delete and readd file</span>
			EXEC dbo<span style="color: #66cc66;">.</span>usp_OLEDeleteFile @filepath
			EXEC dbo<span style="color: #66cc66;">.</span>usp_OLEWriteFile @filepath<span style="color: #66cc66;">,</span>@CommandText<span style="color: #66cc66;">,</span><span style="color: #ff0000;">'CREATENEW'</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">-- svn commit</span>
			DECLARE @instrCommitChange VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">4000</span><span style="color: #66cc66;">&#41;</span>
			<span style="color: #993333; font-weight: bold;">SET</span> @instrCommitChange<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'svn commit '</span> <span style="color: #66cc66;">+</span> @filepath <span style="color: #66cc66;">+</span> <span style="color: #ff0000;">' --message &quot;changed by '</span><span style="color: #66cc66;">+</span> @LoginName <span style="color: #66cc66;">+</span> <span style="color: #ff0000;">'&quot; --username dbschema --password yourpassword'</span>
			<span style="color: #808080; font-style: italic;">--PRINT @instrCommitChange</span>
			EXEC xp_cmdshell @instrCommitChange
		END
&nbsp;
		<span style="color: #993333; font-weight: bold;">IF</span> CHARINDEX<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'DROP'</span><span style="color: #66cc66;">,</span>@EventType<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #cc66cc;">0</span> BEGIN
			<span style="color: #808080; font-style: italic;">-- svn delete</span>
			DECLARE @instrDel VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">4000</span><span style="color: #66cc66;">&#41;</span>
			<span style="color: #993333; font-weight: bold;">SET</span> @instrDel<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'svn delete '</span> <span style="color: #66cc66;">+</span> @filepath <span style="color: #66cc66;">+</span> <span style="color: #ff0000;">' --username dbschema --password yourpassword'</span>
			EXEC xp_cmdshell @instrDel
&nbsp;
			<span style="color: #808080; font-style: italic;">-- svn commit</span>
			DECLARE @instrCommitDel VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">4000</span><span style="color: #66cc66;">&#41;</span>
			<span style="color: #993333; font-weight: bold;">SET</span> @instrCommitDel<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'svn commit '</span> <span style="color: #66cc66;">+</span> @filepath <span style="color: #66cc66;">+</span> <span style="color: #ff0000;">' --message &quot;deleted by '</span><span style="color: #66cc66;">+</span> @LoginName <span style="color: #66cc66;">+</span><span style="color: #ff0000;">'&quot; --username dbschema --password yourpassword'</span>
			EXEC xp_cmdshell @instrCommitDel
		END
&nbsp;
	END
&nbsp;
END</pre></div></div>

<p>as you can see you can create a homegrown revision history of your DDL objects in SQL . I have tested this on the basic operations, no renames, etc using the GUI, but if you do use it, you might want to wrap it all in exception handling just to be on the safe side.</p>
<p>Happy DBA&#8217;ing :)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=zT5naxCm1NI:Syckg5x8KdQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=zT5naxCm1NI:Syckg5x8KdQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=zT5naxCm1NI:Syckg5x8KdQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=zT5naxCm1NI:Syckg5x8KdQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=zT5naxCm1NI:Syckg5x8KdQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=zT5naxCm1NI:Syckg5x8KdQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=zT5naxCm1NI:Syckg5x8KdQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=zT5naxCm1NI:Syckg5x8KdQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=zT5naxCm1NI:Syckg5x8KdQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=zT5naxCm1NI:Syckg5x8KdQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=zT5naxCm1NI:Syckg5x8KdQ:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=zT5naxCm1NI:Syckg5x8KdQ:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Stevienovacom/~4/zT5naxCm1NI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevienova.com/2009/11/24/sql-server-schema-automatic-revision-history-using-ddl-triggers-and-svn/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.stevienova.com/2009/11/24/sql-server-schema-automatic-revision-history-using-ddl-triggers-and-svn/</feedburner:origLink></item>
		<item>
		<title>SQL Server Agent – Query To Find Long Running Jobs</title>
		<link>http://feedproxy.google.com/~r/Stevienovacom/~3/2HfcLKjKFP0/</link>
		<comments>http://blog.stevienova.com/2009/11/13/sql-server-agent-query-to-find-long-running-jobs/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 22:47:09 +0000</pubDate>
		<dc:creator>Steve Novoselac</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Geeky/Programming]]></category>
		<category><![CDATA[SQLServerPedia Syndication]]></category>
		<category><![CDATA[Jobs]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[Long Running Jobs]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[msdb]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Agent]]></category>
		<category><![CDATA[sysjobs]]></category>

		<guid isPermaLink="false">http://blog.stevienova.com/?p=1354</guid>
		<description>I use SQL Agent a ton. It is like my go to place to schedule jobs and tasks. Problem is, there are pieces &amp;#8220;missing&amp;#8221;. Like if a job hangs, you can have it auto stop after a given amount of time. It doesn&amp;#8217;t alert on changes to a job, etc, etc.
I asked on twitter what [...]</description>
			<content:encoded><![CDATA[<p>I use SQL Agent a ton. It is like my go to place to schedule jobs and tasks. Problem is, there are pieces &#8220;missing&#8221;. Like if a job hangs, you can have it auto stop after a given amount of time. It doesn&#8217;t alert on changes to a job, etc, etc.</p>
<p>I asked on twitter what the DBA&#8217;s think, <a href="http://twitter.com/SQLRockstar">@SQLRockstar</a> thinks using OpsMgr is the way, which probably would be great, if I had it. I need a quick and dirty solution.</p>
<p>What I did was query the sysjobs, sysjobactivity, and sysjobhistory tables to get some kind of &#8220;look&#8221; into the running jobs. That way, if a job that is normally 45 minutes has been running for 5 hours, I should be able to catch it early on, just trying to be more proactive instead of reactive.</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> 
	j<span style="color: #66cc66;">.</span>job_id <span style="color: #993333; font-weight: bold;">AS</span> <span style="color: #ff0000;">'JobId'</span><span style="color: #66cc66;">,</span>
	name <span style="color: #993333; font-weight: bold;">AS</span> <span style="color: #ff0000;">'JobName'</span><span style="color: #66cc66;">,</span>
	start_execution_date <span style="color: #993333; font-weight: bold;">AS</span> <span style="color: #ff0000;">'StartTime'</span><span style="color: #66cc66;">,</span>
	stop_execution_date <span style="color: #993333; font-weight: bold;">AS</span> <span style="color: #ff0000;">'StopTime'</span><span style="color: #66cc66;">,</span>
	avgruntimeonsucceed<span style="color: #66cc66;">,</span>
	DATEDIFF<span style="color: #66cc66;">&#40;</span>s<span style="color: #66cc66;">,</span>start_execution_date<span style="color: #66cc66;">,</span>GETDATE<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> <span style="color: #ff0000;">'CurrentRunTime'</span><span style="color: #66cc66;">,</span>
	CASE WHEN stop_execution_date <span style="color: #993333; font-weight: bold;">IS</span> <span style="color: #993333; font-weight: bold;">NULL</span> THEN 
			DATEDIFF<span style="color: #66cc66;">&#40;</span>ss<span style="color: #66cc66;">,</span>start_execution_date<span style="color: #66cc66;">,</span>stop_execution_date<span style="color: #66cc66;">&#41;</span> ELSE <span style="color: #cc66cc;">0</span> END <span style="color: #ff0000;">'ActualRunTime'</span><span style="color: #66cc66;">,</span>
	CASE 
		WHEN stop_execution_date <span style="color: #993333; font-weight: bold;">IS</span> <span style="color: #993333; font-weight: bold;">NULL</span> THEN <span style="color: #ff0000;">'JobRunning'</span>
		WHEN DATEDIFF<span style="color: #66cc66;">&#40;</span>ss<span style="color: #66cc66;">,</span>start_execution_date<span style="color: #66cc66;">,</span>stop_execution_date<span style="color: #66cc66;">&#41;</span> 
			<span style="color: #66cc66;">&gt;</span> <span style="color: #66cc66;">&#40;</span>AvgRunTimeOnSucceed <span style="color: #66cc66;">+</span> AvgRunTimeOnSucceed <span style="color: #66cc66;">*</span> <span style="color: #66cc66;">.</span>05<span style="color: #66cc66;">&#41;</span> THEN <span style="color: #ff0000;">'LongRunning-History'</span>
		ELSE <span style="color: #ff0000;">'NormalRunning-History'</span>
	END <span style="color: #ff0000;">'JobRun'</span><span style="color: #66cc66;">,</span>
	CASE 
		WHEN stop_execution_date <span style="color: #993333; font-weight: bold;">IS</span> <span style="color: #993333; font-weight: bold;">NULL</span> THEN
			CASE WHEN DATEDIFF<span style="color: #66cc66;">&#40;</span>ss<span style="color: #66cc66;">,</span>start_execution_date<span style="color: #66cc66;">,</span>GETDATE<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
						<span style="color: #66cc66;">&gt;</span> <span style="color: #66cc66;">&#40;</span>AvgRunTimeOnSucceed <span style="color: #66cc66;">+</span> AvgRunTimeOnSucceed <span style="color: #66cc66;">*</span> <span style="color: #66cc66;">.</span>05<span style="color: #66cc66;">&#41;</span> THEN <span style="color: #ff0000;">'LongRunning-NOW'</span>
			ELSE <span style="color: #ff0000;">'NormalRunning-NOW'</span>
		END
		ELSE <span style="color: #ff0000;">'JobAlreadyDone'</span>
	END <span style="color: #993333; font-weight: bold;">AS</span> <span style="color: #ff0000;">'JobRunning'</span>
 <span style="color: #993333; font-weight: bold;">FROM</span> msdb<span style="color: #66cc66;">.</span>dbo<span style="color: #66cc66;">.</span>sysjobactivity ja
	<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> msdb<span style="color: #66cc66;">.</span>dbo<span style="color: #66cc66;">.</span>sysjobs j <span style="color: #993333; font-weight: bold;">ON</span> ja<span style="color: #66cc66;">.</span>job_id <span style="color: #66cc66;">=</span> j<span style="color: #66cc66;">.</span>job_id
<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> <span style="color: #66cc66;">&#40;</span>
	<span style="color: #993333; font-weight: bold;">SELECT</span> job_id<span style="color: #66cc66;">,</span>
	AVG
	<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>run_duration<span style="color: #66cc66;">/</span><span style="color: #cc66cc;">10000</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">3600</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">+</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>run_duration%10000<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">/</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">+</span> <span style="color: #66cc66;">&#40;</span>run_duration%10000<span style="color: #66cc66;">&#41;</span>%100<span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">+</span>
	STDEV
	<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>run_duration<span style="color: #66cc66;">/</span><span style="color: #cc66cc;">10000</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">3600</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">+</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>run_duration%10000<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">/</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">+</span> <span style="color: #66cc66;">&#40;</span>run_duration%10000<span style="color: #66cc66;">&#41;</span>%100<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> <span style="color: #ff0000;">'AvgRuntimeOnSucceed'</span>
	 <span style="color: #993333; font-weight: bold;">FROM</span> msdb<span style="color: #66cc66;">.</span>dbo<span style="color: #66cc66;">.</span>sysjobhistory
	<span style="color: #993333; font-weight: bold;">WHERE</span> step_id <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #993333; font-weight: bold;">AND</span> run_status <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span>
	<span style="color: #993333; font-weight: bold;">GROUP</span> <span style="color: #993333; font-weight: bold;">BY</span> job_id<span style="color: #66cc66;">&#41;</span> art 
	<span style="color: #993333; font-weight: bold;">ON</span> j<span style="color: #66cc66;">.</span>job_id <span style="color: #66cc66;">=</span> art<span style="color: #66cc66;">.</span>job_id
<span style="color: #993333; font-weight: bold;">WHERE</span> 
<span style="color: #66cc66;">&#40;</span>stop_execution_date <span style="color: #993333; font-weight: bold;">IS</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">OR</span> 
	<span style="color: #66cc66;">&#40;</span>DATEDIFF<span style="color: #66cc66;">&#40;</span>ss<span style="color: #66cc66;">,</span>start_execution_date<span style="color: #66cc66;">,</span>stop_execution_date<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #cc66cc;">60</span>
	<span style="color: #993333; font-weight: bold;">AND</span> 
	CAST<span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">LEFT</span><span style="color: #66cc66;">&#40;</span>start_execution_date<span style="color: #66cc66;">,</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> DATETIME<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">=</span> CAST<span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">LEFT</span><span style="color: #66cc66;">&#40;</span>GETDATE<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> DATETIME<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">ORDER</span> <span style="color: #993333; font-weight: bold;">BY</span> start_execution_date <span style="color: #993333; font-weight: bold;">DESC</span></pre></div></div>

<p>The inner query looks at the history to get the average runtime, and I added the standard deviation to that to make it more realistic, in case you have a one off that throws the average off. Of course this all depends on you having more than 3 entries in your job history as well.</p>
<p>I then just compare the average to the current runtime (if the job is executing) and to the actual (if it is complete). </p>
<p>You could use this query in a report, to view throughout the day to catch long running jobs, you could also use it to just give you the one that are currently running and over the time threshold, and alert you, so you can catch them right away.</p>
<p>I tested this on a few servers running SQL 2005, but I am guessing it will work on SQL 2008 as well. Find and kill those long running jobs!!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=2HfcLKjKFP0:K6ERuQVsYcI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=2HfcLKjKFP0:K6ERuQVsYcI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=2HfcLKjKFP0:K6ERuQVsYcI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=2HfcLKjKFP0:K6ERuQVsYcI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=2HfcLKjKFP0:K6ERuQVsYcI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=2HfcLKjKFP0:K6ERuQVsYcI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=2HfcLKjKFP0:K6ERuQVsYcI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=2HfcLKjKFP0:K6ERuQVsYcI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=2HfcLKjKFP0:K6ERuQVsYcI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=2HfcLKjKFP0:K6ERuQVsYcI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=2HfcLKjKFP0:K6ERuQVsYcI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=2HfcLKjKFP0:K6ERuQVsYcI:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Stevienovacom/~4/2HfcLKjKFP0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevienova.com/2009/11/13/sql-server-agent-query-to-find-long-running-jobs/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://blog.stevienova.com/2009/11/13/sql-server-agent-query-to-find-long-running-jobs/</feedburner:origLink></item>
		<item>
		<title>SSAS: Errors in the metadata manager. The dimension with ID of…</title>
		<link>http://feedproxy.google.com/~r/Stevienovacom/~3/4Q0Vuh_ymd0/</link>
		<comments>http://blog.stevienova.com/2009/11/12/ssas-errors-in-the-metadata-manager-the-dimension-with-id-of/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 22:10:33 +0000</pubDate>
		<dc:creator>Steve Novoselac</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Geeky/Programming]]></category>
		<category><![CDATA[SQLServerPedia Syndication]]></category>
		<category><![CDATA[Cubes]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[SQL Server Analysis Services]]></category>
		<category><![CDATA[SSAS]]></category>
		<category><![CDATA[SSAS 2005]]></category>

		<guid isPermaLink="false">http://blog.stevienova.com/?p=1352</guid>
		<description>Crazy error today. In Analysis Services, (SSAS), some jobs got hung, sync command got hung, and what ended up happening is a cube on the default instance was totally unusable. 
Try to delete, rename, resync, redeploy, anything, and I would get the error..
Errors in the metadata manager. The dimension with ID of.. 
Couldn&amp;#8217;t do anything. [...]</description>
			<content:encoded><![CDATA[<p>Crazy error today. In Analysis Services, (SSAS), some jobs got hung, sync command got hung, and what ended up happening is a cube on the default instance was totally unusable. </p>
<p>Try to delete, rename, resync, redeploy, anything, and I would get the error..</p>
<p><strong>Errors in the metadata manager. The dimension with ID of.. <etc, etc></strong></p>
<p>Couldn&#8217;t do anything. The solution? I had to stop the SSAS service, go to the OLAP data directory under my SQL install and remove the folder for that cube. I then started the SSAS Service, and the SSAS Database was gone (finally!). I redeployed and reprocessed and everything is working again. Whew :)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=4Q0Vuh_ymd0:BehGhX-E6PU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=4Q0Vuh_ymd0:BehGhX-E6PU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=4Q0Vuh_ymd0:BehGhX-E6PU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=4Q0Vuh_ymd0:BehGhX-E6PU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=4Q0Vuh_ymd0:BehGhX-E6PU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=4Q0Vuh_ymd0:BehGhX-E6PU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=4Q0Vuh_ymd0:BehGhX-E6PU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=4Q0Vuh_ymd0:BehGhX-E6PU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=4Q0Vuh_ymd0:BehGhX-E6PU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=4Q0Vuh_ymd0:BehGhX-E6PU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?i=4Q0Vuh_ymd0:BehGhX-E6PU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Stevienovacom?a=4Q0Vuh_ymd0:BehGhX-E6PU:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Stevienovacom?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Stevienovacom/~4/4Q0Vuh_ymd0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevienova.com/2009/11/12/ssas-errors-in-the-metadata-manager-the-dimension-with-id-of/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.stevienova.com/2009/11/12/ssas-errors-in-the-metadata-manager-the-dimension-with-id-of/</feedburner:origLink></item>
	</channel>
</rss>
