<?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-12181313</id><updated>2012-02-08T08:32:48.689-08:00</updated><category term='SQL2008'/><category term='Change Tracking'/><category term='Timestamp'/><category term='Rowversion'/><title type='text'>Useful SQL Server scripts</title><subtitle type='html'>This Blog is about MSSQL server 2000/2005 and 2008</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default?start-index=101&amp;max-results=100'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>256</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-12181313.post-2086101423791440558</id><published>2012-02-08T08:32:00.001-08:00</published><updated>2012-02-08T08:32:48.698-08:00</updated><title type='text'>sp_job_steps_history : Job History for Steps</title><content type='html'>&lt;br /&gt;USE [msdb]&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;/****** Object: &amp;nbsp;StoredProcedure [dbo].[sp_job_steps_history] &amp;nbsp; &amp;nbsp;Script Date: 02/08/2012 08:13:52 ******/&lt;br /&gt;IF &amp;nbsp;EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_job_steps_history]') AND type in (N'P', N'PC'))&lt;br /&gt;DROP PROCEDURE [dbo].[sp_job_steps_history]&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;--all failed steps&lt;br /&gt;exec msdb.dbo.sp_job_steps_history @jobname = null, @rundate = null, @runstatus = 0 , @stepid = null&lt;br /&gt;&lt;br /&gt;--all failed specific steps&lt;br /&gt;exec msdb.dbo.sp_job_steps_history @jobname = null, @rundate = null, @runstatus = 0 , @stepid = 15&lt;br /&gt;&lt;br /&gt;--outcome of the specific step for all jobs all dates&lt;br /&gt;exec msdb.dbo.sp_job_steps_history @jobname = null, @rundate = null, @runstatus = null , @stepid = 15&lt;br /&gt;&lt;br /&gt;--outcome of the specific step for all jobs specific date&lt;br /&gt;exec msdb.dbo.sp_job_steps_history @jobname = null, @rundate = 20120208, @runstatus = null , @stepid = 15&lt;br /&gt;&lt;br /&gt;--all failed steps for given day&lt;br /&gt;exec msdb.dbo.sp_job_steps_history @jobname = null, @rundate = 20120208, @runstatus = 0 , @stepid = null&lt;br /&gt;&lt;br /&gt;--all failed steps for given day specific step&lt;br /&gt;exec msdb.dbo.sp_job_steps_history @jobname = null, @rundate = 20120208, @runstatus = 0 , @stepid = 13&lt;br /&gt;&lt;br /&gt;--all failed steps for given job specific date&lt;br /&gt;exec msdb.dbo.sp_job_steps_history @jobname = '%AMERICANSUPPORT%' , @rundate = 20120208, @runstatus = 0 , @stepid = null&lt;br /&gt;&lt;br /&gt;--all failed steps for given job all dates&lt;br /&gt;exec msdb.dbo.sp_job_steps_history @jobname = '%AMERICANSUPPORT%' , @rundate = null, @runstatus = 0 , @stepid = null&lt;br /&gt;&lt;br /&gt;--specific job status for given dae&lt;br /&gt;exec msdb.dbo.sp_job_steps_history @jobname = '%AMERICANSUPPORT%' , @rundate = 20120208, @runstatus = null , @stepid = null&lt;br /&gt;&lt;br /&gt;*/&lt;br /&gt;CREATE PROCEDURE dbo.sp_job_steps_history&lt;br /&gt;(&lt;br /&gt;@jobname nvarchar(256) = null&lt;br /&gt;,@rundate int = null&lt;br /&gt;,@runstatus int = 0&lt;br /&gt;,@stepid int = null&lt;br /&gt;)&lt;br /&gt;as&lt;br /&gt;BEGIN&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/*&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@runstatus:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;0 = Failed&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;1 = Succeeded&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;2 = Retry&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;3 = Canceled&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;*/&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/*&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;set @jobname = null&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;set @rundate = null&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;set @runstatus = 3&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;*/&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;SELECT j.name JobName,h.step_id, h.step_name StepName,&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;CONVERT(CHAR(10), CAST(STR(h.run_date,8, 0) AS dateTIME), 111) RunDate,&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;STUFF(STUFF(RIGHT('000000' + CAST ( h.run_time AS VARCHAR(6 ) ) ,6),5,0,':'),3,0,':') RunTime,&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;h.run_duration StepDuration,&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;case h.run_status when 0 then 'failed'&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;when 1 then 'Succeded'&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;when 2 then 'Retry'&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;when 3 then 'Cancelled'&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;when 4 then 'In Progress'&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;end as ExecutionStatus,&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;h.message MessageGenerated&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;FROM sysjobhistory h inner join sysjobs j&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;ON j.job_id = h.job_id&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;where (j.name like @jobname or @jobname is null)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;and (h.run_date = @rundate or @rundate is null)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;and (h.run_status = @runstatus or @runstatus is null)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;and (h.step_id = @stepid or @stepid is null)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;ORDER BY j.name, h.run_date, h.run_time&lt;br /&gt;&lt;br /&gt;END&lt;br /&gt;GO&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-2086101423791440558?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/2086101423791440558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=2086101423791440558' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2086101423791440558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2086101423791440558'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2012/02/spjobstepshistory-job-history-for-steps.html' title='sp_job_steps_history : Job History for Steps'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-6203533749320886833</id><published>2012-02-06T09:10:00.000-08:00</published><updated>2012-02-06T09:10:21.004-08:00</updated><title type='text'>What's the Point of Using VARCHAR(n) Anymore?</title><content type='html'>&lt;a href="http://www.simple-talk.com/sql/database-administration/whats-the-point-of-using-varchar(n)-anymore/?utm_source=simpletalk&amp;amp;utm_medium=email-main&amp;amp;utm_content=varchar-20120206&amp;amp;utm_campaign=SQL"&gt;What's the Point of Using VARCHAR(n) Anymore?&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-6203533749320886833?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.simple-talk.com/sql/database-administration/whats-the-point-of-using-varchar(n)-anymore/?utm_source=simpletalk&amp;utm_medium=email-main&amp;utm_content=varchar-20120206&amp;utm_campaign=SQL' title='What&apos;s the Point of Using VARCHAR(n) Anymore?'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/6203533749320886833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=6203533749320886833' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6203533749320886833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6203533749320886833'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2012/02/whats-point-of-using-varcharn-anymore.html' title='What&apos;s the Point of Using VARCHAR(n) Anymore?'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-2938314875331171238</id><published>2012-01-25T14:41:00.001-08:00</published><updated>2012-01-25T14:41:41.105-08:00</updated><title type='text'>SQL Orphan users</title><content type='html'>&lt;br /&gt;&lt;br /&gt;select u.name , 'exec sp_revokedbaccess '''+u.name+''''&lt;br /&gt;from master..syslogins l right join&lt;br /&gt;&amp;nbsp; &amp;nbsp; sysusers u on l.sid = u.sid&lt;br /&gt;&amp;nbsp; &amp;nbsp; where l.sid is null and issqlrole &amp;lt;&amp;gt; 1 and isapprole &amp;lt;&amp;gt; 1 &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; and (u.name &amp;lt;&amp;gt; 'INFORMATION_SCHEMA' and u.name &amp;lt;&amp;gt; 'guest' &lt;br /&gt;&amp;nbsp; &amp;nbsp; and u.name &amp;lt;&amp;gt; 'system_function_schema')&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-2938314875331171238?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/2938314875331171238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=2938314875331171238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2938314875331171238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2938314875331171238'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2012/01/sql-orphan-users.html' title='SQL Orphan users'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-2505406982283096884</id><published>2012-01-18T09:26:00.001-08:00</published><updated>2012-01-18T09:26:59.707-08:00</updated><title type='text'>Win 2008 Run As</title><content type='html'>&lt;br /&gt;Create a batch file that has the following on SQL server:&lt;br /&gt;&lt;br /&gt;cd\&lt;br /&gt;cd C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE&lt;br /&gt;runas /user:csodmgmt\palexander ssms&lt;br /&gt;&lt;div&gt;&lt;br /&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/12181313-2505406982283096884?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/2505406982283096884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=2505406982283096884' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2505406982283096884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2505406982283096884'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2012/01/win-2008-run-as.html' title='Win 2008 Run As'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-8301040935229292200</id><published>2012-01-17T09:09:00.000-08:00</published><updated>2012-01-17T09:09:53.230-08:00</updated><title type='text'>Get Alerts for Specific SQL Server Login Failed Events</title><content type='html'>&lt;a href="http://www.mssqltips.com/sqlservertip/2595/get-alerts-for-specific-sql-server-login-failed-events/?utm_source=dailynewsletter&amp;amp;utm_medium=email&amp;amp;utm_content=headline&amp;amp;utm_campaign=2012116"&gt;Get Alerts for Specific SQL Server Login Failed Events&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-8301040935229292200?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/sqlservertip/2595/get-alerts-for-specific-sql-server-login-failed-events/?utm_source=dailynewsletter&amp;utm_medium=email&amp;utm_content=headline&amp;utm_campaign=2012116' title='Get Alerts for Specific SQL Server Login Failed Events'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/8301040935229292200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=8301040935229292200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/8301040935229292200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/8301040935229292200'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2012/01/get-alerts-for-specific-sql-server.html' title='Get Alerts for Specific SQL Server Login Failed Events'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-7457435737254225173</id><published>2012-01-11T14:09:00.000-08:00</published><updated>2012-01-11T14:09:48.043-08:00</updated><title type='text'>Active Directory from SQL</title><content type='html'>&lt;b&gt;Configuration on Server&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;USE [master]&lt;br /&gt;GO&lt;br /&gt;EXEC master.dbo.sp_addlinkedserver @server = N'ADSI', @srvproduct=N'Active Directory Service Interfaces', @provider=N'ADSDSOObject', @datasrc=N'[10.10.10.10]'&lt;br /&gt;EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ADSI',@useself=N'False',@locallogin=NULL,@rmtuser=N'domain\user',@rmtpassword='password'&lt;br /&gt;GO&lt;br /&gt;EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'collation compatible', &amp;nbsp;@optvalue=N'false'&lt;br /&gt;GO&lt;br /&gt;EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'data access', @optvalue=N'true'&lt;br /&gt;GO&lt;br /&gt;EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'dist', @optvalue=N'false'&lt;br /&gt;GO&lt;br /&gt;EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'pub', @optvalue=N'false'&lt;br /&gt;GO&lt;br /&gt;EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'rpc', @optvalue=N'false'&lt;br /&gt;GO&lt;br /&gt;EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'rpc out', @optvalue=N'false'&lt;br /&gt;GO&lt;br /&gt;EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'sub', @optvalue=N'false'&lt;br /&gt;GO&lt;br /&gt;EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'connect timeout', @optvalue=N'0'&lt;br /&gt;GO&lt;br /&gt;EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'collation name', @optvalue=null&lt;br /&gt;GO&lt;br /&gt;EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'lazy schema validation', &amp;nbsp;@optvalue=N'false'&lt;br /&gt;GO&lt;br /&gt;EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'query timeout', @optvalue=N'0'&lt;br /&gt;GO&lt;br /&gt;EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'use remote collation', &amp;nbsp;@optvalue=N'true'&lt;br /&gt;GO&lt;br /&gt;EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'remote proc transaction promotion', @optvalue=N'true'&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;select * from openquery&lt;br /&gt;(&lt;br /&gt;ADSI,'SELECT NAME,SAMAccountName&lt;br /&gt;FROM ''LDAP://10.10.10.10''&lt;br /&gt;WHERE objectCategory = ''Person'' AND objectClass = ''user''&lt;br /&gt;') AS tblADSI&lt;br /&gt;ORDER BY SAMAccountName&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;select * from openquery&lt;br /&gt;(&lt;br /&gt;ADSI,'SELECT NAME,SAMAccountName,displayName, telephoneNumber, mail, mobile, facsimileTelephoneNumber&lt;br /&gt;FROM ''LDAP://10.10.10.10''&lt;br /&gt;WHERE objectCategory = ''Person''&lt;br /&gt;AND objectClass = ''user''&lt;br /&gt;AND sAMAccountName = ''username''&lt;br /&gt;') AS tblADSI&lt;br /&gt;ORDER BY displayname&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Find groups and users all together&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- Configure AD Domain to search&lt;br /&gt;&lt;br /&gt;DECLARE @strDC NVARCHAR(100)&lt;br /&gt;SET @strDC = 'dc=csodmgmt,dc=corp'&lt;br /&gt;&lt;br /&gt;-- Declare Variables&lt;br /&gt;&lt;br /&gt;DECLARE @chvAlphaChars VARCHAR(60),&lt;br /&gt;@chvSearch VARCHAR(10),&lt;br /&gt;@chvSearchLevel1 VARCHAR(1),&lt;br /&gt;@chvSearchLevel2 VARCHAR(1),&lt;br /&gt;@chvSearchLevel3 VARCHAR(1),&lt;br /&gt;@intcountLevel1 INT,&lt;br /&gt;@intcountLevel2 INT,&lt;br /&gt;@intcountLevel3 INT,&lt;br /&gt;@intRowCount INT,&lt;br /&gt;@strSQL NVARCHAR(4000),&lt;br /&gt;@strADSISQL NVARCHAR(4000),&lt;br /&gt;@Login VARBINARY(85),&lt;br /&gt;@CN VARCHAR(512),&lt;br /&gt;@CT INT,&lt;br /&gt;@ADRoot VARCHAR(255)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- Declare temp tables&lt;br /&gt;&lt;br /&gt;IF EXISTS (SELECT * FROM TEMPDB.DBO.SYSOBJECTS WHERE ID = OBJECT_ID('tempdb.dbo.#LDAP_AD_V2_Users'))&lt;br /&gt;DROP TABLE #LDAP_AD_V2_USERS&lt;br /&gt;&lt;br /&gt;CREATE TABLE [DBO].[#LDAP_AD_V2_USERS] (&lt;br /&gt;[ROW_ID] [INT] IDENTITY ( 1,1 ) NOT NULL,&lt;br /&gt;[SID] [VARBINARY](85) NULL,&lt;br /&gt;[SAMACCOUNTNAME] [NVARCHAR](256) NULL,&lt;br /&gt;[CN] [NVARCHAR](256) NULL,&lt;br /&gt;[SN] [NVARCHAR](256) NULL,&lt;br /&gt;[DISPLAYNAME] [NVARCHAR](256) NULL,&lt;br /&gt;[GIVENNAME] [NVARCHAR](256) NULL,&lt;br /&gt;[TELEPHONENUMBER] [NVARCHAR](256) NULL,&lt;br /&gt;[ADSPATH] [NVARCHAR](256) NULL,&lt;br /&gt;[HOMEDIRECTORY] [NVARCHAR](256) NULL,&lt;br /&gt;[MAIL] [NVARCHAR](256) NULL,&lt;br /&gt;[MEMBEROF] [NVARCHAR](256) NULL,&lt;br /&gt;[PRIMARYGROUPID] [INT],&lt;br /&gt;[CREATETIMESTAMP] DATETIME)&lt;br /&gt;ON [PRIMARY]&lt;br /&gt;&lt;br /&gt;IF EXISTS (SELECT * FROM TEMPDB.DBO.SYSOBJECTS WHERE ID = OBJECT_ID('tempdb.dbo.#LDAP_AD_V2_Groups'))&lt;br /&gt;DROP TABLE #LDAP_AD_V2_GROUPS&lt;br /&gt;&lt;br /&gt;CREATE TABLE [DBO].[#LDAP_AD_V2_GROUPS] (&lt;br /&gt;[ID] [INT] IDENTITY ( 1,1 ) NOT NULL,&lt;br /&gt;[LOGIN] [VARCHAR](512) NULL,&lt;br /&gt;[EMAIL] [VARCHAR](255) NULL,&lt;br /&gt;[ACCTNAME] [VARCHAR](512) NULL,&lt;br /&gt;[DISTNAME] [VARCHAR](512) NULL,&lt;br /&gt;[CREATEDDATE] [DATETIME] NULL,&lt;br /&gt;[CHANGEDDATE] [DATETIME] NULL,&lt;br /&gt;[MGR] [VARCHAR](512) NULL,&lt;br /&gt;[SID] [VARBINARY](85) NULL)&lt;br /&gt;ON [PRIMARY]&lt;br /&gt;&lt;br /&gt;IF EXISTS (SELECT * FROM TEMPDB.DBO.SYSOBJECTS WHERE ID = OBJECT_ID('tempdb.dbo.#LDAP_AD_V2_UserGroups'))&lt;br /&gt;DROP TABLE #LDAP_AD_V2_USERGROUPS&lt;br /&gt;&lt;br /&gt;CREATE TABLE [DBO].[#LDAP_AD_V2_USERGROUPS] (&lt;br /&gt;[USERLOGIN] [VARBINARY](85) NOT NULL,&lt;br /&gt;[GROUPLOGIN] [VARBINARY](85) NULL)&lt;br /&gt;ON [PRIMARY]&lt;br /&gt;&lt;br /&gt;-- POPULATION OF USERS&lt;br /&gt;&lt;br /&gt;-- Search letters to cycle through&lt;br /&gt;-- any chars, but the first char must be a space&lt;br /&gt;SET @chvAlphaChars = ' ABCDEFGHIJKLMNOPQRSTUVWXYZ.-_`0123456789'&lt;br /&gt;SET NOCOUNT ON&lt;br /&gt;&lt;br /&gt;-- start on non space char&lt;br /&gt;SET @intcountLevel1 = 2&lt;br /&gt;-- first level loop&lt;br /&gt;WHILE @intcountLevel1 &amp;lt;= LEN(@chvAlphaChars)&lt;br /&gt;BEGIN&lt;br /&gt;-- get first level char&lt;br /&gt;SET @chvSearchLevel1 = SUBSTRING(@chvAlphaChars,@intcountLevel1,1)&lt;br /&gt;-- reset start on space&lt;br /&gt;SET @intcountLevel2 = 1&lt;br /&gt;-- second level loop&lt;br /&gt;WHILE @intcountLevel2 &amp;lt;= LEN(@chvAlphaChars)&lt;br /&gt;BEGIN&lt;br /&gt;-- reset start on space&lt;br /&gt;SET @intcountLevel3 = 1&lt;br /&gt;-- third level loop&lt;br /&gt;WHILE @intcountLevel3 &amp;lt;= LEN(@chvAlphaChars)&lt;br /&gt;BEGIN&lt;br /&gt;-- setup the string to search for. By using the trim function we can form each level depending on no records&lt;br /&gt;-- eg A 99, B 1000 &amp;gt; BA 9, BB 20 etc&lt;br /&gt;-- trim the spaces forming just A, B, C ; AA, AB for search etc&lt;br /&gt;SET @chvSearchLevel1 = SUBSTRING(@chvAlphaChars,@intcountLevel1,1)&lt;br /&gt;SET @chvSearchLevel2 = RTRIM(SUBSTRING(@chvAlphaChars,@intcountLevel2,1))&lt;br /&gt;SET @chvSearchLevel3 = RTRIM(SUBSTRING(@chvAlphaChars,@intcountLevel3,1))&lt;br /&gt;SET @chvSearch = @chvSearchLevel1 + @chvSearchLevel2 + @chvSearchLevel3&lt;br /&gt;SET @strADSISQL = 'select objectSid,cn,sn,displayName, sAMAccountName, givenName, telephoneNumber, adspath, homedirectory, mail, primarygroupid, createTimeStamp '&lt;br /&gt;+ CHAR(13) + 'from ''''LDAP://' + @strDC + ''''' '&lt;br /&gt;+ CHAR(13) + 'where objectCategory = ''''Person'''' '&lt;br /&gt;+ CHAR(13) + 'and objectClass = ''''user'''' '&lt;br /&gt;+ CHAR(13) + 'and sAMAccountName = ''''' + @chvSearch + '*'''' '&lt;br /&gt;SET @strSQL = 'insert into #LDAP_AD_V2_Users (sid,cn,sn,displayName, sAMAccountName, givenName, telephoneNumber, adspath, homedirectory, mail, primarygroupid, createTimeStamp) '&lt;br /&gt;+ CHAR(13) + 'select objectSid,cn,sn,displayName, sAMAccountName, givenName, telephoneNumber, adspath, homedirectory, mail, primarygroupid, createTimeStamp '&lt;br /&gt;+ CHAR(13) + 'from openquery(ADSI,''' + @strADSISQL + ''' ) '&lt;br /&gt;+ CHAR(13) + 'order by sAMAccountName'&lt;br /&gt;&lt;br /&gt;EXEC SP_EXECUTESQL @strSQL&lt;br /&gt;&lt;br /&gt;SET @intRowCount = @@ROWCOUNT&lt;br /&gt;&lt;br /&gt;-- prints what string is being searched for : no of inserts&lt;br /&gt;-- PRINT @chvSearch + ' : ' + CONVERT(VARCHAR,@intRowCount)&lt;br /&gt;&lt;br /&gt;-- if searched on @chvSearchLevel1 and under 1000 then everything is fine so skip search2 to next search1 eg A &amp;gt; B&lt;br /&gt;IF @intRowCount &amp;lt; 1000&lt;br /&gt;AND @chvSearchLevel2 = ''&lt;br /&gt;SET @intcountLevel2 = @intcountLevel2 + 100&lt;br /&gt;&lt;br /&gt;-- if searched on @chvSearchLevel2 and under 1000 then everything is fine so skip to next search2 eg AA &amp;gt; AB&lt;br /&gt;IF @intRowCount &amp;lt; 1000&lt;br /&gt;AND @chvSearchLevel3 = ''&lt;br /&gt;SET @intcountLevel3 = @intcountLevel3 + 100&lt;br /&gt;&lt;br /&gt;-- else over 1000 so increment third level&lt;br /&gt;SET @intcountLevel3 = @intcountLevel3 + 1&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;-- increment next second level char&lt;br /&gt;SET @intcountLevel2 = @intcountLevel2 + 1&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;-- increment next first level char&lt;br /&gt;SET @intcountLevel1 = @intcountLevel1 + 1&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- POPULATION OF GROUPS&lt;br /&gt;&lt;br /&gt;SET @strADSISQL = 'select objectSid, managedBy, whenChanged, whenCreated, distinguishedName, name, samAccountName, mail '&lt;br /&gt;+ CHAR(13) + 'FROM ''''LDAP://' + @strDC + ''''' '&lt;br /&gt;+ CHAR(13) + 'WHERE objectCategory = ''''Group'''' '&lt;br /&gt;&lt;br /&gt;SET @strSQL = 'insert into #LDAP_AD_V2_Groups (sid,mgr,changeddate,createddate,distname,acctname,email,login) '&lt;br /&gt;+ CHAR(13) + 'select objectSid,managedBy,whenChanged,whenCreated,distinguishedName,name,mail,samAccountName '&lt;br /&gt;+ CHAR(13) + 'from openquery(ADSI,''' + @strADSISQL + ''' ) '&lt;br /&gt;+ CHAR(13) + 'order by sAMAccountName'&lt;br /&gt;&lt;br /&gt;-- PRINT @strSQL&lt;br /&gt;EXEC SP_EXECUTESQL @strSQL&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- POPULATION OF USER &amp;gt; GROUPS RELATIONSHIP TABLE&lt;br /&gt;&lt;br /&gt;IF EXISTS (SELECT *&lt;br /&gt;FROM TEMPDB.DBO.SYSOBJECTS&lt;br /&gt;WHERE ID = OBJECT_ID('tempdb.dbo.#CT'))&lt;br /&gt;DROP TABLE #CT&lt;br /&gt;&lt;br /&gt;-- Create a temporary table to hold AD user SID values&lt;br /&gt;CREATE TABLE #CT (CT VARBINARY(85))&lt;br /&gt;&lt;br /&gt;-- Declare and open a cursor to step through the list of Active Directory groups&lt;br /&gt;DECLARE CURGROUPS CURSOR FOR&lt;br /&gt;SELECT SID,&lt;br /&gt;DISTNAME&lt;br /&gt;FROM #LDAP_AD_V2_GROUPS&lt;br /&gt;ORDER BY LOGIN&lt;br /&gt;&lt;br /&gt;OPEN CURGROUPS&lt;br /&gt;&lt;br /&gt;FETCH NEXT FROM CURGROUPS&lt;br /&gt;INTO @Login,&lt;br /&gt;@CN&lt;br /&gt;&lt;br /&gt;WHILE @@FETCH_STATUS = 0&lt;br /&gt;BEGIN&lt;br /&gt;-- Empty the temp table&lt;br /&gt;TRUNCATE TABLE #CT&lt;br /&gt;&lt;br /&gt;-- Build a SQL statement to insert the SID values directly from the linked server into the temp table&lt;br /&gt;SET @strsql = 'INSERT #CT&lt;br /&gt;SELECT *&lt;br /&gt;FROM OPENQUERY (&lt;br /&gt;ADSI,&lt;br /&gt;''SELECT objectSid&lt;br /&gt;FROM ''''LDAP://' + @strDC + '''''&lt;br /&gt;WHERE objectCategory = ''''User''''&lt;br /&gt;AND memberof=''''' + REPLACE(@CN,'''','''''''''') + ''''''')'&lt;br /&gt;&lt;br /&gt;EXEC( @strsql)&lt;br /&gt;&lt;br /&gt;-- Select the number of records inserted. If this value is less than 1000 then there is no need&lt;br /&gt;-- to execute the OLE calls, and we simply copy the values into the correlation table.&lt;br /&gt;SELECT @CT = COUNT(* )&lt;br /&gt;FROM #CT&lt;br /&gt;&lt;br /&gt;--PRINT @ct&lt;br /&gt;--PRINT @strsql&lt;br /&gt;&lt;br /&gt;IF @CT &amp;lt;&amp;gt; 0&lt;br /&gt;BEGIN&lt;br /&gt;INSERT #LDAP_AD_V2_USERGROUPS&lt;br /&gt;(USERLOGIN,&lt;br /&gt;GROUPLOGIN)&lt;br /&gt;SELECT CT,&lt;br /&gt;@Login&lt;br /&gt;FROM #CT&lt;br /&gt;WHERE CT IS NOT NULL&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;FETCH NEXT FROM CURGROUPS&lt;br /&gt;INTO @Login,&lt;br /&gt;@CN&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;CURSORERROR:&lt;br /&gt;CLOSE CURGROUPS&lt;br /&gt;DEALLOCATE CURGROUPS&lt;br /&gt;DROP TABLE #CT&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;-- Individual SQL Statements to see users, groups &amp;amp; relationships&lt;br /&gt;select * from #LDAP_AD_V2_Users&lt;br /&gt;select * from #LDAP_AD_V2_Groups&lt;br /&gt;select * from #LDAP_AD_V2_UserGroups&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;-- Final Query to tie together the 3 tables and produce a report of group membership&lt;br /&gt;&lt;br /&gt;SELECT #LDAP_AD_V2_GROUPS.ACCTNAME AS GROUPNAME,&lt;br /&gt;#LDAP_AD_V2_USERS.SAMACCOUNTNAME AS USERACCOUNT&lt;br /&gt;FROM #LDAP_AD_V2_USERGROUPS&lt;br /&gt;INNER JOIN #LDAP_AD_V2_USERS&lt;br /&gt;ON #LDAP_AD_V2_USERGROUPS.USERLOGIN = #LDAP_AD_V2_USERS.SID&lt;br /&gt;INNER JOIN #LDAP_AD_V2_GROUPS&lt;br /&gt;ON #LDAP_AD_V2_USERGROUPS.GROUPLOGIN = #LDAP_AD_V2_GROUPS.SID&lt;br /&gt;where #LDAP_AD_V2_USERS.SAMACCOUNTNAME = 'username&amp;nbsp;'&lt;br /&gt;ORDER BY #LDAP_AD_V2_GROUPS.ACCTNAME,&lt;br /&gt;#LDAP_AD_V2_USERS.SAMACCOUNTNAME&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/12181313-7457435737254225173?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/7457435737254225173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=7457435737254225173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7457435737254225173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7457435737254225173'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2012/01/active-directory-from-sql.html' title='Active Directory from SQL'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-1192493495283152445</id><published>2012-01-09T06:53:00.000-08:00</published><updated>2012-01-09T06:53:57.101-08:00</updated><title type='text'>Format drives with correct allocation and offset for maximum SQL Server performance</title><content type='html'>&lt;a href="http://www.mssqltips.com/sqlservertip/2138/format-drives-with-correct-allocation-and-offset-for-maximum-sql-server-performance/?utm_source=dailynewsletter&amp;amp;utm_medium=email&amp;amp;utm_content=headline&amp;amp;utm_campaign=201218"&gt;Format drives with correct allocation and offset for maximum SQL Server performance&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-1192493495283152445?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/sqlservertip/2138/format-drives-with-correct-allocation-and-offset-for-maximum-sql-server-performance/?utm_source=dailynewsletter&amp;utm_medium=email&amp;utm_content=headline&amp;utm_campaign=201218' title='Format drives with correct allocation and offset for maximum SQL Server performance'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/1192493495283152445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=1192493495283152445' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1192493495283152445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1192493495283152445'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2012/01/format-drives-with-correct-allocation.html' title='Format drives with correct allocation and offset for maximum SQL Server performance'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-6691801868702477468</id><published>2012-01-06T07:22:00.000-08:00</published><updated>2012-01-06T07:22:49.908-08:00</updated><title type='text'>Setup Database Mail to use a Gmail, Hotmail, Yahoo or AOL account</title><content type='html'>&lt;a href="http://www.mssqltips.com/sqlservertip/2578/setup-database-mail-to-use-a-gmail-hotmail-yahoo-or-aol-account/?utm_source=dailynewsletter&amp;amp;utm_medium=email&amp;amp;utm_content=headline&amp;amp;utm_campaign=201215"&gt;Setup Database Mail to use a Gmail, Hotmail, Yahoo or AOL account&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-6691801868702477468?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/sqlservertip/2578/setup-database-mail-to-use-a-gmail-hotmail-yahoo-or-aol-account/?utm_source=dailynewsletter&amp;utm_medium=email&amp;utm_content=headline&amp;utm_campaign=201215' title='Setup Database Mail to use a Gmail, Hotmail, Yahoo or AOL account'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/6691801868702477468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=6691801868702477468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6691801868702477468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6691801868702477468'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2012/01/setup-database-mail-to-use-gmail.html' title='Setup Database Mail to use a Gmail, Hotmail, Yahoo or AOL account'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-2749437714021857429</id><published>2011-12-21T13:16:00.000-08:00</published><updated>2011-12-21T13:16:37.433-08:00</updated><title type='text'>SQL SERVER – Find Row Count in Table – Find Largest Table in Database – T-SQL « SQL Server Journey with SQLAuthority</title><content type='html'>&lt;a href="http://blog.sqlauthority.com/2009/01/13/sql-server-find-row-count-in-table-find-largest-table-in-database-t-sql/"&gt;SQL SERVER – Find Row Count in Table – Find Largest Table in Database – T-SQL « SQL Server Journey with SQLAuthority&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-2749437714021857429?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.sqlauthority.com/2009/01/13/sql-server-find-row-count-in-table-find-largest-table-in-database-t-sql/' title='SQL SERVER – Find Row Count in Table – Find Largest Table in Database – T-SQL « SQL Server Journey with SQLAuthority'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/2749437714021857429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=2749437714021857429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2749437714021857429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2749437714021857429'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/12/sql-server-find-row-count-in-table-find.html' title='SQL SERVER – Find Row Count in Table – Find Largest Table in Database – T-SQL « SQL Server Journey with SQLAuthority'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-107982389913403398</id><published>2011-12-21T13:15:00.000-08:00</published><updated>2011-12-21T13:15:58.816-08:00</updated><title type='text'>How do I get a list of SQL Server tables and their row counts?</title><content type='html'>&lt;a href="http://sqlserver2000.databases.aspfaq.com/how-do-i-get-a-list-of-sql-server-tables-and-their-row-counts.html"&gt;How do I get a list of SQL Server tables and their row counts?&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-107982389913403398?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://sqlserver2000.databases.aspfaq.com/how-do-i-get-a-list-of-sql-server-tables-and-their-row-counts.html' title='How do I get a list of SQL Server tables and their row counts?'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/107982389913403398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=107982389913403398' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/107982389913403398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/107982389913403398'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/12/how-do-i-get-list-of-sql-server-tables.html' title='How do I get a list of SQL Server tables and their row counts?'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-602333607240972061</id><published>2011-11-22T09:20:00.000-08:00</published><updated>2011-11-22T09:20:17.819-08:00</updated><title type='text'>SQL Server Column Level Encryption Example using Symmetric Keys</title><content type='html'>&lt;a href="http://www.mssqltips.com/sqlservertip/2431/sql-server-column-level-encryption-example-using-symmetric-keys/?utm_source=dailynewsletter&amp;amp;utm_medium=email&amp;amp;utm_content=headline&amp;amp;utm_campaign=20111121"&gt;SQL Server Column Level Encryption Example using Symmetric Keys&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-602333607240972061?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/sqlservertip/2431/sql-server-column-level-encryption-example-using-symmetric-keys/?utm_source=dailynewsletter&amp;utm_medium=email&amp;utm_content=headline&amp;utm_campaign=20111121' title='SQL Server Column Level Encryption Example using Symmetric Keys'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/602333607240972061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=602333607240972061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/602333607240972061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/602333607240972061'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/11/sql-server-column-level-encryption.html' title='SQL Server Column Level Encryption Example using Symmetric Keys'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-7409062311672196734</id><published>2011-11-16T06:52:00.000-08:00</published><updated>2011-11-16T06:52:03.819-08:00</updated><title type='text'>SQL Server – Performance – Best Practice – Create Index Before or After a data insert? - Nakul's Blog</title><content type='html'>&lt;a href="http://beyondrelational.com/blogs/nakul/archive/2011/11/07/sql-server-performance-best-practice-create-index-before-or-after-a-data-insert.aspx?utm_source=brnewsletter&amp;amp;utm_medium=email&amp;amp;utm_campaign=2011Nov16"&gt;SQL Server – Performance – Best Practice – Create Index Before or After a data insert? - Nakul&amp;#39;s Blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-7409062311672196734?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://beyondrelational.com/blogs/nakul/archive/2011/11/07/sql-server-performance-best-practice-create-index-before-or-after-a-data-insert.aspx?utm_source=brnewsletter&amp;utm_medium=email&amp;utm_campaign=2011Nov16' title='SQL Server – Performance – Best Practice – Create Index Before or After a data insert? - Nakul&apos;s Blog'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/7409062311672196734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=7409062311672196734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7409062311672196734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7409062311672196734'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/11/sql-server-performance-best-practice.html' title='SQL Server – Performance – Best Practice – Create Index Before or After a data insert? - Nakul&apos;s Blog'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-3626107907039023836</id><published>2011-10-24T11:57:00.001-07:00</published><updated>2011-10-24T11:57:22.955-07:00</updated><title type='text'>sp_helpindex3</title><content type='html'>CREATE procedure [dbo].[sp_helpindex3] @objname nvarchar(776)  -- the table to check for indexesas -- PRELIM set nocount on declare @objid int,   -- the object id of the table   @indid smallint, -- the index id of an index   @groupid int,    -- the filegroup id of an index   @indname sysname,   @groupname sysname,   @status int,   @keys nvarchar(2126), --Length (16*max_identifierLength)+(15*2)+(16*3)   @inc_columns nvarchar(max),   @inc_Count  smallint,   @loop_inc_Count  smallint,   @dbname sysname,   @ignore_dup_key bit,   @is_unique  bit,   @is_hypothetical bit,   @is_primary_key bit,   @is_unique_key  bit,   @auto_created bit,   @no_recompute bit,   @filter_definition nvarchar(max) -- Check to see that the object names are local to the current database. select @dbname = parsename(@objname,3) if @dbname is null  select @dbname = db_name() else if @dbname &lt;&gt; db_name()  begin   raiserror(15250,-1,-1)   return (1)  end -- Check to see the the table exists and initialize @objid. select @objid = object_id(@objname) if @objid is NULL begin  raiserror(15009,-1,-1,@objname,@dbname)  return (1) end -- OPEN CURSOR OVER INDEXES (skip stats: bug shiloh_51196) declare ms_crs_ind cursor local static for  select i.index_id, i.data_space_id, i.name,   i.ignore_dup_key, i.is_unique, i.is_hypothetical, i.is_primary_key, i.is_unique_constraint,   s.auto_created, s.no_recompute, i.filter_definition  from sys.indexes i join sys.stats s   on i.object_id = s.object_id and i.index_id = s.stats_id  where i.object_id = @objid open ms_crs_ind fetch ms_crs_ind into @indid, @groupid, @indname, @ignore_dup_key, @is_unique, @is_hypothetical,   @is_primary_key, @is_unique_key, @auto_created, @no_recompute, @filter_definition -- IF NO INDEX, QUIT if @@fetch_status &lt; 0 begin  deallocate ms_crs_ind  raiserror(15472,-1,-1,@objname) -- Object does not have any indexes.  return (0) end -- create temp tables CREATE TABLE #spindtab (  index_name   sysname collate database_default NOT NULL,  index_id   int,  ignore_dup_key  bit,  is_unique   bit,  is_hypothetical  bit,  is_primary_key  bit,  is_unique_key  bit,  auto_created  bit,  no_recompute  bit,  groupname   sysname collate database_default NULL,  index_keys   nvarchar(2126) collate database_default NOT NULL, -- see @keys above for length descr  filter_definition nvarchar(max),  inc_Count   smallint,  inc_columns   nvarchar(max) ) CREATE TABLE #IncludedColumns ( RowNumber smallint,  [Name] nvarchar(128) ) -- Now check out each index, figure out its type and keys and -- save the info in a temporary table that we'll print out at the end. while @@fetch_status &gt;= 0 begin  -- First we'll figure out what the keys are.  declare @i int, @thiskey nvarchar(131) -- 128+3  select @keys = index_col(@objname, @indid, 1), @i = 2  if (indexkey_property(@objid, @indid, 1, 'isdescending') = 1)   select @keys = @keys  + '(-)'  select @thiskey = index_col(@objname, @indid, @i)  if ((@thiskey is not null) and (indexkey_property(@objid, @indid, @i, 'isdescending') = 1))   select @thiskey = @thiskey + '(-)'  while (@thiskey is not null )  begin   select @keys = @keys + ', ' + @thiskey, @i = @i + 1   select @thiskey = index_col(@objname, @indid, @i)   if ((@thiskey is not null) and (indexkey_property(@objid, @indid, @i, 'isdescending') = 1))    select @thiskey = @thiskey + '(-)'  end  -- Second, we'll figure out what the included columns are.  SELECT @inc_Count = count(*)  FROM  sys.tables AS tbl  INNER JOIN sys.indexes AS si    ON (si.index_id &gt; 0     and si.is_hypothetical = 0)     AND (si.object_id=tbl.object_id)  INNER JOIN sys.index_columns AS ic    ON (ic.column_id &gt; 0     and (ic.key_ordinal &gt; 0 or ic.partition_ordinal = 0 or ic.is_included_column != 0))     AND (ic.index_id=CAST(si.index_id AS int) AND ic.object_id=si.object_id)  INNER JOIN sys.columns AS clmns    ON clmns.object_id = ic.object_id    and clmns.column_id = ic.column_id  WHERE ic.is_included_column = 1 and   (si.index_id = @indid) and    (tbl.object_id= @objid)  IF @inc_Count &gt; 0   INSERT #IncludedColumns    SELECT ROW_NUMBER() OVER (ORDER BY clmns.column_id)     , clmns.name    FROM   sys.tables AS tbl   INNER JOIN sys.indexes AS si     ON (si.index_id &gt; 0      and si.is_hypothetical = 0)      AND (si.object_id=tbl.object_id)   INNER JOIN sys.index_columns AS ic     ON (ic.column_id &gt; 0      and (ic.key_ordinal &gt; 0 or ic.partition_ordinal = 0 or ic.is_included_column != 0))      AND (ic.index_id=CAST(si.index_id AS int) AND ic.object_id=si.object_id)   INNER JOIN sys.columns AS clmns     ON clmns.object_id = ic.object_id     and clmns.column_id = ic.column_id   WHERE ic.is_included_column = 1 and    (si.index_id = @indid) and     (tbl.object_id= @objid)      SELECT @inc_columns = [Name] FROM #IncludedColumns WHERE RowNumber = 1   SET @loop_inc_Count = 1   WHILE @loop_inc_Count &lt; @inc_Count   BEGIN    SELECT @inc_columns = @inc_columns + ', ' + [Name]      FROM #IncludedColumns WHERE RowNumber = @loop_inc_Count + 1    SET @loop_inc_Count = @loop_inc_Count + 1   END   select @groupname = null  select @groupname = name from sys.data_spaces where data_space_id = @groupid  -- INSERT ROW FOR INDEX  insert into #spindtab values (@indname, @indid, @ignore_dup_key, @is_unique, @is_hypothetical,   @is_primary_key, @is_unique_key, @auto_created, @no_recompute, @groupname, @keys, @filter_definition, @inc_Count, @inc_columns)  -- Next index  fetch ms_crs_ind into @indid, @groupid, @indname, @ignore_dup_key, @is_unique, @is_hypothetical,   @is_primary_key, @is_unique_key, @auto_created, @no_recompute, @filter_definition end deallocate ms_crs_ind -- DISPLAY THE RESULTS select  'index_name' = index_name,  'index_description' = convert(varchar(210), --bits 16 off, 1, 2, 16777216 on, located on group    case when index_id = 1 then 'clustered' else 'nonclustered' end    + case when ignore_dup_key &lt;&gt;0 then ', ignore duplicate keys' else '' end    + case when is_unique &lt;&gt;0 then ', unique' else '' end    + case when is_hypothetical &lt;&gt;0 then ', hypothetical' else '' end    + case when is_primary_key &lt;&gt;0 then ', primary key' else '' end    + case when is_unique_key &lt;&gt;0 then ', unique key' else '' end    + case when auto_created &lt;&gt;0 then ', auto create' else '' end    + case when no_recompute &lt;&gt;0 then ', stats no recompute' else '' end    + ' located on ' + groupname),  'index_keys' = index_keys,  --'num_included_columns' = inc_Count,  'included_columns' = inc_columns,  'filter_definition' = filter_definition,  'index_id' = index_id from #spindtab order by index_name return (0) -- sp_helpindexwinc2GO&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-3626107907039023836?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/3626107907039023836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=3626107907039023836' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3626107907039023836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3626107907039023836'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/10/sphelpindex3.html' title='sp_helpindex3'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-4370868524893444369</id><published>2011-10-24T07:25:00.000-07:00</published><updated>2011-10-24T07:25:26.905-07:00</updated><title type='text'>Standardize SQL Server Installations with Configuration Files</title><content type='html'>&lt;a href="http://www.mssqltips.com/sqlservertip/2511/standardize-sql-server-installations-with-configuration-files/?utm_source=dailynewsletter&amp;amp;utm_medium=email&amp;amp;utm_content=headline&amp;amp;utm_campaign=20111023"&gt;Standardize SQL Server Installations with Configuration Files&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-4370868524893444369?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/sqlservertip/2511/standardize-sql-server-installations-with-configuration-files/?utm_source=dailynewsletter&amp;utm_medium=email&amp;utm_content=headline&amp;utm_campaign=20111023' title='Standardize SQL Server Installations with Configuration Files'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/4370868524893444369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=4370868524893444369' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4370868524893444369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4370868524893444369'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/10/standardize-sql-server-installations.html' title='Standardize SQL Server Installations with Configuration Files'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-2393279113923845250</id><published>2011-10-24T06:53:00.000-07:00</published><updated>2011-10-24T06:53:43.396-07:00</updated><title type='text'>What does my SQL Server data look like over the wire?</title><content type='html'>&lt;a href="http://www.mssqltips.com/sqlservertip/2436/what-does-my-sql-server-data-look-like-over-the-wire/?utm_source=dailynewsletter&amp;amp;utm_medium=email&amp;amp;utm_content=headline&amp;amp;utm_campaign=20111023"&gt;What does my SQL Server data look like over the wire?&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-2393279113923845250?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/sqlservertip/2436/what-does-my-sql-server-data-look-like-over-the-wire/?utm_source=dailynewsletter&amp;utm_medium=email&amp;utm_content=headline&amp;utm_campaign=20111023' title='What does my SQL Server data look like over the wire?'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/2393279113923845250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=2393279113923845250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2393279113923845250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2393279113923845250'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/10/what-does-my-sql-server-data-look-like.html' title='What does my SQL Server data look like over the wire?'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-2918783594854614602</id><published>2011-10-20T10:53:00.000-07:00</published><updated>2011-10-20T10:53:59.566-07:00</updated><title type='text'>SQL Server High Availability Options</title><content type='html'>&lt;a href="http://www.mssqltips.com/sqlservertip/2482/sql-server-high-availability-options/?utm_source=dailynewsletter&amp;amp;utm_medium=email&amp;amp;utm_content=headline&amp;amp;utm_campaign=20111019"&gt;SQL Server High Availability Options&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-2918783594854614602?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/sqlservertip/2482/sql-server-high-availability-options/?utm_source=dailynewsletter&amp;utm_medium=email&amp;utm_content=headline&amp;utm_campaign=20111019' title='SQL Server High Availability Options'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/2918783594854614602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=2918783594854614602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2918783594854614602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2918783594854614602'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/10/sql-server-high-availability-options.html' title='SQL Server High Availability Options'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-6206046740807254988</id><published>2011-10-19T06:49:00.000-07:00</published><updated>2011-10-19T06:49:54.210-07:00</updated><title type='text'>SQL Server Monitoring Checklist</title><content type='html'>&lt;a href="http://www.mssqltips.com/sqlservertip/2522/sql-server-monitoring-checklist/?utm_source=dailynewsletter&amp;amp;utm_medium=email&amp;amp;utm_content=headline&amp;amp;utm_campaign=20111018"&gt;SQL Server Monitoring Checklist&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-6206046740807254988?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/sqlservertip/2522/sql-server-monitoring-checklist/?utm_source=dailynewsletter&amp;utm_medium=email&amp;utm_content=headline&amp;utm_campaign=20111018' title='SQL Server Monitoring Checklist'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/6206046740807254988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=6206046740807254988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6206046740807254988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6206046740807254988'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/10/sql-server-monitoring-checklist.html' title='SQL Server Monitoring Checklist'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-38688789218401246</id><published>2011-10-14T08:52:00.000-07:00</published><updated>2011-10-14T08:52:44.369-07:00</updated><title type='text'>Troubleshooting Insufficient Disk Space in tempdb</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/library/ms176029(v=SQL.100).aspx"&gt;Troubleshooting Insufficient Disk Space in tempdb&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-38688789218401246?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://msdn.microsoft.com/en-us/library/ms176029(v=SQL.100).aspx' title='Troubleshooting Insufficient Disk Space in tempdb'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/38688789218401246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=38688789218401246' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/38688789218401246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/38688789218401246'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/10/troubleshooting-insufficient-disk-space.html' title='Troubleshooting Insufficient Disk Space in tempdb'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-3443022502689717581</id><published>2011-10-14T08:44:00.000-07:00</published><updated>2011-10-14T08:44:29.956-07:00</updated><title type='text'>Estimating the Size of a Table</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/library/ms175991(v=SQL.100).aspx"&gt;Estimating the Size of a Table&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-3443022502689717581?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://msdn.microsoft.com/en-us/library/ms175991(v=SQL.100).aspx' title='Estimating the Size of a Table'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/3443022502689717581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=3443022502689717581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3443022502689717581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3443022502689717581'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/10/estimating-size-of-table.html' title='Estimating the Size of a Table'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-5731900468041069472</id><published>2011-10-06T07:45:00.000-07:00</published><updated>2011-10-06T07:45:01.633-07:00</updated><title type='text'>Columnstore Indexes: A New Feature in SQL Server known as Project “Apollo” - SQL Server Team Blog - Site Home - TechNet Blogs</title><content type='html'>&lt;a href="http://blogs.technet.com/b/dataplatforminsider/archive/2011/08/04/columnstore-indexes-a-new-feature-in-sql-server-known-as-project-apollo.aspx"&gt;Columnstore Indexes: A New Feature in SQL Server known as Project “Apollo” - SQL Server Team Blog - Site Home - TechNet Blogs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-5731900468041069472?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.technet.com/b/dataplatforminsider/archive/2011/08/04/columnstore-indexes-a-new-feature-in-sql-server-known-as-project-apollo.aspx' title='Columnstore Indexes: A New Feature in SQL Server known as Project “Apollo” - SQL Server Team Blog - Site Home - TechNet Blogs'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/5731900468041069472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=5731900468041069472' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/5731900468041069472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/5731900468041069472'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/10/columnstore-indexes-new-feature-in-sql.html' title='Columnstore Indexes: A New Feature in SQL Server known as Project “Apollo” - SQL Server Team Blog - Site Home - TechNet Blogs'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-7832330636503557967</id><published>2011-10-05T09:41:00.000-07:00</published><updated>2011-10-05T09:41:14.099-07:00</updated><title type='text'>Breaking Down TempDB Contention - SQL Server Soldier :: News from the frontlines of the database wars - SQLServerCentral.com</title><content type='html'>&lt;a href="http://www.sqlservercentral.com/blogs/robert_davis/archive/2010/03/05/Breaking-Down-TempDB-Contention.aspx"&gt;Breaking Down TempDB Contention - SQL Server Soldier :: News from the frontlines of the database wars - SQLServerCentral.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-7832330636503557967?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sqlservercentral.com/blogs/robert_davis/archive/2010/03/05/Breaking-Down-TempDB-Contention.aspx' title='Breaking Down TempDB Contention - SQL Server Soldier :: News from the frontlines of the database wars - SQLServerCentral.com'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/7832330636503557967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=7832330636503557967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7832330636503557967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7832330636503557967'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/10/breaking-down-tempdb-contention-sql.html' title='Breaking Down TempDB Contention - SQL Server Soldier :: News from the frontlines of the database wars - SQLServerCentral.com'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-8748929257891158315</id><published>2011-10-03T14:29:00.000-07:00</published><updated>2011-10-03T14:29:26.331-07:00</updated><title type='text'>A Performance Troubleshooting Methodology for SQL Server</title><content type='html'>&lt;a href="http://www.simple-talk.com/sql/performance/a-performance-troubleshooting-methodology-for-sql-server/?utm_source=simpletalk&amp;amp;utm_medium=email-main&amp;amp;utm_content=performanceJK-20111003&amp;amp;utm_campaign=SQL"&gt;A Performance Troubleshooting Methodology for SQL Server&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-8748929257891158315?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.simple-talk.com/sql/performance/a-performance-troubleshooting-methodology-for-sql-server/?utm_source=simpletalk&amp;utm_medium=email-main&amp;utm_content=performanceJK-20111003&amp;utm_campaign=SQL' title='A Performance Troubleshooting Methodology for SQL Server'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/8748929257891158315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=8748929257891158315' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/8748929257891158315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/8748929257891158315'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/10/performance-troubleshooting-methodology.html' title='A Performance Troubleshooting Methodology for SQL Server'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-6396208042815438260</id><published>2011-10-03T07:23:00.000-07:00</published><updated>2011-10-03T07:23:42.057-07:00</updated><title type='text'>Going Beyond the Relational Model with Data</title><content type='html'>&lt;a href="http://www.simple-talk.com/sql/learn-sql-server/going-beyond-the-relational-model-with-data/?utm_source=simpletalk&amp;amp;utm_medium=email-main&amp;amp;utm_content=beyondrelational-20111003&amp;amp;utm_campaign=SQL"&gt;Going Beyond the Relational Model with Data&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-6396208042815438260?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.simple-talk.com/sql/learn-sql-server/going-beyond-the-relational-model-with-data/?utm_source=simpletalk&amp;utm_medium=email-main&amp;utm_content=beyondrelational-20111003&amp;utm_campaign=SQL' title='Going Beyond the Relational Model with Data'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/6396208042815438260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=6396208042815438260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6396208042815438260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6396208042815438260'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/10/going-beyond-relational-model-with-data.html' title='Going Beyond the Relational Model with Data'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-4666108066639821866</id><published>2011-09-22T13:42:00.000-07:00</published><updated>2011-09-22T13:42:03.479-07:00</updated><title type='text'>Build Hierarchy table from core table</title><content type='html'>if(object_id('tempdb..#tmp')&amp;gt;1)	drop table #tmpdeclare @depth int = 0 , @count int = 0create table #tmp (parent_id int, child_id int, depth_from_parent int)	SET @depth = 0;	TRUNCATE TABLE #tmp;		INSERT INTO #tmp(parent_id, child_id, depth_from_parent)		VALUES (1, 1, @depth)	WHILE @@ROWCOUNT &amp;gt; 0	BEGIN					SET @depth = @depth + 1					INSERT INTO #tmp(parent_id, child_id, depth_from_parent)				OUTPUT inserted.child_id, inserted.child_id, 0 INTO #tmp			SELECT	1, ou.ou_id, os.depth_from_parent + 1			FROM	#tmp os (NOLOCK)					INNER JOIN ou (NOLOCK) ou ON os.child_id = ou.parent_id			WHERE	os.depth_from_parent = @depth - 1; 	END	SET @depth = 0 	WHILE @@ROWCOUNT &amp;gt; 0	BEGIN			SET @depth = @depth + 1;					INSERT INTO #tmp(parent_id, child_id, depth_from_parent)			SELECT	os.parent_id, ou.ou_id, @depth			FROM	#tmp os					INNER JOIN ou (NOLOCK) ON os.child_id = ou.parent_id --AND os.parent_id &amp;lt;&amp;gt; ou.ou_id -- exclude circular reference			WHERE	os.depth_from_parent = @depth - 1 AND os.parent_id &amp;lt;&amp;gt; 1	END		&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-4666108066639821866?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/4666108066639821866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=4666108066639821866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4666108066639821866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4666108066639821866'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/09/build-hierarchy-table-from-core-table.html' title='Build Hierarchy table from core table'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-7043473561553287728</id><published>2011-09-19T08:28:00.000-07:00</published><updated>2011-09-19T08:28:05.100-07:00</updated><title type='text'>How to find out how much CPU a SQL Server process is really using</title><content type='html'>&lt;a href="http://www.mssqltips.com/sqlservertip/2454/how-to-find-out-how-much-cpu-a-sql-server-process-is-really-using/"&gt;How to find out how much CPU a SQL Server process is really using&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-7043473561553287728?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/sqlservertip/2454/how-to-find-out-how-much-cpu-a-sql-server-process-is-really-using/' title='How to find out how much CPU a SQL Server process is really using'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/7043473561553287728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=7043473561553287728' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7043473561553287728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7043473561553287728'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/09/how-to-find-out-how-much-cpu-sql-server.html' title='How to find out how much CPU a SQL Server process is really using'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-3829815701714449277</id><published>2011-09-12T07:52:00.000-07:00</published><updated>2011-09-12T07:52:52.427-07:00</updated><title type='text'>Graphical Query Plan Tutorial tutorial and example</title><content type='html'>&lt;a href="http://www.mssqltips.com/sqlservertutorial/2250/graphical-query-plan-tutorial/"&gt;Graphical Query Plan Tutorial tutorial and example&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-3829815701714449277?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/sqlservertutorial/2250/graphical-query-plan-tutorial/' title='Graphical Query Plan Tutorial tutorial and example'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/3829815701714449277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=3829815701714449277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3829815701714449277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3829815701714449277'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/09/graphical-query-plan-tutorial-tutorial.html' title='Graphical Query Plan Tutorial tutorial and example'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-9068487258630007784</id><published>2011-09-02T08:15:00.000-07:00</published><updated>2011-09-02T08:15:41.575-07:00</updated><title type='text'>Using DBCC PAGE to Examine SQL Server Table and Index Data</title><content type='html'>&lt;a href="http://www.mssqltips.com/sqlservertip/1578/using-dbcc-page-to-examine-sql-server-table-and-index-data/"&gt;Using DBCC PAGE to Examine SQL Server Table and Index Data&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-9068487258630007784?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/sqlservertip/1578/using-dbcc-page-to-examine-sql-server-table-and-index-data/' title='Using DBCC PAGE to Examine SQL Server Table and Index Data'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/9068487258630007784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=9068487258630007784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/9068487258630007784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/9068487258630007784'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/09/using-dbcc-page-to-examine-sql-server.html' title='Using DBCC PAGE to Examine SQL Server Table and Index Data'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-1447901304107911299</id><published>2011-08-26T14:15:00.000-07:00</published><updated>2011-08-26T14:15:49.948-07:00</updated><title type='text'>Querying agent job status, executing and waiting for job completion from within T-SQL</title><content type='html'>&lt;a href="http://www.pawlowski.cz/2011/04/querying-agent-job-status-executing-waiting-job-completion-t-sql/"&gt;Querying agent job status, executing and waiting for job completion from within T-SQL&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-1447901304107911299?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.pawlowski.cz/2011/04/querying-agent-job-status-executing-waiting-job-completion-t-sql/' title='Querying agent job status, executing and waiting for job completion from within T-SQL'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/1447901304107911299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=1447901304107911299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1447901304107911299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1447901304107911299'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/08/querying-agent-job-status-executing-and.html' title='Querying agent job status, executing and waiting for job completion from within T-SQL'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-6204154521818695551</id><published>2011-08-22T08:39:00.000-07:00</published><updated>2011-08-22T08:39:44.567-07:00</updated><title type='text'>Simple process to track and log SQL Server stored procedure use</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=2003"&gt;Simple process to track and log SQL Server stored procedure use&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-6204154521818695551?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=2003' title='Simple process to track and log SQL Server stored procedure use'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/6204154521818695551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=6204154521818695551' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6204154521818695551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6204154521818695551'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/08/simple-process-to-track-and-log-sql.html' title='Simple process to track and log SQL Server stored procedure use'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-6804317450957286484</id><published>2011-08-03T13:31:00.000-07:00</published><updated>2011-08-03T13:31:11.343-07:00</updated><title type='text'>minimum account permissions for service broker</title><content type='html'>USE USERDB&lt;br /&gt;go&lt;br /&gt;&lt;br /&gt;CREATE SCHEMA [office\user] AUTHORIZATION [office\user];&lt;br /&gt;&lt;br /&gt;GO&lt;br /&gt;CREATE USER [office\user] WITH DEFAULT_SCHEMA = [office\user];&lt;br /&gt;GRANT CREATE PROCEDURE TO [office\user];&lt;br /&gt;GRANT CREATE QUEUE TO [office\user];&lt;br /&gt;GRANT CREATE SERVICE TO [office\user];&lt;br /&gt;GRANT SUBSCRIBE QUERY NOTIFICATIONS TO [office\user];&lt;br /&gt;GRANT REFERENCES ON CONTRACT::[http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification] TO [office\user];&lt;br /&gt;GRANT RECEIVE ON QueryNotificationErrorsQueue TO [office\user];&lt;br /&gt;GRANT CONTROL ON SCHEMA::[dbo] TO [office\user];&lt;br /&gt;GRANT IMPERSONATE ON USER::DBO TO [office\user];&lt;br /&gt;GO&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-6804317450957286484?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/6804317450957286484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=6804317450957286484' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6804317450957286484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6804317450957286484'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/08/minimum-account-permissions-for-service.html' title='minimum account permissions for service broker'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-3502391032458316865</id><published>2011-07-29T13:02:00.000-07:00</published><updated>2011-07-29T13:02:56.952-07:00</updated><title type='text'>Script to Get Available and Free Disk Space for SQL Server</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=2444"&gt;Script to Get Available and Free Disk Space for SQL Server&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-3502391032458316865?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=2444' title='Script to Get Available and Free Disk Space for SQL Server'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/3502391032458316865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=3502391032458316865' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3502391032458316865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3502391032458316865'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/07/script-to-get-available-and-free-disk.html' title='Script to Get Available and Free Disk Space for SQL Server'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-922060432547016723</id><published>2011-06-30T11:52:00.000-07:00</published><updated>2011-06-30T11:52:18.308-07:00</updated><title type='text'>Procedure Execution Statistics</title><content type='html'>&lt;a href="http://sqlserverperformance.wordpress.com/2006/11/16/sql-server-2005-stored-procedure-execution-statistics/"&gt;SQL Server 2005 Stored Procedure Execution Statistics | Glenn Berry&amp;#39;s SQL Server Performance&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-922060432547016723?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://sqlserverperformance.wordpress.com/2006/11/16/sql-server-2005-stored-procedure-execution-statistics/' title='Procedure Execution Statistics'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/922060432547016723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=922060432547016723' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/922060432547016723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/922060432547016723'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/06/procedure-execution-statistics.html' title='Procedure Execution Statistics'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-2214357677433897581</id><published>2011-06-30T11:51:00.000-07:00</published><updated>2011-06-30T11:51:43.188-07:00</updated><title type='text'>Monitoring Stored Procedure Usage Count</title><content type='html'>&lt;a href="http://www.databasejournal.com/features/mssql/article.php/3687186/Monitoring-Stored-Procedure-Usage.htm"&gt;Monitoring Stored Procedure Usage — DatabaseJournal.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-2214357677433897581?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.databasejournal.com/features/mssql/article.php/3687186/Monitoring-Stored-Procedure-Usage.htm' title='Monitoring Stored Procedure Usage Count'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/2214357677433897581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=2214357677433897581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2214357677433897581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2214357677433897581'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/06/monitoring-stored-procedure-usage-count.html' title='Monitoring Stored Procedure Usage Count'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-1116619563913121866</id><published>2011-06-29T08:36:00.000-07:00</published><updated>2011-06-29T08:36:19.844-07:00</updated><title type='text'>Finding Missing Indexes from SQL Plan Cache</title><content type='html'>&lt;a href="http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/07/27/digging-into-the-sql-plan-cache-finding-missing-indexes.aspx"&gt;The Rambling DBA: Jonathan Kehayias : Digging into the SQL Plan Cache: Finding Missing Indexes&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-1116619563913121866?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/07/27/digging-into-the-sql-plan-cache-finding-missing-indexes.aspx' title='Finding Missing Indexes from SQL Plan Cache'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/1116619563913121866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=1116619563913121866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1116619563913121866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1116619563913121866'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/06/finding-missing-indexes-from-sql-plan.html' title='Finding Missing Indexes from SQL Plan Cache'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-404853987177279733</id><published>2011-06-28T11:20:00.000-07:00</published><updated>2011-06-28T11:20:35.874-07:00</updated><title type='text'>SELECT Blog FROM Brad.Schulz CROSS APPLY SQL.Server(): Cool CROSS APPLY Tricks, Part 2</title><content type='html'>&lt;a href="http://bradsruminations.blogspot.com/2009/07/cool-cross-apply-tricks-part-2.html"&gt;SELECT Blog FROM Brad.Schulz CROSS APPLY SQL.Server(): Cool CROSS APPLY Tricks, Part 2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-404853987177279733?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://bradsruminations.blogspot.com/2009/07/cool-cross-apply-tricks-part-2.html' title='SELECT Blog FROM Brad.Schulz CROSS APPLY SQL.Server(): Cool CROSS APPLY Tricks, Part 2'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/404853987177279733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=404853987177279733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/404853987177279733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/404853987177279733'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/06/select-blog-from-bradschulz-cross-apply_28.html' title='SELECT Blog FROM Brad.Schulz CROSS APPLY SQL.Server(): Cool CROSS APPLY Tricks, Part 2'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-4041909492252710522</id><published>2011-06-28T11:19:00.000-07:00</published><updated>2011-06-28T11:19:58.726-07:00</updated><title type='text'>SELECT Blog FROM Brad.Schulz CROSS APPLY SQL.Server(): T-SQL Tuesday #017: APPLY: It Slices! It Dices! It Does It All!</title><content type='html'>&lt;a href="http://bradsruminations.blogspot.com/2011/04/t-sql-tuesday-017-it-slices-it-dices-it.html"&gt;SELECT Blog FROM Brad.Schulz CROSS APPLY SQL.Server(): T-SQL Tuesday #017: APPLY: It Slices! It Dices! It Does It All!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-4041909492252710522?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://bradsruminations.blogspot.com/2011/04/t-sql-tuesday-017-it-slices-it-dices-it.html' title='SELECT Blog FROM Brad.Schulz CROSS APPLY SQL.Server(): T-SQL Tuesday #017: APPLY: It Slices! It Dices! It Does It All!'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/4041909492252710522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=4041909492252710522' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4041909492252710522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4041909492252710522'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/06/select-blog-from-bradschulz-cross-apply.html' title='SELECT Blog FROM Brad.Schulz CROSS APPLY SQL.Server(): T-SQL Tuesday #017: APPLY: It Slices! It Dices! It Does It All!'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-828855029216290297</id><published>2011-06-27T14:17:00.001-07:00</published><updated>2011-06-27T14:17:03.946-07:00</updated><title type='text'>Parse string characters and separate them</title><content type='html'>DECLARE @String NVARCHAR(99) = N'abcdefghijk' ;&lt;br /&gt;&lt;br /&gt;;WITH  Numbers&lt;br /&gt;     AS ( SELECT  1 AS Number&lt;br /&gt;        UNION ALL&lt;br /&gt;        SELECT  Number + 1&lt;br /&gt;        FROM   Numbers&lt;br /&gt;        WHERE  Number &lt; 99&lt;br /&gt;       )&lt;br /&gt;  SELECT SUBSTRING(@String, Number, 1) AS SingleChar &lt;br /&gt;  FROM  Numbers&lt;br /&gt;  WHERE  Number &lt;= LEN(@String) ;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-828855029216290297?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/828855029216290297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=828855029216290297' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/828855029216290297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/828855029216290297'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/06/parse-string-characters-and-separate.html' title='Parse string characters and separate them'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-2685763521377633910</id><published>2011-06-27T14:00:00.000-07:00</published><updated>2011-06-27T14:43:40.588-07:00</updated><title type='text'>Parsing Chess FEN string into Board setting</title><content type='html'>IF OBJECT_ID('TC58','U') IS NOT NULL BEGIN&lt;br /&gt;DROP TABLE TC58&lt;br /&gt;END&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;CREATE TABLE TC58(&lt;br /&gt;ID  INT IDENTITY PRIMARY KEY,&lt;br /&gt;Layout VARCHAR(MAX)&lt;br /&gt;)&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;--INSERT INTO TC58(Layout) SELECT 'rnbqk2r/ppppbppp/5n2/4p3/2B1P3/5Q2/PPPP1PPP/RNB1K1NR'&lt;br /&gt;--INSERT INTO TC58(Layout) SELECT 'rnbq3r/pppp2pp/8/2ppp3/2B1K3/5P2/PPP2PPP/RNB3NR'&lt;br /&gt;INSERT INTO TC58(Layout) SELECT '4r3/1k6/pN1p4/3P1p1p/3B4/3K1n2/PPP4R/8'-- w - - 7 27&lt;br /&gt;--SELECT * FROM TC58&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;select &lt;br /&gt;0,&lt;br /&gt;SUBSTRING ( Layout, 0 ,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)) ) ,&lt;br /&gt;CHARINDEX('/',Layout,0) , --8&lt;br /&gt;SUBSTRING ( Layout, CHARINDEX('/',Layout,0)+1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,0) - CHARINDEX('/',Layout,0)) ) ,&lt;br /&gt;CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1) , --17&lt;br /&gt;SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+ 1, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1) -1 ) ,&lt;br /&gt;CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) , --21&lt;br /&gt;SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)- CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) -1) ,&lt;br /&gt;CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1),  --25&lt;br /&gt;SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1) -1 ) ,&lt;br /&gt;CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) , --31&lt;br /&gt;SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) +1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - 1 ) ,&lt;br /&gt;CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) , --35&lt;br /&gt;SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) + 1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)  - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) -1 ),&lt;br /&gt;CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1) , --44&lt;br /&gt;SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1) +1 ,LEN(layout) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1))&lt;br /&gt;from TC58&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;select ID, 8 as RowID  , SUBSTRING ( Layout, 0 ,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)) ) from TC58&lt;br /&gt;union all &lt;br /&gt;select ID, 7 as RowID  ,SUBSTRING ( Layout, CHARINDEX('/',Layout,0)+1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,0) - CHARINDEX('/',Layout,0)) ) from TC58&lt;br /&gt;union all &lt;br /&gt;select ID, 6 as RowID  ,SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+ 1, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1) -1 )  from TC58&lt;br /&gt;union all &lt;br /&gt;select ID, 5 as RowID  ,SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)- CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) -1)  from TC58&lt;br /&gt;union all &lt;br /&gt;select ID, 4 as RowID  ,SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1) -1 )  from TC58&lt;br /&gt;union all &lt;br /&gt;select ID, 3 as RowID  ,SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) +1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - 1 )  from TC58&lt;br /&gt;union all &lt;br /&gt;select ID, 2 as RowID  ,SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) + 1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)  - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) -1 ) from TC58&lt;br /&gt;union all &lt;br /&gt;select ID, 1 as RowID  ,SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1) +1 ,LEN(layout) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)) from TC58&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;select ID, 8 as RowID  ,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, 0 ,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)) ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)) from TC58&lt;br /&gt;union all &lt;br /&gt;select ID, 7 as RowID  ,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,0)+1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,0) - CHARINDEX('/',Layout,0)) ) ,'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)) from TC58&lt;br /&gt;union all &lt;br /&gt;select ID, 6 as RowID  ,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+ 1, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8))  from TC58&lt;br /&gt;union all &lt;br /&gt;select ID, 5 as RowID  ,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)- CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) -1),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8))  from TC58&lt;br /&gt;union all &lt;br /&gt;select ID, 4 as RowID  ,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8))  from TC58&lt;br /&gt;union all &lt;br /&gt;select ID, 3 as RowID  ,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) +1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - 1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8))  from TC58&lt;br /&gt;union all &lt;br /&gt;select ID, 2 as RowID  ,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) + 1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)  - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)) from TC58&lt;br /&gt;union all &lt;br /&gt;select ID, 1 as RowID  ,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1) +1 ,LEN(layout) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)) from TC58&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;select ID, 8 as RowID  &lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, 0 ,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)) ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),1,1) as 'a'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, 0 ,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)) ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),2,1) as 'b'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, 0 ,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)) ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),3,1) as 'c'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, 0 ,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)) ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),4,1) as 'd'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, 0 ,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)) ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),5,1) as 'e'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, 0 ,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)) ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),6,1) as 'f'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, 0 ,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)) ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),7,1) as 'g'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, 0 ,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)) ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),8,1) as 'h'&lt;br /&gt;from TC58&lt;br /&gt;union all&lt;br /&gt;select ID, 7 as RowID  &lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,0)+1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,0) - CHARINDEX('/',Layout,0)) ) ,'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),1,1) as 'a'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,0)+1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,0) - CHARINDEX('/',Layout,0)) ) ,'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),2,1) as 'b'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,0)+1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,0) - CHARINDEX('/',Layout,0)) ) ,'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),3,1) as 'c'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,0)+1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,0) - CHARINDEX('/',Layout,0)) ) ,'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),4,1) as 'd'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,0)+1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,0) - CHARINDEX('/',Layout,0)) ) ,'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),5,1) as 'e'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,0)+1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,0) - CHARINDEX('/',Layout,0)) ) ,'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),6,1) as 'f'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,0)+1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,0) - CHARINDEX('/',Layout,0)) ) ,'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),7,1) as 'g'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,0)+1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,0) - CHARINDEX('/',Layout,0)) ) ,'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),8,1) as 'h'&lt;br /&gt;from TC58&lt;br /&gt;union all&lt;br /&gt;select ID, 6 as RowID  &lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+ 1, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),1,1) as 'a'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+ 1, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),2,1) as 'b'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+ 1, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),3,1) as 'c'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+ 1, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),4,1) as 'd'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+ 1, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),5,1) as 'e'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+ 1, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),6,1) as 'f'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+ 1, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),7,1) as 'g'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+ 1, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),8,1) as 'h'&lt;br /&gt;from TC58&lt;br /&gt;union all&lt;br /&gt;select ID, 5 as RowID  &lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)- CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) -1),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),1,1) as 'a'  &lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)- CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) -1),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),2,1) as 'b'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)- CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) -1),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),3,1) as 'c'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)- CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) -1),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),4,1) as 'd'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)- CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) -1),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),5,1) as 'e'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)- CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) -1),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),6,1) as 'f'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)- CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) -1),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),7,1) as 'g'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)- CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1) -1),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),8,1) as 'h'&lt;br /&gt;from TC58&lt;br /&gt;union all&lt;br /&gt;select ID, 4 as RowID  &lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),1,1) as 'a'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),2,1) as 'b'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),3,1) as 'c'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),4,1) as 'd'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),5,1) as 'e'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),6,1) as 'f'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),7,1) as 'g'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),8,1) as 'h'&lt;br /&gt;from TC58&lt;br /&gt;union all&lt;br /&gt;select ID, 3 as RowID  &lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) +1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - 1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),1,1) as 'a'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) +1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - 1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),2,1) as 'b'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) +1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - 1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),3,1) as 'c'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) +1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - 1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),4,1) as 'd'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) +1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - 1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),5,1) as 'e'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) +1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - 1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),6,1) as 'f'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) +1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - 1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),7,1) as 'g'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) +1,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1) - 1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),8,1) as 'h'&lt;br /&gt;from TC58&lt;br /&gt;union all&lt;br /&gt;select ID, 2 as RowID  &lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) + 1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)  - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),1,1) as 'a'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) + 1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)  - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),2,1) as 'b'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) + 1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)  - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),3,1) as 'c'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) + 1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)  - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),4,1) as 'd'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) + 1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)  - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),5,1) as 'e'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) + 1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)  - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),6,1) as 'f'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) + 1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)  - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),7,1) as 'g'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) + 1 , CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)  - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1) -1 ),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),8,1) as 'h'&lt;br /&gt;from TC58&lt;br /&gt;union all&lt;br /&gt;select ID, 1 as RowID  &lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1) +1 ,LEN(layout) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),1,1) as 'a'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1) +1 ,LEN(layout) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),2,1) as 'b'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1) +1 ,LEN(layout) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),3,1) as 'c'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1) +1 ,LEN(layout) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),4,1) as 'd'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1) +1 ,LEN(layout) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),5,1) as 'e'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1) +1 ,LEN(layout) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),6,1) as 'f'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1) +1 ,LEN(layout) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),7,1) as 'g'&lt;br /&gt;,substring(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING ( Layout, CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1) +1 ,LEN(layout) - CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,CHARINDEX('/',Layout,0)+1)+1)+1)+1)+1)+1)),'1',REPLICATE(' ',1)),'2',REPLICATE(' ',2)), '3',REPLICATE(' ',3)), '4',REPLICATE(' ',4)), '5',REPLICATE(' ',5)), '6',REPLICATE(' ',6)), '7',REPLICATE(' ',7)), '8',REPLICATE(' ',8)),8,1) as 'h'&lt;br /&gt;from TC58&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-2685763521377633910?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/2685763521377633910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=2685763521377633910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2685763521377633910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2685763521377633910'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/06/parsing-chess-fen-string-into-board.html' title='Parsing Chess FEN string into Board setting'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-7511317818504873371</id><published>2011-06-02T16:47:00.001-07:00</published><updated>2011-06-02T16:47:40.341-07:00</updated><title type='text'>Collect every index from DB to compare</title><content type='html'>if(OBJECT_ID('tempdb..#tmp')&gt;1)&lt;br /&gt; drop table #tmp&lt;br /&gt;create table #tmp (index_name nvarchar(256), index_description nvarchar(500), index_keys nvarchar(500), included_columns nvarchar(1000),filter_definition nvarchar(256))&lt;br /&gt;if(OBJECT_ID('tempdb..#tmp2')&gt;1)&lt;br /&gt; drop table #tmp2&lt;br /&gt;create table #tmp2 (dbname nvarchar(256), tablename nvarchar(256), index_name nvarchar(256), index_description nvarchar(500), index_keys nvarchar(500), included_columns nvarchar(1000),filter_definition nvarchar(256))&lt;br /&gt;&lt;br /&gt;declare @tablename nvarchar(256), @sql nvarchar(4000)&lt;br /&gt;declare tmp_cur cursor for &lt;br /&gt;select name from sys.tables where schema_id = 1&lt;br /&gt;&lt;br /&gt;open tmp_cur&lt;br /&gt;Fetch next from tmp_cur into @tablename&lt;br /&gt;&lt;br /&gt;while @@fetch_status = 0&lt;br /&gt;begin&lt;br /&gt;print @tablename&lt;br /&gt;set @sql = 'insert into #tmp (index_name , index_description , index_keys , included_columns )&lt;br /&gt;exec sp_helpindex2 '''+@tablename+'''&lt;br /&gt;&lt;br /&gt;insert into #tmp2 (dbname , tablename, index_name , index_description , index_keys , included_columns )&lt;br /&gt;select db_name(), '''+@tablename+''' , index_name , index_description , index_keys , included_columns  from #tmp&lt;br /&gt;&lt;br /&gt;truncate table #tmp&lt;br /&gt;'&lt;br /&gt;print @sql&lt;br /&gt;exec sp_executesql @sql&lt;br /&gt;&lt;br /&gt;Fetch next from tmp_cur into @tablename&lt;br /&gt;print '---'&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;close tmp_cur&lt;br /&gt;deallocate tmp_cur&lt;br /&gt;&lt;br /&gt;drop table __tmp_all_indexes&lt;br /&gt;&lt;br /&gt;select * &lt;br /&gt;into __tmp_all_indexes&lt;br /&gt;from #tmp2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-7511317818504873371?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/7511317818504873371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=7511317818504873371' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7511317818504873371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7511317818504873371'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/06/collect-every-index-from-db-to-compare.html' title='Collect every index from DB to compare'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-4123466441137376678</id><published>2011-05-27T07:10:00.000-07:00</published><updated>2011-05-27T07:10:14.340-07:00</updated><title type='text'>Building a SQL Server DBA Department</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=2394"&gt;Building a SQL Server DBA Department&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-4123466441137376678?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=2394' title='Building a SQL Server DBA Department'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/4123466441137376678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=4123466441137376678' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4123466441137376678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4123466441137376678'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/05/building-sql-server-dba-department.html' title='Building a SQL Server DBA Department'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-7630306847110994452</id><published>2011-05-25T13:00:00.000-07:00</published><updated>2011-05-25T13:00:07.024-07:00</updated><title type='text'>Find Tables With Foreign Key Constraint</title><content type='html'>&lt;a href="http://blog.sqlauthority.com/2007/09/04/sql-server-2005-find-tables-with-foreign-key-constraint-in-database/"&gt;SQL SERVER – 2005 – Find Tables With Foreign Key Constraint in Database « Journey to SQLAuthority&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-7630306847110994452?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.sqlauthority.com/2007/09/04/sql-server-2005-find-tables-with-foreign-key-constraint-in-database/' title='Find Tables With Foreign Key Constraint'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/7630306847110994452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=7630306847110994452' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7630306847110994452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7630306847110994452'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/05/find-tables-with-foreign-key-constraint.html' title='Find Tables With Foreign Key Constraint'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-6319910582061357807</id><published>2011-05-23T15:07:00.000-07:00</published><updated>2011-05-23T15:07:06.900-07:00</updated><title type='text'>Change User Default Schema</title><content type='html'>use [Databse]&lt;br /&gt;ALTER USER [CSODMGMT\DeployUser] WITH DEFAULT_SCHEMA=[DBO]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-6319910582061357807?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/6319910582061357807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=6319910582061357807' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6319910582061357807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6319910582061357807'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/05/change-user-default-schema.html' title='Change User Default Schema'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-6811970250004618918</id><published>2011-05-23T11:26:00.000-07:00</published><updated>2011-05-23T11:26:43.903-07:00</updated><title type='text'>Date and Time dimension creation and population T-SQL - SQLServerCentral</title><content type='html'>&lt;a href="http://www.sqlservercentral.com/scripts/Data+Warehousing/65762/"&gt;Date and Time dimension creation and population T-SQL - SQLServerCentral&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-6811970250004618918?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sqlservercentral.com/scripts/Data+Warehousing/65762/' title='Date and Time dimension creation and population T-SQL - SQLServerCentral'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/6811970250004618918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=6811970250004618918' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6811970250004618918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6811970250004618918'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/05/date-and-time-dimension-creation-and.html' title='Date and Time dimension creation and population T-SQL - SQLServerCentral'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-951822484716837628</id><published>2011-05-23T07:45:00.000-07:00</published><updated>2011-05-23T07:45:53.747-07:00</updated><title type='text'>Collecting SQL Server performance counter data for trending</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=2072"&gt;Collecting SQL Server performance counter data for trending&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-951822484716837628?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=2072' title='Collecting SQL Server performance counter data for trending'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/951822484716837628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=951822484716837628' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/951822484716837628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/951822484716837628'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/05/collecting-sql-server-performance.html' title='Collecting SQL Server performance counter data for trending'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-4267197750103287206</id><published>2011-05-20T13:59:00.000-07:00</published><updated>2011-05-20T13:59:33.440-07:00</updated><title type='text'>Index - sp_helpindex2 to show include columns</title><content type='html'>&lt;a href="http://www.sqlskills.com/blogs/kimberly/post/sp_helpindex2-to-show-included-columns-(20052b)-and-filtered-indexes-(2008)-which-are-not-shown-by-sp_helpindex.aspx"&gt;Kimberly L. Tripp | sp_helpindex2 to show included columns (2005+) and filtered indexes (2008) which are not shown by sp_helpindex&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-4267197750103287206?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sqlskills.com/blogs/kimberly/post/sp_helpindex2-to-show-included-columns-(20052b)-and-filtered-indexes-(2008)-which-are-not-shown-by-sp_helpindex.aspx' title='Index - sp_helpindex2 to show include columns'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/4267197750103287206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=4267197750103287206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4267197750103287206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4267197750103287206'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/05/index-sphelpindex2-to-show-include.html' title='Index - sp_helpindex2 to show include columns'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-3245005776373899608</id><published>2011-05-20T13:54:00.001-07:00</published><updated>2011-05-20T13:54:35.404-07:00</updated><title type='text'>Determine SQL Server memory use by database and object</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=2393"&gt;Determine SQL Server memory use by database and object&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-3245005776373899608?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=2393' title='Determine SQL Server memory use by database and object'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/3245005776373899608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=3245005776373899608' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3245005776373899608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3245005776373899608'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/05/determine-sql-server-memory-use-by.html' title='Determine SQL Server memory use by database and object'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-4601079851625086194</id><published>2011-05-20T13:54:00.000-07:00</published><updated>2011-05-20T13:54:18.324-07:00</updated><title type='text'>indexing - List of all index &amp; index columns in SQL Server DB - Stack Overflow</title><content type='html'>&lt;a href="http://stackoverflow.com/questions/765867/list-of-all-index-index-columns-in-sql-server-db"&gt;indexing - List of all index &amp;amp; index columns in SQL Server DB - Stack Overflow&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--select * from sys.indexes&lt;br /&gt;--select * From sys.index_columns&lt;br /&gt;&lt;br /&gt;select&lt;br /&gt;    ind.name, ind.index_id, ic.index_column_id, col.name as indexname, t.name as tablename,&lt;br /&gt;    ind.*, ic.*, col.*&lt;br /&gt;from &lt;br /&gt;    sys.indexes ind&lt;br /&gt;inner join &lt;br /&gt;    sys.index_columns ic on &lt;br /&gt;      ind.object_id = ic.object_id and ind.index_id = ic.index_id&lt;br /&gt;inner join&lt;br /&gt;    sys.columns col on&lt;br /&gt;      ic.object_id = col.object_id and ic.column_id = col.column_id &lt;br /&gt;inner join&lt;br /&gt;    sys.tables t on &lt;br /&gt;      ind.object_id = t.object_id&lt;br /&gt;where &lt;br /&gt;    ind.is_primary_key = 0 &lt;br /&gt;    and ind.is_unique = 0 &lt;br /&gt;    and ind.is_unique_constraint = 0&lt;br /&gt;    and t.is_ms_shipped = 0&lt;br /&gt;    and col.name = 'status_id'&lt;br /&gt;    and t.name = 'user_lo'&lt;br /&gt;order by&lt;br /&gt;    t.name, ind.name, ind.index_id, ic.index_column_id&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-4601079851625086194?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://stackoverflow.com/questions/765867/list-of-all-index-index-columns-in-sql-server-db' title='indexing - List of all index &amp; index columns in SQL Server DB - Stack Overflow'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/4601079851625086194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=4601079851625086194' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4601079851625086194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4601079851625086194'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/05/indexing-list-of-all-index-index.html' title='indexing - List of all index &amp; index columns in SQL Server DB - Stack Overflow'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-3276493081414957098</id><published>2011-05-04T06:57:00.000-07:00</published><updated>2011-05-04T06:57:18.541-07:00</updated><title type='text'>Performance Implications of Parameterized Queries</title><content type='html'>&lt;a href="http://www.simple-talk.com/content/article.aspx?article=1285"&gt;Performance Implications of Parameterized Queries&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-3276493081414957098?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.simple-talk.com/content/article.aspx?article=1285' title='Performance Implications of Parameterized Queries'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/3276493081414957098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=3276493081414957098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3276493081414957098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3276493081414957098'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/05/performance-implications-of.html' title='Performance Implications of Parameterized Queries'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-6103918521749786382</id><published>2011-04-29T14:30:00.001-07:00</published><updated>2011-04-29T14:30:42.671-07:00</updated><title type='text'>Dynamic Management Objects - SQLServerPedia</title><content type='html'>&lt;a href="http://sqlserverpedia.com/wiki/Dynamic_Management_Objects"&gt;Dynamic Management Objects - SQLServerPedia&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-6103918521749786382?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://sqlserverpedia.com/wiki/Dynamic_Management_Objects' title='Dynamic Management Objects - SQLServerPedia'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/6103918521749786382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=6103918521749786382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6103918521749786382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6103918521749786382'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/04/dynamic-management-objects.html' title='Dynamic Management Objects - SQLServerPedia'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-57066618512083112</id><published>2011-04-29T14:30:00.000-07:00</published><updated>2011-04-29T14:30:11.553-07:00</updated><title type='text'>DM Objects - Sys.dm exec query stats - SQLServerPedia</title><content type='html'>&lt;a href="http://sqlserverpedia.com/wiki/DM_Objects_-_Sys.dm_exec_query_stats"&gt;DM Objects - Sys.dm exec query stats - SQLServerPedia&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-57066618512083112?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://sqlserverpedia.com/wiki/DM_Objects_-_Sys.dm_exec_query_stats' title='DM Objects - Sys.dm exec query stats - SQLServerPedia'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/57066618512083112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=57066618512083112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/57066618512083112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/57066618512083112'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/04/dm-objects-sysdm-exec-query-stats.html' title='DM Objects - Sys.dm exec query stats - SQLServerPedia'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-2358289410673668595</id><published>2011-04-26T07:33:00.000-07:00</published><updated>2011-04-26T07:33:59.159-07:00</updated><title type='text'>ORDER BY Clause Enhancement and Pagination in SQL Server 2011</title><content type='html'>&lt;a href="http://www.linkedin.com/news?viewArticle=&amp;amp;articleID=490491730&amp;amp;gid=40572&amp;amp;type=member&amp;amp;item=51683795&amp;amp;articleURL=http://paresh-sqldba.blogspot.com/2011/04/order-by-clause-enhancement-and.html&amp;amp;urlhash=yail&amp;amp;goback;=.gde_40572_member_51683795"&gt;Microsoft SQL Server Developers group Group News | LinkedIn&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-2358289410673668595?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.linkedin.com/news?viewArticle=&amp;articleID=490491730&amp;gid=40572&amp;type=member&amp;item=51683795&amp;articleURL=http://paresh-sqldba.blogspot.com/2011/04/order-by-clause-enhancement-and.html&amp;urlhash=yail&amp;goback;=.gde_40572_member_51683795' title='ORDER BY Clause Enhancement and Pagination in SQL Server 2011'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/2358289410673668595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=2358289410673668595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2358289410673668595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2358289410673668595'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/04/order-by-clause-enhancement-and.html' title='ORDER BY Clause Enhancement and Pagination in SQL Server 2011'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-8179919818014986152</id><published>2011-04-26T06:58:00.000-07:00</published><updated>2011-04-26T06:58:01.382-07:00</updated><title type='text'>Find SQL Server data and log files that are almost out of space</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=2359"&gt;Find SQL Server data and log files that are almost out of space&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-8179919818014986152?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=2359' title='Find SQL Server data and log files that are almost out of space'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/8179919818014986152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=8179919818014986152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/8179919818014986152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/8179919818014986152'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/04/find-sql-server-data-and-log-files-that.html' title='Find SQL Server data and log files that are almost out of space'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-1516895067613882640</id><published>2011-04-13T07:22:00.000-07:00</published><updated>2011-04-13T07:22:03.967-07:00</updated><title type='text'>Creating I/O performance snapshots to find performance problems in SQL Server</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=2350"&gt;Creating I/O performance snapshots to find performance problems in SQL Server&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-1516895067613882640?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=2350' title='Creating I/O performance snapshots to find performance problems in SQL Server'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/1516895067613882640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=1516895067613882640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1516895067613882640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1516895067613882640'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/04/creating-io-performance-snapshots-to.html' title='Creating I/O performance snapshots to find performance problems in SQL Server'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-2759805478659386393</id><published>2011-04-13T07:14:00.000-07:00</published><updated>2011-04-13T07:14:47.990-07:00</updated><title type='text'>Five DMV Queries That Will Make You A Superhero! | Glenn Berry's SQL Server Performance</title><content type='html'>&lt;a href="http://sqlserverperformance.wordpress.com/2008/01/21/five-dmv-queries-that-will-make-you-a-superhero/"&gt;Five DMV Queries That Will Make You A Superhero! | Glenn Berry&amp;#39;s SQL Server Performance&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-2759805478659386393?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://sqlserverperformance.wordpress.com/2008/01/21/five-dmv-queries-that-will-make-you-a-superhero/' title='Five DMV Queries That Will Make You A Superhero! | Glenn Berry&apos;s SQL Server Performance'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/2759805478659386393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=2759805478659386393' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2759805478659386393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2759805478659386393'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/04/five-dmv-queries-that-will-make-you.html' title='Five DMV Queries That Will Make You A Superhero! | Glenn Berry&apos;s SQL Server Performance'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-5464610895096083787</id><published>2011-04-08T13:41:00.000-07:00</published><updated>2011-04-08T13:41:27.231-07:00</updated><title type='text'>SQL SERVER – 2005 – Database Table Partitioning Tutorial – How to Horizontal Partition Database Table « Journey to SQLAuthority</title><content type='html'>&lt;a href="http://blog.sqlauthority.com/2008/01/25/sql-server-2005-database-table-partitioning-tutorial-how-to-horizontal-partition-database-table/"&gt;SQL SERVER – 2005 – Database Table Partitioning Tutorial – How to Horizontal Partition Database Table « Journey to SQLAuthority&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-5464610895096083787?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.sqlauthority.com/2008/01/25/sql-server-2005-database-table-partitioning-tutorial-how-to-horizontal-partition-database-table/' title='SQL SERVER – 2005 – Database Table Partitioning Tutorial – How to Horizontal Partition Database Table « Journey to SQLAuthority'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/5464610895096083787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=5464610895096083787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/5464610895096083787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/5464610895096083787'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/04/sql-server-2005-database-table.html' title='SQL SERVER – 2005 – Database Table Partitioning Tutorial – How to Horizontal Partition Database Table « Journey to SQLAuthority'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-4587415304246872072</id><published>2011-04-08T10:08:00.001-07:00</published><updated>2011-04-13T08:35:21.226-07:00</updated><title type='text'>Index fragmentation and re-indexing them</title><content type='html'>SET NOCOUNT ON;&lt;br /&gt;&lt;br /&gt;declare @tbl nvarchar(100) = ''&lt;br /&gt;if(OBJECT_ID('tempdb..#tmp')&gt;1)&lt;br /&gt;drop table #tmp&lt;br /&gt;&lt;br /&gt;create table #tmp (servername nvarchar(100),dbname nvarchar(100), tblname nvarchar(100), indexid int, indexname nvarchar(1000), avg_fragmentation_in_percent numeric(15,10), string nvarchar(1000))&lt;br /&gt;&lt;br /&gt;declare @mid int , @comid int&lt;br /&gt;declare tmp_cur cursor for &lt;br /&gt;select name From sys.tables where type_desc = 'USER_TABLE' and name not like '[__]%'&lt;br /&gt;&lt;br /&gt;open tmp_cur&lt;br /&gt;Fetch next from tmp_cur into @tbl&lt;br /&gt;&lt;br /&gt;while @@fetch_status = 0&lt;br /&gt;begin&lt;br /&gt;--print @tbl&lt;br /&gt;&lt;br /&gt;--dbcc showcontig(@tbl)&lt;br /&gt;insert into #tmp&lt;br /&gt;SELECT &lt;br /&gt;@@servername,db_name(), @tbl, a.index_id, name, avg_fragmentation_in_percent,&lt;br /&gt;(case &lt;br /&gt;when avg_fragmentation_in_percent &lt; 30 and avg_fragmentation_in_percent &gt; 5 then 'ALTER INDEX '+name+' ON '+@tbl+' REORGANIZE ;'&lt;br /&gt;when avg_fragmentation_in_percent &gt; 30 then 'ALTER INDEX '+name+' ON '+@tbl+' REBUILD WITH (ONLINE=ON) ;'&lt;br /&gt;else 'go'&lt;br /&gt;end)&lt;br /&gt;FROM sys.dm_db_index_physical_stats (DB_ID(), OBJECT_ID(N'dbo.'+@tbl+''),&lt;br /&gt;NULL, NULL, NULL) AS a&lt;br /&gt;JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Fetch next from tmp_cur into @tbl&lt;br /&gt;--print '---'&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;close tmp_cur&lt;br /&gt;deallocate tmp_cur&lt;br /&gt;&lt;br /&gt;--select * from #tmp where string != 'go'&lt;br /&gt;----------------------------------------------------&lt;br /&gt;&lt;br /&gt;declare @string nvarchar(1000), @avgfrag numeric(20,15), @tblname nvarchar(100), @idx nvarchar(100)&lt;br /&gt;declare tmp_cur cursor for &lt;br /&gt;select string, avg_fragmentation_in_percent,tblname,indexname from #tmp where string != 'go'&lt;br /&gt;&lt;br /&gt;open tmp_cur&lt;br /&gt;Fetch next from tmp_cur into @string ,@avgfrag,@tblname,@idx&lt;br /&gt;&lt;br /&gt;while @@fetch_status = 0&lt;br /&gt;begin&lt;br /&gt;print '--' +@tblname+' : '+@idx+' : '+convert(nvarchar(20),@avgfrag)&lt;br /&gt;&lt;br /&gt;print @string&lt;br /&gt;print 'go'&lt;br /&gt;print 'dbcc dbreindex('''+@tblname+''','''',90)'&lt;br /&gt;print 'go'&lt;br /&gt;&lt;br /&gt;print '---'&lt;br /&gt;&lt;br /&gt;Fetch next from tmp_cur into @string, @avgfrag,@tblname,@idx&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;close tmp_cur&lt;br /&gt;deallocate tmp_cur&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-4587415304246872072?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/4587415304246872072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=4587415304246872072' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4587415304246872072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4587415304246872072'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/04/index-fragmentation-and-re-indexing.html' title='Index fragmentation and re-indexing them'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-2852780865350647229</id><published>2011-04-08T09:03:00.000-07:00</published><updated>2011-04-08T09:03:58.560-07:00</updated><title type='text'>Microsoft SQL Server 2000 Index Defragmentation Best Practices</title><content type='html'>&lt;a href="http://technet.microsoft.com/en-us/library/cc966523.aspx"&gt;Microsoft SQL Server 2000 Index Defragmentation Best Practices&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-2852780865350647229?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://technet.microsoft.com/en-us/library/cc966523.aspx' title='Microsoft SQL Server 2000 Index Defragmentation Best Practices'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/2852780865350647229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=2852780865350647229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2852780865350647229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2852780865350647229'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/04/microsoft-sql-server-2000-index.html' title='Microsoft SQL Server 2000 Index Defragmentation Best Practices'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-1269136582631708817</id><published>2011-04-08T08:57:00.000-07:00</published><updated>2011-04-08T08:57:05.797-07:00</updated><title type='text'>Reorganizing and Rebuilding Indexes</title><content type='html'>&lt;a href="http://technet.microsoft.com/en-us/library/ms189858.aspx"&gt;Reorganizing and Rebuilding Indexes&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-1269136582631708817?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://technet.microsoft.com/en-us/library/ms189858.aspx' title='Reorganizing and Rebuilding Indexes'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/1269136582631708817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=1269136582631708817' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1269136582631708817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1269136582631708817'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/04/reorganizing-and-rebuilding-indexes.html' title='Reorganizing and Rebuilding Indexes'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-1916028809745337246</id><published>2011-03-31T07:29:00.000-07:00</published><updated>2011-03-31T07:29:07.254-07:00</updated><title type='text'>High Availability Options for SQL Server 2008</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=2337"&gt;High Availability Options for SQL Server 2008&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-1916028809745337246?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=2337' title='High Availability Options for SQL Server 2008'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/1916028809745337246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=1916028809745337246' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1916028809745337246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1916028809745337246'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/03/high-availability-options-for-sql.html' title='High Availability Options for SQL Server 2008'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-2503106213542218502</id><published>2011-03-28T14:13:00.001-07:00</published><updated>2011-03-28T14:13:57.854-07:00</updated><title type='text'>function to create a random string</title><content type='html'>set ANSI_NULLS ON set QUOTED_IDENTIFIER ON &lt;br /&gt;go &lt;br /&gt;create view RandomHelper as select rand( ) as r&lt;br /&gt;GO&lt;br /&gt;CREATE function [dbo].[CreateRandomString] &lt;br /&gt;(&lt;br /&gt;@passwordLength as smallint &lt;br /&gt;) &lt;br /&gt;RETURNS varchar(100) &lt;br /&gt;AS &lt;br /&gt;Begin &lt;br /&gt;DECLARE @password varchar(100) &lt;br /&gt;declare @characters varchar(100) &lt;br /&gt;declare @count int set @characters = '' &lt;br /&gt;-- load up numbers 0 - 9 &lt;br /&gt;set @count = 48 &lt;br /&gt;&lt;br /&gt;while @count &lt;=57 &lt;br /&gt;begin &lt;br /&gt;set @characters = @characters + Cast(CHAR(@count) as char(1)) &lt;br /&gt;set @count = @count + 1 end &lt;br /&gt;-- load up uppercase letters A - Z &lt;br /&gt;set @count = 65 &lt;br /&gt;while @count &lt;=90 &lt;br /&gt;begin &lt;br /&gt;set @characters = @characters + Cast(CHAR(@count) as char(1)) &lt;br /&gt;set @count = @count + 1 end &lt;br /&gt;-- load up lowercase letters a - z &lt;br /&gt;set @count = 97 &lt;br /&gt;while @count &lt;=122 &lt;br /&gt;begin &lt;br /&gt;set @characters = @characters + Cast(CHAR(@count) as char(1)) &lt;br /&gt;set @count = @count + 1 &lt;br /&gt;end &lt;br /&gt;set @count = 0 &lt;br /&gt;set @password = '' &lt;br /&gt;while @count &lt; @passwordLength &lt;br /&gt;begin &lt;br /&gt;set @password = @password + SUBSTRING(@characters,CAST((SELECT r FROM RandomHelper)*LEN(@characters) as int)+1,1) &lt;br /&gt;set @count = @count + 1 &lt;br /&gt;end &lt;br /&gt;RETURN @password &lt;br /&gt;end&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;SELECT dbo.CreateRandomString(10)&lt;br /&gt;go&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-2503106213542218502?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/2503106213542218502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=2503106213542218502' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2503106213542218502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2503106213542218502'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/03/function-to-create-random-string.html' title='function to create a random string'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-8649214935444277507</id><published>2011-03-28T14:04:00.000-07:00</published><updated>2011-03-28T14:04:37.170-07:00</updated><title type='text'>DBCC SHOWCONTIG (Transact-SQL)</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/library/ms175008.aspx"&gt;DBCC SHOWCONTIG (Transact-SQL)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-8649214935444277507?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://msdn.microsoft.com/en-us/library/ms175008.aspx' title='DBCC SHOWCONTIG (Transact-SQL)'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/8649214935444277507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=8649214935444277507' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/8649214935444277507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/8649214935444277507'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/03/dbcc-showcontig-transact-sql.html' title='DBCC SHOWCONTIG (Transact-SQL)'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-4798612610982236288</id><published>2011-03-25T08:43:00.001-07:00</published><updated>2011-03-28T09:20:05.200-07:00</updated><title type='text'>The Rambling DBA: Jonathan Kehayias : Digging into the SQL Plan Cache: Finding Missing Indexes</title><content type='html'>&lt;a href="http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/07/27/digging-into-the-sql-plan-cache-finding-missing-indexes.aspx"&gt;The Rambling DBA: Jonathan Kehayias : Digging into the SQL Plan Cache: Finding Missing Indexes&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;WITH XMLNAMESPACES  &lt;br /&gt;   (DEFAULT 'http://schemas.microsoft.com/sqlserver/2004/07/showplan') &lt;br /&gt;    &lt;br /&gt;SELECT query_plan, &lt;br /&gt;       n.value('(@StatementText)[1]', 'VARCHAR(4000)') AS sql_text, &lt;br /&gt;       n.value('(//MissingIndexGroup/@Impact)[1]', 'FLOAT') AS impact, &lt;br /&gt;       DB_ID(REPLACE(REPLACE(n.value('(//MissingIndex/@Database)[1]', 'VARCHAR(128)'),'[',''),']','')) AS database_id, &lt;br /&gt;       OBJECT_ID(n.value('(//MissingIndex/@Database)[1]', 'VARCHAR(128)') + '.' + &lt;br /&gt;           n.value('(//MissingIndex/@Schema)[1]', 'VARCHAR(128)') + '.' + &lt;br /&gt;           n.value('(//MissingIndex/@Table)[1]', 'VARCHAR(128)')) AS OBJECT_ID, &lt;br /&gt;       n.value('(//MissingIndex/@Database)[1]', 'VARCHAR(128)') + '.' + &lt;br /&gt;           n.value('(//MissingIndex/@Schema)[1]', 'VARCHAR(128)') + '.' + &lt;br /&gt;           n.value('(//MissingIndex/@Table)[1]', 'VARCHAR(128)')  &lt;br /&gt;       AS statement, &lt;br /&gt;       (   SELECT DISTINCT c.value('(@Name)[1]', 'VARCHAR(128)') + ', ' &lt;br /&gt;           FROM n.nodes('//ColumnGroup') AS t(cg) &lt;br /&gt;           CROSS APPLY cg.nodes('Column') AS r(c) &lt;br /&gt;           WHERE cg.value('(@Usage)[1]', 'VARCHAR(128)') = 'EQUALITY' &lt;br /&gt;           FOR  XML PATH('') &lt;br /&gt;       ) AS equality_columns, &lt;br /&gt;        (  SELECT DISTINCT c.value('(@Name)[1]', 'VARCHAR(128)') + ', ' &lt;br /&gt;           FROM n.nodes('//ColumnGroup') AS t(cg) &lt;br /&gt;           CROSS APPLY cg.nodes('Column') AS r(c) &lt;br /&gt;           WHERE cg.value('(@Usage)[1]', 'VARCHAR(128)') = 'INEQUALITY' &lt;br /&gt;           FOR  XML PATH('') &lt;br /&gt;       ) AS inequality_columns, &lt;br /&gt;       (   SELECT DISTINCT c.value('(@Name)[1]', 'VARCHAR(128)') + ', ' &lt;br /&gt;           FROM n.nodes('//ColumnGroup') AS t(cg) &lt;br /&gt;           CROSS APPLY cg.nodes('Column') AS r(c) &lt;br /&gt;           WHERE cg.value('(@Usage)[1]', 'VARCHAR(128)') = 'INCLUDE' &lt;br /&gt;           FOR  XML PATH('') &lt;br /&gt;       ) AS include_columns &lt;br /&gt;INTO #MissingIndexInfo &lt;br /&gt;FROM  &lt;br /&gt;( &lt;br /&gt;   SELECT query_plan &lt;br /&gt;   FROM (    &lt;br /&gt;           SELECT DISTINCT plan_handle &lt;br /&gt;           FROM sys.dm_exec_query_stats WITH(NOLOCK)  &lt;br /&gt;         ) AS qs &lt;br /&gt;       OUTER APPLY sys.dm_exec_query_plan(qs.plan_handle) tp     &lt;br /&gt;   WHERE tp.query_plan.exist('//MissingIndex')=1 &lt;br /&gt;) AS tab (query_plan) &lt;br /&gt;CROSS APPLY query_plan.nodes('//StmtSimple') AS q(n) &lt;br /&gt;WHERE n.exist('QueryPlan/MissingIndexes') = 1 &lt;br /&gt;&lt;br /&gt;-- Trim trailing comma from lists &lt;br /&gt;UPDATE #MissingIndexInfo &lt;br /&gt;SET equality_columns = LEFT(equality_columns,LEN(equality_columns)-1), &lt;br /&gt;   inequality_columns = LEFT(inequality_columns,LEN(inequality_columns)-1), &lt;br /&gt;   include_columns = LEFT(include_columns,LEN(include_columns)-1) &lt;br /&gt;    &lt;br /&gt;SELECT * &lt;br /&gt;FROM #MissingIndexInfo &lt;br /&gt;&lt;br /&gt;DROP TABLE #MissingIndexInfo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-4798612610982236288?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/07/27/digging-into-the-sql-plan-cache-finding-missing-indexes.aspx' title='The Rambling DBA: Jonathan Kehayias : Digging into the SQL Plan Cache: Finding Missing Indexes'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/4798612610982236288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=4798612610982236288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4798612610982236288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4798612610982236288'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/03/rambling-dba-jonathan-kehayias-digging.html' title='The Rambling DBA: Jonathan Kehayias : Digging into the SQL Plan Cache: Finding Missing Indexes'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-7695481420752954391</id><published>2011-03-25T08:43:00.000-07:00</published><updated>2011-03-28T09:20:31.623-07:00</updated><title type='text'>Find Missing Indexes in Stored Procs with T-SQL « SQL Fool</title><content type='html'>&lt;a href="http://sqlfool.com/2009/03/find-missing-indexes/"&gt;Find Missing Indexes in Stored Procs with T-SQL « SQL Fool&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;use master&lt;br /&gt;go&lt;br /&gt;&lt;br /&gt;/* Create a stored procedure skeleton */&lt;br /&gt;IF OBJECTPROPERTY(OBJECT_ID('dbo.dba_missingIndexStoredProc_sp'), N'IsProcedure') IS Null&lt;br /&gt;BEGIN&lt;br /&gt;    EXECUTE ('Create Procedure dbo.dba_missingIndexStoredProc_sp As Print ''Hello World!''')&lt;br /&gt;    RAISERROR('Procedure dba_missingIndexStoredProc_sp created.', 10, 1);&lt;br /&gt;END;&lt;br /&gt;Go&lt;br /&gt; &lt;br /&gt;/* Drop our table if it already exists */&lt;br /&gt;IF Exists(SELECT OBJECT_ID FROM sys.tables WHERE [name] = N'dba_missingIndexStoredProc')&lt;br /&gt;BEGIN&lt;br /&gt;    DROP TABLE dbo.dba_missingIndexStoredProc&lt;br /&gt;    PRINT 'dba_missingIndexStoredProc table dropped!';&lt;br /&gt;END&lt;br /&gt; &lt;br /&gt;/* Create our table */&lt;br /&gt;CREATE TABLE dbo.dba_missingIndexStoredProc&lt;br /&gt;(&lt;br /&gt;      missingIndexSP_id INT IDENTITY(1,1)   Not Null&lt;br /&gt;    , databaseName      VARCHAR(128)        Not Null&lt;br /&gt;    , databaseID        INT                 Not Null&lt;br /&gt;    , objectName        VARCHAR(128)        Not Null&lt;br /&gt;    , objectID          INT                 Not Null&lt;br /&gt;    , query_plan        xml                 Not Null&lt;br /&gt;    , executionDate     SMALLDATETIME       Not Null&lt;br /&gt; &lt;br /&gt;    CONSTRAINT PK_missingIndexStoredProc&lt;br /&gt;        PRIMARY KEY CLUSTERED(missingIndexSP_id)&lt;br /&gt;);&lt;br /&gt; &lt;br /&gt;PRINT 'dba_missingIndexStoredProc Table Created';&lt;br /&gt; &lt;br /&gt;/* Configure our settings */&lt;br /&gt;SET ANSI_Nulls ON;&lt;br /&gt;SET Quoted_Identifier ON;&lt;br /&gt;Go&lt;br /&gt; &lt;br /&gt;ALTER PROCEDURE dbo.dba_missingIndexStoredProc_sp&lt;br /&gt; &lt;br /&gt;        /* Declare Parameters */&lt;br /&gt;            @lastExecuted_inDays    INT = 7&lt;br /&gt;          , @minExecutionCount      INT = 7&lt;br /&gt;          , @logResults             BIT = 1&lt;br /&gt;          , @displayResults         BIT = 0&lt;br /&gt; &lt;br /&gt;AS&lt;br /&gt;/*********************************************************************************&lt;br /&gt;    Name:       dba_missingIndexStoredProc_sp&lt;br /&gt; &lt;br /&gt;    Author:     Michelle Ufford, http://sqlfool.com&lt;br /&gt; &lt;br /&gt;    Purpose:    Retrieves stored procedures with missing indexes in their&lt;br /&gt;                cached query plans.&lt;br /&gt; &lt;br /&gt;                @lastExecuted_inDays = number of days old the cached query plan&lt;br /&gt;                                       can be to still appear in the results;&lt;br /&gt;                                       the HIGHER the number, the longer the&lt;br /&gt;                                       execution time.&lt;br /&gt; &lt;br /&gt;                @minExecutionCount = minimum number of executions the cached&lt;br /&gt;                                     query plan can have to still appear &lt;br /&gt;                                     in the results; the LOWER the number,&lt;br /&gt;                                     the longer the execution time.&lt;br /&gt; &lt;br /&gt;                @logResults = store results in dba_missingIndexStoredProc&lt;br /&gt; &lt;br /&gt;                @displayResults = return results to the caller&lt;br /&gt; &lt;br /&gt;    Notes:      This is not 100% guaranteed to catch all missing indexes in&lt;br /&gt;                a stored procedure.  It will only catch it if the stored proc's&lt;br /&gt;                query plan is still in cache.  Run regularly to help minimize&lt;br /&gt;                the chance of missing a proc.&lt;br /&gt; &lt;br /&gt;    Called by:  DBA and/or SQL Agent Job&lt;br /&gt; &lt;br /&gt;    Date        User    Description&lt;br /&gt;    ----------------------------------------------------------------------------&lt;br /&gt;    2009-03-02  MFU     Initial Release for public consumption&lt;br /&gt;*********************************************************************************&lt;br /&gt;    Exec dbo.dba_missingIndexStoredProc_sp&lt;br /&gt;          @lastExecuted_inDays  = 30&lt;br /&gt;        , @minExecutionCount    = 5&lt;br /&gt;        , @logResults           = 1&lt;br /&gt;        , @displayResults       = 1;&lt;br /&gt;*********************************************************************************/&lt;br /&gt; &lt;br /&gt;SET NOCOUNT ON;&lt;br /&gt;SET XACT_Abort ON;&lt;br /&gt;SET Ansi_Padding ON;&lt;br /&gt;SET Ansi_Warnings ON;&lt;br /&gt;SET ArithAbort ON;&lt;br /&gt;SET Concat_Null_Yields_Null ON;&lt;br /&gt;SET Numeric_RoundAbort OFF;&lt;br /&gt; &lt;br /&gt;BEGIN&lt;br /&gt; &lt;br /&gt;    /* Declare Variables */&lt;br /&gt;    DECLARE @currentDateTime SMALLDATETIME;&lt;br /&gt; &lt;br /&gt;    SET @currentDateTime = GETDATE();&lt;br /&gt; &lt;br /&gt;    DECLARE @plan_handles TABLE&lt;br /&gt;    (&lt;br /&gt;        plan_handle     VARBINARY(64)   Not Null&lt;br /&gt;    );&lt;br /&gt; &lt;br /&gt;    CREATE TABLE #missingIndexes&lt;br /&gt;    (&lt;br /&gt;          databaseID    INT             Not Null&lt;br /&gt;        , objectID      INT             Not Null&lt;br /&gt;        , query_plan    xml             Not Null&lt;br /&gt; &lt;br /&gt;        --CONSTRAINT PK_temp_missingIndexes PRIMARY KEY CLUSTERED&lt;br /&gt;        --(&lt;br /&gt;        --    databaseID, objectID&lt;br /&gt;        --)&lt;br /&gt;    );&lt;br /&gt; &lt;br /&gt;    BEGIN Try&lt;br /&gt; &lt;br /&gt;        /* Perform some data validation */&lt;br /&gt;        IF @logResults = 0 And @displayResults = 0&lt;br /&gt;        BEGIN&lt;br /&gt; &lt;br /&gt;            /* Log the fact that there were open transactions */&lt;br /&gt;            EXECUTE dbo.dba_logError_sp&lt;br /&gt;                  @errorType            = 'app'&lt;br /&gt;                , @app_errorProcedure   = 'dba_missingIndexStoredProc_sp'&lt;br /&gt;                , @app_errorMessage     = '@logResults = 0 and @displayResults = 0; no action taken, exiting stored proc.'&lt;br /&gt;                , @forceExit            = 1&lt;br /&gt;                , @returnError          = 1;  &lt;br /&gt; &lt;br /&gt;        END;&lt;br /&gt; &lt;br /&gt;        BEGIN TRANSACTION;&lt;br /&gt; &lt;br /&gt;        /* Retrieve distinct plan handles to minimize dm_exec_query_plan lookups */&lt;br /&gt;        INSERT INTO @plan_handles&lt;br /&gt;        SELECT DISTINCT plan_handle&lt;br /&gt;        FROM sys.dm_exec_query_stats&lt;br /&gt;        WHERE last_execution_time &gt; DATEADD(DAY, -@lastExecuted_inDays, @currentDateTime)&lt;br /&gt;            And execution_count &gt; @minExecutionCount;&lt;br /&gt; &lt;br /&gt;        WITH xmlNameSpaces (&lt;br /&gt;            DEFAULT 'http://schemas.microsoft.com/sqlserver/2004/07/showplan'&lt;br /&gt;        )&lt;br /&gt; &lt;br /&gt;        /* Retrieve our query plan's XML if there's a missing index */&lt;br /&gt;        INSERT INTO #missingIndexes&lt;br /&gt;        SELECT deqp.[dbid]&lt;br /&gt;            , deqp.objectid&lt;br /&gt;            , deqp.query_plan &lt;br /&gt;        FROM @plan_handles AS ph&lt;br /&gt;        Cross Apply sys.dm_exec_query_plan(ph.plan_handle) AS deqp &lt;br /&gt;        WHERE deqp.query_plan.exist('//MissingIndex') = 1&lt;br /&gt;            And deqp.objectid IS Not Null;&lt;br /&gt; &lt;br /&gt;        /* Do we want to store the results of our process? */&lt;br /&gt;        IF @logResults = 1&lt;br /&gt;        BEGIN&lt;br /&gt;            INSERT INTO dbo.dba_missingIndexStoredProc&lt;br /&gt;            EXECUTE sp_msForEachDB 'Use [?]; &lt;br /&gt;                                    Select ''?''&lt;br /&gt;                                        , mi.databaseID&lt;br /&gt;                                        , Object_Name(o.object_id)&lt;br /&gt;                                        , o.object_id&lt;br /&gt;                                        , mi.query_plan&lt;br /&gt;                                        , GetDate()&lt;br /&gt;                                    From sys.objects As o &lt;br /&gt;                                    Join #missingIndexes As mi &lt;br /&gt;                                        On o.object_id = mi.objectID &lt;br /&gt;                                    Where databaseID = DB_ID();';&lt;br /&gt; &lt;br /&gt;        END&lt;br /&gt;        /* We're not logging it, so let's display it */&lt;br /&gt;        ELSE&lt;br /&gt;        BEGIN&lt;br /&gt;            EXECUTE sp_msForEachDB 'Use [?]; &lt;br /&gt;                                    Select ''?''&lt;br /&gt;                                        , mi.databaseID&lt;br /&gt;                                        , Object_Name(o.object_id)&lt;br /&gt;                                        , o.object_id&lt;br /&gt;                                        , mi.query_plan&lt;br /&gt;                                        , GetDate()&lt;br /&gt;                                    From sys.objects As o &lt;br /&gt;                                    Join #missingIndexes As mi &lt;br /&gt;                                        On o.object_id = mi.objectID &lt;br /&gt;                                    Where databaseID = DB_ID();';&lt;br /&gt;        END;&lt;br /&gt; &lt;br /&gt;        /* See above; this part will only work if we've &lt;br /&gt;           logged our data. */&lt;br /&gt;        IF @displayResults = 1 And @logResults = 1&lt;br /&gt;        BEGIN&lt;br /&gt;            SELECT *&lt;br /&gt;            FROM dbo.dba_missingIndexStoredProc&lt;br /&gt;            WHERE executionDate &gt;= @currentDateTime;&lt;br /&gt;        END;&lt;br /&gt; &lt;br /&gt;        /* If you have an open transaction, commit it */&lt;br /&gt;        IF @@TRANCOUNT &gt; 0&lt;br /&gt;            COMMIT TRANSACTION;&lt;br /&gt; &lt;br /&gt;    END Try&lt;br /&gt;    BEGIN Catch&lt;br /&gt; &lt;br /&gt;        /* Whoops, there was an error... rollback! */&lt;br /&gt;        IF @@TRANCOUNT &gt; 0&lt;br /&gt;            ROLLBACK TRANSACTION;&lt;br /&gt; &lt;br /&gt;        /* Return an error message and log it */&lt;br /&gt;        EXECUTE dbo.dba_logError_sp;&lt;br /&gt; &lt;br /&gt;    END Catch;&lt;br /&gt; &lt;br /&gt;    /* Clean-Up! */&lt;br /&gt;    DROP TABLE #missingIndexes;&lt;br /&gt; &lt;br /&gt;    SET NOCOUNT OFF;&lt;br /&gt;    RETURN 0;&lt;br /&gt;END&lt;br /&gt;Go&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IF OBJECTPROPERTY(OBJECT_ID('dbo.dba_logError_sp'), N'IsProcedure') = 1&lt;br /&gt;BEGIN&lt;br /&gt;    DROP PROCEDURE dbo.dba_logError_sp;&lt;br /&gt;    PRINT 'Procedure dba_logError_sp dropped';&lt;br /&gt;END;&lt;br /&gt;Go&lt;br /&gt; &lt;br /&gt;IF OBJECTPROPERTY(OBJECT_ID('dbo.dba_errorLog'), N'IsTable') IS Null&lt;br /&gt;BEGIN&lt;br /&gt; &lt;br /&gt;    CREATE TABLE dbo.dba_errorLog&lt;br /&gt;    (         errorLog_id       INT IDENTITY(1,1) &lt;br /&gt;            , errorType         CHAR(3)     &lt;br /&gt;                CONSTRAINT [DF_errorLog_errorType] DEFAULT 'sys' &lt;br /&gt;            , errorDate         DATETIME &lt;br /&gt;                CONSTRAINT [DF_errorLog_errorDate] DEFAULT(GETDATE())&lt;br /&gt;            , errorLine         INT&lt;br /&gt;            , errorMessage      NVARCHAR(4000)&lt;br /&gt;            , errorNumber       INT&lt;br /&gt;            , errorProcedure    NVARCHAR(126)&lt;br /&gt;            , procParameters    NVARCHAR(4000)&lt;br /&gt;            , errorSeverity     INT&lt;br /&gt;            , errorState        INT&lt;br /&gt;            , databaseName      NVARCHAR(255)&lt;br /&gt;        CONSTRAINT PK_errorLog_errorLogID PRIMARY KEY CLUSTERED&lt;br /&gt;        (&lt;br /&gt;            errorLog_id &lt;br /&gt;        )&lt;br /&gt;    );&lt;br /&gt; &lt;br /&gt;    PRINT 'Table dba_errorLog created';&lt;br /&gt; &lt;br /&gt;END;&lt;br /&gt;Go&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;SET ANSI_Nulls ON;&lt;br /&gt;SET Ansi_Padding ON;&lt;br /&gt;SET Ansi_Warnings ON;&lt;br /&gt;SET ArithAbort ON;&lt;br /&gt;SET Concat_Null_Yields_Null ON;&lt;br /&gt;SET NOCOUNT ON;&lt;br /&gt;SET Numeric_RoundAbort OFF;&lt;br /&gt;SET Quoted_Identifier ON;&lt;br /&gt;Go&lt;br /&gt; &lt;br /&gt;CREATE PROCEDURE dbo.dba_logError_sp&lt;br /&gt;(&lt;br /&gt;    /* Declare Parameters */&lt;br /&gt;      @errorType            CHAR(3)         = 'sys'&lt;br /&gt;    , @app_errorProcedure   VARCHAR(50)     = ''&lt;br /&gt;    , @app_errorMessage     NVARCHAR(4000)  = ''&lt;br /&gt;    , @procParameters       NVARCHAR(4000)  = ''&lt;br /&gt;    , @userFriendly         BIT             = 0&lt;br /&gt;    , @forceExit            BIT             = 1&lt;br /&gt;    , @returnError          BIT             = 1&lt;br /&gt;)&lt;br /&gt;AS&lt;br /&gt;/***************************************************************&lt;br /&gt;    Name:       dba_logError_sp&lt;br /&gt; &lt;br /&gt;    Author:     Michelle F. Ufford, http://sqlfool.com&lt;br /&gt; &lt;br /&gt;    Purpose:    Retrieves error information and logs in the &lt;br /&gt;                        dba_errorLog table.&lt;br /&gt; &lt;br /&gt;        @errorType = options are "app" or "sys"; "app" are custom &lt;br /&gt;                application errors, i.e. business logic errors;&lt;br /&gt;                "sys" are system errors, i.e. PK errors&lt;br /&gt; &lt;br /&gt;        @app_errorProcedure = stored procedure name, &lt;br /&gt;                needed for app errors&lt;br /&gt; &lt;br /&gt;        @app_errorMessage = custom app error message&lt;br /&gt; &lt;br /&gt;        @procParameters = optional; log the parameters that were passed&lt;br /&gt;                to the proc that resulted in an error&lt;br /&gt; &lt;br /&gt;        @userFriendly = displays a generic error message if = 1&lt;br /&gt; &lt;br /&gt;        @forceExit = forces the proc to rollback and exit; &lt;br /&gt;                mostly useful for application errors.&lt;br /&gt; &lt;br /&gt;        @returnError = returns the error to the calling app if = 1&lt;br /&gt; &lt;br /&gt;    Called by: Another stored procedure&lt;br /&gt; &lt;br /&gt;    Date        Initials    Description&lt;br /&gt; ----------------------------------------------------------------------------&lt;br /&gt;    2008-12-16  MFU         Initial Release&lt;br /&gt;****************************************************************&lt;br /&gt;    Exec dbo.dba_logError_sp&lt;br /&gt;        @errorType          = 'app'&lt;br /&gt;      , @app_errorProcedure = 'someTableInsertProcName'&lt;br /&gt;      , @app_errorMessage   = 'Some app-specific error message'&lt;br /&gt;      , @userFriendly       = 1&lt;br /&gt;      , @forceExit          = 1&lt;br /&gt;      , @returnError        = 1;&lt;br /&gt;****************************************************************/&lt;br /&gt; &lt;br /&gt;SET NOCOUNT ON;&lt;br /&gt;SET XACT_Abort ON;&lt;br /&gt; &lt;br /&gt;BEGIN&lt;br /&gt; &lt;br /&gt;    /* Declare Variables */&lt;br /&gt;    DECLARE @errorNumber            INT&lt;br /&gt;            , @errorProcedure       VARCHAR(50)&lt;br /&gt;            , @dbName               sysname&lt;br /&gt;            , @errorLine            INT&lt;br /&gt;            , @errorMessage         NVARCHAR(4000)&lt;br /&gt;            , @errorSeverity        INT&lt;br /&gt;            , @errorState           INT&lt;br /&gt;            , @errorReturnMessage   NVARCHAR(4000)&lt;br /&gt;            , @errorReturnSeverity  INT&lt;br /&gt;            , @currentDateTime      SMALLDATETIME;&lt;br /&gt; &lt;br /&gt;    DECLARE @errorReturnID TABLE (errorID VARCHAR(10));&lt;br /&gt; &lt;br /&gt;    /* Initialize Variables */&lt;br /&gt;    SELECT @currentDateTime = GETDATE();&lt;br /&gt; &lt;br /&gt;    /* Capture our error details */&lt;br /&gt;    IF @errorType = 'sys' &lt;br /&gt;    BEGIN&lt;br /&gt; &lt;br /&gt;        /* Get our system error details and hold it */&lt;br /&gt;        SELECT &lt;br /&gt;              @errorNumber      = Error_Number()&lt;br /&gt;            , @errorProcedure   = Error_Procedure()&lt;br /&gt;            , @dbName           = DB_NAME()&lt;br /&gt;            , @errorLine        = Error_Line()&lt;br /&gt;            , @errorMessage     = Error_Message()&lt;br /&gt;            , @errorSeverity    = Error_Severity()&lt;br /&gt;            , @errorState       = Error_State() ;&lt;br /&gt; &lt;br /&gt;    END&lt;br /&gt;    ELSE&lt;br /&gt;    BEGIN&lt;br /&gt; &lt;br /&gt;     /* Get our custom app error details and hold it */&lt;br /&gt;        SELECT &lt;br /&gt;              @errorNumber      = 0&lt;br /&gt;            , @errorProcedure   = @app_errorProcedure&lt;br /&gt;            , @dbName           = DB_NAME()&lt;br /&gt;            , @errorLine        = 0&lt;br /&gt;            , @errorMessage     = @app_errorMessage&lt;br /&gt;            , @errorSeverity    = 0&lt;br /&gt;            , @errorState       = 0 ;&lt;br /&gt; &lt;br /&gt;    END;&lt;br /&gt; &lt;br /&gt;    /* And keep a copy for our logs */&lt;br /&gt;    INSERT INTO dbo.dba_errorLog&lt;br /&gt;    (&lt;br /&gt;          errorType&lt;br /&gt;        , errorDate&lt;br /&gt;        , errorLine&lt;br /&gt;        , errorMessage&lt;br /&gt;        , errorNumber&lt;br /&gt;        , errorProcedure&lt;br /&gt;        , procParameters&lt;br /&gt;        , errorSeverity&lt;br /&gt;        , errorState&lt;br /&gt;        , databaseName&lt;br /&gt; )&lt;br /&gt;    OUTPUT Inserted.errorLog_id INTO @errorReturnID&lt;br /&gt;    VALUES&lt;br /&gt;    (&lt;br /&gt;          @errorType&lt;br /&gt;        , @currentDateTime&lt;br /&gt;        , @errorLine&lt;br /&gt;        , @errorMessage&lt;br /&gt;        , @errorNumber&lt;br /&gt;        , @errorProcedure&lt;br /&gt;        , @procParameters&lt;br /&gt;        , @errorSeverity&lt;br /&gt;        , @errorState&lt;br /&gt;        , @dbName&lt;br /&gt;    );&lt;br /&gt; &lt;br /&gt;    /* Should we display a user friendly message to the application? */&lt;br /&gt;    IF @userFriendly = 1&lt;br /&gt;        SELECT @errorReturnMessage = 'An error has occurred in the database (' + errorID + ')'&lt;br /&gt;        FROM @errorReturnID;&lt;br /&gt;    ELSE &lt;br /&gt;        SELECT @errorReturnMessage = @errorMessage;&lt;br /&gt; &lt;br /&gt;    /* Do we want to force the application to exit? */&lt;br /&gt;    IF @forceExit = 1&lt;br /&gt;        SELECT @errorReturnSeverity = 15&lt;br /&gt;    ELSE&lt;br /&gt;        SELECT @errorReturnSeverity = @errorSeverity;&lt;br /&gt; &lt;br /&gt;    /* Should we return an error message to the calling proc? */&lt;br /&gt;    IF @returnError = 1&lt;br /&gt;        RAISERROR &lt;br /&gt;        (&lt;br /&gt;              @errorReturnMessage&lt;br /&gt;            , @errorReturnSeverity&lt;br /&gt;            , 1&lt;br /&gt;        ) WITH NoWait;&lt;br /&gt; &lt;br /&gt;    SET NOCOUNT OFF;&lt;br /&gt;    RETURN 0;&lt;br /&gt; &lt;br /&gt;END&lt;br /&gt;Go&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-7695481420752954391?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://sqlfool.com/2009/03/find-missing-indexes/' title='Find Missing Indexes in Stored Procs with T-SQL « SQL Fool'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/7695481420752954391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=7695481420752954391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7695481420752954391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7695481420752954391'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/03/find-missing-indexes-in-stored-procs.html' title='Find Missing Indexes in Stored Procs with T-SQL « SQL Fool'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-7438149412140034889</id><published>2011-03-17T07:01:00.000-07:00</published><updated>2011-03-17T07:01:03.924-07:00</updated><title type='text'>How to Identify I/O Bottlenecks in MS SQL Server</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=2329"&gt;How to Identify I/O Bottlenecks in MS SQL Server&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-7438149412140034889?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=2329' title='How to Identify I/O Bottlenecks in MS SQL Server'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/7438149412140034889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=7438149412140034889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7438149412140034889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7438149412140034889'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/03/how-to-identify-io-bottlenecks-in-ms.html' title='How to Identify I/O Bottlenecks in MS SQL Server'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-3299917913602348898</id><published>2011-03-07T07:20:00.000-08:00</published><updated>2011-03-07T07:20:00.090-08:00</updated><title type='text'>Understanding and Using Parallelism in SQL Server</title><content type='html'>&lt;a href="http://www.simple-talk.com/sql/learn-sql-server/understanding-and-using-parallelism-in-sql-server/?utm_source=simpletalk&amp;amp;utm_medium=email-main&amp;amp;utm_content=Parallelism-20110307&amp;amp;utm_campaign=SQL"&gt;Understanding and Using Parallelism in SQL Server&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-3299917913602348898?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.simple-talk.com/sql/learn-sql-server/understanding-and-using-parallelism-in-sql-server/?utm_source=simpletalk&amp;utm_medium=email-main&amp;utm_content=Parallelism-20110307&amp;utm_campaign=SQL' title='Understanding and Using Parallelism in SQL Server'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/3299917913602348898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=3299917913602348898' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3299917913602348898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3299917913602348898'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/03/understanding-and-using-parallelism-in.html' title='Understanding and Using Parallelism in SQL Server'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-7578547703594683569</id><published>2011-03-04T11:08:00.000-08:00</published><updated>2011-03-04T11:08:58.872-08:00</updated><title type='text'>How to Track Down Deadlocks Using SQL Server 2005 Profiler</title><content type='html'>&lt;a href="http://www.simple-talk.com/sql/learn-sql-server/how-to-track-down-deadlocks-using-sql-server-2005-profiler/"&gt;How to Track Down Deadlocks Using SQL Server 2005 Profiler&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-7578547703594683569?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.simple-talk.com/sql/learn-sql-server/how-to-track-down-deadlocks-using-sql-server-2005-profiler/' title='How to Track Down Deadlocks Using SQL Server 2005 Profiler'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/7578547703594683569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=7578547703594683569' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7578547703594683569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7578547703594683569'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/03/how-to-track-down-deadlocks-using-sql.html' title='How to Track Down Deadlocks Using SQL Server 2005 Profiler'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-2352190292150084941</id><published>2011-03-02T08:33:00.000-08:00</published><updated>2011-03-02T08:33:46.255-08:00</updated><title type='text'>Identify Missing Indexes Using SQL Server DMVs</title><content type='html'>&lt;a href="http://www.sql-server-performance.com/articles/per/Identify_Missing_Indexes_Using_SQL_Server_DMVs_p1.aspx"&gt;Identify Missing Indexes Using SQL Server DMVs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-2352190292150084941?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sql-server-performance.com/articles/per/Identify_Missing_Indexes_Using_SQL_Server_DMVs_p1.aspx' title='Identify Missing Indexes Using SQL Server DMVs'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/2352190292150084941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=2352190292150084941' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2352190292150084941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2352190292150084941'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/03/identify-missing-indexes-using-sql.html' title='Identify Missing Indexes Using SQL Server DMVs'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-7680723572004004105</id><published>2011-02-28T09:33:00.000-08:00</published><updated>2011-02-28T09:33:51.793-08:00</updated><title type='text'>Add Command Prompt Here Shortcut to Windows Explorer</title><content type='html'>&lt;a href="http://www.petri.co.il/add_command_prompt_here_shortcut_to_windows_explorer.htm"&gt;Add Command Prompt Here Shortcut to Windows Explorer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;cmd line here&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-7680723572004004105?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.petri.co.il/add_command_prompt_here_shortcut_to_windows_explorer.htm' title='Add Command Prompt Here Shortcut to Windows Explorer'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/7680723572004004105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=7680723572004004105' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7680723572004004105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7680723572004004105'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/02/add-command-prompt-here-shortcut-to.html' title='Add Command Prompt Here Shortcut to Windows Explorer'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-6318856918140695689</id><published>2011-02-24T06:54:00.000-08:00</published><updated>2011-02-24T06:54:51.342-08:00</updated><title type='text'>Using the SSMS Query Editor in SQLCMD Mode</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=2311"&gt;Using the SSMS Query Editor in SQLCMD Mode&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-6318856918140695689?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=2311' title='Using the SSMS Query Editor in SQLCMD Mode'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/6318856918140695689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=6318856918140695689' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6318856918140695689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6318856918140695689'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/02/using-ssms-query-editor-in-sqlcmd-mode.html' title='Using the SSMS Query Editor in SQLCMD Mode'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-7005042894235129887</id><published>2011-02-22T07:00:00.000-08:00</published><updated>2011-02-22T07:00:53.459-08:00</updated><title type='text'>Step By Step Log-Shipping Configuration for SQL Server</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=2301"&gt;Step By Step Log-Shipping Configuration for SQL Server&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-7005042894235129887?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=2301' title='Step By Step Log-Shipping Configuration for SQL Server'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/7005042894235129887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=7005042894235129887' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7005042894235129887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7005042894235129887'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/02/step-by-step-log-shipping-configuration.html' title='Step By Step Log-Shipping Configuration for SQL Server'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-1410213023539584783</id><published>2011-02-18T08:29:00.000-08:00</published><updated>2011-02-18T08:29:51.362-08:00</updated><title type='text'>10 Reasons Why You Need To Establish Your Online Identity</title><content type='html'>&lt;a href="http://www.productivitybits.com/10-reasons-why-you-need-to-establish-your-online-identity"&gt;10 Reasons Why You Need To Establish Your Online Identity&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-1410213023539584783?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.productivitybits.com/10-reasons-why-you-need-to-establish-your-online-identity' title='10 Reasons Why You Need To Establish Your Online Identity'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/1410213023539584783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=1410213023539584783' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1410213023539584783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1410213023539584783'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/02/10-reasons-why-you-need-to-establish.html' title='10 Reasons Why You Need To Establish Your Online Identity'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-7937635837811943785</id><published>2011-02-18T07:37:00.000-08:00</published><updated>2011-02-18T07:37:29.357-08:00</updated><title type='text'>How To Build a Cube From an Existing Data Source Using SQL Server Analysis Services</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=1532"&gt;How To Build a Cube From an Existing Data Source Using SQL Server Analysis Services&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-7937635837811943785?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=1532' title='How To Build a Cube From an Existing Data Source Using SQL Server Analysis Services'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/7937635837811943785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=7937635837811943785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7937635837811943785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7937635837811943785'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/02/how-to-build-cube-from-existing-data.html' title='How To Build a Cube From an Existing Data Source Using SQL Server Analysis Services'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-2955225235660897516</id><published>2011-02-18T07:29:00.000-08:00</published><updated>2011-02-18T07:29:52.623-08:00</updated><title type='text'>How to Identify Memory Bottlenecks in Microsoft SQL Server</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=2304"&gt;How to Identify Memory Bottlenecks in Microsoft SQL Server&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-2955225235660897516?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=2304' title='How to Identify Memory Bottlenecks in Microsoft SQL Server'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/2955225235660897516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=2955225235660897516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2955225235660897516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2955225235660897516'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/02/how-to-identify-memory-bottlenecks-in.html' title='How to Identify Memory Bottlenecks in Microsoft SQL Server'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-1728722662117813866</id><published>2011-02-17T13:08:00.000-08:00</published><updated>2011-02-17T13:39:00.131-08:00</updated><title type='text'>ESSENTIAL PERFORMANCE  TOOLS FOR SQL SERVER DBA</title><content type='html'>http://www.idera.com/Downloads/WhitePapers/Essential-Performance-Tools-SQL-Server-DBA.pdf?elq=365bc336c7cf4d3aaa5ec818146aa0a9&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-1728722662117813866?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.idera.com/Downloads/WhitePapers/Essential-Performance-Tools-SQL-Server-DBA.pdf?elq=365bc336c7cf4d3aaa5ec818146aa0a9' title='ESSENTIAL PERFORMANCE  TOOLS FOR SQL SERVER DBA'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/1728722662117813866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=1728722662117813866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1728722662117813866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1728722662117813866'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/02/blog-post.html' title='ESSENTIAL PERFORMANCE  TOOLS FOR SQL SERVER DBA'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-6042280496164549215</id><published>2011-02-16T06:46:00.000-08:00</published><updated>2011-02-16T06:46:36.800-08:00</updated><title type='text'>Generating SQL Scripts using Windows PowerShell</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=1842"&gt;Generating SQL Scripts using Windows PowerShell&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-6042280496164549215?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=1842' title='Generating SQL Scripts using Windows PowerShell'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/6042280496164549215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=6042280496164549215' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6042280496164549215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6042280496164549215'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/02/generating-sql-scripts-using-windows.html' title='Generating SQL Scripts using Windows PowerShell'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-4475314655350496376</id><published>2011-02-07T07:46:00.000-08:00</published><updated>2011-02-07T07:46:57.229-08:00</updated><title type='text'>Collecting Performance Data into a SQL Server Table</title><content type='html'>&lt;a href="http://www.simple-talk.com/sql/performance/collecting-performance-data-into-a-sql-server-table/?utm_source=simpletalk&amp;amp;utm_medium=email-main&amp;amp;utm_content=CollectingData-20110207&amp;amp;utm_campaign=SQL"&gt;Collecting Performance Data into a SQL Server Table&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-4475314655350496376?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.simple-talk.com/sql/performance/collecting-performance-data-into-a-sql-server-table/?utm_source=simpletalk&amp;utm_medium=email-main&amp;utm_content=CollectingData-20110207&amp;utm_campaign=SQL' title='Collecting Performance Data into a SQL Server Table'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/4475314655350496376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=4475314655350496376' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4475314655350496376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4475314655350496376'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/02/collecting-performance-data-into-sql.html' title='Collecting Performance Data into a SQL Server Table'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-5593352434736225283</id><published>2011-02-01T10:39:00.001-08:00</published><updated>2011-02-01T10:39:35.887-08:00</updated><title type='text'>How to: Enable Log Shipping (Transact-SQL)</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/library/ms188708.aspx"&gt;How to: Enable Log Shipping (Transact-SQL)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-5593352434736225283?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://msdn.microsoft.com/en-us/library/ms188708.aspx' title='How to: Enable Log Shipping (Transact-SQL)'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/5593352434736225283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=5593352434736225283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/5593352434736225283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/5593352434736225283'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/02/how-to-enable-log-shipping-transact-sql.html' title='How to: Enable Log Shipping (Transact-SQL)'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-3184062633962269365</id><published>2011-02-01T10:39:00.000-08:00</published><updated>2011-02-01T10:39:26.940-08:00</updated><title type='text'>How to Perform SQL Server Log Shipping</title><content type='html'>&lt;a href="http://www.sql-server-performance.com/articles/clustering/log_shipping_70_p1.aspx"&gt;How to Perform SQL Server Log Shipping&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-3184062633962269365?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sql-server-performance.com/articles/clustering/log_shipping_70_p1.aspx' title='How to Perform SQL Server Log Shipping'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/3184062633962269365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=3184062633962269365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3184062633962269365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3184062633962269365'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/02/how-to-perform-sql-server-log-shipping.html' title='How to Perform SQL Server Log Shipping'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-6569614031465594967</id><published>2011-01-27T08:51:00.000-08:00</published><updated>2011-01-27T08:51:36.491-08:00</updated><title type='text'>Find Clustered Indexes that are uniqueidentifier field</title><content type='html'>SELECT &lt;br /&gt;OBJECT_NAME(i.ID) as tablename&lt;br /&gt;,ISNULL(SYSCOLUMNS.NAME,'') as columnname&lt;br /&gt;,i.name as indexname&lt;br /&gt;, i.indid as isclustered&lt;br /&gt;,systypes.name as columndatatype&lt;br /&gt;--,*&lt;br /&gt;FROM SYSINDEXES I&lt;br /&gt;INNER JOIN SYSINDEXKEYS ON I.ID=SYSINDEXKEYS.ID AND I.INDID=SYSINDEXKEYS.INDID&lt;br /&gt;INNER JOIN SYSCOLUMNS ON SYSINDEXKEYS.ID=SYSCOLUMNS.ID AND SYSINDEXKEYS.COLID=SYSCOLUMNS.COLID&lt;br /&gt;inner join systypes on systypes.xtype = SYSCOLUMNS.xtype&lt;br /&gt;inner join sysobjects on sysobjects.id = i.id&lt;br /&gt;WHERE I.INDID =1 &lt;br /&gt;AND I.INDID &lt; 255 AND (I.STATUS &amp; 64)=0and SYSCOLUMNS.xtype = 36and i.id &gt; 255&lt;br /&gt;and sysobjects.xtype = 'U'&lt;br /&gt;order by &lt;br /&gt;OBJECT_NAME(i.ID)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-6569614031465594967?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/6569614031465594967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=6569614031465594967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6569614031465594967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6569614031465594967'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/01/find-clustered-indexes-that-are.html' title='Find Clustered Indexes that are uniqueidentifier field'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-1663477776950365364</id><published>2011-01-27T07:03:00.000-08:00</published><updated>2011-01-27T07:03:24.097-08:00</updated><title type='text'>Leaving a SQL Server DBA Job Gracefully</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=1960"&gt;Leaving a SQL Server DBA Job Gracefully&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-1663477776950365364?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=1960' title='Leaving a SQL Server DBA Job Gracefully'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/1663477776950365364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=1663477776950365364' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1663477776950365364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1663477776950365364'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/01/leaving-sql-server-dba-job-gracefully.html' title='Leaving a SQL Server DBA Job Gracefully'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-2675911196694750168</id><published>2011-01-25T11:02:00.001-08:00</published><updated>2011-01-25T11:02:08.637-08:00</updated><title type='text'>drop indexes for all tables in DB</title><content type='html'>sp_msforeachtable&lt;br /&gt;'&lt;br /&gt;&lt;br /&gt;declare @name varchar(50) ,@errorsave int, @tab_name varchar(100) = ''?''&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if exists (select name from sysindexes&lt;br /&gt;where id = object_id(@tab_name) and indid &gt; 0 and indid &lt; 255 and (status &amp; 64)=0)begin  declare ind_cursor cursor for  select name from sysindexes where id = object_id(@tab_name) and indid &gt; 0 and indid &lt; 255 and (status &amp; 64)=0&lt;br /&gt;&lt;br /&gt; open ind_cursor&lt;br /&gt; fetch next from ind_cursor into @name&lt;br /&gt; while (@@fetch_status = 0)&lt;br /&gt; begin &lt;br /&gt;  print ''drop index '' + @tab_name + ''.'' + @name&lt;br /&gt;  print ''go''&lt;br /&gt;  fetch next from ind_cursor into @name&lt;br /&gt; end&lt;br /&gt; close ind_cursor&lt;br /&gt; deallocate ind_cursor&lt;br /&gt;end &lt;br /&gt;&lt;br /&gt;'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-2675911196694750168?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/2675911196694750168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=2675911196694750168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2675911196694750168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2675911196694750168'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/01/drop-indexes-for-all-tables-in-db.html' title='drop indexes for all tables in DB'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-3362256346161981343</id><published>2011-01-24T07:54:00.001-08:00</published><updated>2011-01-24T07:54:52.017-08:00</updated><title type='text'>sp_alert_jobs</title><content type='html'>USE [msdb]&lt;br /&gt;GO&lt;br /&gt;/****** Object:  StoredProcedure [dbo].[sp_alert_jobs]    Script Date: 01/24/2011 07:50:16 ******/&lt;br /&gt;SET ANSI_NULLS ON&lt;br /&gt;GO&lt;br /&gt;SET QUOTED_IDENTIFIER ON&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;create procedure [dbo].[sp_alert_jobs]&lt;br /&gt;(&lt;br /&gt; @maxrundurationhour int = 6&lt;br /&gt;)&lt;br /&gt;as&lt;br /&gt;begin&lt;br /&gt;&lt;br /&gt;--CAN NOT EXECUTE THIS PROC BY QUERY , ONLY RUNS FROM JOB&lt;br /&gt;&lt;br /&gt;if(object_id('msdb..#tmp')&gt;1)&lt;br /&gt; drop table #tmp&lt;br /&gt;if(object_id('msdb..__tmp_final')&gt;1)&lt;br /&gt; drop table __tmp_final&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;declare @maxrunduration int = 0 &lt;br /&gt;--set @maxrunduration = 60 * 60 * 6 -- 6 hours&lt;br /&gt;set @maxrunduration = 60 * 60 * @maxrundurationhour&lt;br /&gt;&lt;br /&gt;create table #tmp (job_id uniqueidentifier NOT NULL,last_run_date nvarchar (20) NOT NULL,last_run_time nvarchar (20) NOT NULL,next_run_date nvarchar (20) NOT NULL,next_run_time nvarchar (20) NOT NULL, next_run_schedule_id INT NOT NULL,requested_to_run INT NOT NULL,request_source INT NOT NULL,request_source_id sysname COLLATE database_default NULL,    running INT NOT NULL,current_step INT NOT NULL,current_retry_attempt INT NOT NULL,job_state INT NOT NULL); &lt;br /&gt;&lt;br /&gt;insert into #tmp  EXECUTE master.dbo.xp_sqlagent_enum_jobs 1,'CSODProd\SQLClusterLD4SW2';&lt;br /&gt;UPDATE #tmp SET last_run_time = right ('000000' + last_run_time, 6), next_run_time    = right ('000000' + next_run_time, 6);&lt;br /&gt;&lt;br /&gt;--select * From #tmp&lt;br /&gt;&lt;br /&gt;SELECT @@servername as ServerName , j.name AS JobName, j.enabled AS Enabled,&lt;br /&gt;Case x.running WHEN 1 THEN 'Running' Else Case h.run_status WHEN 2 THEN 'Inactive' WHEN 4 THEN 'Inactive' Else 'Completed' End End AS CurrentStatus,&lt;br /&gt;coalesce (x.current_step, 0) AS CurrentStepNbr,&lt;br /&gt;CASE WHEN x.last_run_date &gt; 0 THEN convert (datetime, substring (x.last_run_date, 1, 4)+ '-' + substring (x.last_run_date, 5, 2)+ '-'+ substring (x.last_run_date, 7, 2)+ ' '+ substring (x.last_run_time, 1, 2) + ':' + substring (x.last_run_time, 3, 2)+ ':' + substring (x.last_run_time, 5, 2)+ '.000',121) Else  NULL End AS LastRunTime,&lt;br /&gt;Case h.run_status WHEN 0 THEN 'Fail'WHEN 1 THEN 'Success' WHEN 2 THEN 'Retry' WHEN 3 THEN 'Cancel' WHEN 4 THEN 'In progress' End AS LastRunOutcome,&lt;br /&gt;CASE WHEN h.run_duration &gt; 0 THEN (h.run_duration / 1000000) * (3600 * 24) + (h.run_duration / 10000 % 100) * 3600 + (h.run_duration / 100 % 100) * 60 + (h.run_duration % 100) Else NULL End AS LastRunDuration &lt;br /&gt;into __tmp_final&lt;br /&gt;FROM #tmp x &lt;br /&gt;Left Join msdb.dbo.sysjobs j ON x.job_id = j.job_id &lt;br /&gt;LEFT OUTER JOIN msdb.dbo.syscategories c ON j.category_id = c.category_id &lt;br /&gt;LEFT OUTER JOIN msdb.dbo.sysjobhistory h ON x.job_id = h.job_id AND x.last_run_date = h.run_date AND x.last_run_time = h.run_time AND h.step_id = 0&lt;br /&gt;where --j.name like 'csod%'&lt;br /&gt;h.run_status != 1&lt;br /&gt;or h.run_duration &gt; @maxrunduration&lt;br /&gt;&lt;br /&gt;--select * from __tmp_final&lt;br /&gt;--select 'Job = '+jobname+' : Status = '+lastrunoutcome+ ' : Run Duration = '+ convert(nvarchar(10),lastrunduration)+' min' from __tmp_final&lt;br /&gt;if(select COUNT(*) from __tmp_final) &gt;0&lt;br /&gt;begin&lt;br /&gt; declare @subject nvarchar(1000), @recipientslist nvarchar(1000)&lt;br /&gt; set @subject = 'SQL JOB ALERT for '+@@SERVERNAME+' : '+Convert(nvarchar(100),getdate(),101)&lt;br /&gt; set @recipientslist = 'ayegudkin@csod.com;palexander@csod.com;Defcon4@csod.com'&lt;br /&gt; &lt;br /&gt; exec msdb.dbo.sp_send_dbmail&lt;br /&gt; @body_format = 'HTML',&lt;br /&gt; @profile_name = 'default',&lt;br /&gt; @Subject = @subject,&lt;br /&gt; --@body = 'test',&lt;br /&gt; @query = 'set nocount on; select ''Job = ''+jobname+'' : Status = ''+lastrunoutcome+ '' : Run Duration = ''+ convert(nvarchar(10),lastrunduration)+'' min &lt;br /&gt;'' from __tmp_final;set nocount off; ',&lt;br /&gt; --@attach_query_result_as_file = 0,&lt;br /&gt; @query_result_header = 0,&lt;br /&gt; --@query_result_width = 1000,&lt;br /&gt; --@exclude_query_output = 1,&lt;br /&gt; --@query_result_separator = ';',&lt;br /&gt; @execute_query_database = 'msdb',&lt;br /&gt; @recipients = @recipientslist&lt;br /&gt;end&lt;br /&gt;--EXEC sys.xp_logininfo @acctname = 'CSODMGMT\palexander', @option ='members'&lt;br /&gt;--EXEC sys.xp_logininfo @acctname = 'CSODProd\SQLClusterLA4SW4'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;end&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-3362256346161981343?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/3362256346161981343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=3362256346161981343' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3362256346161981343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3362256346161981343'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/01/spalertjobs.html' title='sp_alert_jobs'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-3593323505776492235</id><published>2011-01-11T13:42:00.000-08:00</published><updated>2011-01-11T13:42:37.138-08:00</updated><title type='text'>Removing Unused Indexes | SQL performance | SQL Server Performance Blog</title><content type='html'>&lt;a href="http://sqlserverperformance.idera.com/indexing/removing-unused-indexes/"&gt;Removing Unused Indexes | SQL performance | SQL Server Performance Blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-3593323505776492235?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://sqlserverperformance.idera.com/indexing/removing-unused-indexes/' title='Removing Unused Indexes | SQL performance | SQL Server Performance Blog'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/3593323505776492235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=3593323505776492235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3593323505776492235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/3593323505776492235'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/01/removing-unused-indexes-sql-performance.html' title='Removing Unused Indexes | SQL performance | SQL Server Performance Blog'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-1306211983914885892</id><published>2011-01-10T13:39:00.000-08:00</published><updated>2011-01-10T13:40:08.400-08:00</updated><title type='text'>Run an SSIS Package Under a Different Account - SQLServerCentral</title><content type='html'>&lt;a href="http://www.sqlservercentral.com/articles/Integration+Services+(SSIS)/69441/"&gt;Run an SSIS Package Under a Different Account - SQLServerCentral&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Run an SSIS Package Under a Different Account&lt;br /&gt;By Polar Bear, 2010/03/25&lt;br /&gt;Total article views: 6535 | Views in the last 30 days: 88&lt;br /&gt;  Rate this |    Join the discussion |    Briefcase |    Print&lt;br /&gt;Recently, in a SSIS package, I needed to get some data from a SQL Server database which is used by a third party application. This application uses named user license. The ETLadmin account, which is a domain account that we use it to run SSIS packages, does not have the right permission to access views in that database even if it has sysadmin permission on that SQL Server instance. If we set ETLadmin to an application admin, this will waste an application admin license. And usually ETLadmin account should only have read permission to grab data. Application admin permission will be too much for this account. It will be nice if we can use an existing application admin user account to run the package. This can be done by using SQL Server Agent proxies.&lt;br /&gt;&lt;br /&gt;Here are the steps to setup a proxy by using an existing application user account:&lt;br /&gt;&lt;br /&gt;Create a credential using the account that having right access to the application database&lt;br /&gt;&lt;br /&gt;Open SSMS, connect to the SQL Server instance that the SSIS will be scheduled to run&lt;br /&gt;Go to Security - &gt; Credentials, and click on 'New Credential...' to create a new credential&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Zoom in  |  Open in new window&lt;br /&gt;Enter the credential name - Enter the domain account, and password. Repeat the password in the 'Confirm password'. This account should have the right access to the application database.&lt;br /&gt;Click 'ok' and the new credential should be listed.&lt;br /&gt;&lt;br /&gt;Zoom in  |  Open in new window&lt;br /&gt;Create a proxy using the credential created in the previous step&lt;br /&gt;&lt;br /&gt;Right click SQL Server Agent -&gt; Proxies, and select 'New proxy...'&lt;br /&gt;&lt;br /&gt;Zoom in  |  Open in new window&lt;br /&gt;Enter the new proxy name, and choose the credential that created from the previous step from the dropdown list. And check 'SQL Server Integration Services Package' under 'Active to the following subsystems'. The SQL Server Agent proxy can be activated for many sub systems (as listed in the screen shot). In this case we are only enabling it for SSIS packages.&lt;br /&gt;&lt;br /&gt;Zoom in  |  Open in new window&lt;br /&gt;Click 'OK' and the new proxy should be listed.&lt;br /&gt;Setup a job to run the SSIS package using the proxy&lt;br /&gt;&lt;br /&gt;Open the job step properties for the step that run the SSIS package&lt;br /&gt;Select the proxy that created in the previous step from the 'Run as' dropdown list&lt;br /&gt;&lt;br /&gt;Zoom in  |  Open in new window&lt;br /&gt;Click 'OK' to save the change&lt;br /&gt;Now you can run the package using the application account.&lt;br /&gt;&lt;br /&gt;By using SQL Server Agent proxy, we can run jobs on different databases, different servers using existing accounts, and avoid giving excessive permission to ETL users or developers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-1306211983914885892?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sqlservercentral.com/articles/Integration+Services+(SSIS)/69441/' title='Run an SSIS Package Under a Different Account - SQLServerCentral'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/1306211983914885892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=1306211983914885892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1306211983914885892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1306211983914885892'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/01/run-ssis-package-under-different.html' title='Run an SSIS Package Under a Different Account - SQLServerCentral'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-8237727644649205265</id><published>2011-01-05T10:07:00.000-08:00</published><updated>2011-01-05T10:07:53.416-08:00</updated><title type='text'>SQL Server Security Audit Report</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=1881"&gt;SQL Server Security Audit Report&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-8237727644649205265?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=1881' title='SQL Server Security Audit Report'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/8237727644649205265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=8237727644649205265' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/8237727644649205265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/8237727644649205265'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/01/sql-server-security-audit-report.html' title='SQL Server Security Audit Report'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-647334993155244184</id><published>2011-01-04T08:00:00.000-08:00</published><updated>2011-01-04T08:00:40.460-08:00</updated><title type='text'>Appendix A: Monitoring SQL Server health</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/library/bb838723(office.12).aspx"&gt;Appendix A: Monitoring SQL Server health&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-647334993155244184?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://msdn.microsoft.com/en-us/library/bb838723(office.12).aspx' title='Appendix A: Monitoring SQL Server health'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/647334993155244184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=647334993155244184' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/647334993155244184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/647334993155244184'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2011/01/appendix-monitoring-sql-server-health.html' title='Appendix A: Monitoring SQL Server health'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-4042843695714396493</id><published>2010-12-29T07:33:00.001-08:00</published><updated>2010-12-29T07:33:39.905-08:00</updated><title type='text'>Making a more reliable and flexible sp_MSforeachdb</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=2201"&gt;Making a more reliable and flexible sp_MSforeachdb&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-4042843695714396493?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=2201' title='Making a more reliable and flexible sp_MSforeachdb'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/4042843695714396493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=4042843695714396493' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4042843695714396493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4042843695714396493'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2010/12/making-more-reliable-and-flexible.html' title='Making a more reliable and flexible sp_MSforeachdb'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-1600377716590887384</id><published>2010-12-29T07:33:00.000-08:00</published><updated>2010-12-29T07:33:31.215-08:00</updated><title type='text'>SQL Server Websites</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=948"&gt;SQL Server Websites&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-1600377716590887384?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=948' title='SQL Server Websites'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/1600377716590887384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=1600377716590887384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1600377716590887384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/1600377716590887384'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2010/12/sql-server-websites.html' title='SQL Server Websites'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-6822043252322159456</id><published>2010-12-10T06:43:00.000-08:00</published><updated>2010-12-10T06:43:20.685-08:00</updated><title type='text'>Sending email from SQL Server Integration Services (SSIS)</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=1731"&gt;Sending email from SQL Server Integration Services (SSIS)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-6822043252322159456?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=1731' title='Sending email from SQL Server Integration Services (SSIS)'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/6822043252322159456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=6822043252322159456' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6822043252322159456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6822043252322159456'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2010/12/sending-email-from-sql-server.html' title='Sending email from SQL Server Integration Services (SSIS)'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-6481679143627343241</id><published>2010-12-09T14:12:00.000-08:00</published><updated>2010-12-09T14:12:27.778-08:00</updated><title type='text'>Using the Foreach ADO Enumerator in SSIS - CodeProject</title><content type='html'>&lt;a href="http://www.codeproject.com/KB/database/foreachadossis.aspx"&gt;Using the Foreach ADO Enumerator in SSIS - CodeProject&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-6481679143627343241?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.codeproject.com/KB/database/foreachadossis.aspx' title='Using the Foreach ADO Enumerator in SSIS - CodeProject'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/6481679143627343241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=6481679143627343241' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6481679143627343241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6481679143627343241'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2010/12/using-foreach-ado-enumerator-in-ssis.html' title='Using the Foreach ADO Enumerator in SSIS - CodeProject'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-4418817558993963000</id><published>2010-12-09T07:11:00.000-08:00</published><updated>2010-12-09T07:11:41.281-08:00</updated><title type='text'>Tempdb Configuration Best Practices in SQL Server</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=1432"&gt;Tempdb Configuration Best Practices in SQL Server&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-4418817558993963000?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=1432' title='Tempdb Configuration Best Practices in SQL Server'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/4418817558993963000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=4418817558993963000' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4418817558993963000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4418817558993963000'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2010/12/tempdb-configuration-best-practices-in.html' title='Tempdb Configuration Best Practices in SQL Server'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-7733194195860951915</id><published>2010-12-08T17:31:00.000-08:00</published><updated>2010-12-08T17:31:13.605-08:00</updated><title type='text'>Remove SQL Server database from single-user mode</title><content type='html'>&lt;a href="http://remidian.com/mssql/remove-sql-server-database-from-single-user-mode.html"&gt;Remove SQL Server database from single-user mode&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-7733194195860951915?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://remidian.com/mssql/remove-sql-server-database-from-single-user-mode.html' title='Remove SQL Server database from single-user mode'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/7733194195860951915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=7733194195860951915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7733194195860951915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7733194195860951915'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2010/12/remove-sql-server-database-from-single.html' title='Remove SQL Server database from single-user mode'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-2860560944134691043</id><published>2010-12-08T12:47:00.001-08:00</published><updated>2010-12-08T12:47:08.239-08:00</updated><title type='text'>SQL Server Security Audit Report</title><content type='html'>USE master &lt;br /&gt;GO &lt;br /&gt;SET nocount ON &lt;br /&gt;&lt;br /&gt;-- Get all roles &lt;br /&gt;CREATE TABLE #temp_srvrole  &lt;br /&gt;(ServerRole VARCHAR(128), Description VARCHAR(128)) &lt;br /&gt;INSERT INTO #temp_srvrole &lt;br /&gt;EXEC sp_helpsrvrole &lt;br /&gt;&lt;br /&gt;-- sp_help syslogins &lt;br /&gt;CREATE TABLE #temp_memberrole  &lt;br /&gt;(ServerRole VARCHAR(128),  &lt;br /&gt;MemberName VARCHAR(265),  &lt;br /&gt;MemberSID VARCHAR(300)) &lt;br /&gt;&lt;br /&gt;DECLARE @ServerRole VARCHAR(128) &lt;br /&gt;&lt;br /&gt;DECLARE srv_role CURSOR FAST_FORWARD FOR  &lt;br /&gt;SELECT ServerRole FROM #temp_srvrole &lt;br /&gt;OPEN srv_role &lt;br /&gt;FETCH NEXT FROM srv_role INTO @ServerRole &lt;br /&gt;&lt;br /&gt;WHILE @@FETCH_STATUS = 0 &lt;br /&gt;BEGIN &lt;br /&gt;INSERT INTO #temp_memberrole &lt;br /&gt;EXEC sp_helpsrvrolemember @ServerRole &lt;br /&gt;FETCH NEXT FROM srv_role INTO @ServerRole &lt;br /&gt;END &lt;br /&gt;&lt;br /&gt;CLOSE srv_role &lt;br /&gt;DEALLOCATE srv_role &lt;br /&gt;&lt;br /&gt;SELECT ServerRole, MemberName FROM #temp_memberrole &lt;br /&gt;&lt;br /&gt;-- IF BUILTIN\Administrators is exist and sysadmin &lt;br /&gt;IF EXISTS(SELECT *FROM #temp_memberrole  &lt;br /&gt;WHERE MemberName = 'BUILTIN\Administrators'  &lt;br /&gt;AND ServerRole = 'sysadmin' ) &lt;br /&gt;BEGIN &lt;br /&gt;CREATE TABLE #temp_localadmin (output VARCHAR(8000)) &lt;br /&gt;INSERT INTO #temp_localadmin &lt;br /&gt;EXEC xp_cmdshell 'net localgroup administrators' &lt;br /&gt;&lt;br /&gt;SELECT output AS local_administrator  &lt;br /&gt;FROM #temp_localadmin &lt;br /&gt;WHERE output LIKE '%\%' &lt;br /&gt;DROP TABLE #temp_localadmin &lt;br /&gt;END &lt;br /&gt;&lt;br /&gt;DROP TABLE #temp_srvrole &lt;br /&gt;DROP TABLE #temp_memberrole &lt;br /&gt;&lt;br /&gt;-- Get individual Logins &lt;br /&gt;SELECT name, 'Individual NT Login' LoginType &lt;br /&gt;FROM syslogins &lt;br /&gt;WHERE isntgroup = 0 AND isntname = 1  &lt;br /&gt;UNION &lt;br /&gt;SELECT name, 'Individual SQL Login' LoginType &lt;br /&gt;FROM syslogins &lt;br /&gt;WHERE isntgroup = 0 AND isntname = 0  &lt;br /&gt;UNION ALL &lt;br /&gt;-- Get Group logins &lt;br /&gt;SELECT name,'NT Group Login' LoginType &lt;br /&gt;FROM syslogins &lt;br /&gt;WHERE isntgroup = 1  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- get group list &lt;br /&gt;-- EXEC xp_cmdshell 'net group "AnalyticsDev" /domain' &lt;br /&gt;CREATE TABLE #temp_groupadmin  &lt;br /&gt;(output VARCHAR(8000)) &lt;br /&gt;CREATE TABLE #temp_groupadmin2  &lt;br /&gt;(groupName VARCHAR(256), groupMember VARCHAR(1000)) &lt;br /&gt;DECLARE @grpname VARCHAR(128) &lt;br /&gt;DECLARE @sqlcmd VARCHAR(1000) &lt;br /&gt;&lt;br /&gt;DECLARE grp_role CURSOR FAST_FORWARD FOR  &lt;br /&gt;SELECT REPLACE(name,'US\','')  &lt;br /&gt;FROM syslogins  &lt;br /&gt;WHERE isntgroup = 1 AND name LIKE 'US\%' &lt;br /&gt;&lt;br /&gt;OPEN grp_role &lt;br /&gt;FETCH NEXT FROM grp_role INTO @grpname &lt;br /&gt;&lt;br /&gt;WHILE @@FETCH_STATUS = 0 &lt;br /&gt;BEGIN &lt;br /&gt;&lt;br /&gt;SET @sqlcmd = 'net group "' + @grpname + '" /domain' &lt;br /&gt;TRUNCATE TABLE #temp_groupadmin &lt;br /&gt;&lt;br /&gt;PRINT @sqlcmd  &lt;br /&gt;INSERT INTO #temp_groupadmin &lt;br /&gt;EXEC xp_cmdshell @sqlcmd &lt;br /&gt;&lt;br /&gt;SET ROWCOUNT 8 &lt;br /&gt;DELETE FROM #temp_groupadmin &lt;br /&gt;&lt;br /&gt;SET ROWCOUNT 0 &lt;br /&gt;&lt;br /&gt;INSERT INTO #temp_groupadmin2 &lt;br /&gt;SELECT @grpname, output FROM #temp_groupadmin &lt;br /&gt;WHERE output NOT LIKE ('%The command completed successfully%') &lt;br /&gt;&lt;br /&gt;FETCH NEXT FROM grp_role INTO @grpname &lt;br /&gt;END &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CLOSE grp_role &lt;br /&gt;DEALLOCATE grp_role &lt;br /&gt;&lt;br /&gt;SELECT * FROM #temp_groupadmin2 &lt;br /&gt;&lt;br /&gt;DROP TABLE #temp_groupadmin &lt;br /&gt;DROP TABLE #temp_groupadmin2 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PRINT 'EXEC sp_validatelogins ' &lt;br /&gt;PRINT '----------------------------------------------' &lt;br /&gt;EXEC sp_validatelogins &lt;br /&gt;PRINT '' &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- Get all the Database Rols for that specIFic members &lt;br /&gt;CREATE TABLE #temp_rolemember  &lt;br /&gt;(DbRole VARCHAR(128),MemberName VARCHAR(128),MemberSID VARCHAR(1000)) &lt;br /&gt;CREATE TABLE #temp_rolemember_final  &lt;br /&gt;(DbName VARCHAR(100), DbRole VARCHAR(128),MemberName VARCHAR(128)) &lt;br /&gt;&lt;br /&gt;DECLARE @dbname VARCHAR(128) &lt;br /&gt;DECLARE @sqlcmd2 VARCHAR(1000) &lt;br /&gt;&lt;br /&gt;DECLARE grp_role CURSOR FOR  &lt;br /&gt;SELECT name FROM sysdatabases &lt;br /&gt;WHERE name NOT IN ('tempdb')  &lt;br /&gt;AND DATABASEPROPERTYEX(name, 'Status') = 'ONLINE'  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OPEN grp_role &lt;br /&gt;FETCH NEXT FROM grp_role INTO @dbname &lt;br /&gt;&lt;br /&gt;WHILE @@FETCH_STATUS = 0 &lt;br /&gt;BEGIN &lt;br /&gt;&lt;br /&gt;TRUNCATE TABLE #temp_rolemember  &lt;br /&gt;SET @sqlcmd2 = 'EXEC [' + @dbname + ']..sp_helprolemember' &lt;br /&gt;&lt;br /&gt;PRINT @sqlcmd2  &lt;br /&gt;INSERT INTO #temp_rolemember &lt;br /&gt;EXECUTE(@sqlcmd2) &lt;br /&gt;&lt;br /&gt;INSERT INTO #temp_rolemember_final &lt;br /&gt;SELECT @dbname AS DbName, DbRole, MemberName &lt;br /&gt;FROM #temp_rolemember &lt;br /&gt;&lt;br /&gt;FETCH NEXT FROM grp_role INTO @dbname &lt;br /&gt;END &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CLOSE grp_role &lt;br /&gt;DEALLOCATE grp_role &lt;br /&gt;&lt;br /&gt;SELECT * FROM #temp_rolemember_final &lt;br /&gt;&lt;br /&gt;DROP TABLE #temp_rolemember &lt;br /&gt;DROP TABLE #temp_rolemember_final&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-2860560944134691043?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=1881' title='SQL Server Security Audit Report'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/2860560944134691043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=2860560944134691043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2860560944134691043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/2860560944134691043'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2010/12/sql-server-security-audit-report.html' title='SQL Server Security Audit Report'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-4255847851082642269</id><published>2010-12-06T10:36:00.000-08:00</published><updated>2010-12-06T10:36:55.890-08:00</updated><title type='text'>SSIS - Dynamically set Flat File Connection Manager - Sudeep's Domain</title><content type='html'>&lt;a href="http://beyondrelational.com/blogs/sudeep/archive/2010/03/14/dynamically-set-flat-file-connection-manager.aspx"&gt;SSIS - Dynamically set Flat File Connection Manager - Sudeep&amp;#39;s Domain&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-4255847851082642269?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://beyondrelational.com/blogs/sudeep/archive/2010/03/14/dynamically-set-flat-file-connection-manager.aspx' title='SSIS - Dynamically set Flat File Connection Manager - Sudeep&apos;s Domain'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/4255847851082642269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=4255847851082642269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4255847851082642269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4255847851082642269'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2010/12/ssis-dynamically-set-flat-file.html' title='SSIS - Dynamically set Flat File Connection Manager - Sudeep&apos;s Domain'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-8568065841976977151</id><published>2010-12-02T11:25:00.000-08:00</published><updated>2010-12-02T11:25:54.876-08:00</updated><title type='text'>SQL Server Encryption - Encrypt a database</title><content type='html'>USE master;&lt;br /&gt;GO&lt;br /&gt;--master key password&lt;br /&gt;CREATE MASTER KEY ENCRYPTION BY PASSWORD = '****';&lt;br /&gt;--DROP MASTER KEY&lt;br /&gt;go&lt;br /&gt;--database encryption key&lt;br /&gt;CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'Certificate'&lt;br /&gt;--DROP CERTIFICATE MyServerCert&lt;br /&gt;go&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;USE master &lt;br /&gt;GO &lt;br /&gt;BACKUP CERTIFICATE MyServerCert  &lt;br /&gt;TO FILE = 'C:\File.cer' &lt;br /&gt;WITH PRIVATE KEY (FILE = 'C:\Key.pvk' , &lt;br /&gt;ENCRYPTION BY PASSWORD = '*****' ) &lt;br /&gt;GO &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;USE [cleint]&lt;br /&gt;GO&lt;br /&gt;CREATE DATABASE ENCRYPTION KEY&lt;br /&gt;WITH ALGORITHM = AES_256&lt;br /&gt;ENCRYPTION BY SERVER CERTIFICATE MyServerCert&lt;br /&gt;GO&lt;br /&gt;ALTER DATABASE [cleint]&lt;br /&gt;SET ENCRYPTION ON&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;SELECT db_name(database_id), encryption_state, *&lt;br /&gt;FROM sys.dm_database_encryption_keys with (nolock)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT * FROM sys.symmetric_keys&lt;br /&gt;SELECT * FROM sys.certificates&lt;br /&gt;SELECT * FROM sys.dm_database_encryption_keys&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-8568065841976977151?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/8568065841976977151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=8568065841976977151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/8568065841976977151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/8568065841976977151'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2010/12/sql-server-encryption-encrypt-database.html' title='SQL Server Encryption - Encrypt a database'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-4395994382007350944</id><published>2010-11-30T07:41:00.000-08:00</published><updated>2010-11-30T07:44:00.844-08:00</updated><title type='text'>SQL 2008 Server Audit - Server and Database Specification</title><content type='html'>--Create Audit&lt;br /&gt;CREATE SERVER AUDIT [DDL-Audit]&lt;br /&gt;TO FILE &lt;br /&gt;( FILEPATH = N'E:\Audit\'&lt;br /&gt;,MAXSIZE = 0 MB&lt;br /&gt;,MAX_ROLLOVER_FILES = 2147483647&lt;br /&gt;,RESERVE_DISK_SPACE = OFF&lt;br /&gt;)&lt;br /&gt;WITH&lt;br /&gt;( QUEUE_DELAY = 1000&lt;br /&gt;,ON_FAILURE = CONTINUE&lt;br /&gt;,AUDIT_GUID = '877f038b-d57c-44d1-8db4-c2c3dc1321a1'&lt;br /&gt;)&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;--Create Audit specifics Server Level&lt;br /&gt;CREATE SERVER AUDIT SPECIFICATION [ServerAuditSpecification]&lt;br /&gt;FOR SERVER AUDIT [DDL-Audit]&lt;br /&gt;ADD (DATABASE_OBJECT_ACCESS_GROUP),&lt;br /&gt;ADD (SERVER_ROLE_MEMBER_CHANGE_GROUP),&lt;br /&gt;ADD (AUDIT_CHANGE_GROUP),&lt;br /&gt;ADD (SERVER_OBJECT_PERMISSION_CHANGE_GROUP),&lt;br /&gt;ADD (DATABASE_CHANGE_GROUP),&lt;br /&gt;ADD (DATABASE_OBJECT_CHANGE_GROUP),&lt;br /&gt;ADD (SERVER_OBJECT_CHANGE_GROUP),&lt;br /&gt;ADD (APPLICATION_ROLE_CHANGE_PASSWORD_GROUP),&lt;br /&gt;ADD (SERVER_STATE_CHANGE_GROUP),&lt;br /&gt;ADD (SERVER_OBJECT_OWNERSHIP_CHANGE_GROUP)&lt;br /&gt;WITH (STATE = ON)&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;--Create Audit specifics Server Level&lt;br /&gt;CREATE SERVER AUDIT SPECIFICATION [ServerAuditSpecification-Login-Logout]&lt;br /&gt;FOR SERVER AUDIT [Login-Logout-Audit]&lt;br /&gt;ADD (FAILED_LOGIN_GROUP),&lt;br /&gt;ADD (SUCCESSFUL_LOGIN_GROUP),&lt;br /&gt;ADD (LOGOUT_GROUP)&lt;br /&gt;WITH (STATE = ON)&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--Create  Audit Specific Database Level&lt;br /&gt;CREATE DATABASE AUDIT SPECIFICATION [DDL_changes_audit]&lt;br /&gt;FOR SERVER AUDIT [DDL-Audit]&lt;br /&gt;ADD (DATABASE_OBJECT_CHANGE_GROUP),&lt;br /&gt;ADD (SCHEMA_OBJECT_CHANGE_GROUP)&lt;br /&gt;WITH (STATE = ON)&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;--Read from Audit Trace File&lt;br /&gt;select * FROM sys.fn_get_audit_file('E:\Audit\DDL*',default,default)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--Disable Audit and Server Audit Specification&lt;br /&gt;ALTER SERVER AUDIT [DDL-Audit] with (State = OFF)&lt;br /&gt;ALTER SERVER AUDIT SPECIFICATION [ServerAuditSpecification-Login-Logout] with (State = OFF)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--Enable Audit and Server Audit Specification&lt;br /&gt;ALTER SERVER AUDIT [DDL-Audit] with (State = ON)&lt;br /&gt;ALTER SERVER AUDIT SPECIFICATION [ServerAuditSpecification-Login-Logout] with (State = ON)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-4395994382007350944?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/4395994382007350944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=4395994382007350944' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4395994382007350944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4395994382007350944'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2010/11/sql-2008-server-audit-server-and.html' title='SQL 2008 Server Audit - Server and Database Specification'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-5201917739766947811</id><published>2010-11-18T14:42:00.001-08:00</published><updated>2010-11-18T14:42:55.519-08:00</updated><title type='text'>Jobs on Server and detail information</title><content type='html'>IF EXISTS (SELECT *&lt;br /&gt;FROM    tempdb.dbo.sysobjects&lt;br /&gt;WHERE   id = OBJECT_ID(N'[tempdb].[dbo].[Temp1]')&lt;br /&gt;)&lt;br /&gt;DROP TABLE [tempdb].[dbo].[Temp1]&lt;br /&gt;GO&lt;br /&gt;CREATE TABLE [tempdb].[dbo].[Temp1]&lt;br /&gt;(&lt;br /&gt;job_id uniqueidentifier NOT NULL,&lt;br /&gt;last_run_date nvarchar (20) NOT NULL,&lt;br /&gt;last_run_time nvarchar (20) NOT NULL,&lt;br /&gt;next_run_date nvarchar (20) NOT NULL,&lt;br /&gt;next_run_time nvarchar (20) NOT NULL,&lt;br /&gt;next_run_schedule_id INT NOT NULL,&lt;br /&gt;requested_to_run INT NOT NULL,&lt;br /&gt;request_source INT NOT NULL,&lt;br /&gt;request_source_id sysname&lt;br /&gt;COLLATE database_default NULL,&lt;br /&gt;running INT NOT NULL,&lt;br /&gt;current_step INT NOT NULL,&lt;br /&gt;current_retry_attempt INT NOT NULL,&lt;br /&gt;job_state INT NOT NULL)&lt;br /&gt;DECLARE @job_owner   sysname&lt;br /&gt;DECLARE @is_sysadmin   INT&lt;br /&gt;SET @is_sysadmin   = isnull (is_srvrolemember ('sysadmin'), 0)&lt;br /&gt;SET @job_owner   = suser_sname ()&lt;br /&gt;INSERT INTO [tempdb].[dbo].[Temp1]&lt;br /&gt; &lt;br /&gt;--EXECUTE sys.xp_sqlagent_enum_jobs @is_sysadmin, @job_owner&lt;br /&gt;EXECUTE master.dbo.xp_sqlagent_enum_jobs @is_sysadmin, @job_owner&lt;br /&gt;UPDATE [tempdb].[dbo].[Temp1]&lt;br /&gt;SET last_run_time    = right ('000000' + last_run_time, 6),&lt;br /&gt;next_run_time    = right ('000000' + next_run_time, 6);&lt;br /&gt;-----&lt;br /&gt;SELECT j.name AS JobName,&lt;br /&gt;j.enabled AS Enabled,&lt;br /&gt;CASE x.running&lt;br /&gt;WHEN 1&lt;br /&gt;THEN&lt;br /&gt;'Running'&lt;br /&gt;ELSE&lt;br /&gt;CASE h.run_status&lt;br /&gt;WHEN 2 THEN 'Inactive'&lt;br /&gt;WHEN 4 THEN 'Inactive'&lt;br /&gt;ELSE 'Completed'&lt;br /&gt;END&lt;br /&gt;END&lt;br /&gt;AS CurrentStatus,&lt;br /&gt;coalesce (x.current_step, 0) AS CurrentStepNbr,&lt;br /&gt;CASE&lt;br /&gt;WHEN x.last_run_date &gt; 0&lt;br /&gt;THEN&lt;br /&gt;convert (datetime,&lt;br /&gt;substring (x.last_run_date, 1, 4)&lt;br /&gt;+ '-'&lt;br /&gt;+ substring (x.last_run_date, 5, 2)&lt;br /&gt;+ '-'&lt;br /&gt;+ substring (x.last_run_date, 7, 2)&lt;br /&gt;+ ' '&lt;br /&gt;+ substring (x.last_run_time, 1, 2)&lt;br /&gt;+ ':'&lt;br /&gt;+ substring (x.last_run_time, 3, 2)&lt;br /&gt;+ ':'&lt;br /&gt;+ substring (x.last_run_time, 5, 2)&lt;br /&gt;+ '.000',&lt;br /&gt;121&lt;br /&gt;)&lt;br /&gt;ELSE&lt;br /&gt;NULL&lt;br /&gt;END&lt;br /&gt;AS LastRunTime,&lt;br /&gt;CASE h.run_status&lt;br /&gt;WHEN 0 THEN 'Fail'&lt;br /&gt;WHEN 1 THEN 'Success'&lt;br /&gt;WHEN 2 THEN 'Retry'&lt;br /&gt;WHEN 3 THEN 'Cancel'&lt;br /&gt;WHEN 4 THEN 'In progress'&lt;br /&gt;END&lt;br /&gt;AS LastRunOutcome,&lt;br /&gt;CASE&lt;br /&gt;WHEN h.run_duration &gt; 0&lt;br /&gt;THEN&lt;br /&gt;(h.run_duration / 1000000) * (3600 * 24)&lt;br /&gt;+ (h.run_duration / 10000 % 100) * 3600&lt;br /&gt;+ (h.run_duration / 100 % 100) * 60&lt;br /&gt;+ (h.run_duration % 100)&lt;br /&gt;ELSE&lt;br /&gt;NULL&lt;br /&gt;END&lt;br /&gt;AS LastRunDuration&lt;br /&gt;FROM          [tempdb].[dbo].[Temp1] x&lt;br /&gt;LEFT JOIN&lt;br /&gt;msdb.dbo.sysjobs j&lt;br /&gt;ON x.job_id = j.job_id&lt;br /&gt;LEFT OUTER JOIN&lt;br /&gt;msdb.dbo.syscategories c&lt;br /&gt;ON j.category_id = c.category_id&lt;br /&gt;LEFT OUTER JOIN&lt;br /&gt;msdb.dbo.sysjobhistory h&lt;br /&gt;ON     x.job_id = h.job_id&lt;br /&gt;AND x.last_run_date = h.run_date&lt;br /&gt;AND x.last_run_time = h.run_time&lt;br /&gt;AND h.step_id = 0&lt;br /&gt;--where x.running = 1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-5201917739766947811?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://feodorgeorgiev.com/blog/2010/03/how-to-query-currently-running-sql-server-agent-jobs/' title='Jobs on Server and detail information'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/5201917739766947811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=5201917739766947811' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/5201917739766947811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/5201917739766947811'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2010/11/jobs-on-server-and-detail-information.html' title='Jobs on Server and detail information'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-6238592452853487882</id><published>2010-11-15T10:59:00.000-08:00</published><updated>2010-11-15T10:59:10.297-08:00</updated><title type='text'>SQL Server Integration Services (SSIS) Performance Best Practices</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=1840"&gt;http://www.mssqltips.com/tip.asp?tip=1840&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mssqltips.com/tip.asp?tip=1867"&gt;http://www.mssqltips.com/tip.asp?tip=1867&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-6238592452853487882?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/6238592452853487882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=6238592452853487882' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6238592452853487882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/6238592452853487882'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2010/11/sql-server-integration-services-ssis.html' title='SQL Server Integration Services (SSIS) Performance Best Practices'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-7412949115773867165</id><published>2010-11-12T10:28:00.000-08:00</published><updated>2010-11-12T10:28:52.909-08:00</updated><title type='text'>Microsoft SQL Server vs. MySQL</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=1920"&gt;Microsoft SQL Server vs. MySQL&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-7412949115773867165?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mssqltips.com/tip.asp?tip=1920' title='Microsoft SQL Server vs. MySQL'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/7412949115773867165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=7412949115773867165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7412949115773867165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/7412949115773867165'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2010/11/microsoft-sql-server-vs-mysql.html' title='Microsoft SQL Server vs. MySQL'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12181313.post-4356400411242422926</id><published>2010-11-04T10:15:00.001-07:00</published><updated>2010-11-04T10:15:33.767-07:00</updated><title type='text'>Apply a service pack or hotfix SQL Server 2008 to a failover cluster instance</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12181313-4356400411242422926?l=mssql2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.technet.com/b/mdegre/archive/2010/01/16/apply-a-sql-server-2008-service-pack-or-hotfix-to-a-failover-cluster-instance.aspx?us' title='Apply a service pack or hotfix SQL Server 2008 to a failover cluster instance'/><link rel='replies' type='application/atom+xml' href='http://mssql2000.blogspot.com/feeds/4356400411242422926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12181313&amp;postID=4356400411242422926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4356400411242422926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12181313/posts/default/4356400411242422926'/><link rel='alternate' type='text/html' href='http://mssql2000.blogspot.com/2010/11/apply-service-pack-or-hotfix-sql-server.html' title='Apply a service pack or hotfix SQL Server 2008 to a failover cluster instance'/><author><name>Patrick Alexander</name><uri>https://profiles.google.com/102485284935767693811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-OLCrhSnHD5A/AAAAAAAAAAI/AAAAAAAAKGI/VR0BHZudM70/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
