<feed version="0.3" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://purl.org/atom/ns#" xml:lang="en-US"><title>Josh Crosby</title><link rel="alternate" type="text/html" href="http://sqljunkies.com/WebLog/joshcrosby/default.aspx" /><tagline type="text/html">My Journey to becoming a MCDBA</tagline><id>http://sqljunkies.com/WebLog/joshcrosby/default.aspx</id><author><url>http://sqljunkies.com/WebLog/joshcrosby/default.aspx</url></author><generator url="http://communityserver.org" version="1.0.1.50214">Community Server</generator><modified>2004-03-19T16:16:00Z</modified><entry><title>Free Geek Stuff</title><link rel="alternate" type="text/html" href="http://sqljunkies.com/WebLog/joshcrosby/archive/2005/10/07/17037.aspx" /><id>d2584c15-f6ef-46f7-a2d4-24fc0e143e76:17037</id><created>2005-10-06T16:57:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;&lt;FONT&gt;If you haven't seen this before, check it out, get a &lt;A href="http://psps.freepay.com/?r=23390568"&gt;Free PSP&lt;/A&gt; or &lt;A href="http://xbox360s.freepay.com/?r=23389907"&gt;Free XBox 360&lt;/A&gt;, not joke it's legit. I just got my &lt;A href="http://ipodnanos.freepay.com/?r=23390356"&gt;Free IPod Nano&lt;/A&gt; today.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT&gt;It's really easy &lt;/P&gt;
&lt;P&gt;There are 3 basic steps:&lt;BR&gt;1. Sign up&lt;BR&gt;2. Complete an offer&lt;BR&gt;3. Refer your friends to do the same&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1. Sign up&lt;/STRONG&gt;. Use a junk (but valid) email account you dont mind getting spam in, because you will! You should be use to this by now. While signing up it may ask you optional survey questions with different offers. These are all optional and don’t contribute to your free gift.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;2. Complete an offer&lt;/STRONG&gt;. Some offers are better than others. The one I recommend is Blockbuster Online. It costs $9.99 for a month trial and you’ll get credit in about a week. Not only is it cheap and from a reliable company, but the service is great! Other offers I have done are the RealRhapsody offer. It costs 99 cents for a month trial and credit is instant. When you click on an offer, make sure your popup blocker is OFF and you have cookies ENABLED. You may not get credit if they arent! When you click an offer a popup will open telling you what you need to do to get credit and the timeframe credit will be awarded.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;3. Refer your friends&lt;/STRONG&gt;. Email signatures, in your blog, your AIM profile… anywhere it is welcome… post your referral link! Refer them to this page or other success stories around the net to show them it’s legit.&lt;/P&gt;
&lt;P&gt;Depending on which site you complete, you will need a varying number of referrals based on the value of the product. I put the number of referrals for each item in paranthesis next to the link. Keep in mind it will be much easier to get 3 friends to sign up and get a free iPod shuffle then getting 10 friends to do the same for a laptop computer.&lt;/P&gt;
&lt;P&gt;Following is a list of FreePay sites, with the number of referrals needed for each (in parenthesis). &lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://sqljunkies.com/WebLog/aggbug.aspx?PostID=17037" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://sqljunkies.com/WebLog/joshcrosby/commentrss.aspx?PostID=17037</wfw:commentRss></entry><entry><title>Been a Long Time, From PASS</title><link rel="alternate" type="text/html" href="http://sqljunkies.com/WebLog/joshcrosby/archive/2005/09/26/16901.aspx" /><id>d2584c15-f6ef-46f7-a2d4-24fc0e143e76:16901</id><created>2005-09-26T01:11:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;Sitting in with a buddy to my right, and Kalen Delaney in front of me. I snapped a photo from her this morning, she smiled :) giggle giggle :)&lt;/P&gt;
&lt;P&gt;Concurrency in SQL Server 2005 by Kalen Delaney is about to start. What an awesome place this is !!! I'll post the pic later :)&lt;/P&gt;&lt;img src="http://sqljunkies.com/WebLog/aggbug.aspx?PostID=16901" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://sqljunkies.com/WebLog/joshcrosby/commentrss.aspx?PostID=16901</wfw:commentRss></entry><entry><title>Helpful Commands from the Windows Key</title><link rel="alternate" type="text/html" href="http://sqljunkies.com/WebLog/joshcrosby/archive/2005/03/02/8371.aspx" /><id>d2584c15-f6ef-46f7-a2d4-24fc0e143e76:8371</id><created>2005-03-02T14:56:00Z</created><content type="text/html" mode="escaped">&lt;p&gt;Here's some other helpful commands from the WinKey, believe me I'm lazy enjoy. 
	if i missed any please post em here.
&lt;/p&gt;
&lt;table border="1" cellspacing="0" cellpadding="0" ID="Table5"&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;&lt;b&gt;Administrative Action&lt;/b&gt;&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;&lt;b&gt;Win Key Combination &lt;/b&gt;
			&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Opens Start Menu&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Iterate through Icons on the Desktop&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + Arrow keys and then enter to open.&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Search&amp;#8217;s for any Desktop file for &amp;#8220;A&amp;#8221;&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + A&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Iterate through Sys Tray icons, kind of tricky&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Hold Win + B, use arrow keys to iterate and enter to open.&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Go to previous page in Browser (IE, Firefox)&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + BACKSPACE&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Open System Properties&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + BREAK&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Show the Desktop&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + D&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Open Explorer (My Computer)&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + E&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Search for a file or folder.&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + F&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Search for Computers&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Ctrl + Win + F&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Windows Help&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + F1&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Opens Search Results&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + F3&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Sets focus to parts of the desktop, i.e. Desktop, Quicklaunch, Taskbar, 
				etc&amp;#8230;&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + F6, then click enter to activate.&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Search&amp;#8217;s for any Desktop file for &amp;#8220;G&amp;#8221;&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + G&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Search&amp;#8217;s for any Desktop file for &amp;#8220;H&amp;#8221;, In MS Word 2003 it 
				opens Drawing pad&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + H&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Search&amp;#8217;s for any Desktop file for &amp;#8220;I&amp;#8221;&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + I&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Search&amp;#8217;s for any Desktop file for &amp;#8220;J&amp;#8221;&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + J&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Search&amp;#8217;s for any Desktop file for &amp;#8220;K&amp;#8221;&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + K&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Lock your Computer, love this one&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + L&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Minimize all windows and programs&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + M&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Restore all windows and programs&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Shift + Win + M&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Starts a new MS OneNote 2003&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + N&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Search&amp;#8217;s for any Desktop file for &amp;#8220;O&amp;#8221;&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + O&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Search&amp;#8217;s for any Desktop file for &amp;#8220;P&amp;#8221;&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + P&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Search&amp;#8217;s for any Desktop file for &amp;#8220;Q&amp;#8221;&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + Q&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Open the &lt;b&gt;Run&lt;/b&gt; dialog box.&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + R&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;OneNote 2003, will allow you to capture part of the screen and save to 
				clipboard, WAY Cool&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + S, then use your mouse to clip a part of the screen.&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Highlight Programs on the Taskbar&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + Tab, then click enter to open.
			&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Search&amp;#8217;s for any Desktop file for &amp;#8220;T&amp;#8221;&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + T&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Open Utility Manager&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + U&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Open Speech Recognition&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + V&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Search&amp;#8217;s for any Desktop file for &amp;#8220;W&amp;#8221;&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + W&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Search&amp;#8217;s for any Desktop file for &amp;#8220;X&amp;#8221;&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + X&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td width="399" valign="top"&gt;
			&lt;p&gt;Search&amp;#8217;s for any Desktop file for &amp;#8220;Z&amp;#8221;&lt;/p&gt;
		&lt;/td&gt;
		&lt;td width="276" valign="top"&gt;
			&lt;p&gt;Win + Z&lt;/p&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
