<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;D0AMRXw7fip7ImA9WhRQEU8.&quot;"><id>tag:blogger.com,1999:blog-5349971599411036250</id><updated>2011-12-05T14:56:24.206-08:00</updated><category term="SQL Server Performance" /><category term="tSQL" /><category term="Linked Servers" /><category term="SQL Server 2008" /><category term="SQL Programming" /><category term="SQL Server Replication" /><title>A DBA's Journal</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://allen-mcguire.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://allen-mcguire.blogspot.com/" /><author><name>Allen</name><uri>http://www.blogger.com/profile/00059206167740791657</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_rV-eziQLBZg/Sucu3fuBicI/AAAAAAAAAOw/J0FDOFuR26k/S220/1-allen.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/ADbasJournal" /><feedburner:info uri="adbasjournal" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://www.podnova.com/add.srf?url=http%3A%2F%2Ffeeds.feedburner.com%2FADbasJournal" src="http://www.podnova.com/img_chicklet_podnova.gif">Subscribe with Podnova</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FADbasJournal" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FADbasJournal" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FADbasJournal" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FADbasJournal" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://odeo.com/listen/subscribe?feed=http%3A%2F%2Ffeeds.feedburner.com%2FADbasJournal" src="http://odeo.com/img/badge-channel-black.gif">Subscribe with ODEO</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FADbasJournal" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FADbasJournal" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FADbasJournal" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FADbasJournal" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FADbasJournal" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FADbasJournal" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FADbasJournal" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FADbasJournal" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FADbasJournal" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FADbasJournal" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><entry gd:etag="W/&quot;D0AMRXw6eSp7ImA9WhRQEU8.&quot;"><id>tag:blogger.com,1999:blog-5349971599411036250.post-5016898251587554937</id><published>2011-12-05T13:30:00.001-08:00</published><updated>2011-12-05T14:56:24.211-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-05T14:56:24.211-08:00</app:edited><title>SQLIO - Testing, Round 1</title><content type="html">&lt;div style="text-align: left;"&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;For the past couple weeks I've been doing some analysis on the database environment I'm administering.  I figured that is a great place to get my feet wet at my new position.  It forces me to really dive in and understand the storage subsystem, which for me is an EMC CX3-20 SAN. &amp;nbsp;The other significant components include the QLogic QLA2460 HBAs and the Brocade 5000 switches. &amp;nbsp;All-in-all the environment seems more than sufficient to support a Microsoft Dynamics AX implementation.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;My research was two-fold: first, I wanted to understand the theoretical limits of each component. &amp;nbsp;Then I used SQLIO - which isn't really a SQL tool at all - to gather some actual metrics. &amp;nbsp;I've found that you can't really just line up your expectations with the results because of some rather obscure, yet significant items (cache, for example).&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;I proceeded to document everything I could, often learning and researching along the way:&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;First, I started by examining the partition offset and file allocation unit size for each logical disk. &amp;nbsp;&lt;/span&gt;Apparently&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;this used to be a little more cumbersome pre-W2K8, but I'm on W2K8 R2 so the partition offset was 65,536 bytes (64KB)&amp;nbsp;&lt;/span&gt;across&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;the aboard. &amp;nbsp;I retrieved this by doing to a command prompt and typing issuing the following:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;i&gt;wmic partition get BlockSize, StartingOffset, Name, Index&lt;/i&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;To get the file allocation unit size for each disk, I issue the following command(s):&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;i&gt;fsutil fsinfo ntfsinfo &amp;lt;drive:&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/blockquote&gt;
In most cases this value should be 65,536 bytes (64K) for partitions on which SQL Server resides.&lt;br /&gt;
&lt;br /&gt;
The HBAs have what is called an "execution throttle", which by definition "signifies the maximum number of outstanding commands that can execute on any one HBA port". &amp;nbsp;Each of my nodes has two HBA adapters - some had an execution throttle of 16 while others were at 256. &amp;nbsp;I standardized them all by going with the upper limit and will adjust accordingly. &amp;nbsp;What I'm trying to accomplish is to develop a baseline from which to compare future results in the event I reconfigure anything. &amp;nbsp;Also, according to QLogic these HBAs can handle 150,000 IOPS and roughly 750MB/sec throughput in full duplex.&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
Next, I determined that all devices were communicating at 4Gbps. &amp;nbsp;The switches have a maximum aggregate of 256Gbps end-to-end.&lt;br /&gt;
&lt;br /&gt;
It's also important to understand queue depth per port on the SAN. &amp;nbsp;The maximum IOPS that can be handled on a given port at a given time is 2048 for EMC arrays. &amp;nbsp;That's the maximum, however. &amp;nbsp;What we can do is calculate the queue depth for each LUN using the following formula (in my case anyway): (#data disks x 14) + 32. &amp;nbsp;So in a RAID 10, 10 disk array you will have a queue depth of (5 x 14) + 32, or 108. &amp;nbsp;Ultimately we want to ensure no single LUN receives more parallel requests than it can handle. &amp;nbsp;That also goes for the port, so once you have calculated the queue depth for each LUN, sum them up to determine the total theoretical queue depth you could support, although very unlikely it would ever happen.&lt;br /&gt;
&lt;br /&gt;
This is going to be a work in-progress, but if you have any feedback or suggestions, this is relatively new territory for me as a DBA. &amp;nbsp;It's quite interesting though!&lt;br /&gt;
&lt;br /&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/5349971599411036250-5016898251587554937?l=allen-mcguire.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/B4iZ6FuW29lxrqGt7wK81K5KA00/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B4iZ6FuW29lxrqGt7wK81K5KA00/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/B4iZ6FuW29lxrqGt7wK81K5KA00/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B4iZ6FuW29lxrqGt7wK81K5KA00/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ADbasJournal/~4/02jPzPk6Drg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://allen-mcguire.blogspot.com/feeds/5016898251587554937/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://allen-mcguire.blogspot.com/2011/12/sqlio-testing-round-1.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/5016898251587554937?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/5016898251587554937?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ADbasJournal/~3/02jPzPk6Drg/sqlio-testing-round-1.html" title="SQLIO - Testing, Round 1" /><author><name>Allen</name><uri>http://www.blogger.com/profile/00059206167740791657</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_rV-eziQLBZg/Sucu3fuBicI/AAAAAAAAAOw/J0FDOFuR26k/S220/1-allen.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://allen-mcguire.blogspot.com/2011/12/sqlio-testing-round-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUINSXYzeSp7ImA9WhRRF0o.&quot;"><id>tag:blogger.com,1999:blog-5349971599411036250.post-5155603495793602727</id><published>2011-12-01T13:04:00.001-08:00</published><updated>2011-12-01T13:06:38.881-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-01T13:06:38.881-08:00</app:edited><title>Blogging in 2012</title><content type="html">I must admit I haven't blogged nearly as much as I had hoped I would, but 2012 is going to be a year where I really focus on getting my thoughts, discoveries and useful tips into my blog. &amp;nbsp;I look forward to creating a bit of a community to share ideas and experiences.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5349971599411036250-5155603495793602727?l=allen-mcguire.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UNi5Tc02XMgxHJAfoJHyo4ZZAmE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UNi5Tc02XMgxHJAfoJHyo4ZZAmE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UNi5Tc02XMgxHJAfoJHyo4ZZAmE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UNi5Tc02XMgxHJAfoJHyo4ZZAmE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ADbasJournal/~4/nbjA03ub5go" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://allen-mcguire.blogspot.com/feeds/5155603495793602727/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://allen-mcguire.blogspot.com/2011/12/blogging-in-2012.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/5155603495793602727?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/5155603495793602727?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ADbasJournal/~3/nbjA03ub5go/blogging-in-2012.html" title="Blogging in 2012" /><author><name>Allen</name><uri>http://www.blogger.com/profile/00059206167740791657</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_rV-eziQLBZg/Sucu3fuBicI/AAAAAAAAAOw/J0FDOFuR26k/S220/1-allen.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://allen-mcguire.blogspot.com/2011/12/blogging-in-2012.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMBSXc6fyp7ImA9WhRRF0o.&quot;"><id>tag:blogger.com,1999:blog-5349971599411036250.post-1828675145649667076</id><published>2011-12-01T12:58:00.001-08:00</published><updated>2011-12-01T13:04:18.917-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-01T13:04:18.917-08:00</app:edited><title>Grant Full Control in SharePoint 2010</title><content type="html">To grant a user or group administrator access to a given web application do as follows:&lt;br /&gt;
&lt;br /&gt;
1) Open SharePoint Central Administration.&lt;br /&gt;
2) Click on &lt;b&gt;Application Management&lt;/b&gt; in the left menu.&lt;br /&gt;
3) Under &lt;b&gt;Web Applications&lt;/b&gt; in content area, click &lt;b&gt;Manage web applications&lt;/b&gt;.&lt;br /&gt;
4) Highlight the Name of the web application in the content area.&lt;br /&gt;
5) In the ribbon, click &lt;b&gt;User Policy&lt;/b&gt; - this will launch the &lt;b&gt;Policy for Web Application&lt;/b&gt; window.&lt;br /&gt;
6) Click the &lt;b&gt;Add Users&lt;/b&gt; button, add the user and click OK.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;That should do it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5349971599411036250-1828675145649667076?l=allen-mcguire.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VNiYQQOge217nVq-udWQbE9Kn7c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VNiYQQOge217nVq-udWQbE9Kn7c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VNiYQQOge217nVq-udWQbE9Kn7c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VNiYQQOge217nVq-udWQbE9Kn7c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ADbasJournal/~4/1m-iwMv02OI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://allen-mcguire.blogspot.com/feeds/1828675145649667076/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://allen-mcguire.blogspot.com/2011/12/grant-full-control-in-sharepoint-2010.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/1828675145649667076?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/1828675145649667076?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ADbasJournal/~3/1m-iwMv02OI/grant-full-control-in-sharepoint-2010.html" title="Grant Full Control in SharePoint 2010" /><author><name>Allen</name><uri>http://www.blogger.com/profile/00059206167740791657</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_rV-eziQLBZg/Sucu3fuBicI/AAAAAAAAAOw/J0FDOFuR26k/S220/1-allen.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://allen-mcguire.blogspot.com/2011/12/grant-full-control-in-sharepoint-2010.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QEQXg8eSp7ImA9WhZUFkw.&quot;"><id>tag:blogger.com,1999:blog-5349971599411036250.post-3731690129648297323</id><published>2011-06-09T04:35:00.000-07:00</published><updated>2011-06-09T04:35:00.671-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-09T04:35:00.671-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server Performance" /><title>Identify Unused Indexes</title><content type="html">Unused indexes have all sorts of negative affects on your database environment, from disk space consumption to performance related issues. &amp;nbsp;As queries and stored procedures change over time, so may the usage of indexes, often times to the point where they are only maintained (inserts/updates) but hardly read from. &amp;nbsp;Identifying these indexes can be done using the following script - you can adjust it to suit your needs.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
-- Possible bad Indexes (writes &gt; reads)&lt;br /&gt;
DECLARE @dbid INT&lt;br /&gt;
SELECT  @dbid = DB_ID()&lt;br /&gt;
&lt;br /&gt;
SELECT  'Drop Statement' = 'DROP INDEX ' + i.name + ' ON [dbo].'&lt;br /&gt;
        + OBJECT_NAME(s.object_id)&lt;br /&gt;
       ,CASE user_seeks + user_scans + user_lookups&lt;br /&gt;
          WHEN 0 THEN 100&lt;br /&gt;
          ELSE (ROUND(((user_updates)&lt;br /&gt;
                       / CAST((user_updates + user_seeks + user_scans&lt;br /&gt;
                               + user_lookups) AS FLOAT)),4)) * 100&lt;br /&gt;
        END AS '% Writes'&lt;br /&gt;
       ,'Table Name' = OBJECT_NAME(s.object_id)&lt;br /&gt;
       ,'Index Name' = i.name&lt;br /&gt;
       ,i.fill_factor&lt;br /&gt;
       ,'Total Writes' = user_updates&lt;br /&gt;
       ,'Total Reads' = user_seeks + user_scans + user_lookups&lt;br /&gt;
       ,'Difference' = user_updates - (user_seeks + user_scans + user_lookups)&lt;br /&gt;
