<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
  <channel>
    <title>DotNetKicks.com : Stories kicked by jimrice14</title>
    <description>Stories kicked by jimrice14</description>
    <link>http://www.dotnetkicks.com/</link>
    <language>en-us</language>
    <copyright>Atweb Publishing Ltd.</copyright>
    <docs>http://backend.userland.com/rss</docs>
    <generator>DotNetKicks.com - .NET links, community driven</generator>
    <ttl>30</ttl>
    <item>
      <title>UNPIVOT: Normalizing data on the fly</title>
      <description>Everyone seems to want to &amp;quot;pivot&amp;quot; or &amp;quot;cross tab&amp;quot; data, but knowing how to do the opposite is equally important.  In fact, I would argue that the skill of &amp;quot;unpivoting&amp;quot; data is more useful and more important and more relevant to a SQL programmer, since pivoting results in denormalized data, while unpivoting can transform non-normalized data into a normalized result set. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2008%2f04%2f23%2funpivot.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2008%2f04%2f23%2funpivot.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/UNPIVOT_Normalizing_data_on_the_fly</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/UNPIVOT_Normalizing_data_on_the_fly</guid>
      <pubDate>Tue, 29 Apr 2008 19:59:18 GMT</pubDate>
    </item>
    <item>
      <title>Simple DataViewReader class that implements IDataReader for a DataView</title>
      <description>I previously wrote that the DataTableReader class is really handy, but unfortunately there is no DataViewReader class.   So, I wrote one. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2008%2f02%2f28%2fDataViewReader.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2008%2f02%2f28%2fDataViewReader.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/adonet/Simple_DataViewReader_class_that_implements_IDataReader_for_a_DataView</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/adonet/Simple_DataViewReader_class_that_implements_IDataReader_for_a_DataView</guid>
      <pubDate>Thu, 28 Feb 2008 15:44:03 GMT</pubDate>
    </item>
    <item>
      <title>Some SELECTs will never return 0 results -- regardless of the criteria</title>
      <description>In SQL, the general rule of thumb is that the number of rows returned from a SELECT will be zero if your criteria did not match any data.  However,  there is an important exception to this rule; it does not apply when asking for aggregate calculations such as SUM(), MIN() or MAX(), without any grouping.  This is rather interesting and important to know and look out for, as it can cause some confusion and recently some of my ASP.NET code failed due to this.  Let's take a look. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f11%2f13%2fsql-aggregate-totals.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f11%2f13%2fsql-aggregate-totals.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/Some_SELECTs_will_never_return_0_results_regardless_of_the_criteria</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/Some_SELECTs_will_never_return_0_results_regardless_of_the_criteria</guid>
      <pubDate>Tue, 13 Nov 2007 16:17:24 GMT</pubDate>
    </item>
    <item>
      <title>Splitting a single DataTable into Parent/Child DataTables for Hierarch</title>
      <description>A simple function in C# that takes a single DataTable and creates a related parent DataTable in the same DataSet based on specified parameters.  This is useful if you only have a single result set from SQL (or any other data source) and you'd like to break that data up into two separate parent-child DataTables in order to use nested repeaters or any other type of parent-child processing on the data. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f11%2f02%2fparent-child-datatable-nested-repeaters.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f11%2f02%2fparent-child-datatable-nested-repeaters.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/adonet/Splitting_a_single_DataTable_into_Parent_Child_DataTables_for_Hierarch</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/adonet/Splitting_a_single_DataTable_into_Parent_Child_DataTables_for_Hierarch</guid>
      <pubDate>Fri, 02 Nov 2007 17:04:16 GMT</pubDate>
    </item>
    <item>
      <title>Taking a look at CROSS APPLY (SQL Server 2005)</title>
      <description>I think the easiest way to think of CROSS APPLY is that it is like doing a CROSS JOIN with a correlated sub-query instead of a derived table.  Let's take a look .... &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f10%2f18%2fsql-server-cross-apply.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f10%2f18%2fsql-server-cross-apply.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/Taking_a_look_at_CROSS_APPLY_SQL_Server_2005</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/Taking_a_look_at_CROSS_APPLY_SQL_Server_2005</guid>
      <pubDate>Tue, 23 Oct 2007 18:47:25 GMT</pubDate>
    </item>
    <item>
      <title>Avoid Mixing INNER and OUTER Joins in SQL</title>
      <description>I had previously written about the danger of Criteria on Outer Joins, but recently another situation popped up that occasionally causes issues with OUTER JOINS that I thought I might address.  The issue is when you have multiple tables joined in a single SELECT, and you mix OUTER and INNER JOINS together.  The end result doesn't always seem to &amp;quot;work&amp;quot;, and it can be tricky to understand exactly why and how to fix it without incurring additional unintended side effects. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f10%2f11%2fmixing-inner-outer-joins-sql.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f10%2f11%2fmixing-inner-outer-joins-sql.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/Avoid_Mixing_INNER_and_OUTER_Joins_in_SQL</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/Avoid_Mixing_INNER_and_OUTER_Joins_in_SQL</guid>
      <pubDate>Fri, 12 Oct 2007 16:16:03 GMT</pubDate>
    </item>
    <item>
      <title>Creating CSV strings in SQL: Should Concatenation and Formatting Be Do
