<?xml version="1.0"?>
<!-- RSS generated by Radio UserLand v8.0.8 on Sat, 27 Dec 2003 00:35:15 GMT -->
<rss version="2.0" xmlns:icbm="http://postneo.com/icbm/">
	<channel>
		<title>Dewayne Mikkelson: SQL FAQ</title>
		<link>http://radio.weblogs.com/0101015/categories/sqlFaq/</link>
		<description>SQL stuff I have needed to use recently.</description>
		<copyright>Copyright 2003 Dewayne Mikkelson</copyright>
		<lastBuildDate>Sat, 27 Dec 2003 00:35:15 GMT</lastBuildDate>
		<docs>http://backend.userland.com/rss</docs>
		<generator>Radio UserLand v8.0.8</generator>
		<managingEditor>mikkelsd@yahoo.com</managingEditor>
		<webMaster>mikkelsd@yahoo.com</webMaster>
		<category domain="http://www.weblogs.com/rssUpdates/changes.xml">rssUpdates</category> 
		<skipHours>
			<hour>23</hour>
			<hour>0</hour>
			<hour>1</hour>
			<hour>3</hour>
			<hour>4</hour>
			<hour>22</hour>
			<hour>21</hour>
			<hour>2</hour>
			</skipHours>
		<cloud domain="radio.xmlstoragesystem.com" port="80" path="/RPC2" registerProcedure="xmlStorageSystem.rssPleaseNotify" protocol="xml-rpc"/>
		<ttl>60</ttl>
		<item>
			<title>DBCC Commands.</title>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/11/22.html#a1246</link>
			<description>&lt;P&gt;&amp;nbsp;Hey have a look at the &lt;A href=&quot;http://www.extremeexperts.com/sql/articles/ListDBCCCommands.aspx&quot;&gt;DBCC Commands&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;[&lt;A href=&quot;http://www.sqljunkies.com/weblog&quot;&gt;WebLogs @ SqlJunkies.com&lt;/A&gt;]&lt;BR&gt;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/11/22.html#a1246</guid>
			<pubDate>Sat, 22 Nov 2003 15:29:43 GMT</pubDate>
			<source url="http://sqljunkies.com/weblog/MainFeed.aspx">WebLogs @ SqlJunkies.com</source>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1246&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0101015%2F2003%2F11%2F22.html%23a1246</comments>
			</item>
		<item>
			<title>Faster than speeding light!</title>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/10/31.html#a1223</link>
			<description>&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Source: &lt;/FONT&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;&lt;a href=&quot;http://weblogs.asp.net/ssadasivuni/&quot;&gt;&lt;a href=&quot;http://weblogs.asp.net/ssadasivuni/&quot;&gt;&lt;a href=&quot;http://weblogs.asp.net/ssadasivuni/&quot;&gt;http://weblogs.asp.net/ssadasivuni/&lt;/a&gt;&lt;/a&gt;&lt;/a&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Want to achieve it ? (In SQL Query Analyzer)&lt;BR&gt;I found every MS Employee (SQL guys) doing this...so I decided to learn it thier way :)&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;
