<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6414077513031022467</id><updated>2012-01-30T13:18:12.578-08:00</updated><category term='script sql objects'/><category term='sql server dmv missing unused indexes'/><category term='query plan performance statistics'/><category term='test sales data warehouse'/><category term='SQL script compare dba tool'/><category term='comparing table data'/><category term='SharePoint MOSS 2007 list extract data'/><category term='Staging Area Data Warehouse'/><category term='search string text database tables'/><category term='SQL script export dba tool'/><category term='SQL objects tables foreign keys order'/><category term='CRM bulk delete performance degradation'/><category term='reporting services align grid spacing'/><category term='table rows string concatenation'/><category term='Free SQL database compare tool'/><title type='text'>SQL Approach</title><subtitle type='html'>LIKE many Sql programmers I prefer the SQL approach to solve most of the problems I face doing my job. Now I'm trying to share scripts and other things.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sqlapproach.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sqlapproach.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Miken</name><uri>http://www.blogger.com/profile/08010504211267306831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6414077513031022467.post-5485188469751428700</id><published>2011-12-13T06:08:00.000-08:00</published><updated>2011-12-13T06:10:13.010-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Free SQL database compare tool'/><title type='text'>Free SQL database compare tool</title><content type='html'>&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Hi All, SqlDbAid now comes with a new database compare module.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;The comparison uses an offline mode like the previous version,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;but now you'll be able to visually analyze the differences.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;All you have to do is connect to two databases, select the objects&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;you want to examine and then create two compare exports.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;These files will be the input for the compare module.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-j6Yz0SBiiiM/Tudb7lLRSyI/AAAAAAAAAH4/4-tMxqYrnGQ/s1600/BP20111213_01_01.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="399" src="http://2.bp.blogspot.com/-j6Yz0SBiiiM/Tudb7lLRSyI/AAAAAAAAAH4/4-tMxqYrnGQ/s640/BP20111213_01_01.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6414077513031022467-5485188469751428700?l=sqlapproach.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlapproach.blogspot.com/feeds/5485188469751428700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlapproach.blogspot.com/2011/12/free-sql-database-compare-tool.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/5485188469751428700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/5485188469751428700'/><link rel='alternate' type='text/html' href='http://sqlapproach.blogspot.com/2011/12/free-sql-database-compare-tool.html' title='Free SQL database compare tool'/><author><name>Miken</name><uri>http://www.blogger.com/profile/08010504211267306831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-j6Yz0SBiiiM/Tudb7lLRSyI/AAAAAAAAAH4/4-tMxqYrnGQ/s72-c/BP20111213_01_01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6414077513031022467.post-4591237290235278744</id><published>2011-05-31T15:36:00.000-07:00</published><updated>2011-05-31T15:39:03.286-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Staging Area Data Warehouse'/><title type='text'>MKST Staging Area Template</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;MKST provides a standard approach to many of the common data warehousing activity tasks.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;The data warehousing theory is out of scope here, but we could introduce some very basic concepts.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Most of the times we need to prepare data for a reporting/analysis tool without accessing directly the production databases:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;- We don’t want to load the server interfering with every day user’s activities&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;- Normally source data is quite normalized (not ready for efficient reporting queries)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;- We may need to do some cleansing and checks&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;- Many times we have to combine data from different sources (ERP, CRM…) and enrich them&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;MKST will enable you to transfer data from different sources (local or linked databases) to a data warehouse.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;The MKST data warehouse flow consists of a process organized in three phases.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;- Upload: transfer data from multiple sources to MKST staging&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;- Validation: check the uploaded data&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;- Import: transfer data from the staging area to a DWH&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;After configuring the staging the dbo.full_process stored procedure will do the job and the dbo.last_process_log will provide you the results.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;MKST comes with four sql schemas.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;- dbo: basic tables and procedures you should not modify&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;- ext: tables and procedure you may need to extend or add&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;- stg: tables that will serve as a destination for the original data&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;- dwh: views that will serve as a source for the DWH tables&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;You can download the script and the manual &lt;a href="http://dl.dropbox.com/u/766535/BLOG/FILE/MKST/MKST.zip"&gt;MKST.zip&lt;/a&gt;&lt;/span&gt;&lt;br /&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/6414077513031022467-4591237290235278744?l=sqlapproach.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlapproach.blogspot.com/feeds/4591237290235278744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlapproach.blogspot.com/2011/05/mkst-staging-area-template.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/4591237290235278744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/4591237290235278744'/><link rel='alternate' type='text/html' href='http://sqlapproach.blogspot.com/2011/05/mkst-staging-area-template.html' title='MKST Staging Area Template'/><author><name>Miken</name><uri>http://www.blogger.com/profile/08010504211267306831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6414077513031022467.post-7530209035929963178</id><published>2011-03-20T10:09:00.000-07:00</published><updated>2011-05-28T04:05:31.676-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='query plan performance statistics'/><title type='text'>Update your statistics</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;If your database suffers of poor performances, before you try any optimization, you should update&amp;nbsp;all statistics. Otherwise SQL Server will produce suboptimal plans.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Out of there a lot of databases have no maintenance plan simply because no one is in charge of it.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;This simple query will generete the script for you.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;SELECT&lt;/span&gt; &lt;br /&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'UPDATE STATISTICS ['&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; + &lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;SCHEMA_NAME&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;(T.&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;schema_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;) + &lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'].['&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; + T.name + &lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;']'&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; sys.&lt;/span&gt;&lt;span style="color: green; font-family: 'Courier New'; font-size: 10pt;"&gt;tables&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; T&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;WHERE&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-family: 'Courier New'; font-size: 10pt;"&gt;NOT EXISTS&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;SELECT TOP&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; 1 1&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;   sys.&lt;/span&gt;&lt;span style="color: green; font-family: 'Courier New'; font-size: 10pt;"&gt;extended_properties&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; EP&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;WHERE&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;   EP.major_id = T.&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-family: 'Courier New'; font-size: 10pt;"&gt;AND&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;   EP.name = &lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'microsoft_database_tools_support'&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; ) &lt;/span&gt;&lt;span style="color: grey; font-family: 'Courier New'; font-size: 10pt;"&gt;AND&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; T.is_ms_shipped = 0&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;ORDER BY&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; 1&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6414077513031022467-7530209035929963178?l=sqlapproach.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlapproach.blogspot.com/feeds/7530209035929963178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlapproach.blogspot.com/2011/03/update-your-statistics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/7530209035929963178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/7530209035929963178'/><link rel='alternate' type='text/html' href='http://sqlapproach.blogspot.com/2011/03/update-your-statistics.html' title='Update your statistics'/><author><name>Miken</name><uri>http://www.blogger.com/profile/08010504211267306831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6414077513031022467.post-4880807627888643951</id><published>2010-09-11T03:24:00.000-07:00</published><updated>2011-05-28T04:09:30.048-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql server dmv missing unused indexes'/><title type='text'>Find Missing and Unused indexes with SqlDbAid</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;SQL Server's Dynamic Management Views (DMV) give you access to a lot of useful information.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;The web is full of good scripts about SQL Server indexes, but if you prefer a friendly interface may be you could just use &lt;a href="http://dl.dropbox.com/u/766535/blog/file/SqlDbAid/SqlDbAid.zip"&gt;SqlDbAid&lt;/a&gt; application.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;Lets create a test case.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;Create and fill the following table&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;CREATE TABLE&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; [dbo].[missing_idx]&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; [row_id] [&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;bigint&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;] &lt;/span&gt;&lt;span style="color: grey; font-family: 'Courier New'; font-size: 10pt;"&gt;NOT NULL&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; [&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;] [&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;int&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;] &lt;/span&gt;&lt;span style="color: grey; font-family: 'Courier New'; font-size: 10pt;"&gt;NOT NULL&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; [name] [&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;nvarchar&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;](128) &lt;/span&gt;&lt;span style="color: grey; font-family: 'Courier New'; font-size: 10pt;"&gt;NOT NULL&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; [type] [&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;char&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;](2) &lt;/span&gt;&lt;span style="color: grey; font-family: 'Courier New'; font-size: 10pt;"&gt;NOT NULL&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;CONSTRAINT&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; [PK_missing_idx] &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;PRIMARY KEY CLUSTERED&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; ([row_id])&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Courier New'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;INSERT INTO&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; dbo.missing_idx&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;SELECT TOP&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; 20000&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;ROW_NUMBER&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;() &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;OVER&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;ORDER BY&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; O.&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;) row_id,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; O.&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; O.name,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; O.type&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; sys.&lt;/span&gt;&lt;span style="color: green; font-family: 'Courier New'; font-size: 10pt;"&gt;all_objects&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; O &lt;/span&gt;&lt;span style="color: grey; font-family: 'Courier New'; font-size: 10pt;"&gt;CROSS JOIN&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; sys.&lt;/span&gt;&lt;span style="color: green; font-family: 'Courier New'; font-size: 10pt;"&gt;all_objects&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; O1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Courier New'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;then we could try to extract some data accessing the table using object_id column (no index there).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; name,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; type&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; dbo.missing_idx&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;WHERE&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-family: 'Courier New'; font-size: 10pt;"&gt;in&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;SELECT TOP&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; 1 &lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; dbo.missing_idx)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Courier New'; font-size: 10pt; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;Now run SqlDbAid, connect to your server and select the database where you created the table.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;Select "&lt;b&gt;Missing Indexes&lt;/b&gt;" from &lt;b&gt;Tools --&amp;gt; Indexes&lt;/b&gt; menu.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;You should see the following report:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;img border="0" src="http://dl.dropbox.com/u/766535/blog/article/BP20100911_01_01.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;Double click the row to get the create script:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;CREATE NONCLUSTERED INDEX&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; [IX_AT_dbo_missing_idx_1870364392] &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;ON &lt;/span&gt; &lt;span class="Apple-style-span" style="font-family: monospace; font-size: small; white-space: pre;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;[dbo].[missing_idx] ([&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;]) INCLUDE ([name], [type])&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="background-color: white; color: black; font-family: 'Courier New'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;To find unused indexes from SqlDbAid select "&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;Indexes Status&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;" from &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;Tools --&amp;gt; Indexes&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; menu.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;You should see the following report:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;img border="0" src="http://dl.dropbox.com/u/766535/blog/article/BP20100911_01_02.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;The read_vs_write column is the sum of all reads (scan, seek and lookup) minus the writes.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;Look also to the date columns to know when was the last read.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&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/6414077513031022467-4880807627888643951?l=sqlapproach.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlapproach.blogspot.com/feeds/4880807627888643951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlapproach.blogspot.com/2010/09/find-missing-and-unused-indexes-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/4880807627888643951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/4880807627888643951'/><link rel='alternate' type='text/html' href='http://sqlapproach.blogspot.com/2010/09/find-missing-and-unused-indexes-with.html' title='Find Missing and Unused indexes with SqlDbAid'/><author><name>Miken</name><uri>http://www.blogger.com/profile/08010504211267306831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6414077513031022467.post-5633597525477924200</id><published>2010-06-29T13:35:00.000-07:00</published><updated>2012-01-30T13:18:12.584-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL script export dba tool'/><title type='text'>SqlDbAid DBA tool</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: 'Times New Roman';"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Latest version (v2.0.2.0 - 2012-01-30)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://dl.dropbox.com/u/766535/blog/file/SqlDbAid/SqlDbAid.zip"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;SqlDbAid.zip&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: 'Times New Roman';"&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;SqlDbAid is an intuitive standalone application that will enable you to easily script database items and data.&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;SqlDbAid is free for personal and commercial usage&lt;/b&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Main Features&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;SQL Server 2005+ support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Text search inside code definition with highlitghting&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;DBA reports (missing indexes, missing foreign key indexes, indexes status, top queries, table MBytes)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;One file per object or single file scripts (tables, views, triggers, procedures, functions, indexes...)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Select, Insert and Update scripts&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Table data insert script creation&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Table/View data export&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Basic database compare via sql script generation&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Requirements&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;.Net Framework 2.0+&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Screenshots&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://dl.dropbox.com/u/766535/blog/file/SqlDbAid/screenshot1.jpg"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Screenshot1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;li&gt;&lt;a href="http://dl.dropbox.com/u/766535/blog/file/SqlDbAid/screenshot2.jpg"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;Screenshot2&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dl.dropbox.com/u/766535/blog/file/SqlDbAid/screenshot3.jpg"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;Screenshot3&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;For questions and suggestions write to &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;a href="mailto:miken175@hotmail.com?subject=SqlDbAid"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;Miken&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6414077513031022467-5633597525477924200?l=sqlapproach.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlapproach.blogspot.com/feeds/5633597525477924200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlapproach.blogspot.com/2010/06/sqldbaid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/5633597525477924200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/5633597525477924200'/><link rel='alternate' type='text/html' href='http://sqlapproach.blogspot.com/2010/06/sqldbaid.html' title='SqlDbAid DBA tool'/><author><name>Miken</name><uri>http://www.blogger.com/profile/08010504211267306831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6414077513031022467.post-8218060413436329434</id><published>2010-06-01T05:54:00.001-07:00</published><updated>2011-05-28T04:11:53.702-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='table rows string concatenation'/><title type='text'>Table Rows Concatenation</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;Whenever you need to concatenate strings stored inside a table column you have several alternatives.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;Depending on the specific situation you may try one of the following approaches.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;First lets create a test table filled with some sample data.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--test table&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;CREATE TABLE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; dbo.string_row&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    row_id &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;INT&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;NOT NULL&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;PRIMARY KEY&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    string &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(50),&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    group_id &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;INT&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;NOT NULL&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--add two row groups leaving some row_id holes&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;INSERT INTO&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; dbo.string_row (row_id, string, group_id) &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;VALUES&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(1, &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'AA'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;, 1)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;INSERT INTO&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; dbo.string_row (row_id, string, group_id) &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;VALUES&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(2, &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'BB'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;, 1)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;INSERT INTO&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; dbo.string_row (row_id, string, group_id) &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;VALUES&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(4, &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'CC'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;, 1)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;INSERT INTO&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; dbo.string_row (row_id, string, group_id) &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;VALUES&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(8, &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'EE'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;, 2)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;INSERT INTO&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; dbo.string_row (row_id, string, group_id) &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;VALUES&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(12, &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'FF'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;, 2)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;INSERT INTO&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; dbo.string_row (row_id, string, group_id) &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;VALUES&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(13, &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'GG'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;, 2)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;When the situation is somewhat "static" we could use variables.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--1 variables&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: small; white-space: pre;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;DECLARE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; @concatenation1 &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;MAX&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;DECLARE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; @concatenation2 &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;MAX&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SET&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; @concatenation1 = &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;''&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SET&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; @concatenation2 = &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;''&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: red; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    @concatenation1 = @concatenation1 +&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;CASE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; group_id &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;WHEN&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; 1 &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;THEN&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; string &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;ELSE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;''&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;END&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    @concatenation2 = @concatenation2 +&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;CASE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; group_id &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;WHEN&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; 2 &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;THEN&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; string &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;ELSE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;''&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;END&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; dbo.string_row&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;ORDER BY&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; row_id&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; @concatenation1 full_string, 1 group_id&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;UNION&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;ALL&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; @concatenation2 full_string, 2 group_id&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;All other cases require one ore more queries.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;Iteration using updates on a temporary table.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--2 iteration&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: small; white-space: pre;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;CREATE TABLE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; #TMP&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    row_id &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;INT&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;NOT NULL&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    full_string &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;MAX&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;),&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    group_id &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;INT&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;NOT NULL&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;INSERT INTO&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; #TMP (row_id, full_string, group_id)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT DISTINCT&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; 0, &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;''&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;, group_id &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; dbo.string_row&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;WHILE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;@@ROWCOUNT&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &amp;gt; 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;BEGIN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;UPDATE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; T &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SET&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        row_id = R.row_id,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        full_string = full_string + R.string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        #TMP T&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;INNER JOIN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        dbo.string_row R &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            R.group_id = T.group_id &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;AND&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            R.row_id &amp;gt; T.row_id&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;LEFT JOIN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        dbo.string_row R1 &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            R1.group_id = T.group_id &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;AND&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            R1.row_id &amp;gt; R.row_id &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;AND&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            R1.row_id &amp;lt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 13px;"&gt;T.row_id&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;WHERE&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        R1.row_id &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;IS NULL&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;END&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: blue; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; full_string, group_id &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; #TMP&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;Recursion using common table expressions.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--3 recursion&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; white-space: pre;"&gt;BEGIN&lt;/span&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;WITH&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; ORDROWS (new_row_id, full_string, group_id)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;AS&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    (&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--remove row_id holes&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            &lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;ROW_NUMBER&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;                &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;OVER&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; (PARTITION &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;BY&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; group_id &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;ORDER BY&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; row_id) new_row_id,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            string full_string, group_id &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; dbo.string_row&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    ),&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    CROWS (new_row_id, full_string, group_id)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;AS&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    (&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--get the last row in each group&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            new_row_id, &lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;CONVERT&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;MAX&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;), full_string) full_string, group_id&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            ORDROWS R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;WHERE&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;NOT EXISTS&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            (&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;                &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT TOP&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; 1 1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;                &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; ORDROWS R1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;                &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;WHERE&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;                    R1.group_id = R.group_id &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;AND&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;                    R1.new_row_id &amp;gt; R.new_row_id&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            )&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;UNION&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;ALL&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--add the previous row using the sequence obtained using ORDROWS CTE&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            R.new_row_id,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            &lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;CONVERT&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;MAX&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;), R.full_string + C.full_string) full_string,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            R.group_id&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            ORDROWS R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;                &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;INNER JOIN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            CROWS C &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;                C.group_id = R.group_id &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;AND&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;                C.new_row_id = R.new_row_id + 1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    )&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; full_string, group_id &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; CROWS &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;WHERE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; new_row_id = 1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;END&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: blue; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;SQL Server xml capabilities.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--4 xml&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; white-space: pre;"&gt;SELECT&lt;/span&gt;&lt;br /&gt;&lt;/span&gt; &lt;br /&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    (&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            R.string + &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;''&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            dbo.string_row R&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;WHERE&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            R.group_id = G.group_id&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;ORDER BY&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; R.row_id&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FOR XML&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; PATH(&lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;''&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    ) full_string,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    G.group_id&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: 13px; white-space: pre;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    (&lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT DISTINCT&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; group_id &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; dbo.string_row) G&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; white-space: pre;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/span&gt;You could download the complete script.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;a href="http://dl.dropbox.com/u/766535/BLOG/FILE/StringConcatenation.zip"&gt;StringConcatenation.zip&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&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/6414077513031022467-8218060413436329434?l=sqlapproach.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlapproach.blogspot.com/feeds/8218060413436329434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlapproach.blogspot.com/2010/06/table-rows-concatenation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/8218060413436329434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/8218060413436329434'/><link rel='alternate' type='text/html' href='http://sqlapproach.blogspot.com/2010/06/table-rows-concatenation.html' title='Table Rows Concatenation'/><author><name>Miken</name><uri>http://www.blogger.com/profile/08010504211267306831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6414077513031022467.post-6754589184066589063</id><published>2010-05-21T02:24:00.000-07:00</published><updated>2010-05-21T02:56:52.448-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='search string text database tables'/><title type='text'>Search a String Inside a Database</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;May be you need to know where a string shown by an application you don't know much about has been stored in the related database.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Reverse engeneering purposes, reporting, optimization or simply curiosity.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The following query generates a search script.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;SELECT&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'USE ['&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; + &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff00ff;"&gt;db_name&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;() + &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'] --'&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; cmd, -2 rn&lt;/span&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;UNION&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#a0a0a0;"&gt;ALL&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;SELECT&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'DECLARE @search VARCHAR(100) --'&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; cmd, -1 rn&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;UNION&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#a0a0a0;"&gt;ALL&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;SELECT&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'SET @search = ''%search this%'' --'&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; cmd, 0 rn&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;UNION&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#a0a0a0;"&gt;ALL&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;SELECT&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;    &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'IF EXISTS(SELECT TOP 1 1 FROM ['&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; + &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff00ff;"&gt;SCHEMA_NAME&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;(T.&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff00ff;"&gt;schema_id&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;) + &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'].['&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; + T.name + &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'] WITH(NOLOCK) WHERE '&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; +&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;    &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;CASE&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;        &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;WHEN&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; C.collation_name &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#a0a0a0;"&gt;IS NOT NULL&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;THEN&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'['&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; + C.name + &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;']'&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;        &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;WHEN&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; CT.name &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#a0a0a0;"&gt;IN&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; (&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'image'&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;) &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;THEN&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'CONVERT(VARCHAR(MAX), CONVERT(VARBINARY(MAX), ['&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; + C.name + &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;']))'&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;        &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;ELSE&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'CONVERT(VARCHAR(MAX), ['&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; + C.name + &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'])'&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;    &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;END&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; +&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;    &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;' LIKE @search) PRINT ''['&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; + &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff00ff;"&gt;SCHEMA_NAME&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;(T.&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff00ff;"&gt;schema_id&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;) + &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'].['&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; + T.name + &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'].['&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; + C.name + &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;']'' --'&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; cmd,&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;    &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff00ff;"&gt;ROW_NUMBER&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;() &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;OVER&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; (&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;ORDER BY&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff00ff;"&gt;SCHEMA_NAME&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;(T.&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff00ff;"&gt;schema_id&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;), T.name, C.name) rn&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;FROM&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;    &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#008000;"&gt;sys&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;.&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#008000;"&gt;tables&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; T&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;        &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#a0a0a0;"&gt;INNER JOIN&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;    &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#008000;"&gt;sys&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;.&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#008000;"&gt;columns&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; C &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;ON&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;        C.&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff00ff;"&gt;object_id&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; = T.&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff00ff;"&gt;object_id&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;        &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#a0a0a0;"&gt;INNER JOIN&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;    &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#008000;"&gt;sys&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;.&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#008000;"&gt;types&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; CT &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;ON&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;        CT.user_type_id = C.user_type_id&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;WHERE&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;    &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#a0a0a0;"&gt;NOT EXISTS&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; (&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;SELECT TOP&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; 1 1 &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;FROM&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#008000;"&gt;sys&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;.&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#008000;"&gt;extended_properties&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; EP &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;WHERE&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; EP.major_id = T.&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff00ff;"&gt;object_id&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#a0a0a0;"&gt;AND&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; EP.name = &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'microsoft_database_tools_support'&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;) &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#a0a0a0;"&gt;AND&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;    T.is_ms_shipped = 0 &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#a0a0a0;"&gt;AND&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;    (C.collation_name &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#a0a0a0;"&gt;IS NOT NULL OR&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; CT.name &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#a0a0a0;"&gt;IN&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; (&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'image'&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;,&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'varbinary'&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;,&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'binary'&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;,&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'xml'&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;)) &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#a0a0a0;"&gt;AND&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;    C.is_computed = 0&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;ORDER BY&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;    2&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Run it on the database you want to scan, copy and paste the result in a new window then set the search variable (eventually remove one or both % characters).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;USE&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; [MyDatabase] &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#008000;"&gt;--&lt;/span&gt;&lt;p&gt;&lt;/p&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;DECLARE&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; @search &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;VARCHAR&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;(100) &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#008000;"&gt;--&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;SET&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; @search = &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'Best%'&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#008000;"&gt;--&lt;/span&gt;&lt;/pre&gt; &lt;pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;IF&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#a0a0a0;"&gt;EXISTS&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;(&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;SELECT TOP&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; 1 1 &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;FROM&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; [dbo].[Accounts] &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;WITH&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt;(NOLOCK) &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;WHERE&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; [AccountName] &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#a0a0a0;"&gt;LIKE&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; @search) &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#0000ff;"&gt;PRINT&lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#000000;"&gt; &lt;/span&gt;&lt;span style=" font-family:'Verdana'; font-size:10pt; color:#ff0000;"&gt;'[dbo].[Accounts].[AccountName]'&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The results will be printed on the output window.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;On large databases you'd better run only a group of search queries then proceed with the next one.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;a href="http://dl.dropbox.com/u/766535/BLOG/FILE/SearchString.zip"&gt;SearchString.zip&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6414077513031022467-6754589184066589063?l=sqlapproach.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlapproach.blogspot.com/feeds/6754589184066589063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlapproach.blogspot.com/2010/05/search-string-inside-database.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/6754589184066589063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/6754589184066589063'/><link rel='alternate' type='text/html' href='http://sqlapproach.blogspot.com/2010/05/search-string-inside-database.html' title='Search a String Inside a Database'/><author><name>Miken</name><uri>http://www.blogger.com/profile/08010504211267306831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6414077513031022467.post-2949049560887777908</id><published>2010-04-02T04:16:00.000-07:00</published><updated>2010-04-12T03:12:10.980-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='test sales data warehouse'/><title type='text'>Sample Sales Data Warehouse</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Sometimes you may need a simple small data warehouse only for test or learning purposes.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Having this goal in mind I wrote a short script that create a simple star schema:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Products (3 products with price attribute)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Customers (3 customers with city attribute)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Calendar (year-quarter-month with 6 years starting 3 years back)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Sales (random combinations product-customer-date and quantity/value)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Due to the small amount of data, a single query generates all combinations and then filter out some of them using a random number.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;You'll obtain a different set of combinations and quantities each time you run the script.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#0000ff;"&gt;SELECT&lt;/span&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;    T.CalendarDate,&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;    T.Customer,&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;    T.Product,&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;    T.Quantity,&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;    T.Quantity * P.ProductPrice Amount&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#0000ff;"&gt;FROM&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;    dbo.Products P&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;        &lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#a0a0a0;"&gt;INNER JOIN&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;    (&lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#008000;"&gt;--GENERATE ALL COMBINATIONS&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;        &lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#0000ff;"&gt;SELECT&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;            CalendarDate,&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;            C.Customer,&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;            P.Product,&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;            &lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#ff00ff;"&gt;ROUND&lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;(&lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#ff00ff;"&gt;RAND&lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;(&lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#ff00ff;"&gt;CHECKSUM&lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;(&lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#ff00ff;"&gt;NEWID&lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;())) * 9, 0) + 1 Quantity,&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;            &lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#ff00ff;"&gt;RAND&lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;(&lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#ff00ff;"&gt;CHECKSUM&lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;(&lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#ff00ff;"&gt;NEWID&lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;())) Pick&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;        &lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#0000ff;"&gt;FROM&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;            dbo.Customers C&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;                &lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#a0a0a0;"&gt;CROSS JOIN&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;            dbo.Products P&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;                &lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#a0a0a0;"&gt;CROSS JOIN&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;            dbo.Calendar&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;        &lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#0000ff;"&gt;WHERE&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;            CalendarDateName &lt; &lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#ff00ff;"&gt;GETDATE&lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;()&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;    ) T &lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#0000ff;"&gt;ON&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;        T.Product = P.Product&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#0000ff;"&gt;WHERE&lt;/span&gt;&lt;/pre&gt; &lt;pre  style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#000000;"&gt;    T.Pick &lt; .3 &lt;/span&gt;&lt;span style="   ;font-family:'Verdana';font-size:10pt;color:#008000;"&gt;--REMOVE SOME COMBINATIONS&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;The &lt;span class="Apple-style-span"   style="  color: rgb(255, 0, 255); white-space: pre; font-family:Verdana;font-size:13px;"&gt;RAND&lt;span class="Apple-style-span"   style="color: rgb(0, 0, 0);  white-space: normal;  font-family:verdana;font-size:small;"&gt; function generates random numbers. To initialize it with different integer values we can get the &lt;span class="Apple-style-span"   style="  color: rgb(255, 0, 255); white-space: pre; font-family:Verdana;font-size:13px;"&gt;CHECKSUM&lt;span class="Apple-style-span"   style="color: rgb(0, 0, 0);  white-space: normal;  font-family:verdana;font-size:small;"&gt; of &lt;span class="Apple-style-span"   style="  color: rgb(255, 0, 255); white-space: pre; font-family:Verdana;font-size:13px;"&gt;NEWID&lt;span class="Apple-style-span"   style="color: rgb(0, 0, 0);  white-space: normal;  font-family:verdana;font-size:small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;You could use the following script as a starting point for your experiments.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;a href="http://dl.dropbox.com/u/766535/BLOG/FILE/SampleDataWarehouse.zip"&gt;SampleDataWarehouse.zip&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&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/6414077513031022467-2949049560887777908?l=sqlapproach.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlapproach.blogspot.com/feeds/2949049560887777908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlapproach.blogspot.com/2010/04/sample-sales-data-warehouse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/2949049560887777908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/2949049560887777908'/><link rel='alternate' type='text/html' href='http://sqlapproach.blogspot.com/2010/04/sample-sales-data-warehouse.html' title='Sample Sales Data Warehouse'/><author><name>Miken</name><uri>http://www.blogger.com/profile/08010504211267306831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6414077513031022467.post-2209608508802260627</id><published>2009-11-22T05:11:00.000-08:00</published><updated>2011-05-28T04:14:06.651-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='comparing table data'/><title type='text'>Comparing data</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;Suppose you need to compare data coming from two tables.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;ProductionServer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;USE&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; SampleDatabase&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;pre style="background-color: white; color: black; font-family: 'Courier New'; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CREATE TABLE&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; dbo.SameTable&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; ID1 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;INT&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;NOT NULL&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; ID2 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;INT&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;NOT NULL&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; COL &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;VARCHAR&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(50) &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;NOT NULL&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;PRIMARY KEY&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (ID1, ID2)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; color: black; font-family: 'Courier New'; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;INSERT INTO&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; dbo.SameTable &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;VALUES&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(1, 1, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;'A'&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;INSERT INTO&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; dbo.SameTable &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;VALUES&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(1, 2, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;'B'&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;INSERT INTO&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; dbo.SameTable &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;VALUES&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(1, 3, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;'C'&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; color: black; font-family: 'Courier New'; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;TestServer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;USE&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; SampleDatabase&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="background-color: white; color: black; font-family: 'Courier New'; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CREATE TABLE&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; dbo.SameTable&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; ID1 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;INT&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;NOT NULL&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; ID2 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;INT&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;NOT NULL&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; COL &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;VARCHAR&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(50) &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;NOT NULL&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;PRIMARY KEY&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (ID1, ID2)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; color: black; font-family: 'Courier New'; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;INSERT INTO&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; dbo.SameTable &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;VALUES&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(1, 1, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;'A'&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;INSERT INTO&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; dbo.SameTable &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;VALUES&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(1, 2, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;'D'&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;INSERT INTO&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; dbo.SameTable &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;VALUES&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(1, 4, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;'E'&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;From TestServer using the LinkProd linked server pointing to ProductionServer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;we could use a full join query to spot the differences:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;USE&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; SampleDatabase&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="background-color: white; color: black; font-family: 'Courier New'; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SELECT&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; A.*,B.*&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;FROM&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; dbo.SameTable A&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;FULL&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;JOIN&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; LinkProd.SampleDatabase.dbo.SameTable B &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  B.ID1 = A.ID1 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;AND&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  B.ID2 = A.ID2&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: blue; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WHERE&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; A.ID1 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;IS NULL OR&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; B.ID1 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;IS NULL OR&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span style="color: black; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; A.COL &amp;lt;&amp;gt; B.COL&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;You should obtain the follwing result:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;ID1&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;ID2&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;COL&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;ID1&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;ID2&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;COL&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;1&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;2&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;D&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;1&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;2&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;B&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;NULL&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;NULL&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;NULL&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;1&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;3&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;C&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;1&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;4&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;E&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;NULL&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;NULL&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;NULL&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;Here you'll find the code to automatically create comparing scripts.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://dl.dropbox.com/u/766535/blog/file/CompareData.zip"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;CompareData.zip&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6414077513031022467-2209608508802260627?l=sqlapproach.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlapproach.blogspot.com/feeds/2209608508802260627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlapproach.blogspot.com/2009/11/comparing-data.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/2209608508802260627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/2209608508802260627'/><link rel='alternate' type='text/html' href='http://sqlapproach.blogspot.com/2009/11/comparing-data.html' title='Comparing data'/><author><name>Miken</name><uri>http://www.blogger.com/profile/08010504211267306831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6414077513031022467.post-657528638060979311</id><published>2009-10-21T05:09:00.000-07:00</published><updated>2009-10-21T05:11:59.722-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reporting services align grid spacing'/><title type='text'>Reporting Services Rdl Align</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: small; "&gt;RdlAlign is a small standalone utility that will allow you to change your rdl report grid spacing.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;All sizes will be recomputed accordingly and, if needed, converted from cm to inches.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The program creates a new file OriginalReport.rdl.xml&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Requirements&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;- .Net Framework&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;a href="http://dl.getdropbox.com/u/766535/BLOG/FILE/RdlAlign/RdlAlign.zip"&gt;RdlAlign.zip&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6414077513031022467-657528638060979311?l=sqlapproach.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlapproach.blogspot.com/feeds/657528638060979311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlapproach.blogspot.com/2009/10/reporting-services-rdl-align.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/657528638060979311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/657528638060979311'/><link rel='alternate' type='text/html' href='http://sqlapproach.blogspot.com/2009/10/reporting-services-rdl-align.html' title='Reporting Services Rdl Align'/><author><name>Miken</name><uri>http://www.blogger.com/profile/08010504211267306831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6414077513031022467.post-1301087913425093379</id><published>2009-09-18T01:23:00.000-07:00</published><updated>2011-05-28T04:16:11.330-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint MOSS 2007 list extract data'/><title type='text'>Extract MOSS 2007 list info via SQL</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;I want to share a short script developed to extract information and data regarding MOSS 2007 lists.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;List settings are available quering &lt;b&gt;dbo.Lists&lt;/b&gt; view:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; tp_ID, tp_Fields &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; dbo.lists &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;WHERE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; tp_Title = &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'My List Name'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;b&gt;tp_ID&lt;/b&gt; list unique identifier &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;b&gt;tp_Fields&lt;/b&gt; XML fragment containing list fields info&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;b&gt;tp_Title&lt;/b&gt; list name&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;Using SQL Server xml capabilities, the script can extract fields info, relationships and other things.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;You can also view the list content because the script queries &lt;b&gt;dbo.UserData&lt;/b&gt; view.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;You only have to set two variables.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SET&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; @LIST_NAME = &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;''&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SET&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; @MODE = &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'I'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--[I]=Info; [C]=Choice; [F]=Fields info; [R]=FieldRef info; [D]=Data&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: green; font-family: Verdana; font-size: 100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: green; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--Ex. all lists: LIST_NAME = '' and MODE = 'I'&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: green; font-family: Verdana; font-size: 100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: green; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--Ex. info about lists where name contains "abc": LIST_NAME = 'abc' and MODE = 'I'&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: green; font-family: Verdana; font-size: 100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: green; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--Ex. "My List" Fields Info + FieldRef + Data: LIST_NAME = 'My List' and MODE = 'FRD'&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;Of course you could turn the script into a stored procedure.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;a href="http://dl.getdropbox.com/u/766535/BLOG/FILE/MossListInfo.zip"&gt;MossListInfo.zip&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6414077513031022467-1301087913425093379?l=sqlapproach.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlapproach.blogspot.com/feeds/1301087913425093379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlapproach.blogspot.com/2009/09/extract-moss-2007-list-info-via-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/1301087913425093379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/1301087913425093379'/><link rel='alternate' type='text/html' href='http://sqlapproach.blogspot.com/2009/09/extract-moss-2007-list-info-via-sql.html' title='Extract MOSS 2007 list info via SQL'/><author><name>Miken</name><uri>http://www.blogger.com/profile/08010504211267306831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6414077513031022467.post-5429667427445131445</id><published>2009-09-17T05:06:00.000-07:00</published><updated>2011-05-28T04:17:24.373-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL objects tables foreign keys order'/><title type='text'>Access SQL objects using the right order</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Sometimes you may want to obtain the correct order to access tables.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;You may want, for example, to create a script that empty a group af tables following the order imposed by their foreign key constraints.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;In SQL Server, relations between tables are available using &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #006600;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;sys&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #006600;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;foreign_keys&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; system view (parent_object_id, referenced_object_id columns).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Relations between procedures, views and functions are available using &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #006600;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;sys&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #006600;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;sql_dependencies&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (object_id, referenced_major_id) and mantained by SQL Server using object_id values (SQL Server 2008 provides a new approach).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;If you create a table T1 and then a procedure P1 that refers to T1 you'll find in the system view something like:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;P1 (object_id), T1 (referenced_major_id).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;If you drop and re-create T1 you'll loose this relation until ALTER P1.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The following script provides object depth. It not deals with circular references.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;DECLARE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; @DEPTH &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;INT&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;DECLARE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; @COUNT &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;INT&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: blue; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;IF&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'tempdb..#OBJ'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;) &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;IS NOT NULL&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;DROP TABLE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; #OBJ&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    O.&lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    0 depth&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;INTO&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; #OBJ&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    &lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;sys&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;objects&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; O&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;WHERE&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;NOT EXISTS&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; (&lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT TOP&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; 1 1 &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;sys&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;extended_properties&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; EP &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;WHERE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; EP.major_id = O.&lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;AND&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; EP.name = &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'microsoft_database_tools_support'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;) &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;AND&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    O.is_ms_shipped = 0 &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;AND&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    O.type &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;IN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    (&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'U'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;, &lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--tables&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'P'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;, &lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--procedures&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'V'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;, &lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--views&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'TR'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;, &lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--triggers&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'SN'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;, &lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--synonyms&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'FN'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'IF'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'TF'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--functions&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    )&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SET&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; @COUNT = &lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;@@ROWCOUNT&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SET&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; @DEPTH = 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;WHILE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; @COUNT &amp;gt; 0 &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;AND&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; @DEPTH &amp;lt;&amp;gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--stop circular references&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;BEGIN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SET&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; @DEPTH = @DEPTH + 1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;UPDATE&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; T1 &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SET&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        DEPTH = @DEPTH&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        #OBJ T1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;INNER JOIN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        (&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; parent_object_id, referenced_object_id &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;sys&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;foreign_keys&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;UNION&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;, referenced_major_id &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;sys&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;sql_dependencies&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;UNION&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;, parent_id &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;sys&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;triggers&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        ) F &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            F.parent_object_id = T1.&lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;INNER JOIN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        #OBJ T2 &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;            T2.&lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; = F.referenced_object_id&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;WHERE&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        T1.&lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &amp;lt;&amp;gt; T2.&lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;AND&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;--avoid self references&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        T2.depth = @DEPTH-1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SET&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; @COUNT = &lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;@@ROWCOUNT&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;END&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: blue; font-family: 'Verdana'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    T.depth,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    O.type,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    T.&lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    &lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;SCHEMA_NAME&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;(O.&lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;schema_id&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;) + &lt;/span&gt;&lt;span style="color: red; font-family: Verdana; font-size: 10pt;"&gt;'.'&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; + O.name obj_name&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    #OBJ T&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        &lt;/span&gt;&lt;span style="color: #a0a0a0; font-family: Verdana; font-size: 10pt;"&gt;INNER JOIN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    &lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;sys&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;span style="color: green; font-family: Verdana; font-size: 10pt;"&gt;objects&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; O &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;        O.&lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; = T.&lt;/span&gt;&lt;span style="color: magenta; font-family: Verdana; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;ORDER BY&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: Verdana; font-size: 10pt;"&gt;    T.DEPTH &lt;/span&gt;&lt;span style="color: blue; font-family: Verdana; font-size: 10pt;"&gt;DESC&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;You can download the full script.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://dl.getdropbox.com/u/766535/blog/file/ObjectDepth.zip"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;ObjectDepth.zip&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6414077513031022467-5429667427445131445?l=sqlapproach.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlapproach.blogspot.com/feeds/5429667427445131445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlapproach.blogspot.com/2009/09/access-sql-objects-using-right-order.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/5429667427445131445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/5429667427445131445'/><link rel='alternate' type='text/html' href='http://sqlapproach.blogspot.com/2009/09/access-sql-objects-using-right-order.html' title='Access SQL objects using the right order'/><author><name>Miken</name><uri>http://www.blogger.com/profile/08010504211267306831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6414077513031022467.post-2252373545855185558</id><published>2009-08-29T13:31:00.000-07:00</published><updated>2010-06-29T13:49:06.287-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL script compare dba tool'/><title type='text'>SakScript</title><content type='html'>&lt;span class="Apple-style-span" style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SakScript application has changed its name to &lt;a href="http://sqlapproach.blogspot.com/2010/06/sqldbaid.html"&gt;SqlDbAid&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6414077513031022467-2252373545855185558?l=sqlapproach.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlapproach.blogspot.com/feeds/2252373545855185558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlapproach.blogspot.com/2009/08/sakscript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/2252373545855185558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/2252373545855185558'/><link rel='alternate' type='text/html' href='http://sqlapproach.blogspot.com/2009/08/sakscript.html' title='SakScript'/><author><name>Miken</name><uri>http://www.blogger.com/profile/08010504211267306831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6414077513031022467.post-6554043737983019828</id><published>2009-08-22T15:17:00.000-07:00</published><updated>2011-05-28T04:30:52.992-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='script sql objects'/><title type='text'>How to script SQL Server database objects</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Sometimes you may need to script SQL objects using T-Sql instead of rely on SSMS or thirdy part tools.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;SQL Server 2005 and 2008 offer you the chance to query their system views to obtain what you need.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Note that you could use a dll from SQL Server SDK, but here we are trying the sql approach.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;For objects like procedures, triggers, functions and views you may use the&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt;OBJECT_DEFINITION&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;function and something like&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;OBJECT_DEFINITION&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'dbo.MyStoredProcedure'&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;))&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Courier New'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;but combining the properties coming from sys.objects and sys.sql_modules views we will extract all the data we need.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; white-space: pre;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; white-space: pre;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;CASE&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;WHEN&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; O.type = &lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'V'&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;THEN&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'View'&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;WHEN&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; O.type = &lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'P'&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;THEN&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'Procedure'&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;WHEN&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; O.type = &lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'TR'&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;THEN&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'Trigger'&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;WHEN&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; O.type &lt;/span&gt;&lt;span style="color: grey; font-family: 'Courier New'; font-size: 10pt;"&gt;IN&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'FN'&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'IF'&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'TF'&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;) &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;THEN&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'Function'&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;END&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; [type],&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;SCHEMA_NAME&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;(O.&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;schema_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;) obj_schema,&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; O.name obj_name,&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;CONVERT&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;, O.modify_date, 120) modify_date,&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; SM.definition code&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; sys.&lt;/span&gt;&lt;span style="color: green; font-family: 'Courier New'; font-size: 10pt;"&gt;objects&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; O&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;span style="color: grey; font-family: 'Courier New'; font-size: 10pt;"&gt;INNER JOIN&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; sys.&lt;/span&gt;&lt;span style="color: green; font-family: 'Courier New'; font-size: 10pt;"&gt;sql_modules&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; SM &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  SM.&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; = O.&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;WHERE&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; O.is_ms_shipped = 0 &lt;/span&gt;&lt;span style="color: grey; font-family: 'Courier New'; font-size: 10pt;"&gt;AND&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; O.type &lt;/span&gt;&lt;span style="color: grey; font-family: 'Courier New'; font-size: 10pt;"&gt;IN&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'P'&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'V'&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'FN'&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'IF'&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'TF'&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'TR'&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;ORDER BY&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; type,&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; obj_schema,&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; obj_name&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Courier New'; font-size: 10pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Table property definitions are spread across many system views. The most important are sys.tables and sys.columns.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;SELECT&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; white-space: pre;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; white-space: pre;"&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;SCHEMA_NAME&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; white-space: pre;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;(TB.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; white-space: pre;"&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;schema_id&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; white-space: pre;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;) tb_schema,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; TB.name tb_name,&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; CL.name cl_name&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;FROM&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; sys.&lt;/span&gt;&lt;span style="color: green; font-family: 'Courier New'; font-size: 10pt;"&gt;tables&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; TB&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;span style="color: grey; font-family: 'Courier New'; font-size: 10pt;"&gt;INNER JOIN&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; sys.&lt;/span&gt;&lt;span style="color: green; font-family: 'Courier New'; font-size: 10pt;"&gt;columns&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; CL &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  CL.&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; = TB.&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;ORDER BY&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; tb_schema,&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; tb_name,&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; CL.column_id&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; -qt-paragraph-type: empty; background-color: white; color: black; font-family: 'Courier New'; font-size: 10pt; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;/pre&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I don't want to bother you with all the details, so you can download the full script.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;a href="http://dl.dropbox.com/u/766535/blog/file/ScriptSqlObjects.zip"&gt;ScriptSqlObjects.zip&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;It allows to generete the code for tables, views, procedures, triggers, functions and synonyms.&lt;/span&gt;&lt;br /&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/6414077513031022467-6554043737983019828?l=sqlapproach.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlapproach.blogspot.com/feeds/6554043737983019828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlapproach.blogspot.com/2009/08/how-to-script-sql-server-database.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/6554043737983019828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/6554043737983019828'/><link rel='alternate' type='text/html' href='http://sqlapproach.blogspot.com/2009/08/how-to-script-sql-server-database.html' title='How to script SQL Server database objects'/><author><name>Miken</name><uri>http://www.blogger.com/profile/08010504211267306831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6414077513031022467.post-634212056398797135</id><published>2009-05-05T01:56:00.000-07:00</published><updated>2011-05-28T04:41:34.453-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CRM bulk delete performance degradation'/><title type='text'>CRM 4.0 bulk delete performance degradation</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: small;"&gt;After investigating the progressive performance degradation during a bulkdelete I think I found the problem.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;It's the intence use of table variables and Ad Hoc queries (see dbo.fn_CollectForCascadeDelete CRM function) fills the cache with unuseful data.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;To free the cache without restarting the server you can use the following command:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: monospace; white-space: pre;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;DBCC&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; FREESYSTEMCACHE (&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'ALL'&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Beware this command causes a temporary SQL Server general perfomance degradation, so you should use it to solve this specific problem avoiding it during user activities.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;In other words you'd better run it during the bulk delete batch activity.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;In a real case deletion starts with 3600 records/second and ends with 12 records/second.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;During the bulk delete, after empting the cache, the speed go back to 3600 then degradation starts again.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A solution could be periodically empty the cache only if tempdb contains the bulk delete table variable.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Here is the script to search for the specific CRM variable and run the cache cleancing only when we found it and if it was created at least two minutes ago.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;select&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; t.[&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;from&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; tempdb.&lt;/span&gt;&lt;span style="color: green; font-family: 'Courier New'; font-size: 10pt;"&gt;sys&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;span style="color: green; font-family: 'Courier New'; font-size: 10pt;"&gt;tables&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; t &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;with&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;nolock&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;inner join&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;select&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;   [&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;from&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;   tempdb.&lt;/span&gt;&lt;span style="color: green; font-family: 'Courier New'; font-size: 10pt;"&gt;sys&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;span style="color: green; font-family: 'Courier New'; font-size: 10pt;"&gt;columns&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;with&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;nolock&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;where&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;   [&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;name&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;] &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;in&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'o'&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'t'&lt;/span&gt;&lt;span style="color: green; font-family: 'Courier New'; font-size: 10pt;"&gt;/*,'r'*/&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'p'&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;group by&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;   [&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;having&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;   &lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;count&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;([&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;]) = 3&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; ) c &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;on&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;  c.[&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;] = t.[&lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;object_id&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;where&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;datediff&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;(mi, t.create_date, &lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;getdate&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;()) &amp;gt;= 2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;if&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;"&gt;@@rowcount&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &amp;gt; 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-qt-block-indent: 0; background-color: white; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt;"&gt;DBCC&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; FREESYSTEMCACHE (&lt;/span&gt;&lt;span style="color: red; font-family: 'Courier New'; font-size: 10pt;"&gt;'ALL'&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;We could for example include this command in a SQL Job scheduled during the bulk delete every 3 minutes.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Another slowing down cause could be missing foreign key indexes (ex. AsyncOperationId column, WorkFlowLogBase table).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6414077513031022467-634212056398797135?l=sqlapproach.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlapproach.blogspot.com/feeds/634212056398797135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlapproach.blogspot.com/2009/05/crm-40-bulk-delete-performance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/634212056398797135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6414077513031022467/posts/default/634212056398797135'/><link rel='alternate' type='text/html' href='http://sqlapproach.blogspot.com/2009/05/crm-40-bulk-delete-performance.html' title='CRM 4.0 bulk delete performance degradation'/><author><name>Miken</name><uri>http://www.blogger.com/profile/08010504211267306831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