</title>
      <description>A question I see very often in the SQLTeam forums is how to return data in a somewhat summarized form by concatenating multiple values into a single CSV columns. This can be done fairly easily in T-SQL, but as the formatting and concatenation requirements becomes more elaborate, be sure to ask yourself: Am I forcing presentation code into the database layer? &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f10%2f09%2fcsv-strings-database-or-presentation.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f10%2f09%2fcsv-strings-database-or-presentation.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/Creating_CSV_strings_in_SQL_Should_Concatenation_and_Formatting_Be_Do</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/Creating_CSV_strings_in_SQL_Should_Concatenation_and_Formatting_Be_Do
</guid>
      <pubDate>Tue, 09 Oct 2007 19:50:30 GMT</pubDate>
    </item>
    <item>
      <title>.Net: Passing user data with Exception back to the caller method</title>
      <description>A simple way of passing any user data in the Exception back to the caller method. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fmladenp%2farchive%2f2007%2f09%2f24%2f.Net-Passing-user-data-with-Exception-back-to-the-caller.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fmladenp%2farchive%2f2007%2f09%2f24%2f.Net-Passing-user-data-with-Exception-back-to-the-caller.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Net_Passing_user_data_with_Exception_back_to_the_caller_method</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Net_Passing_user_data_with_Exception_back_to_the_caller_method</guid>
      <pubDate>Tue, 25 Sep 2007 06:31:01 GMT</pubDate>
    </item>
    <item>
      <title>Conditional WHERE Clauses: Avoiding ORs and CASE Expressions</title>
      <description>Some tips regarding optimizing your SELECT statements when using conditions in your WHERE clause based on optional parameter values. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f09%2f18%2fsql-conditional-where-clauses.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f09%2f18%2fsql-conditional-where-clauses.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/Conditional_WHERE_Clauses_Avoiding_ORs_and_CASE_Expressions</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/Conditional_WHERE_Clauses_Avoiding_ORs_and_CASE_Expressions</guid>
      <pubDate>Wed, 19 Sep 2007 17:01:01 GMT</pubDate>
    </item>
    <item>
      <title>Working with Date-Only and Time-Only data in SQL Server</title>
      <description>It's all about using the right data types.  Sure, there's no &amp;quot;date&amp;quot; or &amp;quot;time&amp;quot; only data type available, but that's no excuse to return VARCHAR strings formatted as dates or times instead of the correct data type: datetime. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f08%2f29%2fSQL-Dates-and-Times.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f08%2f29%2fSQL-Dates-and-Times.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/Working_with_Date_Only_and_Time_Only_data_in_SQL_Server</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/Working_with_Date_Only_and_Time_Only_data_in_SQL_Server</guid>
      <pubDate>Thu, 30 Aug 2007 11:01:02 GMT</pubDate>
    </item>
    <item>
      <title>Don't forget about composite primary keys -- many programmers do!</title>
      <description>When you define more than one column as your primary key on a table, it is called a composite primary key.  And many experienced and otherwise talented database programmers have never used them and may not even be aware of them!  Yet, composite primary keys are very important when designing a good, solid data model with integrity. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f08%2f23%2fcomposite_primary_keys.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f08%2f23%2fcomposite_primary_keys.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/Don_t_forget_about_composite_primary_keys_many_programmers_do</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/Don_t_forget_about_composite_primary_keys_many_programmers_do</guid>
      <pubDate>Fri, 24 Aug 2007 02:46:02 GMT</pubDate>
    </item>
    <item>
      <title>The problem isn't the poor database model; It's that external code is </title>
      <description>Dealing with poorly designed databases is a simple and common fact of life for programmers. It happens, sometimes due to lack of experience or education, or sometimes because business requirements were never analyzed properly or they changed. It's hard to avoid poor database designs, but it takes only a simple concept to make fixing those designs much easier. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f08%2f15%2f60287.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f08%2f15%2f60287.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/The_problem_isn_t_the_poor_database_model_It_s_that_external_code_is</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/The_problem_isn_t_the_poor_database_model_It_s_that_external_code_is</guid>
      <pubDate>Wed, 15 Aug 2007 14:01:02 GMT</pubDate>
    </item>
    <item>
      <title>But *WHY* Must That Column Be Contained in an Aggregate Function or th</title>
      <description>Column 'xyz' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

