<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2380196260891125161</id><updated>2012-02-16T00:26:38.074-08:00</updated><category term='Common Table Expression (CTE)'/><category term='T-SQL'/><category term='Table Expression'/><category term='Cursors'/><category term='Foreign Keys'/><title type='text'>THE SQL SERVER BLOG</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.bihag.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2380196260891125161/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://www.bihag.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Bihag</name><uri>http://www.blogger.com/profile/16503827593636769915</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2380196260891125161.post-949099577922339803</id><published>2011-09-29T15:33:00.000-07:00</published><updated>2011-10-09T08:46:41.519-07:00</updated><title type='text'>Test Format Post</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Hi Baljeet,Thanks for reading it!Cheers up! I have not taken this from anywhere! :-)Here is the story behind the curtain. Actually the idea to write&lt;br /&gt;&lt;br /&gt;Maintaining and Administering Database Servers, Determining physical and logical database design, Database/Query Performance Tuning, Working closely with development team &amp;amp; Programming various database objects viz. stored procedures, views, triggers, writing complex SQL Scripts, Deploying Database scripts for applications on database servers, SSIS Development&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2380196260891125161-949099577922339803?l=www.bihag.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bihag.net/feeds/949099577922339803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2380196260891125161&amp;postID=949099577922339803' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2380196260891125161/posts/default/949099577922339803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2380196260891125161/posts/default/949099577922339803'/><link rel='alternate' type='text/html' href='http://www.bihag.net/2011/09/this-is-new-post-to-just-test.html' title='Test Format Post'/><author><name>Bihag</name><uri>http://www.blogger.com/profile/16503827593636769915</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2380196260891125161.post-4412214692042704979</id><published>2008-08-18T02:50:00.000-07:00</published><updated>2011-09-30T01:27:17.941-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Foreign Keys'/><category scheme='http://www.blogger.com/atom/ns#' term='Cursors'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>How to empty all the tables in a database?</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);"&gt;Sometimes it is exercised to empty all the tables in a database by deleting all the records from all the tables or by truncating every table in a database. This is indeed needed while we are developing a real life application and playing around with the database in order to carry out testing. But as it seems to be this task is not that much easy and trivial because usually there exists so many Primary Key-Foreign Key relationships between parent and child tables at many levels in such types of applications. If you start deleting records in improper sequence, records might not be deleted from every table successfully as depending upon the option ON DELETE CASCADE set on foreign tables records might not be deleted from parent tables as long as their corresponding child records are existing and you don’t want to be warned by SQL Server with the error message “&lt;b style=""&gt;&lt;i style=""&gt;The DELETE statement conflicted with the REFERENCE constraint…&lt;/i&gt;&lt;/b&gt;” every time you try to delete the records from some tables and at the same time you also don’t want to remember the complete hierarchy of parent-child relationships between all the tables in order to carry out delete operation in proper sequence. While emptying tables, sometimes we need to reset the SEED value of identity fields which the TRUNCATE command does it for us and DELETE command does not. But unfortunately TRUNCATE also does not work because as long as the foreign key constraints are existing, parent tables can’t to be truncated. Keeping all these in mind, I needed to create a solution which solves this problem. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);"&gt;&lt;o:p&gt;&lt;/o:p&gt;I wrote the following stored procedure that performs this task for us. Just create this stored procedure in the database for which the tables need to be emptied.&lt;/span&gt; &lt;/p&gt;      &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: green;"&gt;-----------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;Create&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; &lt;span style="color: blue;"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;Procedure&lt;/span&gt; dbo&lt;span style="color: gray;"&gt;.&lt;/span&gt;sp_EmptyAllTables &lt;span style="color: gray;"&gt;(&lt;/span&gt;@ResetIdentity &lt;span style="color: blue;"&gt;Bit&lt;/span&gt;&lt;span style="color: gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;As&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;Begin&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;Declare&lt;/span&gt; @SQL &lt;span style="color: blue;"&gt;VarChar&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;500&lt;span style="color: gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;Declare&lt;/span&gt; @TableName &lt;span style="color: blue;"&gt;VarChar&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;255&lt;span style="color: gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;Declare&lt;/span&gt; @ConstraintName &lt;span style="color: blue;"&gt;VarChar&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;500&lt;span style="color: gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;Declare&lt;/span&gt; curAllForeignKeys SCROLL &lt;span style="color: blue;"&gt;CurSor&lt;/span&gt; &lt;span style="color: blue;"&gt;For&lt;/span&gt; &lt;span style="color: blue;"&gt;Select&lt;/span&gt; Table_Name&lt;span style="color: gray;"&gt;,&lt;/span&gt;Constraint_Name &lt;span style="color: blue;"&gt;From&lt;/span&gt; &lt;span style="color: green;"&gt;Information_Schema.Table_Constraints&lt;/span&gt; &lt;span style="color: blue;"&gt;Where&lt;/span&gt; Constraint_Type&lt;span style="color: gray;"&gt;=&lt;/span&gt;&lt;span style="color: red;"&gt;'FOREIGN KEY'&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;Open&lt;/span&gt; curAllForeignKeys&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;Fetch&lt;/span&gt; Next &lt;span style="color: blue;"&gt;From&lt;/span&gt; curAllForeignKeys &lt;span style="color: blue;"&gt;INTO&lt;/span&gt; @TableName&lt;span style="color: gray;"&gt;,&lt;/span&gt;@ConstraintName&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;While&lt;/span&gt; &lt;span style="color: fuchsia;"&gt;@@FETCH_STATUS&lt;/span&gt;&lt;span style="color: gray;"&gt;=&lt;/span&gt;0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;Begin&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: blue;"&gt;Set&lt;/span&gt; @SQL &lt;span style="color: gray;"&gt;=&lt;/span&gt; &lt;span style="color: red;"&gt;'ALTER TABLE '&lt;/span&gt; &lt;span style="color: gray;"&gt;+&lt;/span&gt; @TableName &lt;span style="color: gray;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;' NOCHECK CONSTRAINT '&lt;/span&gt; &lt;span style="color: gray;"&gt;+&lt;/span&gt; @ConstraintName&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: blue;"&gt;Execute&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;@SQL&lt;span style="color: gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: blue;"&gt;Fetch&lt;/span&gt; Next &lt;span style="color: blue;"&gt;From&lt;/span&gt; curAllForeignKeys &lt;span style="color: blue;"&gt;INTO&lt;/span&gt; @TableName&lt;span style="color: gray;"&gt;,&lt;/span&gt;@ConstraintName&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;End&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;Declare&lt;/span&gt; curAllTables &lt;span style="color: blue;"&gt;Cursor&lt;/span&gt; &lt;span style="color: blue;"&gt;For&lt;/span&gt; &lt;span style="color: blue;"&gt;Select&lt;/span&gt; Table_Name &lt;span style="color: blue;"&gt;From&lt;/span&gt; &lt;span style="color: green;"&gt;Information_Schema.Tables&lt;/span&gt; &lt;span style="color: blue;"&gt;Where&lt;/span&gt; TABLE_TYPE&lt;span style="color: gray;"&gt;=&lt;/span&gt;&lt;span style="color: red;"&gt;'BASE TABLE'&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;Open&lt;/span&gt; curAllTables&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;Fetch&lt;/span&gt; Next &lt;span style="color: blue;"&gt;From&lt;/span&gt; curAllTables &lt;span style="color: blue;"&gt;INTO&lt;/span&gt; @TableName&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;While&lt;/span&gt; &lt;span style="color: fuchsia;"&gt;@@FETCH_STATUS&lt;/span&gt;&lt;span style="color: gray;"&gt;=&lt;/span&gt;0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;Begin&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: blue;"&gt;Set&lt;/span&gt; @SQL &lt;span style="color: gray;"&gt;=&lt;/span&gt; &lt;span style="color: red;"&gt;'DELETE FROM '&lt;/span&gt; &lt;span style="color: gray;"&gt;+&lt;/span&gt; @TableName&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color: blue;"&gt;If&lt;/span&gt; @ResetIdentity &lt;span style="color: gray;"&gt;=&lt;/span&gt; 1 &lt;span style="color: gray;"&gt;AND&lt;/span&gt; &lt;span style="color: fuchsia;"&gt;OBJECTPROPERTY&lt;/span&gt; &lt;span style="color: gray;"&gt;(&lt;/span&gt;&lt;span style="color: fuchsia;"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;@TableName&lt;span style="color: gray;"&gt;),&lt;/span&gt;&lt;span style="color: red;"&gt;'TableHasIdentity'&lt;/span&gt;&lt;span style="color: gray;"&gt;)=&lt;/span&gt;1 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;                  &lt;/span&gt;&lt;span style="color: blue;"&gt;Set&lt;/span&gt; @SQL &lt;span style="color: gray;"&gt;=&lt;/span&gt; @SQL &lt;span style="color: gray;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;'; DBCC CHECKIDENT('''&lt;/span&gt; &lt;span style="color: gray;"&gt;+&lt;/span&gt; @TableName &lt;span style="color: gray;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;''',RESEED,0)'&lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: blue;"&gt;Execute&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;@SQL&lt;span style="color: gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: blue;"&gt;Fetch&lt;/span&gt; Next &lt;span style="color: blue;"&gt;From&lt;/span&gt; curAllTables &lt;span style="color: blue;"&gt;INTO&lt;/span&gt; @TableName&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;End&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;Fetch&lt;/span&gt; First &lt;span style="color: blue;"&gt;From&lt;/span&gt; curAllForeignKeys &lt;span style="color: blue;"&gt;INTO&lt;/span&gt; @TableName&lt;span style="color: gray;"&gt;,&lt;/span&gt;@ConstraintName&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;While&lt;/span&gt; &lt;span style="color: fuchsia;"&gt;@@FETCH_STATUS&lt;/span&gt;&lt;span style="color: gray;"&gt;=&lt;/span&gt;0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;Begin&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: blue;"&gt;Set&lt;/span&gt; @SQL &lt;span style="color: gray;"&gt;=&lt;/span&gt; &lt;span style="color: red;"&gt;'ALTER TABLE '&lt;/span&gt; &lt;span style="color: gray;"&gt;+&lt;/span&gt; @TableName &lt;span style="color: gray;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;' CHECK CONSTRAINT '&lt;/span&gt; &lt;span style="color: gray;"&gt;+&lt;/span&gt; @ConstraintName&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: blue;"&gt;Execute&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;@SQL&lt;span style="color: gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: blue;"&gt;Fetch&lt;/span&gt; Next &lt;span style="color: blue;"&gt;From&lt;/span&gt; curAllForeignKeys &lt;span style="color: blue;"&gt;INTO&lt;/span&gt; @TableName&lt;span style="color: gray;"&gt;,&lt;/span&gt;@ConstraintName&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;End&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;Close&lt;/span&gt; curAllTables&lt;span style=""&gt;   &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;Deallocate&lt;/span&gt; curAllTables&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;Close&lt;/span&gt; curAllForeignKeys&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;Deallocate&lt;/span&gt; curAllForeignKeys&lt;span style=""&gt;   &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;End&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: green;"&gt;-----------------------&lt;/span&gt;&lt;br /&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);"&gt;The above stored procedure accepts one parameter (&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);"&gt;@ResetIdentity)&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);"&gt; which can be either 0 or 1 depending upon whether we need to reset the SEED of identity fields or not (1 for resetting otherwise 0). To empty all the tables while resetting the SEED value of identity fields at the same time, just call this store procedure in the following way:&lt;/span&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;sp_EmptyAllTables 1&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);"&gt;I hope this technique will save some of your time needed to perform the task of emptying all the tables in a database. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana; color: rgb(51, 51, 51);"&gt;-Bihag Thaker&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2380196260891125161-4412214692042704979?l=www.bihag.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bihag.net/feeds/4412214692042704979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2380196260891125161&amp;postID=4412214692042704979' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2380196260891125161/posts/default/4412214692042704979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2380196260891125161/posts/default/4412214692042704979'/><link rel='alternate' type='text/html' href='http://www.bihag.net/2008/08/how-to-empty-all-tables-in-database.html' title='How to empty all the tables in a database?'/><author><name>Bihag</name><uri>http://www.blogger.com/profile/16503827593636769915</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2380196260891125161.post-671136150397867381</id><published>2008-05-02T23:02:00.000-07:00</published><updated>2011-09-30T01:25:43.673-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Table Expression'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Common Table Expression (CTE)'/><title type='text'>CTE (Common Table Expression) In SQL Server 2005</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"&gt;Hello All,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"&gt;CTE (Common Table Expression) is a new feature provided by Microsoft SQL Server 2005. In real world, we often need to query hierarchical data from the database. For example, to get a list of hierarchical list of all the employees, list of product categories etc. CTE fulfills this requirement and let us query the database recursively.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"&gt;Let’s us do this practically. Assume that we store different categories of computer books and any category can have sub-categories. For this, we will create a table &lt;/span&gt;&lt;span style=";font-family:Verdana;font-size:10;"&gt;named tblCategories&lt;/span&gt;&lt;span style=";font-family:Verdana;font-size:10;"&gt; with the following structure and insert some categories into this table as shown below:&lt;/span&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;                &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"&gt;Create&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt; &lt;span style="color:blue;"&gt;Table&lt;/span&gt; tblCategories&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:gray;"&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt;&lt;span style=""&gt;      &lt;/span&gt;CategoryID &lt;span style="color:blue;"&gt;Int&lt;/span&gt; &lt;span style="color:blue;"&gt;Constraint&lt;/span&gt; PK_tblCategories_CategoryID &lt;span style="color:blue;"&gt;Primary&lt;/span&gt; &lt;span style="color:blue;"&gt;Key&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;CategoryName &lt;span style="color:blue;"&gt;VarChar&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;100&lt;span style="color:gray;"&gt;),&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;ParentCategoryID &lt;span style="color:blue;"&gt;Int&lt;/span&gt; &lt;span style="color:blue;"&gt;Constraint&lt;/span&gt; FK_tblCategories_ParentCategoryID &lt;span style="color:blue;"&gt;References&lt;/span&gt; tblCategories&lt;span style="color:gray;"&gt;(&lt;/span&gt;CategoryID&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:gray;"&gt;)&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt;GO&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"&gt;Insert&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt; &lt;span style="color:blue;"&gt;Into&lt;/span&gt; tblCategories&lt;span style="color:gray;"&gt;(&lt;/span&gt;CategoryID&lt;span style="color:gray;"&gt;,&lt;/span&gt;CategoryName&lt;span style="color:gray;"&gt;,&lt;/span&gt;ParentCategoryID&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;Values&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;1&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;'Languages'&lt;/span&gt;&lt;span style="color:gray;"&gt;,Null)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"&gt;Insert&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt; &lt;span style="color:blue;"&gt;Into&lt;/span&gt; tblCategories&lt;span style="color:gray;"&gt;(&lt;/span&gt;CategoryID&lt;span style="color:gray;"&gt;,&lt;/span&gt;CategoryName&lt;span style="color:gray;"&gt;,&lt;/span&gt;ParentCategoryID&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;Values&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;2&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;'Networking'&lt;/span&gt;&lt;span style="color:gray;"&gt;,Null)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"&gt;Insert&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt; &lt;span style="color:blue;"&gt;Into&lt;/span&gt; tblCategories&lt;span style="color:gray;"&gt;(&lt;/span&gt;CategoryID&lt;span style="color:gray;"&gt;,&lt;/span&gt;CategoryName&lt;span style="color:gray;"&gt;,&lt;/span&gt;ParentCategoryID&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;Values&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;3&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;'Databases'&lt;/span&gt;&lt;span style="color:gray;"&gt;,Null)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"&gt;Insert&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt; &lt;span style="color:blue;"&gt;Into&lt;/span&gt; tblCategories&lt;span style="color:gray;"&gt;(&lt;/span&gt;CategoryID&lt;span style="color:gray;"&gt;,&lt;/span&gt;CategoryName&lt;span style="color:gray;"&gt;,&lt;/span&gt;ParentCategoryID&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;Values&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;4&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;'Visual Basic'&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;1&lt;span style="color:gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"&gt;Insert&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt; &lt;span style="color:blue;"&gt;Into&lt;/span&gt; tblCategories&lt;span style="color:gray;"&gt;(&lt;/span&gt;CategoryID&lt;span style="color:gray;"&gt;,&lt;/span&gt;CategoryName&lt;span style="color:gray;"&gt;,&lt;/span&gt;ParentCategoryID&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;Values&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;5&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;'C#'&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;1&lt;span style="color:gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"&gt;Insert&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt; &lt;span style="color:blue;"&gt;Into&lt;/span&gt; tblCategories&lt;span style="color:gray;"&gt;(&lt;/span&gt;CategoryID&lt;span style="color:gray;"&gt;,&lt;/span&gt;CategoryName&lt;span style="color:gray;"&gt;,&lt;/span&gt;ParentCategoryID&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;Values&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;6&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;'Java'&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;1&lt;span style="color:gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"&gt;Insert&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt; &lt;span style="color:blue;"&gt;Into&lt;/span&gt; tblCategories&lt;span style="color:gray;"&gt;(&lt;/span&gt;CategoryID&lt;span style="color:gray;"&gt;,&lt;/span&gt;CategoryName&lt;span style="color:gray;"&gt;,&lt;/span&gt;ParentCategoryID&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;Values&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;7&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;'VB.Net'&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"&gt;Insert&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt; &lt;span style="color:blue;"&gt;Into&lt;/span&gt; tblCategories&lt;span style="color:gray;"&gt;(&lt;/span&gt;CategoryID&lt;span style="color:gray;"&gt;,&lt;/span&gt;CategoryName&lt;span style="color:gray;"&gt;,&lt;/span&gt;ParentCategoryID&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;Values&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;8&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;'VB 6.0'&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"&gt;Insert&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt; &lt;span style="color:blue;"&gt;Into&lt;/span&gt; tblCategories&lt;span style="color:gray;"&gt;(&lt;/span&gt;CategoryID&lt;span style="color:gray;"&gt;,&lt;/span&gt;CategoryName&lt;span style="color:gray;"&gt;,&lt;/span&gt;ParentCategoryID&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;Values&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;9&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;'Desktop Application Development with VB.Net'&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;7&lt;span style="color:gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"&gt;Insert&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt; &lt;span style="color:blue;"&gt;Into&lt;/span&gt; tblCategories&lt;span style="color:gray;"&gt;(&lt;/span&gt;CategoryID&lt;span style="color:gray;"&gt;,&lt;/span&gt;CategoryName&lt;span style="color:gray;"&gt;,&lt;/span&gt;ParentCategoryID&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;Values&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;10&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;'Web Application Development with VB.Net'&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;7&lt;span style="color:gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"&gt;Insert&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt; &lt;span style="color:blue;"&gt;Into&lt;/span&gt; tblCategories&lt;span style="color:gray;"&gt;(&lt;/span&gt;CategoryID&lt;span style="color:gray;"&gt;,&lt;/span&gt;CategoryName&lt;span style="color:gray;"&gt;,&lt;/span&gt;ParentCategoryID&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;Values&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;11&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;'ActiveX Objects and VB 6.0'&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;8&lt;span style="color:gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"&gt;Insert&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt; &lt;span style="color:blue;"&gt;Into&lt;/span&gt; tblCategories&lt;span style="color:gray;"&gt;(&lt;/span&gt;CategoryID&lt;span style="color:gray;"&gt;,&lt;/span&gt;CategoryName&lt;span style="color:gray;"&gt;,&lt;/span&gt;ParentCategoryID&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;Values&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;12&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;'Network Security'&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;2&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"&gt;Now if you query the database with the following SELECT command,&lt;/span&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"&gt;Select&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt; &lt;span style="color:gray;"&gt;*&lt;/span&gt; &lt;span style="color:blue;"&gt;From&lt;/span&gt; tblCategories &lt;span style="color:blue;"&gt;Where&lt;/span&gt; CategoryID &lt;span style="color:gray;"&gt;=&lt;/span&gt; 1&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"&gt;You will get the following result:&lt;/span&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;        &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:8;"&gt;CategoryID&lt;span style=""&gt;  &lt;/span&gt;CategoryName&lt;span style=""&gt;     &lt;/span&gt;ParentCategoryID&lt;br /&gt;----------- ---------------- ----------------&lt;br /&gt;1&lt;span style=""&gt;           &lt;/span&gt;Languages&lt;span style=""&gt;     &lt;/span&gt;&lt;span style=""&gt;   &lt;/span&gt;NULL&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;font-size:8;"&gt;(1 row(s) affected)&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;span style=";font-family:Verdana;font-size:10;"&gt;No surprise! But what, if you want to get the list of all the categories/sub-categories falling under the root category ‘Languages’?&lt;span style=""&gt;  &lt;/span&gt;To do this, you will need to perform a recursive query and to do that we use CTE.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"&gt;Let’s do this with the help of CTE. To create CTE we will use the following syntax:&lt;/span&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;            &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"&gt;With&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt; cteCategories&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"&gt;AS&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt; &lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;Select&lt;/span&gt; CategoryID&lt;span style="color:gray;"&gt;,&lt;/span&gt;CategoryName&lt;span style="color:gray;"&gt;,&lt;/span&gt;ParentCategoryID&lt;br /&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;From&lt;/span&gt; tblCategories&lt;br /&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;Where&lt;/span&gt; CategoryID&lt;span style="color:gray;"&gt;=&lt;/span&gt;1&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;Union&lt;/span&gt; &lt;span style="color:gray;"&gt;All&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:gray;"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;Select&lt;/span&gt; C&lt;span style="color:gray;"&gt;.&lt;/span&gt;CategoryID&lt;span style="color:gray;"&gt;,&lt;/span&gt;C&lt;span style="color:gray;"&gt;.&lt;/span&gt;CategoryName&lt;span style="color:gray;"&gt;,&lt;/span&gt;C&lt;span style="color:gray;"&gt;.&lt;/span&gt;ParentCategoryID&lt;br /&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;From&lt;/span&gt; tblCategories &lt;span style="color:blue;"&gt;As&lt;/span&gt; C &lt;span style="color:gray;"&gt;Inner&lt;/span&gt; &lt;span style="color:gray;"&gt;Join&lt;/span&gt; cteCategories &lt;span style="color:blue;"&gt;As&lt;/span&gt; P &lt;span style="color:blue;"&gt;On&lt;/span&gt; C&lt;span style="color:gray;"&gt;.&lt;/span&gt;ParentCategoryID &lt;span style="color:gray;"&gt;=&lt;/span&gt; P&lt;span style="color:gray;"&gt;.&lt;/span&gt;CategoryID&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"&gt;Select&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt; CategoryID&lt;span style="color:gray;"&gt;,&lt;/span&gt;CategoryName&lt;span style="color:gray;"&gt;,&lt;/span&gt;ParentCategoryID &lt;span style="color:blue;"&gt;From&lt;/span&gt; cteCategories&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"&gt;Run the above query and see the result as shown below:&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;                        &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:8;"&gt;CategoryID&lt;span style=""&gt;  &lt;/span&gt;CategoryName&lt;span style=""&gt;    &lt;/span&gt;&lt;span style=""&gt;                                     &lt;/span&gt;ParentCategoryID&lt;br /&gt;----------- ---------------------------------------------------- ----------------&lt;br /&gt;1&lt;span style=""&gt;           &lt;/span&gt;Languages&lt;span style=""&gt;                                            &lt;/span&gt;NULL&lt;br /&gt;4&lt;span style=""&gt;           &lt;/span&gt;Visual Basic&lt;span style=""&gt;                          &lt;/span&gt;&lt;span style=""&gt;               &lt;/span&gt;1&lt;br /&gt;5&lt;span style=""&gt;           &lt;/span&gt;C#&lt;span style=""&gt;                                                   &lt;/span&gt;1&lt;br /&gt;6&lt;span style=""&gt;           &lt;/span&gt;Java&lt;span style=""&gt;                                                 &lt;/span&gt;1&lt;br /&gt;7&lt;span style=""&gt;           &lt;/span&gt;VB.Net&lt;span style=""&gt;                                               &lt;/span&gt;4&lt;br /&gt;8&lt;span style=""&gt;           &lt;/span&gt;VB 6.0&lt;span style=""&gt;                    &lt;/span&gt;&lt;span style=""&gt;                           &lt;/span&gt;4&lt;br /&gt;11&lt;span style=""&gt;          &lt;/span&gt;ActiveX Objects and VB 6.0&lt;span style=""&gt;                           &lt;/span&gt;8&lt;br /&gt;9&lt;span style=""&gt;           &lt;/span&gt;Desktop Application Development with VB.Net&lt;span style=""&gt;          &lt;/span&gt;7&lt;br /&gt;10&lt;span style=""&gt;          &lt;/span&gt;Web Application Development with VB.Net&lt;span style=""&gt;              &lt;/span&gt;7&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;font-size:8;"&gt;(9 row(s) affected)&lt;/span&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"&gt;And this is what we indeed needed...!&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"&gt;I hope this article would have helped you. If you want to know how CTE worked in this example please wait a while for my upcoming articles.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Verdana;font-size:10;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"&gt;If you have any comments, they are always welcomed!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"&gt;Thank you.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"&gt;-Bihag Thaker&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2380196260891125161-671136150397867381?l=www.bihag.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bihag.net/feeds/671136150397867381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2380196260891125161&amp;postID=671136150397867381' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2380196260891125161/posts/default/671136150397867381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2380196260891125161/posts/default/671136150397867381'/><link rel='alternate' type='text/html' href='http://www.bihag.net/2008/05/cte-common-table-expression-in-sql.html' title='CTE (Common Table Expression) In SQL Server 2005'/><author><name>Bihag</name><uri>http://www.blogger.com/profile/16503827593636769915</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
