<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;CkIDRn87eip7ImA9WxBbGE4.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087</id><updated>2010-03-17T18:26:17.102+05:30</updated><title>SQL Yoga</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/SQLYoga" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="sqlyoga" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DUICQn8_eip7ImA9WxBbEUw.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-1751302617789292136</id><published>2010-03-07T21:04:00.001+05:30</published><updated>2010-03-09T12:22:43.142+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-09T12:22:43.142+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL Developer" /><category scheme="http://www.blogger.com/atom/ns#" term="sp_procoption" /><category scheme="http://www.blogger.com/atom/ns#" term="DBA" /><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Tips" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Services" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2005" /><title>SQL SERVER: Execute Stored Procedure when SQL SERVER is started</title><content type="html">&lt;p&gt;We have a requirements to execute Stored Procedure when SQL SERVER is started/restarted and we need to start some processes. I found that SQL SERVER provides a way to call Stored Procedure when SQL services are restarted.&lt;/p&gt; &lt;p&gt;SQL SERVER provides this SP: "&lt;strong&gt;sp_procoption&lt;/strong&gt;", which is auto executed every time when SQL SERVER service has been started. I found this SP and it helps me to figure it out the solution for the request as following way.&lt;/p&gt; &lt;p&gt;Let me show you how to use it. Syntax to use SP:&lt;/p&gt; &lt;div&gt;&lt;pre style="font-size: 8pt; overflow: visible; width: 100%; color: black; direction: ltr; line-height: 12pt"&gt;&lt;font color="#000000"&gt;&lt;font size="2"&gt;&lt;font face="Verdana"&gt;&lt;span style="color: #0000ff"&gt;EXEC&lt;/span&gt; SP_PROCOPTION     &lt;br /&gt;@ProcName = &lt;span style="color: #006080"&gt;'SPNAME'&lt;/span&gt;,    &lt;br /&gt;@OptionName = &lt;span style="color: #006080"&gt;'startup'&lt;/span&gt;,    &lt;br /&gt;@OptionValue = &lt;span style="color: #006080"&gt;'true/false OR on/off'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;i&gt;@ProcName&lt;/i&gt;, should be Stored procedure name which should be executed when SQL SERVER is started. This stored procedure must be in "master" database. &lt;br /&gt;&lt;li&gt;&lt;i&gt;@OptionName&lt;/i&gt;, should be "startup" always. &lt;br /&gt;&lt;li&gt;&lt;i&gt;@OptionValue&lt;/i&gt;, this should be set up to execute this given sp or not. If it is "true/on", given sp will be execute every time when SQL SERVER is started. If it is "false/off", it will not. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;That's it, I hope this is very clear to use this feature.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Reference : &lt;strong&gt;Tejas Shah (&lt;a href="http://www.SQLYoga.com"&gt;http://www.SQLYoga.com&lt;/a&gt;)&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-1751302617789292136?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/1751302617789292136/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2010/03/sql-server-execute-stored-procedure_07.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/1751302617789292136?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/1751302617789292136?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2010/03/sql-server-execute-stored-procedure_07.html" title="SQL SERVER: Execute Stored Procedure when SQL SERVER is started" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;CkENSX4ycSp7ImA9WxBQEUk.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-5471737375202766837</id><published>2010-01-10T10:55:00.000+05:30</published><updated>2010-01-10T21:54:58.099+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-10T21:54:58.099+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSIS" /><category scheme="http://www.blogger.com/atom/ns#" term="Data Transformation" /><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="Derived Column" /><category scheme="http://www.blogger.com/atom/ns#" term="SSIS Task" /><category scheme="http://www.blogger.com/atom/ns#" term="For Each Loop Container" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2005" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>SQL SERVER: SSIS - Derived Column Data Flow Transformation</title><content type="html">&lt;table border="1" cellspacing="0" cellpadding="2" width="740"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="740"&gt;&lt;font color="#000000" size="2" face="Arial"&gt;As I explained earlier about Foreach Loop Container. One of regular reader of blog send me an email about one issue.&lt;br&gt;&lt;br&gt;Let me share that problem with all readers.&lt;br&gt;&lt;br&gt;With this example, Foreach Loop Container, What to do if we want to save file name along with each row, so we can come to know that which row is from which file ?&lt;br&gt;&lt;br&gt;This is very practical problem that we need to fix. &lt;br&gt;&lt;br&gt;To solve this, I come up with following solution.&lt;br&gt;&lt;br&gt;1. I used "Derived Column", one of Data Flow Transformations in Data Flow Operations.&lt;/font&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;a href="http://lh5.ggpht.com/_55yV6koEy_w/S0n_RQYGxnI/AAAAAAAAJ1k/JLrffEBoB_w/s1600-h/SSIS%20For%20Each%20Loop%20Container%20II%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="SSIS For Each Loop Container II" border="0" alt="SSIS For Each Loop Container II" src="http://lh5.ggpht.com/_55yV6koEy_w/S0n_Sdki8JI/AAAAAAAAJ1o/MmNdPmgQSr0/SSIS%20For%20Each%20Loop%20Container%20II_thumb%5B1%5D.jpg?imgmax=800" width="644" height="391"&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;font color="#000000" size="2" face="Arial"&gt;2. Configure Derived Column:&lt;br&gt;&lt;br&gt;&lt;a href="http://lh5.ggpht.com/_55yV6koEy_w/S0n_TYVeCAI/AAAAAAAAJ1s/YUrwjFgqWus/s1600-h/SSIS%20Derived%20Column%20Data%20Flow%20Transformation%20Configuration%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="SSIS Derived Column Data Flow Transformation Configuration" border="0" alt="SSIS Derived Column Data Flow Transformation Configuration" src="http://lh4.ggpht.com/_55yV6koEy_w/S0n_UbZZBoI/AAAAAAAAJ1w/hsnZ46QvzII/SSIS%20Derived%20Column%20Data%20Flow%20Transformation%20Configuration_thumb%5B1%5D.jpg?imgmax=800" width="644" height="532"&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;As we have variable, FileName, as defined in, &lt;a href="http://www.sqlyoga.com/2009/11/sql-server-ssis-foreach-loop-container.html"&gt;SQL SERVER: SSIS - Foreach Loop Container&lt;/a&gt;. Here I used that variable as a new column. By dragging&amp;nbsp; that User variable to Expression.&lt;br&gt;&lt;br&gt;By default it assign UNICODE STRING DataType to this new column. We need to change it by:&lt;br&gt;&lt;br&gt;A. Right click on "Derived Column", Go to Show Advanced Editor&lt;br&gt;B. Set DataType to String as:&lt;br&gt;&lt;br&gt;&lt;a href="http://lh4.ggpht.com/_55yV6koEy_w/S0n_VGnmmOI/AAAAAAAAJ10/6ntBF7-qtBs/s1600-h/SSIS%20For%20Each%20Loop%20Container%20II%20Advanced%20Editor%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="SSIS For Each Loop Container II Advanced Editor" border="0" alt="SSIS For Each Loop Container II Advanced Editor" src="http://lh6.ggpht.com/_55yV6koEy_w/S0n_WD-QGsI/AAAAAAAAJ14/xFnCWjrPKoo/SSIS%20For%20Each%20Loop%20Container%20II%20Advanced%20Editor_thumb%5B1%5D.jpg?imgmax=800" width="644" height="601"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;3. That's it. Now just add it to Destination Column Mapping with your Database column.&lt;br&gt;&lt;br&gt;Let me know your suggestions.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="740"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-5471737375202766837?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/5471737375202766837/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2010/01/sql-server-ssis-derived-column-data.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/5471737375202766837?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/5471737375202766837?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2010/01/sql-server-ssis-derived-column-data.html" title="SQL SERVER: SSIS - Derived Column Data Flow Transformation" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;CEcDRX0-cCp7ImA9WxBQEkw.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-8311403136378319857</id><published>2009-12-20T17:56:00.000+05:30</published><updated>2010-01-11T17:44:34.358+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-11T17:44:34.358+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Ahmedabad User Group" /><category scheme="http://www.blogger.com/atom/ns#" term="PIVOT" /><title>SQL SERVER: Presentation at Ahmedabad User Group Meeting</title><content type="html">&lt;table cellspacing="0" cellpadding="2" width="740" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="700"&gt; &lt;p align="left"&gt;&lt;font color="#000000"&gt;&lt;font face="Arial" size="2"&gt;Last Saturday, 19th December 2009, I presented session on "&lt;strong&gt;Write CROSS TAB Query with PIVOT&lt;/strong&gt;".&lt;br&gt;&lt;br&gt;This was a regular User Group meeting held every third Saturday of month.&lt;br&gt;&lt;br&gt;This user group is running by &lt;/font&gt;&lt;a href="http://beyondrelational.com/blogs/jacob/"&gt;&lt;font face="Arial" size="2"&gt;Jacob Sebastian&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;font face="Arial" size="2"&gt;, President of PASS regional committee for the Asia and Middle East region.&lt;br&gt;&lt;br&gt;Last Saturday, I get a chance to present a session with &lt;/font&gt;&lt;a href="http://beyondrelational.com/blogs/jacob/"&gt;&lt;font face="Arial" size="2"&gt;Jacob Sebastian (SQL SERVER MVP)&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;font face="Arial" size="2"&gt; and &lt;/font&gt;&lt;a href="http://blog.sqlauthority.com/"&gt;&lt;font face="Arial" size="2"&gt;Pinalkumar Dave (SQL SERVER MVP).&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;font color="#000000"&gt;&lt;font face="Arial" size="2"&gt;I am member of this User Group from last 1.5 years. and I found that it such a great event to learn something new from great leaders.&lt;br&gt;&lt;br&gt;If you need PowerPoint Presentation and Demo script, send me an email at: &lt;/font&gt;&lt;a href="mailto:tejasnshah.it@gmail.com"&gt;&lt;font face="Arial" size="2"&gt;tejasnshah.it@gmail.com&lt;/font&gt;&lt;/a&gt;&lt;font face="Arial" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font size="2"&gt;&lt;font face="Arial"&gt;&lt;font color="#000000"&gt;If you want to register for Ahmedabad User Group meeting, please register at: &lt;/font&gt;&lt;font color="#000000"&gt;&lt;a href="http://ahmedabad.sqlpass.org"&gt;Click Here&lt;/a&gt;&lt;/font&gt;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;font color="#000000" size="2"&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;&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;a href="http://www.SQLYoga.com"&gt;Tejas Shah (me)&lt;/a&gt;&lt;/font&gt;&lt;font color="#000000" size="2"&gt;&lt;/p&gt;&lt;a href="http://lh6.ggpht.com/_55yV6koEy_w/Sy9sm0_nONI/AAAAAAAAJy8/RMytvZoFDdU/s1600-h/DSC00144%5B1%5D.jpg"&gt;&lt;img title="DSC00144" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="454" alt="DSC00144" src="http://lh6.ggpht.com/_55yV6koEy_w/Sy9p_5D7oBI/AAAAAAAAJzA/0-jALtmtN0E/DSC00144_thumb.jpg?imgmax=800" width="604" border="0"&gt;&lt;/a&gt;&lt;/font&gt;  &lt;p align="center"&gt;&lt;a href="http://www.SQLYoga.com"&gt;&lt;font color="#000000" size="2"&gt;Tejas Shah (Me)&lt;/font&gt;&lt;/a&gt;&lt;font color="#000000" size="2"&gt;, Presenting session &lt;br&gt;&lt;/font&gt;&lt;/p&gt;&lt;a href="http://lh4.ggpht.com/_55yV6koEy_w/S0sV8JA8LuI/AAAAAAAAJ18/WDqEyiYacoA/s1600-h/DSC001503.jpg"&gt;&lt;font color="#000000" size="2"&gt;&lt;a href="http://lh4.ggpht.com/_55yV6koEy_w/S0sV8JA8LuI/AAAAAAAAJ2A/EzkhpGtMq54/s1600-h/DSC001501.jpg"&gt;&lt;img title="DSC00150" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="454" alt="DSC00150" src="http://lh4.ggpht.com/_55yV6koEy_w/Sy9qCsr-NwI/AAAAAAAAJzQ/dxUFmzgunhc/DSC00150_thumb.jpg?imgmax=800" width="604" border="0"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/a&gt;&lt;br&gt; &lt;p align="center"&gt;&lt;a href="http://www.SQLYoga.com"&gt;&lt;font color="#000000" size="2"&gt;Tejas Shah (Me)&lt;/font&gt;&lt;/a&gt;&lt;font color="#000000" size="2"&gt;, Presenting session&lt;/font&gt;&lt;a href="http://lh5.ggpht.com/_55yV6koEy_w/Sy9qEvbLi6I/AAAAAAAAJ2I/G3i6uBiULBU/s1600-h/DSC001496.jpg"&gt;&lt;font color="#000000" size="2"&gt;&lt;a href="http://lh5.ggpht.com/_55yV6koEy_w/Sy9qEvbLi6I/AAAAAAAAJ2Q/x77lduvzcO4/s1600-h/DSC001491.jpg"&gt;&lt;img title="DSC00149" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="454" alt="DSC00149" src="http://lh5.ggpht.com/_55yV6koEy_w/Sy9qGJTNuPI/AAAAAAAAJzg/fjlu3-S76TA/DSC00149_thumb.jpg?imgmax=800" width="604" border="0"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://blog.SQLAuthority.com"&gt;&lt;font color="#000000" size="2"&gt;Pinalkumar Dave (SQL SERVER MVP)&lt;/font&gt;&lt;/a&gt;&lt;font color="#000000" size="2"&gt;, Presenting session&lt;/font&gt;&lt;a href="http://lh6.ggpht.com/_55yV6koEy_w/Sy9qHUgFoUI/AAAAAAAAJ2Y/4uMFkb_37IY/s1600-h/DSC001567.jpg"&gt;&lt;font color="#000000" size="2"&gt;&lt;a href="http://lh6.ggpht.com/_55yV6koEy_w/Sy9qHUgFoUI/AAAAAAAAJ2g/muinDpDQrQw/s1600-h/DSC00156.jpg"&gt;&lt;img title="DSC00156" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="454" alt="DSC00156" src="http://lh3.ggpht.com/_55yV6koEy_w/Sy9qL_yQCxI/AAAAAAAAJzw/HTEa9w6IGAI/DSC00156_thumb.jpg?imgmax=800" width="604" border="0"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;strong&gt;&lt;font color="#000000" size="2"&gt;User Group Members with President, Jacob Sebastian, Pinalkumar Dave&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;/a&gt;&lt;font color="#000000" size="2"&gt;&lt;a href="http://lh3.ggpht.com/_55yV6koEy_w/S0sWHx7A5CI/AAAAAAAAJ2o/YKF07Ls3BWE/s1600-h/UG%20Group%20Photo%5B3%5D.jpg"&gt;&lt;img title="UG Group Photo" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="454" alt="UG Group Photo" src="http://lh3.ggpht.com/_55yV6koEy_w/S0sWJyuUF4I/AAAAAAAAJ2s/FmExvKVftUw/UG%20Group%20Photo_thumb%5B1%5D.jpg?imgmax=800" width="604" border="0"&gt;&lt;/a&gt; &lt;/font&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font color="#000000" size="2"&gt;If you want to register for Ahmedabad User Group meeting, please register at: &lt;/font&gt;&lt;font color="#000000" size="2"&gt;&lt;a href="http://ahmedabad.sqlpass.org"&gt;Click Here&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="740"&gt;&lt;font color="#000000" size="2"&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="740"&gt;&lt;font color="#000000" size="2"&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;font color="#000000" size="2"&gt;&lt;/font&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-8311403136378319857?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/8311403136378319857/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/12/sql-server-write-cross-tab-query-with.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/8311403136378319857?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/8311403136378319857?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/12/sql-server-write-cross-tab-query-with.html" title="SQL SERVER: Presentation at Ahmedabad User Group Meeting" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry gd:etag="W/&quot;D0YGRHw4fip7ImA9WxBTEk0.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-6434530121207960479</id><published>2009-12-07T10:00:00.000+05:30</published><updated>2009-12-07T22:28:45.236+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-07T22:28:45.236+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="Transfer SQL Jobs" /><category scheme="http://www.blogger.com/atom/ns#" term="SSIS Task" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2005" /><title>SQL SERVER: SSIS - Transfer Jobs Task</title><content type="html">&lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;The Transfer Jobs task can be configured to transfer all jobs, or only specified jobs. You can also indicate whether the transferred jobs are enabled at the destination.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;The jobs to be transferred may already exist on the destination. The Transfer Jobs task can be configured to handle existing jobs in the following ways: &lt;/font&gt; &lt;ul&gt; &lt;li&gt;&lt;font color="#000000" size="2" face="Arial"&gt;Overwrite existing jobs. &lt;/font&gt; &lt;li&gt;&lt;font color="#000000" size="2" face="Arial"&gt;Fail the task when duplicate jobs exist. &lt;/font&gt; &lt;li&gt;&lt;font color="#000000" size="2" face="Arial"&gt;Skip duplicate jobs.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;font color="#000000" size="2" face="Arial"&gt;Let's take an example to easily understand how to use Transfer Jobs Task with SSIS.&lt;br&gt;&lt;br&gt;1. Select and Drag, Transfer Jobs Task, from Container Flow Items to designer surface.&lt;br&gt;&lt;/font&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_55yV6koEy_w/Svz9znB3ybI/AAAAAAAAJv8/XN3TtrSW0yA/SSISTransferJobsTask8.jpg?imgmax=800"&gt;&lt;font color="#000000" size="2" face="Arial"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="SSIS Transfer Jobs Task" border="0" alt="SSIS Transfer Jobs Task" src="http://lh5.ggpht.com/_55yV6koEy_w/Svz93tJOWdI/AAAAAAAAJwA/OzZmUE1CpLM/SSISTransferJobsTask_thumb4.jpg?imgmax=800" width="563" height="102"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font color="#000000" size="2" face="Arial"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;2. To configure a task, Right click on&amp;nbsp; Transfer Jobs Task, which we dragged to Design surface. Click on "Edit.", you will get page as:&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_55yV6koEy_w/Svz94QTDPRI/AAAAAAAAJwE/cdj1EEshqNw/s1600-h/SSISTransferjobsTaskEditor10.jpg"&gt;&lt;font color="#000000" size="2" face="Arial"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="SSIS Transfer jobs Task Editor " border="0" alt="SSIS Transfer jobs Task Editor " src="http://lh5.ggpht.com/_55yV6koEy_w/Svz95J70ghI/AAAAAAAAJwI/hIP2X_W5PHo/SSISTransferjobsTaskEditor_thumb8.jpg?imgmax=800" width="600" height="508"&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;3. SSIS Transfer Jobs Task - &lt;strong&gt;General :&lt;/strong&gt; Here we need to assign unique name to this task and also we can specify brief description, so we will get idea why we need to design this task.&lt;br&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Arial"&gt;&lt;font color="#000000"&gt;4. SSIS Transfer Jobs Task - &lt;strong&gt;Jobs : &lt;/strong&gt;Jobs page of the Transfer Jobs Task Editor dialog box is required to specify properties for copying one or more SQL Server Agent jobs from one instance of SQL Server to another.&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_55yV6koEy_w/Svz958-Nf0I/AAAAAAAAJwM/iE72PylqtI4/s1600-h/SSISTransferjobsTaskEditorJobs4.jpg"&gt;&lt;font color="#000000" size="2" face="Arial"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="SSIS Transfer jobs Task Editor Jobs" border="0" alt="SSIS Transfer jobs Task Editor Jobs" src="http://lh4.ggpht.com/_55yV6koEy_w/Svz961OQg3I/AAAAAAAAJwQ/QIEh3kGGmNk/SSISTransferjobsTaskEditorJobs_thumb.jpg?imgmax=800" width="604" height="512"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font color="#000000" size="2" face="Arial"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;Let's take a view how each properties are used.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Arial"&gt;&lt;font color="#000000"&gt;&lt;strong&gt;SourceConnection: &lt;/strong&gt;Select a SMO connection manager in the list, or click &lt;strong&gt;&amp;lt;New connection...&amp;gt;&lt;/strong&gt; to create a new connection to the source server&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Arial"&gt;&lt;font color="#000000"&gt;&lt;strong&gt;DestinationConnection: &lt;/strong&gt;Select a SMO connection manager in the list, or click &lt;strong&gt;&amp;lt;New connection...&amp;gt;&lt;/strong&gt; to create a new connection to the destination server.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;dt&gt;&lt;font size="2"&gt;&lt;font face="Arial"&gt;&lt;font color="#000000"&gt;&lt;strong&gt;TransferAllJobs: &lt;/strong&gt;Select whether the task should copy all or only the specified SQL Server Agent jobs from the source to the destination server.&amp;nbsp; This contains two options: &lt;/font&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;/p&gt; &lt;dt&gt;&lt;font color="#000000" size="2" face="Arial"&gt;TRUE: Which copy all jobs &lt;/font&gt; &lt;dt&gt;&lt;font color="#000000" size="2" face="Arial"&gt;FALSE: Which copy only selected jobs. &lt;/font&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Arial"&gt;&lt;font color="#000000"&gt;&lt;strong&gt;JobsList: &lt;/strong&gt;Click the browse button (.) to select the jobs to copy. At least one job must be selected.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_55yV6koEy_w/Svz97kY9ZBI/AAAAAAAAJwU/FQVhybmtaMs/SSISTransferjobsTaskEditorJobList4.jpg?imgmax=800"&gt;&lt;font color="#000000" size="2" face="Arial"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="SSIS Transfer jobs Task Editor JobList" border="0" alt="SSIS Transfer jobs Task Editor JobList" src="http://lh3.ggpht.com/_55yV6koEy_w/Svz9_e7RhRI/AAAAAAAAJwY/2Fd3fiULHJQ/SSISTransferjobsTaskEditorJobList_th.jpg?imgmax=800" width="604" height="512"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font color="#000000" size="2" face="Arial"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;&lt;/font&gt;&lt;/p&gt; &lt;dt&gt;&lt;font size="2"&gt;&lt;font face="Arial"&gt;&lt;font color="#000000"&gt;&lt;strong&gt;IfObjectExists: &lt;/strong&gt;Select how the task should handle jobs of the same name that already exist on the destination server. &lt;/font&gt;&lt;/font&gt;&lt;/font&gt; &lt;dt&gt;&lt;font color="#000000" size="2" face="Arial"&gt;This property has the options listed in the following table: &lt;/font&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_55yV6koEy_w/Svz-AYmuAeI/AAAAAAAAJwc/PwMFnG7eX7g/s1600-h/SSISTransferjobsTaskEditorObjectExis%5B1%5D.jpg"&gt;&lt;font color="#000000" size="2" face="Arial"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="SSIS Transfer jobs Task Editor ObjectExist" border="0" alt="SSIS Transfer jobs Task Editor ObjectExist" src="http://lh3.ggpht.com/_55yV6koEy_w/Svz-BJ160fI/AAAAAAAAJwg/14y2vZfrmmE/SSISTransferjobsTaskEditorObjectExis.jpg?imgmax=800" width="604" height="512"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font color="#000000" size="2" face="Arial"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2" face="Arial"&gt;FailTask:&lt;strong&gt; &lt;/strong&gt;If job of the same name already exists on the Destination Server then task will fail. &lt;/font&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2" face="Arial"&gt;Overwrite:&lt;strong&gt; &lt;/strong&gt;If job of the same name already exists on the Destination Server then task will overwrite the job. &lt;/font&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2" face="Arial"&gt;Skip:&lt;strong&gt; &lt;/strong&gt;If job of the same name already exists on the Destination Server then task will skip that job. &lt;/font&gt; &lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;&lt;/font&gt;&lt;/p&gt; &lt;dt&gt;&lt;font size="2"&gt;&lt;font face="Arial"&gt;&lt;font color="#000000"&gt;&lt;strong&gt;EnableJobsAtDestination: &lt;/strong&gt;Select whether the jobs copied to the destination server should be enabled. This contains two options: &lt;/font&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;TRUE: Enable jobs on destination server. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;FALSE: Disable jobs on destination server. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;5. SSIS Transfer Jobs Task - &lt;strong&gt;Expressions: &lt;/strong&gt;Click the ellipsis to open the Property Expressions Editor dialog box.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;a href="http://lh4.ggpht.com/_55yV6koEy_w/Svz-B58gudI/AAAAAAAAJwk/CfAr_PCciJ8/s1600-h/SSISTransferjobsTaskEditorExpression%5B2%5D.jpg"&gt;&lt;font color="#000000" size="2" face="Arial"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="SSIS Transfer jobs Task Editor Expression" border="0" alt="SSIS Transfer jobs Task Editor Expression" src="http://lh5.ggpht.com/_55yV6koEy_w/Svz-C-HNHRI/AAAAAAAAJwo/PXIkRb6lfn8/SSISTransferjobsTaskEditorExpression.jpg?imgmax=800" width="604" height="512"&gt;&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;Property expressions update the values of properties when the package is run. The expressions are evaluated and their results are used instead of the values to which you set the properties when you configured the package and package objects. The expressions can include variables and the functions and operators that the expression language provides.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;Now let's run task, by right click on task and click on Execute Task, as shown in following figure. You can either Execute Package by right click on Package name, from Solution Explorer.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_55yV6koEy_w/Svz-Du2CivI/AAAAAAAAJws/pnELdorYxDs/s1600-h/SSISTransferjobsTaskEditorExecute4.jpg"&gt;&lt;font color="#000000" size="2" face="Arial"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="SSIS Transfer jobs Task Editor Execute" border="0" alt="SSIS Transfer jobs Task Editor Execute" src="http://lh3.ggpht.com/_55yV6koEy_w/Svz-Eozo8XI/AAAAAAAAJww/QC0exy-yZj4/SSISTransferjobsTaskEditorExecute_th.jpg?imgmax=800" width="604" height="399"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font color="#000000" size="2" face="Arial"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;Once you run this then all/selected jobs will be transferred to destination server as per given criteria.&lt;br&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2" face="Arial"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/p&gt;&lt;/dt&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-6434530121207960479?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/6434530121207960479/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/12/sql-server-ssis-transfer-jobs-task.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/6434530121207960479?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/6434530121207960479?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/12/sql-server-ssis-transfer-jobs-task.html" title="SQL SERVER: SSIS - Transfer Jobs Task" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;D04DR3s5eip7ImA9WxNaGEk.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-5017257244557178609</id><published>2009-12-03T10:00:00.000+05:30</published><updated>2009-12-03T18:42:56.522+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T18:42:56.522+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL Developer" /><category scheme="http://www.blogger.com/atom/ns#" term="Import Excel file" /><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2005" /><title>SQL SERVER: How to Read Excel file by TSQL</title><content type="html">&lt;table cellspacing="0" cellpadding="2" width="740" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="740"&gt;&lt;font face="Arial" color="#000000" size="2"&gt;Many times developers asked that, they want to import data from Excel file.&lt;br&gt;&lt;br&gt;We can do this by many ways with SQL SERVER.&lt;br&gt;&lt;br&gt;1. We can use SSIS package&lt;br&gt;2. Import/Export Wizard&lt;br&gt;3. T-SQL&lt;br&gt;&lt;br&gt;Today, I am going to explain, How to import data from Excel file by TSQL.&lt;br&gt;&lt;br&gt;&lt;/font&gt; &lt;p&gt;&lt;font face="Arial" color="#000000" size="2"&gt;To import Excel file by TSQL, we need to do following:&lt;/font&gt; &lt;p&gt;&lt;font face="Arial" color="#000000" size="2"&gt;1. Put Excel file on server, means we need to put files on server, if we are accessing it from local.&lt;/font&gt; &lt;p&gt;&lt;font face="Arial" color="#000000" size="2"&gt;2. Write following TSQL, to read data from excel file&lt;/font&gt;&lt;pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=SELECT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;SELECT&lt;/a&gt; Name, Email, Phone &lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=FROM&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;FROM&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=OPENROWSET&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;OPENROWSET&lt;/a&gt;('&lt;span style="color: #8b0000"&gt;Microsoft.Jet.OLEDB.4.0&lt;/span&gt;',&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;'&lt;span style="color: #8b0000"&gt;Excel 8.0;Database=C:\SQLYoga.xls&lt;/span&gt;', [&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=SQL&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;SQL&lt;/a&gt;$])&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;font face="Arial" color="#000000" size="2"&gt;&lt;a href="http://lh4.ggpht.com/_55yV6koEy_w/Sxe5Um2KuXI/AAAAAAAAJxc/NoI0s-t7Zrg/s1600-h/ExcelFile%5B3%5D.jpg"&gt;&lt;img title="ExcelFile" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="96" alt="ExcelFile" src="http://lh6.ggpht.com/_55yV6koEy_w/Sxe5VtSkEbI/AAAAAAAAJxg/7C1TfyrUj4Y/ExcelFile_thumb%5B1%5D.jpg?imgmax=800" width="584" border="0"&gt;&lt;/a&gt; &lt;/font&gt;&lt;br /&gt;&lt;p&gt;&lt;font face="Arial" color="#000000" size="2"&gt;NOTE: Here, Excel file is on "C:\" named "SQLYoga.xls", and I am reading sheet "SQL" from this excel file&lt;/font&gt;&lt;br /&gt;&lt;p&gt;&lt;font face="Arial" color="#000000" size="2"&gt;If you want to insert excel data into table, &lt;/font&gt;&lt;pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=INSERT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;INSERT&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=INTO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;INTO&lt;/a&gt; [Info]&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=SELECT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;SELECT&lt;/a&gt; Name, Email, Phone &lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=FROM&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;FROM&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=OPENROWSET&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;OPENROWSET&lt;/a&gt;('&lt;span style="color: #8b0000"&gt;Microsoft.Jet.OLEDB.4.0&lt;/span&gt;',&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;'&lt;span style="color: #8b0000"&gt;Excel 8.0;Database=C:\test\SQLYoga.xls&lt;/span&gt;', [&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=SQL&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;SQL&lt;/a&gt;$])&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;font face="Arial" color="#000000" size="2"&gt;That's it.&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-5017257244557178609?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/5017257244557178609/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/12/sql-server-how-to-read-excel-file-by.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/5017257244557178609?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/5017257244557178609?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/12/sql-server-how-to-read-excel-file-by.html" title="SQL SERVER: How to Read Excel file by TSQL" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry gd:etag="W/&quot;DEMCQHs5eSp7ImA9WxNaGEk.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-4803630207453819228</id><published>2009-12-02T10:00:00.000+05:30</published><updated>2009-12-03T18:51:01.521+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T18:51:01.521+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Table Variable" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Developer" /><category scheme="http://www.blogger.com/atom/ns#" term="Cursor" /><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2005" /><category scheme="http://www.blogger.com/atom/ns#" term="Query Performance" /><title>SQL SERVER: How to remove cursor</title><content type="html">&lt;table cellspacing="0" cellpadding="2" width="740" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="740"&gt;&lt;font face="Arial" color="#000000" size="2"&gt;Many times developer ask me that How can they remove Cursor?&lt;br&gt;&lt;br&gt;They need to increase Query Performance, that's why they need to remove SQL SERVER Cursor and find the alternate way to accomplish the same.&lt;br&gt;&lt;/font&gt;&lt;pre&gt;&lt;font face="Arial" color="#000000" size="2"&gt;Please find this code to remove cursor with Table variable:&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;&lt;span style="color: #008000"&gt;--declare table to keep records to be processed&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=DECLARE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;DECLARE&lt;/a&gt; @&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Table&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Table&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=AS&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;AS&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=TABLE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;TABLE&lt;/a&gt;(AutoID &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=INT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;INT&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=IDENTITY&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;IDENTITY&lt;/a&gt;, &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Column&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Column&lt;/a&gt;1 &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=VARCHAR&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;VARCHAR&lt;/a&gt;(100), &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Column&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Column&lt;/a&gt;2 &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=VARCHAR&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;VARCHAR&lt;/a&gt;(100))&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;span style="color: #008000"&gt;--populate table variable with data that we want to process&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=INSERT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;INSERT&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=INTO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;INTO&lt;/a&gt; @&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Table&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Table&lt;/a&gt;(&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Column&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Column&lt;/a&gt;1, &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Column&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Column&lt;/a&gt;2)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=SELECT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;SELECT&lt;/a&gt;    &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Column&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Column&lt;/a&gt;1, &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Column&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Column&lt;/a&gt;2&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=FROM&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;FROM&lt;/a&gt;    &amp;lt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Table&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Table&lt;/a&gt;&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=WHERE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;WHERE&lt;/a&gt;    &amp;lt;Conditions&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;span style="color: #008000"&gt;--declare variables to process each record&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=DECLARE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;DECLARE&lt;/a&gt; @inc &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=INT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;INT&lt;/a&gt;, @cnt &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=INT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;INT&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;&lt;span style="color: #008000"&gt;--Assign increment counter&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=SELECT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;SELECT&lt;/a&gt; @inc = 1&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;&lt;span style="color: #008000"&gt;--Get Number of records to be processed&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=SELECT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;SELECT&lt;/a&gt; @cnt = &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=COUNT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;COUNT&lt;/a&gt;(*)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=FROM&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;FROM&lt;/a&gt; @&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Table&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Table&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=WHILE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;WHILE&lt;/a&gt; @inc &amp;lt;= @cnt &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=BEGIN&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;BEGIN&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;    &lt;span style="color: #008000"&gt;--As we have AutoID declared as IDENTITY, it always get only one record.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;    &lt;span style="color: #008000"&gt;--Get values in Variable and process it as you want.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;    &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=SELECT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;SELECT&lt;/a&gt;    @&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Column&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Column&lt;/a&gt;1 = &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Column&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Column&lt;/a&gt;1,&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;            @&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Column&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Column&lt;/a&gt;2 = &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Column&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Column&lt;/a&gt;2&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;    &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=FROM&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;FROM&lt;/a&gt;    @&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Table&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Table&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;    &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=WHERE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;WHERE&lt;/a&gt;    AutoID = @inc        &lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;    &lt;span style="color: #008000"&gt;--do your calculation here&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;    ....&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;    ....&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;         &lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;     &lt;span style="color: #008000"&gt;--Select next record&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;     &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=SET&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;SET&lt;/a&gt; @inc = @inc = 1 &lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=END&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;END&lt;/a&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre&gt;&lt;font face="Arial" color="#000000" size="2"&gt;By this way, we can remove CURSOR by Table variable. &lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font face="Arial" color="#000000" size="2"&gt;It is quite easy to implement.&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font face="Arial" color="#000000" size="2"&gt;One more benefit is: It will process one record at a time, so it locks only that record at a time.&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font face="Arial" color="#000000" size="2"&gt;Let me know if you have any questions.&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-4803630207453819228?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/4803630207453819228/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/12/sql-server-how-to-remove-cursor.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/4803630207453819228?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/4803630207453819228?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/12/sql-server-how-to-remove-cursor.html" title="SQL SERVER: How to remove cursor" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DUcNQX46cSp7ImA9WxNaFEs.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-3184331393279346225</id><published>2009-11-28T05:04:00.000+05:30</published><updated>2009-11-29T09:28:10.019+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-29T09:28:10.019+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="For Each Container Task" /><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="SSIS Task" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2005" /><title>SQL SERVER SSIS: How to assign Connection from variable</title><content type="html">&lt;table border="0" cellspacing="0" cellpadding="1" width="740"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="738"&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Last Article, &lt;/font&gt;&lt;a href="http://www.sqlyoga.com/2009/11/sql-server-ssis-foreach-loop-container.html"&gt;&lt;font size="2" face="Arial"&gt;SSIS - Foreach Loop Container&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Arial"&gt;, We need to assign dynamic connection to file connection, so SSIS For each loop Task can take each file from folder.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Lets configure File connection from variable for &lt;/font&gt;&lt;a href="http://www.sqlyoga.com/2009/11/sql-server-ssis-foreach-loop-container.html"&gt;&lt;font size="2" face="Arial"&gt;SSIS - Foreach Loop Container&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Arial"&gt;.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;What we need to do is, we need to process each file from folder, so we need to assign value from variable to File connection, so SSIS Task will read that file and process that file.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;To assign FileConnection dynamicaly we need to do following.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;1. Right click on File Connection, click Properties.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;2. Set DelayValidation = "False", as we need to assign connection dynamically.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;3. Click on "Expression", and enter variable&amp;nbsp; name, which we used in &lt;/font&gt;&lt;a href="http://www.sqlyoga.com/2009/11/sql-server-ssis-foreach-loop-container.html"&gt;&lt;font size="2" face="Arial"&gt;SSIS - Foreach Loop Container&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Arial"&gt;.&lt;/font&gt;&lt;/p&gt; &lt;h1&gt;&lt;a href="http://lh6.ggpht.com/_55yV6koEy_w/SxHxTRSv42I/AAAAAAAAJxU/9W5FconpRCg/s1600-h/SSIS%20Foreach%20Loop%20Container%20Connection%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="SSIS Foreach Loop Container Connection" border="0" alt="SSIS Foreach Loop Container Connection" src="http://lh3.ggpht.com/_55yV6koEy_w/SxHxUPdBjCI/AAAAAAAAJxY/hY2Mt4frook/SSIS%20Foreach%20Loop%20Container%20Connection_thumb%5B2%5D.jpg?imgmax=800" width="644" height="294"&gt;&lt;/a&gt; &lt;/h1&gt; &lt;h1&gt;&lt;font size="2" face="ariu"&gt;&lt;/font&gt;&lt;/h1&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;That's it.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;It will assign connection from variable and process that file.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Let me know if you have any question for the same.&lt;/font&gt;&lt;/p&gt;&lt;/td&gt; &lt;h1&gt;&lt;/tr&gt;&lt;/tbody&gt; &lt;table border="1" cellspacing="0" cellpadding="2" width="740"&gt; &lt;tbody&gt; &lt;tr&gt;&lt;font size="2" face="ariu"&gt;&lt;/font&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/h1&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-3184331393279346225?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/3184331393279346225/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/11/sql-server-ssis-how-to-assign.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/3184331393279346225?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/3184331393279346225?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/11/sql-server-ssis-how-to-assign.html" title="SQL SERVER SSIS: How to assign Connection from variable" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></entry><entry gd:etag="W/&quot;AkUHRXwyeip7ImA9WxNaFE0.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-5476248576872164594</id><published>2009-11-09T08:53:00.000+05:30</published><updated>2009-11-28T17:07:14.292+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-28T17:07:14.292+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSIS" /><category scheme="http://www.blogger.com/atom/ns#" term="DBA" /><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="SSIS Task" /><category scheme="http://www.blogger.com/atom/ns#" term="For Each Loop Container" /><title>SQL SERVER: SSIS - Foreach Loop Container</title><content type="html">&lt;p&gt;&lt;font size="2" face="Arial"&gt;Today, I am going to explain SSIS For Each Loop Task. I am sure that it will be easy to configure SSIS Package with Foreach Loop task, after you read this article. &lt;/font&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;The Foreach Loop container defines a repeating control flow in a package. The loop implementation is similar to &lt;strong&gt;Foreach&lt;/strong&gt; looping structure in programming languages. In a package, looping is enabled by using a Foreach enumerator. The Foreach Loop container repeats the control flow for each member of a specified enumerator. &lt;/font&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Many times, user asks that I want to process all files from my folder to database. This is my answer to all of those users. SSIS comes up with For Each Loop which did the same. &lt;/font&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Now I'm assuming that you're familiar with using the SQL Dev Studio tools and building basic packages. If this isn't the case, I recommend working your way through the Integration Services using my earlier posts. &lt;/font&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_55yV6koEy_w/SvmdSes4XXI/AAAAAAAAJvg/8BKd02Aj9Rk/s1600-h/SSISForeachLoopContainer14.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="SSIS Foreach Loop Container" border="0" alt="SSIS Foreach Loop Container" src="http://lh4.ggpht.com/_55yV6koEy_w/SvmdTB5m9-I/AAAAAAAAJvk/5Gre7kBG4Og/SSISForeachLoopContainer_thumb10.jpg?imgmax=800" width="604" height="179"&gt;&lt;/a&gt;  &lt;p&gt;&lt;font size="2" face="Arial"&gt;1. &lt;strong&gt;SSIS Foreach Loop Container&lt;/strong&gt; - &lt;strong&gt;General :&lt;/strong&gt; Here we need to assign unique name to this container and also we can specify brief description, so we will get idea why we need to design this container.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;br&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_55yV6koEy_w/SvmdUHkYx_I/AAAAAAAAJvo/Tp1bxi3HAfU/s1600-h/SSISForeachLoopContainerGeneral4.jpg"&gt;&lt;font color="#666666" size="2"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="SSIS Foreach Loop Container General" border="0" alt="SSIS Foreach Loop Container General" src="http://lh3.ggpht.com/_55yV6koEy_w/SvmdVS2EyiI/AAAAAAAAJvs/ulTwklhLmC0/SSISForeachLoopContainerGeneral_thum.jpg?imgmax=800" width="604" height="512"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="aria"&gt;2. &lt;strong&gt;SSIS Foreach Loop Container &lt;/strong&gt;- &lt;strong&gt;Collection : &lt;/strong&gt;Use the Collection page of the Foreach Loop Editor dialog box to specify the enumerator type and configure the enumerator.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_55yV6koEy_w/SvmdWOxJrMI/AAAAAAAAJvw/yIEyeBbV2CE/s1600-h/SSISForeachLoopContainerCollection4.jpg"&gt;&lt;font color="#666666" size="2" face="aria"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="SSIS Foreach Loop Container Collection" border="0" alt="SSIS Foreach Loop Container Collection" src="http://lh5.ggpht.com/_55yV6koEy_w/SvmdXHoPQBI/AAAAAAAAJv4/ETrFPpqB2y8/SSISForeachLoopContainerCollection_t.jpg?imgmax=800" width="604" height="512"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="aria"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="aria"&gt;Select the enumerator type from the list. This property has the options listed as follows:&lt;/font&gt;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;font size="2"&gt;&lt;font face="aria"&gt;&lt;strong&gt;Foreach File Enumerator: &lt;/strong&gt;Enumerate files &lt;/font&gt;&lt;/font&gt; &lt;li&gt;&lt;font size="2"&gt;&lt;font face="aria"&gt;&lt;strong&gt;Foreach Item Enumerator&lt;/strong&gt;: Enumerate values in an item &lt;/font&gt;&lt;/font&gt; &lt;li&gt;&lt;font size="2"&gt;&lt;font face="aria"&gt;&lt;strong&gt;Foreach ADO Enumerator: &lt;/strong&gt;Enumerate tables or rows in tables &lt;/font&gt;&lt;/font&gt; &lt;li&gt;&lt;font size="2"&gt;&lt;font face="aria"&gt;&lt;strong&gt;Foreach ADO.NET Schema Rowset Enumerator: &lt;/strong&gt;Enumerate a schema &lt;/font&gt;&lt;/font&gt; &lt;li&gt;&lt;font size="2"&gt;&lt;font face="aria"&gt;&lt;strong&gt;Foreach From Variable Enumerator: &lt;/strong&gt;Enumerate the value in a variable &lt;/font&gt;&lt;/font&gt; &lt;li&gt;&lt;font size="2"&gt;&lt;font face="aria"&gt;&lt;strong&gt;Foreach Nodelist Enumerator: &lt;/strong&gt;Enumerate nodes in an XML document &lt;/font&gt;&lt;/font&gt; &lt;li&gt;&lt;font size="2"&gt;&lt;font face="aria"&gt;&lt;strong&gt;Foreach SMO Enumerator: &lt;/strong&gt;Enumerate a SMO object&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="aria"&gt;Let me explain with &lt;strong&gt;Foreach File Enumerator&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="aria"&gt;We can use this Foreach File enumerator to enumerate files in a folder. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="aria"&gt;The content of the folders and subfolders that the Foreach File enumerator enumerates might change while the loop is executing because external processes or tasks in the loop add, rename, or delete files while the loop is executing. This means that a number of unexpected situations may occur: &lt;/font&gt; &lt;p&gt;&lt;font size="2" face="aria"&gt;In &lt;strong&gt;Folder&lt;/strong&gt; option, provide the path of the root folder to enumerate. In &lt;strong&gt;Files&lt;/strong&gt; option, specify the files to enumerate.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="aria"&gt;If wildcard characters are specified in the Files option, then the fully-qualified paths that are returned match the filter.&lt;/font&gt;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;font size="2"&gt;&lt;font face="aria"&gt;&lt;strong&gt;Fully qualified: &lt;/strong&gt;Select to retrieve the fully qualified path of file names. &lt;/font&gt;&lt;/font&gt; &lt;li&gt;&lt;font size="2"&gt;&lt;font face="aria"&gt;&lt;strong&gt;Name and extension&lt;/strong&gt;: Select to retrieve the file names and their file name extensions. &lt;/font&gt;&lt;/font&gt; &lt;li&gt;&lt;font size="2"&gt;&lt;font face="aria"&gt;&lt;strong&gt;Name only&lt;/strong&gt;: Select to retrieve only the file names.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;font size="2" face="aria"&gt;3. &lt;strong&gt;SSIS Foreach Loop Container &lt;/strong&gt;- &lt;strong&gt;Variable Mappings : &lt;/strong&gt;Use the Variables Mappings page of the Foreach Loop Editor dialog box to map variables to the collection value. The value of the variable is updated with the collection values on each iteration of the loop.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="aria"&gt;&lt;strong&gt;Variable: &lt;/strong&gt;Select an existing variable, or click &amp;lt;New variable...&amp;gt; to create a new variable.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="aria"&gt;&lt;strong&gt;Index:&lt;/strong&gt; If using the Foreach Item enumerator, specify the index of the column in the collection value to map to the variable. For other enumerator types, the index is read-only.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="aria"&gt;Once we configured, &lt;strong&gt;For Each Loop container&lt;/strong&gt;, Lets add the process that we want. Here what I am going to do is:&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="aria"&gt;1. &lt;/font&gt;&lt;a href="http://www.sqlyoga.com/2009/10/sql-server-ssis-basic-example-of-data.html"&gt;&lt;font size="2" face="aria"&gt;Data Flow Task&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="aria"&gt;.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="aria"&gt;NOTE: We can add any other tasks to this container. I took &lt;/font&gt;&lt;a href="http://www.sqlyoga.com/2009/10/sql-server-ssis-basic-example-of-data.html"&gt;&lt;font size="2" face="aria"&gt;Data flow process&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="aria"&gt;, as its already explained by this BLOG.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="aria"&gt;Here lets see the logical scenario of &lt;strong&gt;For Each Container Task&lt;/strong&gt;.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="aria"&gt;First, From the selected folder, fetch all the files and assign file path to the variable.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="aria"&gt;Second, For &lt;/font&gt;&lt;a href="http://www.sqlyoga.com/2009/10/sql-server-ssis-basic-example-of-data.html"&gt;&lt;font size="2" face="aria"&gt;Data Flow Process&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="aria"&gt;, process the file from the folder and execute data flow.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="aria"&gt;NOTE: For Data Flow Process, we need to assign Connection from variable. ( as we assigned variable after each loop, we need to process new file from the folder). So How can we configure File connection to use new file?&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="aria"&gt;Please refer to my next article for &lt;a href="http://www.sqlyoga.com/2009/11/sql-server-ssis-how-to-assign.html"&gt;How to assign Connection from variable&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="aria"&gt;That's it. This is what we need to design for "For Each Loop". &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="aria"&gt;Let me know if there is any difficulties you have to design this package.&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-5476248576872164594?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/5476248576872164594/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/11/sql-server-ssis-foreach-loop-container.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/5476248576872164594?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/5476248576872164594?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/11/sql-server-ssis-foreach-loop-container.html" title="SQL SERVER: SSIS - Foreach Loop Container" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry gd:etag="W/&quot;AkMBRX04cCp7ImA9WxNaFE0.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-925231140013868733</id><published>2009-11-02T01:15:00.000+05:30</published><updated>2009-11-28T17:10:54.338+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-28T17:10:54.338+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSIS" /><category scheme="http://www.blogger.com/atom/ns#" term="For Each Container Task" /><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2005" /><title>SQL SERVER SSIS - For Loop Container</title><content type="html">&lt;p&gt;&lt;font size="2"&gt;&lt;font face="Arial"&gt;Today, I am going to explain SQL SERVER SSIS, &lt;strong&gt;For Loop Container. &lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;The For Loop container defines a repeating control flow in a package. The loop implementation is the same concept of the &lt;strong&gt;For&lt;/strong&gt; looping structure in programming languages. In each repeat of the loop, the For Loop container evaluates an expression and repeats its workflow until the expression evaluates to &lt;strong&gt;False&lt;/strong&gt;.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;The For Loop container uses&lt;strong&gt; &lt;/strong&gt;the following elements to define the loop: &lt;/font&gt; &lt;ul&gt; &lt;li&gt;&lt;font size="2" face="Arial"&gt;An optional initialization expression that assigns values to the loop counters. &lt;/font&gt; &lt;li&gt;&lt;font size="2" face="Arial"&gt;An evaluation expression that contains the expression used to test whether the loop should stop or continue. &lt;/font&gt; &lt;li&gt;&lt;font size="2" face="Arial"&gt;An optional iteration expression that increments or decrements the loop counter.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Let's take an example to easily understand how to use For Loop Container with SSIS. Here I take example to iterate &lt;/font&gt;&lt;a href="http://www.sqlyoga.com/2009/10/sql-server-ssis-activex-task.html"&gt;&lt;font size="2" face="Arial"&gt;ActiveX Task&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Arial"&gt;.&lt;br&gt;&lt;br&gt;1. Select and Drag, For Loop Container, from Container Flow Items to designer surface and add ActiveX Script Task to run inside the loop.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_55yV6koEy_w/Su5WAv0tqQI/AAAAAAAAJvI/Hpofmu8r_qw/s1600-h/SSISForLoopContainer%5B1%5D.jpg"&gt;&lt;font size="2" face="Arial"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="SSIS For Loop Container" border="0" alt="SSIS For Loop Container" src="http://lh5.ggpht.com/_55yV6koEy_w/Su5WBit8xrI/AAAAAAAAJvM/FOet5BRNvA8/SSISForLoopContainer_thumb.jpg?imgmax=800" width="604" height="164"&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;2. To configure this container, right click on this and click on 'edit'.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_55yV6koEy_w/Su5WCi4SEmI/AAAAAAAAJvQ/PW8P4N0CZ6c/s1600-h/SSIS%20For%20Loop%20Container%20editor%5B3%5D.jpg"&gt;&lt;font size="2" face="Arial"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="SSIS For Loop Container editor" border="0" alt="SSIS For Loop Container editor" src="http://lh6.ggpht.com/_55yV6koEy_w/Su5WDh3lJcI/AAAAAAAAJvU/3Cq_m-GlwVs/SSIS%20For%20Loop%20Container%20editor_thumb%5B1%5D.jpg?imgmax=800" width="604" height="512"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Arial"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;First we need to create variables to run this package based on variables. We can create variables by: View -&amp;gt; Other Windows -&amp;gt; Variables. Please find variable screen as below:&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_55yV6koEy_w/Su5WEJYWARI/AAAAAAAAJvY/HJm8hhZDm9U/s1600-h/ForLoopContainer23.jpg"&gt;&lt;font size="2" face="Arial"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="For Loop Container 2" border="0" alt="For Loop Container 2" src="http://lh3.ggpht.com/_55yV6koEy_w/Su5WFMxIt0I/AAAAAAAAJvc/P3nm9AJcmy8/ForLoopContainer2_thumb1.jpg?imgmax=800" width="604" height="146"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Arial"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Here, I specified both variables. Count and Increment, that I am going to use for this example. I specified value Count = 20. So loop will be executed 20 times.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Let's take a view how each properties are used:&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font size="2" face="Arial"&gt;For Loop Properties:&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;1. &lt;strong&gt;InitExpression&lt;/strong&gt;: Type an Initialization Expression in the given textbox. Initialization ensures that we are starting by setting out increment counter to 1. Here I specified variable to 1.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;2.&lt;strong&gt;EvalExpression&lt;/strong&gt;: Type an Evaluation Expression in the&amp;nbsp; given textbox. For each iteration the evaluation expression checks to see if we have reached our maximum iteration count as set above when we defined @Counter. Here I specified that @Increment &amp;lt;= @Count, code inside the for loop will execute @Count times.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;3. &lt;strong&gt;AssignExpression&lt;/strong&gt;: Type an Assignment Expression in the given textbox. This is used to increment the counter by one for each iteration of the loop, otherwise the loop would never finish. Here I specified to increment variable by 1. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;That's it. We have configured SSIS For Loop container.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Now when we execute this package, it will execute ActiveX Task, 20 times (as specified in variable count).&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Let me know if you have any questions.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-925231140013868733?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/925231140013868733/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/11/sql-server-ssis-for-loop-container.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/925231140013868733?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/925231140013868733?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/11/sql-server-ssis-for-loop-container.html" title="SQL SERVER SSIS - For Loop Container" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry gd:etag="W/&quot;DUUCRH8yfyp7ImA9WxNVGUg.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-5614388645675627426</id><published>2009-10-31T00:01:00.000+05:30</published><updated>2009-10-31T08:17:45.197+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-31T08:17:45.197+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSIS" /><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="SSIS Task" /><category scheme="http://www.blogger.com/atom/ns#" term="ActiveX Task" /><title>SQL SERVER: SSIS - ActiveX Task</title><content type="html">&lt;table border="0" cellspacing="0" cellpadding="2" width="790"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="788"&gt;Today I am going to explain SSIS - ActiveX Task.&lt;br&gt;&lt;br&gt;Here I am just explain that how to write VB Script in this task, which will execute at run time. This ActiveX Task is mostly used when we&amp;nbsp; move SQL 2000 DTS package to SSIS. As I found that many developers had used ActiveX with DTS packages in SQL SERVER 2000.&lt;br&gt;&lt;br&gt;The ActiveX Script task provides a way to continue to use custom code that was developed using ActiveX script, until such scripts can be upgraded to use the more advanced features provided by the Script task.&lt;br&gt;&lt;br&gt;Let's take an example to easily understand how to use ActiveX Task with SSIS.&lt;br&gt;&lt;br&gt;1. Select and Drag, ActiveX Script Task, from Container Flow Items to designer surface.&lt;br&gt;&amp;nbsp;&lt;a href="http://lh6.ggpht.com/_55yV6koEy_w/SuulNSxdvxI/AAAAAAAAJuo/tA-0CChLBfA/s1600-h/1SSISActiveXScriptTask4.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="1 SSIS ActiveX Script Task" border="0" alt="1 SSIS ActiveX Script Task" src="http://lh3.ggpht.com/_55yV6koEy_w/SuulOXUeTMI/AAAAAAAAJus/R3esfLelfms/1SSISActiveXScriptTask_thumb2.jpg?imgmax=800" width="604" height="102"&gt;&lt;/a&gt; &lt;br&gt;2. Now we need to write a script which will execute when SSIS package loads. To write a script, Right click on&amp;nbsp; ActiveX Script Task, which we dragged to Design surface. Click on "Edit.", you will get page as:&lt;br&gt;&lt;br&gt;&lt;a href="http://lh6.ggpht.com/_55yV6koEy_w/SuulPQxViaI/AAAAAAAAJuw/OsvxRpfPowA/s1600-h/2SSISActiveXScriptTask.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="2 SSIS ActiveX Script Task" border="0" alt="2 SSIS ActiveX Script Task" src="http://lh5.ggpht.com/_55yV6koEy_w/SuulQBSNRUI/AAAAAAAAJu0/0wslnUgD_ls/2SSISActiveXScriptTask_thumb.jpg?imgmax=800" width="604" height="512"&gt;&lt;/a&gt; &lt;br&gt;3. SSIS ActiveX Script Task - General. Here we need to assign unique name to this task and also we can specify brief description, so we will get idea why we design this task.&lt;br&gt;&lt;br&gt;4. SSIS ActiveX Script Task - Script Task: This is main section where we need to write script. &lt;br&gt;&lt;br&gt;&lt;strong&gt;Language&lt;/strong&gt;: We need to specify which script language we are going to use for this task, either VB Script, JScript etc..Here we are going to use VB Script language for this demo&lt;br&gt;&lt;br&gt;&lt;strong&gt;Script&lt;/strong&gt;: Here we need to write a script. Click on ".." button located at right side. It will open a dialog to write a script, as shown in figure:&lt;br&gt;&lt;br&gt;&lt;a href="http://lh5.ggpht.com/_55yV6koEy_w/SuulRMe9peI/AAAAAAAAJu4/EVBvKItKDLU/s1600-h/3SSISActiveXScriptTask4.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="3 SSIS ActiveX Script Task" border="0" alt="3 SSIS ActiveX Script Task" src="http://lh6.ggpht.com/_55yV6koEy_w/SuulSLRafrI/AAAAAAAAJu8/xKErWRVMUzQ/3SSISActiveXScriptTask_thumb2.jpg?imgmax=800" width="604" height="524"&gt;&lt;/a&gt;&amp;nbsp; &lt;br&gt;Let's write VB Script code inside to test this task. I write this script:&lt;br&gt;&lt;br&gt; &lt;table border="1" cellspacing="0" cellpadding="2" width="514"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="512"&gt; &lt;p&gt;function Main()  &lt;p&gt;Dim Stuff, myFSO, WriteStuff, dateStamp&lt;br&gt;dateStamp = Date()  &lt;p&gt;Stuff = "SSIS Text ActiveX Task" &lt;/p&gt; &lt;p&gt;Set myFSO = CreateObject("Scripting.FileSystemObject")&lt;br&gt;Set WriteStuff=myFSO.OpenTextFile("D:\SQLYoga\SSIS ActiveX Task.txt", 8, True)&lt;br&gt;WriteStuff.WriteLine(Stuff)&lt;br&gt;WriteStuff.Close&lt;br&gt;SET WriteStuff = NOTHING&lt;br&gt;SET myFSO = NOTHING &lt;/p&gt; &lt;p&gt;End function&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;br&gt;Save it and click on Parse, which will parse this script and let us know if there is any problem in this script. If It is on then its allowed to proceed with the next step.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Expression&lt;/strong&gt;: Use the &lt;strong&gt;Expressions&lt;/strong&gt; page to edit property expressions and to access the &lt;strong&gt;Property Expressions Editor&lt;/strong&gt; and &lt;strong&gt;Property Expression Builder&lt;/strong&gt; dialog boxes.&lt;br&gt;&lt;br&gt;That's it. &lt;br&gt;&lt;br&gt;Let's run task, by right click on task and click on Execute Task, as shown in following figure. You can either Execute Package by right click on Package name, from Solution Explorer.&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;a href="http://lh5.ggpht.com/_55yV6koEy_w/SuulTFzFviI/AAAAAAAAJvA/X9KXSlVewq4/s1600-h/4SSISActiveXScriptTask4.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="4 SSIS ActiveX Script Task" border="0" alt="4 SSIS ActiveX Script Task" src="http://lh4.ggpht.com/_55yV6koEy_w/SuulUHdgh0I/AAAAAAAAJvE/hDEwZD3j2qg/4SSISActiveXScriptTask_thumb2.jpg?imgmax=800" width="604" height="312"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;Once you run it and if logged in user has write access to the given path, SSIS package will create file at that place. Now go to that given path and see file is created or appended with content that we want to write.&lt;br&gt;&lt;br&gt;That's simple to configure and use SSIS ActiveX Script Task within BIDS.&lt;br&gt;&lt;br&gt; &lt;p align="left"&gt;Let me know if you have any questions in designing SSIS Package&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="788"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-5614388645675627426?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/5614388645675627426/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/10/sql-server-ssis-activex-task.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/5614388645675627426?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/5614388645675627426?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/10/sql-server-ssis-activex-task.html" title="SQL SERVER: SSIS - ActiveX Task" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></entry><entry gd:etag="W/&quot;A0EMSHk7eip7ImA9WxNVF0U.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-4034814233674320889</id><published>2009-10-29T00:17:00.000+05:30</published><updated>2009-10-29T09:44:49.702+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-29T09:44:49.702+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSIS" /><category scheme="http://www.blogger.com/atom/ns#" term="DBA" /><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="SSIS Task" /><category scheme="http://www.blogger.com/atom/ns#" term="BULK INSERT TASK" /><title>SQL SERVER SSIS: BULK INSERT Task</title><content type="html">&lt;table border="0" cellspacing="0" cellpadding="2" width="790"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="788"&gt;As we have seen &lt;a href="http://www.sqlyoga.com/2009/10/sql-server-ssis-basic-example-of-data.html"&gt;SSIS Data Flow TASK&lt;/a&gt; in previous article, today I am going to explain SSIS BULK INSERT TASK.&lt;br&gt;&lt;br&gt;The Bulk Insert task provides an efficient way to copy large amounts of data into a SQL Server table or view. Let's say company is using Online Product Marketing and every day they have to update their databases with the latest information provided by their suppliers in Tab Separated/Comma Separated file. Here BULK INSERT provides efficient way.&lt;br&gt;&lt;br&gt;We can move data to SQL SERVER Table or View by BULK INSERT Task.&lt;br&gt;&lt;br&gt;Let see How to configure SSIS BULK INSERT Task:&lt;br&gt;&lt;br&gt;1. &lt;strong&gt;Drag Control:&lt;/strong&gt; Drag and drop, BULK INSERT TASK from Toolbox to Design surface:&lt;br&gt;&lt;br&gt;&lt;a href="http://lh4.ggpht.com/_55yV6koEy_w/SukQFIBaUCI/AAAAAAAAJuQ/UNaoEpE47aM/s1600-h/BulkInsert1.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Bulk Insert 1" border="0" alt="Bulk Insert 1" src="http://lh5.ggpht.com/_55yV6koEy_w/SukQGJkrJsI/AAAAAAAAJuU/fT57ShCohv8/BulkInsert1_thumb.jpg?imgmax=800" width="604" height="286"&gt;&lt;/a&gt;&lt;br&gt;2. &lt;strong&gt;Configure connection&lt;/strong&gt;: Right click on Task and click on Edit&lt;br&gt;&lt;br&gt;&lt;strong&gt;Specify Destination Connection: &lt;/strong&gt;Specify the OLE DB connection manager to connect to the destination SQL Server database and the table or view into which data is inserted. &lt;br&gt;&lt;br&gt;&lt;strong&gt;NOTE: The Bulk Insert task supports only OLE DB connections for the destination database.&lt;br&gt;&lt;br&gt;Define Format: &lt;/strong&gt;We need to Define the format that is used by the Bulk Insert task, either by using a format file or by defining the column and row delimiters of the source data. If using a format file, specify the File connection manager to access the format file. We need to specify &lt;strong&gt;Row Delimiter&lt;/strong&gt; and &lt;strong&gt;Column Delimiter, &lt;/strong&gt;as per our requirement.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Specify Source Connection: &lt;/strong&gt;Finally, we need to specify Flat or File Connection Manager to access the source file. BULK INSERT Task is process this file as per defined format on previous step.&lt;br&gt;&lt;br&gt;&lt;a href="http://lh3.ggpht.com/_55yV6koEy_w/SukQG-Iy3oI/AAAAAAAAJuY/0N0S_Gcvnmk/s1600-h/BulkInsertSSISTask23.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Bulk Insert SSIS Task 2" border="0" alt="Bulk Insert SSIS Task 2" src="http://lh6.ggpht.com/_55yV6koEy_w/SukQIKsUJpI/AAAAAAAAJuc/Y5ek1L9GnNw/BulkInsertSSISTask2_thumb1.jpg?imgmax=800" width="604" height="502"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;3. &lt;strong&gt;Configure Options&lt;/strong&gt;: SSIS BULK INSERT Task also provides to specify some options which needs to perform when BULK TASK Insert some data to destination Table/View, like: Check Constraint, Keep Nulls, Enable Identity Insert, Table Lock, Fire Triggers.&lt;br&gt;&lt;br&gt;&lt;a href="http://lh5.ggpht.com/_55yV6koEy_w/SukQIyXY0kI/AAAAAAAAJug/3Tg3gF6sZrI/s1600-h/BulkInsertSSISTask33.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Bulk Insert SSIS Task 3" border="0" alt="Bulk Insert SSIS Task 3" src="http://lh3.ggpht.com/_55yV6koEy_w/SukQJ-VajbI/AAAAAAAAJuk/_0y5YmwaUhk/BulkInsertSSISTask3_thumb1.jpg?imgmax=800" width="604" height="512"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;That's it. Now execute the package, you find that your Table/view is populated with data from provided text file.&lt;br&gt;&lt;br&gt;Why we have both BULK INSERT AND DATA FLOW TASK ?&lt;br&gt;We can say that Data Flow Task is advanced version of BULK INSERT TASK, which provides more features and more scalable.&lt;br&gt;&lt;br&gt;The Bulk Insert task can transfer data only from a text file into a SQL Server table or view. To use the Bulk Insert task to transfer data from other database management systems (DBMSs), you must export the data from the source to a text file and then import the data from the text file into a SQL Server table or view. &lt;br&gt;&lt;br&gt;With Data Flow Task, we can import/export data from any database, we don't need to convert it to text and then import.&lt;br&gt;&lt;br&gt;So, we can use either of these as per our requirements.&lt;br&gt;&lt;br&gt;Let me know if you have&amp;nbsp; any questions.&lt;br&gt;&lt;br&gt;Reference: SQL SERVER Books Online, Tejas Shah (&lt;a href="http://www.SQLYoga.com"&gt;http://www.SQLYoga.com&lt;/a&gt;)&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-4034814233674320889?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/4034814233674320889/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/10/sql-server-ssis-bulk-insert-task.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/4034814233674320889?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/4034814233674320889?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/10/sql-server-ssis-bulk-insert-task.html" title="SQL SERVER SSIS: BULK INSERT Task" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;Ck4DRHc6fyp7ImA9WxNVE0g.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-2917078375360973702</id><published>2009-10-24T00:00:00.000+05:30</published><updated>2009-10-24T07:52:55.917+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-24T07:52:55.917+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Comma Separated List" /><category scheme="http://www.blogger.com/atom/ns#" term="SSIS" /><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="Data Flow Task" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2005" /><title>SQL SERVER SSIS: Basic Example Of Data Flow Task</title><content type="html">&lt;table border="0" cellspacing="0" cellpadding="2" width="790"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="788"&gt;Today I am going to give Basic example of Data Flow Task in SSIS, import CSV file to SQL SERVER Database&lt;br&gt;&lt;br&gt;Many times user asked to import their data from their files. They might have data in Microsoft Access, Microsoft Excel, CSV File, Text Tile etc..&lt;br&gt;&lt;br&gt;Microsoft SQL SERVER, SSIS, has features to import data from any heterogonous format to SQL and also capabilities to export it to any format. That is the power of SSIS.&lt;br&gt;&lt;br&gt;1. &lt;strong&gt;Drag Control:&lt;/strong&gt; Drag Data Flow Task from Toolbox, to Design interface&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://lh3.ggpht.com/_55yV6koEy_w/SuJkKIkAB9I/AAAAAAAAJtI/CsC4cFBsyDY/s1600-h/DataFlowTask17.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Data Flow Task 1" border="0" alt="Data Flow Task 1" src="http://lh5.ggpht.com/_55yV6koEy_w/SuJkLfutVVI/AAAAAAAAJtM/TK0HCTX6FI0/DataFlowTask1_thumb5.jpg?imgmax=800" width="604" height="364"&gt;&lt;/a&gt;&lt;br&gt;2. &lt;strong&gt;Configure Data Flow Task: &lt;/strong&gt;Once you have Data Flow Task on Design surface, Double click on it, or Right click on task and click on "Edit", it will redirect you to Data Flow Tab, as shown in Figure 2:&lt;br&gt;&lt;br&gt;&lt;a href="http://lh6.ggpht.com/_55yV6koEy_w/SuJkMVpS2rI/AAAAAAAAJtQ/B5KjV1hm258/s1600-h/DataFlowTask212.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Data Flow Task 2" border="0" alt="Data Flow Task 2" src="http://lh5.ggpht.com/_55yV6koEy_w/SuJkNrg0UaI/AAAAAAAAJtU/bLRb2_OWg7A/DataFlowTask2_thumb8.jpg?imgmax=800" width="604" height="406"&gt;&lt;/a&gt;&amp;nbsp; &lt;br&gt;As shown in above figure, SQL SERVER SSIS give features to import/export data from/to many formats. You can find the different formats that is supported by SSIS to import data on LEFT PANE. &lt;br&gt;&lt;br&gt;3. &lt;strong&gt;Configure Source Connection:&lt;/strong&gt; Here, I have selected "&lt;strong&gt;Flat File Source", &lt;/strong&gt;as we need to import data from CSV File. Drag "Flat File Source" to design surface and right click on edit and select "Edit", you will get screen like:&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;a href="http://lh4.ggpht.com/_55yV6koEy_w/SuJkOokzxFI/AAAAAAAAJtY/j_t16LdFrvc/s1600-h/DataFlowTask317.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Data Flow Task 3" border="0" alt="Data Flow Task 3" src="http://lh6.ggpht.com/_55yV6koEy_w/SuJkPzqQ1RI/AAAAAAAAJtc/xRR-jfBMgss/DataFlowTask3_thumb11.jpg?imgmax=800" width="604" height="494"&gt;&lt;/a&gt; &lt;br&gt;As shown in figure, Click on "New", It will open a form which allows us to select file which we want to import to our Database.&lt;br&gt;&lt;br&gt;First, Enter connection manager name and description.&lt;br&gt;Then, select a file which you want to import to database.&lt;br&gt;Then, Select Locale and Code page as per your requirement, For this demo, I don't need to change anything.&lt;br&gt;Then, we need to select Format of the file. SSIS provide us three formats: Delimited, Fixed Width, Ragged Right. We need to import CSV file (Comma Separated file), so I have selected "Delimited".&lt;br&gt;Then, We need to specify Text Qualifier, Select based upon your requirements.&lt;br&gt;Then, we need to specify delimiter for Header row, as we have CSV&amp;nbsp; file, I have selected CR LF, means new row for header.&lt;br&gt;Then, SSIS also give us features to skip rows. By Header Rows to skip, it allows us to skip &lt;em&gt;n&lt;/em&gt; number of rows.&lt;br&gt;At Last, If there is Header in column names, we just need to select this checkbox, "Column names in the data row". So SSIS understands to set the first row as Header row. &lt;br&gt;&lt;br&gt;That's it for configure file, Now we need to specify delimiter for column, which comes on next section called "Columns"&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;a href="http://lh3.ggpht.com/_55yV6koEy_w/SuJkQomWfbI/AAAAAAAAJtg/1yFkzTOFhrM/s1600-h/DataFlowTask410.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Data Flow Task 4" border="0" alt="Data Flow Task 4" src="http://lh4.ggpht.com/_55yV6koEy_w/SuJkR-m-nmI/AAAAAAAAJtk/g9lGcd4WFYk/DataFlowTask4_thumb6.jpg?imgmax=800" width="604" height="544"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;As shown in figure, Now we need to specify delimiter for Rows and Columns.&lt;br&gt;As we are going to import CSV file (comma separated file), Row Delimiter is &lt;strong&gt;"{CR}{LF}"&lt;/strong&gt; and column delimiter is &lt;strong&gt;",".&lt;br&gt;&lt;br&gt;NOTE:&lt;/strong&gt; Also notice that, it display Column Names in Header, as we have checked, "Column Names in the First data row".&lt;br&gt;&lt;br&gt;This is the data that we are going to import to SQL Database.&lt;br&gt;&lt;br&gt;You can use Advanced and Preview tab, to configure each column and preview, respectively.&lt;br&gt;&lt;br&gt;Now once, configuration is done, we need to select OLE DB Destination, as we need to import it to SQL SERVER database.&lt;br&gt;&lt;br&gt;4. &lt;strong&gt;Configure Destination Connection&lt;/strong&gt;: Here, I have selected "&lt;strong&gt;OLE DB Destination", &lt;/strong&gt;as we need to import data from CSV File to SQL SERVER Database. Drag "&lt;strong&gt;OLE DB Destination&lt;/strong&gt;" to design surface.&lt;br&gt;&lt;br&gt;&lt;a href="http://lh3.ggpht.com/_55yV6koEy_w/SuJkS3Q1WZI/AAAAAAAAJto/QwJXlPPUVZM/s1600-h/DataFlowTask53.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Data Flow Task 5" border="0" alt="Data Flow Task 5" src="http://lh4.ggpht.com/_55yV6koEy_w/SuJkUC_pJAI/AAAAAAAAJts/yfw7eYmt2hE/DataFlowTask5_thumb1.jpg?imgmax=800" width="604" height="329"&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;Now, we need to design data flow. Here we need to import data from Flat File connection, I have dragged "Success" (Green Arrow), link to OLE Db Destination for column Mapping.&lt;br&gt;&lt;br&gt;Now, we need to configure OLE DB destination, to insert data to SQL Database. Right click on it and click on "EDIT", it will open screen like this:&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;a href="http://lh3.ggpht.com/_55yV6koEy_w/SuJkVD8Yu5I/AAAAAAAAJtw/uiNfVvTh_aU/s1600-h/DataFlowTask67.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Data Flow Task 6" border="0" alt="Data Flow Task 6" src="http://lh4.ggpht.com/_55yV6koEy_w/SuJkWAlhNeI/AAAAAAAAJt0/gQJs7j6VcIU/DataFlowTask6_thumb3.jpg?imgmax=800" width="604" height="494"&gt;&lt;/a&gt; &lt;br&gt;&lt;a href="http://lh3.ggpht.com/_55yV6koEy_w/SuJkXIwI4GI/AAAAAAAAJt4/L827TW_uvTQ/s1600-h/DataFlowTask73.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Data Flow Task 7" border="0" alt="Data Flow Task 7" src="http://lh3.ggpht.com/_55yV6koEy_w/SuJkYad38LI/AAAAAAAAJt8/oHObqS9FpXs/DataFlowTask7_thumb1.jpg?imgmax=800" width="604" height="617"&gt;  &lt;p align="left"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;I have entered SQL server Login information to connect to SQL SERVER where I need to import data from CSV file.&lt;br&gt;&lt;br&gt;Once, SQL SERVER is configured, we need to select Table Name to which we need to insert data from CSV file. See the following screen, I have selected "Employee" Table: Please find script to create "Employee Table"&lt;/p&gt; &lt;table border="1" cellspacing="0" cellpadding="2" width="400"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="398"&gt; &lt;p&gt;CREATE TABLE [dbo].[Employee](&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [EmpID] [int] IDENTITY(1,1) NOT NULL,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [EmployeeName] [varchar](max) NULL,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [EmployeeCode] [varchar](max) NULL,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [EmployeeDesignation] [varchar](max) NULL,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [CreatedDate] [datetime] DEFAULT GETDATE()&lt;br&gt;)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p align="left"&gt;&lt;a href="http://lh6.ggpht.com/_55yV6koEy_w/SuJkZF1HPLI/AAAAAAAAJuA/LRwmv3XIdJY/s1600-h/DataFlowTask87.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Data Flow Task 8" border="0" alt="Data Flow Task 8" src="http://lh3.ggpht.com/_55yV6koEy_w/SuJkadPTYXI/AAAAAAAAJuE/G-oQzIGGG-M/DataFlowTask8_thumb3.jpg?imgmax=800" width="604" height="509"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p align="left"&gt;Now we have selected SQL SERVER table to which we need to import data, Now we need to map columns names, so SSIS will insert data accordingly.&lt;/p&gt; &lt;p align="left"&gt;&lt;a href="http://lh4.ggpht.com/_55yV6koEy_w/SuJkbpF7TyI/AAAAAAAAJuI/1fZX1ZG-Okc/s1600-h/DataFlowTask93.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Data Flow Task 9" border="0" alt="Data Flow Task 9" src="http://lh3.ggpht.com/_55yV6koEy_w/SuJkc8PhkMI/AAAAAAAAJuM/rjFMHGLYKI8/DataFlowTask9_thumb1.jpg?imgmax=800" width="604" height="522"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p align="left"&gt;By default, SSIS provides mapping for columns which have same name, In this case Column Mapping is ok, so we don't need to do anything. If you want to change mapping, you can do it by just changing links between Input Columns and Destination Columns.&lt;/p&gt; &lt;p align="left"&gt;NOTE: Here Destination table has two more columns, EmpID and CreatedDate, which is not available in source file, CSV file. We can just ignore it, as EmpID is Identity column while CreatedDate is GETDATE(). We have such columns in SQL database to keep track when this record is added.&lt;/p&gt; &lt;p align="left"&gt;That's it. We have configured Data Flow Task.&lt;/p&gt; &lt;p align="left"&gt;Now just right click on package and "Execute Package". You will find that Employee table will be populated with information from CSV file.&lt;/p&gt; &lt;p align="left"&gt;Let me know if you have any questions in designing SSIS Package. &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-2917078375360973702?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/2917078375360973702/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/10/sql-server-ssis-basic-example-of-data.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/2917078375360973702?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/2917078375360973702?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/10/sql-server-ssis-basic-example-of-data.html" title="SQL SERVER SSIS: Basic Example Of Data Flow Task" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry gd:etag="W/&quot;CkAMQX88eip7ImA9WxNVEUU.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-3275422997229175405</id><published>2009-10-22T00:00:00.000+05:30</published><updated>2009-10-22T08:36:20.172+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-22T08:36:20.172+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSIS" /><category scheme="http://www.blogger.com/atom/ns#" term="DBA" /><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2005" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>SQL SERVER: What is SSIS?</title><content type="html">&lt;table border="0" cellspacing="0" cellpadding="2" width="791"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="789"&gt; &lt;p&gt;SSIS (SQL Server Integration Services) is an upgrade of DTS (Data Transformation Services), which is a feature of the previous version of SQL Server  &lt;p&gt;SSIS (SQL Server Integration Services) is introduced in SQL SERVER 2005. It is totally new transformation of data. Previously we have DTS package in SQL SERVER 2000. Now they introduced SSIS with many features.  &lt;p&gt;SSIS is an extensive data integration platform which is used to transfer and merge the information from various sources and load to multiple systems. It contains wide range of capabilities.&lt;/p&gt; &lt;p&gt;Business Intelligence is used for decision making, future trends based on collected data. I can find very good article written by &lt;a href="http://blog.SQLAuthority.com"&gt;Microsoft SQL SERVER MVP, Pinalkumar Dave&lt;/a&gt;. He write about BI on his one of the best article: &lt;a href="http://blog.sqlauthority.com/2009/10/21/sql-server-introduction-to-business-intelligence-important-terms-definitions/"&gt;http://blog.sqlauthority.com/2009/10/21/sql-server-introduction-to-business-intelligence-important-terms-definitions/&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;SSIS packages can be created in BIDS (Business Intelligence Development Studio).  &lt;p&gt;I am going to explain all features of SSIS for easy and better understanding by following articles.  &lt;p&gt;Reference: Tejas Shah (&lt;a href="http://www.SQLYoga.com"&gt;http://www.SQLYoga.com&lt;/a&gt; )&amp;nbsp; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-3275422997229175405?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/3275422997229175405/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/10/sql-server-what-is-ssis.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/3275422997229175405?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/3275422997229175405?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/10/sql-server-what-is-ssis.html" title="SQL SERVER: What is SSIS?" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry gd:etag="W/&quot;AkYMR3c_fSp7ImA9WxNWEUg.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-1933235735194501314</id><published>2009-10-08T23:08:00.000+05:30</published><updated>2009-10-10T12:33:06.945+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-10T12:33:06.945+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Office 2010 features" /><category scheme="http://www.blogger.com/atom/ns#" term="CommunityTechDays" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows7 Features" /><title>Top features of Windows 7 and Office 2010</title><content type="html">&lt;table cellspacing="0" cellpadding="2" width="763" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="761"&gt;We have &lt;a href="http://www.sqlyoga.com/2009/10/community-techdays-at-ahmedabad-great.html"&gt;Community TechDays on 3rd October 2009, Saturday at Hotel Anmol, Ahmedabad&lt;/a&gt;. This was excellent event, you can find out more details here.&lt;br&gt;&lt;br&gt;I like these features of Windows 7 and Office 2010 which was presented by &lt;a href="http://www.extremeexperts.com/General/Home/Homepage.aspx"&gt;Vinod kumar&lt;/a&gt;, Microsoft Evangelist.&lt;br&gt;&lt;br&gt;&lt;strong&gt;1.&lt;/strong&gt; I like the &lt;strong&gt;Recorder Tool&lt;/strong&gt; provided by Windows 7. This is very handy tool which will make our (IT professional) life easy. Many times we find that users complaint that application raise an error. What we need is, what user did so error occurs. By this tool, user can record all of the steps. This tool will capture all screen shots and description what user did. So user just need to send this file to us and we can easily come to know that why this happen. One more thing is that, File size is also not much though all screen shots are there. We can also have option to reduce size, by reducing quality of images.&lt;br&gt;&lt;br&gt;&lt;strong&gt;2. &lt;/strong&gt;I like the option of &lt;strong&gt;Jump List&lt;/strong&gt;, We will access applications like windows media player just from Task Bar. We don't need to even open that Application. This is very nice feature as everything is just from task bar.&lt;br&gt;&lt;br&gt;&lt;strong&gt;3. &lt;/strong&gt;There is a feature to &lt;strong&gt;Magnify the screen and also point out the location&lt;/strong&gt;. This we really need when we are giving presentation or in meetings. By this feature we can present things in easy way so all persons can understand easily.&lt;br&gt;&lt;br&gt;&lt;strong&gt;4. &lt;/strong&gt;Feature:&lt;strong&gt; Trigger Start Service&lt;/strong&gt;. This is really good feature, as previously it was programmed as System keeps check periodically about the new hardware is attached or not. That was really resource consuming. Microsoft resolved this in Windows 7. As &lt;a href="http://www.extremeexperts.com/General/Home/Homepage.aspx"&gt;Vinod Kumar&lt;/a&gt; explained with USB drive at Community TechDays, Event is only fired when we attach any new hardware else it is not in even memory. &lt;br&gt;&lt;br&gt;&lt;strong&gt;5. &lt;/strong&gt;Now we can also &lt;strong&gt;Re-Arrange open applications in Task manager&lt;/strong&gt;. As we used Tabbed browser and like to move important tabs first. This is the same concept developed in Windows 7 to arrange icons in Task Manager. &lt;br&gt;&lt;br&gt;&lt;strong&gt;6. Show Desktop&lt;/strong&gt; feature, Windows 7 introduced the "Show Desktop" button at right bottom side. We just need to click on right bottom which will minimize all applications which will&amp;nbsp; make developers life simple :) &lt;br&gt;&lt;br&gt;&lt;strong&gt;7.&lt;/strong&gt; &lt;strong&gt;Windows 7 also comes with good display options.&lt;/strong&gt; We can customize the color of Taskbar icon's color. &lt;br&gt;&lt;br&gt;&lt;strong&gt;8.&lt;/strong&gt; &lt;strong&gt;Virtulization, &lt;/strong&gt;The most common reason is that you want to run Virtual PC on Windows 7 on a system that does not have hardware virtualization support. &lt;br&gt;&lt;br&gt;&lt;strong&gt;9.&lt;/strong&gt; In &lt;strong&gt;Office 2010&lt;/strong&gt;, feature to notify icon which indicates that recipient is available or not at that time. By this feature, at the time of sending an email come to know that recipient is available or not.&lt;br&gt;&lt;br&gt;&lt;strong&gt;10.&lt;/strong&gt; Also in &lt;strong&gt;Office 2010, Grouping follow up mails. &lt;/strong&gt;This is feature by which we can find whole list mails, received and sent. So we come to know about the discussion from first email to last email.&lt;br&gt;&lt;br&gt;&lt;strong&gt;11.&lt;/strong&gt; In &lt;strong&gt;Office 2010, You can not copy the copyright contents&lt;/strong&gt;. I can not get correct name to explain this. &lt;br&gt;&lt;br&gt;There are many more featured explained by &lt;a href="http://www.extremeexperts.com/General/Home/Homepage.aspx"&gt;Vinod Kumar&lt;/a&gt; @ Community TechDays. Here I just mentioned features those are still on my&amp;nbsp; mind and I like this in real life.&lt;br&gt;&lt;br&gt;Reference: Tejas Shah (&lt;a href="http://www.SQLYoga.Com"&gt;http://www.SQLYoga.Com&lt;/a&gt;) &lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-1933235735194501314?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/1933235735194501314/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/10/top-features-of-windows-7-and-office.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/1933235735194501314?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/1933235735194501314?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/10/top-features-of-windows-7-and-office.html" title="Top features of Windows 7 and Office 2010" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry gd:etag="W/&quot;DE4HRXw6eyp7ImA9WxNWEUg.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-6374795120864256313</id><published>2009-10-07T11:33:00.000+05:30</published><updated>2009-10-10T12:12:14.213+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-10T12:12:14.213+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DBA" /><category scheme="http://www.blogger.com/atom/ns#" term="CommunityTechDays" /><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>Community TechDays at Ahmedabad - Great Event</title><content type="html">&lt;table cellspacing="0" cellpadding="2" width="724" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="722"&gt;There was a great event held by Microsoft and PASS (Professional Association of SQL Server) in Ahmedabad on 3rd October 2009. This was very big event where 250+ attendees attend the excellent session of &lt;a href="http://www.extremeexperts.com/"&gt;Vinod Kumar&lt;/a&gt;, &lt;a href="http://blog.sqlauthority.com/"&gt;Pinal Dave&lt;/a&gt;, &lt;a href="http://beyondrelational.com/"&gt;Jacob Sebastian&lt;/a&gt; and &lt;a href="http://prabhjotbakshi.blogspot.com/"&gt;Prabhjot Singh Bakshi&lt;/a&gt;. There were Four technical sessions by these excellent speakers.&lt;br&gt;&lt;br&gt;First session is of &lt;a href="http://www.extremeexperts.com/General/Home/Homepage.aspx"&gt;Vinod Kumar&lt;/a&gt;. He is Microsoft Evangelist. There was excellent session of Three hours where he give features of Windows 7 and Office 2010. &lt;br&gt;&lt;br&gt;&lt;a href="http://lh3.ggpht.com/_55yV6koEy_w/StAsn-vHCNI/AAAAAAAAJrc/G-xcheMxGYk/s1600-h/VinodKumar%5B1%5D.jpg"&gt;&lt;img title="VinodKumar" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="180" alt="VinodKumar" src="http://lh4.ggpht.com/_55yV6koEy_w/SswvfD8rCvI/AAAAAAAAJrg/3wt9yEr2VWE/VinodKumar_thumb%5B1%5D.jpg?imgmax=800" width="240" border="0"&gt;&lt;/a&gt;&lt;br&gt;&lt;a href="http://lh5.ggpht.com/_55yV6koEy_w/SswvgTnvaqI/AAAAAAAAJrk/05lUdP8U6v8/s1600-h/VinodKumar2%5B2%5D.jpg"&gt;&lt;img title="VinodKumar2" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="180" alt="VinodKumar2" src="http://lh3.ggpht.com/_55yV6koEy_w/SswvhbT1ImI/AAAAAAAAJrs/N8LbmVzyQPg/VinodKumar2_thumb%5B1%5D.jpg?imgmax=800" width="240" border="0"&gt;&lt;/a&gt; &lt;br&gt;Second session is of &lt;a href="http://blog.sqlauthority.com/"&gt;Pinal Dave&lt;/a&gt;, SQL MVP. He presented session on the subject - &lt;strong&gt;"SQL Server - The Other Side of Index". &lt;/strong&gt;This was also excellent way to know more about SQL Index. and How to use index. That is really nice session for SQL Developers to know, How to optimize query. It gives proper understanding of indexes.&lt;br&gt;&lt;br&gt;&lt;a href="http://lh4.ggpht.com/_55yV6koEy_w/SswvikuZdCI/AAAAAAAAJr4/RObrZZUxIcA/s1600-h/PinalDave%5B1%5D.jpg"&gt;&lt;img title="Pinal Dave" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="180" alt="Pinal Dave" src="http://lh6.ggpht.com/_55yV6koEy_w/Sswvj4b-PWI/AAAAAAAAJsA/UlD1IYi0mT0/PinalDave_thumb%5B1%5D.jpg?imgmax=800" width="240" border="0"&gt;&lt;/a&gt;&lt;br&gt;Third session is of &lt;a href="http://beyondrelational.com/"&gt;Jacob Sebastian&lt;/a&gt;, SQL MVP. He presented session on '"&lt;strong&gt;The Best Practices for Exception Handling and Defensive Programming in Microsoft SQL Server".&lt;/strong&gt; This was also very great session where developer can get more idea about When exception occur and how to handle that exception. It was presented in a way so all attendees get clear idea about it and understand it properly.&lt;br&gt;&lt;br&gt;&lt;a href="http://lh5.ggpht.com/_55yV6koEy_w/SswvlNdIzLI/AAAAAAAAJsE/l9dWPPsTd9w/s1600-h/JacobSebastian%5B1%5D.jpg"&gt;&lt;img title="Jacob Sebastian" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="180" alt="Jacob Sebastian" src="http://lh4.ggpht.com/_55yV6koEy_w/SswvmI7_OoI/AAAAAAAAJsQ/qzM8ovVLTN8/JacobSebastian_thumb%5B1%5D.jpg?imgmax=800" width="240" border="0"&gt;&lt;/a&gt;&lt;br&gt;Forth and last session is of &lt;a href="http://prabhjotbakshi.blogspot.com/"&gt;Prabhjot Singh Bakshi&lt;/a&gt;, MCT(Microsoft Certified Trainer). He presented session on "&lt;strong&gt;NET Framework 4.0&lt;/strong&gt;". He also presented very nice session about featured of .Net Framework 4.0. He developed .Net code to give clear understanding of new features.&lt;br&gt;&lt;br&gt;&lt;a href="http://lh3.ggpht.com/_55yV6koEy_w/Sswvne8R-ZI/AAAAAAAAJsU/1D6sIJOUAfQ/s1600-h/PrabhjotSingh%5B1%5D.jpg"&gt;&lt;img title="Prabhjot Singh" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="180" alt="Prabhjot Singh" src="http://lh3.ggpht.com/_55yV6koEy_w/SswvoUox0fI/AAAAAAAAJsc/7dpe_09K6jc/PrabhjotSingh_thumb%5B1%5D.jpg?imgmax=800" width="240" border="0"&gt;&lt;/a&gt;&lt;br&gt;Click with Vinod kumar and Jacob Sebastian:&lt;br&gt;&lt;br&gt;&lt;a href="http://lh3.ggpht.com/_55yV6koEy_w/StAsvNhucrI/AAAAAAAAJsk/zgo3qloh_xA/s1600-h/Vinodkumar%20TejasShah%20JacobSebastian%5B5%5D.jpg"&gt;&lt;img title="Vinodkumar TejasShah JacobSebastian" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="180" alt="Vinodkumar TejasShah JacobSebastian" src="http://lh5.ggpht.com/_55yV6koEy_w/StAsxGjQJbI/AAAAAAAAJss/x6R4F91aeGs/Vinodkumar%20TejasShah%20JacobSebastian_thumb%5B3%5D.jpg?imgmax=800" width="240" border="0"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;Overall, that was excellent day for Ahmedabad. I hope this type of TechDays scheduled in near future. &lt;br&gt;&lt;br&gt;Reference: Tejas Shah ( &lt;a href="http://www.SQLYoga.com"&gt;http://www.SQLYoga.com&lt;/a&gt;)&lt;br&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="722"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-6374795120864256313?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/6374795120864256313/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/10/community-techdays-at-ahmedabad-great.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/6374795120864256313?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/6374795120864256313?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/10/community-techdays-at-ahmedabad-great.html" title="Community TechDays at Ahmedabad - Great Event" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DkUER3s7eyp7ImA9WxNQEEU.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-2560036345771280828</id><published>2009-09-16T12:25:00.000+05:30</published><updated>2009-09-16T12:26:46.503+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-16T12:26:46.503+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CommunityTechDays" /><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><title>SQL SERVER: Agenda of Community TechDays at Ahmedabad</title><content type="html">&lt;p&gt;&lt;a href="http://www.communitytechdays.com/"&gt;&lt;img title="Ahmedabad Community TechDays" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="944" alt="Ahmedabad Community TechDays" src="http://lh4.ggpht.com/_55yV6koEy_w/SrCMIhO1aEI/AAAAAAAAJpQ/ZQDvS-W_BxY/Ahmedabad%20Community%20TechDays%5B21%5D.png?imgmax=800" width="804" border="0"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-2560036345771280828?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/2560036345771280828/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/09/sql-server-agenda-of-community-techdays.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/2560036345771280828?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/2560036345771280828?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/09/sql-server-agenda-of-community-techdays.html" title="SQL SERVER: Agenda of Community TechDays at Ahmedabad" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;Ak4NQng4fip7ImA9WxNQEE0.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-3769158871240865711</id><published>2009-09-15T15:22:00.000+05:30</published><updated>2009-09-15T15:33:13.636+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-15T15:33:13.636+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Tips" /><category scheme="http://www.blogger.com/atom/ns#" term="CommunityTechDays" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Services" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>SQL SERVER: Community Tech Days in our City at Ahmedabad on 3rd October 2009</title><content type="html">&lt;table cellspacing="0" cellpadding="2" width="815" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="813"&gt;Microsoft Community Tech Days are in 11 cities in INDIA with 19 insightful Technical Sessions.&lt;br&gt;&lt;br&gt;These insightful Technical sessions are available in our city &lt;strong&gt;"Ahmedabad", Gujarat on 3rd October 2009.&lt;br&gt;&lt;/strong&gt;&lt;br&gt;So book your calendar for this day and be a part of this TechDays.&lt;br&gt;&lt;br&gt;Limited seats are available , so please register yourself with this event:&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt; &lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;table cellspacing="0" cellpadding="2" width="400" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="400"&gt; &lt;table cellspacing="0" cellpadding="0" width="760" align="center" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;img height="56" src="http://www.microsoft.com/india/images2/mailer3/ctd_edm_images/community_img01.jpg" width="760"&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt; &lt;table cellspacing="0" cellpadding="0" width="760" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width="546"&gt;&lt;img height="149" src="http://www.microsoft.com/india/images2/mailer3/ctd_generic_2edm/community_img02.jpg" width="548" border="0"&gt;&lt;/td&gt; &lt;td width="200"&gt; &lt;table cellspacing="0" cellpadding="0" width="100%" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;img height="94" src="http://www.microsoft.com/india/images2/mailer3/ctd_generic_2edm/register-now.jpg" width="172"&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt; &lt;table cellspacing="0" cellpadding="0" width="100%" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;a href="http://co1piltwb.partners.extranet.microsoft.com/mcoeredir/mcoeredirect.aspx?linkId=12497725&amp;amp;s1=3b12e9aa-4627-8892-3723-42b3d1c25633" target="_blank"&gt;&lt;img height="14" src="http://www.microsoft.com/india/images2/mailer3/ctd_generic_2edm/btn-online-event.jpg" width="74" border="0"&gt;&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://co1piltwb.partners.extranet.microsoft.com/mcoeredir/mcoeredirect.aspx?linkId=12497726&amp;amp;s1=3b12e9aa-4627-8892-3723-42b3d1c25633" target="_blank"&gt;&lt;img height="14" src="http://www.microsoft.com/india/images2/mailer3/ctd_generic_2edm/btn-inperson-event.jpg" width="98" border="0"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;/p&gt; &lt;div&gt;&lt;/div&gt; &lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Let me know if you have any problem in registrations.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-3769158871240865711?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/3769158871240865711/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/09/sql-server-community-tech-days-in-our.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/3769158871240865711?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/3769158871240865711?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/09/sql-server-community-tech-days-in-our.html" title="SQL SERVER: Community Tech Days in our City at Ahmedabad on 3rd October 2009" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;AkMMSXY5eCp7ImA9WxNREkw.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-9212458116512860692</id><published>2009-09-05T12:30:00.000+05:30</published><updated>2009-09-06T11:58:08.820+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-06T11:58:08.820+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TRANSACTION" /><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Tips" /><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="DELETE" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="TRUNCATE" /><title>SQL SERVER: Difference between DELETE and TRUNCATE commands</title><content type="html">&lt;table cellspacing="0" cellpadding="2" width="726" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="724"&gt;We interviewed many people my company as recruitments are going on for developers. When I asked this SQL SERVER question to person "What is difference between DELETE and TRUNCATE in SQL SERVER?". &lt;br&gt;&lt;br&gt;I got the following&amp;nbsp; answers from most of them are, which are incorrect:&lt;br&gt;&lt;br&gt;1. I can not use WHERE condition with TRUNCATE command&lt;br&gt;2. I can not use TRUNCATE command if foreign key is there on table.&lt;br&gt;3. TRUNCATE is faster than the DELETE, as&amp;nbsp; DELETE write records them in Log file in case it is needed to rollback in future from LOG files. etc..&lt;br&gt;&lt;br&gt;These answers are correct. I also got this answer, which is Incorrect: &lt;br&gt;&lt;br&gt;"&lt;strong&gt;DELETE can be rolled back while TRUNCATE can not be rolled back&lt;/strong&gt;"&lt;br&gt;&lt;br&gt;I asked them what does it mean?, give me an example. See what they say, &lt;em&gt;if I have Transaction and if I have used DELETE then ROLLBACK will let them back to original state. In case of TRUNCATE within Transaction, will not allow me to original state.&lt;/em&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;This is incorrect&lt;/strong&gt;. We can ROLLBACK changes made by DELETE and TRUNCATE if the it is used in Transaction. Lets see this in detail by example:&lt;br&gt;&lt;br&gt;Create one table table and insert some data in it like:&lt;br&gt;&lt;pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=CREATE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;CREATE&lt;/a&gt; Test &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=TABLE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;TABLE&lt;/a&gt;(&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;ID &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=INT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;INT&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=IDENTITY&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;IDENTITY&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Text&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Text&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=VARCHAR&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;VARCHAR&lt;/a&gt;(5)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=GO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;GO&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=INSERT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;INSERT&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=INTO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;INTO&lt;/a&gt; Test(&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Text&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Text&lt;/a&gt;) &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=VALUES&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;VALUES&lt;/a&gt;('&lt;span style="color: #8b0000"&gt;A&lt;/span&gt;')&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=INSERT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;INSERT&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=INTO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;INTO&lt;/a&gt; Test(&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Text&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Text&lt;/a&gt;) &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=VALUES&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;VALUES&lt;/a&gt;('&lt;span style="color: #8b0000"&gt;B&lt;/span&gt;')&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=INSERT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;INSERT&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=INTO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;INTO&lt;/a&gt; Test(&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Text&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Text&lt;/a&gt;) &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=VALUES&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;VALUES&lt;/a&gt;('&lt;span style="color: #8b0000"&gt;C&lt;/span&gt;')&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=INSERT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;INSERT&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=INTO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;INTO&lt;/a&gt; Test(&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Text&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;Text&lt;/a&gt;) &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=VALUES&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;VALUES&lt;/a&gt;('&lt;span style="color: #8b0000"&gt;D&lt;/span&gt;')&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=GO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;GO&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br&gt;&lt;/pre&gt;&lt;pre&gt;Lets try to use TRUNCATE within Transaction as follows:&lt;/pre&gt;&lt;pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=BEGIN&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;BEGIN&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=TRAN&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;TRAN&lt;/a&gt; &lt;span style="color: #008000"&gt;--Start Transaction&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=TRUNCATE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;TRUNCATE&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=TABLE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;TABLE&lt;/a&gt; Test &lt;span style="color: #008000"&gt;--Use this command&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;span style="color: #008000"&gt;--Check the data from table. See transaction is still in progress not commit/Rollback yet&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;span style="color: #008000"&gt;--There is no row in table, as all rows were deleted from above TRUNCATE statement&lt;/span&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=SELECT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;SELECT&lt;/a&gt; * &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=FROM&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;FROM&lt;/a&gt; Test &lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=ROLLBACK&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;ROLLBACK&lt;/a&gt; &lt;span style="color: #008000"&gt;--Rollback this Transaction&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;span style="color: #008000"&gt;--Lets see now what values should be there in table after ROLLBACK&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=SELECT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;SELECT&lt;/a&gt; * &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=FROM&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;FROM&lt;/a&gt; Test&lt;/pre&gt;&lt;/pre&gt;So, we found that we can found all values in the table. We can ROLLBACK the TRUNCATE command as same as other commands. &lt;br&gt;This is place where most of the developers can not give accurate answer. I hope by this article they can have clear idea.&lt;br&gt;&lt;br&gt;Let me know if there is any confusion.&lt;br&gt;&lt;br&gt;&lt;strong&gt;CONCLUSION: &lt;br&gt;&lt;br&gt;&lt;/strong&gt;DELETE and TRUNCATE both can be rolled back when used with TRANSACTION.&lt;br&gt;If Transaction is done, means COMMITED, then we can not rollback TRUNCATE command, but we can still rollback DELETE command from LOG files, as&amp;nbsp; DELETE write records them in Log file in case it is needed to rollback in future from LOG files.&lt;br&gt;&lt;br&gt;Reference: &lt;strong&gt;Tejas Shah( &lt;a href="http://www.SQLYoga.com" target="_blank"&gt;http://www.SQLYoga.com&lt;/a&gt; )&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-9212458116512860692?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/9212458116512860692/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/09/sql-server-difference-between-delete.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/9212458116512860692?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/9212458116512860692?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/09/sql-server-difference-between-delete.html" title="SQL SERVER: Difference between DELETE and TRUNCATE commands" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry gd:etag="W/&quot;C08FSHs_eSp7ImA9WxNTEEs.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-496874315641113855</id><published>2009-08-12T12:50:00.000+05:30</published><updated>2009-08-12T12:53:39.541+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-12T12:53:39.541+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="EXISTS" /><category scheme="http://www.blogger.com/atom/ns#" term="DBA" /><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Tips" /><category scheme="http://www.blogger.com/atom/ns#" term="XML" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2005" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>SQL SERVER: Check if Node exists in XML or not</title><content type="html">&lt;pre class="csharpcode"&gt;&lt;/pre&gt;&lt;br /&gt;&lt;table cellspacing="0" cellpadding="2" width="685" border="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="683"&gt;Today, I have one requirement to check dynamically if a node exists in my xml or NOT. &lt;br&gt;&lt;br&gt;I have a stored procedure that receives XML and I need to check if the message information xml contains one Node or NOT. If that node exists then I need to execute that Stored Procedure by different logic and if not it should run with different logic. &lt;br&gt;&lt;br&gt;I figure it out by using EXISTS.&lt;br&gt;&lt;br&gt;This is my XML, that I got as parameter.&lt;br&gt;&lt;br&gt;&lt;pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; height: 17px; background-color: #ffffff"&gt;DECLARE @ExportData  XML&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; height: 17px; background-color: #ffffff"&gt;SELECT @ExportData =&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; height: 16px; background-color: #ffffff"&gt;'&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Data&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Number&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"A123"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; height: 18px; background-color: #ffffff"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;BulkData&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; height: 18px; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;EachData&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Parts&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Test1"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; height: 16px; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;EachData&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Parts&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Test2"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; height: 15px; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;EachData&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Parts&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Test3"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; height: 16px; background-color: #ffffff"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;BulkData&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Data&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;'&lt;br /&gt;&lt;/pre&gt;&lt;/pre&gt;Now I need to check if "BulkData" node exists in XML, then I need to write different logic to get the result. &lt;br&gt;So, I used this&lt;br&gt;&lt;br&gt;&lt;pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=SELECT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;SELECT&lt;/a&gt; @ExportData.exist('&lt;span style="color: #8b0000"&gt;(//BulkData)&lt;/span&gt;')&lt;/pre&gt;&lt;/pre&gt;This will return "1" if node is exists else return "0".&lt;br&gt;&lt;br&gt;That's it. I can write based on the return result by this statement.&lt;br&gt;&lt;br&gt;Let me know if it helps you.&lt;br&gt;&lt;br&gt;Reference : &lt;strong&gt;Tejas Shah(&lt;/strong&gt;&lt;a href="http://www.SQLYoga.com"&gt;&lt;strong&gt;http://www.SQLYoga.com&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-496874315641113855?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/496874315641113855/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/08/sql-server-check-if-node-exists-in-xml.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/496874315641113855?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/496874315641113855?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/08/sql-server-check-if-node-exists-in-xml.html" title="SQL SERVER: Check if Node exists in XML or not" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry gd:etag="W/&quot;D0IMSX4_cSp7ImA9WxJaEE8.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-1166474405430713578</id><published>2009-07-31T12:24:00.000+05:30</published><updated>2009-07-31T13:03:08.049+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-31T13:03:08.049+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DBA" /><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Tips" /><category scheme="http://www.blogger.com/atom/ns#" term="CONTEXT_INFO" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2005" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>SQL SERVER: Use CONTEXT_INFO</title><content type="html">&lt;table cellspacing="0" cellpadding="2" width="605" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="603"&gt; &lt;p&gt;Recently I have following situation:&lt;/p&gt; &lt;p&gt;I don't need to execute trigger's code on some condition, like if it is called from particular stored procedure. If data is being updated from any other places, like application, or any other stored procedures, trigger code should be executed, but when one particular Stored Procedure is updating data to that table, it should not allow to do so.&lt;/p&gt; &lt;p&gt;I search and I got the option CONTEXT_INFO with SQL SERVER. Let me share this with all of you.&lt;/p&gt; &lt;p&gt;NOTE: We can use CONTEXT_INFO value in that session only. If there is new session we cannot use that value stored in CONTEXT_INFO.&lt;/p&gt; &lt;p&gt;We can set CONTEXT_INFO up to 128 bytes of binary information with the current session or connection. Reference: &lt;a title="http://msdn.microsoft.com/en-us/library/ms180125.aspx" href="http://msdn.microsoft.com/en-us/library/ms180125.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/ms180125.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Let see an example, for better understanding:&lt;/p&gt; &lt;div id="codeSnippetWrapper"&gt; &lt;div class="csharpcode-wrapper" id="codeSnippetWrapper"&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; tblA(&lt;br&gt;ID &lt;span class="kwrd"&gt;INT&lt;/span&gt; &lt;span class="kwrd"&gt;IDENTITY&lt;/span&gt;,&lt;br&gt;ColVal &lt;span class="kwrd"&gt;VARCHAR&lt;/span&gt;(100)&lt;br&gt;)&lt;br&gt;Let's create two SPs, which will insert a record into tblA, which is just created&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="csharpcode-wrapper" id="codeSnippetWrapper"&gt;&lt;pre class="csharpcode" id="codeSnippet"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;PROC&lt;/span&gt; TestA&lt;br&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;br&gt;&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt; &lt;br&gt;    INSERT &lt;span class="kwrd"&gt;INTO&lt;/span&gt; tblA(ColVal)&lt;br&gt;    &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="str"&gt;'Allow To insert'&lt;/span&gt;&lt;br&gt;&lt;span class="kwrd"&gt;END&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="csharpcode-wrapper" id="codeSnippetWrapper"&gt;&lt;pre class="csharpcode" id="codeSnippet"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;PROC&lt;/span&gt; TestB&lt;br&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;br&gt;&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt; &lt;br&gt;&lt;br&gt;    &lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @UID VARBINARY(128)&lt;br&gt;    &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; @UID = &lt;span class="kwrd"&gt;CAST&lt;/span&gt;(&lt;span class="str"&gt;'TestB'&lt;/span&gt; &lt;span class="kwrd"&gt;AS&lt;/span&gt; VARBINARY(128))&lt;br&gt;    &lt;span class="kwrd"&gt;SET&lt;/span&gt; CONTEXT_INFO 0x5465737442&lt;br&gt;    &lt;br&gt;    &lt;br&gt;    INSERT &lt;span class="kwrd"&gt;INTO&lt;/span&gt; tblA(ColVal)&lt;br&gt;    &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="str"&gt;'Not Allow To insert'&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span class="kwrd"&gt;END&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;In this example, when we execute SP: TestA, it should allow to insert record in the table, while we execute SP: TestB, it should restrict. Here I set CONTEXT_INFO with SPName. I can use the same whatever is stored in CONTEXT_INFO during the current session.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;To make validation as defined above, lets create one trigger to restrict/allow user to proceed.&lt;/p&gt;&lt;br /&gt;&lt;div class="csharpcode-wrapper" id="codeSnippetWrapper"&gt;&lt;pre class="csharpcode" id="codeSnippet"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;TRIGGER&lt;/span&gt; trg_TblA&lt;br&gt;   &lt;span class="kwrd"&gt;ON&lt;/span&gt;  tblA&lt;br&gt;   &lt;span class="kwrd"&gt;AFTER&lt;/span&gt; INSERT,&lt;span class="kwrd"&gt;DELETE&lt;/span&gt;,&lt;span class="kwrd"&gt;UPDATE&lt;/span&gt;&lt;br&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;br&gt;&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;&lt;br&gt;    &lt;span class="kwrd"&gt;SET&lt;/span&gt; NOCOUNT &lt;span class="kwrd"&gt;ON&lt;/span&gt;;&lt;br&gt;&lt;br&gt;    &lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @Message varbinary(128)&lt;br&gt;    &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; @Message = &lt;span class="kwrd"&gt;cast&lt;/span&gt;(&lt;span class="str"&gt;'TestB'&lt;/span&gt; &lt;span class="kwrd"&gt;as&lt;/span&gt; varbinary(128))&lt;br&gt;    &lt;br&gt;    &lt;span class="kwrd"&gt;IF&lt;/span&gt;    @Message = CONTEXT_INFO() &lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;&lt;br&gt;        &lt;span class="kwrd"&gt;RAISERROR&lt;/span&gt;(&lt;span class="str"&gt;'Not Allowed to Insert/Update/Delete from SP: TestB'&lt;/span&gt;,15,1)&lt;br&gt;        &lt;span class="kwrd"&gt;ROLLBACK&lt;/span&gt; &lt;span class="kwrd"&gt;TRAN&lt;/span&gt;&lt;br&gt;    &lt;span class="kwrd"&gt;END&lt;/span&gt;&lt;br&gt;        &lt;br&gt;&lt;span class="kwrd"&gt;END&lt;/span&gt;&lt;br&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;In Trigger, as you can see, I again converted the SP name and compare it with CONTEXT_INFO.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;When Stored Procedure TestA is being executed, CONTEXT_INFO is not set, so trigger will not find comparison and allows user to insert record.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;While we execute TestB, as we have set CONTEXT_INFO, system will find comparison in trigger and restrict us to complete transaction. So system will give error message: &lt;/p&gt;&lt;br /&gt;&lt;p&gt;So, by this way we can validate value in trigger, to make such decision&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-1166474405430713578?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/1166474405430713578/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/07/sql-server-use-contextinfo.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/1166474405430713578?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/1166474405430713578?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/07/sql-server-use-contextinfo.html" title="SQL SERVER: Use CONTEXT_INFO" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DkQHSXk5cSp7ImA9WxJUFks.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-1310621709423771683</id><published>2009-07-15T18:47:00.000+05:30</published><updated>2009-07-15T18:55:38.729+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-15T18:55:38.729+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DBA" /><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Services" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2005" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="Auto Execute Stored Procedure" /><title>SQL SERVER: Reset Setup Values, when SQL SERVER is started/restarted</title><content type="html">&lt;table cellspacing="0" cellpadding="0" width="601" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="599"&gt;         &lt;p&gt;We have a requirements to clear all setup values when SQL SERVER is started/restarted and we need to setup default values to setup table.&lt;/p&gt;          &lt;p&gt;I found one Stored Procedure provided by MS SQL SERVER. Let me share it with all of you.&lt;/p&gt;          &lt;p&gt;SQL SERVER provides this SP: “sp_procoption”, which is auto executed every time when SQL SERVER service has been started. I found this SP and it helps me to figure it out the solution for the request as following way. Let me show you how to use it&lt;/p&gt;          &lt;p&gt;Syntax use this SP:&lt;/p&gt;          &lt;div&gt;           &lt;pre id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;EXEC&lt;/span&gt; SP_PROCOPTION &lt;br /&gt;    @ProcName = &lt;span style="color: #006080"&gt;'SPNAME'&lt;/span&gt;,&lt;br /&gt;    @OptionName = &lt;span style="color: #006080"&gt;'startup'&lt;/span&gt;,&lt;br /&gt;    @OptionValue = &lt;span style="color: #006080"&gt;'true/false OR on/off'&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;@ProcName, should be Stored procedure name which should be executed when SQL SERVER is started. This stored procedure must be in “master” database.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;        &lt;div&gt;@OptionName, should be “startup” always.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;        &lt;div&gt;@OptionValue, this should be set up to execute this given sp or not. If it is “true/on”, given sp will be execute every time when SQL SERVER is started. If it is “false/off”, it will not.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;        &lt;div&gt;That’s it, lets take an example.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;        &lt;div&gt;I have one Database called Test, I have created setup table:&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;        &lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;          &lt;pre id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;CREATE&lt;/span&gt; &lt;span style="color: #0000ff"&gt;TABLE&lt;/span&gt; SetupTable(&lt;br /&gt;Seq &lt;span style="color: #0000ff"&gt;INT&lt;/span&gt; &lt;span style="color: #0000ff"&gt;IDENTITY&lt;/span&gt;,&lt;br /&gt;Code &lt;span style="color: #0000ff"&gt;VARCHAR&lt;/span&gt;(100)&lt;br /&gt;)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;          &lt;font face="Courier New"&gt;Lets insert some default values to this table:&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;        &lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;          &lt;pre id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;INSERT &lt;span style="color: #0000ff"&gt;INTO&lt;/span&gt; SetupTable &lt;span style="color: #0000ff"&gt;VALUES&lt;/span&gt;(&lt;span style="color: #006080"&gt;'A'&lt;/span&gt;)&lt;br /&gt;INSERT &lt;span style="color: #0000ff"&gt;INTO&lt;/span&gt; SetupTable &lt;span style="color: #0000ff"&gt;VALUES&lt;/span&gt;(&lt;span style="color: #006080"&gt;'B'&lt;/span&gt;)&lt;br /&gt;INSERT &lt;span style="color: #0000ff"&gt;INTO&lt;/span&gt; SetupTable &lt;span style="color: #0000ff"&gt;VALUES&lt;/span&gt;(&lt;span style="color: #006080"&gt;'C'&lt;/span&gt;)&lt;br /&gt;INSERT &lt;span style="color: #0000ff"&gt;INTO&lt;/span&gt; SetupTable &lt;span style="color: #0000ff"&gt;VALUES&lt;/span&gt;(&lt;span style="color: #006080"&gt;'D'&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;          &lt;font face="Courier New"&gt;What I need to do is, I need to wipe out this values when SQL SERVER is started and fill it with the same default values, because these values might be updated by application.&lt;/font&gt;&lt;font face="Courier New"&gt;So, I created one stored procedure in &lt;strong&gt;master&lt;/strong&gt; &lt;strong&gt;database, &lt;/strong&gt;named, &lt;/font&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;        &lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;          &lt;pre id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;CREATE&lt;/span&gt; &lt;span style="color: #0000ff"&gt;PROC&lt;/span&gt; ClearAllData&lt;br /&gt;&lt;span style="color: #0000ff"&gt;AS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;DELETE&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt;    Test.dbo.SetupTable&lt;br /&gt;&lt;br /&gt;INSERT &lt;span style="color: #0000ff"&gt;INTO&lt;/span&gt; SetupTable &lt;span style="color: #0000ff"&gt;VALUES&lt;/span&gt;(&lt;span style="color: #006080"&gt;'X'&lt;/span&gt;)&lt;br /&gt;INSERT &lt;span style="color: #0000ff"&gt;INTO&lt;/span&gt; SetupTable &lt;span style="color: #0000ff"&gt;VALUES&lt;/span&gt;(&lt;span style="color: #006080"&gt;'Y'&lt;/span&gt;)&lt;br /&gt;INSERT &lt;span style="color: #0000ff"&gt;INTO&lt;/span&gt; SetupTable &lt;span style="color: #0000ff"&gt;VALUES&lt;/span&gt;(&lt;span style="color: #006080"&gt;'Z'&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;and set up this stored procedure as auto executed every time when SQL SERVER is started as: &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;        &lt;div&gt;&lt;br /&gt;          &lt;pre id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;EXEC&lt;/span&gt; SP_PROCOPTION &lt;br /&gt;    @ProcName = &lt;span style="color: #006080"&gt;'ClearAllData'&lt;/span&gt;,&lt;br /&gt;    @OptionName = &lt;span style="color: #006080"&gt;'startup'&lt;/span&gt;,&lt;br /&gt;    @OptionValue = &lt;span style="color: #006080"&gt;'true'&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;        &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;        &lt;div&gt;Now, restart SQL SERVICES, and you find that old values will be deleted and new values with ‘X’, ‘Y’, and ‘Z’ will be inserted automatically.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;        &lt;div&gt;If now you want to stop it to execute automatically, we just need to execute this with “false” as: &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;        &lt;div&gt;&lt;br /&gt;          &lt;pre id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;EXEC&lt;/span&gt; SP_PROCOPTION &lt;br /&gt;    @ProcName = &lt;span style="color: #006080"&gt;'ClearAllData'&lt;/span&gt;,&lt;br /&gt;    @OptionName = &lt;span style="color: #006080"&gt;'startup'&lt;/span&gt;,&lt;br /&gt;    @OptionValue = &lt;span style="color: #006080"&gt;'false'&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;        &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;        &lt;div&gt;I hope this is very clear to use this feature.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;        &lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;        &lt;div&gt;Reference : &lt;strong&gt;Tejas Shah (&lt;a href="http://www.SQLYoga.com"&gt;http://www.SQLYoga.com&lt;/a&gt;)&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;      &lt;/td&gt;&lt;br /&gt;    &lt;/tr&gt;&lt;br /&gt;  &lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-1310621709423771683?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/1310621709423771683/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/07/sql-server-reset-setup-values-when-sql.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/1310621709423771683?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/1310621709423771683?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/07/sql-server-reset-setup-values-when-sql.html" title="SQL SERVER: Reset Setup Values, when SQL SERVER is started/restarted" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;D0YMQn4zcCp7ImA9WxJREU0.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-7310017534557392758</id><published>2009-05-12T10:42:00.000+05:30</published><updated>2009-05-12T10:43:03.088+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-12T10:43:03.088+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DBA" /><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2005" /><category scheme="http://www.blogger.com/atom/ns#" term="Database Mail" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>SQL SERVER: Configure Database Mail with SQL SERVER 2005</title><content type="html">&lt;p&gt;We used Database mail to send mail to client on each updates.&lt;/p&gt;  &lt;p&gt;This is a very simple process to configure. Let me share how to configure Database mail with sql server 2005 with all of you.&lt;/p&gt;  &lt;p&gt;After setting up Profile and Account properly, you just need to write following code to send a mail to client:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;img class="size-full wp-image-138" title="Configure Database Mail Step 1" height="256" alt="Configure Database Mail Step 1" src="http://tejasnshah.wordpress.com/files/2009/03/mail11.jpg" width="310" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;img class="alignnone size-full wp-image-139" title="Configure Database Mail Step 2" height="444" alt="Configure Database Mail Step 2" src="http://tejasnshah.wordpress.com/files/2009/03/mail21.jpg" width="509" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;img class="size-full wp-image-142" title="Configure Database Mail Step 3" height="444" alt="Configure Database Mail Step 3" src="http://tejasnshah.wordpress.com/files/2009/03/mail33.jpg" width="509" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; You might get this message:&lt;/p&gt;  &lt;p&gt;&lt;img class="size-full wp-image-143" title="Configure Database Mail Step 4" height="109" alt="Configure Database Mail Step 4" src="http://tejasnshah.wordpress.com/files/2009/03/mail41.jpg" width="510" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 5: Create Profile&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;img class="size-full wp-image-144" title="Configure Database Mail Step 5" height="444" alt="Configure Database Mail Step 5" src="http://tejasnshah.wordpress.com/files/2009/03/mail51.jpg" width="509" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 6 : Create Account&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;img class="size-full wp-image-145" title="Configure Database Mail Step 6" height="439" alt="Configure Database Mail Step 6" src="http://tejasnshah.wordpress.com/files/2009/03/mail61.jpg" width="510" /&gt;&lt;/p&gt;  &lt;p&gt;That's it.&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small; font-family: courier new"&gt;&lt;font size="2"&gt;&lt;font face="Verdana"&gt;&lt;span style="color: maroon"&gt;exec&lt;/span&gt; &lt;span style="color: maroon"&gt;msdb&lt;/span&gt;&lt;span style="color: silver"&gt;.&lt;/span&gt;&lt;span style="color: maroon"&gt;dbo&lt;/span&gt;&lt;span style="color: silver"&gt;.&lt;/span&gt;&lt;span style="color: #8000ff"&gt;sp_send_dbmail&lt;/span&gt;           &lt;br /&gt;&lt;span style="color: maroon"&gt;@&lt;/span&gt;&lt;span style="color: maroon"&gt;profile_name&lt;/span&gt; &lt;span style="color: silver"&gt;=&lt;/span&gt; &lt;span style="color: red"&gt;'ProfileName'&lt;/span&gt;&lt;span style="color: silver"&gt;,&lt;/span&gt; &lt;span style="color: blue"&gt;IN&lt;/span&gt; &lt;span style="color: maroon"&gt;our&lt;/span&gt; &lt;span style="color: blue"&gt;CASE&lt;/span&gt;&lt;span style="color: silver"&gt;,&lt;/span&gt; &lt;span style="color: red"&gt;'Tejas'&lt;/span&gt;           &lt;br /&gt;&lt;span style="color: maroon"&gt;@&lt;/span&gt;&lt;span style="color: maroon"&gt;recipients&lt;/span&gt; &lt;span style="color: silver"&gt;=&lt;/span&gt; &lt;span style="color: red"&gt;'Client Email Address'&lt;/span&gt; &lt;span style="color: silver"&gt;,&lt;/span&gt;           &lt;br /&gt;&lt;span style="color: maroon"&gt;@&lt;/span&gt;&lt;span style="color: maroon"&gt;blind_copy_recipients&lt;/span&gt; &lt;span style="color: silver"&gt;=&lt;/span&gt; &lt;span style="color: red"&gt;'BCC Address'&lt;/span&gt;&lt;span style="color: silver"&gt;,&lt;/span&gt;           &lt;br /&gt;&lt;span style="color: maroon"&gt;@&lt;/span&gt;&lt;span style="color: maroon"&gt;subject&lt;/span&gt; &lt;span style="color: silver"&gt;=&lt;/span&gt; &lt;span style="color: red"&gt;'Subject'&lt;/span&gt;&lt;span style="color: silver"&gt;,&lt;/span&gt;           &lt;br /&gt;&lt;span style="color: maroon"&gt;@&lt;/span&gt;&lt;span style="color: blue"&gt;BODY&lt;/span&gt; &lt;span style="color: silver"&gt;=&lt;/span&gt; &lt;span style="color: red"&gt;'Message Body'&lt;/span&gt;&lt;span style="color: silver"&gt;,&lt;/span&gt;           &lt;br /&gt;&lt;span style="color: maroon"&gt;@&lt;/span&gt;&lt;span style="color: maroon"&gt;body_format&lt;/span&gt; &lt;span style="color: silver"&gt;=&lt;/span&gt; &lt;span style="color: red"&gt;'Message Type'&lt;/span&gt;&lt;span style="color: silver"&gt;,&lt;/span&gt; &lt;span style="color: maroon"&gt;it&lt;/span&gt; &lt;span style="color: maroon"&gt;could&lt;/span&gt; &lt;span style="color: maroon"&gt;be&lt;/span&gt; &lt;span style="color: maroon"&gt;text&lt;/span&gt; &lt;span style="color: blue"&gt;OR&lt;/span&gt; &lt;span style="color: maroon"&gt;html&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small; font-family: courier new"&gt;&lt;span style="color: silver"&gt;&lt;font size="2"&gt;&lt;font face="Verdana"&gt;&lt;span style="color: #000000"&gt;Let me know if you have any complexity or comments in setting up Database mail&lt;/span&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small; font-family: courier new"&gt;&lt;span style="color: silver"&gt;       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-7310017534557392758?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/7310017534557392758/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/05/sql-server-configure-database-mail-with.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/7310017534557392758?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/7310017534557392758?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/05/sql-server-configure-database-mail-with.html" title="SQL SERVER: Configure Database Mail with SQL SERVER 2005" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></entry><entry gd:etag="W/&quot;CU4HQn05fip7ImA9WxJSFEk.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-8086099041685294886</id><published>2009-05-04T17:45:00.000+05:30</published><updated>2009-05-04T19:02:13.326+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-04T19:02:13.326+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Comma Separated List" /><category scheme="http://www.blogger.com/atom/ns#" term="DBA" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Tips" /><category scheme="http://www.blogger.com/atom/ns#" term="XML" /><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2005" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>SQL SERVER: Read values from Comma Separated variable</title><content type="html">&lt;p&gt;As we have seen, &lt;a title="http://www.sqlyoga.com/2009/02/sql-server-get-comma-separated-list.html" href="http://www.sqlyoga.com/2009/02/sql-server-get-comma-separated-list.html"&gt;How to generate Comma separated List in SQL&lt;/a&gt;. Today we know, how to get values from Comma separated column. &lt;/p&gt;  &lt;p&gt;Many times developers asked, How can I read comma separated values from variable? There are many ways to get solution for this.&lt;/p&gt;  &lt;p&gt;Lets discuss about the best way, I think so. We can use XML to read values from comma separated values. XML made our life easy.&lt;/p&gt;  &lt;p&gt;Example:&lt;/p&gt;  &lt;p&gt;I have one procedure which has one parameter VARCHAR(100), which might contains value like '1,5,6,20'. What I need to do is: I need to update rows contains these ID(1,5,6,20). So We need to make query which will update status of these IDs.&lt;/p&gt;  &lt;div&gt;Solution: &lt;/div&gt;  &lt;div&gt;I converted this VARCHAR Variable to XML by following way:&lt;/div&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;SET&lt;/span&gt; @xmlIDs =    &lt;span style="color: #006080"&gt;'&amp;lt;IDs&amp;gt;&lt;br /&gt;                    &amp;lt;ID&amp;gt;'&lt;/span&gt; + REPLACE(@str, &lt;span style="color: #006080"&gt;','&lt;/span&gt;, &lt;span style="color: #006080"&gt;'&amp;lt;/ID&amp;gt;&amp;lt;ID&amp;gt;'&lt;/span&gt;) + &lt;span style="color: #006080"&gt;'&amp;lt;/ID&amp;gt;'&lt;/span&gt; +&lt;br /&gt;                &lt;span style="color: #006080"&gt;'&amp;lt;/IDs&amp;gt;'&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;So this statement will generate XML from VARCHAR value as follows:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;pre id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;IDs&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;1&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;6&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;7&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;8&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;20&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;IDs&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;So, Now this is the XML, which can be easily read with SQL SERVER 2005 as:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;pre id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; x.v.&lt;span style="color: #0000ff"&gt;value&lt;/span&gt;(&lt;span style="color: #006080"&gt;'.'&lt;/span&gt;,&lt;span style="color: #006080"&gt;'INT'&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; @xmlIDs.nodes(&lt;span style="color: #006080"&gt;'/IDs/ID'&lt;/span&gt;) x(v)&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This will give me result set as: ( as separate table)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_55yV6koEy_w/Sf7drVDBFlI/AAAAAAAAJho/2fxaMXYebnA/s1600-h/image%5B2%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="141" alt="image" src="http://lh3.ggpht.com/_55yV6koEy_w/Sf7dstSGmfI/AAAAAAAAJhs/R7eO1ewITu8/image_thumb.png?imgmax=800" width="165" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;So that’s it, Now I can easily use this result set in my query, to update the rows accordingly.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;So my Procedure looks like:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;pre id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;CREATE&lt;/span&gt; &lt;span style="color: #0000ff"&gt;PROC&lt;/span&gt; Test_ReadValuesFromCommaSeparatedVariable&lt;br /&gt;    @str    &lt;span style="color: #0000ff"&gt;VARCHAR&lt;/span&gt;(100)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;AS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;DECLARE&lt;/span&gt; @XmlIDs XML&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;SET&lt;/span&gt; @xmlIDs =    &lt;span style="color: #006080"&gt;'&amp;lt;IDs&amp;gt;&lt;br /&gt;                    &amp;lt;ID&amp;gt;'&lt;/span&gt; + REPLACE(@str, &lt;span style="color: #006080"&gt;','&lt;/span&gt;, &lt;span style="color: #006080"&gt;'&amp;lt;/ID&amp;gt;&amp;lt;ID&amp;gt;'&lt;/span&gt;) + &lt;span style="color: #006080"&gt;'&amp;lt;/ID&amp;gt;'&lt;/span&gt; +&lt;br /&gt;                &lt;span style="color: #006080"&gt;'&amp;lt;/IDs&amp;gt;'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;UPDATE&lt;/span&gt;    TableName&lt;br /&gt;&lt;span style="color: #0000ff"&gt;SET&lt;/span&gt;        Flag = 1&lt;br /&gt;&lt;span style="color: #0000ff"&gt;WHERE&lt;/span&gt;    ID &lt;span style="color: #0000ff"&gt;IN&lt;/span&gt;(&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; x.v.&lt;span style="color: #0000ff"&gt;value&lt;/span&gt;(&lt;span style="color: #006080"&gt;'.'&lt;/span&gt;,&lt;span style="color: #006080"&gt;'INT'&lt;/span&gt;)&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; @xmlIDs.nodes(&lt;span style="color: #006080"&gt;'/IDs/ID'&lt;/span&gt;) x(v)&lt;br /&gt;            )&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;So, it is very easy to read values from Comma separated value.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Let me know if it helps you.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-8086099041685294886?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/8086099041685294886/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/05/sql-server-get-comma-separated-values.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/8086099041685294886?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/8086099041685294886?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/05/sql-server-get-comma-separated-values.html" title="SQL SERVER: Read values from Comma Separated variable" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry gd:etag="W/&quot;A0IGQ3g-fCp7ImA9WxJSEUs.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-7957852124562783373</id><published>2009-04-26T12:23:00.000+05:30</published><updated>2009-05-01T14:48:42.654+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-01T14:48:42.654+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Row Count" /><category scheme="http://www.blogger.com/atom/ns#" term="DBA" /><category scheme="http://www.blogger.com/atom/ns#" term="Iterate Each Table" /><category scheme="http://www.blogger.com/atom/ns#" term="sp_MSforeachtable" /><category scheme="http://www.blogger.com/atom/ns#" term="Compare Database" /><title>SQL SERVER - Query to compare number of Rows between different Databases</title><content type="html">&lt;table cellspacing="0" cellpadding="2" width="665" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="663"&gt;We have two databases in the same SQL server instance. Both of the databases are copy of the production database, so both contains same tables. We added some records in Test Database’s some tables to update some features. We have added data in many tables of test database. Now we need to also update Production DB with the updated data. To update Production Database, we need to make sure in which tables we have updated data and then we will check and update production database accordingly. We have many numbers of tables, and we have updated many tables, so its not possible for us to check it manually.          &lt;br /&gt;          &lt;br /&gt;So, we need to make query to compare rows of each table with the another database tables, to find out which tables has different rows then the original database.           &lt;br /&gt;          &lt;br /&gt;Solution:           &lt;br /&gt;          &lt;br /&gt;As I need to solve this problem, I write a query which will give me Rows of each table in one Database. As I need to compare it with another database I write the following query to come out with the solution.&amp;#160; &lt;br /&gt;Example:           &lt;br /&gt;          &lt;br /&gt;I have two databases. Database A and Database B.           &lt;br /&gt;          &lt;br /&gt;I need to make a report, which will give me details of each table and rows.           &lt;br /&gt;          &lt;br /&gt;I made this Stored Procedure in Database A.           &lt;br /&gt;          &lt;br /&gt;          &lt;div id="codeSnippetWrapper"&gt;           &lt;pre id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;CREATE&lt;/span&gt; &lt;span style="color: #0000ff"&gt;PROC&lt;/span&gt; CompareRowsBetweenDatabas&lt;br /&gt;&lt;span style="color: #0000ff"&gt;AS&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;WITH&lt;/span&gt; A &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt;(&lt;br /&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; &lt;br /&gt;    sch.name &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; SchemaName,&lt;br /&gt;    st.Name &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; TableName,&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;SUM&lt;/span&gt;(  &lt;br /&gt;        &lt;span style="color: #0000ff"&gt;CASE&lt;/span&gt;  &lt;br /&gt;            &lt;span style="color: #0000ff"&gt;WHEN&lt;/span&gt; (p.index_id &amp;lt; 2) &lt;span style="color: #0000ff"&gt;AND&lt;/span&gt; (a.type = 1) &lt;span style="color: #0000ff"&gt;THEN&lt;/span&gt; p.&lt;span style="color: #0000ff"&gt;rows&lt;/span&gt;  &lt;br /&gt;            &lt;span style="color: #0000ff"&gt;ELSE&lt;/span&gt; 0  &lt;br /&gt;        &lt;span style="color: #0000ff"&gt;END&lt;/span&gt;  &lt;br /&gt;       ) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Rows&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; sys.partitions p&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;INNER&lt;/span&gt; &lt;span style="color: #0000ff"&gt;JOIN&lt;/span&gt; sys.allocation_units a &lt;span style="color: #0000ff"&gt;ON&lt;/span&gt; p.partition_id = a.container_id&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;INNER&lt;/span&gt; &lt;span style="color: #0000ff"&gt;JOIN&lt;/span&gt; sys.tables st &lt;span style="color: #0000ff"&gt;ON&lt;/span&gt; st.object_id = p.Object_ID&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;INNER&lt;/span&gt; &lt;span style="color: #0000ff"&gt;JOIN&lt;/span&gt; sys.schemas sch &lt;span style="color: #0000ff"&gt;ON&lt;/span&gt; sch.schema_id = st.schema_id&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;GROUP&lt;/span&gt; &lt;span style="color: #0000ff"&gt;BY&lt;/span&gt; st.name, sch.name&lt;br /&gt;&lt;br /&gt;),&lt;br /&gt;b &lt;span style="color: #0000ff"&gt;as&lt;/span&gt;(&lt;br /&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; &lt;br /&gt;    sch.name &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; SchemaName,&lt;br /&gt;    st.Name &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; TableName,&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;SUM&lt;/span&gt;(  &lt;br /&gt;        &lt;span style="color: #0000ff"&gt;CASE&lt;/span&gt;  &lt;br /&gt;            &lt;span style="color: #0000ff"&gt;WHEN&lt;/span&gt; (p.index_id &amp;lt; 2) &lt;span style="color: #0000ff"&gt;AND&lt;/span&gt; (a.type = 1) &lt;span style="color: #0000ff"&gt;THEN&lt;/span&gt; p.&lt;span style="color: #0000ff"&gt;rows&lt;/span&gt;  &lt;br /&gt;            &lt;span style="color: #0000ff"&gt;ELSE&lt;/span&gt; 0  &lt;br /&gt;        &lt;span style="color: #0000ff"&gt;END&lt;/span&gt;  &lt;br /&gt;       ) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Rows&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; B.sys.partitions p&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;INNER&lt;/span&gt; &lt;span style="color: #0000ff"&gt;JOIN&lt;/span&gt; B.sys.allocation_units a &lt;span style="color: #0000ff"&gt;ON&lt;/span&gt; p.partition_id = a.container_id&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;INNER&lt;/span&gt; &lt;span style="color: #0000ff"&gt;JOIN&lt;/span&gt; B.sys.tables st &lt;span style="color: #0000ff"&gt;ON&lt;/span&gt; st.object_id = p.Object_ID&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;INNER&lt;/span&gt; &lt;span style="color: #0000ff"&gt;JOIN&lt;/span&gt; B.sys.schemas sch &lt;span style="color: #0000ff"&gt;ON&lt;/span&gt; sch.schema_id = st.schema_id&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;GROUP&lt;/span&gt; &lt;span style="color: #0000ff"&gt;BY&lt;/span&gt; st.name, sch.name&lt;br /&gt;)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;    a.SchemaName, a.TableName, a.&lt;span style="color: #0000ff"&gt;Rows&lt;/span&gt;,&lt;br /&gt;        b.SchemaName &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; BSchemaName, b.TableName &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; BTableName, B.&lt;span style="color: #0000ff"&gt;Rows&lt;/span&gt; &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; BRows&lt;br /&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; a &lt;br /&gt;&lt;span style="color: #0000ff"&gt;INNER&lt;/span&gt; &lt;span style="color: #0000ff"&gt;JOIN&lt;/span&gt; b &lt;span style="color: #0000ff"&gt;ON&lt;/span&gt; a.TableName = b.TableName&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;AND&lt;/span&gt; a.SchemaName = b.SchemaName&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;EXEC&lt;/span&gt; CompareRowsBetweenDatabase&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;        &lt;p&gt;This will give me results as I need. &lt;/p&gt;&lt;br /&gt;        &lt;p&gt;Let me know if it helps you.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;        &lt;br /&gt;&lt;/td&gt;&lt;br /&gt;    &lt;/tr&gt;&lt;br /&gt;  &lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-7957852124562783373?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/7957852124562783373/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/04/sql-server-query-to-compare-number-rows.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/7957852124562783373?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/7957852124562783373?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/04/sql-server-query-to-compare-number-rows.html" title="SQL SERVER - Query to compare number of Rows between different Databases" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;CEEERXk4fCp7ImA9WxJTEk8.&quot;"><id>tag:blogger.com,1999:blog-4762425244190648087.post-755354214673536484</id><published>2009-04-20T15:39:00.000+05:30</published><updated>2009-04-20T15:46:44.734+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-20T15:46:44.734+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL DateTime" /><category scheme="http://www.blogger.com/atom/ns#" term="ORDER BY" /><category scheme="http://www.blogger.com/atom/ns#" term="Tejas Shah" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2005" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>SQL SERVER: Get Result ORDER BY Time regardless Date on SQL DateTime column</title><content type="html">&lt;span style="font-family: verdana"&gt;   &lt;p&gt;     &lt;br /&gt;Usually we save Time with Dates in DATETIME column.       &lt;br /&gt;Today, I came across situation, where I need to sort my result set by Time, regardless the Date.&lt;/p&gt;   &lt;span style="font-family: verdana"&gt;Let's see Example&lt;/span&gt;&lt;/span&gt;   &lt;p&gt;&lt;span style="font-family: verdana"&gt;I have some sample data like this:&lt;/span&gt;&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div&gt;     &lt;pre id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;DECLARE&lt;/span&gt; @&lt;span style="color: #0000ff"&gt;Data&lt;/span&gt; &lt;span style="color: #0000ff"&gt;TABLE&lt;/span&gt;(dt DATETIME)&lt;br /&gt;INSERT &lt;span style="color: #0000ff"&gt;INTO&lt;/span&gt; @&lt;span style="color: #0000ff"&gt;Data&lt;/span&gt;(dt) &lt;br /&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; &lt;span style="color: #006080"&gt;'2008-12-05 04:00:00.000'&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; &lt;span style="color: #006080"&gt;'2008-12-10 10:00:00.000'&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; &lt;span style="color: #006080"&gt;'2009-03-01 08:00:00.000'&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; &lt;span style="color: #006080"&gt;'2009-03-02 07:15:00.000'&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; &lt;span style="color: #006080"&gt;'2009-03-10 08:50:00.000'&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; &lt;span style="color: #006080"&gt;'2008-12-31 23:00:00.000'&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; &lt;span style="color: #006080"&gt;'2009-05-01 21:10:00.000'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; @&lt;span style="color: #0000ff"&gt;Data&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;  &lt;div&gt;&lt;span style="font-family: verdana"&gt;Now we need output like this:&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;  &lt;div&gt;&lt;img class="size-full wp-image-195" title="Get Result Order BY Time regardless Date on DateTime column" height="153" alt="Get Result Order BY Time regardless Date on DateTime column" src="http://tejasnshah.wordpress.com/files/2009/03/161.jpg" width="168" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: verdana"&gt;I found very quick solution for this. You can create query as follows:&lt;/span&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;    &lt;pre id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; * &lt;br /&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; @&lt;span style="color: #0000ff"&gt;Data&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #0000ff"&gt;ORDER&lt;/span&gt; &lt;span style="color: #0000ff"&gt;BY&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Convert&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;VARCHAR&lt;/span&gt;, dt,108)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana"&gt;Let me know if it helps you in any way. &lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4762425244190648087-755354214673536484?l=www.sqlyoga.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.sqlyoga.com/feeds/755354214673536484/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.sqlyoga.com/2009/04/sql-server-get-result-order-by-time.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/755354214673536484?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4762425244190648087/posts/default/755354214673536484?v=2" /><link rel="alternate" type="text/html" href="http://www.sqlyoga.com/2009/04/sql-server-get-result-order-by-time.html" title="SQL SERVER: Get Result ORDER BY Time regardless Date on SQL DateTime column" /><author><name>Tejas Shah</name><uri>http://www.blogger.com/profile/04041260304854571049</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="17116247368334096599" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry></feed>