&lt;br&gt;&lt;img src="http://sqljunkies.com/WebLog/aggbug.aspx?PostID=8371" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://sqljunkies.com/WebLog/joshcrosby/commentrss.aspx?PostID=8371</wfw:commentRss></entry><entry><title>SOX Compliance...</title><link rel="alternate" type="text/html" href="http://sqljunkies.com/WebLog/joshcrosby/archive/2005/02/04/7355.aspx" /><id>d2584c15-f6ef-46f7-a2d4-24fc0e143e76:7355</id><created>2005-02-04T14:05:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;I have had to implement SOX &lt;A href="http://www.sarbanes-oxley-act-compliance.com/"&gt;http://www.sarbanes-oxley-act-compliance.com/&lt;/A&gt;&amp;nbsp;for my current company and only had 2 weeks to do it. &lt;/P&gt;
&lt;P&gt;Fortunately, &lt;A title=Microsoft href="http://msdn.microsoft.com" target=_blank&gt;&lt;a title="Microsoft" href="http://msdn.microsoft.com" target="_blank"&gt;Microsoft&lt;/a&gt;&lt;/A&gt; had created an Accelerator for just that. I already had MS Sharepoint installed on on server and thought why not, let's see what this can do. The Accelerator is really easy to install, easy to manage and turns out to be a great solution for SOX not to mention it's FREE. Well I got it up and I am now a hero :)&lt;/P&gt;
&lt;P&gt;The Accelerator utilizes MS Sharepoint, InfoPath and other Office products.&lt;/P&gt;
&lt;P&gt;Here is the location to the Accelerator &lt;A href="http://www.microsoft.com/office/solutions/accelerators/sarbanes/default.mspx"&gt;http://www.microsoft.com/office/solutions/accelerators/sarbanes/default.mspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;A few snags though, check out these fixes&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.kbalertz.com/kb_872838.aspx"&gt;http://www.kbalertz.com/kb_872838.aspx&lt;/A&gt;&amp;nbsp;for 'undefined' error 
&lt;LI&gt;&lt;A href="http://www.kbalertz.com/Feedback.aspx?kbNumber=870669"&gt;http://www.kbalertz.com/Feedback.aspx?kbNumber=870669&lt;/A&gt;&amp;nbsp;for the ADODB.Stream&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Remember who's fault it will be if your data is not compliant, you as the DBA we get blamed for everything :)&lt;/P&gt;&lt;img src="http://sqljunkies.com/WebLog/aggbug.aspx?PostID=7355" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://sqljunkies.com/WebLog/joshcrosby/commentrss.aspx?PostID=7355</wfw:commentRss></entry><entry><title>Wait Types Explained...</title><link rel="alternate" type="text/html" href="http://sqljunkies.com/WebLog/joshcrosby/archive/2005/01/12/6226.aspx" /><id>d2584c15-f6ef-46f7-a2d4-24fc0e143e76:6226</id><created>2005-01-12T12:52:00Z</created><content type="text/html" mode="escaped">Check out this link for wait types &lt;A href="http://www.sqldev.net/articles/WaitTypes.htm"&gt;http://www.sqldev.net/articles/WaitTypes.htm&lt;/A&gt;&lt;img src="http://sqljunkies.com/WebLog/aggbug.aspx?PostID=6226" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://sqljunkies.com/WebLog/joshcrosby/commentrss.aspx?PostID=6226</wfw:commentRss></entry><entry><title>Blog Spamming....</title><link rel="alternate" type="text/html" href="http://sqljunkies.com/WebLog/joshcrosby/archive/2005/01/11/6162.aspx" /><id>d2584c15-f6ef-46f7-a2d4-24fc0e143e76:6162</id><created>2005-01-11T08:24:00Z</created><content type="text/html" mode="escaped">&lt;FONT color=#000000&gt;k so i got this rediculous spam from &lt;U&gt;83.14.248.24 &lt;/U&gt;I hate assholes like this, anyhelp in trying to stop thes pricks, please drop a line.&lt;/FONT&gt;&lt;img src="http://sqljunkies.com/WebLog/aggbug.aspx?PostID=6162" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://sqljunkies.com/WebLog/joshcrosby/commentrss.aspx?PostID=6162</wfw:commentRss></entry><entry><title>Recovery reverts from Full to Simple...</title><link rel="alternate" type="text/html" href="http://sqljunkies.com/WebLog/joshcrosby/archive/2004/11/24/5266.aspx" /><id>d2584c15-f6ef-46f7-a2d4-24fc0e143e76:5266</id><created>2004-11-24T12:06:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;I feel like a complete idiot now, but all day today I have been pretty frustrated.&lt;/P&gt;
&lt;P&gt;I set up my nice little script to do backups on my servers, it does a full weekly backup, a nightly dif and hourly logs. My problem, :) couldn't figure out why my log backups were failing, kept giving me a message &lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#ff0000 size=2&gt;&amp;nbsp;BACKUP LOG is terminating abnormally. [SQLSTATE 42000] (Error 3013)&amp;nbsp; The statement BACKUP LOG is not allowed while the recovery model is SIMPLE. Use BACKUP DATABASE or change the recovery model using ALTER DATABASE. [SQLSTATE 42000] (Error 4208)&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;WTF, Why is this happening? I checked my recovery model to verify it was in Full recovery model, nope it wasn't so I changed it back to full and restarted my backup job to catch those logs. Failed again, checked recovery model and sure enough it was in simple mode again.&lt;/P&gt;
&lt;P&gt;So I began looking through my script which is about 19 pages long and noticed that I was running this little statement before I was executing my backup log routine. &lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#ff0000 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;set @cmd = 'exec master..sp_dboption ' + quotename(@dbname,'''') + ', ''trunc. log on chkpt'', ''true'''&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;exec (@cmd)&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;So when trying to do a full backup with diffs and logs make sure you don't do what I did...&lt;/P&gt;&lt;img src="http://sqljunkies.com/WebLog/aggbug.aspx?PostID=5266" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://sqljunkies.com/WebLog/joshcrosby/commentrss.aspx?PostID=5266</wfw:commentRss></entry><entry><title>sp_MsForeach(table/db) cursor problems</title><link rel="alternate" type="text/html" href="http://sqljunkies.com/WebLog/joshcrosby/archive/2004/11/11/5096.aspx" /><id>d2584c15-f6ef-46f7-a2d4-24fc0e143e76:5096</id><created>2004-11-11T19:23:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;Wow, most of you may know this but I did not so that's why I'm whining about it :)&lt;/P&gt;
&lt;P&gt;Looks like you can't use them in a nested sort of way, they both use the same cursor name, WTF were they thinking? anyway to make this more clearer :) here is an example of what you CAN'T do (psuedo).&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;exec sp_msforeachdb&lt;BR&gt;&amp;nbsp;&amp;nbsp; exec sp_msforeachtable @command1=&amp;#8220;print '?' DBCC REINDEX(?)&amp;#8220;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Here is a working sample of what you can do.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;create procedure spRebuildIndexesForAllDbs&lt;BR&gt;as&lt;BR&gt;/*&lt;BR&gt;&amp;nbsp;Author:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Josh Crosby&lt;BR&gt;&amp;nbsp;Description:&amp;nbsp;This is used to reindex all tables on all databases. It would make&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sense to run sp_Msforeachdb grab the database name and then run&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sp_Msforeachtable but if you attempt to do this you will get an error&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;like this.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Server: Msg 16915, Level 16, State 1, Line 1&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A cursor with the name 'hCForEach' already exists.&lt;BR&gt;*/&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;declare @sql&amp;nbsp; nvarchar(4000)&lt;BR&gt;set @sql = ''&lt;BR&gt;&amp;nbsp;select @sql = @sql + 'exec ' + name + '..sp_msforeachtable @command1=''dbcc dbreindex (''''*'''')'', @replacechar=''*''' + char(13)&lt;BR&gt;from master..sysdatabases&lt;BR&gt;print @sql&lt;BR&gt;exec (@sql)&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://sqljunkies.com/WebLog/aggbug.aspx?PostID=5096" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://sqljunkies.com/WebLog/joshcrosby/commentrss.aspx?PostID=5096</wfw:commentRss></entry><entry><title>SQL Server interview questions...</title><link rel="alternate" type="text/html" href="http://sqljunkies.com/WebLog/joshcrosby/archive/2004/10/23/4754.aspx" /><id>d2584c15-f6ef-46f7-a2d4-24fc0e143e76:4754</id><created>2004-10-23T08:04:00Z</created><content type="text/html" mode="escaped">&lt;A href="http://sqljunkies.com/WebLog/joshcrosby/admin/EditPosts.aspx#top"&gt;&lt;/A&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;I ran across this and thought it would be helpful for those of you looking for a DBA job - Original article from &lt;/FONT&gt;&lt;A href="http://vyaskn.tripod.com/iq.htm"&gt;&lt;FONT face=Arial&gt;http://vyaskn.tripod.com/iq.htm&lt;/FONT&gt;&lt;/A&gt; 
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Questions are categorized under the following sections, for your convenience:&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;
&lt;TABLE cellPadding=4 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;A href="http://vyaskn.tripod.com/iq.htm#DBDesign"&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;Database design&lt;/FONT&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT face=Arial&gt;&lt;FONT color=#000000 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=1&gt;8 questions&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;A href="http://vyaskn.tripod.com/iq.htm#Architecture"&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;SQL Server architecture&lt;/FONT&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#000000 size=1&gt;(12 questions)&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;A href="http://vyaskn.tripod.com/iq.htm#DBAdmin"&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;Database administration&lt;/FONT&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#000000 size=1&gt;(13 questions)&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;A href="http://vyaskn.tripod.com/iq.htm#DBProg"&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;Database programming&lt;/FONT&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#000000 size=1&gt;(10 questions)&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;DIV align=center&gt;
&lt;CENTER&gt;
&lt;TABLE cellPadding=10 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;A name=DBDesign&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;&lt;U&gt;Database design&lt;/U&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial color=#000000 size=1&gt; &lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;A href="http://sqljunkies.com/WebLog/joshcrosby/archive/2004/10/23/4754.aspx#top"&gt;&lt;FONT face=Arial color=#0000ff size=1&gt;(top)&lt;/FONT&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/CENTER&gt;&lt;/DIV&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What is normalization? Explain different levels of normalization?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial color=#000000 size=2&gt;Check out the article Q100139 from &lt;A title=Microsoft href="http://msdn.microsoft.com/" target=_blank&gt;&lt;A title=Microsoft href="http://msdn.microsoft.com/" target=_blank&gt;&lt;A title=Microsoft href="http://msdn.microsoft.com" target=_blank&gt;&lt;a title="Microsoft" href="http://msdn.microsoft.com" target="_blank"&gt;Microsoft&lt;/a&gt;&lt;/A&gt;&lt;/A&gt;&lt;/A&gt; knowledge base and of course, there's much more information available in the net. It'll be a good idea to get a hold of any RDBMS fundamentals text book, especially the one by C. J. Date. Most of the times, it will be okay if you can explain till third normal form.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What is denormalization and when would you go for it?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial color=#000000 size=2&gt;As the name indicates, denormalization is the reverse process of normalization. It's the controlled introduction of redundancy in to the database design. It helps improve the query performance as the number of joins could be reduced.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;How do you implement one-to-one, one-to-many and many-to-many relationships while designing tables?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial color=#000000 size=2&gt;One-to-One relationship can be implemented as a single table and rarely as two tables with primary and foreign key relationships.&lt;BR&gt;One-to-Many relationships are implemented by splitting the data into two tables with primary key and foreign key relationships.&lt;BR&gt;Many-to-Many relationships are implemented using a junction table with the keys from both the tables forming the composite primary key of the junction table.&lt;BR&gt;&lt;BR&gt;It will be a good idea to read up a database designing fundamentals text book.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What's the difference between a primary key and a unique key?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;Both primary key and unique enforce uniqueness of the column on which they are defined. But by default primary key creates a clustered index on the column, where are unique creates a nonclustered index by default. Another major difference is that, primary key doesn't allow NULLs, but unique key allows one NULL only.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What are user defined datatypes and when you should go for them?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;User defined datatypes let you extend the base SQL Server datatypes by providing a descriptive name, and format to the database. Take for example, in your database, there is a column called Flight_Num which appears in many tables. In all these tables it should be varchar(8). In this case you could create a user defined datatype called Flight_num_type of varchar(8) and use it across all your tables.&amp;nbsp;&lt;BR&gt;&lt;BR&gt;See sp_addtype, sp_droptype in books online.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What is bit datatype and what's the information that can be stored inside a bit column?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;Bit datatype is used to store boolean information like 1 or 0 (true or false). Untill SQL Server 6.5 bit datatype could hold either a 1 or 0 and there was no support for NULL. But from SQL Server 7.0 onwards, bit datatype can represent a third state, which is NULL.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;Define candidate key, alternate key, composite key.&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;A candidate key is one that can identify each row of a table uniquely. Generally a candidate key becomes the primary key of the table. If the table has more than one candidate key, one of them will become the primary key, and the rest are called alternate keys.&amp;nbsp;&lt;BR&gt;&lt;BR&gt;A key formed by combining at least two or more columns is called composite key.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What are defaults? Is there a column to which a default can't be bound?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;A default is a value that will be used by a column, if no value is supplied to that column while inserting data. IDENTITY columns and timestamp columns can't have defaults bound to them. See CREATE DEFUALT in books online.&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://sqljunkies.com/WebLog/joshcrosby/archive/2004/10/23/4754.aspx#top"&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;&lt;U&gt;Back to top&lt;/U&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;DIV align=center&gt;
&lt;CENTER&gt;
&lt;TABLE cellPadding=10 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;A name=Architecture&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;&lt;U&gt;SQL Server architecture&lt;/U&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;A href="http://sqljunkies.com/WebLog/joshcrosby/archive/2004/10/23/4754.aspx#top"&gt;&lt;FONT face=Arial color=#0000ff size=1&gt;(top)&lt;/FONT&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/CENTER&gt;&lt;/DIV&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What is a transaction and what are ACID properties?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial color=#000000 size=2&gt;A transaction is a logical unit of work in which, all the steps must be performed or none. ACID stands for Atomicity, Consistency, Isolation, Durability. These are the properties of a transaction. For more information and explanation of these properties, see SQL Server books online or any RDBMS fundamentals text book. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;Explain different isolation levels&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial color=#000000 size=2&gt;An isolation level determines the degree of isolation of data between concurrent transactions. The default SQL Server isolation level is Read Committed. Here are the other isolation levels (in the ascending order of isolation): Read Uncommitted, Read Committed, Repeatable Read, Serializable. See SQL Server books online for an explanation of the isolation levels. Be sure to read about SET TRANSACTION ISOLATION LEVEL, which lets you customize the isolation level at the connection level.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;CREATE INDEX myIndex ON myTable(myColumn)&lt;BR&gt;&lt;BR&gt;What type of Index will get created after executing the above statement?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial color=#000000 size=2&gt;Non-clustered index. Important thing to note: By default a clustered index gets created on the primary key, unless specified otherwise.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What's the maximum size of a row?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial color=#000000 size=2&gt;8060 bytes. Don't be surprised with questions like 'what is the maximum number of columns per table'. Check out SQL Server books online for the page titled: "Maximum Capacity Specifications".&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;Explain Active/Active and Active/Passive cluster configurations&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial color=#000000 size=2&gt;Hopefully you have experience setting up cluster servers. But if you don't, at least be familiar with the way clustering works and the two clusterning configurations Active/Active and Active/Passive. SQL Server books online has enough information on this topic and there is a good white paper available on &lt;A title=Microsoft href="http://msdn.microsoft.com/" target=_blank&gt;&lt;A title=Microsoft href="http://msdn.microsoft.com/" target=_blank&gt;&lt;A title=Microsoft href="http://msdn.microsoft.com" target=_blank&gt;&lt;a title="Microsoft" href="http://msdn.microsoft.com" target="_blank"&gt;Microsoft&lt;/a&gt;&lt;/A&gt;&lt;/A&gt;&lt;/A&gt; site.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;Explain the architecture of SQL Server&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial color=#000000 size=2&gt;This is a very important question and you better be able to answer it if consider yourself a DBA. SQL Server books online is the best place to read about SQL Server architecture. Read up the chapter dedicated to SQL Server Architecture.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What is lock escalation?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;Lock escalation is the process of converting a lot of low level locks (like row locks, page locks) into higher level locks (like table locks). Every lock is a memory structure too many locks would mean, more memory being occupied by locks. To prevent this from happening, SQL Server escalates the many fine-grain locks to fewer coarse-grain locks. Lock escalation threshold was definable in SQL Server 6.5, but from SQL Server 7.0 onwards it's dynamically managed by SQL Server.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What's the difference between DELETE TABLE and TRUNCATE TABLE commands?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;DELETE TABLE is a logged operation, so the deletion of each row gets logged in the transaction log, which makes it slow. TRUNCATE TABLE also deletes all the rows in a table, but it won't log the deletion of each row, instead it logs the deallocation of the data pages of the table, which makes it faster. Of course, TRUNCATE TABLE can be rolled back.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;Explain the storage models of OLAP&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial color=#000000 size=2&gt;Check out MOLAP, ROLAP and HOLAP in SQL Server books online for more infomation.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What are the new features introduced in SQL Server 2000 (or the latest release of SQL Server at the time of your interview)? What changed between the previous version of SQL Server and the current version?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;This question is generally asked to see how current is your knowledge. Generally there is a section in the beginning of the books online titled "What's New", which has all such information. Of course, reading just that is not enough, you should have tried those things to better answer the questions. Also check out the section titled "Backward Compatibility" in books online which talks about the changes that have taken place in the new version.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What are constraints? Explain different types of constraints.&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;Constraints enable the RDBMS enforce the integrity of the database automatically, without needing you to create triggers, rule or defaults. &lt;BR&gt;&lt;BR&gt;Types of constraints: NOT NULL, CHECK, UNIQUE, PRIMARY KEY, FOREIGN KEY&lt;BR&gt;&lt;BR&gt;For an explanation of these constraints see books online for the pages titled: "Constraints" and "CREATE TABLE", "ALTER TABLE"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;Whar is an index? What are the types of indexes? How many clustered indexes can be created on a table? I create a separate index on each column of a table. what are the advantages and disadvantages of this approach?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;Indexes in SQL Server are similar to the indexes in books. They help SQL Server retrieve the data quicker.&lt;BR&gt;&lt;BR&gt;Indexes are of two types. Clustered indexes and non-clustered indexes. When you craete a clustered index on a table, all the rows in the table are stored in the order of the clustered index key. So, there can be only one clustered index per table. Non-clustered indexes have their own storage separate from the table data storage. Non-clustered indexes are stored as B-tree structures (so do clustered indexes), with the leaf level nodes having the index key and it's row locater. The row located could be the RID or the Clustered index key, depending up on the absence or presence of clustered index on the table.&lt;BR&gt;&lt;BR&gt;If you create an index on each column of a table, it improves the query performance, as the query optimizer can choose from all the existing indexes to come up with an efficient execution plan. At the same t ime, data modification operations (such as INSERT, UPDATE, DELETE) will become slow, as every time data changes in the table, all the indexes need to be updated. Another disadvantage is that, indexes need disk space, the more indexes you have, more disk space is used.&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://sqljunkies.com/WebLog/joshcrosby/archive/2004/10/23/4754.aspx#top"&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;&lt;U&gt;Back to top&lt;/U&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;DIV align=center&gt;
&lt;CENTER&gt;
&lt;TABLE cellPadding=10 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;A name=DBAdmin&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;&lt;U&gt;Database administration&lt;/U&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;A href="http://sqljunkies.com/WebLog/joshcrosby/archive/2004/10/23/4754.aspx#top"&gt;&lt;FONT face=Arial color=#0000ff size=1&gt;(top)&lt;/FONT&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/CENTER&gt;&lt;/DIV&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What is RAID and what are different types of RAID configurations?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial color=#000000 size=2&gt;RAID stands for Redundant Array of Inexpensive Disks, used to provide fault tolerance to database servers. There are six RAID levels 0 through 5 offering different levels of performance, fault tolerance. MSDN has some information about RAID levels and for detailed information, check out the &lt;/FONT&gt;&lt;A href="http://www.raid-advisory.com/" target=_new&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;RAID advisory board's homepage&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What are the steps you will take to improve performance of a poor performing query?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial color=#000000 size=2&gt;This is a very open ended question and there could be a lot of reasons behind the poor performance of a query. But some general issues that you could talk about would be: No indexes, table scans, missing or out of date statistics, blocking, excess recompilations of stored procedures, procedures and triggers without SET NOCOUNT ON, poorly written query with unnecessarily complicated joins, too much normalization, excess usage of cursors and temporary tables.&lt;BR&gt;&lt;BR&gt;Some of the tools/ways that help you troubleshooting performance problems are: SET SHOWPLAN_ALL ON, SET SHOWPLAN_TEXT ON, SET STATISTICS IO ON, SQL Server Profiler, Windows NT /2000 Performance monitor, Graphical execution plan in Query Analyzer.&lt;BR&gt;&lt;BR&gt;Download the white paper on performance tuning SQL Server from &lt;A title=Microsoft href="http://msdn.microsoft.com/" target=_blank&gt;&lt;A title=Microsoft href="http://msdn.microsoft.com/" target=_blank&gt;&lt;A title=Microsoft href="http://msdn.microsoft.com" target=_blank&gt;&lt;a title="Microsoft" href="http://msdn.microsoft.com" target="_blank"&gt;Microsoft&lt;/a&gt;&lt;/A&gt;&lt;/A&gt;&lt;/A&gt; web site. Don't forget to check out &lt;/FONT&gt;&lt;A href="http://www.sql-server-performance.com/" target=_new&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;sql-server-performance.com&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What are the steps you will take, if you are tasked with securing an SQL Server?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial color=#000000 size=2&gt;Again this is another open ended question. Here are some things you could talk about: Preferring NT authentication, using server, databse and application roles to control access to the data, securing the physical database files using NTFS permissions, using an unguessable SA password, restricting physical access to the SQL Server, renaming the Administrator account on the SQL Server computer, disabling the Guest account, enabling auditing, using multiprotocol encryption, setting up SSL, setting up firewalls, isolating SQL Server from the web server etc.&lt;BR&gt;&lt;BR&gt;Read the white paper on SQL Server security from &lt;A title=Microsoft href="http://msdn.microsoft.com/" target=_blank&gt;&lt;A title=Microsoft href="http://msdn.microsoft.com/" target=_blank&gt;&lt;A title=Microsoft href="http://msdn.microsoft.com" target=_blank&gt;&lt;a title="Microsoft" href="http://msdn.microsoft.com" target="_blank"&gt;Microsoft&lt;/a&gt;&lt;/A&gt;&lt;/A&gt;&lt;/A&gt; website. Also check out &lt;/FONT&gt;&lt;A href="http://vyaskn.tripod.com/sql_server_security_best_practices.htm" target=_new&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;My SQL Server security best practices&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What is a deadlock and what is a live lock? How will you go about resolving deadlocks?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial color=#000000 size=2&gt;Deadlock is a situation when two processes, each having a lock on one piece of data, attempt to acquire a lock on the other's piece. Each process&amp;nbsp; would wait indefinitely for the other to release the lock, unless one of the user processes is terminated. SQL Server detects deadlocks and terminates one user's process.&lt;BR&gt;&lt;BR&gt;A livelock is one, where a&amp;nbsp; request for an exclusive lock is repeatedly denied because a series of overlapping shared locks keeps interfering. SQL Server detects the situation after four denials and refuses further shared locks. A livelock also occurs when read transactions monopolize a table or page, forcing a write transaction to wait indefinitely.&lt;BR&gt;&lt;BR&gt;Check out SET DEADLOCK_PRIORITY and "Minimizing Deadlocks"&amp;nbsp; in SQL Server books online. Also check out the article Q169960 from &lt;A title=Microsoft href="http://msdn.microsoft.com/" target=_blank&gt;&lt;A title=Microsoft href="http://msdn.microsoft.com/" target=_blank&gt;&lt;A title=Microsoft href="http://msdn.microsoft.com" target=_blank&gt;&lt;a title="Microsoft" href="http://msdn.microsoft.com" target="_blank"&gt;Microsoft&lt;/a&gt;&lt;/A&gt;&lt;/A&gt;&lt;/A&gt; knowledge base.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What is blocking and how would you troubleshoot it?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;Blocking happens when one connection from an application holds a lock and a second connection requires a conflicting lock type. This forces the second connection to wait, blocked on the first.&amp;nbsp;&lt;BR&gt;&lt;BR&gt;Read up the following topics in SQL Server books online: Understanding and avoiding blocking, Coding efficient transactions.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;Explain CREATE DATABASE syntax&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;Many of us are used to craeting databases from the Enterprise Manager or by just issuing the command: CREATE DATABAE MyDB. But what if you have to create a database with two filegroups, one on drive C and the other on drive D with log on drive E with an initial size of 600 MB and with a growth factor of 15%? That's why being a DBA you should be familiar with the CREATE DATABASE syntax. Check out SQL Server books online for more information.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;How to restart SQL Server in single user mode? How to start SQL Server in minimal configuration mode?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;SQL Server can be started from command line, using the SQLSERVR.EXE. This EXE has some very important parameters with which a DBA should be familiar with. -m is used for starting SQL Server in single user mode and -f is used to start the SQL Server in minimal confuguration mode. Check out SQL Server books online for more parameters and their explanations.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;As a part of your job, what are the DBCC commands that you commonly use for database maintenance?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;DBCC CHECKDB, DBCC CHECKTABLE, DBCC CHECKCATALOG, DBCC CHECKALLOC, DBCC SHOWCONTIG, DBCC SHRINKDATABASE, DBCC SHRINKFILE etc. But there are a whole load of DBCC commands which are very useful for DBAs. Check out SQL Server books online for more information.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What are statistics, under what circumstances they go out of date, how do you update them?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;Statistics determine the selectivity of the indexes. If an indexed column has unique values then the selectivity of that index is more, as opposed to an index with non-unique values. Query optimizer uses these indexes in determining whether to choose an index or not while executing a query.&amp;nbsp;&lt;BR&gt;&lt;BR&gt;Some situations under which you should update statistics:&lt;BR&gt;1) If there is significant change in the key values in the index&lt;BR&gt;2) If a large amount of data in an indexed column has been added, changed, or removed (that is, if the distribution of key values has changed), or the table has been truncated using the TRUNCATE TABLE statement and then repopulated&lt;BR&gt;3) Database is upgraded from a previous version&lt;BR&gt;&lt;BR&gt;Look up SQL Server books online for the following commands: UPDATE STATISTICS, STATS_DATE, DBCC SHOW_STATISTICS, CREATE STATISTICS, DROP STATISTICS, sp_autostats, sp_createstats, sp_updatestats&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What are the different ways of moving data/databases between servers and databases in SQL Server?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;There are lots of options available, you have to choose your option depending upon your requirements. Some of the options you have are: BACKUP/RESTORE, dettaching and attaching databases, replication, DTS, BCP, logshipping, INSERT...SELECT, SELECT...INTO, creating INSERT scripts to generate data.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;Explian different types of BACKUPs avaialabe in SQL Server? Given a particular scenario, how would you go about choosing a backup plan?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;Types of backups you can create in SQL Sever 7.0+ are Full database backup, differential database backup, transaction log backup, filegroup backup. Check out the BACKUP and RESTORE commands in SQL Server books online. Be prepared to write the commands in your interview. Books online also has information on detailed backup/restore architecture and when one should go for a particular kind of backup.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What is database replicaion? What are the different types of replication you can set up in SQL Server?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;Replication is the process of copying/moving data between databases on the same or different servers. SQL Server supports the following types of replication scenarios:&lt;/FONT&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;Snapshot replication&lt;/FONT&gt; &lt;/FONT&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;Transactional replication (with immediate updating subscribers, with queued updating subscribers)&lt;/FONT&gt; &lt;/FONT&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;Merge replication&lt;/FONT&gt; &lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;See SQL Server books online for indepth coverage on replication. Be prepared to explain how different replication agents function, what are the main system tables used in replication etc.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;How to determine the service pack currently installed on SQL Server?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial color=#000000 size=2&gt;The global variable @@Version stores the build number of the sqlservr.exe, which is used to determine the service pack installed. To know more about this process visit &lt;/FONT&gt;&lt;A href="http://vyaskn.tripod.com/sqlsps.htm"&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;SQL Server service packs and versions.&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://sqljunkies.com/WebLog/joshcrosby/archive/2004/10/23/4754.aspx#top"&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;Back to top&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;DIV align=center&gt;
&lt;CENTER&gt;
&lt;TABLE cellPadding=10 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;A name=DBProg&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;&lt;U&gt;Database programming&lt;/U&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;A href="http://sqljunkies.com/WebLog/joshcrosby/archive/2004/10/23/4754.aspx#top"&gt;&lt;FONT face=Arial color=#0000ff size=1&gt;(top)&lt;/FONT&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/CENTER&gt;&lt;/DIV&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What are cursors? Explain different types of cursors. What are the disadvantages of cursors? How can you avoid cursors?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;Cursors allow row-by-row prcessing of the resultsets.&lt;BR&gt;&lt;BR&gt;Types of cursors: Static, Dynamic, Forward-only, Keyset-driven. See books online for more information.&lt;BR&gt;&lt;BR&gt;Disadvantages of cursors: Each time you fetch a row from the cursor, it results in a network roundtrip, where as a normal SELECT query makes only one rowundtrip, however large the resultset is. Cursors are also costly because they require more resources and temporary storage (results in more IO operations). Furthere, there are restrictions on the SELECT statements that can be used with some types of cursors.&lt;BR&gt;&lt;BR&gt;Most of the times, set based operations can be used instead of cursors. Here is an example:&lt;BR&gt;&lt;BR&gt;If you have to give a flat hike to your employees using the following criteria:&lt;BR&gt;&lt;BR&gt;Salary between 30000 and 40000 -- 5000 hike&lt;BR&gt;Salary between 40000 and 55000 -- 7000 hike&lt;BR&gt;Salary between 55000 and 65000 -- 9000 hike&lt;BR&gt;&lt;BR&gt;In this situation many developers tend to use a cursor, determine each employee's salary and update his salary according to the above formula. But the same can be achieved by multiple update statements or can be combined in a single UPDATE statement as shown below:&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT color=#0000ff size=2&gt;UPDATE tbl_emp SET salary = &lt;BR&gt;CASE WHEN salary BETWEEN 30000 AND 40000 THEN salary + 5000&lt;BR&gt;WHEN salary BETWEEN 40000 AND 55000 THEN salary + 7000&lt;BR&gt;WHEN salary BETWEEN 55000 AND 65000 THEN salary + 10000&lt;BR&gt;END&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Another situation in which developers tend to use cursors: You need to call a stored procedure when a column in a particular row meets certain condition. You don't have to use cursors for this. This can be achieved using WHILE loop, as long as there is a unique key to identify each row. For examples of using WHILE loop for row by row processing, check out the '&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://vyaskn.tripod.com/code.htm"&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;My code library&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt;' section of my site or &lt;/FONT&gt;&lt;A href="http://vyaskn.tripod.com/search.htm"&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;search&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt; for WHILE.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;Write down the general syntax for a SELECT statements covering all the options.&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;Here's the basic syntax: (Also checkout SELECT in books online for advanced syntax).&lt;BR&gt;&lt;BR&gt;SELECT select_list&lt;BR&gt;[INTO new_table_]&lt;BR&gt;FROM table_source&lt;BR&gt;[WHERE search_condition]&lt;BR&gt;[GROUP BY group_by_expression]&lt;BR&gt;[HAVING search_condition]&lt;BR&gt;[ORDER BY order_expression [ASC | DESC] ]&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What is a join and explain different types of joins.&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;Joins are used in queries to explain how different tables are related. Joins also let you select data from a table depending upon data from another table. &lt;BR&gt;&lt;BR&gt;Types of joins: INNER JOINs, OUTER JOINs, CROSS JOINs. OUTER JOINs are further classified as LEFT OUTER JOINS, RIGHT OUTER JOINS and FULL OUTER JOINS.&lt;BR&gt;&lt;BR&gt;For more information see pages from books online titled: "Join Fundamentals" and "Using Joins".&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;Can you have a nested transaction?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;Yes, very much. Check out BEGIN TRAN, COMMIT, ROLLBACK, SAVE TRAN and @@TRANCOUNT&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What is an extended stored procedure? Can you instantiate a COM object by using T-SQL?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;An extended stored procedure is a function within a DLL (written in a programming language like C, C++ using Open Data Services (ODS) API) that can be called from T-SQL, just the way we call normal stored procedures using the EXEC statement. See books online to learn how to create extended stored procedures and how to add them to SQL Server. &lt;BR&gt;&lt;BR&gt;Yes, you can instantiate a COM (written in languages like VB, VC++) object from T-SQL by using sp_OACreate stored procedure. Also see books online for sp_OAMethod, sp_OAGetProperty, sp_OASetProperty, sp_OADestroy. For an example of creating a COM object in VB and calling it from T-SQL, see '&lt;/FONT&gt;&lt;A href="http://vyaskn.tripod.com/code.htm"&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;My code library&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt;' section of this site. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What is the system function to get the current user's user id?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;USER_ID(). Also check out other system functions like USER_NAME(), SYSTEM_USER, SESSION_USER, CURRENT_USER, USER, SUSER_SID(), HOST_NAME(). &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What are triggers? How many triggers you can have on a table? How to invoke a trigger on demand?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;Triggers are special kind of stored procedures that get executed automatically when an INSERT, UPDATE or DELETE operation takes place on a table.&amp;nbsp;&lt;BR&gt;&lt;BR&gt;In SQL Server 6.5 you could define only 3 triggers per table, one for INSERT, one for UPDATE and one for DELETE. From SQL Server 7.0 onwards, this restriction is gone, and you could create multiple triggers per each action. But in 7.0 there's no way to control the order in which the triggers fire. In SQL Server 2000 you could specify which trigger fires first or fires last using sp_settriggerorder&lt;BR&gt;&lt;BR&gt;Triggers can't be invoked on demand. They get triggered only when an associated action (INSERT, UPDATE, DELETE) happens on the table on which they are defined.&lt;BR&gt;&lt;BR&gt;Triggers are generally used to implement business rules, auditing. Triggers can also be used to extend the referential integrity checks, but wherever possible, use constraints for this purpose, instead of triggers, as constraints are much faster.&lt;BR&gt;&lt;BR&gt;Till SQL Server 7.0, triggers fire only after the data modification operation happens. So in a way, they are called post triggers. But in SQL Server 2000 you could create pre triggers also. Search SQL Server 2000 books online for INSTEAD OF triggers.&amp;nbsp;&lt;BR&gt;&lt;BR&gt;Also check out books online for 'inserted table', 'deleted table' and COLUMNS_UPDATED()&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;There is a trigger defined for INSERT operations on a table, in an OLTP system. The trigger is written to instantiate a COM object and pass the newly insterted rows to it for some custom processing. What do you think of this implementation? Can this be implemented better?&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;Instantiating COM objects is a time consuming process and since you are doing it from within a trigger, it slows down the data insertion process. Same is the case with sending emails from triggers. This scenario can be better implemented by logging all the necessary data into a separate table, and have a job which periodically checks this table and does the needful.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE width="100%" bgColor=#dbf8c9 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;What is a self join? Explain it with an example.&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Arial size=2&gt;Self join is just like any other join, except that two instances of the same table will be joined in the query. Here is an example: Employees table which contains rows for normal employees as well as managers. So, to find out the managers of all the employees, you need a self join.&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;BR&gt;&lt;FONT face=Arial&gt;CREATE TABLE emp&amp;nbsp;&lt;BR&gt;(&lt;BR&gt;empid int,&lt;BR&gt;mgrid int,&lt;BR&gt;empname char(10)&lt;BR&gt;)&lt;BR&gt;&lt;BR&gt;INSERT emp SELECT 1,2,'Vyas'&lt;BR&gt;INSERT emp SELECT 2,3,'Mohan'&lt;BR&gt;INSERT emp SELECT 3,NULL,'Shobha'&lt;BR&gt;INSERT emp SELECT 4,2,'Shridhar'&lt;BR&gt;INSERT emp SELECT 5,2,'Sourabh'&lt;BR&gt;&lt;BR&gt;SELECT t1.empname [Employee], t2.empname [Manager]&lt;BR&gt;FROM emp t1, emp t2&lt;BR&gt;WHERE t1.mgrid = t2.empid&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;Here's an advanced query using a LEFT OUTER JOIN that even returns the employees without managers (super bosses)&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT color=blue size=2&gt;SELECT t1.empname [Employee], COALESCE(t2.empname, 'No manager') [Manager]&lt;BR&gt;FROM emp t1 &lt;BR&gt;LEFT OUTER JOIN&lt;BR&gt;emp t2&lt;BR&gt;ON &lt;BR&gt;t1.mgrid = t2.empid&lt;/FONT&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://sqljunkies.com/WebLog/aggbug.aspx?PostID=4754" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://sqljunkies.com/WebLog/joshcrosby/commentrss.aspx?PostID=4754</wfw:commentRss></entry><entry><title>Getting back to normal.</title><link rel="alternate" type="text/html" href="http://sqljunkies.com/WebLog/joshcrosby/archive/2004/06/11/3072.aspx" /><id>d2584c15-f6ef-46f7-a2d4-24fc0e143e76:3072</id><created>2004-06-11T15:45:00Z</created><content type="text/html" mode="escaped">&lt;DIV&gt;My back is starting to feel a ton better and actually benefited from the downtime. I was able to study and learn a ton. I need to take some well overdue tests.&lt;/DIV&gt;&lt;img src="http://sqljunkies.com/WebLog/aggbug.aspx?PostID=3072" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://sqljunkies.com/WebLog/joshcrosby/commentrss.aspx?PostID=3072</wfw:commentRss></entry><entry><title>Back Surgery Sucks...</title><link rel="alternate" type="text/html" href="http://sqljunkies.com/WebLog/joshcrosby/archive/2004/05/20/2620.aspx" /><id>d2584c15-f6ef-46f7-a2d4-24fc0e143e76:2620</id><created>2004-05-20T12:12:00Z</created><content type="text/html" mode="escaped">&lt;DIV&gt;I just got out of the hospital yesterday for back surgery (lower back) and man am I in some pain, currently typing this message from my belly. I knew drinking beer would some day come in handy :)&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Looks like I will also have some time to study as well.&lt;/DIV&gt;&lt;img src="http://sqljunkies.com/WebLog/aggbug.aspx?PostID=2620" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://sqljunkies.com/WebLog/joshcrosby/commentrss.aspx?PostID=2620</wfw:commentRss></entry><entry><title>Great article for a newbie on SQL Do's and Don'ts...</title><link rel="alternate" type="text/html" href="http://sqljunkies.com/WebLog/joshcrosby/archive/2004/04/03/1918.aspx" /><id>d2584c15-f6ef-46f7-a2d4-24fc0e143e76:1918</id><created>2004-04-03T16:56:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;&lt;A href="http://www.codeproject.com/cs/database/sqldodont.asp"&gt;http://www.codeproject.com/cs/database/sqldodont.asp&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://sqljunkies.com/WebLog/aggbug.aspx?PostID=1918" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://sqljunkies.com/WebLog/joshcrosby/commentrss.aspx?PostID=1918</wfw:commentRss></entry><entry><title>Googled myself :)</title><link rel="alternate" type="text/html" href="http://sqljunkies.com/WebLog/joshcrosby/archive/2004/03/30/1851.aspx" /><id>d2584c15-f6ef-46f7-a2d4-24fc0e143e76:1851</id><created>2004-03-30T15:11:00Z</created><content type="text/html" mode="escaped">Just out of curiousity, try it very interesting...&lt;img src="http://sqljunkies.com/WebLog/aggbug.aspx?PostID=1851" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://sqljunkies.com/WebLog/joshcrosby/commentrss.aspx?PostID=1851</wfw:commentRss></entry><entry><title>Been out and not to Lunch...</title><link rel="alternate" type="text/html" href="http://sqljunkies.com/WebLog/joshcrosby/archive/2004/03/30/1850.aspx" /><id>d2584c15-f6ef-46f7-a2d4-24fc0e143e76:1850</id><created>2004-03-30T14:18:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;Man I have been busy! I have been working on a side job that is just kicking my ass and haven't had time for much studying.&lt;/P&gt;
&lt;P&gt;Next week I will be working on a interface and command line utility using Red Gate software integration kit. More to come :) this may even be a good How To article who knows, better yet for the C# gurus, if you have already done this SEND ME SOME CODE :) I'm a pure believer&amp;nbsp;that if somebody else has already done this, why re-do it, unless it is to fix it. But for you guys I'm sure that's not the case.&lt;/P&gt;
&lt;P&gt;If you have never used or heard of Red-Gate Software, which I doubt because it is a Site Sponsor, click on one of the Links to find out what it is and better yet Download the trial. For the price of this utility being so minimal I believe it should be in every DBA's software goodies, I use it daily and has saved my butt more than a few times.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.red-gate.com"&gt;http://www.red-gate.com&lt;/A&gt;&lt;A href="http://www.red-gate.com/"&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://sqljunkies.com/WebLog/aggbug.aspx?PostID=1850" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://sqljunkies.com/WebLog/joshcrosby/commentrss.aspx?PostID=1850</wfw:commentRss></entry><entry><title>about #Temp tables...</title><link rel="alternate" type="text/html" href="http://sqljunkies.com/WebLog/joshcrosby/archive/2004/03/19/1687.aspx" /><id>d2584c15-f6ef-46f7-a2d4-24fc0e143e76:1687</id><created>2004-03-19T16:16:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;Huh, found out something pretty interesting (I thought) and I'm sure some of you may know this. If you see a couple of posts before, you will notice that I am using temp tables for looping, etc... but I found out that if I create a #temp table in a proc and then drop it at the end (as I did and do) that this will require the stored procedure to recompile every time, which is absolutely the opposite of what a proc should do, you write procs so that it doesn't recompile (in some cases it's good to have it recompile, can't think of any but hear it is :) ).&lt;/P&gt;
&lt;P&gt;So 98% of the time don't drop temp tables in procs if you do not want to recompile, looks like&amp;nbsp;I have a lot of rewriting to do :(&lt;/P&gt;
&lt;P&gt;If you have any comments on this subject please let me know.&amp;nbsp;&lt;/P&gt;&lt;img src="http://sqljunkies.com/WebLog/aggbug.aspx?PostID=1687" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://sqljunkies.com/WebLog/joshcrosby/commentrss.aspx?PostID=1687</wfw:commentRss></entry></feed>