&lt;TABLE cols=2 cellPadding=2 rules=all width=595 border=1 frame=box&gt;
&lt;TBODY&gt;
&lt;TR vAlign=top&gt;
&lt;TH class=label width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Activity&lt;/FONT&gt;&lt;/TH&gt;
&lt;TH class=label width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Shortcut&lt;/FONT&gt;&lt;/TH&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Bookmarks: Clear all bookmarks.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL-SHIFT-F2&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Bookmarks: Insert or remove a bookmark (toggle).&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+F2&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Bookmarks: Move to next bookmark.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;F2&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Bookmarks: Move to previous bookmark.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;SHIFT+F2&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Cancel a query.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;ALT+BREAK&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Connections: Connect.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+O&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Connections: Disconnect.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+F4&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Connections: Disconnect and close child window.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+F4&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Database object information.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;ALT+F1&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Editing: Clear the active Editor pane.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+SHIFT+DEL&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Editing: Comment out code.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+SHIFT+C&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Editing: Copy. You can also use CTRL+INSERT.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+C&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Editing: Cut. You can also use SHIFT+DEL.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+X&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Editing: Decrease indent.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;SHIFT+TAB&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Editing: Delete through the end of a line in the Editor pane.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+DEL&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Editing: Find.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+F&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Editing: Go to a line number.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+G&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Editing: Increase indent.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;TAB&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Editing: Make selection lowercase.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+SHIFT+L&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Editing: Make selection uppercase.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+SHIFT+U&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Editing: Paste. You can also use SHIFT+INSERT.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+V&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Editing: Remove comments.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+SHIFT+R&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Editing: Repeat last search or find next.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;F3&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Editing: Replace.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+H&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Editing: Select all.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+A&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Editing: Undo.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+Z&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Execute a query. You can also use CTRL+E&lt;B&gt; &lt;/B&gt;(for backward compatibility).&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;F5&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Help for SQL Query Analyzer.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;F1&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Help for the selected Transact-SQL statement.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;SHIFT+F1&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Navigation: Switch between query and result panes.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;F6&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Navigation: Switch panes.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Shift+F6&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Navigation: Window Selector.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+W&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;New Query window.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+N&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Object Browser (show/hide).&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;F8&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Object Search.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;F4&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Parse the query and check syntax.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+F5&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Print.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+P&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Results: Display results in grid format.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+D&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Results: Display results in text format.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+T&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Results: Move the splitter.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+B&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Results: Save results to file.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+SHIFT+F&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Results: Show Results pane (toggle).&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+R&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Save.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+S&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Templates: Insert a template.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+SHIFT+INSERT&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Templates: Replace template parameters.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+SHIFT+M&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Tuning: Display estimated execution plan.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+L&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Tuning: Display execution plan (toggle ON/OFF).&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+K&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Tuning: Index Tuning Wizard.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+I&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Tuning: Show client statistics&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+SHIFT+S&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Tuning: Show server trace.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+SHIFT+T&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;72%&quot;&gt;&lt;FONT face=Verdana size=1&gt;Use database.&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width=&quot;28%&quot;&gt;&lt;FONT face=Verdana size=1&gt;CTRL+U&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;!--END--&gt;&lt;/P&gt;[&lt;A href=&quot;http://weblogs.asp.net&quot;&gt;WebLogs @ ASP.NET&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/10/31.html#a1223</guid>
			<pubDate>Fri, 31 Oct 2003 12:14:54 GMT</pubDate>
			<source url="http://weblogs.asp.net/MainFeed.aspx">WebLogs @ ASP.NET</source>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1223&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0101015%2F2003%2F10%2F31.html%23a1223</comments>
			</item>
		<item>
			<title>Version 3 of SQL Server CE</title>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/10/28.html#a1220</link>
			<description>&lt;A href=&quot;http://weblogs.asp.net/dreilly/posts/34170.aspx&quot;&gt;New SQL CE stuff from PDC&lt;/A&gt;. 
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;Version 3 of SQL Server CE will eliminate a lot of the problems that developers have neen dealing with, working with SQL Server 2.&amp;nbsp; One of my greatest shocks when I first userd SQL Server CE was that if I left SQLCE Query up and connected to my database, when I ran my applicaiton that accessed it, I got a sharing exception.&amp;nbsp; No more with SQL Server CE 3 (Net yet available, due for Yukon B2 timeframe).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;Also, the new Workbench allows you to run SQL CE queries on your handheld from the desktop, and more important, can show the execution plan, and accept hints (implemented slightly differently than on Sql Server).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;The bad news?&amp;nbsp; Still no stored procedures, so it is still likely the database layer will have to be seriously refactored for Pocket PC use.&lt;/FONT&gt;&lt;/P&gt;[&lt;A href=&quot;http://weblogs.asp.net&quot;&gt;WebLogs @ ASP.NET&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/10/28.html#a1220</guid>
			<pubDate>Tue, 28 Oct 2003 22:00:39 GMT</pubDate>
			<source url="http://weblogs.asp.net/MainFeed.aspx">WebLogs @ ASP.NET</source>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1220</comments>
			</item>
		<item>
			<title>Collations &amp; Primary Keys. </title>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/10/25.html#a1216</link>
			<description>&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Source: WebLogs @ SqlJunkies.com&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;The COLLATION of a column defines (among other things) the case sensitivity of search arguments when qualifying rows to be returned from SELECT statements as defined in WHERE clauses. But another important consideration is that a column&apos;s collation can also affect the behaviour of a unique / primary key if one exists on a column with collate defined.&lt;/P&gt;
&lt;P&gt;For example, the following script demonstrates that uniqueness of rows inserted into a key depends on the collation of the key column. Note carefully that the collation is either &amp;#147;_CS_&amp;#148; or &amp;#147;_CI_&amp;#148; - denoting case sensitive or case insensitive. Depending on how ths collation is set, the &amp;#147;duplicate&amp;#148; rows are either allowed or rejected by SQL Server.&lt;/P&gt;
&lt;P&gt;set nocount on&lt;BR&gt;go&lt;BR&gt;create table t1 (&lt;BR&gt;&amp;nbsp;col1 varchar (10) collate Latin1_General_CS_AS not null primary key)&lt;BR&gt;create table t2 (&lt;BR&gt;&amp;nbsp;col2 varchar (10) collate Latin1_General_CI_AS not null primary key)&lt;BR&gt;go&lt;BR&gt;insert into t1 (col1) values (&apos;a&apos;)&lt;BR&gt;go&lt;BR&gt;insert into t1 (col1) values (&apos;A&apos;)&lt;BR&gt;go&lt;BR&gt;insert into t2 (col2) values (&apos;a&apos;)&lt;BR&gt;go&lt;BR&gt;insert into t2 (col2) values (&apos;A&apos;)&lt;BR&gt;go&lt;BR&gt;select * from t1&lt;BR&gt;select * from t2&lt;BR&gt;go&lt;BR&gt;drop table t1&lt;BR&gt;drop table t2&lt;BR&gt;go&lt;/P&gt;
&lt;P&gt;Output from this script is:&lt;/P&gt;
&lt;P&gt;Server: Msg 2627, Level 14, State 1, Line 1&lt;BR&gt;Violation of PRIMARY KEY constraint &apos;PK__t2__2042BE37&apos;. Cannot insert duplicate key in object &apos;t2&apos;.&lt;BR&gt;The statement has been terminated.&lt;BR&gt;col1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;---------- &lt;BR&gt;a&lt;BR&gt;A&lt;/P&gt;
&lt;P&gt;col2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;---------- &lt;BR&gt;a&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;The case in point here is simply that the case sensitivity in any given collation does not simply affect row qualification for select statements. It also affects the uniqueness of rows permitted by the column&apos;s key (if one exists). In short, take care to get the case sensitivity right (usually case insensitive would be expected) when setting collations on primary keys!&lt;/P&gt;
&lt;P&gt;Greg Linwood&lt;BR&gt;&lt;A href=&quot;http://www.bainlinwood.com/&quot;&gt;www.bainlinwood.com&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/P&gt;[&lt;A href=&quot;http://www.sqljunkies.com/weblog&quot;&gt;WebLogs @ SqlJunkies.com&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/10/25.html#a1216</guid>
			<pubDate>Sat, 25 Oct 2003 23:30:41 GMT</pubDate>
			<source url="http://sqljunkies.com/weblog/MainFeed.aspx">WebLogs @ SqlJunkies.com</source>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1216&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0101015%2F2003%2F10%2F25.html%23a1216</comments>
			</item>
		<item>
			<title>Removing Duplicates.</title>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/10/23.html#a1212</link>
			<description>&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Source: Geekswithblogs.net Main Feed&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Simple way to Remove Duplicate Rows from an Existing Table in SQL &lt;BR&gt;&lt;BR&gt;SELECT DISTINCT * &lt;BR&gt;INTO duplicate_table &lt;BR&gt;FROM original_table &lt;BR&gt;GROUP BY key_value &lt;BR&gt;HAVING COUNT(key_value) &amp;gt; 1 &lt;BR&gt;&lt;BR&gt;DELETE original_table &lt;BR&gt;WHERE key_value &lt;BR&gt;IN (SELECT key_value &lt;BR&gt;FROM duplicate_table) &lt;BR&gt;&lt;BR&gt;INSERT original_table &lt;BR&gt;SELECT * &lt;BR&gt;FROM duplicate_table &lt;BR&gt;&lt;BR&gt;DROP TABLE duplicate_table &lt;BR&gt;[&lt;A href=&quot;http://www.geekswithblogs.net&quot;&gt;Geekswithblogs.net Main Feed&lt;/A&gt;]&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/10/23.html#a1212</guid>
			<pubDate>Thu, 23 Oct 2003 14:41:12 GMT</pubDate>
			<source url="http://www.geekswithblogs.net/MainFeed.aspx">Geekswithblogs.net Main Feed</source>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1212&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0101015%2F2003%2F10%2F23.html%23a1212</comments>
			</item>
		<item>
			<title>The Case for Case</title>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/10/14.html#a1197</link>
			<description>&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Source: Stephen Forte&apos;s WebBlog&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;Ok I have gotten a lot of press because I love the &lt;A href=&quot;http://www.stephenforte.net/owDasBlog/PermaLink.aspx?guid=2b0532fc-4318-4ac0-a405-15d6d813eeb8&quot;&gt;&lt;STRONG&gt;&lt;FONT color=#004183&gt;Rozenshtein Method&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt; for creating cross tab queries. I have even &lt;A href=&quot;http://www.stephenforte.net/owDasBlog/PermaLink.aspx?guid=6ed0bdd3-e0bb-4407-9e18-7d60a8cfdb8a&quot;&gt;&lt;STRONG&gt;&lt;FONT color=#004183&gt;traveled the world&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt; and spoke about it all summer at TechEds around the world.&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;I have gotten flack, especially from &lt;A href=&quot;http://www.ssw.com.au/SSW/Employees/employeesprofile.aspx?EmpID=AC&quot;&gt;&lt;STRONG&gt;&lt;FONT color=#004183&gt;annoying Australians&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;, about how &amp;#147;complex&amp;#148; the Rozenshtein Method is. So today I found myself writing a crosstab and used the Case Method.&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;It was an ad-hoc query that I have to run a few times over the next few weeks. It never has to run in another database like Access or Oracle. It was needed to be quick and dirty. I decided NOT to use the Boolean aggregates and use a Case statement. The basic structure of a case statement is as follows:&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;CASE&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;I style=&quot;mso-bidi-font-style: normal&quot;&gt;FieldName&lt;/I&gt; WHEN &lt;I style=&quot;mso-bidi-font-style: normal&quot;&gt;ValueYouAreChecking&lt;/I&gt; THEN &lt;I style=&quot;mso-bidi-font-style: normal&quot;&gt;TrueExpression&lt;/I&gt; ELSE &lt;I style=&quot;mso-bidi-font-style: normal&quot;&gt;FalseExpression&lt;/I&gt; END&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;Pretty easy no? Here is a sample:&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;SELECT tlkpWeekEnding.WeekEnding_DT as Weekending, DiceCat.DiceCat_NM as &apos;Job Category&apos;, Sum(tblData.TotalListings) AS &apos;Total Listings&apos;, SUM(CASE&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Service_ID WHEN 1 THEN TotalListings ELSE 0 END) AS HotJobsTotal,&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;SUM(CASE&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Service_ID WHEN 2 THEN TotalListings ELSE 0 END) AS MonsterTotal,&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;SUM(CASE Service_ID WHEN 3 THEN TotalListings ELSE 0 END) AS CareerBuilderTotal &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;FROM DiceCat INNER JOIN ((tlkpWeekEnding INNER JOIN (trelServiceURL INNER JOIN tblData ON trelServiceURL.URL_ID = tblData.URL_ID) ON tlkpWeekEnding.WeekEnding_ID = tblData.WeekEnding_ID) INNER JOIN &lt;?xml:namespace prefix = st1 ns = &quot;urn:schemas-microsoft-com:office:smarttags&quot; /&gt;&lt;st1:place&gt;&lt;st1:City&gt;DiceCatDetail&lt;/st1:City&gt; &lt;st1:State&gt;ON&lt;/st1:State&gt;&lt;/st1:place&gt; trelServiceURL.JobCategory_ID = DiceCatDetail.CorzenJobCatID) ON DiceCat.DiceCat_ID = DiceCatDetail.DiceCat_ID&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;WHERE tlkpWeekEnding.WeekEnding_ID=75&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;GROUP BY tlkpWeekEnding.WeekEnding_DT, DiceCat.DiceCat_NM&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;Order by&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;DiceCat.DiceCat_NM &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;Here are the results, we move rows to columns:&lt;/P&gt;
&lt;P&gt;
&lt;TABLE class=MsoNormalTable style=&quot;BACKGROUND: white; mso-cellspacing: 0in&quot; cellSpacing=0 cellPadding=0 border=1&gt;
&lt;THEAD&gt;
&lt;TR style=&quot;mso-yfti-irow: 0&quot;&gt;
&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 0.75pt; BACKGROUND: silver; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8&quot; colSpan=6&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: center&quot; align=center&gt;&lt;B&gt;&lt;SPAN style=&quot;COLOR: black; FONT-FAMILY: Arial&quot;&gt;View1&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;COLOR: black; FONT-FAMILY: Arial&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;mso-yfti-irow: 1&quot;&gt;
&lt;TD style=&quot;BORDER-RIGHT: black 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: black 1pt inset; PADDING-LEFT: 0.75pt; BACKGROUND: silver; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: black 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: black 1pt inset; mso-border-alt: inset black .75pt&quot;&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: center&quot; align=center&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;Weekending&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: black 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: black 1pt inset; PADDING-LEFT: 0.75pt; BACKGROUND: silver; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: black 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: black 1pt inset; mso-border-alt: inset black .75pt&quot;&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: center&quot; align=center&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;Job Category&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: black 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: black 1pt inset; PADDING-LEFT: 0.75pt; BACKGROUND: silver; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: black 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: black 1pt inset; mso-border-alt: inset black .75pt&quot;&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: center&quot; align=center&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;Total Listings&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: black 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: black 1pt inset; PADDING-LEFT: 0.75pt; BACKGROUND: silver; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: black 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: black 1pt inset; mso-border-alt: inset black .75pt&quot;&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: center&quot; align=center&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;HotJobsTotal&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: black 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: black 1pt inset; PADDING-LEFT: 0.75pt; BACKGROUND: silver; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: black 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: black 1pt inset; mso-border-alt: inset black .75pt&quot;&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: center&quot; align=center&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;MonsterTotal&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: black 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: black 1pt inset; PADDING-LEFT: 0.75pt; BACKGROUND: silver; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: black 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: black 1pt inset; mso-border-alt: inset black .75pt&quot;&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: center&quot; align=center&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;CareerBuilderTotal&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR style=&quot;mso-yfti-irow: 2&quot;&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;st1:date Month=&quot;10&quot; Day=&quot;12&quot; Year=&quot;2003&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;10/12/2003&lt;/SPAN&gt;&lt;/st1:date&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;Accounting/Auditing/Finance&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;37226&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;10021&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;9694&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;17511&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;mso-yfti-irow: 3&quot;&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;st1:date Month=&quot;10&quot; Day=&quot;12&quot; Year=&quot;2003&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;10/12/2003&lt;/SPAN&gt;&lt;/st1:date&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;Banking/Mortgage&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;10657&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;2026&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;2886&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;5745&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;mso-yfti-irow: 4&quot;&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;st1:date Month=&quot;10&quot; Day=&quot;12&quot; Year=&quot;2003&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;10/12/2003&lt;/SPAN&gt;&lt;/st1:date&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;Biotech/Pharmaceutical&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;7569&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;2290&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;2644&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;2635&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;mso-yfti-irow: 5&quot;&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;st1:date Month=&quot;10&quot; Day=&quot;12&quot; Year=&quot;2003&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;10/12/2003&lt;/SPAN&gt;&lt;/st1:date&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;Engineering&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;20549&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;3513&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;5800&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;11236&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;mso-yfti-irow: 6&quot;&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;st1:date Month=&quot;10&quot; Day=&quot;12&quot; Year=&quot;2003&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;10/12/2003&lt;/SPAN&gt;&lt;/st1:date&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;Healthcare&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;44080&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;4415&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;8028&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;31637&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;mso-yfti-irow: 7&quot;&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;st1:date Month=&quot;10&quot; Day=&quot;12&quot; Year=&quot;2003&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;10/12/2003&lt;/SPAN&gt;&lt;/st1:date&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;Information Technology&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;34309&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;10637&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;8924&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;14748&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;mso-yfti-irow: 8&quot;&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;st1:date Month=&quot;10&quot; Day=&quot;12&quot; Year=&quot;2003&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;10/12/2003&lt;/SPAN&gt;&lt;/st1:date&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;Insurance&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;8364&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;1900&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;2718&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;3746&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;mso-yfti-irow: 9&quot;&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;st1:date Month=&quot;10&quot; Day=&quot;12&quot; Year=&quot;2003&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;10/12/2003&lt;/SPAN&gt;&lt;/st1:date&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;Legal&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;7962&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;1976&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;2498&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;3488&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;mso-yfti-irow: 10&quot;&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;st1:date Month=&quot;10&quot; Day=&quot;12&quot; Year=&quot;2003&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;10/12/2003&lt;/SPAN&gt;&lt;/st1:date&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;Science&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;4636&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;0&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;1074&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;3562&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;mso-yfti-irow: 11; mso-yfti-lastrow: yes&quot;&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;st1:date Month=&quot;10&quot; Day=&quot;12&quot; Year=&quot;2003&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;10/12/2003&lt;/SPAN&gt;&lt;/st1:date&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;Telecommunications&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;3650&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;1005&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;1137&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-RIGHT: silver 1pt inset; PADDING-RIGHT: 0.75pt; BORDER-TOP: silver 1pt inset; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: silver 1pt inset; PADDING-TOP: 0.75pt; BORDER-BOTTOM: silver 1pt inset; BACKGROUND-COLOR: transparent; mso-border-alt: inset silver .75pt&quot; vAlign=top&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-ALIGN: right&quot; align=right&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial&quot;&gt;1508&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;So if this is so easy why oh why do I insist on using the &lt;A href=&quot;http://www.stephenforte.net/owDasBlog/PermaLink.aspx?guid=2b0532fc-4318-4ac0-a405-15d6d813eeb8&quot;&gt;&lt;STRONG&gt;&lt;FONT color=#004183&gt;Rozenshtein Method&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;? Well, I don&amp;#146;t insist on using it all the time. I like it because it is super fast and make sense to me (I was into Math as a kid, sorry). I think that you should know both and use the one that you think is most effective for the job at hand. &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;Happy Crosstabbing! [&lt;A href=&quot;http://www.stephenforte.net/owDasBlog/&quot;&gt;Stephen Forte&apos;s WebBlog&lt;/A&gt;]&lt;BR&gt;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/10/14.html#a1197</guid>
			<pubDate>Wed, 15 Oct 2003 00:11:53 GMT</pubDate>
			<source url="http://www.stephenforte.net/owDasBlog/SyndicationService.asmx/GetRss">Stephen Forte&apos;s WebBlog</source>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1197&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0101015%2F2003%2F10%2F14.html%23a1197</comments>
			</item>
		<item>
			<title>Debugging DTS Packages</title>
			<link>http://www.stephenforte.net/owDasBlog/PermaLink.aspx?guid=2022de7b-bd15-44e9-a729-0dc2e9b1ceb1</link>
			<description>&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;You haven&amp;#146;t really experienced sheer hell until you have to debug a DTS package. SQL Server development is something completely different from the traditional 4GL languages like VB and C#, you have to think in rows and columns and joins. A lot of 4GL programmers are forced or simply want to get into writing T/SQL Stored Procedures and realize that it is a whole new ballgame. But one that is easy to master if you put the time in. So a lot of beginning SQL Server programmers who came over from the 4GL side ask me often at conferences, &amp;#147;How do I debug a DTS package?&amp;#148; The answer is &amp;#147;You don&amp;#146;t.&amp;#148; (Oh we are all so spoiled by setting a breakpoint in Visual Studio.) &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;Microsoft has publicly announced some of the new DTS features of &lt;?xml:namespace prefix = st1 ns = &quot;urn:schemas-microsoft-com:office:smarttags&quot; /&gt;&lt;st1:State&gt;&lt;st1:place&gt;Yukon&lt;/st1:place&gt;&lt;/st1:State&gt; at TechEd in &lt;st1:City&gt;&lt;st1:place&gt;Barcelona&lt;/st1:place&gt;&lt;/st1:City&gt; and will announce more at the PDC in LA later this month, so I won&amp;#146;t go there and besides &lt;st1:State&gt;&lt;st1:place&gt;Yukon&lt;/st1:place&gt;&lt;/st1:State&gt; will ship sometime over the rainbow. So let&amp;#146;s start thinking about SQL Server 2000.&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;First off, proper design of your package will only make debugging much easier. Use only Stored Procedures (with or without parameters) and if you have to use SQL dynamically utilize Views. This is because the more dependencies on &amp;#147;real&amp;#148; database objects, the easier it will be to track down your problem. Avoid ActiveX Scripts as much as you can-consider an Extended Stored Procedure that calls a DLL wrote yourself (or call the DLL with a CreateObject in your script if you must). &lt;/P&gt;
&lt;P&gt;For the actual debugging itself my advice to you is to take everything in steps. You can run each DTS package&amp;#146;s step individually just by right clicking on it in the designed and selecting &amp;#147;Execute Step&amp;#148; from the pop-up menu. &lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;That is the first part. Then you can deconstruct the step manually and run those pieces in Query Analyzer. (In theory you can debug your stored procedure in Visual Studio too.) From there it gets easier, small bits and pieces of your step may or may not be working, so start looking at your select statements in QA. Before you know it, you will be in DTS debugging heck instead of hell.&lt;/P&gt;[&lt;A href=&quot;http://www.stephenforte.net/owDasBlog/&quot;&gt;Stephen Forte&apos;s WebBlog&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/10/05.html#a1182</guid>
			<pubDate>Sun, 05 Oct 2003 15:29:49 GMT</pubDate>
			<source url="http://radio.weblogs.com/0125758/rss.xml">Stephen Forte&apos;s WebBlog</source>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1182&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0101015%2F2003%2F10%2F05.html%23a1182</comments>
			</item>
		<item>
			<title>SQL Server Security: SQL Injection</title>
			<link>http://sqljunkies.com/WEbLog/rhurlbut/</link>
			<description>&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Robert Hurlbut says:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This past week, I concluded my &lt;A href=&quot;http://weblogs.asp.net/rhurlbut/posts/28401.aspx&quot;&gt;talk&lt;/A&gt; on &lt;A href=&quot;http://weblogs.asp.net/rhurlbut/posts/26488.aspx&quot;&gt;Security Coding:&amp;nbsp; Best Practices&lt;/A&gt;&amp;nbsp;at my work site.&amp;nbsp; This was a continuation of Part 1 that I started last week.&amp;nbsp; In particular, I dealt with SQL Injection and issues with Encryption and Cryptography.&lt;/P&gt;
&lt;P&gt;I spent a little more time on SQL Injection, because this is a very interesting security issue to me.&amp;nbsp; Even though you think your data is safe behind a few layers (UI, middle-tier), if you are not careful in how you process your calls to your database using the input from the UI, an attacker can easily gain lots of information about and from your database, including&amp;nbsp;retrieving sensitive data and&amp;nbsp;the structure and names of your tables.&amp;nbsp; An attacker can also drop tables and&amp;nbsp;kill your database completely.&lt;/P&gt;
&lt;P&gt;SQL Injection is especially&amp;nbsp;possible when concatenated strings are used for SQL queries.&amp;nbsp; For example, if an input form requests a user to enter his/her name and password, and those inputs are used in a query string to determine access:&lt;/P&gt;
&lt;P&gt;sql = &amp;#147;select * from users where userId = &apos;&amp;#147;&amp;nbsp;+ userName&amp;nbsp;+ &amp;#147;&apos; and password = &apos;&amp;#147; + password + &amp;#147;&apos;&amp;#147;;&lt;/P&gt;
&lt;P&gt;An attacker can use a single quote (&apos;) in the userName input field to stop the string.&amp;nbsp; After that, an &amp;#147; OR 1 = 1 --&amp;#148; could be appended.&amp;nbsp;&amp;nbsp;This sets up a logical condition that will always be true.&amp;nbsp; Plus, the &amp;#147;--&amp;#148; comments out the rest of the SQL query.&amp;nbsp; So, the above query would be sent to the database like this:&lt;/P&gt;
&lt;P&gt;select * from users where userId = &apos;&apos; OR 1 = 1 -- &apos; and password = &apos;&apos;&lt;/P&gt;
&lt;P&gt;This would effectively bring back all user information.&amp;nbsp; Very bad.&lt;/P&gt;
&lt;P&gt;The key is checking all user input (&amp;#147;Never, ever&amp;nbsp;trust user input&amp;#147;).&amp;nbsp;&amp;nbsp;Check that numeric fields are numeric.&amp;nbsp; Check that string fields have double &amp;#147;single quotes&amp;#147; (i.e. use a replace function to change single quotes (&apos;) into double single quotes (&apos;&apos;)).&amp;nbsp; Use stored procedures for access to any data, and when using stored procedures, implement them using the ADO command object or SQLParameter&amp;nbsp;collection and classes&amp;nbsp;so that variables are strongly typed.&amp;nbsp; Always &lt;A href=&quot;http://weblogs.asp.net/rhurlbut/posts/28405.aspx&quot;&gt;design&lt;/A&gt; and code for security from the first day, and test, test, test.&lt;/P&gt;
&lt;P&gt;I have put together a list of further resources I have found useful in learning about SQL Injection as well as how to protect against it.&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://www.nextgenss.com/papers/advanced_sql_injection.pdf&quot;&gt;Advanced SQL Injection&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://www.spidynamics.com/whitepapers/WhitepaperSQLInjection.pdf&quot;&gt;Whitepaper on SQL Injection&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://www.4guysfromrolla.com/webtech/061902-1.shtml&quot;&gt;Protecting Yourself from SQL Injection Attacks&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://www.sqlsecurity.com/faq-inj.asp&quot;&gt;SQL Injection FAQ&lt;/A&gt;&lt;/P&gt;[&lt;A href=&quot;http://www.SqlJunkies.com/WebLog/&quot;&gt;WebLogs @ SqlJunkies.com&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/09/28.html#a1177</guid>
			<pubDate>Sun, 28 Sep 2003 18:30:12 GMT</pubDate>
			<source url="http://sqljunkies.com/weblog/MainFeed.aspx">WebLogs @ SqlJunkies.com</source>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1177&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0101015%2F2003%2F09%2F28.html%23a1177</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/08/10.html#a1155</link>
			<description>&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Source: Nick&apos;s Blog says:&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;H3&gt;&lt;A href=&quot;http://www.faucher.biz/&quot;&gt;&lt;FONT color=#003366 size=2&gt;Marc&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; just sent me a query showing how to query for a &quot;%&quot; symbol in a LIKE statement.&lt;BR&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;BLOCKQUOTE&gt;SELECT *&lt;BR&gt;FROM prod_legal_unit&lt;BR&gt;WHERE (suite LIKE &apos;%[%]%&apos;)&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Updated 1:42pm: Here is a list of characters that you can use in a LIKE statement and their function:&lt;BR&gt;
&lt;BLOCKQUOTE&gt;
&lt;LI&gt;% Any string of zero or more characters&lt;BR&gt;
&lt;LI&gt;_ (underscore) Any single character&lt;BR&gt;
&lt;LI&gt;[ ] Any single character within the specified range ([a-f]) or set ([abcdef])&lt;BR&gt;
&lt;LI&gt;[^] Any single character not within the specified range ([^a-f]) or set ([^abcdef])&lt;BR&gt;&lt;BR&gt;[&lt;A href=&quot;http://nick.blogs.com/blog/&quot;&gt;Nick&apos;s Blog&lt;/A&gt;]&lt;/LI&gt;&lt;/BLOCKQUOTE&gt;</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/08/10.html#a1155</guid>
			<pubDate>Sun, 10 Aug 2003 22:11:19 GMT</pubDate>
			<source url="http://nick.blogs.com/blog/index.rdf">Nick&apos;s Blog</source>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1155</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/08/10.html#a1151</link>
			<description>&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;The Rozenshtein Method &lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-weight: bold&quot;&gt;I have to admit that I am totally hooked on the The Rozenshtein Method. My buddy, &lt;A href=&quot;http://www.campbellassociates.ca/&quot;&gt;Richard Campbell&lt;/A&gt; showed it to me a year or two ago and I have been hooked ever since. I recently demoed it at TechED in &lt;?xml:namespace prefix = st1 ns = &quot;urn:schemas-microsoft-com:office:smarttags&quot; /&gt;&lt;st1:City w:st=&quot;on&quot;&gt;Dallas, a recent WebCast, &lt;/st1:City&gt;VSLive in &lt;st1:State w:st=&quot;on&quot;&gt;&lt;st1:place w:st=&quot;on&quot;&gt;New York&lt;/st1:place&gt; &lt;/st1:State&gt;and will be showing it off at &lt;A href=&quot;http://www.microsoft.com/malaysia/events/teched/&quot;&gt;TechEd in Malaysia&lt;/A&gt; next week. I have gotten lots of email and positive feedback so I decided to blog it here.&lt;o:p&gt;&lt;/o:p&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-weight: bold&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-weight: bold&quot;&gt;Here is how it works. You need a crosstab query.&amp;nbsp; You have to move rows into columns. You also need &lt;st1:stocktickeruk w:st=&quot;on&quot;&gt;&lt;st1:stocktickerca w:st=&quot;on&quot;&gt;ANSI&lt;/st1:stocktickerca&gt; &lt;/st1:stocktickeruk&gt;92 SQL that will run in any database.Well there are several ways to do this, but the most generic and one of the most powerful ways is called the Rozenshtein Method, which was developed by the Russian mathematician David Rozenshtein. This technique was taken from his book: &lt;A href=&quot;http://www.amazon.com/exec/obidos/tg/detail/-/0964981203/qid=1060257224/sr=8-1/ref=sr_8_1/104-8782093-3667167?v=glance&amp;amp;s=books&amp;amp;n=507846&quot;&gt;Optimizing Transact-SQL : Advanced Programming Techniques&lt;/A&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-weight: bold&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-weight: bold&quot;&gt;First let&amp;acirc;&amp;#128;&amp;#153;s look at the desired results. We want to take the orders data from Northwind and pivot the sales date (aggregated by month) as columns with the sum of the total sales in the row grouped by customer. It would look something like this:&lt;o:p&gt;&lt;/o:p&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-weight: bold&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-weight: bold&quot;&gt;CompanyName TotalAmount Jan Feb Mar&amp;acirc;&amp;#128;&amp;#166;(etc)&lt;o:p&gt;&lt;/o:p&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-weight: bold&quot;&gt;Company1&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;100&lt;SPAN style=&quot;mso-tab-count: 2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;25 33&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;10 &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;Company2&lt;SPAN style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;467&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;76 62&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;87 &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;(etc) &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;The TSQL query to do this is, go ahead and run it in Northwind in SQL Server: &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;SELECT&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;CompanyName, SUM((UnitPrice*Quantity)) As TotalAmt, &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;SUM((UnitPrice*Quantity)*(1-&lt;st1:stocktickeruk w:st=&quot;on&quot;&gt; &lt;st1:stocktickerca w:st=&quot;on&quot;&gt;ABS&lt;/st1:stocktickerca&gt; &lt;/st1:stocktickeruk&gt;(SIGN(DatePart(mm,OrderDate)-1)))) AS Jan, &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;SUM((UnitPrice*Quantity)*(1-&lt;st1:stocktickeruk w:st=&quot;on&quot;&gt; &lt;st1:stocktickerca w:st=&quot;on&quot;&gt;ABS&lt;/st1:stocktickerca&gt; &lt;/st1:stocktickeruk&gt;(SIGN(DatePart(mm,OrderDate)-2)))) AS Feb, &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;SUM((UnitPrice*Quantity)*(1-&lt;st1:stocktickeruk w:st=&quot;on&quot;&gt; &lt;st1:stocktickerca w:st=&quot;on&quot;&gt;ABS&lt;/st1:stocktickerca&gt; &lt;/st1:stocktickeruk&gt;(SIGN(DatePart(mm,OrderDate)-3)))) AS Mar, &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;SUM((UnitPrice*Quantity)*(1-&lt;st1:stocktickeruk w:st=&quot;on&quot;&gt; &lt;st1:stocktickerca w:st=&quot;on&quot;&gt;ABS&lt;/st1:stocktickerca&gt; &lt;/st1:stocktickeruk&gt;(SIGN(DatePart(mm,OrderDate)-4)))) AS Apr, &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;SUM((UnitPrice*Quantity)*(1-&lt;st1:stocktickeruk w:st=&quot;on&quot;&gt; &lt;st1:stocktickerca w:st=&quot;on&quot;&gt;ABS&lt;/st1:stocktickerca&gt; &lt;/st1:stocktickeruk&gt;(SIGN(DatePart(mm,OrderDate)-5)))) AS May, &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;SUM((UnitPrice*Quantity)*(1-&lt;st1:stocktickeruk w:st=&quot;on&quot;&gt; &lt;st1:stocktickerca w:st=&quot;on&quot;&gt;ABS&lt;/st1:stocktickerca&gt; &lt;/st1:stocktickeruk&gt;(SIGN(DatePart(mm,OrderDate)-6)))) AS Jun, &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;SUM((UnitPrice*Quantity)*(1-&lt;st1:stocktickeruk w:st=&quot;on&quot;&gt; &lt;st1:stocktickerca w:st=&quot;on&quot;&gt;ABS&lt;/st1:stocktickerca&gt; &lt;/st1:stocktickeruk&gt;(SIGN(DatePart(mm,OrderDate)-7)))) AS Jul, &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;SUM((UnitPrice*Quantity)*(1-&lt;st1:stocktickeruk w:st=&quot;on&quot;&gt; &lt;st1:stocktickerca w:st=&quot;on&quot;&gt;ABS&lt;/st1:stocktickerca&gt; &lt;/st1:stocktickeruk&gt;(SIGN(DatePart(mm,OrderDate)-8)))) AS Aug, &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;SUM((UnitPrice*Quantity)*(1-&lt;st1:stocktickeruk w:st=&quot;on&quot;&gt; &lt;st1:stocktickerca w:st=&quot;on&quot;&gt;ABS&lt;/st1:stocktickerca&gt; &lt;/st1:stocktickeruk&gt;(SIGN(DatePart(mm,OrderDate)-9)))) AS Sep, &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;SUM((UnitPrice*Quantity)*(1-&lt;st1:stocktickeruk w:st=&quot;on&quot;&gt; &lt;st1:stocktickerca w:st=&quot;on&quot;&gt;ABS&lt;/st1:stocktickerca&gt; &lt;/st1:stocktickeruk&gt;(SIGN(DatePart(mm,OrderDate)-10)))) AS Oct, &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;SUM((UnitPrice*Quantity)*(1-&lt;st1:stocktickeruk w:st=&quot;on&quot;&gt; &lt;st1:stocktickerca w:st=&quot;on&quot;&gt;ABS&lt;/st1:stocktickerca&gt; &lt;/st1:stocktickeruk&gt;(SIGN(DatePart(mm,OrderDate)-11)))) AS Nov, &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;SUM((UnitPrice*Quantity)*(1-&lt;st1:stocktickeruk w:st=&quot;on&quot;&gt; &lt;st1:stocktickerca w:st=&quot;on&quot;&gt;ABS&lt;/st1:stocktickerca&gt; &lt;/st1:stocktickeruk&gt;(SIGN(DatePart(mm,OrderDate)-12)))) AS Dec &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;FROM&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Customers INNER JOIN &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Orders ON Customers.CustomerID = Orders.CustomerID INNER JOIN &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;[Order Details] ON Orders.OrderID = [Order Details].OrderID &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;Group By Customers.CompanyName &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;So how does this work? &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;This method uses Boolean aggregates, so that each column has a numeric expression that resolves each row as a zero or one and that value (0 or 1) is multiplied by your numeric expression (Like TotalSales or (UnitPrice*Quantity). That is all there is to it, quite simple. But wait, there&amp;acirc;&amp;#128;&amp;#153;s more to explain: &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;We want to create columns for each Month in our data. To find a month use DatePart. But we need to subtract the DatePart value (1-12) from the amount you&amp;acirc;&amp;#128;&amp;#153;re looking for (1 for Jan, 2 for Feb, etc) as shown here for January: &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;DatePart(mm,OrderDate)-1 &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;So that true = zero, false &amp;gt; 0 or &amp;lt; 0. For example if the month you were looking for was January and the DatePart was 1 and you subtract 1 from that value you get 0, which is true. If you are looking for March you would get -2 and that would be false. &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;Next you have to compute the sign of the expression and get the absolute value like so: &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;st1:stocktickeruk w:st=&quot;on&quot;&gt;&lt;st1:stocktickerca w:st=&quot;on&quot;&gt;ABS&lt;/st1:stocktickerca&gt; &lt;/st1:stocktickeruk&gt;(SIGN(DatePart(mm,OrderDate)-1))) &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;This will give us a positive value. Remember 0 is still true. Now subtract the value computed from 1 in order to get a 0 or 1 from the value of your expression (the Boolean aggregate). The code is: &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;(1-&lt;st1:stocktickeruk w:st=&quot;on&quot;&gt; &lt;st1:stocktickerca w:st=&quot;on&quot;&gt;ABS&lt;/st1:stocktickerca&gt; &lt;/st1:stocktickeruk&gt;(SIGN(DatePart(mm,OrderDate)-1)))) &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;For example if you had March return 3 from the Datepart, 3-1=2 and 1-2 =-1. The absolute value is 1. This will always return 0 or 1. If your expression was zero, the value is now one. If was one, the value is zero. &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;Last step. Taking the SUM of the Boolean values will give you a count of the values that qualify. So you can find out how many sales you made in Jan, Feb, etc. So now multiply the value by the price and quantity, but remember its now one = true. Take a look here: &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;SUM((UnitPrice*Quantity)*(1-&lt;st1:stocktickeruk w:st=&quot;on&quot;&gt; &lt;st1:stocktickerca w:st=&quot;on&quot;&gt;ABS&lt;/st1:stocktickerca&gt; &lt;/st1:stocktickeruk&gt;(SIGN(DatePart(mm,OrderDate)-1)))) AS Jan &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;If its zero, nothing gets added, if its one, you get the value of the sale. The sum of the total expression is the total of sales for the month. If you have a DatePart that is evaluated to 0 then ((UnitPrice*Quantity)*0) is 0 and those results are ignored in the SUM. If you have a month that matches your expression resolves to 1 and ((UnitPrice*Quantity)*1) is the value of the sale. &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;How easy! &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;But wait, there&amp;acirc;&amp;#128;&amp;#153;s more! Suppose you wanted two values combined? Compute each value down to zero or one separately. Now you can use &lt;st1:stocktickeruk w:st=&quot;on&quot;&gt;&lt;st1:stocktickerca w:st=&quot;on&quot;&gt;AND&lt;/st1:stocktickerca&gt; &lt;/st1:stocktickeruk&gt;by multiplying, OR by adding (and reduce to 1 or 0 using SIGN). &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt; &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;Ok, have fun!!! &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;[&lt;A href=&quot;http://www.stephenforte.net/owDasBlog/&quot;&gt;Stephen Forte&apos;s WebBlog&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/08/10.html#a1151</guid>
			<pubDate>Sun, 10 Aug 2003 13:05:41 GMT</pubDate>
			<source url="http://www.stephenforte.net/owDasBlog/SyndicationService.asmx/GetRss">Stephen Forte&apos;s WebBlog</source>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1151</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/08/09.html#a1150</link>
			<description>&lt;A href=&quot;http://www.keithdevens.com/weblog/archive/2003/Aug/07/Markup-SemistructuredData&quot;&gt;Bedtime reading&lt;/A&gt;. 
&lt;P class=st-markup&gt;Stuff I just printed out to read before bed... it&apos;ll probably put me right to sleep &lt;IMG alt=&quot;Smiley winking&quot; src=&quot;http://www.keithdevens.com/images/smiley_wink_animated.gif&quot;&gt;&lt;/P&gt;
&lt;UL class=st-markup&gt;
&lt;LI&gt;&lt;A href=&quot;http://citeseer.nj.nec.com/bry00data.html&quot;&gt;Data Modeling with Markup Languages: A Logic Programming Perspective&lt;/A&gt; 
&lt;LI&gt;&lt;A href=&quot;http://citeseer.nj.nec.com/buneman97semistructured.html&quot;&gt;Semistructured Data&lt;/A&gt; 
&lt;LI&gt;&lt;A href=&quot;http://citeseer.nj.nec.com/abiteboul97lorel.html&quot;&gt;The Lorel Query Language for Semistructured Data&lt;/A&gt; 
&lt;LI&gt;&lt;A href=&quot;http://citeseer.nj.nec.com/204705.html&quot;&gt;From Semistructured Data to XML: Migrating the Lore Data Model and Query Language&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P class=st-markup&gt;Everything below is related, but I haven&apos;t printed these out:&lt;/P&gt;
&lt;UL class=st-markup&gt;
&lt;LI&gt;&lt;A href=&quot;http://citeseer.nj.nec.com/mchugh97lore.html&quot;&gt;Lore: A Database Management System for Semistructured Data&lt;/A&gt; 
&lt;LI&gt;&lt;A href=&quot;http://citeseer.nj.nec.com/mchugh98indexing.html&quot;&gt;Indexing Semistructured Data&lt;/A&gt; 
&lt;LI&gt;&lt;A href=&quot;http://citeseer.nj.nec.com/cooper01fast.html&quot;&gt;A Fast Index for Semistructured Data&lt;/A&gt; 
&lt;LI&gt;&lt;A href=&quot;http://citeseer.nj.nec.com/milo97index.html&quot;&gt;Index Structures for Path Expressions&lt;/A&gt; 
&lt;LI&gt;&lt;A href=&quot;http://citeseer.nj.nec.com/126680.html&quot;&gt;DataGuides: Enabling Query Formulation and Optimization in Semistructured Databases&lt;/A&gt; 
&lt;LI&gt;&lt;A href=&quot;http://citeseer.nj.nec.com/554677.html&quot;&gt;Using Nested Tables for Representing and Querying Semistructured Web Data&lt;/A&gt; 
&lt;LI&gt;&lt;A href=&quot;http://citeseer.nj.nec.com/126680.html&quot;&gt;Representing and Querying Semistructured Web Data Using Nested Tables with Structural Variants&lt;/A&gt; (seems to be a later and longer version of the previous link) &lt;/LI&gt;&lt;/UL&gt;
&lt;P class=st-markup&gt;Oh man... how exciting. &lt;IMG alt=Smiley src=&quot;http://www.keithdevens.com/images/smiley_side.gif&quot;&gt; I wish I had more time.&lt;/P&gt;[&lt;A href=&quot;http://www.keithdevens.com/weblog/&quot;&gt;Keith&apos;s Weblog&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/08/09.html#a1150</guid>
			<pubDate>Sun, 10 Aug 2003 02:05:29 GMT</pubDate>
			<source url="http://www.keithdevens.com/weblog/rss">Keith&apos;s Weblog</source>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1150</comments>
			</item>
		<item>
			<title>Serious SqlServer security problem: Microsoft&apos;s state of denial.</title>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/07/29.html#a1122</link>
			<description>&lt;P&gt;&lt;EM&gt;Source: Frans Bouma&apos;s blog&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Several blogs have been posted lately, especially by &lt;A href=&quot;http://weblogs.asp.net/pleloup/posts/9529.aspx&quot; target=_blank&gt;Paschal&lt;/A&gt;, about SqlServer security and .NET. People on the &lt;A href=&quot;http://discuss.develop.com/dotnet-clr.html&quot; target=_blank&gt;DOTNET-CLR mailing list&lt;/A&gt; are already familiar with the problem, but looking at the reactions on Paschal&apos;s blogs I can only conclude that the rest of the world, including Microsoft, is in a severe state of denial. &lt;/P&gt;
&lt;P&gt;&quot;Close your eyes, deny that there is a problem and you&apos;ll see... there is no problem.&quot; I have the feeling that&apos;s the thought that pops into many heads when they&apos;re confronted with the problem about security related to SqlServer and .NET. I can tell you: even if you deny it, the problem will be there, and will &lt;I&gt;stay&lt;/I&gt; there, until someone fixes it. &lt;/P&gt;
&lt;P&gt;&lt;B&gt;The Problem&lt;/B&gt;&lt;BR&gt;Consider you are building a web-application and it will span two machines: a webserver with IIS and your ASP.NET GUI tier and Business logic tier (machine A) and a database server with SqlServer 2000 (machine B). Both machines are used solely for the same application and are running in a DMZ (demilitarized zone) of the corporate firewall. It&apos;s obvious that A will connect to B to read or write data. To connect with SqlServer and to be able to do something, you need permissions. There are several possibilities to do this. Let&apos;s sum them up in a small list: &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;B&gt;Use SqlServer security&lt;/B&gt;. This is the easiest way to do it and a lot of people use this. You simply define an account in SqlServer (on machine B) and use that account to connect with SqlServer by specifying that account plus its password in the connection string that is used by A to connect to B. 
&lt;LI&gt;&lt;B&gt;Use Integrated security&lt;/B&gt;. This is the way Microsoft wants you to use: you use the Windows account you&apos;re currently logged in with (or better: the security context the application runs in which connects to SqlServer) to connect to SqlServer. You therefor have to map the Windows account on a SqlServer account. You do not have to specify account credentials in the connection string, the connection is &apos;trusted&apos;. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Both have problems. Let&apos;s begin with option 1, the SqlServer security way. Because you have to store credentials in the connection string, you can&apos;t hard-code this connection string in the application, otherwise you have to recompile the application when the password changes (some organizations require this, f.e. each month). You can store this connection string in f.e. the web.config file or the .config file of the executable. The problem is that it is readable for a human and mutable. You can crypt it but this degrades performance in some way plus it requires you to have an encrypt utility when changing passwords and you have to update the connection string. There is also a secure local storage called Isolated Storage. You then also have to use a utility to update the connection string when you store the file which contains the string in that isolated storage. In short: it works but there are a lot of disadvantages. &lt;/P&gt;
&lt;P&gt;Option 2 doesn&apos;t suffer from this problem, you simply specify the account with windows and be done with it. Perfect, right? Well... no. Going back to our 2 machines A and B with our ASP.NET application we can&apos;t use this option. The problem is related to &quot;Security on Windows for dummies&quot;, Chapter 1, line 1: do not run your internet site on a machine that is part of a domain. You see, the problem is that when you run the ASP.NET application on machine A, it runs under the &quot;My Hands Are Tied&quot;-user ASPNET. That account is a local account. Because every person who understands security and has read Microsoft&apos;s excellent papers on the Technet website, will not run the machines in a domain, thus ASPNET on machine A is not known on machine B. The ASP.NET application can&apos;t connect to B using a trusted connection simply because ASPNET account isn&apos;t defined on B and you then can&apos;t make a mapping on B for the ASPNET user. &lt;/P&gt;
&lt;P&gt;If you read the SqlServer 2000 security papers, it&apos;s clear Microsoft pushes trusted connections and integrated (windows) security over SqlServer security. And understandable. However, in this case (and trust me, this is a very common scenario), with two or more machines which run a complete web-application and control will flow from one machine to the other, initiating from the IIS machine / ASP.NET application, SqlServer security is the only security that actually works. How&apos;s that possible? How could Microsoft ignore this issue which is already with us since SqlServer sports windows integrated security? I don&apos;t see why Microsoft hasn&apos;t fixed this a long time ago. Every person who has written a distributed webapplication with SqlServer knows that keeping the application secure even after a compromise of the front end (the webserver) knows that integrated security is a nice thing for the books but in practise not usable. &lt;/P&gt;
&lt;P&gt;&lt;B&gt;Aren&apos;t there any &lt;STRIKE&gt;&apos;hacks&apos;&lt;/STRIKE&gt; workarounds?&lt;/B&gt;&lt;BR&gt;Well, a few. Let&apos;s get a list of these shabby workarounds: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;Use a domain&lt;/B&gt;. That&apos;s right. Simply ignore &quot;Security: Best Practices 101&quot; for now and define a domain for machine A and B, eventually with a separate domain controller (you can also use one of the two machines as a domain controller). This will solve the problem of the unknown user. You simply run the ASP.NET application under a given domain user and because it&apos;s a domain user, it is known on the SqlServer machine and can be mapped to a SqlServer account. From A you can use a trusted connection and everything works OK. The problem is... if the webserver is compromised, the SqlServer machine is also compromised, because the website runs as a domain user. That&apos;s why every Windows security document recommends to run the webserver not in a domain but as a separate server. 
&lt;LI&gt;&lt;B&gt;Mirror credentials&lt;/B&gt;. Another funny &apos;solution&apos; is to define the user who is used to run the ASP.NET application also on machine B with the same username and password. So, f.e. define a new password for the ASPNET user on A and define a new local user ASPNET on B with the same password. When the ASP.NET application wants to connect to B using a trusted connection, it can actually log in using the credentials of the security context it runs in on A. Think about this for a minute. We have a logged in user, ASPNET, on A, which has a security token SID and can get access to machine B using that SID or at least the credentials related to that SID. Why is this possible? Apparently Windows security doesn&apos;t work with SID&apos;s but still with usernames and passwords because a local SID from machine A would otherwise not be recognized on B, because it is not known there. Ok, besides that, it has other problems: the administrator who is in charge of the webserver now also knows security information related to the SqlServer, because the accounts have to be kept in sync. Not all organizations want this. It also makes the point of the locally defined ASPNET user which is not able to do anything rather moot because that locally defined account is able to log into another machine. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;B&gt;Well, what should be the solution then?&lt;/B&gt;&lt;BR&gt;For starters, Microsoft should look at common situations where applications are forced to use other security settings than planned or recommended. When they had done this years ago, we wouldn&apos;t be in this situation right now. Then, when they got that started up, it should be possible for f.e. SqlServer to verify a given SID token received from another machine with that same machine. In our example, A&apos;s locally defined ASPNET user will send its SID over the wire to SqlServer on B when connecting to it using a trusted connection, and SqlServer will then verify with A if this SID is of any good and known by A. Then, inside SqlServer it should be possible to map accounts from A on SqlServer accounts so local defined users on A can have &lt;I&gt;only&lt;/I&gt; access to a given SqlServer instance and &lt;I&gt;only&lt;/I&gt; to the objects they have rights for defined &lt;I&gt;inside&lt;/I&gt; SqlServer. This way, those locally defined users on A cannot and will not have any rights on B. They have only rights inside SqlServer, which is what&apos;s required, because an application requires data from that SqlServer instance. &lt;/P&gt;
&lt;P&gt;Perhaps it sounds paranoia, but security is something you have to take seriously, &lt;I&gt;very&lt;/I&gt; seriously. One compromise on a single box should never be able to escalate to other boxes as well. Perhaps some people now will say I&apos;m wrong and Microsoft has it all figured out and there and there are articles to find how to set it up correctly etc. etc.: please consider for a moment that what I described above is not fantasy, it&apos;s reality, and till today, Microsoft hasn&apos;t come forward with a solid, simple solution which complies to strong security requirements. Integrated security, trusted connections, I&apos;d like to use them if I could, because the concept is good. However they are not applicable due to reasons I have ventilated in this blog. I truly hope Microsoft will fix this in the (near) future or some brilliant mind has a solution that is secure, simple, reliable and not a shabby workaround. &lt;/P&gt;[&lt;A href=&quot;http://weblogs.asp.net/fbouma/&quot;&gt;Frans Bouma&apos;s blog&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/07/29.html#a1122</guid>
			<pubDate>Tue, 29 Jul 2003 13:08:56 GMT</pubDate>
			<source url="http://weblogs.asp.net/fbouma/Rss.aspx">Frans Bouma&apos;s blog</source>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1122&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0101015%2F2003%2F07%2F29.html%23a1122</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/07/18.html#a1111</link>
			<description>&lt;P&gt;&lt;STRONG&gt;Bulk Insert from text file with variable columns&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;create table ##tbl (line varchar(1000))&lt;/P&gt;
&lt;P&gt;bulk insert ##tbl&lt;BR&gt;from &apos;minidragonc$HUD601_07-15-03.txt&apos;&lt;BR&gt;with (FIRSTROW=1)&lt;/P&gt;
&lt;P&gt;--select top 1 Replace(Line, char(9), &apos;,&apos;) from ##tbl&lt;/P&gt;
&lt;P&gt;declare @tempstr varchar(1000)&lt;BR&gt;declare @col varchar(1000)&lt;BR&gt;declare @createtbl varchar (1000)&lt;BR&gt;declare @loadtbl varchar (1000)&lt;BR&gt;declare @newtblname varchar(1000)&lt;/P&gt;
&lt;P&gt;/* ====================================================================&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Generates a unique identifier for all the Event Log entries&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; ====================================================================*/&lt;/P&gt;
&lt;P&gt;declare @month char(2)&lt;BR&gt;declare @date char(2)&lt;BR&gt;declare @year char(4)&lt;BR&gt;declare @hour char(2)&lt;BR&gt;declare @min char(2)&lt;BR&gt;declare @sec char(2)&lt;BR&gt;declare @msec char(3)&lt;/P&gt;
&lt;P&gt;set @month = DATEPART(m, getdate())&lt;BR&gt;if LEN(RTRIM(DATEPART(m, getdate()))) = 1&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set @month = &apos;0&apos;+RTRIM(DATEPART(m, getdate()))&lt;BR&gt;set @date = DATEPART(d, getdate())&lt;BR&gt;if LEN(RTRIM(DATEPART(d, getdate()))) = 1&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set @date = &apos;0&apos;+RTRIM(DATEPART(d, getdate()))&lt;BR&gt;set @year = DATEPART(yyyy, getdate())&lt;BR&gt;set @hour = DATEPART(hh, getdate())&lt;BR&gt;if LEN(RTRIM(DATEPART(hh, getdate()))) &amp;lt; 2&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set @hour = &apos;0&apos;+RTRIM(DATEPART(hh, getdate()))&lt;BR&gt;set @min = DATEPART(mi, getdate())&lt;BR&gt;if LEN(RTRIM(DATEPART(mi, getdate()))) &amp;lt; 2&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set @min = &apos;0&apos;+RTRIM(DATEPART(mi, getdate()))&lt;BR&gt;set @sec = DATEPART(ss, getdate())&lt;BR&gt;if LEN(RTRIM(DATEPART(ss, getdate()))) &amp;lt; 2&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set @sec = &apos;0&apos;+RTRIM(DATEPART(ss, getdate()))&lt;BR&gt;set @msec = DATEPART(ms, getdate())&lt;BR&gt;if LEN(RTRIM(DATEPART(ms, getdate()))) &amp;lt; 3&lt;BR&gt;begin&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if LEN(RTRIM(DATEPART(ms, getdate()))) = 2&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set @msec = &apos;0&apos;+RTRIM(DATEPART(ms, getdate()))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if LEN(RTRIM(DATEPART(ms, getdate()))) = 1&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set @msec = &apos;00&apos;+RTRIM(DATEPART(ms, getdate()))&lt;BR&gt;end&lt;/P&gt;
&lt;P&gt;set @col = &apos;&apos;&lt;BR&gt;set @tempstr = (select top 1 RTRIM(Replace(Line, char(9), &apos;,&apos;)) from ##tbl)&lt;/P&gt;
&lt;P&gt;while CHARINDEX(&apos;,&apos;&lt;a href=&quot;mailto:,@tempstr&quot;&gt;&lt;a href=&quot;mailto:,@tempstr&quot;&gt;&lt;a href=&quot;mailto:,@tempstr&quot;&gt;,@tempstr&lt;/a&gt;&lt;/a&gt;&lt;/a&gt;) &amp;gt; 0&lt;BR&gt;begin&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set @col = @col+SUBSTRING(@tempstr, 1, CHARINDEX(&apos;,&apos;&lt;a href=&quot;mailto:,@tempstr&quot;&gt;&lt;a href=&quot;mailto:,@tempstr&quot;&gt;&lt;a href=&quot;mailto:,@tempstr&quot;&gt;,@tempstr&lt;/a&gt;&lt;/a&gt;&lt;/a&gt;)-1)+&apos; varchar(1000),&apos;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set @tempstr = SUBSTRING(@tempstr, CHARINDEX(&apos;,&apos;&lt;a href=&quot;mailto:,@tempstr&quot;&gt;&lt;a href=&quot;mailto:,@tempstr&quot;&gt;&lt;a href=&quot;mailto:,@tempstr&quot;&gt;,@tempstr&lt;/a&gt;&lt;/a&gt;&lt;/a&gt;)+1, len(@tempstr))&lt;BR&gt;end&lt;/P&gt;
&lt;P&gt;set @col = &lt;a href=&quot;mailto:@col+@tempstr&quot;&gt;&lt;a href=&quot;mailto:@col+@tempstr&quot;&gt;&lt;a href=&quot;mailto:@col+@tempstr&quot;&gt;@col+@tempstr&lt;/a&gt;&lt;/a&gt;&lt;/a&gt;+&apos; varchar(1000))&apos;&lt;/P&gt;
&lt;P&gt;set @createtbl = &apos;create table load_&apos;+RTRIM(&lt;a href=&quot;mailto:@month+@date+@year+@hour+@min+@sec&quot;&gt;&lt;a href=&quot;mailto:@month+@date+@year+@hour+@min+@sec&quot;&gt;&lt;a href=&quot;mailto:@month+@date+@year+@hour+@min+@sec&quot;&gt;@month+@date+@year+@hour+@min+@sec&lt;/a&gt;&lt;/a&gt;&lt;/a&gt;)+&apos; (&lt;A href=&quot;mailto:&apos;+@col&quot;&gt;&apos;&lt;a href=&quot;mailto:+@col&quot;&gt;&lt;a href=&quot;mailto:+@col&quot;&gt;&lt;a href=&quot;mailto:+@col&quot;&gt;+@col&lt;/a&gt;&lt;/a&gt;&lt;/a&gt;&lt;/A&gt;&lt;BR&gt;set @newtblname = &apos;load_&apos;+RTRIM(&lt;a href=&quot;mailto:@month+@date+@year+@hour+@min+@sec&quot;&gt;&lt;a href=&quot;mailto:@month+@date+@year+@hour+@min+@sec&quot;&gt;&lt;a href=&quot;mailto:@month+@date+@year+@hour+@min+@sec&quot;&gt;@month+@date+@year+@hour+@min+@sec&lt;/a&gt;&lt;/a&gt;&lt;/a&gt;)&lt;/P&gt;
&lt;P&gt;--select @createtbl&lt;/P&gt;
&lt;P&gt;drop table ##tbl&lt;/P&gt;
&lt;P&gt;exec (@createtbl)&lt;/P&gt;
&lt;P&gt;--select @newtblname&lt;/P&gt;
&lt;P&gt;set @loadtbl = &apos;bulk insert &lt;A href=&quot;mailto:&apos;+@newtblname+&apos;&quot;&gt;&apos;&lt;a href=&quot;mailto:+@newtblname&quot;&gt;&lt;a href=&quot;mailto:+@newtblname&quot;&gt;&lt;a href=&quot;mailto:+@newtblname&quot;&gt;+@newtblname&lt;/a&gt;&lt;/a&gt;&lt;/a&gt;+&apos;&lt;/A&gt; from &apos;+char(39)+&apos;wsana157c$tbl.txt&apos;+char(39)+&apos; with (FIRSTROW=2)&apos;&lt;/P&gt;
&lt;P&gt;--select @loadtbl&lt;/P&gt;
&lt;P&gt;exec (@loadtbl)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/07/18.html#a1111</guid>
			<pubDate>Fri, 18 Jul 2003 12:20:03 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1111</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/07/15.html#a1107</link>
			<description>&lt;TABLE id=Table1 cellSpacing=1 cellPadding=1 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD bgColor=#3366aa colSpan=3&gt;&lt;STRONG&gt;&lt;FONT color=#ffffff&gt;xp_readerrorlog&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colSpan=3&gt;
&lt;P&gt;This week each day, I&apos;ll cover a new documented and undocumented extended stored procedure. These will be fairly short in description to save space but for the full details, see my book entitled SQL Server 2000 for the Experienced DBA at &lt;A href=&quot;http://www.amazon.com/exec/obidos/ASIN/0072227885/sqlservercent-20&quot;&gt;&lt;a href=&quot;http://www.amazon.com/exec/obidos/ASIN/0072227885/sqlservercent-20&quot;&gt;&lt;a href=&quot;http://www.amazon.com/exec/obidos/ASIN/0072227885/sqlservercent-20&quot;&gt;&lt;a href=&quot;http://www.amazon.com/exec/obidos/ASIN/0072227885/sqlservercent-20&quot;&gt;http://www.amazon.com/exec/obidos/ASIN/0072227885/sqlservercent-20&lt;/a&gt;&lt;/a&gt;&lt;/a&gt;&lt;/A&gt;. There is quite a bit of undocumented stored procedures and DBCC commands in the book as well as other advanced topics. 
&lt;P&gt;Today&apos;s sproc is another useful one that I use in my management scripts to remotely see the SQL Server error log. &lt;STRONG&gt;Xp_readerrorlog&lt;/STRONG&gt; will show you a given SQL Server error log and is useful when you want to quickly debug an issue via Query Analyzer without having to open the slower&amp;nbsp;Enterprise Manager. I also like to loop through the error log in ADO using xp_readerrorlog to look for keywords like &quot;ERROR&quot; or &quot;LOGIN FAILED&quot; and act upon those accordingly. To execute the stored procedure, you can run it without any parameters as shown below: 
&lt;P&gt;master..xp_readerrorlog 
&lt;P&gt;or you can call a given error log from the archive (like ERRORLOG.5) by typing the error log that you wish to see after the stored procedure as shown below: 
&lt;P&gt;master..xp_readerrorlog 5&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/07/15.html#a1107</guid>
			<pubDate>Tue, 15 Jul 2003 11:57:49 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1107</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/07/14.html#a1106</link>
			<description>&lt;P&gt;&lt;A href=&quot;http://www.sqlservercentral.com/scripts/contributions/833.asp&quot;&gt;&lt;STRONG&gt;Search all objects in all DBs for code fragments&lt;/STRONG&gt;&lt;/A&gt; &lt;BR&gt;&lt;I&gt;&lt;FONT size=-2&gt;By: cadebryant - Posted: 6/10/2003 6:48:22 PM&amp;nbsp;&amp;nbsp;(Stored Procedure) &lt;/FONT&gt;&lt;/I&gt;&lt;BR&gt;This procedure allows you to search through all objects in all databases on your server for words/phrases in your object code.&amp;nbsp; Very handy for cases in which, for example, a column name on a table has been changed and you need to search your entire server for any sprocs/views/etc. that might reference it.&lt;BR&gt;&lt;BR&gt;Syntax: [EXEC] sp_FindCodeStr [@SearchStr=]&apos;&apos;, [@PrintOnly=]{0, 1}&lt;BR&gt;&lt;BR&gt;Notice that no cursors or temp tables are used in this sproc.&amp;nbsp; Dynamic T-SQL execution appends all the needed statements onto the @sql variable, building the batch in a set-oriented manner, and then the final batch is executed via sp_executesql.&amp;nbsp; As a result, this sproc performs surprisingly well.&lt;/P&gt;
&lt;P&gt;Today&apos;s procedure is probably one of my favorites. &lt;STRONG&gt;Xp_fixeddrives &lt;/STRONG&gt;tells you all the hard drives that are on your SQL Server and how much space you have on each of them. This is a great monitoring script for determining low hard drive space and I use it to raise alerts typically. Another useful application would be to execute it before firing off an extract process to ensure you have space for the ETL before running the load procedure. To execute xp_fixeddrives, use the following syntax: 
&lt;P&gt;master..xp_fixeddrives 
&lt;P&gt;which will output results similar to this:&lt;PRE&gt;drive MB free     
----- ----------- 
C     1773
D     1386
E     12429
F     29276
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/07/14.html#a1106</guid>
			<pubDate>Mon, 14 Jul 2003 14:06:56 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1106</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/06/23.html#a1089</link>
			<description>&lt;P&gt;&lt;EM&gt;Source: Keith&apos;s Weblog; 6/23/2003; 7:39:11 AM&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://www.keithdevens.com/weblog/archive/2003/Jun/20/TreesInSQL&quot;&gt;Trees in SQL&lt;/A&gt;. &lt;/P&gt;
&lt;P class=st-markup&gt;It turns out there&apos;s another way to store hierarchical data in SQL that I didn&apos;t know existed. Basically, rather than storing the &quot;parent&quot; for each record (with the root having a NULL parent), it turns out you can store a tree by storing &quot;left&quot; and &quot;right&quot; values for each element of the tree, where left and right are numbers that would be assigned by a preorder traversal of the tree.&lt;/P&gt;
&lt;P class=st-markup&gt;&lt;A href=&quot;http://simon.incutio.com/archive/2003/06/19/storingTrees&quot;&gt;Via Simon&lt;/A&gt;, check out this article from SitePoint.com by Gijs Van Tulder: &lt;A href=&quot;http://www.sitepoint.com/article/1105&quot;&gt;Storing Hierarchical Data in a Database&lt;/A&gt;, and via a comment on Simon&apos;s blog, check out database guru &lt;A href=&quot;http://www.intelligententerprise.com/001020/celko.shtml&quot;&gt;Joe Celko&apos;s explanation&lt;/A&gt; of the same thing.&lt;/P&gt;
&lt;P class=st-markup&gt;The first article has more of a tutorial flavor, and has nice diagrams, but Celko&apos;s article goes a little more in depth. Also, Gijs only used a binary tree in his example, so I wasn&apos;t sure if it&apos;d work for more-than-binary trees, but Celko&apos;s example shows that it can.&lt;/P&gt;
&lt;P class=st-markup&gt;The only downside to this technique is that it&apos;s more of a pain to insert new rows or delete existing ones, but the benefits seem to outweigh the downsides, especially for large or heavily nested recordsets. This is really a great technique, and I&apos;m glad that it&apos;s now in my repetoire. I didn&apos;t realize this was possible. Thanks for finding this, Simon &lt;IMG alt=Smiley src=&quot;http://www.keithdevens.com/images/smiley_side.gif&quot;&gt;&lt;/P&gt;[&lt;A href=&quot;http://www.keithdevens.com/weblog/&quot;&gt;Keith&apos;s Weblog&lt;/A&gt;]&lt;BR&gt;</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/06/23.html#a1089</guid>
			<pubDate>Mon, 23 Jun 2003 12:45:02 GMT</pubDate>
			<source url="http://www.keithdevens.com/weblog/rss">Keith&apos;s Weblog</source>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1089</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/06/23.html#a1088</link>
			<description>&lt;TABLE cellSpacing=1 cellPadding=1 width=900 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=896 bgColor=#3366aa colSpan=3&gt;&lt;STRONG&gt;&lt;FONT color=#ffffff&gt;Enum Extended Stored Procedures&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=896 colSpan=3&gt;Digging a little deeper this week into extended stored procedures, we find the xp_enum procedures. These procedures require no parameters but provide a handy bridge to the operating system and is extremely helpful for developers. 
&lt;P&gt;&lt;B&gt;Xp_enumgroups&lt;/B&gt; will display all NT groups that are currently on your SQL Server. It requires no parameters are the data is loaded into a varchar (255) format (perfect for loading into a temp table for usage). &lt;/P&gt;
&lt;P&gt;&lt;B&gt;Xp_enumdsn&lt;/B&gt; will display all the DSNs installed on the SQL Server, not the client workstation. &lt;B&gt;Xp_enum_activescriptengines&lt;/B&gt; is also a nice extended stored procedure that will display all the scripting engines installed on your server currently. SQL Server uses this to provide you a list of scripting engines in DTS Designer. &lt;/P&gt;
&lt;P&gt;Keep in mind that in any extended stored procedure, SQL Server will use the security for whichever account is starting SQL Server. If security is a concern with these extended stored procedures, make sure you lock them down. &lt;/P&gt;
&lt;P&gt;&lt;I&gt;Brian Knight&lt;BR&gt;SQLServerCentral.com Co-founder&lt;/I&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/06/23.html#a1088</guid>
			<pubDate>Mon, 23 Jun 2003 12:29:13 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1088</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/06/22.html#a1086</link>
			<description>&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;EM&gt;Source: Stephen Forte&apos;s Weblog; 6/22/2003; 7:51:55 AM&lt;BR&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;Toss Me a&amp;nbsp;Bone Honey....&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;I have been told by a friend that my use of this expression is getting kinda old. So I will have to give it up. (I am sure that I will pick up something new in &lt;A href=&quot;http://www.microsoft.com/northafrica/NDC/index.htm&quot;&gt;&lt;FONT color=#aa00aa&gt;Tunisia&lt;/FONT&gt;&lt;/A&gt; or &lt;A href=&quot;http://www.microsoft.com/europe/teched/home.asp&quot;&gt;&lt;FONT color=#aa00aa&gt;Spain&lt;/FONT&gt;&lt;/A&gt;.) Before I do that, I am going to use it one last time.&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;So my &lt;A href=&quot;http://www.corzen.com/&quot;&gt;&lt;FONT color=#aa00aa&gt;company&lt;/FONT&gt;&lt;/A&gt; has a Pocket PC (SDE/CF) application that uses a local SQL Server CE on the device with Merge Replication back with an enterprise SQL Server Publication. I have lots of experience making this work, and it works well. I won&amp;#146;t bash the Microsoft SQL Server CE, .&lt;?xml:namespace prefix = st1 ns = &quot;urn:schemas-microsoft-com:office:smarttags&quot; /&gt;&lt;st1:stocktickeruk w:st=&quot;on&quot;&gt;&lt;st1:stocktickerca w:st=&quot;on&quot;&gt;NET&lt;/st1:stocktickerca&gt;&lt;/st1:stocktickeruk&gt; CF, SDE teams at all. &lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;My problem is that at the office I have this all set up properly. We have a dedicated SQL Server production box and a dedicated IIS box. Life is good. Where things go bad is that I hired a developer who knows nothing about SQL Server CE, SDE, CF, etc, so I am setting up a local sandbox for him to play with while I am in &lt;A href=&quot;http://www.microsoft.com/northafrica/NDC/index.htm&quot;&gt;&lt;FONT color=#aa00aa&gt;Tunisia&lt;/FONT&gt;&lt;/A&gt; and &lt;A href=&quot;http://www.microsoft.com/europe/teched/home.asp&quot;&gt;&lt;FONT color=#aa00aa&gt;Spain&lt;/FONT&gt;&lt;/A&gt;. My goal is to give him the TechEd lab demos created by &lt;A href=&quot;http://www.microsoft.com/&quot;&gt;Kevin Collins&lt;/A&gt;, myself and others over the years. Setting up merge replication with a backend SQL Server to a device is pretty easy. The steps are as follows:&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;UL style=&quot;MARGIN-TOP: 0in&quot; type=disc&gt;
&lt;LI class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .5in&quot;&gt;Install the &lt;A href=&quot;http://www.microsoft.com/sql/ce/downloads/ce20.asp&quot;&gt;&lt;FONT color=#aa00aa&gt;SQL Server CE Server Tools&lt;/FONT&gt;&lt;/A&gt; on a IIS and SQL Server Machine(s) 
&lt;LI class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .5in&quot;&gt;Install the &lt;A href=&quot;http://www.microsoft.com/sql/ce/downloads/ce20.asp&quot;&gt;&lt;FONT color=#aa00aa&gt;SQL Server CE Developer Tools&lt;/FONT&gt;&lt;/A&gt; on a Developer Workstation 
&lt;LI class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .5in&quot;&gt;Install &lt;A href=&quot;http://www.microsoft.com/mobile/pocketpc/downloads/activesync37.asp&quot;&gt;&lt;FONT color=#aa00aa&gt;Active Sync 3.5&lt;/FONT&gt;&lt;/A&gt; or higher on the Developer Workstation 
&lt;LI class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .5in&quot;&gt;Install Visual Studio 2003 (make sure the SDE option is checked in VB &amp;amp; C#) on the Developer Workstation 
&lt;LI class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .5in&quot;&gt;Create a New Publication of your database via Enterprise Manager-make sure that this publication is for &amp;#147;SQL Server CE&amp;#148; and is set up for merge replication 
&lt;LI class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .5in&quot;&gt;Run the &lt;A href=&quot;http://www.microsoft.com/sql/ce/downloads/ce20.asp&quot;&gt;&lt;FONT color=#aa00aa&gt;SQL Server CE Server Tools&lt;/FONT&gt;&lt;/A&gt; to configure a Virtual Directory on IIS for the Pocket PC Client to talk to via code 
&lt;UL style=&quot;MARGIN-TOP: 0in&quot; type=circle&gt;
&lt;LI class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level2 lfo1; tab-stops: list 1.0in&quot;&gt;You do have to make sure that the proper security is set up fro the IUSER_MachineName account, a great security white paper is &lt;A href=&quot;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsqlce/html/sqlce_secmodelScen20.asp&quot;&gt;&lt;FONT color=#aa00aa&gt;here&lt;/FONT&gt;&lt;/A&gt;.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .5in&quot;&gt;Create a new Smart Device Application in VS 2003 
&lt;LI class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .5in&quot;&gt;Programmatically create a database on the device and then sync it back to the backend publication like so:&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: &apos;Lucida Console&apos;&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;Dim&lt;/SPAN&gt; ceRep &lt;SPAN style=&quot;COLOR: blue&quot;&gt;As&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue&quot;&gt;New&lt;/SPAN&gt; SqlCeReplication&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: &apos;Lucida Console&apos;&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;With&lt;/SPAN&gt; ceRep&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: &apos;Lucida Console&apos;&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;.Publisher = &quot;KILIMANJARO&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: &apos;Lucida Console&apos;&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;.PublisherDatabase = &quot;BYA_Data&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: &apos;Lucida Console&apos;&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;.PublisherLogin = &quot;sa&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: &apos;Lucida Console&apos;&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;.PublisherPassword = &quot;&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: &apos;Lucida Console&apos;&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;.Publication = &quot;BYA_Data_CE&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: &apos;Lucida Console&apos;&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;.Subscriber = &quot;SQLCENETCFLab&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: 0.5in; mso-layout-grid-align: none&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: &apos;Lucida Console&apos;&quot;&gt;.SubscriberConnectionString = _&lt;SPAN style=&quot;mso-tab-count: 6&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&quot;Provider=Microsoft.SQLServer.OLEDB.CE.2.0;Data Source=\my&amp;nbsp; documents\mycooldatabase.sdf&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=DA style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: &apos;Lucida Console&apos;; mso-ansi-language: DA&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;.InternetUrl = &quot;http://KILIMANJARO/SSCE_DLL/sscesa20.dll&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=DA style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: &apos;Lucida Console&apos;; mso-ansi-language: DA&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=DA style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: &apos;Lucida Console&apos;; mso-ansi-language: DA&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: &apos;Lucida Console&apos;&quot;&gt;&apos;Bring down initial subscription&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: &apos;Lucida Console&apos;&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;.Synchronize()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt 0.75in&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: &apos;Lucida Console&apos;&quot;&gt;End&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: &apos;Lucida Console&apos;&quot;&gt; &lt;SPAN style=&quot;COLOR: blue&quot;&gt;With&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;So I have done this a zillion times, install Visual Studio on the development machine along with the SQL Server CE development tools and I am off to the races. This part of course went smooth, except for the fact that I want to sandbox the machine and run everything off it all at once. So I have to make sure IIS 5.0 and SQL Server standard or enterprise is running. Simple you say, just install the SQL Server CE server tools as well on the same machine. The problem is that it took me about two hours to set this up (I have done this a hundred times in less than 15 minutes) because of &lt;A href=&quot;http://www.microsoft.com/sql/ce/techinfo/upgrading.asp&quot;&gt;&lt;FONT color=#aa00aa&gt;SERVICE PACK HELL.&lt;/FONT&gt;&lt;/A&gt; Basically the server tools would not install since the IIS and SQL Server service packs were too current for the installer on my machine. I did not have to roll back the SPs (that is good!), but I had to dig around and find &lt;A href=&quot;http://www.microsoft.com/sql/ce/techinfo/upgrading.asp&quot;&gt;&lt;FONT color=#aa00aa&gt;new installs&lt;/FONT&gt;&lt;/A&gt; from Microsoft.&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;So Microsoft, please TOSS ME A FRIGGIN&amp;#146; BONE here. Get rid of all of the old install drops and just require SQL Server SP3 to install anything-or create a better error message! I am not asking for much. This is such great technology, I don&amp;#146;t want people to be discouraged from using it due to poor locations of downloads.&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;[&lt;A href=&quot;http://radio.weblogs.com/0125758/&quot;&gt;Stephen Forte&apos;s Weblog&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/06/22.html#a1086</guid>
			<pubDate>Sun, 22 Jun 2003 13:09:06 GMT</pubDate>
			<source url="http://radio.weblogs.com/0125758/rss.xml">Stephen Forte&apos;s Weblog</source>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1086&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0101015%2F2003%2F06%2F22.html%23a1086</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/06/20.html#a1084</link>
			<description>&lt;P&gt;&lt;STRONG&gt;Yesterday&apos;s question:&lt;BR&gt;&lt;/STRONG&gt;You are a DTS developer who has just installed SQL Server Personal Edition and are trying to convert data from Access to SQL Server using the Transform Data task while cleansing the data using the multi-phase feature. For some reason though, you cannot see any of the individual phases when in the Transform Data task under the Transformations tab. How would you make it where you can see the feature?&lt;BR&gt;&lt;STRONG&gt;Answer&lt;/STRONG&gt;: Enable the feature in Enterprise Manager by right-clicking on Data Transformation Services | Properties and selecting the appropriate option.&lt;BR&gt;&lt;STRONG&gt;Explaination&lt;/STRONG&gt;: To turn on the ability to see the multi-phase data pump feature in DTS Designer, you have to right-click on Data Transformation Services in SQL Server Enterprise Manager and select Properties. Once in the Properties screen select Show Multi-phase Pump in DTS Designer. If this option is disabled, you can still run packages that use the multi-phase data pump feature, you just won&apos;t be able to edit it.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/06/20.html#a1084</guid>
			<pubDate>Fri, 20 Jun 2003 15:45:52 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1084</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/06/18.html#a1078</link>
			<description>&lt;TABLE cellSpacing=1 cellPadding=1 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD bgColor=#3366aa colSpan=3&gt;&lt;STRONG&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif color=#ffffff size=2&gt;Piping the Results of a Query to a Text File&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colSpan=3&gt;
&lt;P&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;The case where you have to send the results of a query to a text file comes up quite often in my job. Generally, this case can take the form of a maintenance script that you run through Agent nightly and would like to see the results in the morning. In the above example, you can create a CMDEXEC job to run the below command. This will output the results of the query inside c:inputquery.txt to a separate file. &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;mssql7binnosql -Uloginname -Ppassword -ic:inputquery.txt -oc:outputdiroutput.txt &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;You can also use -E switch for trusted connection if you don&apos;t want to hard code a password into your job. From an Query Analyzer window or inside the stored procedure you can run the above statement with an extended stored procedure called XP_CMDSHELL: &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;master..xp_cmdshell &apos;osql -Uloginname -Ppassword -Q&quot;select * from products&quot; -dNorthwind -oc:output.txt&apos; &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;The -Q parameter in the above syntax runs the query then exits osql. You may also want to add the additional NO_OUTPUT parameter at the end of query as shown below to supress any output to the client: &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;master..xp_cmdshell &apos;osql -Usa -Pmisty -q&quot;select * from products&quot; -dNorthwind -oc:output.txt&apos;, no_output &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;There are other methods of piping a query to a text file by using OLE Automation but they are much more complex than this method. &lt;/FONT&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;Brian Knight&lt;BR&gt;SQLServerCentral.com Co-Founder&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/06/18.html#a1078</guid>
			<pubDate>Wed, 18 Jun 2003 12:07:05 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1078</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/06/17.html#a1077</link>
			<description>&lt;P&gt;&lt;EM&gt;Source: Stephen Forte&apos;s Radio Weblog; 6/17/2003; 3:36:16 PM&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;New York, NY&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Long Live TSQL&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Why can I never remember the IsNull(foo,0) function in SQL Server. It is an ISNULL or NZ type of function that converts a null value to the item specified, which in this case is a zero. I don&apos;t know why I forget this code all the time is that I go back to my Access roots and try to do an NZ() or the Null to Zero function specific to the Access object model. (Old habits die hard!) Well I can usually IM my good friend Al for help, which I did today, but now here is an example of using IsNull in a TSQL string:&lt;/P&gt;
&lt;P&gt;update tblSummaryByLocation_WebSublocation &lt;BR&gt;set LocalNewsPaper=IsNUll(LocalNewsPaper1,0)+IsNUll(LocalNewsPaper2,0)+IsNUll(LocalNewsPaper3,0)&lt;BR&gt;WHERE Weekending_ID= @Weekending_ID&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am also sick of using the CASE statement, this code requires me to know something about my data, can&apos; t wait for the Yukon PIVOT keyword:&lt;/P&gt;
&lt;P&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.tlkpWeekEnding.WeekEnding_ID, dbo.tlkpWeekEnding.WeekEnding_DT, dbo.tlkpLocation.Location_ID, dbo.tlkpLocation.Location_NM, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.tblLocationSub_WebMapping.WebSublocation_ID, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.tblLocationSub_WebMapping.WebSublocation_DS,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUM(TotalListings) AS GrandTotal, SUM(CASE tlkpServiceProviders.Service_NM WHEN &apos;Hot Jobs&apos; THEN TotalListings ELSE 0 END) AS HotJobsTotal, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUM(CASE tlkpServiceProviders.Service_NM WHEN &apos;Monster&apos; THEN TotalListings ELSE 0 END) AS MonsterTotal, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUM(CASE tlkpServiceProviders.Service_NM WHEN &apos;Career Builder&apos; THEN TotalListings ELSE 0 END) AS CareerBuilderTotal&lt;/P&gt;
&lt;P&gt;FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.tblData INNER JOIN&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.trelServiceURL ON dbo.tblData.URL_ID = dbo.trelServiceURL.URL_ID INNER JOIN&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.tlkpLocation ON dbo.trelServiceURL.Location_ID = dbo.tlkpLocation.Location_ID INNER JOIN&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.tlkpServiceProviders ON dbo.trelServiceURL.Service_ID = dbo.tlkpServiceProviders.Service_ID INNER JOIN&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.tlkpWeekEnding ON dbo.tblData.WeekEnding_ID = dbo.tlkpWeekEnding.WeekEnding_ID INNER JOIN&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.tblLocationSub_WebMapping ON dbo.tlkpLocation.Location_ID = dbo.tblLocationSub_WebMapping.Location_ID INNER JOIN&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.tblLocationSub_WebMapping_Detail ON &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.tblLocationSub_WebMapping.WebSublocation_ID = dbo.tblLocationSub_WebMapping_Detail.WebSublocation_ID INNER JOIN&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.tblLocationSub ON dbo.trelServiceURL.SubLocation_ID = dbo.tblLocationSub.SubLocation_ID AND &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.tlkpLocation.Location_ID = dbo.tblLocationSub.Location_ID AND &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.tblLocationSub_WebMapping_Detail.Sublocation_ID = dbo.tblLocationSub.SubLocation_ID&lt;/P&gt;
&lt;P&gt;Where tlkpWeekEnding.weekending_id= @Weekending_ID&lt;/P&gt;
&lt;P&gt;GROUP BY dbo.tlkpWeekEnding.WeekEnding_ID, dbo.tlkpWeekEnding.WeekEnding_DT, dbo.tlkpLocation.Location_ID, dbo.tlkpLocation.Location_NM, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.tblLocationSub_WebMapping.WebSublocation_ID, dbo.tblLocationSub_WebMapping.WebSublocation_DS, dbo.tblLocationSub.SubLocation_ID, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.tblLocationSub.SubLocation_DS&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;[&lt;A href=&quot;http://radio.weblogs.com/0125758/&quot;&gt;Stephen Forte&apos;s Radio Weblog&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/06/17.html#a1077</guid>
			<pubDate>Tue, 17 Jun 2003 21:19:38 GMT</pubDate>
			<source url="http://radio.weblogs.com/0125758/rss.xml">Stephen Forte&apos;s Radio Weblog</source>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1077&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0101015%2F2003%2F06%2F17.html%23a1077</comments>
			</item>
		<item>
			<title>More Temporary Tables info</title>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/06/16.html#a1074</link>
			<description>&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;I think that the temporary tables get dropped as soon as the stored &lt;BR&gt;procedure finishes execution.&lt;BR&gt;&lt;BR&gt;You could try a simple test in Query Analyzer: &lt;BR&gt;- Open a connection&lt;BR&gt;- Execute the following:&lt;BR&gt;drop proc foo&lt;BR&gt;go&lt;BR&gt;create proc foo as&lt;BR&gt;create table #foo (col1 int)&lt;BR&gt;insert #foo values (1)&lt;BR&gt;select * from #foo&lt;BR&gt;--waitfor delay &apos;1:00:00&apos;&lt;BR&gt;go&lt;BR&gt;exec foo&lt;BR&gt;go&lt;BR&gt;select * from #foo&lt;BR&gt;go&lt;BR&gt;drop table #foo&lt;BR&gt;go&lt;BR&gt;select count(*) from tempdb..sysobjects where name like &apos;#foo%&apos;&lt;BR&gt;go&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;You will notice that once the procedure execution is over, the temporary &lt;BR&gt;table cannot be referred even from the same connection. &lt;BR&gt;&lt;BR&gt;- Now, uncomment the &quot;waitfor&quot;, drop &amp;amp; create &amp;amp; execute the proc.&amp;nbsp; From &lt;BR&gt;another connection, execute the following :&lt;BR&gt;select * from #foo&lt;BR&gt;go&lt;BR&gt;drop table #foo&lt;BR&gt;go&lt;BR&gt;select count(*) from tempdb..sysobjects where name like &apos;#foo%&apos;&lt;BR&gt;go&lt;BR&gt;&lt;BR&gt;You will notice that there is a table like &quot;#foo&quot;, but it cannot be &lt;BR&gt;referenced by anyone else. Also, once you cancel the execution of the proc, &lt;BR&gt;then that table cannot be noticed in the &quot;sysobjects&quot; system table.&lt;BR&gt;&lt;BR&gt;The temporary tables should get destroyed after stored procedure execution &lt;BR&gt;are completed, you do not need to &quot;DROP TABLE #foo&quot; at the end of the proc. &lt;BR&gt; You could execute DROP table if you wish to, but it is not necessary.&amp;nbsp;&amp;nbsp; If &lt;BR&gt;you still wish to &apos;monitor&apos; the temporary tables, you could query the &lt;BR&gt;&quot;tempdb..sysobjects&quot; system table. &lt;/FONT&gt;</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/06/16.html#a1074</guid>
			<pubDate>Mon, 16 Jun 2003 17:25:55 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1074</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/06/16.html#a1073</link>
			<description>&lt;P&gt;&lt;FONT color=black&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;&lt;STRONG&gt;The syntax to test if a temporary table already&amp;nbsp;exists or not?&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=black&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif&gt;&lt;FONT size=2&gt;create table #test (&lt;BR&gt;mycol int )&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;if object_id( &apos;tempdb..#test&apos; ) is not null&lt;BR&gt;print &apos;exists&apos;&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;</description>
			<guid>http://radio.weblogs.com/0101015/categories/sqlFaq/2003/06/16.html#a1073</guid>
			<pubDate>Mon, 16 Jun 2003 17:00:39 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=101015&amp;amp;p=1073</comments>
			</item>
		</channel>
	</rss>
