<?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-6806992453823338600</id><updated>2012-01-27T08:39:32.622-05:00</updated><category term='Books Online'/><category term='xSQL'/><category term='SQL Server 2008'/><category term='Certification'/><category term='Daylight Saving Time'/><category term='70-443'/><category term='Trigger'/><category term='GUID'/><category term='system database'/><category term='Replication'/><category term='Restore'/><category term='Service Pack'/><category term='SQL Server 2005'/><category term='msdb'/><category term='Delete'/><category term='70-431'/><category term='Exam'/><category term='Trace'/><category term='SSMS'/><category term='Ebook'/><category term='REVERT'/><category term='DDL'/><category term='EXECUTE AS'/><category term='Transaction Log'/><category term='Execution Plan'/><category term='File'/><category term='Profiler'/><category term='Backup'/><category term='MCITP'/><category term='70-444'/><category term='NEWID'/><category term='RowGUID'/><category term='MCTS'/><category term='model'/><category term='Virtualization'/><category term='SSMS Tools Pack'/><category term='master'/><category term='Unemployment'/><title type='text'>SQL Server Newbie</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>47</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-5751359974871012379</id><published>2012-01-23T10:14:00.000-05:00</published><updated>2012-01-23T10:15:34.338-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='master'/><category scheme='http://www.blogger.com/atom/ns#' term='system database'/><category scheme='http://www.blogger.com/atom/ns#' term='Restore'/><category scheme='http://www.blogger.com/atom/ns#' term='msdb'/><category scheme='http://www.blogger.com/atom/ns#' term='model'/><title type='text'>Restoring SYSTEM databases</title><content type='html'>I had the opportunity to restore a few system databases due to disk inconsistency/corruption. Actually my first time in a long time and was it fun. I have a few tips to share&lt;br /&gt;&lt;br /&gt;All below were done on a SQL Server 2005 instance&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: red;"&gt;Restoring MASTER Database!!&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;- start SQL Server in Single User mode (add -m to the startup parameter)&lt;br /&gt;- You can Google this with lots of results. &lt;a href="http://msdn.microsoft.com/en-us/library/ms190679.aspx"&gt;Microsoft How to on SQL 2008 R2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: red;"&gt;Restoring MSDB Database&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;- This is easy, just restore like a user database&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: red;"&gt;Restoring MODEL Database!&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;- Restore model in RECOVERY mode, never in NORECOVERY mode as SQL Server will stop (due to tempdb unable to create, without a model database)&lt;br /&gt;- If you did NORECOVERY, the only way to get in is manual work. &lt;br /&gt;For me, I started it and detach-and-attach the model database that I copy from another location, as one cannot issue RESTORE command in Single-User mode&lt;br /&gt;&lt;br /&gt;&lt;span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Segoe UI&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Verdana, Arial, Helvetica, sans-serif; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;net start MSSQLSERVER /c /m /T3608 (you can go into SQL BINN and run sqlserver -c -m -T3608 as well)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Segoe UI&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Verdana, Arial, Helvetica, sans-serif; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;sqlcmd -E (to connect to the SQL Server)&lt;/span&gt;&lt;br /&gt;&lt;span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Segoe UI&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Verdana, Arial, Helvetica, sans-serif; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;br /&gt;&lt;span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Segoe UI&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Verdana, Arial, Helvetica, sans-serif; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;em&gt;Detach and Re-attach model database&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Segoe UI&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Verdana, Arial, Helvetica, sans-serif; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;sp_detach_db 'model'&lt;/span&gt;&lt;br /&gt;&lt;span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Segoe UI&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Verdana, Arial, Helvetica, sans-serif; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Segoe UI&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Verdana, Arial, Helvetica, sans-serif; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;sp_attach_db 'model', 'DATA.mdf', 'LOG.ldf'&lt;/span&gt;&lt;br /&gt;&lt;span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Segoe UI&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Verdana, Arial, Helvetica, sans-serif; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Segoe UI&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Verdana, Arial, Helvetica, sans-serif; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;use model&lt;/span&gt;&lt;br /&gt;&lt;span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Segoe UI&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Verdana, Arial, Helvetica, sans-serif; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Segoe UI&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Verdana, Arial, Helvetica, sans-serif; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;table cellspacing="1" class="table" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-clip: initial; background-color: white; background-origin: initial; border-bottom-width: 2px; border-left-width: 3px; border-right-width: 3px; border-top-width: 0px; color: black; font: 11px/16px &amp;quot;Segoe UI&amp;quot;, Arial, Verdana, Tahoma, sans-serif; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th style="background-clip: initial; background-color: #cecfce; background-origin: initial; font-weight: bold; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;Command line parameter&lt;/th&gt;&lt;th style="background-clip: initial; background-color: #cecfce; background-origin: initial; font-weight: bold; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;Use&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-clip: initial; background-color: #f7f7ff; background-origin: initial; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;-c&lt;/td&gt;&lt;td style="background-clip: initial; background-color: #f7f7ff; background-origin: initial; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;Forces an instance of SQL Server not to start as a service.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-clip: initial; background-color: #f7f7ff; background-origin: initial; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;-m&lt;/td&gt;&lt;td style="background-clip: initial; background-color: #f7f7ff; background-origin: initial; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;Allows updates to the system catalog.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-clip: initial; background-color: #f7f7ff; background-origin: initial; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;-T3608&lt;/td&gt;&lt;td style="background-clip: initial; background-color: #f7f7ff; background-origin: initial; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: top;"&gt;Recovers the&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;master&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;database only.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-5751359974871012379?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/5751359974871012379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2012/01/restoring-system-databases.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5751359974871012379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5751359974871012379'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2012/01/restoring-system-databases.html' title='Restoring SYSTEM databases'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-8550239223913918092</id><published>2011-07-13T10:15:00.000-04:00</published><updated>2011-07-13T10:15:47.074-04:00</updated><title type='text'>There is a ($50 USD) benefit to Read and Comment Simple Talk articles!</title><content type='html'>Today is my lucky day as I unexpectedly found a $50 USD Amazon.com gift card in my email inbox, courtesy of simple-talk, all because I read &lt;em&gt;and&lt;/em&gt; commented on Tony's "&lt;a href="http://www.simple-talk.com/community/blogs/tony_davis/archive/2011/06/24/102055.aspx"&gt;Cloud Backup: Getting the Users' Backs Up&lt;/a&gt;" article&lt;br /&gt;&lt;br /&gt;You can subscribe to &lt;a href="http://www.simple-talk.com/sql/"&gt;Simple-Talk's SQL and RSS&lt;/a&gt;, and usually each newsletter will end with this comment&lt;br /&gt;&lt;em&gt;Reply to my blog post to be in with the chance of winning a $50 Amazon voucher. &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I just love Red Gate more and more (as Simple-Talk is owned by Red Gate)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-8550239223913918092?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/8550239223913918092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2011/07/there-is-50-usd-benefit-to-read-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/8550239223913918092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/8550239223913918092'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2011/07/there-is-50-usd-benefit-to-read-and.html' title='There is a ($50 USD) benefit to Read and Comment Simple Talk articles!'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-6586811242623505985</id><published>2011-07-13T10:07:00.000-04:00</published><updated>2011-07-13T10:08:06.243-04:00</updated><title type='text'>Change the [Change Connection] shortcut in SSMS</title><content type='html'>I recently found this shortcut and it has been a lifesaver to manage multiple SQL servers in the [New Query] window&lt;br /&gt;&lt;br /&gt;I can now paste/type the SQL statement first, &lt;strong&gt;ALT+G&lt;/strong&gt;, enter new SQL name,&amp;nbsp;&lt;strong&gt;F5&lt;/strong&gt; to execute&lt;br /&gt;&lt;br /&gt;&lt;a href="http://narfle.com/blog/2006/07/ssms-keyboard-shortcut-for-change.asp"&gt;http://narfle.com/blog/2006/07/ssms-keyboard-shortcut-for-change.asp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;1.Open a Query Editor window connected to your favorite server.&lt;/blockquote&gt;&lt;blockquote&gt;2.Right click on the Change Connection toolbar button on the Query Toolbar button and select the Customize command at the bottom of the menu.&lt;br /&gt;&lt;br /&gt;3.Right click on Change Connection button again and then change the command name "C&amp;amp;hange Connection..." to "Chan&amp;amp;ge Connection...". This will change the hot key from Alt-H (which would conflict with the Help menu hot key) to Alt-G.&lt;br /&gt;&lt;br /&gt;4.Finally, in the Right Click menu for the Change Connection button, you need to select the command option to display both "Image and Text". This exposes the Alt-G command to the Query Editor.&lt;br /&gt;&lt;br /&gt;5.You can now close the Customize dialog and use Alt-G as your hot key!&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-6586811242623505985?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/6586811242623505985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2011/07/change-change-connection-shortcut-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/6586811242623505985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/6586811242623505985'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2011/07/change-change-connection-shortcut-in.html' title='Change the [Change Connection] shortcut in SSMS'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-5099940329724439985</id><published>2009-07-24T15:41:00.000-04:00</published><updated>2009-07-24T15:41:38.314-04:00</updated><title type='text'>Is DBA Enough?</title><content type='html'>IT is a very broad field filled with every position and every dream&lt;br /&gt;&lt;br /&gt;I thought my transition from a Database Developer, then a Developer/DBA, and finally becoming a true DBA with MCITP certification will be the finish line. Now I am asking myself - is this it?&lt;br /&gt;&lt;br /&gt;Let's ignore the shift from Junior DBA to Senior DBA with salary increase for the moment, I sometimes wonder if SQL is all I can talk about for my whole life. This thought freightened me, just as I do not like settling my life and always wanting to do more, at my job, at my personal life, at my goals&lt;br /&gt;&lt;br /&gt;I have found the answer to my question, which means more efforts for the next few years, but I know it will be worthwhile, to challenge myself to be all I can be.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-5099940329724439985?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/5099940329724439985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/07/is-dba-enough.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5099940329724439985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5099940329724439985'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/07/is-dba-enough.html' title='Is DBA Enough?'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-5018564567691879675</id><published>2009-06-04T11:28:00.000-04:00</published><updated>2009-06-04T11:28:31.735-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Replication'/><category scheme='http://www.blogger.com/atom/ns#' term='NEWID'/><category scheme='http://www.blogger.com/atom/ns#' term='GUID'/><category scheme='http://www.blogger.com/atom/ns#' term='RowGUID'/><title type='text'>RowGUID</title><content type='html'>I learned something new today, regarding the RowGUID property in the SSMS Table Design view&lt;br /&gt;&lt;br /&gt;In short,&amp;nbsp;to use&amp;nbsp;GUID as Primary Key (not recommended in general), set the column data type to &lt;span style="color: red;"&gt;uniqueidentifier&lt;/span&gt;, and default value of &lt;span style="color: red;"&gt;newid()&lt;/span&gt;, or better &lt;span style="color: red;"&gt;newsequentialid()&lt;/span&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;CREATE TABLE &lt;/span&gt;&lt;span style="color: black;"&gt;Product&lt;/span&gt;&lt;span style="color: grey;"&gt;(&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;ProductID &lt;/span&gt;&lt;span style="color: blue;"&gt;UNIQUEIDENTIFIER PRIMARY KEY DEFAULT &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;newsequentialid&lt;/span&gt;&lt;span style="color: grey;"&gt;()),&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;ProductName &lt;/span&gt;&lt;span style="color: blue;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;50&lt;/span&gt;&lt;span style="color: grey;"&gt;),&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;ListPrice money&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: grey;"&gt;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Only set the &lt;span style="color: red;"&gt;RowGuid&lt;/span&gt; property to Yes if you are using &lt;span style="color: red;"&gt;Replication&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forum.strataframe.net/Topic6630-11-1.aspx#bm6684"&gt;Source&lt;/a&gt;&lt;br /&gt;The setting of RowGuid=No is correct for a GUID pk. The RowGuid is used by SQL Server replication to uniquely identify rows across replicated databases (i.e. you have have two records with the same PK on different servers and when you replicate one database into the other, SQL Server will handle it). So, the RowGuid property of a column is independent from the primary key. Generally, when you use replication and a GUID pk, you can make them the same column.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Another good read - &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/3ba65352-e4c7-4875-b7f0-ef89b2e44cec"&gt;Can Sequential_GUID be the PK?&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-5018564567691879675?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/5018564567691879675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/06/rowguid.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5018564567691879675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5018564567691879675'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/06/rowguid.html' title='RowGUID'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-262529415068151806</id><published>2009-06-03T11:31:00.000-04:00</published><updated>2009-06-03T11:35:07.856-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Ebook'/><title type='text'>FREE e-book from Microsoft: Introducint Microsoft SQL Server 2008</title><content type='html'>You will need to sign in with your Passport/Live/Hotmail account&lt;br /&gt;&lt;a href="https://profile.microsoft.com/RegSysProfileCenter/wizard.aspx?wizid=2e29311d-516a-4817-bd65-b43e105cb666&amp;amp;lcid=1033"&gt;https://profile.microsoft.com/RegSysProfileCenter/wizard.aspx?wizid=2e29311d-516a-4817-bd65-b43e105cb666&amp;amp;lcid=1033&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;To save the book, press F8 for Toolbar and click the Save button. &lt;br /&gt;Or go to the browser [File] menu and choose [Save As...]&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://csna01.libredigital.com/images/ms_sql_srv_cvr.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" fj="true" src="http://csna01.libredigital.com/images/ms_sql_srv_cvr.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-262529415068151806?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/262529415068151806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/06/free-e-book-from-microsoft-introducint.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/262529415068151806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/262529415068151806'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/06/free-e-book-from-microsoft-introducint.html' title='FREE e-book from Microsoft: Introducint Microsoft SQL Server 2008'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-4339289582219079516</id><published>2009-05-28T14:28:00.000-04:00</published><updated>2009-05-28T14:28:35.342-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Restore'/><category scheme='http://www.blogger.com/atom/ns#' term='Backup'/><category scheme='http://www.blogger.com/atom/ns#' term='File'/><title type='text'>Restore backups from a given directory</title><content type='html'>I modified this script originally created by Tibor Karaszi&lt;br /&gt;http://www.karaszi.com/SQLServer/util_restore_all_in_file.asp&lt;br /&gt;&lt;br /&gt;Added it with some smarter features for work needs, and now I am here sharing it&lt;br /&gt;&lt;br /&gt;[code]&lt;br /&gt;/*&lt;br /&gt;Original&lt;br /&gt;http://www.karaszi.com/SQLServer/util_restore_all_in_file.asp&lt;br /&gt;&lt;br /&gt;Modified&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;2009/05/31 Jerry Hung &lt;br /&gt;Summary:&lt;br /&gt;- support both 2000/2005/2008&lt;br /&gt;- fills in missing \ if any&lt;br /&gt;- better line break for dynamic SQL output of RESTORE&lt;br /&gt;- filters on only BAK/DIFF extensions&lt;br /&gt;- generate script to restore the "latest" BAK AND the latest DIFF file (if both DB.bak and DB1.diff, DB2.diff exist for example)&lt;br /&gt;- restore multiple logical MDF/LDF files (if exists), and full-text catalogs&lt;br /&gt;- alters database into SINGLE_USER before restore to avoid "db in use" error&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;-- how to call&lt;br /&gt;EXEC usp_RestoreFromAllFilesInDirectory&lt;br /&gt;    @SourceDirBackupFiles  = '\\10.25.5.141\G$\DBA\DBVICASI1'&lt;br /&gt;   ,@DestDirDbFiles  = 'R:\MSSQL\DATA\'&lt;br /&gt;   ,@DestDirLogFiles  = 'L:\MSSQL\LOG\'&lt;br /&gt;   ,@RecoveryMode  = 'RECOVERY'&lt;br /&gt;*/&lt;br /&gt;/**/&lt;br /&gt;CREATE PROCEDURE usp_RestoreFromAllFilesInDirectory&lt;br /&gt;    @SourceDirBackupFiles NVARCHAR(200) = NULL&lt;br /&gt;   ,@DestDirDbFiles NVARCHAR(200) = 'R:\MSSQL\DATA\'&lt;br /&gt;   ,@DestDirLogFiles NVARCHAR(200) = 'L:\MSSQL\LOG\'&lt;br /&gt;   ,@RecoveryMode VARCHAR(100) = 'RECOVERY'&lt;br /&gt;AS &lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;-- TEST&lt;br /&gt;DECLARE @SourceDirBackupFiles NVARCHAR(1000)&lt;br /&gt;   ,@DestDirDbFiles NVARCHAR(1000)&lt;br /&gt;   ,@DestDirLogFiles NVARCHAR(1000)&lt;br /&gt;   ,@RecoveryMode VARCHAR(100)&lt;br /&gt;   &lt;br /&gt;SET @SourceDirBackupFiles = '\\DBCA1\Z$\Recovery'&lt;br /&gt;SET @DestDirDbFiles = 'R:\MSSQL\DATA\'&lt;br /&gt;SET @DestDirLogFiles = 'L:\MSSQL\LOG\'&lt;br /&gt;&lt;br /&gt;-- Jerry: set database recovery mode&lt;br /&gt;SET @RecoveryMode = 'RECOVERY'  -- RECOVERY/NORECOVERY&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;SET XACT_ABORT, NOCOUNT ON&lt;br /&gt;&lt;br /&gt;BEGIN TRAN&lt;br /&gt;&lt;br /&gt;-- Jerry: Ensure a trailing \&lt;br /&gt;IF RIGHT(@SourceDirBackupFiles, 1) &lt;&gt; '\' &lt;br /&gt;    SET @SourceDirBackupFiles = @SourceDirBackupFiles + '\'&lt;br /&gt;&lt;br /&gt;--Table to hold each backup file name in&lt;br /&gt;CREATE TABLE #files&lt;br /&gt;    (&lt;br /&gt;     fname VARCHAR(1000)&lt;br /&gt;    ,depth INT&lt;br /&gt;    ,file_ INT&lt;br /&gt;    )&lt;br /&gt;INSERT  #files&lt;br /&gt;        EXECUTE master.dbo.xp_dirtree @SourceDirBackupFiles, 1, 1&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------------------------------------------&lt;br /&gt;-- Jerry: filter on file extensions, and only restore the LATEST FULL backup and LATEST DIFF backup (no TRN restore for now)&lt;br /&gt;---------------------------------------------------------------------------------------------------------&lt;br /&gt;--SELECT * FROM #files&lt;br /&gt;&lt;br /&gt;-- delete non-backup files&lt;br /&gt;DELETE  #files&lt;br /&gt;WHERE   1 = 1&lt;br /&gt;        AND fname NOT LIKE '%DIFF%'&lt;br /&gt;        AND fname NOT LIKE '%BAK%'&lt;br /&gt;&lt;br /&gt;-- keep only latest BAK file&lt;br /&gt;DELETE  F1&lt;br /&gt;FROM    #files F1&lt;br /&gt;WHERE   1 = 1&lt;br /&gt;        AND fname LIKE '%BAK%'&lt;br /&gt;        AND fname &lt; (&lt;br /&gt;                     SELECT MAX(fname)&lt;br /&gt;                     FROM   #files F2 (NOLOCK)&lt;br /&gt;                     WHERE  F2.fname LIKE '%BAK%'&lt;br /&gt;                            AND LEFT(F1.fname, 20) = LEFT(F2.fname, 20)&lt;br /&gt;                    )&lt;br /&gt; &lt;br /&gt;-- keep only latest DIFF file&lt;br /&gt;DELETE  F1&lt;br /&gt;FROM    #files F1&lt;br /&gt;WHERE   1 = 1&lt;br /&gt;        AND fname LIKE '%DIFF%'&lt;br /&gt;        AND fname &lt; (&lt;br /&gt;                     SELECT MAX(fname)&lt;br /&gt;                     FROM   #files F2 (NOLOCK)&lt;br /&gt;                     WHERE  F2.fname LIKE '%DIFF%'&lt;br /&gt;                            AND LEFT(F1.fname, 20) = LEFT(F2.fname, 20)&lt;br /&gt;                    )&lt;br /&gt;&lt;br /&gt;--SELECT * FROM #files&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------------------------------------------&lt;br /&gt;-- Jerry: section to handle SQL 2000 differently from 2005/2008&lt;br /&gt;---------------------------------------------------------------------------------------------------------&lt;br /&gt;DECLARE @IsSQLServer2000 BIT&lt;br /&gt;IF @@VERSION LIKE '%2000%' &lt;br /&gt;    SET @IsSQLServer2000 = 1&lt;br /&gt; &lt;br /&gt;-- PRINT @@VERSION&lt;br /&gt;&lt;br /&gt;--Table to hold the result from RESTORE HEADERONLY. Needed to get the database name out from&lt;br /&gt;IF @IsSQLServer2000 = 1 &lt;br /&gt;    BEGIN&lt;br /&gt;&lt;br /&gt;        CREATE TABLE #bdev2000&lt;br /&gt;            (&lt;br /&gt;             BackupName NVARCHAR(128)&lt;br /&gt;            ,BackupDescription NVARCHAR(255)&lt;br /&gt;            ,BackupType SMALLINT&lt;br /&gt;            ,ExpirationDate DATETIME&lt;br /&gt;            ,Compressed TINYINT&lt;br /&gt;            ,Position SMALLINT&lt;br /&gt;            ,DeviceType TINYINT&lt;br /&gt;            ,UserName NVARCHAR(128)&lt;br /&gt;            ,ServerName NVARCHAR(128)&lt;br /&gt;            ,DatabaseName NVARCHAR(128)&lt;br /&gt;            ,DatabaseVersion INT&lt;br /&gt;            ,DatabaseCreationDate DATETIME&lt;br /&gt;            ,BackupSize NUMERIC(20, 0)&lt;br /&gt;            ,FirstLSN NUMERIC(25, 0)&lt;br /&gt;            ,LastLSN NUMERIC(25, 0)&lt;br /&gt;            ,CheckpointLSN NUMERIC(25, 0)&lt;br /&gt;            ,DifferentialBaseLSN NUMERIC(25, 0)&lt;br /&gt;            ,BackupStartDate DATETIME&lt;br /&gt;            ,BackupFinishDate DATETIME&lt;br /&gt;            ,SortOrder SMALLINT&lt;br /&gt;            ,CodePage SMALLINT&lt;br /&gt;            ,UnicodeLocaleId INT&lt;br /&gt;            ,UnicodeComparisonStyle INT&lt;br /&gt;            ,CompatibilityLevel TINYINT&lt;br /&gt;            ,SoftwareVendorId INT&lt;br /&gt;            ,SoftwareVersionMajor INT&lt;br /&gt;            ,SoftwareVersionMinor INT&lt;br /&gt;            ,SoftwareVersionBuild INT&lt;br /&gt;            ,MachineName NVARCHAR(128)&lt;br /&gt;            ,Flags INT&lt;br /&gt;            ,BindingID UNIQUEIDENTIFIER&lt;br /&gt;            ,RecoveryForkID UNIQUEIDENTIFIER&lt;br /&gt;            ,Collation NVARCHAR(128)&lt;br /&gt;            )&lt;br /&gt;&lt;br /&gt; --Table to hold result from RESTORE FILELISTONLY. Need to generate the MOVE options to the RESTORE command&lt;br /&gt;        CREATE TABLE #dbfiles2000&lt;br /&gt;            (&lt;br /&gt;             LogicalName NVARCHAR(128)&lt;br /&gt;            ,PhysicalName NVARCHAR(260)&lt;br /&gt;            ,Type CHAR(1)&lt;br /&gt;            ,FileGroupName NVARCHAR(128)&lt;br /&gt;            ,Size NUMERIC(20, 0)&lt;br /&gt;            ,MaxSize NUMERIC(20, 0)&lt;br /&gt;            )&lt;br /&gt;    END&lt;br /&gt;ELSE &lt;br /&gt;    BEGIN&lt;br /&gt;--Table to hold the result from RESTORE HEADERONLY. Needed to get the database name out from&lt;br /&gt;        CREATE TABLE #bdev2005&lt;br /&gt;            (&lt;br /&gt;             BackupName NVARCHAR(128)&lt;br /&gt;            ,BackupDescription NVARCHAR(255)&lt;br /&gt;            ,BackupType SMALLINT&lt;br /&gt;            ,ExpirationDate DATETIME&lt;br /&gt;            ,Compressed TINYINT&lt;br /&gt;            ,Position SMALLINT&lt;br /&gt;            ,DeviceType TINYINT&lt;br /&gt;            ,UserName NVARCHAR(128)&lt;br /&gt;            ,ServerName NVARCHAR(128)&lt;br /&gt;            ,DatabaseName NVARCHAR(128)&lt;br /&gt;            ,DatabaseVersion INT&lt;br /&gt;            ,DatabaseCreationDate DATETIME&lt;br /&gt;            ,BackupSize NUMERIC(20, 0)&lt;br /&gt;            ,FirstLSN NUMERIC(25, 0)&lt;br /&gt;            ,LastLSN NUMERIC(25, 0)&lt;br /&gt;            ,CheckpointLSN NUMERIC(25, 0)&lt;br /&gt;            ,DatabaseBackupLSN NUMERIC(25, 0)&lt;br /&gt;            ,BackupStartDate DATETIME&lt;br /&gt;            ,BackupFinishDate DATETIME&lt;br /&gt;            ,SortOrder SMALLINT&lt;br /&gt;            ,CodePage SMALLINT&lt;br /&gt;            ,UnicodeLocaleId INT&lt;br /&gt;            ,UnicodeComparisonStyle INT&lt;br /&gt;            ,CompatibilityLevel TINYINT&lt;br /&gt;            ,SoftwareVendorId INT&lt;br /&gt;            ,SoftwareVersionMajor INT&lt;br /&gt;            ,SoftwareVersionMinor INT&lt;br /&gt;            ,SoftwareVersionBuild INT&lt;br /&gt;            ,MachineName NVARCHAR(128)&lt;br /&gt;            ,Flags INT&lt;br /&gt;            ,BindingID UNIQUEIDENTIFIER&lt;br /&gt;            ,RecoveryForkID UNIQUEIDENTIFIER&lt;br /&gt;            ,Collation NVARCHAR(128)&lt;br /&gt;                -- new in 2005&lt;br /&gt;            ,FamilyGUID UNIQUEIDENTIFIER&lt;br /&gt;            ,HasBulkLoggedData INT&lt;br /&gt;            ,IsSnapshot INT&lt;br /&gt;            ,IsReadOnly INT&lt;br /&gt;            ,IsSingleUser INT&lt;br /&gt;            ,HasBackupChecksums INT&lt;br /&gt;            ,IsDamaged INT&lt;br /&gt;            ,BegibsLogChain INT&lt;br /&gt;            ,HasIncompleteMetaData INT&lt;br /&gt;            ,IsForceOffline INT&lt;br /&gt;            ,IsCopyOnly INT&lt;br /&gt;            ,FirstRecoveryForkID UNIQUEIDENTIFIER&lt;br /&gt;            ,ForkPointLSN NUMERIC(25, 0)&lt;br /&gt;            ,RecoveryModel NVARCHAR(128)&lt;br /&gt;            ,DifferentialBaseLSN NUMERIC(25, 0)&lt;br /&gt;            ,DifferentialBaseGUID UNIQUEIDENTIFIER&lt;br /&gt;            ,BackupTypeDescription NVARCHAR(128)&lt;br /&gt;            ,BackupSetGUID UNIQUEIDENTIFIER&lt;br /&gt;            )&lt;br /&gt;&lt;br /&gt;--Table to hold result from RESTORE FILELISTONLY. Need to generate the MOVE options to the RESTORE command&lt;br /&gt;        CREATE TABLE #dbfiles2005&lt;br /&gt;            (&lt;br /&gt;             LogicalName NVARCHAR(128)&lt;br /&gt;            ,PhysicalName NVARCHAR(260)&lt;br /&gt;            ,Type CHAR(1)&lt;br /&gt;            ,FileGroupName NVARCHAR(128)&lt;br /&gt;            ,Size NUMERIC(20, 0)&lt;br /&gt;            ,MaxSize BIGINT&lt;br /&gt;                -- new in 2005&lt;br /&gt;            ,FileId INT&lt;br /&gt;            ,CreateLSN NUMERIC(25, 0)&lt;br /&gt;            ,DropLSN NUMERIC(25, 0)&lt;br /&gt;            ,UniqueId UNIQUEIDENTIFIER&lt;br /&gt;            ,ReadOnlyLSN NUMERIC(25, 0)&lt;br /&gt;            ,ReadWriteLSN NUMERIC(25, 0)&lt;br /&gt;            ,BackupSizeInBytes BIGINT&lt;br /&gt;            ,SourceBlockSize INT&lt;br /&gt;            ,FilegroupId INT&lt;br /&gt;            ,LogGroupGUID UNIQUEIDENTIFIER&lt;br /&gt;            ,DifferentialBaseLSN NUMERIC(25)&lt;br /&gt;            ,DifferentialBaseGUID UNIQUEIDENTIFIER&lt;br /&gt;            ,IsReadOnly INT&lt;br /&gt;            ,IsPresent INT&lt;br /&gt;            )&lt;br /&gt;&lt;br /&gt;    END&lt;br /&gt;&lt;br /&gt;DECLARE @fname VARCHAR(1000)&lt;br /&gt;DECLARE @dirfile VARCHAR(1000)&lt;br /&gt;DECLARE @LogicalName NVARCHAR(1000)&lt;br /&gt;DECLARE @PhysicalName NVARCHAR(1000)&lt;br /&gt;DECLARE @type CHAR(1)&lt;br /&gt;DECLARE @DbName SYSNAME&lt;br /&gt;DECLARE @sql NVARCHAR(2000)&lt;br /&gt;DECLARE @LogicalCounter TINYINT&lt;br /&gt;DECLARE @recoverySQL VARCHAR(4000)&lt;br /&gt;SET @recoverySQL = ''&lt;br /&gt;&lt;br /&gt;DECLARE files CURSOR FAST_FORWARD&lt;br /&gt;    FOR SELECT  fname&lt;br /&gt;        FROM    #files&lt;br /&gt;        WHERE   [file_] = 1&lt;br /&gt;&lt;br /&gt;IF @IsSQLServer2000 = 1 &lt;br /&gt;    DECLARE dbfiles CURSOR FAST_FORWARD&lt;br /&gt;        FOR SELECT  LogicalName&lt;br /&gt;                   ,PhysicalName&lt;br /&gt;                   ,Type&lt;br /&gt;            FROM    #dbfiles2000&lt;br /&gt;&lt;br /&gt;ELSE &lt;br /&gt;    DECLARE dbfiles CURSOR FAST_FORWARD&lt;br /&gt;        FOR SELECT  LogicalName&lt;br /&gt;                   ,PhysicalName&lt;br /&gt;                   ,Type&lt;br /&gt;            FROM    #dbfiles2005&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OPEN files&lt;br /&gt;FETCH NEXT FROM files INTO @fname&lt;br /&gt;&lt;br /&gt;WHILE @@FETCH_STATUS = 0&lt;br /&gt;    BEGIN&lt;br /&gt;        SET @dirfile = @SourceDirBackupFiles + @fname&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--Get database name from RESTORE HEADERONLY, assumes there's only one backup on each backup file.&lt;br /&gt;        IF @IsSQLServer2000 = 1 &lt;br /&gt;            BEGIN&lt;br /&gt;                TRUNCATE TABLE #bdev2000&lt;br /&gt;                INSERT  #bdev2000&lt;br /&gt;                        EXEC&lt;br /&gt;                            ('RESTORE HEADERONLY FROM DISK = ''' + @dirfile&lt;br /&gt;                             + ''''&lt;br /&gt;                            )&lt;br /&gt; --SELECT * FROM #bdev&lt;br /&gt;                SET @DbName = (&lt;br /&gt;                               SELECT TOP 1&lt;br /&gt;                                        DatabaseName&lt;br /&gt;                               FROM     #bdev2000&lt;br /&gt;                              )&lt;br /&gt;            END&lt;br /&gt;        ELSE &lt;br /&gt;            BEGIN&lt;br /&gt;                TRUNCATE TABLE #bdev2005&lt;br /&gt;                &lt;br /&gt;                INSERT  #bdev2005&lt;br /&gt;                        EXEC&lt;br /&gt;                            ('RESTORE HEADERONLY FROM DISK = ''' + @dirfile&lt;br /&gt;                             + ''''&lt;br /&gt;                            )&lt;br /&gt; --SELECT * FROM #bdev2005&lt;br /&gt; &lt;br /&gt;                SET @DbName = (&lt;br /&gt;                               SELECT TOP 1&lt;br /&gt;                                        DatabaseName&lt;br /&gt;                               FROM     #bdev2005&lt;br /&gt;                              )&lt;br /&gt;            END&lt;br /&gt;&lt;br /&gt;--Construct the beginning for the RESTORE DATABASE command&lt;br /&gt;        SET @sql = 'RESTORE DATABASE [' + @DbName + '] FROM DISK = N'''&lt;br /&gt;            + @dirfile + ''''&lt;br /&gt; --+ char(13)+char(10)&lt;br /&gt;--PRINT('RESTORE HEADERONLY FROM DISK = ''' + @dirfile + '''')&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------------------------------------------&lt;br /&gt;-- Jerry: Only add logical name parts if FULL backup restore; skip the logical name part for DIFF file&lt;br /&gt;---------------------------------------------------------------------------------------------------------&lt;br /&gt;        IF @dirfile LIKE '%.BAK' &lt;br /&gt;            BEGIN&lt;br /&gt; --PRINT('RESTORE FILELISTONLY FROM DISK = ''' + @dirfile + '''')&lt;br /&gt; &lt;br /&gt; --Get information about database files from backup device into temp table&lt;br /&gt;                IF @IsSQLServer2000 = 1 &lt;br /&gt;                    BEGIN &lt;br /&gt;                        TRUNCATE TABLE #dbfiles2000&lt;br /&gt;                        INSERT  #dbfiles2000&lt;br /&gt;                                EXEC&lt;br /&gt;                                    ('RESTORE FILELISTONLY FROM DISK = '''&lt;br /&gt;                                     + @dirfile + ''''&lt;br /&gt;                                    )&lt;br /&gt;                    END&lt;br /&gt;                ELSE &lt;br /&gt;                    BEGIN &lt;br /&gt;                    &lt;br /&gt;                        TRUNCATE TABLE #dbfiles2005&lt;br /&gt;&lt;br /&gt;                                                            &lt;br /&gt;                        INSERT  #dbfiles2005&lt;br /&gt;                                EXEC&lt;br /&gt;                                    ('RESTORE FILELISTONLY FROM DISK = '''&lt;br /&gt;                                     + @dirfile + ''''&lt;br /&gt;                                    )&lt;br /&gt;                                    &lt;br /&gt;      --SELECT * FROM #dbfiles2005&lt;br /&gt;                    END &lt;br /&gt; &lt;br /&gt; &lt;br /&gt; --SELECT LogicalName, PhysicalName, Type FROM #dbfiles&lt;br /&gt;                SET @sql = @sql + CHAR(13) + CHAR(10) + 'WITH'&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;                OPEN dbfiles&lt;br /&gt;                FETCH NEXT FROM dbfiles INTO @LogicalName, @PhysicalName,&lt;br /&gt;                    @type&lt;br /&gt; --For each database file that the database uses&lt;br /&gt; --------------------------------------------------------------------------------------------------------- &lt;br /&gt; -- Jerry: capable of handling multiple LDF file (DB1.ldf, DB2.ldf, etc...)&lt;br /&gt; --------------------------------------------------------------------------------------------------------- &lt;br /&gt;                WHILE @@FETCH_STATUS = 0&lt;br /&gt;                    BEGIN&lt;br /&gt;                        SET @sql = @sql + CHAR(13) + CHAR(10) + ' MOVE ' &lt;br /&gt;                                                            &lt;br /&gt;                        IF @type = 'D' -- Data&lt;br /&gt;                            BEGIN&lt;br /&gt;                                SET @sql = @sql + '''' + @LogicalName&lt;br /&gt;                                    + ''' TO ''' + @DestDirDbFiles + @DbName&lt;br /&gt;                                    + '.mdf'','&lt;br /&gt;                                SET @LogicalCounter = 0&lt;br /&gt;                            END  &lt;br /&gt;                        ELSE &lt;br /&gt;                            BEGIN&lt;br /&gt;                                IF @type IN ('L') -- Log&lt;br /&gt;                                    BEGIN&lt;br /&gt;                                        SET @sql = @sql + '''' + @LogicalName&lt;br /&gt;                                            + ''' TO ''' + @DestDirLogFiles&lt;br /&gt;                                            + @DbName + CASE @LogicalCounter&lt;br /&gt;                                                          WHEN 0 THEN ''&lt;br /&gt;                                                          ELSE CAST(@LogicalCounter AS VARCHAR)&lt;br /&gt;                                                        END + '.ldf'','   &lt;br /&gt;                                        SET @LogicalCounter = @LogicalCounter&lt;br /&gt;                                            + 1&lt;br /&gt;                                    END&lt;br /&gt;                                ELSE&lt;br /&gt;                                ---------------------------------------------------------------------------------------------------------&lt;br /&gt;        -- Jerry: restore full-text as best as we can&lt;br /&gt;        ---------------------------------------------------------------------------------------------------------&lt;br /&gt;                                    IF @type IN ('F') -- Full-text&lt;br /&gt;                                        BEGIN&lt;br /&gt;                                            SET @sql = @sql + ''''&lt;br /&gt;                                                + @LogicalName + ''' TO '''&lt;br /&gt;                                                + @DestDirDbFiles + @DbName&lt;br /&gt;                                                + CASE @LogicalCounter&lt;br /&gt;                                                    WHEN 0 THEN ''&lt;br /&gt;                                                    ELSE CAST(@LogicalCounter AS VARCHAR)&lt;br /&gt;                                                  END + '.' + @LogicalName + ''','   &lt;br /&gt;                                            SET @LogicalCounter = @LogicalCounter&lt;br /&gt;                                                + 1&lt;br /&gt;                                        END                                     &lt;br /&gt;                            END&lt;br /&gt;                        FETCH NEXT FROM dbfiles INTO @LogicalName,&lt;br /&gt;                            @PhysicalName, @type&lt;br /&gt;                    END&lt;br /&gt;&lt;br /&gt;                CLOSE dbfiles&lt;br /&gt;&lt;br /&gt;                SET @sql = @sql + CHAR(13) + CHAR(10) + 'REPLACE, STATS, '&lt;br /&gt;                    + @RecoveryMode&lt;br /&gt;            END&lt;br /&gt;        ELSE &lt;br /&gt;            SET @sql = @sql + CHAR(13) + CHAR(10) + 'WITH REPLACE, STATS, '&lt;br /&gt;                + @RecoveryMode&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--Here's the actual RESTORE command&lt;br /&gt;        PRINT 'PRINT ''--RESTORE FILELISTONLY FROM DISK = ''''' + @dirfile&lt;br /&gt;            + '''' + '''' + ''''&lt;br /&gt;        --PRINT '--RESTORE FILELISTONLY FROM DISK = ''' + @dirfile + ''''&lt;br /&gt;        ---------------------------------------------------------------------------------------------------------&lt;br /&gt;        -- Jerry: Set ONLINE DB to single user before restore&lt;br /&gt;        ---------------------------------------------------------------------------------------------------------&lt;br /&gt;        IF EXISTS ( SELECT  [name]&lt;br /&gt;                    FROM    master.dbo.sysdatabases (NOLOCK)&lt;br /&gt;                    WHERE   1 = 1&lt;br /&gt;                            AND NAME = @dbname&lt;br /&gt;                            AND DATABASEPROPERTYEX([name], 'IsInStandBy') = 0 -- not in Standby mode&lt;br /&gt;                            AND DATABASEPROPERTYEX([name], 'Status') = 'ONLINE' -- only worry about ONLINE DB's&lt;br /&gt;    ) &lt;br /&gt;            PRINT 'ALTER DATABASE [' + @DbName + '] SET SINGLE_USER WITH ROLLBACK IMMEDIATE'&lt;br /&gt;&lt;br /&gt;        PRINT @sql&lt;br /&gt;        PRINT 'GO'&lt;br /&gt;        PRINT ''&lt;br /&gt;        &lt;br /&gt;IF @RecoveryMode = 'NORECOVERY'&lt;br /&gt;BEGIN&lt;br /&gt; SET @recoverySQL = @recoverySQL + 'RESTORE DATABASE [' + @DbName + '] WITH RECOVERY;' + CHAR(10)&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;--Remove the comment below if you want the procedure to actually execute the restore command.&lt;br /&gt;--EXEC(@sql)&lt;br /&gt;&lt;br /&gt;        FETCH NEXT FROM files INTO @fname&lt;br /&gt;        &lt;br /&gt;    END&lt;br /&gt;&lt;br /&gt;-- provide a quick way to change to RECOVERY mode from NORECOVERY&lt;br /&gt;PRINT '/*'+ @recoverySQL + '*/'&lt;br /&gt;&lt;br /&gt;-- cleanup section&lt;br /&gt;----------------------------------------------------------------------&lt;br /&gt;CLOSE files&lt;br /&gt;DEALLOCATE dbfiles&lt;br /&gt;DEALLOCATE files&lt;br /&gt;&lt;br /&gt;DROP TABLE #files&lt;br /&gt;&lt;br /&gt;IF @IsSQLServer2000 = 1 &lt;br /&gt;    BEGIN &lt;br /&gt;        DROP TABLE #bdev2000&lt;br /&gt;        DROP TABLE #dbfiles2000&lt;br /&gt;    END &lt;br /&gt;ELSE &lt;br /&gt;    BEGIN&lt;br /&gt;        DROP TABLE #bdev2005&lt;br /&gt;        DROP TABLE #dbfiles2005&lt;br /&gt;    END &lt;br /&gt;----------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;COMMIT&lt;br /&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;Outline&lt;br /&gt;Below stored procedure reads the contents of a number of backup files in a directory and based on that generates RESTORE DATABASE commands. The outline of the procedure is:&lt;br /&gt;&lt;br /&gt;    * Use xp_dirtree to save all file names in a directory in a temp table.&lt;br /&gt;    * For each file, EXEC RESTORE HEADERONLY into a temp table to get the database name from the backup file.&lt;br /&gt;    * Use EXEC and RESTORE FILELISTONLY into a temp table so we can go through that and generate MOVE for each database file.&lt;br /&gt;    * Print out the RESTORE commands.&lt;br /&gt;&lt;br /&gt;Usage&lt;br /&gt;&lt;br /&gt;@SourceDirBackupFiles nvarchar(200)&lt;br /&gt;This is the name of the directory where the backup files are stored.&lt;br /&gt;&lt;br /&gt;@DestDirDbFiles nvarchar(200)&lt;br /&gt;This is the name of the directory where the databases' data files are to be created.&lt;br /&gt;&lt;br /&gt;@DestDirLogFiles nvarchar(200)&lt;br /&gt;This is the name of the directory where the databases' log files are to be created.&lt;br /&gt;&lt;br /&gt;Note that the procedure doesn't execute the RESTORE commands; it only outputs them to the result window so you can go through them before pasting them to the query window and executing them.&lt;br /&gt;&lt;br /&gt;Limitations&lt;br /&gt;Only one backup on each backup file.&lt;br /&gt;Only database backups in the files.&lt;br /&gt;Only one mdf and one ldf file per database.&lt;br /&gt;&lt;br /&gt;Sample execution&lt;br /&gt;EXEC sp_RestoreFromAllFilesInDirectory 'C:\Temp\', 'C:\SqlDataFiles\',  'D:\SqlLogFiles\'&lt;br /&gt;&lt;br /&gt;Copyright Tibor Karaszi, Nucleus Datakonsult, 2004. Use at own risk.&lt;br /&gt;Restores from all files in a certain directory. Assumes that:&lt;br /&gt;There's only one backup on each backup device.&lt;br /&gt;Each database uses only two database files and the mdf file is returned first from the RESTORE FILELISTONLY command.&lt;br /&gt;Modified to work with SQL Server 2005 [Andreas Moe, Ole Robin 2008]:&lt;br /&gt;  Added posibility to put log files in different location than database file, altered if statement&lt;br /&gt;  Updated Table creating #bedev and #dbfiles to suite SQL2005(also works with SQL2000), more columns added&lt;br /&gt;Sample execution:&lt;br /&gt; EXEC sp_RestoreFromAllFilesInDirectory 'C:\Mybakfiles\', 'D:\Mydatabasesdirectory\' ,’C:\MylogDirectory\’&lt;br /&gt;&lt;br /&gt;*/&lt;br /&gt;[/code]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-4339289582219079516?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/4339289582219079516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/05/restore-backups-from-given-directory.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/4339289582219079516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/4339289582219079516'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/05/restore-backups-from-given-directory.html' title='Restore backups from a given directory'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-9169144429237947786</id><published>2009-05-21T10:51:00.000-04:00</published><updated>2009-05-21T10:52:17.386-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delete'/><title type='text'>Great simple tip on how to delete ordered data fast</title><content type='html'>SQLCAT team posted a simple yet elegant solution to an often-encountered problem during archiving or deleting the oldest data&lt;br /&gt;http://sqlcat.com/msdnmirror/archive/2009/05/20/fast-ordered-delete.aspx&lt;br /&gt;&lt;br /&gt;Great use of the "Can only use TOP in VIEW with ORDER BY" limit&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color:black"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:blue"&gt;CREATE VIEW &lt;/span&gt;&lt;span style="color:black"&gt;v1 &lt;/span&gt;&lt;span style="color:blue"&gt;AS &lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;&lt;span style="color:blue"&gt;SELECT TOP &lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;&lt;span style="color:black"&gt;10000&lt;/span&gt;&lt;span style="color:gray"&gt;) * &lt;/span&gt;&lt;span style="color:blue"&gt;FROM TABLE ORDER BY DATETIME&lt;/span&gt;&lt;span style="color:gray"&gt;)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:green"&gt;--and we can delete the “top” rows using simply&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:blue"&gt;DELETE FROM &lt;/span&gt;&lt;span style="color:black"&gt;v1&lt;/span&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-9169144429237947786?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/9169144429237947786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/05/great-simple-tip-on-how-to-delete.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/9169144429237947786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/9169144429237947786'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/05/great-simple-tip-on-how-to-delete.html' title='Great simple tip on how to delete ordered data fast'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-1065394258686121897</id><published>2009-04-13T14:22:00.000-04:00</published><updated>2009-04-13T14:26:55.965-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='70-443'/><category scheme='http://www.blogger.com/atom/ns#' term='Certification'/><title type='text'>MCITP: Database Administrator</title><content type='html'>I passed the 70-443 exam today, and last of the 3 part exams for MCITP: Database Administrator. Pat myself on the shoulder, attaboy!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Exam 70-431&lt;/b&gt;&lt;br /&gt;TS: Microsoft SQL Server 2005 - Implementation and Maintenance  &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Exam 70-443&lt;/b&gt;&lt;br /&gt;PRO: Designing a Database Server Infrastructure by Using Microsoft SQL Server 2005&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Exam 70-444&lt;/b&gt;&lt;br /&gt;PRO: Optimizing and Maintaining a Database Administration Solution by Using Microsoft SQL Server 2005&lt;br /&gt;&lt;br /&gt;No, I am not the guy in the picture :P&lt;br /&gt;&lt;img src="http://www.brainbuzz.com/images/certifications/landing/cert_image_left_MCITP_Database_Administrator.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-1065394258686121897?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/1065394258686121897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/04/mcitp-database-administrator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/1065394258686121897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/1065394258686121897'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/04/mcitp-database-administrator.html' title='MCITP: Database Administrator'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-7598141407798425403</id><published>2009-04-09T09:51:00.000-04:00</published><updated>2009-04-09T09:52:21.105-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unemployment'/><title type='text'>Canada Unemployment Rate at 8%, 7-year High. Waterloo region 9.6%</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;It is scary, 9.6% in Waterlo means every 10 people you know, 1 is unemployed&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Another reason to be grateful for my job, and to do better in it every day.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://images.theglobeandmail.com/RTGAM_Archive/images/20090409/wjobs0409/jobschart364.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" ki="true" src="http://images.theglobeandmail.com/RTGAM_Archive/images/20090409/wjobs0409/jobschart364.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Canada's unemployment rate rose to &lt;strong&gt;8 percent&lt;/strong&gt; in March, up from &lt;strong&gt;7.7 percent&lt;/strong&gt; in February.&lt;br /&gt;&lt;br /&gt;Statistics Canada says just over 61-thousand people lost their jobs last month. That's more than private sector economists had been forecasting.&lt;br /&gt;They'd predicted about 55-thousand jobs likely vanished in March.&lt;br /&gt;Most of the losses were in full-time work in manufacturing and construction.&lt;br /&gt;&lt;br /&gt;Waterloo Region's unemployment rate rose to &lt;strong&gt;9.6 percent&lt;/strong&gt; in March from 9.1 the previous month.&lt;br /&gt;Roughly 4-thousand full and part-time workers lost their jobs in our region last month.&lt;br /&gt;&lt;br /&gt;Ontario's jobless rate stayed the same February to March at 8.7 per cent.&lt;br /&gt;In the last 5 months the agency says Canada has shed 357-thousand jobs.&lt;br /&gt;&lt;br /&gt;Source: &lt;a href="http://www.570news.com/more.jsp?content=20090409_060704_8692"&gt;570news&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-7598141407798425403?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/7598141407798425403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/04/unemployment-rate-at-8-7-year-high.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/7598141407798425403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/7598141407798425403'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/04/unemployment-rate-at-8-7-year-high.html' title='Canada Unemployment Rate at 8%, 7-year High. Waterloo region 9.6%'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-2075034046951469672</id><published>2009-04-08T14:37:00.000-04:00</published><updated>2009-04-08T14:37:56.723-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Service Pack'/><title type='text'>SQL Server 2008 SP1 Released</title><content type='html'>&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19"&gt;SQL Server 2008 Service Pack 1 Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We remain committed to our plans to keep service packs contained, focusing on essential updates only, primarily a Roll-up of Cumulative Update 1 to 3, Quick Fix Engineering (QFE) updates, as well as fixes to issues reported through the SQL Server community. While keeping product changes contained, we have made significant investments to ease deployment and management of Service Packs:&lt;br /&gt;&lt;br /&gt;* Slipstream – You are now able to integrate the base installation with service packs (or Hotfixes) and install in a single step.&lt;br /&gt;&lt;br /&gt;* Service Pack Uninstall – You are now able to uninstall only the Service Pack (without removing the whole instance)&lt;br /&gt;&lt;br /&gt;* Report Builder 2.0 Click Once capability&lt;br /&gt;&lt;br /&gt;For more information about SQL Server 2008 Service Pack 1, please review the &lt;a href="http://go.microsoft.com/fwlink/?LinkId=147331"&gt;Release Notes&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;System Requirements&lt;/strong&gt;&lt;br /&gt;* Supported Operating Systems: Windows Server 2003; Windows Server 2008; Windows Vista&lt;br /&gt;* 32-bit systems (x86)&lt;br /&gt;&lt;br /&gt;o PC with Intel or compatible Pentium III 600 MHz or higher processor (1 GHz or faster recommended)&lt;br /&gt;&lt;br /&gt;* 64-bit systems (x64, ia64)&lt;br /&gt;&lt;br /&gt;o 1GHz or faster processor&lt;br /&gt;&lt;br /&gt;* Minimum of 512 MB of RAM (1 GB or more recommended)&lt;br /&gt;&lt;br /&gt;* 675 MB of available hard disk space&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-2075034046951469672?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/2075034046951469672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/04/sql-server-2008-sp1-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/2075034046951469672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/2075034046951469672'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/04/sql-server-2008-sp1-released.html' title='SQL Server 2008 SP1 Released'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-792313163643247626</id><published>2009-04-01T12:25:00.000-04:00</published><updated>2009-04-01T12:26:09.088-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ebook'/><category scheme='http://www.blogger.com/atom/ns#' term='Execution Plan'/><title type='text'>FREE e-book: Dissecting SQL Server Execution Plans</title><content type='html'>This is a great book to read about SQL Server Execution Plans, especially free, courtesy of &lt;a href="http://www.red-gate.com/specials/Grant.htm?utm_source=st&amp;amp;utm_medium=email&amp;amp;utm_content=Grant080627&amp;amp;utm_campaign=sqltoolbelt"&gt;Red Gate&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://downloads.red-gate.com/ebooks/HighPerformanceSQL_ebook.zip"&gt;http://downloads.red-gate.com/ebooks/HighPerformanceSQL_ebook.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some of Grant's articles on Execution Plan to show the quality of his work. &lt;br /&gt;They are the best simple-to-understand Execution Plan articles I have read so far, all bookmark'ed for future reference&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.simple-talk.com/sql/performance/understanding-more-complex-query-plans/"&gt;Understanding More Complex Query Plans&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.simple-talk.com/sql/performance/graphical-execution-plans-for-simple-sql-queries/"&gt;Graphical Execution Plans for Simple SQL Queries&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.simple-talk.com/sql/performance/execution-plan-basics/"&gt;Execution Plan Basics&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-792313163643247626?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/792313163643247626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/04/free-e-book-dissecting-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/792313163643247626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/792313163643247626'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/04/free-e-book-dissecting-sql-server.html' title='FREE e-book: Dissecting SQL Server Execution Plans'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-6929290627323009177</id><published>2009-03-26T13:20:00.000-04:00</published><updated>2009-03-26T13:20:05.144-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Backup'/><title type='text'>Backup is important, Protecting the Backup is equally important</title><content type='html'>It is a sad day when hacker(s) deliberately attached &lt;a href="http://www.webhostingtalk.com/"&gt;WebHostingTalk&lt;/a&gt; and this is just another incident recently that relates to database backups (after &lt;a href="http://www.brentozar.com/archive/2009/03/another-backup-failure-carbonite/"&gt;Carbonite&lt;/a&gt;, &lt;a href="http://www.brentozar.com/archive/2009/03/backup-fail-magnolia-goes-under/"&gt;Ma.gnolia&lt;/a&gt;, &lt;a href="http://www.brentozar.com/archive/2009/01/why-back-up-ask-journalspace/"&gt;JournalSpace&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;As a DBA, it is hard to not imagine the worst for the databases we manage, and I will consult with my colleagues to ensure that our tape backup is safe from attack (both on-site AND off-site)&lt;br /&gt;&lt;br /&gt;---------------------------&lt;br /&gt;&lt;br /&gt;Hello fellow WHTers!&lt;br /&gt;&lt;br /&gt;It's been pretty hectic around here, but I wanted to make sure as many members as possible know what's going on. At approximately 8:30 pm EST on Saturday, March 21 The malicious attacker deleted all backups from the backup servers within the infrastructure before deleting tables from our db server. We were alerted of the db exploitation and quickly shut down the site to prevent further damage.&lt;br /&gt;&lt;br /&gt;We've tried to answer any questions or concerns in the following thread posted at &lt;a href="http://www.webhostingtalk.com/showthread.php?t=729727"&gt;http://www.webhostingtalk.com/showthread.php?t=729727&lt;/a&gt;. &lt;br /&gt;Be sure to subscribe if you want to stay informed. &lt;br /&gt;&lt;br /&gt;Remember, you can follow us on Twitter @WebHostingTalk.&lt;br /&gt;&lt;br /&gt;WHT Data - Q&amp;amp;A Information&lt;br /&gt;======================== &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What do we know about the damage done?&lt;/strong&gt;&lt;br /&gt;This attack was very deliberate, sophisticated and calculated. The attacker was able to circumvent our security measures and access via an arcane backdoor protected by additional firewall. We are still investigating the situation, but we know the attacker infiltrated and deleted the backups first and then deleted three databases: user/post/thread. We have no record or evidence that private message data was accessed. Absolutely no credit card or PayPal data was exposed.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Do we know the motivation behind the attack?&lt;/strong&gt;&lt;br /&gt;We don’t know enough at this time, so any insight would be purely speculative in nature. WHT is a platform where positive and negative information is shared and exposed about business and individuals. Under TOS policy, we cannot edit or remove user-generated content at the request of an unsatisfied third party. Therefore, WHT tends to become the target for disgruntled individuals and businesses.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Have we been able to restore more recent back-ups?&lt;/strong&gt;&lt;br /&gt;The offsite backup, the onsite backup and the operational data were destroyed by the attacker, so we’ve resorted to a physical back-up of last resort. Unfortunately, we are experiencing difficulty restoring from our most recent physical backup. At this point, October is the most recent backup that we were able to restore. We continue to work to extract data from a more recent set of DVDs. What is WHT focused on doing now?&lt;br /&gt;&lt;br /&gt;The first priority, which kicked in immediately upon discovering the hack while in process, was locking down the infrastructure to avoid further damage and restoring the site. We also had to block the potential for a repeat attack. Now we are working on investigating how much prior data is restorable, reinstating premium memberships, contacting business partners, and communicating with the community members. We are also doing everything possible to identify the attacker and bring them to justice. Disappointments happen – we are working hard to restore trust among community members and to bring things back to normal.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Is WHT doing anything different due to this attack?&lt;/strong&gt;&lt;br /&gt;WHT has been targeted before and our infrastructure has withstood previous attacks. However, following this well-planned and targeted attack, we will be altering aspects of our architecture to ensure that this type of attack does not happen again. Needless to say, we have learned from this situation and will address any discrepancies accordingly.&lt;br /&gt;&lt;br /&gt;We had three, protected data back-up units with one offsite behind a firewall and a fourth physical data back-up layer. We evaluated our disaster recovery plan as recent as late-2008, and carefully reviewed how to recover from a disaster situation. The attacker appeared to have deliberately targeted our data back-up systems, a scenario that our disaster recovery plan did not fully anticipate. We have implemented changes to our data backup and disaster recovery plans to address this weakness. And we advise others to consider a scenario of deliberate, malicious data destruction in their backup and recovery plans.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What should members do now?&lt;/strong&gt;&lt;br /&gt;The password encryption technology we use is strong for securing non-financial data. However, we suggest that members change their passwords frequently and do not use the same user name and password for the forum as they may use for more sensitive services like online banking. If a member feels more comfortable changing their password, then we recommend that they do what makes them feel more secure.&lt;br /&gt;&lt;br /&gt;A concern is that members may receive more spam because the attacker posted stolen email addresses on file sharing sites. I haven’t personally seen an increase in the amount of spam I usually receive to my email address, but it is a risk that we cannot easily alleviate. As we become aware of specific file sharing sites with these email addresses, we are requesting that the emails be removed promptly. So far, most have been quick to comply.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What if I can’t use my WHT account?&lt;/strong&gt;&lt;br /&gt;We are temporarily using a version of the database from October 2008. This means that if you joined WHT after October 2008, you’ll need to register again to post now. We may still be able to recover your account, but we don’t know yet. Please register with the same username you used before.&lt;br /&gt;&lt;br /&gt;If you joined WHT before October 2008 and get a password error, the system is probably asking for the password you were using in October 2008. If you don’t remember your previous password and have access to the email address for your WHT account in October 2008, please use the password recovery tool.&lt;br /&gt;&lt;br /&gt;Get updates on this topic here.&lt;br /&gt;&lt;br /&gt;For help accessing your account, please open a helpdesk ticket.&lt;br /&gt;&lt;br /&gt;If you’ve subscribed to a Premium or Corporate membership prior to October 2008, someone from iNET has contacted you by now. If you’ve subscribed (or re-subscribed) since October 2008 and haven’t heard from iNET, please contact us on the helpdesk.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Moving forward ...&lt;/strong&gt;&lt;br /&gt;We take the protection of user-contributed data very seriously, and we strongly regret what happened. iNET has a sophisticated infrastructure with advanced security. Yet even institutions that spend millions of dollars a year on Internet security are exploited. Anyone recall NASA being hacked some years back?&lt;br /&gt;&lt;br /&gt;It’s not what you’ve done, it’s what you do. And from this day forward, we continue.&lt;br /&gt;&lt;br /&gt;We’ve been overwhelmed by all the offers of help and support we’ve received from our members. What can I say about that beyond my heartfelt thanks? I love this community!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-6929290627323009177?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/6929290627323009177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/03/backup-is-important-protecting-backup.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/6929290627323009177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/6929290627323009177'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/03/backup-is-important-protecting-backup.html' title='Backup is important, Protecting the Backup is equally important'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-1971497071734098787</id><published>2009-03-24T11:04:00.000-04:00</published><updated>2009-03-24T11:11:28.731-04:00</updated><title type='text'>HOWTO: Enable and Configure Database Mail, Add SQL Agent Operator</title><content type='html'>&lt;strong&gt;&lt;span style="font-size: large;"&gt;Why&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;If you are a DBA and want to receive ANY kind of alert/notification email from the SQL Server, you need to setup the Database Mail first, just like you have to configure Outlook to connect with Exchange before receiving any email.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="font-size: large;"&gt;Who&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;DBAs who want to get notified for any pre-configured alerts or job notifications&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="font-size: large;"&gt;How&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Prerequisites&lt;/em&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;External SMTP mail server, or Microsoft exchange server&lt;/li&gt;&lt;/ul&gt;&lt;em&gt;Steps&lt;/em&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Creates a Database Mail Profile&lt;/li&gt;&lt;li&gt;Creates a Database Mail Account&lt;/li&gt;&lt;li&gt;Adds SQL Agent Operator&lt;/li&gt;&lt;li&gt;Enables SQL Agent to use the Database Mail Profile (needs to manually restart SQL Agent)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: large;"&gt;When&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Run this setup only for initial SQL Server configuration. &lt;br /&gt;Normally there is no need to re-run afterwards&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="font-size: large;"&gt;Where&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;SQL Server 2005/2008&lt;br /&gt;&lt;br /&gt;Reference: this code was taken and modified from &lt;a href="http://code.msdn.microsoft.com/SQLExamples/Wiki/View.aspx?title=DatabaseMailConfig&amp;amp;referringTitle=Home"&gt;Jonathan's "Configuring SQL Server 2005/2008 Database Mail"&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="font-size: large;"&gt;What&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;USE &lt;/span&gt;&lt;span style="color: black;"&gt;[master]&lt;br /&gt;GO&lt;br /&gt;&lt;/span&gt;&lt;span style="color: darkred;"&gt;sp_configure &lt;/span&gt;&lt;span style="color: red;"&gt;'show advanced options'&lt;/span&gt;, &lt;span style="color: black;"&gt;1&lt;br /&gt;GO&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;RECONFIGURE WITH &lt;/span&gt;&lt;span style="color: black;"&gt;OVERRIDE&lt;br /&gt;GO&lt;br /&gt;&lt;/span&gt;&lt;span style="color: darkred;"&gt;sp_configure &lt;/span&gt;&lt;span style="color: red;"&gt;'Database Mail XPs'&lt;/span&gt;, &lt;span style="color: black;"&gt;1&lt;br /&gt;GO&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;RECONFIGURE &lt;br /&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;GO&lt;br /&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;-- Create a New Mail Profile for Notifications&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;EXECUTE &lt;/span&gt;&lt;span style="color: black;"&gt;msdb.dbo.sysmail_add_profile_sp &lt;/span&gt;&lt;span style="color: #434343;"&gt;@profile_name &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;'DBA_Notifications'&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #434343;"&gt;@description &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;'Profile for sending Automated DBA Notifications'&lt;br /&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;GO&lt;br /&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;-- Set the New Profile as the Default&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;EXECUTE &lt;/span&gt;&lt;span style="color: black;"&gt;msdb.dbo.sysmail_add_principalprofile_sp &lt;/span&gt;&lt;span style="color: #434343;"&gt;@profile_name &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;'DBA_Notifications'&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #434343;"&gt;@principal_name &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;'public'&lt;/span&gt;, &lt;span style="color: #434343;"&gt;@is_default &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;;&lt;br /&gt;&lt;span style="color: black;"&gt;GO&lt;br /&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;-- Create an Account for the Notifications&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;EXECUTE &lt;/span&gt;&lt;span style="color: black;"&gt;msdb.dbo.sysmail_add_account_sp &lt;/span&gt;&lt;span style="color: #434343;"&gt;@account_name &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;'SQLMonitor'&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #434343;"&gt;@description &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;'Account for Automated DBA Notifications'&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #434343;"&gt;@email_address &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;a href="mailto:'sqlnotify@domain.com'"&gt;'sqlnotify@domain.com'&lt;/a&gt;&lt;/span&gt;,&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;-- ************ Change This ************&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #434343;"&gt;@display_name &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;'SQL Monitor'&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #434343;"&gt;@mailserver_name &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;'exchange.domain.com'&lt;/span&gt;&lt;span style="color: green;"&gt;-- ************ Change This ************&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;GO&lt;br /&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;-- Add the Account to the Profile&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;EXECUTE &lt;/span&gt;&lt;span style="color: black;"&gt;msdb.dbo.sysmail_add_profileaccount_sp &lt;/span&gt;&lt;span style="color: #434343;"&gt;@profile_name &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;'DBA_Notifications'&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #434343;"&gt;@account_name &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;'SQLMonitor'&lt;/span&gt;, &lt;span style="color: #434343;"&gt;@sequence_number &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;--Adds Operator for Job Notification&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;USE &lt;/span&gt;&lt;span style="color: black;"&gt;[msdb]&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;EXEC &lt;/span&gt;&lt;span style="color: black;"&gt;msdb.dbo.&lt;/span&gt;&lt;span style="color: darkred;"&gt;sp_add_operator &lt;/span&gt;&lt;span style="color: #434343;"&gt;@name &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;N'SQLDBAs'&lt;/span&gt;, &lt;span style="color: #434343;"&gt;@enabled &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;1&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #434343;"&gt;@weekday_pager_start_time &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;90000&lt;/span&gt;, &lt;span style="color: #434343;"&gt;@weekday_pager_end_time &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;180000&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #434343;"&gt;@saturday_pager_start_time &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;90000&lt;/span&gt;, &lt;span style="color: #434343;"&gt;@saturday_pager_end_time &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;180000&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #434343;"&gt;@sunday_pager_start_time &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;90000&lt;/span&gt;, &lt;span style="color: #434343;"&gt;@sunday_pager_end_time &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;180000&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #434343;"&gt;@pager_days &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;0&lt;/span&gt;, &lt;span style="color: #434343;"&gt;@email_address &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;a href="mailto:N'sqlnotify@domain.com'"&gt;N'sqlnotify@domain.com'&lt;/a&gt;&lt;/span&gt;,&lt;span style="color: green;"&gt;-- ************ Change This ************&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #434343;"&gt;@category_name &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;N'[Uncategorized]'&lt;br /&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;-- Enable SQL Server Agent to use Database Mail profile (in Alert System tab)&lt;br /&gt;-- restart SQL Agent after&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;USE &lt;/span&gt;&lt;span style="color: black;"&gt;[msdb]&lt;br /&gt;GO&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;EXEC MASTER&lt;/span&gt;&lt;span style="color: black;"&gt;.dbo.&lt;/span&gt;&lt;span style="color: darkred;"&gt;xp_instance_regwrite &lt;/span&gt;&lt;span style="color: red;"&gt;N'HKEY_LOCAL_MACHINE'&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: red;"&gt;N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent'&lt;/span&gt;, &lt;span style="color: red;"&gt;N'DatabaseMailProfile'&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: red;"&gt;N'REG_SZ'&lt;/span&gt;, &lt;span style="color: red;"&gt;N'DBA_Notifications'&lt;br /&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;GO&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-1971497071734098787?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/1971497071734098787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/03/howto-enable-and-configure-database.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/1971497071734098787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/1971497071734098787'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/03/howto-enable-and-configure-database.html' title='HOWTO: Enable and Configure Database Mail, Add SQL Agent Operator'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-8220463718788381141</id><published>2009-03-20T09:00:00.000-04:00</published><updated>2009-03-20T09:42:29.639-04:00</updated><title type='text'>HOW TO: Setup Cluster Failover Alert Email</title><content type='html'>To be creative, I will try to model my posts into the below format, dragging my lazy bum to finally come back and post.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why&lt;/strong&gt;&lt;br /&gt;It is strange a few years as DBA I have not yet seen a de-facto Cluster Alert solution. One can monitor event logs, SQL error logs, but there is no wizard in SQL/Windows Cluster to setup alerts for failover. With help from Google, I used this solution to send me email when a cluster fails over (i.e. SQL Server Agent will fail over too and cause the job to run). &lt;br /&gt;&lt;br /&gt;To my surprise, not that it is something I want to happen, it worked and sent me an email Tuesday&lt;br /&gt;I am certain there is a better way, someone please let me know.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Who&lt;/strong&gt;&lt;br /&gt;DBAs who want to get notified when cluster failed over&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How&lt;/strong&gt;&lt;br /&gt;Prerequisites (I will post on this tomorrow)&lt;br /&gt;-&amp;nbsp;Database Mail profile &amp;amp; account configured&lt;br /&gt;-&amp;nbsp;SQL Server Agent operator created&lt;br /&gt;&lt;br /&gt;The job sends an Email to the specified Operator when it runs&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;JOB RUN: 'Cluster Alert' was run on 3/17/2009 at 4:06:40 PM&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;DURATION: 0 hours, 0 minutes, 0 seconds&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;STATUS: Succeeded&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;MESSAGES: The job succeeded. The Job was invoked by Start Sequence 0. The last step to run was step 1 (Cluster).&lt;/span&gt;&lt;/blockquote&gt;&lt;strong&gt;When&lt;/strong&gt;&lt;br /&gt;The job is scheduled to run WHEN SQL Server Agent Starts,&amp;nbsp;which happens when&amp;nbsp;the cluster service fails over&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Where&lt;/strong&gt;&lt;br /&gt;SQL Server 2005/2008&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;USE&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;[msdb]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: green;"&gt;&lt;i&gt;/******&amp;nbsp;Object:&amp;nbsp;&amp;nbsp;Job&amp;nbsp;[Cluster&amp;nbsp;Alert]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Script&amp;nbsp;Date:&amp;nbsp;03/19/2009&amp;nbsp;16:27:37&amp;nbsp;******/&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;BEGIN&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;TRANSACTION&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;DECLARE&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@ReturnCode&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;INT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;SELECT&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@ReturnCode&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: green;"&gt;&lt;i&gt;/******&amp;nbsp;Object:&amp;nbsp;&amp;nbsp;JobCategory&amp;nbsp;[Database&amp;nbsp;Maintenance]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Script&amp;nbsp;Date:&amp;nbsp;03/19/2009&amp;nbsp;16:27:37&amp;nbsp;******/&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;IF&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;NOT&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;EXISTS&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;name&lt;/span&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;FROM&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: maroon;"&gt;msdb&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;dbo&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;syscategories&lt;/span&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;WHERE&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: maroon;"&gt;name&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;N'Database&amp;nbsp;Maintenance'&lt;/span&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;AND&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;category_class&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;BEGIN&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;EXEC&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@ReturnCode&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;msdb&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;dbo&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: #ff0080;"&gt;&lt;b&gt;Sp_add_category&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@class&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;N'JOB'&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@type&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;N'LOCAL'&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@name&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;N'Database&amp;nbsp;Maintenance'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;IF&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;@@ERROR&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&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;&lt;span style="color: blue;"&gt;OR&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@ReturnCode&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;GOTO&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;quitwithrollback&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;DECLARE&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@jobId&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;BINARY&lt;/span&gt;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;16&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;EXEC&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@ReturnCode&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;msdb&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;dbo&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: #ff0080;"&gt;&lt;b&gt;Sp_add_job&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@job_name&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;N'Cluster&amp;nbsp;Alert'&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@enabled&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@notify_level_eventlog&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@notify_level_email&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;3&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@notify_level_netsend&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@notify_level_page&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@delete_level&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@description&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;N'No&amp;nbsp;description&amp;nbsp;available.'&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@category_name&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;N'Database&amp;nbsp;Maintenance'&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@owner_login_name&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;N'sa'&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@notify_email_operator_name&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;N'SqlDbas'&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@job_id&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@jobId&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;OUTPUT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;IF&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;@@ERROR&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;OR&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@ReturnCode&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;GOTO&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;quitwithrollback&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: green;"&gt;&lt;i&gt;/******&amp;nbsp;Object:&amp;nbsp;&amp;nbsp;Step&amp;nbsp;[Cluster]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Script&amp;nbsp;Date:&amp;nbsp;03/19/2009&amp;nbsp;16:27:37&amp;nbsp;******/&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;EXEC&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@ReturnCode&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;msdb&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;dbo&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: #ff0080;"&gt;&lt;b&gt;Sp_add_jobstep&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@job_id&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@jobId&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@step_name&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;N'Cluster'&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@step_id&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@cmdexec_success_code&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@on_success_action&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@on_success_step_id&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@on_fail_action&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@on_fail_step_id&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@retry_attempts&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@retry_interval&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@os_run_priority&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@subsystem&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;N'TSQL'&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@command&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;N'print&amp;nbsp;''cluster'''&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@database_name&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;N'master'&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@flags&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;IF&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;@@ERROR&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;OR&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@ReturnCode&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;GOTO&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;quitwithrollback&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;EXEC&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@ReturnCode&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;msdb&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;dbo&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: #ff0080;"&gt;&lt;b&gt;Sp_update_job&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@job_id&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@jobId&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@start_step_id&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;IF&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;@@ERROR&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;OR&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@ReturnCode&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;GOTO&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;quitwithrollback&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;EXEC&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@ReturnCode&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;msdb&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;dbo&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: #ff0080;"&gt;&lt;b&gt;Sp_add_jobschedule&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@job_id&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@jobId&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@name&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;N'SQLAgentStart'&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@enabled&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@freq_type&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;64&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@freq_interval&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@freq_subday_type&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@freq_subday_interval&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@freq_relative_interval&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@freq_recurrence_factor&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@active_start_date&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;20090309&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@active_end_date&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;99991231&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@active_start_time&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@active_end_time&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;235959&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;IF&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;@@ERROR&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;OR&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@ReturnCode&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;GOTO&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;quitwithrollback&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;EXEC&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@ReturnCode&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;msdb&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;dbo&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: #ff0080;"&gt;&lt;b&gt;Sp_add_jobserver&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@job_id&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@jobId&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@server_name&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;N'(local)'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;IF&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;@@ERROR&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;OR&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@ReturnCode&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;GOTO&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;quitwithrollback&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;GOTO&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;endsave&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;QUITWITHROLLBACK:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;IF&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;@@TRANCOUNT&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;ROLLBACK&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;TRANSACTION&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;ENDSAVE:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-8220463718788381141?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/8220463718788381141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/03/how-to-setup-cluster-failover-alert.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/8220463718788381141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/8220463718788381141'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/03/how-to-setup-cluster-failover-alert.html' title='HOW TO: Setup Cluster Failover Alert Email'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-1660730758005737063</id><published>2009-03-19T16:22:00.000-04:00</published><updated>2009-03-19T16:23:19.426-04:00</updated><title type='text'>SQL Server Enterprise Policy Management</title><content type='html'>I came across the &lt;a href="http://www.codeplex.com/EPMFramework"&gt;Enterprise Policy Management&lt;/a&gt;&amp;nbsp;that utilized the SQL 2008 policy and serves a DBA's desire to centralize monitor/govern multiple database servers&lt;br /&gt;&lt;br /&gt;Downloaded and set it up yesterday mostly fine, and the last obstacle was addressed today thanks to Lara's help - it really does NOT support "nested/2nd level" Central Management Server group&lt;br /&gt;&lt;br /&gt;So far, my 2 test servers are 100% green :-)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Project Description&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The Enterprise Policy Management Framework is a reporting solution on the state of the enterprise against a desired state defined in a policy. Extend Policy-Based Management to all SQL Server instances in the enterprise. Centralize and report on the policy evaluation results.&lt;br /&gt;&lt;br /&gt;The Enterprise Policy Management Framework (EPM) is a solution to extend SQL Server 2008 Policy-Based Management to all versions of SQL Server in an enterprise, including SQL Server 2000 and SQL Server 2005. The EPM Framework will report the state of specified SQL Server instances against policies that define the defined intent, desired configuration, and deployment standards.&lt;/blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=EPMFramework&amp;amp;DownloadId=59406" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" ii="true" src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=EPMFramework&amp;amp;DownloadId=59406" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-1660730758005737063?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/1660730758005737063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/03/sql-server-enterprise-policy-management.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/1660730758005737063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/1660730758005737063'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/03/sql-server-enterprise-policy-management.html' title='SQL Server Enterprise Policy Management'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-4094645449317197745</id><published>2009-02-23T13:14:00.000-05:00</published><updated>2009-02-23T13:17:09.565-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSMS'/><category scheme='http://www.blogger.com/atom/ns#' term='SSMS Tools Pack'/><title type='text'>SSMS Tools Pack 1.5 (for SQL Management Studio 2005/2008)</title><content type='html'>Can't believe I missed it, but new version of my favourte "free" SQL Management Studio add-ins is available, &lt;a href="http://www.ssmstoolspack.com/Download.aspx"&gt;SSMS Tools Pack version 1.5&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;New/improved features include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Window Connection Coloring (a colored strip indicator that can be docked to any side of the window)&amp;nbsp;- I should compare this to the SQL 2008 Central Management Server, where I set my production servers to be &lt;span style="color: red;"&gt;RED&lt;/span&gt; status bar for warning purpose&lt;/li&gt;&lt;li&gt;Search Table or Database Data&lt;/li&gt;&lt;li&gt;Uppercase/Lowercase keywords and Proper Case Database Object Names&lt;/li&gt;&lt;li&gt;Sending feedback directly from SSMS.&lt;/li&gt;&lt;li&gt;Import and Export options.&lt;/li&gt;&lt;li&gt;Delete Query history log files older than user settable age.&amp;nbsp;&amp;nbsp; &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-4094645449317197745?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/4094645449317197745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/02/ssms-tools-pack-15-for-sql-management.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/4094645449317197745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/4094645449317197745'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/02/ssms-tools-pack-15-for-sql-management.html' title='SSMS Tools Pack 1.5 (for SQL Management Studio 2005/2008)'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-5009733623442917486</id><published>2009-02-18T13:06:00.000-05:00</published><updated>2009-04-01T12:27:10.902-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ebook'/><category scheme='http://www.blogger.com/atom/ns#' term='Profiler'/><title type='text'>FREE e-book - Mastering SQL Server Profiler</title><content type='html'>I came across this free e-book via Red Gate/SQL Server Central Database Weekly email&lt;br /&gt;It is 283 pages, but looks to be a good read/tool book &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.red-gate.com/products/SQL_Response/offers/mastering_sql_profiler_ebook.htm?utm_source=dbw&amp;amp;utm_medium=email&amp;amp;utm_content=profiler20090215&amp;amp;utm_campaign=sqlresponse"&gt;Volume 2: Mastering SQL Server Profiler&lt;/a&gt;&amp;nbsp;(10MB PDF)&lt;br /&gt;&lt;br /&gt;I hope it's okay to list some useful contents I find (below are copied from the contents, copyright by Red Gate):&lt;br /&gt;&lt;blockquote&gt;Contents 1&lt;br /&gt;Getting Started with Profiler 5&lt;br /&gt;The inner workings of Profiler 6&lt;br /&gt;Profiler terminology 7&lt;br /&gt;Getting Started with Profiler 9&lt;br /&gt;Summary 21&lt;br /&gt;Working with Traces and Templates 22&lt;br /&gt;Understanding the Events Selection Options 22&lt;br /&gt;Creating a Custom Trace from Scratch 25&lt;br /&gt;Saving Traces to a SQL Server Table 35&lt;br /&gt;Capturing Analysis Server Traces 37&lt;br /&gt;Creating and Using Trace Templates 40&lt;br /&gt;Summary 50&lt;br /&gt;Profiler GUI Tips and Tricks 52&lt;br /&gt;Summary 72&lt;br /&gt;&lt;strong&gt;How to Identify Slow Running Queries 74&lt;/strong&gt;&lt;br /&gt;Creating a Trace to Identify Slow Running Queries 74&lt;br /&gt;Analyzing the Poorly Performing Queries Identified by Profiler 83&lt;br /&gt;Summary 94&lt;br /&gt;&lt;strong&gt;How to Identify and Troubleshoot SQL Server Problems 95&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;How to Identify Deadlocks 95&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;How to Identify Blocking Issues 103&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;How to Identify Excessive Auto Stats Activity 109&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;How to Identify Excessive Statement Compilations 112&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;How to Identify Excessive Database File Growth/Shrinkage 118&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;How to Identify Excessive Table/Index Scans 122&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;How to Identify Memory Problems 126&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Using Profiler to Audit Database Activity 131&lt;/strong&gt;&lt;br /&gt;Capturing Audit Events 132&lt;br /&gt;Selecting Data Columns 134&lt;br /&gt;Selecting Column Filters 136&lt;br /&gt;Organizing Columns 137&lt;br /&gt;How to Conduct an Audit Trace 138&lt;br /&gt;Summary 140&lt;br /&gt;&lt;strong&gt;Using Profiler with the Database Engine Tuning Advisor 141&lt;/strong&gt;&lt;br /&gt;Features and Benefits of Using the DTA 141 3&lt;br /&gt;How to Create a Trace for Use by the DTA 142&lt;br /&gt;Summary 156&lt;br /&gt;Correlating Profiler with Performance Monitor 157&lt;br /&gt;&lt;strong&gt;How to Collect Profiler Data for Correlation Analysis 157&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;How to Collect Performance Monitor Data for Correlation Analysis 159&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;How to Capture Profiler Traces and Performance Monitor Logs 170&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;How to Correlate SQL Server 2005 Profiler Data with Performance Monitor Data 171&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;How to Analyze Correlated Data 176&lt;/strong&gt;&lt;br /&gt;Summary 186&lt;br /&gt;How to Capture Profiler Traces Programmatically 187&lt;br /&gt;Summary 200&lt;br /&gt;&lt;strong&gt;Profiler Best Practices 201&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;General Profiler Best Practices 201&lt;/strong&gt;&lt;br /&gt;Creating Traces 204&lt;br /&gt;Running Traces 205&lt;br /&gt;Analyzing Traces 206&lt;br /&gt;Performance Monitor 207&lt;br /&gt;Database Engine Tuning Advisor 208&lt;br /&gt;Summary 208&lt;br /&gt;Profiler Events and Data Columns Explained 209&lt;br /&gt;Event Categories 209&lt;br /&gt;Profiler Data Columns 274&lt;br /&gt;Summary 281&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-5009733623442917486?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/5009733623442917486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/02/free-e-book-mastering-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5009733623442917486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5009733623442917486'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/02/free-e-book-mastering-sql-server.html' title='FREE e-book - Mastering SQL Server Profiler'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-389051646088717755</id><published>2009-02-13T09:46:00.000-05:00</published><updated>2009-02-13T09:46:10.864-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='MCTS'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='Certification'/><category scheme='http://www.blogger.com/atom/ns#' term='MCITP'/><title type='text'>SQL Server Certification Statistics</title><content type='html'>Saw this interesting statistics today (source: &lt;a href="http://sqlblog.com/blogs/greg_low/archive/2009/01/29/sql-server-certification-statistics.aspx"&gt;Greg Low&lt;/a&gt;)&amp;nbsp;and wow! &lt;br /&gt;&lt;br /&gt;I want to emphasize that I am also a believer in real world experiences over certification though, for myself, and for any future persons I may hire&lt;br /&gt;&lt;br /&gt;SQL Server related stats from &lt;a href="http://www.microsoft.com/learning/mcp/certified.mspx"&gt;Microsoft&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;MCDBA SQL 2000 152086&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;MCTS&lt;/strong&gt; &lt;br /&gt;SQL 2005 41665&lt;br /&gt;SQL 2005 BI 2600&lt;br /&gt;&lt;br /&gt;SQL 2008 Dev 336&lt;br /&gt;SQL 2008 BI 134&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;MCITP&lt;/strong&gt; &lt;br /&gt;SQL 2005 DBA 6695&lt;br /&gt;SQL 2005 Dev 2925&lt;br /&gt;SQL 2005 BI 1088&lt;br /&gt;&lt;br /&gt;SQL 2008 DBA 92&lt;br /&gt;SQL 2008 BI 50&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;MCM&lt;/strong&gt; &lt;br /&gt;SQL 2005 18&lt;br /&gt;SQL 2008 2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-389051646088717755?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/389051646088717755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/02/sql-server-certification-statistics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/389051646088717755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/389051646088717755'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/02/sql-server-certification-statistics.html' title='SQL Server Certification Statistics'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-200061771870772746</id><published>2009-01-09T14:19:00.000-05:00</published><updated>2009-02-13T11:22:42.528-05:00</updated><title type='text'>Joke - I think, therefore I am</title><content type='html'>This is a funny joke on &lt;a href="http://en.wikipedia.org/wiki/Ren%C3%A9_Descartes"&gt;Rene Descartes'&lt;/a&gt; famous statement - I think, therefore I am;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Descartes' wife: Rene - did you remember to pick up the milk?&lt;br /&gt;&lt;br /&gt;Descartes: I don't think..(Descartes disappears) &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-200061771870772746?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/200061771870772746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/01/i-think-therefore-i-am.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/200061771870772746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/200061771870772746'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/01/i-think-therefore-i-am.html' title='Joke - I think, therefore I am'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-3690839764802440885</id><published>2009-01-07T15:09:00.000-05:00</published><updated>2009-04-13T14:24:06.160-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='70-444'/><category scheme='http://www.blogger.com/atom/ns#' term='Certification'/><title type='text'>Passed 70-444 Exam</title><content type='html'>In a better than expected snowstorm, I arrived safely and finished the 70-444 exam quickly with perfect score&lt;br /&gt;&lt;br /&gt;With 70-444 gone, I'll only have 70-443 left before getting the MCITP: Database Administrator&lt;br /&gt;&lt;br /&gt;And one resolution achieved within a week of the new year&lt;br /&gt;&lt;br /&gt;Then&amp;nbsp;there is maybe MBA after that.... the never-ending learning in life&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-3690839764802440885?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/3690839764802440885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/01/passed-70-444-exam.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/3690839764802440885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/3690839764802440885'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/01/passed-70-444-exam.html' title='Passed 70-444 Exam'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-233671152430174308</id><published>2009-01-06T15:07:00.000-05:00</published><updated>2009-01-07T15:11:30.116-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='70-444'/><title type='text'>Taking my 70-444 Exam tomorrow, in snowstorm</title><content type='html'>Not too shocked, the day I arranged a month ago to take my 70-444 exam, is the day where there will be 10~12 cm of snow. Great... I don't feel as ready as 70-431 already, and the weather isn't helping&lt;br /&gt;&lt;br /&gt;Fingers crossed!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-233671152430174308?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/233671152430174308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/01/taking-my-70-444-exam-tomorrow-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/233671152430174308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/233671152430174308'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2009/01/taking-my-70-444-exam-tomorrow-in.html' title='Taking my 70-444 Exam tomorrow, in snowstorm'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-136900435277305175</id><published>2009-01-01T03:10:00.000-05:00</published><updated>2009-01-02T13:58:18.752-05:00</updated><title type='text'>HAPPY NEW YEAR, 2009</title><content type='html'>I want to wish everybody a &lt;strong&gt;&lt;span style="color:red;"&gt;HAPPY HAPPY NEW YEAR&lt;/span&gt;&lt;/strong&gt; and a better 2009&lt;br /&gt;&lt;br /&gt;New Year Resolutions for my SQL career&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Obtain my MCITP: SQL Server 2005 shortly&lt;/li&gt;&lt;li&gt;Able to revamp our company backup policy and structure to make it better (smaller, faster, easier)&lt;/li&gt;&lt;li&gt;Work with Cluster and become an expert&lt;/li&gt;&lt;li&gt;Improve my management, social, and business skills&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-136900435277305175?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/136900435277305175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/12/happy-new-year-for-2009.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/136900435277305175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/136900435277305175'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/12/happy-new-year-for-2009.html' title='HAPPY NEW YEAR, 2009'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-1901327430680018913</id><published>2008-12-16T11:29:00.000-05:00</published><updated>2008-12-16T11:36:08.077-05:00</updated><title type='text'>SQL Server 2005 SP3 is out today!</title><content type='html'>To everyone's surprise, Microsoft DID release the SQL Server 2005 SP3 before end of the year 2008! Now we are waiting for the brave souls to try it out before we adopt it at work&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ae7387c3-348c-4faa-8ae5-949fdfbe59c4&amp;amp;displaylang=en"&gt;Download&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;SQL Server Build version will be 9.00.4035 after SP3 (SP2 was 9.00.3042)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;br /&gt;Service Pack 3 for Microsoft SQL Server 2005 is now available. SQL Server 2005 service packs are cumulative, and this service pack upgrades all service levels of SQL Server 2005 to SP3. You can use these packages to upgrade any of the following SQL Server 2005 editions:&lt;br /&gt;&lt;br /&gt;* Enterprise&lt;br /&gt;* Enterprise Evaluation&lt;br /&gt;* Developer&lt;br /&gt;* Standard&lt;br /&gt;* Workgroup&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;System Requirements&lt;/strong&gt;&lt;br /&gt;* Supported Operating Systems: Windows 2000 Service Pack 4; Windows Server 2003; Windows Server 2008; Windows Vista; Windows XP&lt;br /&gt;* 32-bit systems (x86)&lt;br /&gt;o PC with Intel or compatible Pentium III 600 MHz or higher processor (1 GHz or faster recommended)&lt;br /&gt;* 64-bit systems (x64, ia64)&lt;br /&gt;o 1GHz or faster processor&lt;br /&gt;* Minimum of 512 MB of RAM (1 GB or more recommended)&lt;br /&gt;* 675 MB of available hard disk space&lt;br /&gt;&lt;br /&gt;Note: &lt;br /&gt;&lt;strong&gt;SQL Server 2005 Service Pack 3 (SP3) is designed to run on Windows Vista and Windows Server 2008.&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-1901327430680018913?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/1901327430680018913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/12/sql-server-2005-sp3-is-out-today.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/1901327430680018913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/1901327430680018913'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/12/sql-server-2005-sp3-is-out-today.html' title='SQL Server 2005 SP3 is out today!'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-5216264660313416929</id><published>2008-12-15T15:37:00.000-05:00</published><updated>2008-12-15T15:40:47.507-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='70-444'/><category scheme='http://www.blogger.com/atom/ns#' term='70-443'/><category scheme='http://www.blogger.com/atom/ns#' term='70-431'/><title type='text'>Passed 70-431 Exam = I am MCTS: SQL Server 2005</title><content type='html'>I am now officially &lt;strong&gt;Microsoft Certified Technology Specialist: SQL Server 2005&lt;/strong&gt;, passed the 70-431 exam today&amp;nbsp;with flying colours&lt;br /&gt;&lt;br /&gt;Next are 2 more exams to get my &lt;strong&gt;MCITP: Database Administrator&lt;/strong&gt; certification&lt;br /&gt;&lt;br /&gt;PRO: Designing a Database Server Infrastructure by Using Microsoft SQL Server 2005&lt;br /&gt;&lt;a href="http://www.microsoft.com/learning/en/us/exams/70-443.mspx"&gt;http://www.microsoft.com/learning/en/us/exams/70-443.mspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PRO: Optimizing and Maintaining a Database Administration Solution by Using Microsoft SQL Server 2005&lt;br /&gt;&lt;a href="http://www.microsoft.com/learning/exams/70-444.mspx"&gt;http://www.microsoft.com/learning/exams/70-444.mspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-5216264660313416929?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/5216264660313416929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/12/passed-70-431-exam-i-am-mcts-sql-server.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5216264660313416929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5216264660313416929'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/12/passed-70-431-exam-i-am-mcts-sql-server.html' title='Passed 70-431 Exam = I am MCTS: SQL Server 2005'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-9023304169047584770</id><published>2008-12-09T10:52:00.000-05:00</published><updated>2008-12-09T10:58:51.815-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exam'/><category scheme='http://www.blogger.com/atom/ns#' term='Certification'/><category scheme='http://www.blogger.com/atom/ns#' term='70-431'/><title type='text'>70-431 Exam - Here I Come</title><content type='html'>You snooze, you loose, proven again&lt;br /&gt;&lt;br /&gt;I was lazy and waiting patiently to book my 70-431 exam for end of December when everyone is relaxed, vacations around the holidays. Then I looked yesterday, NOTHING is available until late January 2009, and the only spot left is NEXT Monday. Oops&lt;br /&gt;&lt;br /&gt;I took it, and what better reason to force myself to study harder and memorize everything before I lose it in couple weeks anyway.&lt;br /&gt;&lt;br /&gt;Exam 70-431: &lt;a href="http://www.microsoft.com/learning/en/us/exams/70-431.aspx"&gt;TS: Microsoft SQL Server 2005 - Implementation and Maintenance&lt;/a&gt; &lt;br /&gt;After passing, one becomes &lt;strong&gt;Microsoft Certified Technology Specialist: SQL Server 2005&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-9023304169047584770?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/9023304169047584770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/12/70-431-exam-here-i-come.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/9023304169047584770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/9023304169047584770'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/12/70-431-exam-here-i-come.html' title='70-431 Exam - Here I Come'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-7043958264092071575</id><published>2008-12-05T10:36:00.000-05:00</published><updated>2008-12-08T16:03:35.032-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Trigger'/><category scheme='http://www.blogger.com/atom/ns#' term='DDL'/><title type='text'>Trigger</title><content type='html'>Earlier this week I had to disable many triggers just so that we can Restore Databases and Create Databases &lt;br /&gt;&lt;br /&gt;The triggers were set to send out alerts on DDL events but 2 issues&lt;br /&gt;&lt;br /&gt;1. The DBA db didn't exist on that server but the trigger is relying on that db, so I found the triggers using the below scripts, and disabled them (or a simple &lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: grey;"&gt;* &lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;sys.triggers&lt;/span&gt;&lt;/code&gt; would work too)&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;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; &lt;/span&gt;&lt;span style="color: black;"&gt;sysobjects.name &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;[Trigger Name]&lt;/span&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;&amp;nbsp; &lt;span style="color: black;"&gt;syscomments.&lt;/span&gt;&lt;span style="color: blue;"&gt;TEXT AS &lt;/span&gt;&lt;span style="color: black;"&gt;[Trigger Definition]&lt;/span&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;&amp;nbsp; &lt;span style="color: green;"&gt;--SUBSTRING(syscomments.text, 0, 26) AS [Trigger Definition],&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; &lt;/span&gt;&lt;span style="color: magenta;"&gt;OBJECT_NAME&lt;/span&gt;(&lt;span style="color: black;"&gt;sysobjects.parent_obj&lt;/span&gt;) &lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;[Table Name]&lt;/span&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;&amp;nbsp; &lt;span style="color: black;"&gt;syscomments.encrypted &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;[IsEncrpted]&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;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; &lt;/span&gt;&lt;span style="color: black;"&gt;sysobjects &lt;/span&gt;&lt;span style="color: blue;"&gt;INNER JOIN &lt;/span&gt;&lt;span style="color: black;"&gt;syscomments &lt;/span&gt;&lt;span style="color: blue;"&gt;ON &lt;/span&gt;&lt;span style="color: black;"&gt;sysobjects.id &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;syscomments.id&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE&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; &lt;/span&gt;(&lt;span style="color: black;"&gt;sysobjects.xtype &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: red;"&gt;'TR'&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: blue;"&gt;ORDER BY &lt;/span&gt;&lt;span style="color: black;"&gt;[Table Name]&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. SharePoint creating database name so long that it broke the XML column used in the DDL trigger for Creating Database, so I disabled the DDL Trigger by&lt;br /&gt;&lt;br /&gt;1. Find the trigger name (KEY!)&lt;br /&gt;Server -&amp;gt; Server Objects -&amp;gt; Triggers -&amp;gt; trigger_name&lt;br /&gt;&lt;br /&gt;2. DISABLE TRIGGER trigger_name&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-7043958264092071575?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/7043958264092071575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/12/trigger.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/7043958264092071575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/7043958264092071575'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/12/trigger.html' title='Trigger'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-8009102657780584443</id><published>2008-12-05T09:42:00.000-05:00</published><updated>2008-12-05T09:46:13.140-05:00</updated><title type='text'>FREE SQL Server Tools</title><content type='html'>I am starting to compose a list of SQL Server Tools I personally use &lt;br /&gt;&lt;br /&gt;Today starts with &lt;span style="color: blue;"&gt;&lt;strong&gt;xSQL Software&lt;/strong&gt;&lt;/span&gt;, especially their FREE products&lt;br /&gt;&lt;a href="http://www.xsqlsoftware.com/Product/Index.aspx"&gt;http://www.xsqlsoftware.com/Product/Index.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;xSQL Object&lt;/strong&gt;&lt;br /&gt;FREE LITE EDITION&lt;br /&gt;Compare and Synchronize SQL Server Database Schemas&lt;br /&gt;generates SQL scripts too, closest to RedGate SQL Compare IMO&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;xSQL Script Executor&lt;/strong&gt; &lt;br /&gt;Free tool that provides for transactional execution of T-SQL scripts&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;xSQL Object Search&lt;/strong&gt; &lt;br /&gt;Free tool for SQL Server 2005 that locates database objects the name and/or definition of which meet a search criteria.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;xSQL Script Executor&lt;/strong&gt;&lt;br /&gt;Free tool that provides for transactional execution of T-SQL scripts&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;RSS Reporter&lt;/strong&gt;&lt;br /&gt;FREE for 1 server&lt;br /&gt;Generate standard RSS feeds for SQL Server job status, ad-hoc queries, database size and space usage.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;xSQL Data Compare&lt;/strong&gt; &lt;br /&gt;FREE LITE EDITION&lt;br /&gt;Compare and Synchronize SQL Server Database content&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-8009102657780584443?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/8009102657780584443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/12/free-sql-server-tools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/8009102657780584443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/8009102657780584443'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/12/free-sql-server-tools.html' title='FREE SQL Server Tools'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-4102083101136939090</id><published>2008-11-27T12:50:00.000-05:00</published><updated>2008-11-27T12:51:23.320-05:00</updated><title type='text'>Sad SQL Joke</title><content type='html'>I read this &lt;a href="http://sql-server-performance.com/Community/blogs/editorsblog/archive/2008/11/26/happy-thanksgiving.aspx"&gt;joke&lt;/a&gt;&amp;nbsp;today&lt;br /&gt;A SQL query goes into a bar, walks up to two tables and says, "Can I join you".&lt;br /&gt;&lt;br /&gt;Oh man...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-4102083101136939090?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/4102083101136939090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/11/sad-sql-joke.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/4102083101136939090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/4102083101136939090'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/11/sad-sql-joke.html' title='Sad SQL Joke'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-5036647184329987325</id><published>2008-11-25T15:21:00.000-05:00</published><updated>2008-11-25T15:48:54.388-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Trace'/><category scheme='http://www.blogger.com/atom/ns#' term='xSQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Profiler'/><title type='text'>xSQL Profiler Take 2</title><content type='html'>Today I decided to use xSQL Profiler to help me diagnose some memory pressure/paged out problems we are facing, and boy, that was probably an error (partially my fault to trace too much perhaps)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Problems:&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I was tracing a remote server A (trace files are located on A's E drive) starting 12:30 pm&lt;/li&gt;&lt;li&gt;xSQL Profiler repository is located on my computer J, that go fetch trace files from server A&lt;/li&gt;&lt;li&gt;I think my computer cannot catch up to the trace files creation, and in ten minutes I have 6GB of trace files on server A and running low on space. &lt;/li&gt;&lt;li&gt;I killed the xSQL Profiler hoping it would stop (at this time about 80,000 rows collected)&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;And....&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It did not stop!! and drove my local SQL Server memory to 1GB and slowed my laptop to a crawl&lt;/li&gt;&lt;li&gt;I could not start the "xSQL Profiler" as it says it cannot connect to the database despite being there&lt;/li&gt;&lt;li&gt;I could not start the "xSQL Profiler Service" as it creates 10+ traces insantly on server A again&lt;/li&gt;&lt;li&gt;I tried deleting entries in the local "xSQLProfiler" database tables (such as dbo.Traces, dbo.APPLICATION_SETTINGS, dbo.TRACE_SCHEDULES....) =&amp;gt; as soon as I started xSQL Profiler, it created the 10+ traces AGAIN.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Fix:&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Created the SQL script below to KILL ALL traces except the default one (I ran about 10 times this afternoon)&lt;/li&gt;&lt;li&gt;Renamed the trace file directory on server A's E drive [this made it stop, finally,&amp;nbsp;near 3:30 pm]&lt;/li&gt;&lt;li&gt;I still cannot open up the xSQL Profiler application (cannot connect to database)&lt;/li&gt;&lt;li&gt;EXTREME CAUTION for NEXT TIME&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;This is the code I ended up with, and added to my toolbox&lt;br /&gt;It kills ALL Profilers trace but the default SQL trace&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;DECLARE &lt;/span&gt;&lt;span style="color: #434343;"&gt;@traceid &lt;/span&gt;&lt;span style="color: blue;"&gt;INT&lt;br /&gt;DECLARE &lt;/span&gt;&lt;span style="color: black;"&gt;curDBs &lt;/span&gt;&lt;span style="color: blue;"&gt;CURSOR &lt;/span&gt;&lt;span style="color: black;"&gt;FAST_FORWARD &lt;/span&gt;&lt;span style="color: blue;"&gt;FOR &lt;/span&gt;&lt;span style="color: green;"&gt;-- fast forward = read only, forward only&lt;br /&gt;&amp;nbsp;&amp;nbsp; --Run the following Transact-SQL statement to retrieve the list of the running trace:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT DISTINCT &lt;/span&gt;&lt;span style="color: black;"&gt;traceid&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;--,* &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: grey;"&gt;::&lt;/span&gt;&lt;span style="color: darkred;"&gt;fn_trace_getinfo&lt;/span&gt;&lt;span style="color: grey;"&gt;(NULL)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;traceid&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;lt;&amp;gt; &lt;/span&gt;&lt;span style="color: black;"&gt;1 &lt;/span&gt;&lt;span style="color: green;"&gt;-- do not kill the default SQL trace&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;OPEN &lt;/span&gt;&lt;span style="color: black;"&gt;curDBs&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;FETCH &lt;/span&gt;&lt;span style="color: black;"&gt;NEXT &lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;curDBs &lt;/span&gt;&lt;span style="color: blue;"&gt;INTO &lt;/span&gt;&lt;span style="color: #434343;"&gt;@traceid&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHILE &lt;/span&gt;&lt;span style="color: #434343;"&gt;@@FETCH_STATUS &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;0&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;BEGIN&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;--Run the following Transact-SQL statement to stop the server-side trace&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;EXEC &lt;/span&gt;&lt;span style="color: darkred;"&gt;sp_trace_setstatus &lt;/span&gt;&lt;span style="color: #434343;"&gt;@traceid &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: #434343;"&gt;@traceid &lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: #434343;"&gt;@status &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;0&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;--Run the following Transact-SQL statement to close the trace and to delete the trace information &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;EXEC &lt;/span&gt;&lt;span style="color: darkred;"&gt;sp_trace_setstatus &lt;/span&gt;&lt;span style="color: #434343;"&gt;@traceid &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: #434343;"&gt;@traceid &lt;/span&gt;&lt;span style="color: grey;"&gt;, &lt;/span&gt;&lt;span style="color: #434343;"&gt;@status &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;2&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;FETCH &lt;/span&gt;&lt;span style="color: black;"&gt;NEXT &lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;curDBs &lt;/span&gt;&lt;span style="color: blue;"&gt;INTO &lt;/span&gt;&lt;span style="color: #434343;"&gt;@traceid&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;br /&gt;&lt;br /&gt;CLOSE &lt;/span&gt;&lt;span style="color: black;"&gt;curDBs&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;DEALLOCATE &lt;/span&gt;&lt;span style="color: black;"&gt;curDBs&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: grey;"&gt;* &lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: grey;"&gt;::&lt;/span&gt;&lt;span style="color: darkred;"&gt;fn_trace_getinfo&lt;/span&gt;&lt;span style="color: grey;"&gt;(NULL)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;RETURN&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-5036647184329987325?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/5036647184329987325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/11/xsql-profiler-take-2.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5036647184329987325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5036647184329987325'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/11/xsql-profiler-take-2.html' title='xSQL Profiler Take 2'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-7208689630572535049</id><published>2008-11-18T13:19:00.000-05:00</published><updated>2008-11-18T15:04:59.043-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Daylight Saving Time'/><category scheme='http://www.blogger.com/atom/ns#' term='Transaction Log'/><title type='text'>Daylight Saving Time and SQL Server Job</title><content type='html'>We encountered an issue with &lt;a href="http://en.wikipedia.org/wiki/Daylight_saving_time"&gt;Daylight Savings Time&lt;/a&gt; in our hourly transaction log after the Nov 2, 2008 Daylight Saving Time change. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Problem:&lt;/strong&gt;&lt;br /&gt;The transaction log is set to occur every hour, then copied over to standby servers for automatic restore&lt;br /&gt;&lt;br /&gt;There was a transaction log for Nov 2, 2008 1:00 AM EDT (e.g. &lt;strong&gt;200811020100.trn&lt;/strong&gt;)&lt;br /&gt;&lt;br /&gt;Next&amp;nbsp;transaction log should be&amp;nbsp;Nov 2, 2008 2:00 AM EDT (&lt;strong&gt;200811020200.trn&lt;/strong&gt;), but since DST ended by one hour back at 2 am, 2&amp;nbsp;am EDT&amp;nbsp;is&amp;nbsp;now effectively 1&amp;nbsp;am EST&lt;br /&gt;The OS time is now Nov 2, 2008 1:00 AM EST, and guess what, the transaction log file name is again &lt;strong&gt;200811020100.trn&lt;/strong&gt;, effectively overwrote the original 1 am log&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How We Fixed It?&lt;/strong&gt;&lt;br /&gt;We ended up applying Differential backups since the last Full backup to bring the databases to the newest state, and then apply all the transaction logs after to catch up&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How To Prevent It?&lt;/strong&gt;&lt;br /&gt;We change these servers to use UTC timestamp (namely GMT Reykjavik timezone in Windows), and increase current SQL Jobs by 5 hours ahead to run in the "correct" low traffic hours. Now&amp;nbsp;we do not need to worry about the&amp;nbsp;gap between 1 am &amp;amp; 3 am for Spring, and 1 am &amp;amp; 1 am for Fall.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;br /&gt;This problem ONLY occurs for regular-interval jobs, not for specific-time driven jobs&lt;br /&gt;And supposedly the OS will never reach 2 am but 1:59:59 am EST, and then 1:00:00 am EDT so that the job will not run twice (and that SQL will adjust any job which ran between 1 and 2 am EDT for you)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Thoughts:&lt;/strong&gt;&lt;br /&gt;In short, it's shocking it's still happening, and I know why IT people love to use UTC now despite it's confusing for East Coast employees. Microsoft's &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;931975&amp;amp;sd=rss&amp;amp;spid=2855"&gt;How to prepare SQL Server 2005 and SQL Server 2000 for changes to daylight saving time in 2007&lt;/a&gt; article.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-7208689630572535049?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/7208689630572535049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/11/daylight-saving-time-and-sql-server-job.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/7208689630572535049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/7208689630572535049'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/11/daylight-saving-time-and-sql-server-job.html' title='Daylight Saving Time and SQL Server Job'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-3583003569129081268</id><published>2008-11-10T11:58:00.000-05:00</published><updated>2008-11-10T13:25:49.914-05:00</updated><title type='text'>New SQL Skills I have learned from jobs - Part 3</title><content type='html'>This is a continuation of New SQL Skills I have learned from jobs - Part 1, Part 2&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;strong&gt;SQL Server 2008 Spatial Index&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;For the first time, native Spatial functions inside SQL Server (not 3rd party extensions) and it's a good start&lt;/li&gt;&lt;li&gt;Speed is quite fast with proper usage of Spatial Index (dividing earth into quadrants and quad-trees)&lt;/li&gt;&lt;li&gt;You can check for intersection, container and many other relationship between locations (either a Point, or a Polygon)&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;SQL Server 2008 Full-Text Search&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;An improved version of the Full-Text search engine since 2000, merged into the Database Engine (instead of separate process). New features include Stoplists and Word Breakers&lt;/li&gt;&lt;li&gt;Still one big black box that's hard to fully understand or customize for one's specific needs. Ability to custom-rank will be awesome if it exists. For now, it is just Google-alike text search, literally. If you want If X rank highest; If Y rank higher, etc... good luck!&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;SQL Server 2008 Integration Service&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I enjoyed the built-in Fuzzy Search and Fuzzy Grouping, makes finding duplicate data much easier (say looking&amp;nbsp;for duplicate address based on Street Name, City, State,&amp;nbsp;Zip, Phone #, etc...)&lt;/li&gt;&lt;li&gt;Powerful if run on a powerful machine&lt;/li&gt;&lt;li&gt;I am used to the Drag-and-Drop GUI interface for everything now - SSIS, Maintenance Plan, rarely would I need to&amp;nbsp;write custom code or T-SQL scripts to&amp;nbsp;extend the current&amp;nbsp;abilities&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-3583003569129081268?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/3583003569129081268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/11/new-sql-skills-i-have-learned-from-jobs_10.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/3583003569129081268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/3583003569129081268'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/11/new-sql-skills-i-have-learned-from-jobs_10.html' title='New SQL Skills I have learned from jobs - Part 3'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-6298943426498611010</id><published>2008-11-07T11:52:00.000-05:00</published><updated>2008-11-07T12:00:48.121-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xSQL'/><title type='text'>REVIEW: xSQL Profiler</title><content type='html'>I came across the xSQL software website and realized they have a few Free SQL Server products, so being the curious monkey I am, I downloaded them and installed. Here's my first usage of &lt;a href="http://www.xsqlsoftware.com/Product/xSQL_Profiler.aspx"&gt;xSQL Profiler&lt;/a&gt;&amp;nbsp;and a short review&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.xsqlsoftware.com/Images/Product/xSQLProfilerBig.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" rg="true" src="http://www.xsqlsoftware.com/Images/Product/xSQLProfilerBig.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;What I liked:&lt;/strong&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Easy to use and setup a quick trace&lt;/li&gt;&lt;li&gt;Filter (in both setting up or querying) and interfaces are better than SQL Profiler trace&lt;/li&gt;&lt;li&gt;Easy to define Category/Event Definition&lt;/li&gt;&lt;li&gt;Lets you pick a repository database&lt;/li&gt;&lt;li&gt;&lt;em&gt;Custom Query Template&lt;/em&gt; is useful to find Top N queries by CPU time/Duration/Execution etc...&lt;/li&gt;&lt;li&gt;Able to schedule the trace (one-time/daily/weekly/month)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;e.g. I can setup a Daily trace from 10am to 11am to get a snapshot of busy times&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;strong&gt;What could improve:&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Let me think on it... maybe more licenses for&amp;nbsp;the Free version (or for me?)&lt;/li&gt;&lt;li&gt;Uses up a lot of&amp;nbsp;memory when Viewing Trace Data (e.g. to view 81000 rows, my local SQL Server memory&amp;nbsp;incrased by ~200MB, and so&amp;nbsp;did the xSQL.Profiler.UI.exe and took about 2~3 minutes to&amp;nbsp;display&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;So far so good, it shall remain my first choice for Profiling for now, unless I am in Servers where it's not installed. Keep up the good work, xSQL! This is something Red Gate didn't have =P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-6298943426498611010?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/6298943426498611010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/11/review-xsql-profiler.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/6298943426498611010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/6298943426498611010'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/11/review-xsql-profiler.html' title='REVIEW: xSQL Profiler'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-1621429646571649495</id><published>2008-11-05T11:48:00.000-05:00</published><updated>2008-11-05T11:59:35.802-05:00</updated><title type='text'>New SQL Skills I have learned from jobs - Part 2</title><content type='html'>This is a continuation of &lt;a href="http://sqlservernewbie.blogspot.com/2008/10/new-sql-skills-i-have-learned-from-jobs.html"&gt;New SQL Skills I have learned from jobs - Part 1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="temp_br"&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="color: #38761d;"&gt;High Availability Features - Mirroring and Log Shipping&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mirroring is a easy-to-setup high availability feature, the SSMS GUI makes it easy to setup as well&lt;/li&gt;&lt;li&gt;The Restore and manual Failover is the difficult part, especially for the front end application&lt;/li&gt;&lt;li&gt;Log Shipping is even better than Database Mirroring as it provides means to have a warm standby SQL Server with couple clicks and a network share&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;&lt;span style="color: #38761d;"&gt;XML/XQuery&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I was right to fear the powerfulness of the XML language&lt;/li&gt;&lt;li&gt;In its defense, XML provides means to store free-form data inside the database (i.e. you can consider XML a database inside a database column)&lt;/li&gt;&lt;li&gt;However, performances greatly suffer compared to RDBMS structures and manipulation is not as straightforward (finding syntax alone was a challenge - .modify, .value, .query, .exist, .node etc...)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-1621429646571649495?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/1621429646571649495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/11/new-sql-skills-i-have-learned-from-jobs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/1621429646571649495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/1621429646571649495'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/11/new-sql-skills-i-have-learned-from-jobs.html' title='New SQL Skills I have learned from jobs - Part 2'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-1711974203324122101</id><published>2008-10-31T14:40:00.000-04:00</published><updated>2008-10-31T14:49:08.665-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EXECUTE AS'/><category scheme='http://www.blogger.com/atom/ns#' term='Trigger'/><category scheme='http://www.blogger.com/atom/ns#' term='REVERT'/><title type='text'>EXECUTE AS and REVERT</title><content type='html'>I learned a new thing today, switching between execution/user contexts using EXECUTE AS and REVERT.&lt;br /&gt;I have been lucky in that I have not encountered too many permission problems due to&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I am sysadmin &lt;/li&gt;&lt;li&gt;Most applications run under 'dbo' (probably bad practice)&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Books Online has the perfect examples on &lt;a href="http://msdn.microsoft.com/en-us/library/ms188354.aspx"&gt;EXECUTE AS&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/ms178632(SQL.90).aspx"&gt;REVERT&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This was my testing code, on testing a Database DDL Trigger&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color:black"&gt;&lt;br&gt;ENABLE &lt;/span&gt;&lt;span style="color:blue"&gt;TRIGGER &lt;/span&gt;&lt;span style="color:black"&gt;Create_SP_Trigger &lt;/span&gt;&lt;span style="color:blue"&gt;ON DATABASE&lt;br&gt;&lt;/span&gt;&lt;span style="color:green"&gt;--DISABLE TRIGGER Create_SP_Trigger ON DATABASE&lt;br&gt;&lt;/span&gt;&lt;span style="color:black"&gt;GO&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color:blue"&gt;CREATE PROCEDURE &lt;/span&gt;&lt;span style="color:black"&gt;Grant_Test_Proc&lt;br&gt;&lt;/span&gt;&lt;span style="color:blue"&gt;AS&lt;br&gt;PRINT &lt;/span&gt;&lt;span style="color:red"&gt;'should have triggered the trigger to auto-grant execute permission to user'&lt;br&gt;&lt;/span&gt;&lt;span style="color:black"&gt;GO&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color:green"&gt;--SELECT SUSER_NAME(), USER_NAME();&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color:blue"&gt;EXECUTE AS &lt;/span&gt;&lt;span style="color:magenta"&gt;USER &lt;/span&gt;&lt;span style="color:blue"&gt;= &lt;/span&gt;&lt;span style="color:red"&gt;'testuser'&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green"&gt;-- switches to a limited permission login&lt;br&gt;&lt;/span&gt;&lt;span style="color:blue"&gt;EXEC &lt;/span&gt;&lt;span style="color:black"&gt;Grant_Test_Proc&lt;br&gt;GO&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color:green"&gt;--SELECT SUSER_NAME(), USER_NAME();&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color:black"&gt;REVERT&lt;/span&gt;&lt;span style="color:gray"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:green"&gt;-- switches to DBO and full permissions&lt;br&gt;--SELECT SUSER_NAME(), USER_NAME();&lt;br&gt;&lt;/span&gt;&lt;span style="color:blue"&gt;DROP PROCEDURE &lt;/span&gt;&lt;span style="color:black"&gt;Grant_Test_Proc&lt;br&gt;GO&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-1711974203324122101?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/1711974203324122101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/10/execute-as-and-revert.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/1711974203324122101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/1711974203324122101'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/10/execute-as-and-revert.html' title='EXECUTE AS and REVERT'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-5692020113487663655</id><published>2008-10-30T14:25:00.000-04:00</published><updated>2008-10-30T14:38:32.123-04:00</updated><title type='text'>HOW TO: Import/Export SQL Server Maintenance Plan</title><content type='html'>As &lt;a href="http://msdn.microsoft.com/en-us/library/ms162827(SQL.90).aspx"&gt;sqlmaint Utility&lt;/a&gt;&amp;nbsp;will be phased out in future versions of SQL Server, &lt;a href="http://msdn.microsoft.com/en-us/library/ms187658(SQL.90).aspx"&gt;Maintenance Plan&lt;/a&gt; is&amp;nbsp;Microsoft's recommended approach for Database Maintenance tasks by the DBA&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Check Database Integrity&lt;/li&gt;&lt;li&gt;Shrink Database&lt;/li&gt;&lt;li&gt;Reorganize Index&lt;/li&gt;&lt;li&gt;Rebuild Index&lt;/li&gt;&lt;li&gt;Update Statistics&lt;/li&gt;&lt;li&gt;Clean Up History&lt;/li&gt;&lt;li&gt;Execute SQL Server Agent Job&lt;/li&gt;&lt;li&gt;Backup Database (Full, Differential, Transaction Log)&lt;/li&gt;&lt;li&gt;Maintenance Cleanup Task&lt;/li&gt;&lt;/ul&gt;Naturally, after spending the time and efforts to setup proper Maintenance Plans, you should save it and re-use elsewhere anytime you can. And here are 2 ways to export the Maintenance Plan in SQL Server 2005 and 2008&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #38761d;"&gt;&lt;strong&gt;The easier GUI way&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;1. Open SQL Server Management Studio&lt;br /&gt;&lt;br /&gt;2. In&amp;nbsp;Object Explorer (left pane), click "Connect", choose "Integration Services..."&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;3. Login into the SQL Server with credentials&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;4. Expand SERVERNAME (Integration Services), and you'll see the below structure&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Running Packages&lt;/li&gt;&lt;li&gt;Stored Packages&lt;/li&gt;&lt;ul&gt;&lt;li&gt;File Systems&lt;/li&gt;&lt;li&gt;MSDB&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Maintenance Plans &amp;lt;- this is what you want&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;5. Right Click on the Maintenance Plan you want to export, and select Export &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;strong&gt;&lt;span style="color: #38761d;"&gt;The harder script way&lt;/span&gt;&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color:black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color:blue"&gt;USE &lt;/span&gt;&lt;span style="color:black"&gt;MSDB&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color:blue"&gt;SELECT &lt;/span&gt;&lt;span style="color:black"&gt;name&lt;br&gt;&lt;/span&gt;&lt;span style="color:gray"&gt;,&lt;/span&gt;&lt;span style="color:black"&gt;PlanXML&lt;/span&gt;&lt;span style="color:blue"&gt;=&lt;/span&gt;&lt;span style="color:magenta"&gt;CAST&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;&lt;span style="color:magenta"&gt;CAST&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;&lt;span style="color:black"&gt;packagedata &lt;/span&gt;&lt;span style="color:blue"&gt;AS VARBINARY&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;&lt;span style="color:magenta"&gt;MAX&lt;/span&gt;&lt;span style="color:gray"&gt;)) &lt;/span&gt;&lt;span style="color:blue"&gt;AS XML&lt;/span&gt;&lt;span style="color:gray"&gt;) &lt;br&gt;&lt;/span&gt;&lt;span style="color:blue"&gt;FROM &lt;/span&gt;&lt;span style="color:black"&gt;sysdtspackages90&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-5692020113487663655?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/5692020113487663655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/10/how-to-importexport-sql-server.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5692020113487663655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5692020113487663655'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/10/how-to-importexport-sql-server.html' title='HOW TO: Import/Export SQL Server Maintenance Plan'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-8821969251132525130</id><published>2008-10-30T10:00:00.000-04:00</published><updated>2008-11-05T11:49:01.793-05:00</updated><title type='text'>New SQL Skills I have learned from jobs - Part 1</title><content type='html'>I initlaly thought SQL Server was all about Transact SQL (T-SQL) programming and development, as that was how I started working with SQL Server 2000, extensively.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Then, last couple years I have came across opportunities at work to expand my knowledge of SQL Server to just about everything (shows you how little I knew)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Let's take a walk down memory lane by &lt;em&gt;&lt;span style="font-size: x-small;"&gt;SELECT Name, Skills FROM Memory (NOLOCK) ORDER BY [Date] DESC&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style="color: #38761d;"&gt;SQL Server Reporting Service (SSRS)&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Developed over 100 SSRS 2005 reports from scratch&lt;/li&gt;&lt;li&gt;Learned by reading the books (very helpful) and reading online contents&lt;/li&gt;&lt;li&gt;Deployed and integrated with SharePoint intranet&lt;/li&gt;&lt;li&gt;Email subscriptions to management&lt;/li&gt;&lt;li&gt;SSRS was quite powerful for a free product, almost can replace Crystal Reports easily&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;strong&gt;&lt;span style="color: #38761d;"&gt;SQL Service Analysis Service (SSAS)&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Followed the book and built a demo Datawarehouse with Cubes and Dimensions, Slice &amp;amp; Dice!&lt;/li&gt;&lt;li&gt;Connected SSRS report to report off the Cube and Dashboard/KPI&lt;/li&gt;&lt;li&gt;Unfortunately didn't have the opportunity to fully try the Analysis models or Decision Trees to "predict future" from the history. That would've been very cool and helpful for business sales&lt;/li&gt;&lt;/ul&gt;&amp;nbsp; &lt;br /&gt;&lt;strong&gt;More to comment later:&lt;/strong&gt; &lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;High Availability Features - Mirroring and Log Shipping&lt;/li&gt;&lt;li&gt;XML/XQuery&lt;/li&gt;&lt;li&gt;SQL Server 2008 Spatial Index&lt;/li&gt;&lt;li&gt;SQL Server 2008 Full-Text Search&lt;/li&gt;&lt;li&gt;SQL Server Integration Service&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-8821969251132525130?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/8821969251132525130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/10/new-sql-skills-i-have-learned-from-jobs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/8821969251132525130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/8821969251132525130'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/10/new-sql-skills-i-have-learned-from-jobs.html' title='New SQL Skills I have learned from jobs - Part 1'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-670979298055425258</id><published>2008-10-28T14:30:00.000-04:00</published><updated>2008-10-28T15:17:15.744-04:00</updated><title type='text'>HOW TO: Convert datetime stored in seconds to readable format</title><content type='html'>I needed to convert datetime stored in seconds to valid readable datetime, and came across this &lt;a href="http://mysql.databases.aspfaq.com/how-do-i-convert-a-sql-server-datetime-value-to-a-unix-timestamp.html"&gt;article&lt;/a&gt;&lt;br /&gt;Apparently Unix timestamp range only from 1970 Jan 1 to 2038-01-19 at 3:14:08 AM, good to know&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;br /&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;scheduled_start_date&lt;/span&gt;, &lt;span style="color: black;"&gt;scheduled_end_date&lt;br /&gt;&lt;/span&gt;,&lt;span style="color: black;"&gt;StartDate &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: magenta;"&gt;DATEADD&lt;/span&gt;(&lt;span style="color: black;"&gt;s&lt;/span&gt;, &lt;span style="color: black;"&gt;scheduled_start_date&lt;/span&gt;, &lt;span style="color: red;"&gt;'19700101'&lt;/span&gt;)&lt;br /&gt;,&lt;span style="color: black;"&gt;EndDate &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: magenta;"&gt;DATEADD&lt;/span&gt;(&lt;span style="color: black;"&gt;s&lt;/span&gt;, &lt;span style="color: black;"&gt;scheduled_end_date&lt;/span&gt;, &lt;span style="color: red;"&gt;'19700101'&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: blue;"&gt;FROM TABLE &lt;/span&gt;(&lt;span style="color: black;"&gt;nolock&lt;/span&gt;)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: black;"&gt;scheduled_start_date&amp;nbsp;&amp;nbsp; scheduled_end_date&amp;nbsp;&amp;nbsp;StartDate&amp;nbsp;&amp;nbsp; EndDate&lt;br /&gt;1219939200 1219942800&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;08&lt;/span&gt;-&lt;span style="color: black;"&gt;28 16&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;08&lt;/span&gt;-&lt;span style="color: black;"&gt;28 17&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&lt;br /&gt;1220108400 1220133600&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;08&lt;/span&gt;-&lt;span style="color: black;"&gt;30 15&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;08&lt;/span&gt;-&lt;span style="color: black;"&gt;30 22&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&lt;br /&gt;1221163200 1221163380&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;09&lt;/span&gt;-&lt;span style="color: black;"&gt;11 20&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;09&lt;/span&gt;-&lt;span style="color: black;"&gt;11 20&lt;/span&gt;:&lt;span style="color: black;"&gt;03&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&lt;br /&gt;1221768000 1221786000&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;09&lt;/span&gt;-&lt;span style="color: black;"&gt;18 20&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;09&lt;/span&gt;-&lt;span style="color: black;"&gt;19 01&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&lt;br /&gt;1221768000 1221786000&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;09&lt;/span&gt;-&lt;span style="color: black;"&gt;18 20&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;09&lt;/span&gt;-&lt;span style="color: black;"&gt;19 01&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&lt;br /&gt;1223413200 1223416800&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;10&lt;/span&gt;-&lt;span style="color: black;"&gt;07 21&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;10&lt;/span&gt;-&lt;span style="color: black;"&gt;07 22&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&lt;br /&gt;1225213200 1225215000&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;10&lt;/span&gt;-&lt;span style="color: black;"&gt;28 17&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;10&lt;/span&gt;-&lt;span style="color: black;"&gt;28 17&lt;/span&gt;:&lt;span style="color: black;"&gt;30&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&lt;br /&gt;1225206000 1225209600&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;10&lt;/span&gt;-&lt;span style="color: black;"&gt;28 15&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;10&lt;/span&gt;-&lt;span style="color: black;"&gt;28 16&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&lt;br /&gt;1225204200 1225206000&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;10&lt;/span&gt;-&lt;span style="color: black;"&gt;28 14&lt;/span&gt;:&lt;span style="color: black;"&gt;30&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;10&lt;/span&gt;-&lt;span style="color: black;"&gt;28 15&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&lt;br /&gt;1225377000 1225378800&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;10&lt;/span&gt;-&lt;span style="color: black;"&gt;30 14&lt;/span&gt;:&lt;span style="color: black;"&gt;30&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;10&lt;/span&gt;-&lt;span style="color: black;"&gt;30 15&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&lt;br /&gt;1225215000 1225216800&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;10&lt;/span&gt;-&lt;span style="color: black;"&gt;28 17&lt;/span&gt;:&lt;span style="color: black;"&gt;30&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;10&lt;/span&gt;-&lt;span style="color: black;"&gt;28 18&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&lt;br /&gt;1225627200 1225628100&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;11&lt;/span&gt;-&lt;span style="color: black;"&gt;02 12&lt;/span&gt;:&lt;span style="color: black;"&gt;00&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&amp;nbsp;&amp;nbsp;2008&lt;/span&gt;-&lt;span style="color: black;"&gt;11&lt;/span&gt;-&lt;span style="color: black;"&gt;02 12&lt;/span&gt;:&lt;span style="color: black;"&gt;15&lt;/span&gt;:&lt;span style="color: black;"&gt;00.000&lt;/span&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-670979298055425258?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/670979298055425258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/10/how-to-convert-date-from-seconds-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/670979298055425258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/670979298055425258'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/10/how-to-convert-date-from-seconds-to.html' title='HOW TO: Convert datetime stored in seconds to readable format'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-9099581187820029655</id><published>2008-10-24T15:34:00.000-04:00</published><updated>2008-10-27T14:20:41.273-04:00</updated><title type='text'>How to Ask The Right Questions the Right Way</title><content type='html'>As I started participating more and more in SQL Forums, it becomes clear that there are some small steps that could make everyone's task easier to help out.&lt;br /&gt;&lt;br /&gt;This is a good article to start - &lt;a href="http://www.sqlservercentral.com/articles/Best+Practices/61537/"&gt;Forum Etiquette: How to post data/code on a forum to get the best help&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Personally these are my steps&lt;br /&gt;&lt;br /&gt;1. &lt;b&gt;Always try to include the SAMPLE data or tables&lt;/b&gt; (in SQL code, not just copy-and-paste data) unless it's syntax or concept question,&lt;br /&gt;We DBAs are just like Web Designers, we like to work with what we can see&lt;br /&gt;&lt;br /&gt;2. &lt;b&gt;Beautify the SQL code&lt;/b&gt;, before any posting&lt;br /&gt;Either using 3rd party tools such as Red Gate SQL Prompt/Refactor, or use the online &lt;a href="http://extras.sqlservercentral.com/prettifier/prettifier.aspx"&gt;The Simple-Talk Code Prettifier for SQL Server, Python, VB and C#&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. &lt;b&gt;Always state what versions of software being used&lt;/b&gt;&lt;br /&gt;For example, T-SQL changed drastically from 2000 to 2005 to 2008, one code may not work in every version&lt;br /&gt;&lt;br /&gt;4. &lt;b&gt;Willing to learn and try it out by actually doing it&lt;/b&gt;, and not hoping someone will take your code, and give you back a working code so that your problem is resolved by someone else.&lt;br /&gt;Specifically, try to &lt;b&gt;UNDERSTAND &lt;/b&gt;the actual solution and not just copy-and-paste. It hurts me to see users not trying to fix a clear syntax error when a clear error message presented; instead, they come back and say &lt;i&gt;"it doesn't work"&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I must say, the tasks of facing a challenge, conquer it and help someone out is very satisfying.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;"A problem well stated is a problem half solved." -- Charles F. Kettering&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-9099581187820029655?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/9099581187820029655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/10/how-to-ask-right-questions-right-way.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/9099581187820029655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/9099581187820029655'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/10/how-to-ask-right-questions-right-way.html' title='How to Ask The Right Questions the Right Way'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-3963074051505337632</id><published>2008-10-24T10:32:00.000-04:00</published><updated>2008-10-24T10:36:02.994-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSMS'/><title type='text'>SSMS Tools Pack (for SQL Management Studio 2005/2008)</title><content type='html'>I want to share a tool (FREE) that I have used extensively to help in where SSMS lack in features (such as Generate Insert Statements, run Custom Scripts, etc...) - &lt;a href="http://www.ssmstoolspack.com"&gt;SSMS Tools Pack&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The author released the SQL 2008 version just recently, and it has worked beautifully just like the 2005 version.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;The SSMS Tools Pack does NOT work for SSMS 2005 versions before SP2 anymore.&lt;br /&gt;---------------------------------------------------------------&lt;br /&gt;SSMS Tools PACK is an Add-In (Add-On) for Microsoft SQL Server Management Studio and Microsoft SQL Server Management Studio Express.&lt;br /&gt;&lt;br /&gt;It contains a few upgrades to the IDE that I thought were missing from the Management Studio:&lt;br /&gt;&lt;br /&gt;Query Execution History (Soft Source Control) and Current Window History.&lt;br /&gt;&lt;br /&gt;Search Database Data.&lt;br /&gt;&lt;br /&gt;Uppercase/Lowercase keywords.&lt;br /&gt;&lt;br /&gt;Run one script on multiple databases.&lt;br /&gt;&lt;br /&gt;Copy execution plan bitmaps to clipboard.&lt;br /&gt;&lt;br /&gt;Search Results in Grid Mode and Execution Plans.&lt;br /&gt;&lt;br /&gt;Generate Insert statements for a single table, the whole database or current resultsets in grids.&lt;br /&gt;&lt;br /&gt;Text document Regions and Debug sections.&lt;br /&gt;&lt;br /&gt;Running custom scripts from Object explorer's Context menu.&lt;br /&gt;&lt;br /&gt;CRUD (Create, Read, Update, Delete) stored procedure generation.&lt;br /&gt;&lt;br /&gt;New query template.&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-3963074051505337632?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/3963074051505337632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/10/ssms-tools-pack-for-sql-management.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/3963074051505337632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/3963074051505337632'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/10/ssms-tools-pack-for-sql-management.html' title='SSMS Tools Pack (for SQL Management Studio 2005/2008)'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-8092725493427101250</id><published>2008-10-02T10:44:00.000-04:00</published><updated>2008-10-02T10:47:21.850-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Books Online'/><title type='text'>SQL Server 2008 Books Online (August 2008) Released</title><content type='html'>&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=765433f7-0983-4d7a-b628-0a98145bcb97&amp;DisplayLang=en"&gt;Download Microsoft SQL Server 2008 Books Online (August 2008)&lt;/a&gt;&lt;br /&gt;The file is 141MB (SQLServer2008_BOL_August2008_ENU.msi)&lt;br /&gt;&lt;br /&gt;I still prefers GOOGLE to find syntax help or the &lt;a href="http://msdn.microsoft.com/en-us/library/ms130214.aspx"&gt;Books Online&lt;/a&gt; ONLINE at Microsoft ;-p&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-8092725493427101250?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/8092725493427101250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/10/sql-server-2008-books-online-august.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/8092725493427101250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/8092725493427101250'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/10/sql-server-2008-books-online-august.html' title='SQL Server 2008 Books Online (August 2008) Released'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-5572660038500309806</id><published>2008-09-30T10:20:00.000-04:00</published><updated>2008-09-30T10:32:03.736-04:00</updated><title type='text'>Red Gate SQL Compare</title><content type='html'>&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;a href="http://www.red-gate.com/images/boxshots/large/sqlcompare.gif" imageanchor="1" style="clear: right; cssfloat: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" dd="true" src="http://www.red-gate.com/images/boxshots/large/sqlcompare.gif" /&gt;&lt;/a&gt;&lt;a href="http://www.red-gate.com/products/SQL_Compare/index.htm"&gt;http://www.red-gate.com/products/SQL_Compare/index.htm&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Automate database comparisons (we don't use command mode)&lt;/li&gt;&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Synchronize your databases (we use it extensively)&lt;/li&gt;&lt;li&gt;Work with SQL scripts, snapshots, backups or live databases &lt;/li&gt;&lt;li&gt;Save hours of tedious work and eliminate manual scripting errors &lt;/li&gt;&lt;li&gt;Full support for SQL Server 2008 (yeah)&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.red-gate.com/products/SQL_Compare/images/walkthrough1/wt1slide4.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" dd="true" height="287" src="http://www.red-gate.com/products/SQL_Compare/images/walkthrough1/wt1slide4.gif" width="420" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;hr&gt;&lt;/div&gt;&lt;br /&gt;Let's start as I promised, and with the most important Red Gate product we use (and did a case study for, see text below for excerpts)&lt;br /&gt;&lt;br /&gt;My job is to monitor SQL Servers and maintain backup/restore, configuration and security. I also try to tune and optimize our code base for performance, and work with developers on stored procedures and database design.&lt;br /&gt;&lt;br /&gt;As our software changed and solidified, the need to generate a diff/synch script became apparent. Every time we release new front-end code, a DB sync script needs to go with it if there are any changes. This means with each release, I compare the development database with production backup, check the sync script into TFS, and generate a build (application plus DB script).&lt;br /&gt;&lt;br /&gt;[Company]&amp;nbsp;has a license for Red Gate’s SQL Toolbelt, so I’ve used SQL Compare V7 for database migration. SQL Compare V7 is easy to use, and its support of SQL Server 2008 was crucial as we updated our platforms.&lt;br /&gt;Recently, I’ve found that I can use the compare-to-backup feature in SQL Compare V7 to achieve additional benefits, including:&lt;br /&gt;&lt;br /&gt;• Greater accuracy – comparing the development database with the verified and only copy of production backup ensures that you get only the expected changes, not unwanted or unexpected ones.&lt;br /&gt;&lt;br /&gt;• Time savings– saves you from restoring to both SQL Server and SQL Compare.&lt;br /&gt;&lt;br /&gt;• Ease of mind – No need to worry about finding a server to restore – you just need to know the location of the backup.&lt;br /&gt;&lt;br /&gt;SQL Compare does what it does very well, and the team behind it at Red Gate are friendly and very helpful. That’s why we use SQL Compare and love it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-5572660038500309806?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/5572660038500309806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/09/red-gate-sql-compare.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5572660038500309806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5572660038500309806'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/09/red-gate-sql-compare.html' title='Red Gate SQL Compare'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-5179027144194093110</id><published>2008-09-26T10:03:00.000-04:00</published><updated>2008-10-18T12:15:17.901-04:00</updated><title type='text'>Red Gate Tools</title><content type='html'>&lt;div&gt;Before this year, I have only heard of RedGate but never used it.&lt;/div&gt;&lt;div&gt;Now I have, as a SQL Server DBA, they have one of the best tools available for SQL Server. &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.red-gate.com/images/logo_v4.1.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" dd="true" height="81" src="http://www.red-gate.com/images/logo_v4.1.gif" width="420" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;I made this comment only after I have played with TOAD, Idera tools, Quest LiteSpeed, a few other tools, and even Microsoft's own IntelliSense. And of course, having done a few usability sessions and surveys with Red Gate, they have one of the best people to work with as well. &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;em&gt;You gotta love the British people, coffee or tea? ;-)&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the next few days I will write up on my experiences of the few products I use&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;SQL Compare&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;SQL Backup Pro&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;SQL Prompt&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;SQL Refactor&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;SQL Response&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;Not so often used, but included in Toolbelt anyway&lt;br /&gt;&lt;ul&gt;&lt;li&gt;SQL Data Compare&lt;/li&gt;&lt;li&gt;SQL Data Generator&lt;/li&gt;&lt;li&gt;SQL Refactor&lt;/li&gt;&lt;li&gt;SQL Dependency Tracker &lt;/li&gt;&lt;li&gt;SQL Docs&lt;/li&gt;&lt;li&gt;SQL Multiscript&lt;/li&gt;&lt;li&gt;SQL Packager &lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.red-gate.com/images/banners/USD_Toolbelt2008Banner_large.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" dd="true" height="73" src="http://www.red-gate.com/images/banners/USD_Toolbelt2008Banner_large.gif" width="420" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-5179027144194093110?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/5179027144194093110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/09/redgate-tools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5179027144194093110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5179027144194093110'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/09/redgate-tools.html' title='Red Gate Tools'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-7867987404660193057</id><published>2008-09-25T11:22:00.000-04:00</published><updated>2008-09-25T11:26:27.429-04:00</updated><title type='text'>Smooth move from SQL Server 2008 RC0 to RTM</title><content type='html'>Recently we performed a Backup-and-Restore from SQL Server 2008 Standard RC0 to another server installed with SQL Server 2008 Standard RTM. &lt;br /&gt;Overall it only took 30~60 minutes for the entire process, and I am glad for Red Gate's SQL Backup (for compression)&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Backup &amp;amp; Compress databases on RC0&lt;/li&gt;&lt;li&gt;Copy over network for shorter time&lt;/li&gt;&lt;li&gt;Uncompress (using &lt;a href="http://labs.red-gate.com/index.php/SQL_Backup_to_MTF_Converter"&gt;SQL Backup to MTF Converter&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Restore on RTM&lt;/li&gt;&lt;li&gt;Cleanup (update stats, index reorganize, associate logins, SQL jobs, etc...)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-7867987404660193057?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/7867987404660193057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/09/smooth-move-from-sql-server-2008-rc0-to.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/7867987404660193057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/7867987404660193057'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/09/smooth-move-from-sql-server-2008-rc0-to.html' title='Smooth move from SQL Server 2008 RC0 to RTM'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-1155835040946329466</id><published>2008-09-21T22:41:00.000-04:00</published><updated>2009-04-01T12:27:28.077-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ebook'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtualization'/><title type='text'>Free eBook - Virtualization for Dummies</title><content type='html'>Virtualization seems to be the trend for everything now. We utilize VMWare at work, and I have worked with Microsoft Virtual Server 2005 as well.&lt;br /&gt;&lt;br /&gt;Gladly I didn't invest in VMWare who was all the hype before it fell ;-)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sun.com/images/l0/l0v3_virtualization-for-dummies.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" src="http://www.sun.com/images/l0/l0v3_virtualization-for-dummies.jpg" style="margin: 0pt 0pt 10px 10px; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sun.com/systems/solutions/virtualizationfordummies/index.jsp"&gt;http://www.sun.com/systems/solutions/virtualizationfordummies/index.jsp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Virtualization for Dummies – Sun and AMD Special Edition is now available! Published by the same folks who create all the "Dummies" books – this special edition version showcases Sun and AMD virtualization offerings, how they work together, and how they can benefit businesses. Learn about the latest virtualization technologies with this brief and easy-to-read booklet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-1155835040946329466?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/1155835040946329466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/09/free-ebook-virtualization-for-dummies.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/1155835040946329466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/1155835040946329466'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/09/free-ebook-virtualization-for-dummies.html' title='Free eBook - Virtualization for Dummies'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-5452090539286337756</id><published>2008-09-21T12:43:00.000-04:00</published><updated>2009-04-01T12:27:40.909-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Ebook'/><title type='text'>Free eBook - Introducing Microsoft SQL Server 2008</title><content type='html'>I found it via SQLBlog.com, downloaded it and&amp;nbsp;finished reading it.&lt;br /&gt;To me (from the SQL Server 2005 DBA viewpoint), it was a well written overview of the SQL Server 2008 new features (and new features only). Because of our usage of SQL 2008 at work, I have greater appreciation and understanding of the new features as well.&lt;br /&gt;&lt;br /&gt;Tips to download the PDF:&lt;br /&gt;&lt;br /&gt;You can press F8 to display the toolbar, and "Save As"&lt;br /&gt;or press Ctrl-Shift-S to save the PDF locally&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;&lt;strong&gt;Introducing Microsoft SQL Server 2008&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;by Peter DeBetta, Greg Low, and Mark Whitehorn&lt;br /&gt;ISBN: 9780735625587 &lt;br /&gt;&lt;a href="http://csna01.libredigital.com/?urss1q2we6"&gt;&lt;img src="http://csna01.libredigital.com/images/ms_sql_srv_cvr.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Learn about major new features in SQL Server 2008 including security, administration, and performance.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Introducing Microsoft SQL Server 2008:&lt;br /&gt;&lt;br /&gt;Chapter 1: Security and Administration&lt;br /&gt;&lt;br /&gt;Chapter 2: Performance&lt;br /&gt;&lt;br /&gt;Chapter 3: Type System&lt;br /&gt;&lt;br /&gt;Chapter 4: Programmability&lt;br /&gt;&lt;br /&gt;Chapter 5: Storage&lt;br /&gt;&lt;br /&gt;Chapter 6: Enhancements for High Availability&lt;br /&gt;&lt;br /&gt;Chapter 7: Business Intelligence Enhancements&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-5452090539286337756?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/5452090539286337756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/09/free-ebook-introducing-microsoft-sql.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5452090539286337756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/5452090539286337756'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/09/free-ebook-introducing-microsoft-sql.html' title='Free eBook - Introducing Microsoft SQL Server 2008'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6806992453823338600.post-4984450012464117280</id><published>2008-09-21T12:40:00.001-04:00</published><updated>2008-09-21T12:41:15.344-04:00</updated><title type='text'>Love for SQL Server</title><content type='html'>Since I work with Microsoft SQL Server(s) daily, hourly, and yearly, I figure it may be time to start writing about them (SQL Server 2005/2008) and maybe educate myself in the writing and learning. &lt;br /&gt;&lt;br /&gt;&lt;img src="http://i.microsoft.com/global/sqlserver/2008/en/us/PublishingImages/sql2008_topbanner.jpg" /&gt;&lt;br /&gt;The recent buzz among SQL Server world was clearly the release of Microsoft SQL Server 2008 in August (RTM version, after a stable RC0 release)&lt;br /&gt;&lt;br /&gt;Fortunately I have had chances to work with SQL Server 2008 extensively, and therefore will start to share some of my bright moments, or dark hours of the lovely SQL Server experience&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6806992453823338600-4984450012464117280?l=sqlservernewbie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlservernewbie.blogspot.com/feeds/4984450012464117280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/09/love-for-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/4984450012464117280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6806992453823338600/posts/default/4984450012464117280'/><link rel='alternate' type='text/html' href='http://sqlservernewbie.blogspot.com/2008/09/love-for-sql-server.html' title='Love for SQL Server'/><author><name>Jerry Hung</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-TO5rXoGwOpQ/AAAAAAAAAAI/AAAAAAAAfHI/JUoY2JsV9nE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