Arggh!! There it is, yet again .. that annoying error message. Why is SQL so picky about this? What's the deal!?  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f07%2f20%2f60261.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f07%2f20%2f60261.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/But_WHY_Must_That_Column_Be_Contained_in_an_Aggregate_Function_or_th</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/But_WHY_Must_That_Column_Be_Contained_in_an_Aggregate_Function_or_th</guid>
      <pubDate>Mon, 23 Jul 2007 00:31:02 GMT</pubDate>
    </item>
    <item>
      <title>The &amp;quot;Nested WHERE-IN&amp;quot; Anti-Pattern</title>
      <description>There's a fascinating technique that I see many beginners use when writing SQL statements, and I call it the &amp;quot;Nested WHERE-IN&amp;quot; anti-pattern. It is, unfortunately, a common SQL technique used to avoid JOINS at all costs. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f07%2f12%2f60254.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f07%2f12%2f60254.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/The_Nested_WHERE_IN_Anti_Pattern</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/The_Nested_WHERE_IN_Anti_Pattern</guid>
      <pubDate>Thu, 12 Jul 2007 11:01:01 GMT</pubDate>
    </item>
    <item>
      <title>Data Types -- The Easiest Part of Database Design</title>
      <description>I see it time and time again in forums -- &amp;quot;dates&amp;quot; that don't sort properly, &amp;quot;numbers&amp;quot; that don't sort or sum() correctly, made up &amp;quot;boolean&amp;quot; conventions that are difficult to work with, and so on ... Of course, without a schema or DDL to see, it sometimes takes many posts going back and forth until we finally realize: &amp;quot;wait ... you aren't using a datetime data type to store these dates???&amp;quot; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f07%2f03%2f60248.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f07%2f03%2f60248.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/Data_Types_The_Easiest_Part_of_Database_Design</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/Data_Types_The_Easiest_Part_of_Database_Design</guid>
      <pubDate>Tue, 03 Jul 2007 07:39:31 GMT</pubDate>
    </item>
    <item>
      <title>Passing Arrays or Tables as Parameters to a Stored Procedure</title>
      <description>SQL Server has everything you need already in place to accept large, complicated sets of data as parameters in a stored procedure! &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f06%2f26%2f60240.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f06%2f26%2f60240.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/Passing_Arrays_or_Tables_as_Parameters_to_a_Stored_Procedure_1</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/Passing_Arrays_or_Tables_as_Parameters_to_a_Stored_Procedure_1</guid>
      <pubDate>Thu, 28 Jun 2007 07:16:01 GMT</pubDate>
    </item>
    <item>
      <title>Passing Arrays or Tables as Parameters to a Stored Procedure</title>
      <description>SQL is a set-based language, and often we wish to pass sets of data as a parameter to a stored procedure. For example, you might wish to pass a set of Customers to an invoice generating stored procedure, or a set of employees which for you'd like to calculate a particular bonus. There doesn't seem to be an easy way to accomplish this in T-SQL, but here's a simple technique that you might want to look at. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f06%2f26%2f60240.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f06%2f26%2f60240.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/Passing_Arrays_or_Tables_as_Parameters_to_a_Stored_Procedure</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/Passing_Arrays_or_Tables_as_Parameters_to_a_Stored_Procedure</guid>
      <pubDate>Tue, 26 Jun 2007 05:45:53 GMT</pubDate>
    </item>
    <item>
      <title>What I learned about SQL from using Access</title>
      <description>Microsoft Access / JET SQL doesn't support cursors; the only way to process rows one by one is using VBA and opening a Recordset. This means that you're stuck using set-based &amp;quot;queries&amp;quot;. So ... is this a good thing or a bad thing? A very, very good thing -- in fact, it's what makes Access a great tool for learning SQL! &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f06%2f13%2f60232.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f06%2f13%2f60232.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/What_I_learned_about_SQL_from_using_Access</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/What_I_learned_about_SQL_from_using_Access</guid>
      <pubDate>Thu, 14 Jun 2007 07:05:10 GMT</pubDate>
    </item>
    <item>
      <title>Data Modeling: Don't Let Output Dictate your Design</title>
      <description>I often talk about &amp;quot;database layer&amp;quot; versus &amp;quot;presentation&amp;quot; layer, but even the within just the database layer it is important to understand that how the data is physically stored does not always have to correlate with how the database returns results.  There is still room for your SQL statements to use Views, Stored Procedures and User-Defined Functions to occasionally transform your well designed, clean normalized data into something that is easier for reporting tools to consume -- especially if those tools are used by clients who don't have strong skills. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f06%2f05%2f60223.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f06%2f05%2f60223.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/Data_Modeling_Don_t_Let_Output_Dictate_your_Design</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/Data_Modeling_Don_t_Let_Output_Dictate_your_Design</guid>
      <pubDate>Tue, 12 Jun 2007 05:51:27 GMT</pubDate>
    </item>
    <item>
      <title>Why to avoid FULL OUTER JOINS -- and what to use instead</title>
      <description>Using FULL OUTER JOINS results in sloppy, inefficient SQL, with no true structure and NULLS in potentially every column in    the results. Here's some better ways to write your SELECT if you think you might need to use a FULL OUTER JOIN. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f04%2f19%2fFull-Outer-Joins.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f04%2f19%2fFull-Outer-Joins.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/Why_to_avoid_FULL_OUTER_JOINS_and_what_to_use_instead</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/Why_to_avoid_FULL_OUTER_JOINS_and_what_to_use_instead</guid>
      <pubDate>Thu, 31 May 2007 05:01:01 GMT</pubDate>
    </item>
    <item>
      <title>Real Programmers don't need to write test applications!</title>
      <description>Expert, experienced, enterprise-level programmers (the 3 E's!) simply don't have the time or the need to write silly little test programs to try out new techniques, right?  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f05%2f23%2f60215.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f05%2f23%2f60215.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/other/Real_Programmers_don_t_need_to_write_test_applications</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/other/Real_Programmers_don_t_need_to_write_test_applications</guid>
      <pubDate>Fri, 25 May 2007 08:01:01 GMT</pubDate>
    </item>
    <item>
      <title>Criteria on Outer Tables in SQL -- beware of this situation!</title>
      <description>When using an OUTER JOIN, you should put criteria on the outer table in the join condition, not in the WHERE clause. However, I often see a &amp;quot;workaround&amp;quot; to avoid this simple and solid rule, which might seem to work but actually doesn't. Since it is hard to explain why over and over in forum posts, I thought it might be helpful to address that here once and for all with an example. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f05%2f14%2f60205.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f05%2f14%2f60205.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/Criteria_on_Outer_Tables_in_SQL_beware_of_this_situation</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/Criteria_on_Outer_Tables_in_SQL_beware_of_this_situation</guid>
      <pubDate>Mon, 14 May 2007 06:29:07 GMT</pubDate>
    </item>
    <item>
      <title>Biggest difference between Temp tables and Table variables in Sql Serv</title>
      <description>One of the most important differences between Temp tables and Table variables is how they behave in transactions. See how. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fmladenp%2farchive%2f2007%2f05%2f13%2f60204.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fmladenp%2farchive%2f2007%2f05%2f13%2f60204.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/Biggest_difference_between_Temp_tables_and_Table_variables_in_Sql_Serv</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/Biggest_difference_between_Temp_tables_and_Table_variables_in_Sql_Serv</guid>
      <pubDate>Wed, 16 May 2007 09:31:01 GMT</pubDate>
    </item>
    <item>
      <title>Thinking set-based (in SQL) </title>
      <description>Are you really a &amp;quot;set based sql master&amp;quot; ?  Maybe not.  Don't forget that the key lesson you've learned from your procedural programming experience still applies! &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f04%2f30%2f60192.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f04%2f30%2f60192.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/Thinking_set_based_in_SQL</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/Thinking_set_based_in_SQL</guid>
      <pubDate>Wed, 09 May 2007 08:46:01 GMT</pubDate>
    </item>
    <item>
      <title>MS Access to SQL Server cheatsheet  </title>
      <description>If you work with both MS Access and SQL Server, or if you must do conversions between the two, this handy guide gives a recap of the differences between the two SQL dialects. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f03%2f30%2fQuick-Access-JET-SQL-to-T-SQL-Cheatsheet.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjeffs%2farchive%2f2007%2f03%2f30%2fQuick-Access-JET-SQL-to-T-SQL-Cheatsheet.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/tipsandtricks/MS_Access_to_SQL_Server_cheatsheet</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/tipsandtricks/MS_Access_to_SQL_Server_cheatsheet</guid>
      <pubDate>Tue, 17 Apr 2007 11:31:55 GMT</pubDate>
    </item>
  </channel>
</rss>