FROM    sys.dm_db_index_usage_stats AS s&lt;br /&gt;
        INNER JOIN sys.indexes AS i ON s.object_id = i.object_id&lt;br /&gt;
                                       AND i.index_id = s.index_id&lt;br /&gt;
WHERE   OBJECTPROPERTY(s.object_id,'IsUserTable') = 1&lt;br /&gt;
        AND s.database_id = @dbid&lt;br /&gt;
        AND user_updates &gt; (user_seeks + user_&lt;br /&gt;
scans + user_lookups)&lt;br /&gt;
        AND i.index_id NOT IN (0,1)&lt;br /&gt;
ORDER BY '% Writes' DESC&lt;br /&gt;
       ,'Total Writes' DESC&lt;br /&gt;
       ,'Total Reads' ASC&lt;br /&gt;
&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5349971599411036250-3731690129648297323?l=allen-mcguire.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MiPixAftwKfZ5nNwh2uBxfNqO8U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MiPixAftwKfZ5nNwh2uBxfNqO8U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MiPixAftwKfZ5nNwh2uBxfNqO8U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MiPixAftwKfZ5nNwh2uBxfNqO8U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ADbasJournal/~4/QxBDPkYNh28" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://allen-mcguire.blogspot.com/feeds/3731690129648297323/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://allen-mcguire.blogspot.com/2011/06/identify-unused-indexes.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/3731690129648297323?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/3731690129648297323?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ADbasJournal/~3/QxBDPkYNh28/identify-unused-indexes.html" title="Identify Unused Indexes" /><author><name>Allen</name><uri>http://www.blogger.com/profile/00059206167740791657</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_rV-eziQLBZg/Sucu3fuBicI/AAAAAAAAAOw/J0FDOFuR26k/S220/1-allen.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://allen-mcguire.blogspot.com/2011/06/identify-unused-indexes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUFQXo7fSp7ImA9WhRTFkU.&quot;"><id>tag:blogger.com,1999:blog-5349971599411036250.post-5382046766584977644</id><published>2011-01-28T10:07:00.000-08:00</published><updated>2011-11-07T08:26:50.405-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-07T08:26:50.405-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2008" /><category scheme="http://www.blogger.com/atom/ns#" term="Linked Servers" /><title>Creating a SQL Server Linked Server to MySQL</title><content type="html">If you get the following error after setting up a SQL Server Linked Server to a MySQL database:&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;mysql linked server error 7303 is not allowed to connect&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;First, take note of the IP address of the server that the linked server was created on. &amp;nbsp;Then use MySQL Workbench to connect to the MySQL instance using SSH and run the following command:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP&amp;nbsp;&lt;/div&gt;&lt;div&gt;ON database&lt;database&gt;.*&amp;nbsp;&lt;/database&gt;&lt;/div&gt;&lt;div&gt;TO user&lt;user&gt;@ipaddress&lt;ip_address&gt;&lt;/ip_address&gt;&lt;/user&gt;&lt;/div&gt;&lt;div&gt;IDENTIFIED BY 'password&lt;password&gt;';&lt;/password&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;That's it!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5349971599411036250-5382046766584977644?l=allen-mcguire.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nLzQXJnOd8d0e6jY2u_Z5vONR4U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nLzQXJnOd8d0e6jY2u_Z5vONR4U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nLzQXJnOd8d0e6jY2u_Z5vONR4U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nLzQXJnOd8d0e6jY2u_Z5vONR4U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ADbasJournal/~4/rkkte4xKShQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://allen-mcguire.blogspot.com/feeds/5382046766584977644/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://allen-mcguire.blogspot.com/2011/01/creating-sql-server-linked-server-to.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/5382046766584977644?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/5382046766584977644?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ADbasJournal/~3/rkkte4xKShQ/creating-sql-server-linked-server-to.html" title="Creating a SQL Server Linked Server to MySQL" /><author><name>Allen</name><uri>http://www.blogger.com/profile/00059206167740791657</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_rV-eziQLBZg/Sucu3fuBicI/AAAAAAAAAOw/J0FDOFuR26k/S220/1-allen.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://allen-mcguire.blogspot.com/2011/01/creating-sql-server-linked-server-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8CQng9fyp7ImA9WxFWFEU.&quot;"><id>tag:blogger.com,1999:blog-5349971599411036250.post-7967988199217962435</id><published>2010-06-02T07:27:00.000-07:00</published><updated>2010-06-02T07:27:43.667-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-02T07:27:43.667-07:00</app:edited><title>Creating a Full-Text Index using Indexed View</title><content type="html">Since this isn't something I set up every day, I wanted to journal the process of creating a full text index using an indexed view.&lt;br /&gt;
&lt;br /&gt;
First, you have to create your view, ensuring that there is a unique identifier - that is a prerequisite for creating an indexed view.&lt;br /&gt;
&lt;br /&gt;
Secondly, you have to create the index using the following syntax:&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt;CREATE UNIQUE CLUSTERED INDEX IX_ViewName_ColumnName ON ViewName (ColumnName)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Now that you have an indexed view, you can go ahead and create the&amp;nbsp;full text index using that view.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5349971599411036250-7967988199217962435?l=allen-mcguire.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dUamoqMT9IBIevZxzkt2IliQW_E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dUamoqMT9IBIevZxzkt2IliQW_E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dUamoqMT9IBIevZxzkt2IliQW_E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dUamoqMT9IBIevZxzkt2IliQW_E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ADbasJournal/~4/zSq1gW1uwjM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://allen-mcguire.blogspot.com/feeds/7967988199217962435/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://allen-mcguire.blogspot.com/2010/06/creating-full-text-index-using-indexed.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/7967988199217962435?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/7967988199217962435?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ADbasJournal/~3/zSq1gW1uwjM/creating-full-text-index-using-indexed.html" title="Creating a Full-Text Index using Indexed View" /><author><name>Allen</name><uri>http://www.blogger.com/profile/00059206167740791657</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_rV-eziQLBZg/Sucu3fuBicI/AAAAAAAAAOw/J0FDOFuR26k/S220/1-allen.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://allen-mcguire.blogspot.com/2010/06/creating-full-text-index-using-indexed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MESH0zeCp7ImA9WxBVEE4.&quot;"><id>tag:blogger.com,1999:blog-5349971599411036250.post-2380244422620729034</id><published>2010-02-12T20:30:00.001-08:00</published><updated>2010-02-12T20:30:09.380-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-12T20:30:09.380-08:00</app:edited><title>New Data Types in SQL Server 2008</title><content type="html">&lt;a href="http://www.simple-talk.com/sql/learn-sql-server/sql-server-2008-the-new-data-types/"&gt;http://www.simple-talk.com/sql/learn-sql-server/sql-server-2008-the-new-data-types/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Great post for reference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5349971599411036250-2380244422620729034?l=allen-mcguire.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/I0yvmHGR0FZbmKGssclMDF7sUqM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/I0yvmHGR0FZbmKGssclMDF7sUqM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/I0yvmHGR0FZbmKGssclMDF7sUqM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/I0yvmHGR0FZbmKGssclMDF7sUqM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ADbasJournal/~4/D1_Ln3d3pyY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://allen-mcguire.blogspot.com/feeds/2380244422620729034/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://allen-mcguire.blogspot.com/2010/02/new-data-types-in-sql-server-2008.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/2380244422620729034?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/2380244422620729034?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ADbasJournal/~3/D1_Ln3d3pyY/new-data-types-in-sql-server-2008.html" title="New Data Types in SQL Server 2008" /><author><name>Allen</name><uri>http://www.blogger.com/profile/00059206167740791657</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_rV-eziQLBZg/Sucu3fuBicI/AAAAAAAAAOw/J0FDOFuR26k/S220/1-allen.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://allen-mcguire.blogspot.com/2010/02/new-data-types-in-sql-server-2008.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIGQnw9eCp7ImA9WxBVEEw.&quot;"><id>tag:blogger.com,1999:blog-5349971599411036250.post-9050106474953168559</id><published>2010-02-12T14:08:00.000-08:00</published><updated>2010-02-12T14:08:43.260-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-12T14:08:43.260-08:00</app:edited><title>Selecting a random sample</title><content type="html">If you are interested in querying for a random X number of records, or TOP Y percent of records, you can use the following syntax:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;SELECT TOP 5&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;FROM &amp;nbsp; &amp;nbsp;YourTable&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;ORDER BY NEWID()&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt;SELECT TOP 50 PERCENT&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt;FROM &amp;nbsp; &amp;nbsp;YourTable&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt;ORDER BY NEWID()&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5349971599411036250-9050106474953168559?l=allen-mcguire.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Y2dw7tx3H1x3UcLktHeJP0pS2CY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Y2dw7tx3H1x3UcLktHeJP0pS2CY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Y2dw7tx3H1x3UcLktHeJP0pS2CY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Y2dw7tx3H1x3UcLktHeJP0pS2CY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ADbasJournal/~4/hSDcgXOQUp0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://allen-mcguire.blogspot.com/feeds/9050106474953168559/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://allen-mcguire.blogspot.com/2010/02/selecting-random-sample.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/9050106474953168559?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/9050106474953168559?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ADbasJournal/~3/hSDcgXOQUp0/selecting-random-sample.html" title="Selecting a random sample" /><author><name>Allen</name><uri>http://www.blogger.com/profile/00059206167740791657</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_rV-eziQLBZg/Sucu3fuBicI/AAAAAAAAAOw/J0FDOFuR26k/S220/1-allen.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://allen-mcguire.blogspot.com/2010/02/selecting-random-sample.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAAQH05eCp7ImA9WxBWGUQ.&quot;"><id>tag:blogger.com,1999:blog-5349971599411036250.post-7440082869795195305</id><published>2010-02-12T09:43:00.000-08:00</published><updated>2010-02-12T09:45:41.320-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-12T09:45:41.320-08:00</app:edited><title>Random Number Generator</title><content type="html">&lt;span class="Apple-style-span" style="color: #6aa84f;"&gt;---- Create the variables for the random number generation&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt;DECLARE @Random INT ;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt;DECLARE @Upper INT ;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt;DECLARE @Lower INT&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #6aa84f;"&gt;---- This will create a random number between 1 and 999&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt;SET @Lower = 1&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #6aa84f;"&gt;---- The lowest random number&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt;SET @Upper = 999&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #6aa84f;"&gt;---- The highest random number&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt;SELECT &amp;nbsp;@Random = ROUND(( ( @Upper - @Lower ) * RAND() + @Lower ), 0)&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt;SELECT &amp;nbsp;@Random&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5349971599411036250-7440082869795195305?l=allen-mcguire.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/x4RluPTTKw0OKo68xzFclfBrxIo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/x4RluPTTKw0OKo68xzFclfBrxIo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/x4RluPTTKw0OKo68xzFclfBrxIo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/x4RluPTTKw0OKo68xzFclfBrxIo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ADbasJournal/~4/6Xkvw7qSgcc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://allen-mcguire.blogspot.com/feeds/7440082869795195305/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://allen-mcguire.blogspot.com/2010/02/random-number-generator.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/7440082869795195305?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/7440082869795195305?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ADbasJournal/~3/6Xkvw7qSgcc/random-number-generator.html" title="Random Number Generator" /><author><name>Allen</name><uri>http://www.blogger.com/profile/00059206167740791657</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_rV-eziQLBZg/Sucu3fuBicI/AAAAAAAAAOw/J0FDOFuR26k/S220/1-allen.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://allen-mcguire.blogspot.com/2010/02/random-number-generator.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUGSHg4eip7ImA9WxBWGUw.&quot;"><id>tag:blogger.com,1999:blog-5349971599411036250.post-2747396805466802108</id><published>2010-02-11T09:43:00.000-08:00</published><updated>2010-02-11T09:43:49.632-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-11T09:43:49.632-08:00</app:edited><title>Checking if a table exists before dropping it</title><content type="html">I often see folks create "temporary" tables that are not true #temp tables - with the intent of refreshing the entire table's contents. &amp;nbsp;This could be for data warehousing purposes or to simply have a table of aggregated data in your OLTP system for reporting purposes. &amp;nbsp;To ensure the table is &lt;i&gt;&lt;b&gt;not &lt;/b&gt;&lt;/i&gt;there before you execute your SELECT INTO statement, use the following syntax:&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;IF OBJECT_ID('YourTempTable') IS NOT NULL&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; DROP TABLE YourTempTable&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;-- then populate the table with your data&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;SELECT * INTO YourTempTable FROM...&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Pretty straight forward.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5349971599411036250-2747396805466802108?l=allen-mcguire.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RX0x0XYuuZfh-q0aYyZfFcscXDc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RX0x0XYuuZfh-q0aYyZfFcscXDc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RX0x0XYuuZfh-q0aYyZfFcscXDc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RX0x0XYuuZfh-q0aYyZfFcscXDc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ADbasJournal/~4/KcN_sbAgNhA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://allen-mcguire.blogspot.com/feeds/2747396805466802108/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://allen-mcguire.blogspot.com/2010/02/checking-if-table-exists-before.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/2747396805466802108?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/2747396805466802108?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ADbasJournal/~3/KcN_sbAgNhA/checking-if-table-exists-before.html" title="Checking if a table exists before dropping it" /><author><name>Allen</name><uri>http://www.blogger.com/profile/00059206167740791657</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_rV-eziQLBZg/Sucu3fuBicI/AAAAAAAAAOw/J0FDOFuR26k/S220/1-allen.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://allen-mcguire.blogspot.com/2010/02/checking-if-table-exists-before.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YHRn48eSp7ImA9WxNUEko.&quot;"><id>tag:blogger.com,1999:blog-5349971599411036250.post-7915679655692138691</id><published>2009-11-03T12:12:00.000-08:00</published><updated>2009-11-03T12:12:17.071-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T12:12:17.071-08:00</app:edited><title>Replication, Restores, and Reseeding Identity Columns</title><content type="html">I recently ran into an issue where, after restoring a replicated database, all the identity columns were seeded to start over at 1.&amp;nbsp; To make sense of my situation, I'll describe it a bit first.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Situation&lt;/b&gt;&lt;br /&gt;
I have database servers in multiple geographic locations: our production server is off-site while our development environment is on-site.&amp;nbsp; Being a smaller company, our resources to get high-speed lines into our office are limited and not real high priority right now.&amp;nbsp; I do, however, have a replication subscriber on-site that subscribes to our production database - works great.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Problem&lt;/b&gt;&lt;br /&gt;
In order to have a fresh testing environment, I wanted to restore our production database into our development environment each morning so developers had fresh live data to work against.&amp;nbsp; Problem is, to copy a production backup from our remote location on-site would take a half day whilst consuming most of our bandwidth.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Solution&lt;/b&gt;&lt;br /&gt;
I decided to run a backup of our on-site replicated database and restore directly from that backup.&amp;nbsp; Works great - takes 15 minutes or so.&amp;nbsp; However, as described earlier, the identity columns are not seeded properly - developers were getting primary key violation errors because of this.&lt;br /&gt;
&lt;br /&gt;
Here is how you can resolve this issue in a single script, which for me I included as a step in my restore process.&amp;nbsp; Basically I'm reseeding all the user tables that have identity columns.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="color: blue;"&gt;SET NOCOUNT ON&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;DECLARE @table_name VARCHAR(200),&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @hasidentity TINYINT&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;DECLARE table_cursor CURSOR&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FOR SELECT&amp;nbsp; TABLE_NAME&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM&amp;nbsp;&amp;nbsp;&amp;nbsp; INFORMATION_SCHEMA.TABLES&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE&amp;nbsp;&amp;nbsp; TABLE_TYPE = 'BASE TABLE'&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND TABLE_CATALOG = 'database-name'&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ORDER BY TABLES.TABLE_NAME&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;OPEN table_cursor&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;FETCH NEXT FROM table_cursor INTO @table_name&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;WHILE @@FETCH_STATUS = 0&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&amp;nbsp; @hasidentity = OBJECTPROPERTY(OBJECT_ID(@table_name),&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'TableHasIdentity')&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF @hasidentity = 1 &lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DBCC CHECKIDENT ( @table_name, RESEED )&amp;nbsp; &lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH NEXT FROM table_cursor INTO @table_name&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END &lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;CLOSE table_cursor&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;DEALLOCATE table_cursor&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5349971599411036250-7915679655692138691?l=allen-mcguire.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RsGCrpcfGuP64QJWmn3BNCue2v4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RsGCrpcfGuP64QJWmn3BNCue2v4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RsGCrpcfGuP64QJWmn3BNCue2v4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RsGCrpcfGuP64QJWmn3BNCue2v4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ADbasJournal/~4/UCqR_6bbMy0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://allen-mcguire.blogspot.com/feeds/7915679655692138691/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://allen-mcguire.blogspot.com/2009/11/replication-restores-and-reseeding.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/7915679655692138691?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/7915679655692138691?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ADbasJournal/~3/UCqR_6bbMy0/replication-restores-and-reseeding.html" title="Replication, Restores, and Reseeding Identity Columns" /><author><name>Allen</name><uri>http://www.blogger.com/profile/00059206167740791657</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_rV-eziQLBZg/Sucu3fuBicI/AAAAAAAAAOw/J0FDOFuR26k/S220/1-allen.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://allen-mcguire.blogspot.com/2009/11/replication-restores-and-reseeding.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEGQ3Y-fSp7ImA9WxNUEE4.&quot;"><id>tag:blogger.com,1999:blog-5349971599411036250.post-5454262394569711550</id><published>2009-10-31T17:50:00.000-07:00</published><updated>2009-10-31T17:50:22.855-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-31T17:50:22.855-07:00</app:edited><title>SQL Server: Map Orphaned Users</title><content type="html">I've put together the following stored procedure that will map ''orphaned" users in a database.&amp;nbsp; This often happens when you restore a database into a new environment.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote style="color: blue;"&gt;USE [master]&lt;br /&gt;
GO&lt;br /&gt;
/****** Object:&amp;nbsp; StoredProcedure [dbo].[sp_map_orphaned_db_users]&amp;nbsp;&amp;nbsp;&amp;nbsp; Script Date: 10/31/2009 19:44:43 ******/&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;
&amp;nbsp;* PROCEDURE NAME:&amp;nbsp; sp_map_orphaned_db_users&lt;br /&gt;
&amp;nbsp;* DESCRIPTION:&lt;br /&gt;
&amp;nbsp;* Maps orphaned database users to server logins of the same name.&lt;br /&gt;
&amp;nbsp;*&lt;br /&gt;
&amp;nbsp;*/&lt;br /&gt;
ALTER PROCEDURE [dbo].[sp_map_orphaned_db_users]&lt;br /&gt;
(&lt;br /&gt;
&amp;nbsp;@with_report BIT = NULL&lt;br /&gt;
,@database NVARCHAR(128) = NULL&lt;br /&gt;
,@report_only BIT = NULL /* Pass NULL or 0(zero) to execute and 1 to show actions that would be taken. */&lt;br /&gt;
)&lt;br /&gt;
AS &lt;br /&gt;
BEGIN&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SET NOCOUNT ON&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @report_only = ISNULL(@report_only, 0)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,@database = ISNULL(RTRIM(LTRIM(@database)), '')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,@with_report = ISNULL(@with_report, 0)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; DECLARE&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @UserName SYSNAME&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,@dbname SYSNAME&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,@sql NVARCHAR(4000)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,@orphanTableName NVARCHAR(128)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @orphanTableName = '##orphans_' + REPLACE(CAST(NEWID() AS NVARCHAR(128)), '-', '')&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; CREATE TABLE #orphans&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UserName SYSNAME&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ,UserSID VARBINARY(85)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ,dbname SYSNAME&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @sql = N'&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IF OBJECT_ID(''' + @orphanTableName + ''') IS NOT NULL&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; DROP TABLE ' + @orphanTableName + '&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; CREATE TABLE ' + @orphanTableName + '&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; UserName SYSNAME,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; UserSID VARBINARY(85),&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dbname SYSNAME&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; )'&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; EXEC (@sql)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; IF @database = '' &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @sql = N'&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; USE [?]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; CREATE TABLE #report&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; UserName SYSNAME,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; UserSID VARBINARY(85)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO #report&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; EXEC sp_change_users_login @Action=''Report''&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ALTER TABLE #report&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ADD dbname SYSNAME NULL&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; UPDATE #report&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; SET dbname = ''?''&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO ' + @orphanTableName + '&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; UserName,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; UserSID,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dbname&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; FROM #report'&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXEC sp_msforeachdb @sql&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @sql = '&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; USE [' + @database + ']&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; CREATE TABLE #report&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; UserName SYSNAME,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; UserSID VARBINARY(85)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO #report&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; EXEC sp_change_users_login @Action=''Report''&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ALTER TABLE #report&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ADD dbname SYSNAME NULL&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; UPDATE #report&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; SET dbname = ''' + @database + '''&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO ' + @orphanTableName + '&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; UserName,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; UserSID,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dbname&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; FROM #report'&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXEC (@sql)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @sql = N'&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO #orphans&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; UserName,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; UserSID,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dbname&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; FROM ' + @orphanTableName&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; EXEC (@sql)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @sql = N'&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IF OBJECT_ID(''' + @orphanTableName + ''') IS NOT NULL&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; DROP TABLE ' + @orphanTableName + '&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; END'&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; EXEC (@sql)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; DECLARE @userCount INT&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @userCount = COUNT(*)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #orphans o&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INNER JOIN master.sys.syslogins l ON l.[name] = o.UserName&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; DECLARE rc CURSOR LOCAL FAST_FORWARD&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FOR SELECT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; o.UserName&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,o.dbname&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #orphans o&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INNER JOIN master.sys.syslogins l ON l.[name] = o.UserName&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; OPEN rc&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH NEXT FROM rc INTO @UserName, @dbname&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; WHILE @@FETCH_STATUS = 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @sql = 'USE ' + @dbname + ' EXEC sp_change_users_login @Action=''update_one'', @UserNamePattern=''' + @UserName + ''', @LoginName=''' + @UserName + ''''&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF @report_only = 1 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT 'WOULD HAVE ASSOCIATED USER [' + @UserName + '] IN DATABASE [' + @dbname + '] WITH SERVER LOGIN [' + @UserName + ']'&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXEC (@sql)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF @with_report = 1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND @report_only = 0 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT 'ASSOCIATED USER [' + @UserName + '] IN DATABASE [' + @dbname + '] WITH SERVER LOGIN [' + @UserName + ']'&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH NEXT FROM rc INTO @UserName, @dbname&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (@userCount &amp;gt; 0) &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT CAST(@userCount AS NVARCHAR(50)) + N' USERS PROCESSED.'&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT 'NO ORPHANED USERS TO PROCESS.'&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE rc&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; DEALLOCATE rc&lt;br /&gt;
END&lt;br /&gt;
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5349971599411036250-5454262394569711550?l=allen-mcguire.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JivMkYhfD5WEmK_QTtNA3G6vCRM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JivMkYhfD5WEmK_QTtNA3G6vCRM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JivMkYhfD5WEmK_QTtNA3G6vCRM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JivMkYhfD5WEmK_QTtNA3G6vCRM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ADbasJournal/~4/ZSJPxAoMy9k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://allen-mcguire.blogspot.com/feeds/5454262394569711550/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://allen-mcguire.blogspot.com/2009/10/sql-server-map-orphaned-users.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/5454262394569711550?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/5454262394569711550?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ADbasJournal/~3/ZSJPxAoMy9k/sql-server-map-orphaned-users.html" title="SQL Server: Map Orphaned Users" /><author><name>Allen</name><uri>http://www.blogger.com/profile/00059206167740791657</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_rV-eziQLBZg/Sucu3fuBicI/AAAAAAAAAOw/J0FDOFuR26k/S220/1-allen.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://allen-mcguire.blogspot.com/2009/10/sql-server-map-orphaned-users.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4DQ3w4cSp7ImA9WxNVGUw.&quot;"><id>tag:blogger.com,1999:blog-5349971599411036250.post-4927299803987243245</id><published>2009-10-30T07:46:00.000-07:00</published><updated>2009-10-30T07:46:12.239-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-30T07:46:12.239-07:00</app:edited><title>How to move an object from one schema to another</title><content type="html">There are various reasons you may wish to move an object to a different schema.&amp;nbsp; The reason may be for security purposes or simply for logical grouping.&amp;nbsp; No matter the reason, the syntax is rather simple:&lt;br /&gt;
&lt;blockquote style="color: blue;"&gt;ALTER SCHEMA newschema TRANSFER&amp;nbsp; oldschema.objectname&lt;br /&gt;
&lt;/blockquote&gt;Took me a bit to find this piece of information, so I found it a worthy post!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5349971599411036250-4927299803987243245?l=allen-mcguire.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ezb4Do4Q19o-k2S61E0Jw4-My80/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ezb4Do4Q19o-k2S61E0Jw4-My80/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ezb4Do4Q19o-k2S61E0Jw4-My80/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ezb4Do4Q19o-k2S61E0Jw4-My80/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ADbasJournal/~4/VhrWdCFCcUk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://allen-mcguire.blogspot.com/feeds/4927299803987243245/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://allen-mcguire.blogspot.com/2009/10/how-to-move-object-from-one-schema-to.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/4927299803987243245?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/4927299803987243245?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ADbasJournal/~3/VhrWdCFCcUk/how-to-move-object-from-one-schema-to.html" title="How to move an object from one schema to another" /><author><name>Allen</name><uri>http://www.blogger.com/profile/00059206167740791657</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_rV-eziQLBZg/Sucu3fuBicI/AAAAAAAAAOw/J0FDOFuR26k/S220/1-allen.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://allen-mcguire.blogspot.com/2009/10/how-to-move-object-from-one-schema-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AHRnw9fCp7ImA9WxNUEkU.&quot;"><id>tag:blogger.com,1999:blog-5349971599411036250.post-2425980151851324627</id><published>2009-10-29T08:21:00.000-07:00</published><updated>2009-11-03T14:02:17.264-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T14:02:17.264-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2008" /><category scheme="http://www.blogger.com/atom/ns#" term="tSQL" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Programming" /><title>Stored Procedure: Dynamic IN Clause Solution</title><content type="html">I'm sure many database programmers have run across the issue of wanting to pass a delimited string of values as a parameter, then using that in your IN clause.&amp;nbsp; Example:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;div style="color: blue;"&gt;CREATE PROCEDURE MyProc @StringOfValues VARCHAR(200)&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: blue;"&gt;AS&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: blue;"&gt;SELECT *&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: blue;"&gt;FROM table&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: blue;"&gt;WHERE column IN (@StringOfValues)&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;
To execute, you do the following:&lt;br /&gt;
EXEC MyProc '1,2,3'&lt;br /&gt;
&lt;br /&gt;
If the column data type is an integer, you will likely get the error "Conversion failed when converting the varchar value '1,2,3' to data type int."&amp;nbsp; Now, you could certainly create a string for the SQL statement - which is a pain to say the least - then EXEC(thestring), but let's look at a nice alternative to that.&lt;br /&gt;
&lt;br /&gt;
First, you will need a table valued function that allows you to pass in a delimited list of values:&lt;br /&gt;
&lt;blockquote style="color: blue;"&gt;CREATE FUNCTION [dbo].[ParamParser]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @delimString VARCHAR(255)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ,@delim CHAR(1)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;
RETURNS @paramtable TABLE ( id INT )&lt;br /&gt;
AS BEGIN&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; DECLARE @len INT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,@index INT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,@nextindex INT&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @len = DATALENGTH(@delimString)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @index = 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @nextindex = 0&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; WHILE ( @len &amp;gt;= @index )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @nextindex = CHARINDEX(@delim, @delimString, @index)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF ( @nextindex = 0 ) &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @nextindex = @len + 2&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT&amp;nbsp; @paramtable&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&amp;nbsp; SUBSTRING(@delimString, @index, @nextindex - @index)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @index = @nextindex + 1&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN&lt;br /&gt;
&amp;nbsp;&amp;nbsp; END&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
Now that you have that table valued function, you can rewrite your stored procedure as such:&lt;br /&gt;
&lt;blockquote&gt;&lt;div style="color: blue;"&gt;CREATE PROCEDURE MyProc @StringOfValues VARCHAR(200)&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: blue;"&gt;AS&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: blue;"&gt;SELECT *&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: blue;"&gt;FROM table&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: blue;"&gt;INNER JOIN dbo.ParamParser(@StringOfValues,',') tvf ON table.column = tvf.id&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;
When you then execute your stored procedure call, you get back the results as expected - filtered accordingly on your delimited string of values.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5349971599411036250-2425980151851324627?l=allen-mcguire.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jV3MsFoPaTeTBQNO2Irg_uCX_SI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jV3MsFoPaTeTBQNO2Irg_uCX_SI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jV3MsFoPaTeTBQNO2Irg_uCX_SI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jV3MsFoPaTeTBQNO2Irg_uCX_SI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ADbasJournal/~4/M1WpN4086Zk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://allen-mcguire.blogspot.com/feeds/2425980151851324627/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://allen-mcguire.blogspot.com/2009/10/stored-procedure-dynamic-in-clause.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/2425980151851324627?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/2425980151851324627?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ADbasJournal/~3/M1WpN4086Zk/stored-procedure-dynamic-in-clause.html" title="Stored Procedure: Dynamic IN Clause Solution" /><author><name>Allen</name><uri>http://www.blogger.com/profile/00059206167740791657</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_rV-eziQLBZg/Sucu3fuBicI/AAAAAAAAAOw/J0FDOFuR26k/S220/1-allen.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://allen-mcguire.blogspot.com/2009/10/stored-procedure-dynamic-in-clause.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04DQ3k5fCp7ImA9WxNVGE8.&quot;"><id>tag:blogger.com,1999:blog-5349971599411036250.post-4676523282586617935</id><published>2009-10-27T10:44:00.001-07:00</published><updated>2009-10-29T08:26:12.724-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-29T08:26:12.724-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2008" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server Replication" /><category scheme="http://www.blogger.com/atom/ns#" term="tSQL" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Programming" /><title>SQL 2008 Replication - Convert from TEXT to VARCHAR(MAX)</title><content type="html">SQL Server Replication has evidently come a long way since I began using it.  Back in the day it seemed like every action was equivalent to a visit to the dentist, but today after hours of searching and digging, I found the solution to my problem was actually quite simple.&lt;br /&gt;&lt;br /&gt;The task at hand was that that I had three columns that I wanted to convert from TEXT data types to VARCHAR(MAX).&lt;br /&gt;&lt;br /&gt;First I tried the obvious: simply changing the data type via the SSMS GUI, but received the following error "Unable to modify table.  Cannot drop the table 'tablename&lt;tablename&gt;' because it is being used for replication."  Strike one.&lt;br /&gt;&lt;br /&gt;Next, I tried to script out my changes, but SSMS gave me a pretty awful script that basically created a temporary table, migrated the data, dropped the original, and renamed the temporary table back.  That just didn't sound like a sound plan in a replicated environment.&lt;br /&gt;&lt;br /&gt;Then I started investigating the replication stored procedures to see if there was one that allowed me to change the properties of an article (table in this case), to no avail.&lt;br /&gt;&lt;br /&gt;Continuing on, I considered removing the article from the publication, modifying the column, then adding it back into the publication.  Now, while I figured this method would work, I wanted to try one last thing:  I did recall reading that running the raw ALTER TABLE ALTER COLUMN command may work, and having not tried that, I gave it a shot.&lt;br /&gt;&lt;br /&gt;I opened a new query window and ran the following:&lt;br /&gt;ALTER TABLE &lt;/tablename&gt;tablename&lt;tablename&gt; &lt;tablename&gt;ALTER COLUMN columnname &lt;column&gt; VARCHAR(MAX)&lt;br /&gt;&lt;br /&gt;BINGO!  I checked my subscribers and within seconds they too inherited the schema change (which BTW is an option you can select on the publication properties).&lt;br /&gt;&lt;br /&gt;Too easy... but had to share.  Hopefully it sames someone some time down the road.&lt;/column&gt;&lt;/tablename&gt;&lt;/tablename&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5349971599411036250-4676523282586617935?l=allen-mcguire.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AezawR4iaOqexjxjgbnMWiMaj18/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AezawR4iaOqexjxjgbnMWiMaj18/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AezawR4iaOqexjxjgbnMWiMaj18/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AezawR4iaOqexjxjgbnMWiMaj18/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ADbasJournal/~4/XTBxT86rR7k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://allen-mcguire.blogspot.com/feeds/4676523282586617935/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://allen-mcguire.blogspot.com/2009/10/sql-2008-replication-convert-from-text.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/4676523282586617935?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5349971599411036250/posts/default/4676523282586617935?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ADbasJournal/~3/XTBxT86rR7k/sql-2008-replication-convert-from-text.html" title="SQL 2008 Replication - Convert from TEXT to VARCHAR(MAX)" /><author><name>Allen</name><uri>http://www.blogger.com/profile/00059206167740791657</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_rV-eziQLBZg/Sucu3fuBicI/AAAAAAAAAOw/J0FDOFuR26k/S220/1-allen.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://allen-mcguire.blogspot.com/2009/10/sql-2008-replication-convert-from-text.html</feedburner:origLink></entry></feed>

