<?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'><id>tag:blogger.com,1999:blog-160707082233884630</id><updated>2010-03-09T12:32:46.661-05:00</updated><title type='text'>ApexSQL Knowledgebase</title><subtitle type='html'>Tips, reviews, videos, and articles on how to get the most out of ApexSQL Tools and Microsoft SQL Server</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default?start-index=26&amp;max-results=25'/><author><name>Brian Lockwood</name><uri>http://www.blogger.com/profile/12031458710231708487</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>111</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-1275889317854770054</id><published>2010-03-09T03:33:00.005-05:00</published><updated>2010-03-09T03:55:25.125-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apex SQL Edit'/><title type='text'>How to change default application when more than one application instance is installed.</title><content type='html'>&lt;span class="fullpost"&gt;&lt;strong&gt;SUMMARY&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;This article is showing how to set default application when more than one instance of same application is installed.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;strong&gt;SYMPTOMS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Although file association for .sql files is set to newly installed ApexSQL Edit, double click opens file in older version.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;CAUSE&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Windows file association is pointing to the wrong instance of application.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;RESOLUTION&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;To change this association to newly installed application, you should change one registry key.&lt;br /&gt;Start registry editor by typing 'regedit' without quotes into the Run dialog.&lt;br /&gt;Find folder HKEY_CLASSES_ROOT\Applications\ApexSQLEdit.exe\shell\open\command and change path in Default key to match your newly installed application.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SEE ALSO&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=http://knowledgebase.apexsql.com/2009/07/how-to-associate-sql-files-with-apexsql.htm&gt;How to associate .SQL files with ApexSQL Edit?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;9 March 2010&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-1275889317854770054?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/1275889317854770054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=1275889317854770054&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/1275889317854770054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/1275889317854770054'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2010/03/how-to-change-default-application-when.html' title='How to change default application when more than one application instance is installed.'/><author><name>Milic Vuletic</name><uri>http://www.blogger.com/profile/02510236168090097384</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18190792360591249563'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-1992460946251367207</id><published>2010-02-08T12:32:00.006-05:00</published><updated>2010-02-08T16:16:11.474-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apex SQL Audit'/><title type='text'>How to send email alerts when a change is made to a database record</title><content type='html'>&lt;span class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article discusses how to customize the ApexSQL Audit architecture so that email alerts are sent out when changes are made to a database record.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;These instructions make use of Database Mail and can only be used if you're using MS SQL Server 2005 or MS SQL Server 2008.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1) &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/ms175951(SQL.90).aspx"&gt;Configure Database Mail&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;2) Download ApexSQL2049_Mail.audx &lt;a href="http://www.apexsql.com/support/audit_hotfix/ApexSQL2049_Mail.zip"&gt;here&lt;/a&gt;. This architecture is specifically customized to allow for the sending of email alerts when a change occurs. Save this file in ApexSQL Audit's application folder. For example, C:\Program Files\ApexSQL\ApexSQLAudit2008.&lt;br /&gt;&lt;br /&gt;3) Start ApexSQL Audit and connect to the database you want to audit.&lt;br /&gt;&lt;br /&gt;4) Click File | Select Audit Architecture and select ApexSQL2049_Mail.audx.&lt;br /&gt;&lt;br /&gt;5) Click File | Template Editor to modify the template.&lt;br /&gt;&lt;br /&gt;4) Next, find and modify the following lines of code. Base the values you set here on how you set up your Database Mail.&lt;br /&gt;&lt;br /&gt; 'Customize values below&lt;br /&gt; Mail_Profile = "John"&lt;br /&gt; Mail_Recipients = "John@mymail.com"&lt;br /&gt; Mail_Body = "Please verify database change."&lt;br /&gt; Mail_Subject = "Unauthorized Database Change"&lt;br /&gt;&lt;br /&gt;5) Click Run | Process and save the architecture file.&lt;br /&gt;&lt;br /&gt;6) Close the Template Editor.&lt;br /&gt;&lt;br /&gt;7) Create your triggers. If you have triggers set up already, they would have to be recreated if you want them to use the new architecture template. &lt;br /&gt;&lt;br /&gt;What happens next? Triggers created using this template, when fired, will not only store audit data but will also send email alerts indicating that a change has been made.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Written by:&lt;/strong&gt;&lt;br /&gt;Janice Lee&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Last Modified Date:&lt;/strong&gt;&lt;br /&gt;2 Feb 2010&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-1992460946251367207?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/1992460946251367207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=1992460946251367207&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/1992460946251367207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/1992460946251367207'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2010/02/how-to-send-email-alerts-when-change-is.htm' title='How to send email alerts when a change is made to a database record'/><author><name>Janice Lee</name><uri>http://www.blogger.com/profile/07336545127156403186</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02343779196295030908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-6137083978044375019</id><published>2010-01-19T14:56:00.000-05:00</published><updated>2010-01-19T14:57:44.739-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ApexSQL Diff'/><title type='text'>Object-level differences in ApexSQL Diff CLI</title><content type='html'>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sometimes it is helpful to see objects differences while comparing data sources in CLI mode of ApexSQL Diff application. This feature is available in ApexSQL Diff&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;b&gt;Comparison summary.&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;ApexSQL Diff now shows comparison results in CLI in text mode.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;b&gt;Object level differences.&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.apexsql.com/poweruser/uploaded_images/comparison_summary-716268.gif"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Object level differences information is displayed in form of table with three columns “&lt;b&gt;Name&lt;/b&gt;”, “&lt;b&gt;Owner&lt;/b&gt;” and “&lt;b&gt;Result&lt;/b&gt;” for each compared object. These tables are grouped by object type that are compared the way objects are grouped in ApexSQL Diff GUI.&lt;br /&gt;&lt;br /&gt;Result column can have one of the following values:&lt;br /&gt;&lt;br /&gt;1) &lt;b&gt;==&lt;/b&gt; - if compared objects are equal;&lt;br /&gt;&lt;br /&gt;2) &lt;b&gt;&lt;&gt;&lt;/b&gt; - if compared objects differs;&lt;br /&gt;&lt;br /&gt;3) &lt;b&gt;&gt;&gt;&lt;/b&gt; - if object exists only in source data source and does not exist in target data source;&lt;br /&gt;&lt;br /&gt;4) &lt;b&gt;&lt;&lt;&lt;/b&gt; - if object exists only in target data source and does not exist in source data source;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In case if database objects have different owners and mapped, both owners will be displayed in result objects table.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.apexsql.com/poweruser/uploaded_images/comparison_summary_owners-790830.gif"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In this case tables “&lt;b&gt;AWBuildVersion&lt;/b&gt;” and “&lt;b&gt;ErrorLog&lt;/b&gt;” has “&lt;b&gt;Person&lt;/b&gt;” owner in source data source and “&lt;b&gt;dbo&lt;/b&gt;” owner in target data source.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;b&gt;Script-level differences.&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.apexsql.com/poweruser/uploaded_images/comparison_details-763672.gif"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For each compared object, ApexSQL Diff displays its script. If objects are different, it also shows exact differences on script level (the way similar to ApexSQL Diff GUI).&lt;br /&gt;&lt;br /&gt;First two symbols of each line of the script have one of the following values:&lt;br /&gt;&lt;br /&gt;1) &lt;b&gt;==&lt;/b&gt; - if lines are equal in source and target scripts;&lt;br /&gt;&lt;br /&gt;2) &lt;b&gt;&gt;&gt;&lt;/b&gt; -displays line from source script (in case lines if source and target scripts are different);&lt;br /&gt;&lt;br /&gt;3) &lt;b&gt;&lt;&lt;&lt;/b&gt; - displayed line from target script (in case lines if source and target scripts are different);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For example, &lt;b&gt;String&lt;/b&gt; data type is displayed like:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.apexsql.com/poweruser/uploaded_images/comparison_details_differen-751754.gif"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;From this screen you can see that &lt;b&gt;String&lt;/b&gt; data type differ in second line of script. &lt;br /&gt;&lt;br /&gt;Source script contains &lt;font color="blue"&gt;FROM [varchar](150)&lt;/font&gt; line&lt;br /&gt;&lt;br /&gt;Target script contains &lt;font color="blue"&gt;FROM [varchar](100)&lt;/font&gt; line&lt;br /&gt;&lt;br /&gt;All other lines are equal for both scripts.&lt;br /&gt;&lt;br /&gt;When object exists only in source or in target data source, the whole object script is displayed using “&gt;&gt;” and “&lt;&lt;” prefixes.&lt;br /&gt;&lt;br /&gt;The summary and details information are displayed if /v switch is specified for CLI comparison. The information is displayed in standard output stream, so it can be redirected to the file for further analysis and saving.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Get your developers the tools they need to do the job fast and right - &lt;a href="http://www.apexsql.com/sql_tools_dev_studio.asp"&gt;ApexSQL Developer Studio&lt;/a&gt; is the ultimate combat multiplier for SQL Developers.  Best of Class tools - one download, install and discounted &lt;a href="http://www.apexsql.com/purchase.asp"&gt;price&lt;/a&gt;.  Click &lt;a href="http://www.apexsql.com/sql_tools_dev_studio.asp"&gt;Here&lt;/a&gt; for more info.&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-6137083978044375019?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/6137083978044375019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=6137083978044375019&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/6137083978044375019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/6137083978044375019'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2010/01/object-level-differences-in-apexsql.htm' title='Object-level differences in ApexSQL Diff CLI'/><author><name>Janice Lee</name><uri>http://www.blogger.com/profile/07336545127156403186</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02343779196295030908'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-2272010550664108684</id><published>2010-01-18T06:39:00.019-05:00</published><updated>2010-01-18T08:27:14.752-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apex SQL Refactor'/><title type='text'>How do I upgrade ApexSQL Refactor?</title><content type='html'>&lt;span class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article describes how to upgrade ApexSQL Refactor&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;Download the latest version of ApexSQL Refactor &lt;a href="http://www.apexsql.com/download.aspx"&gt;here&lt;/a&gt;. The free version is no longer offered for download but a freeware version of the current ApexSQL Refactor may be available soon.&lt;br /&gt;&lt;br /&gt;Before starting ApexSQL Installer, be sure that SQL Server Management Studio is closed. Start Setup wizard and install ApexSQL Refactor add-in over existing one.&lt;br /&gt;&lt;br /&gt;After upgrading to the latest ApexSQL Refactor 2010 version, in some cases when starting Microsoft SQL Server Management Studio, remove add-in dialog displays with the message that ApexSQL Refactor add-in is failed to load or causes an exception.&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://www.apexsql.com/knowledgebase/uploaded_images/Installer01-794751.jpg" alt="" border="0" /&gt;&lt;br /&gt;Click Yes to remove ApexSQL Refactor add-in. Then please start ApexSQL Refactor uninstaller and from its dialog select Yes for removing all existing ApexSQL Refactor versions.&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://www.apexsql.com/knowledgebase/uploaded_images/Installer03-737386.jpg" alt="" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://www.apexsql.com/knowledgebase/uploaded_images/Installer04-763302.jpg" alt="" border="0" /&gt;&lt;br /&gt;Execute installer again and install the latest ApexSQL Refactor version again.&lt;br /&gt;&lt;br /&gt;After performing these steps you should be able to execute Microsoft SQL Server Management Studio and use ApexSQL Refactor add-on without any problems.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Dragana Ilic&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;18 January 2010&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-2272010550664108684?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/2272010550664108684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=2272010550664108684&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/2272010550664108684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/2272010550664108684'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2010/01/how-do-i-upgrade-apexsql-refactor.htm' title='How do I upgrade ApexSQL Refactor?'/><author><name>Dragana Ilic</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-4444541750546616323</id><published>2010-01-12T08:12:00.006-05:00</published><updated>2010-01-12T16:29:02.010-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ApexSQL Log'/><title type='text'>ApexSQL Log update to the latest public version</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;ApexSQL Log auto-updater updates the client side of the application only. So server-side components and Connection Monitor from the previous version of ApexSQL Log still reside on the SQL Server and are running. This part of the application needs to be updated manually.&lt;span Class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;Server-side components update could be performed in the two ways:&lt;br /&gt;1. Through the Connection Monitor Manager dialog: the Connection Monitor is fully configurable from the application GUI (Tools | Connection Monitor Manager) starting from the ApexSQL Log 2008.05. Application offers server-side components update, otherwise Connection Monitor management will not be available.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Connection Monitor Manager&lt;/span&gt; dialog consists of the two tabs: &lt;span style="font-weight:bold;"&gt;Connection Status&lt;/span&gt; and &lt;span style="font-weight:bold;"&gt;Data Capture&lt;/span&gt; that enable to manage Connection Monitor Log On options as well as a possibility to enable/disable the monitor and to choose a database for storing captured data.&lt;br /&gt;&lt;br /&gt;&lt;a target=_blank onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/help/apexsqllog/HTML/Images/ConnMonitor/ConnectionMonitorManager1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 359px; height: 512px;" src="http://www.apexsql.com/help/apexsqllog/HTML/Images/ConnMonitor/ConnectionMonitorManager1.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Connection Status&lt;/span&gt; tab contains information about selected server, log on type, connection monitoring state and status.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Data Capture&lt;/span&gt; tab contains settings for:&lt;br /&gt;   1. Database where user wants to store login information&lt;br /&gt;   2. Captured information maintenance&lt;br /&gt;&lt;a target=_blank onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/help/apexsqllog/HTML/Images/ConnMonitor/ConnectionMonitorManager2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 359px; height: 512px;" src="http://www.apexsql.com/help/apexsqllog/HTML/Images/ConnMonitor/ConnectionMonitorManager2.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Custom database to store login information could be selected here with the automatic or manual maintenance of the captured information.&lt;br /&gt;&lt;br /&gt;2. Application automatically offers server-side components update at first auditing: since old server-side components are not compatible with the latest client, without this update auditing will not start.&lt;br /&gt;&lt;br /&gt;However even after the server-side components are updated the Connection Monitor keeps saving data into msdb.APEXSQL_LOG_LOGIN table. This behavior can be changed through the Data Capture tab of the Connection Monitor Manager dialog (click &lt;a href="http://www.apexsql.com/help/apexsqllog/HTML/Connection_Monitor_Manager.htm"&gt;here&lt;/a&gt; for more details ).&lt;br /&gt;&lt;br /&gt;Note: After the application is auto-updated you need to manually run vcredist_x86.exe which is updated and placed into ApexSQL Log installation folder (e.g. C:\Program Files\ApexSQL\ApexSQLLog2008) on the machine where SQL Server is installed. This installer requires for correct work of server-side components.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Dmitriy Dyubchenko&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;12 January 2010&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-4444541750546616323?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/4444541750546616323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=4444541750546616323&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/4444541750546616323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/4444541750546616323'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2010/01/apexsql-log-update-to-latest-public.htm' title='ApexSQL Log update to the latest public version'/><author><name>Dmitriy Dyubchenko</name><uri>http://www.blogger.com/profile/03842291815446023867</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05769379500469780875'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-6652237766772761716</id><published>2009-11-25T07:41:00.008-05:00</published><updated>2010-02-18T15:11:52.562-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>How do I restore the original layout of my application's interface?</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;The layout of the interface of your ApexSQL tool can be customized to your liking. For example, you can move toolbars around or hide them. You can also change the dimensions of your dialogs. When you make changes like these, how do you restore your layout to the original settings? That is, how do you make your application look as it did when you initially installed it?&lt;span Class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;The file called layouts.xml stores your application's  layout. This file can be found on your application's installation folder (e.g. C:\Program Files\ApexSQL\ApexSQLDiff2008\layouts.xml). The following are stored in this file:&lt;br /&gt; &lt;br /&gt;- Whether your application window is minimized or maximized when you start your application&lt;br /&gt;- Dimensions of your application window and dialogs&lt;br /&gt;- What toolbars and menus are displayed&lt;br /&gt;- and more.&lt;br /&gt;&lt;br /&gt;When you exit the application, Layouts.xml is saved. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/1-744642.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 94px;" src="http://www.apexsql.com/training/uploaded_images/1-744639.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How do I restore the original layout of my application's interface?&lt;/strong&gt;&lt;br /&gt;So to restore the original layout, do the following steps:&lt;br /&gt;&lt;br /&gt;1) Close the application.&lt;br /&gt;2) Go the application's installation folder.&lt;br /&gt;3) Delete layouts.xml.&lt;br /&gt;4) Start the application.&lt;br /&gt;&lt;br /&gt;The layouts.xml file will be re-created and your interface will be restored to its original settings.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;See Also&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/knowledgebase/2009/11/why-do-i-lose-my-panelmenutoolbar.htm"&gt;Losing your customized layout after an upgrade&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Last Modified By&lt;/strong&gt;&lt;br /&gt;Janice Lee&lt;br /&gt;2/10/2010&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-6652237766772761716?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/6652237766772761716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=6652237766772761716&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/6652237766772761716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/6652237766772761716'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/11/where-is-stored-apexsql-application.htm' title='How do I restore the original layout of my application&apos;s interface?'/><author><name>Dejan Batanjac</name><uri>http://www.blogger.com/profile/07872639969843407609</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01483851957122532339'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-8159544404312893463</id><published>2009-11-19T13:32:00.045-05:00</published><updated>2009-11-19T17:26:35.690-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apex SQL Audit'/><title type='text'>How to audit only some users in ApexSQLAudit?</title><content type='html'>&lt;span class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article discusses how to audit only chosen users with ApexSQL's Audit&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;This is possible through changing the Trigger Template. To access the Trigger Template, click on the Template Editor button found on the Outlook Bar Auditing section:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/uploaded_images/p1-727616.png"&gt;&lt;br /&gt;&lt;img style="WIDTH: 101px; HEIGHT: 79px; CURSOR: hand" border="0" alt="" src="http://www.apexsql.com/training/uploaded_images/p1-727614.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This will start Template Editor:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/uploaded_images/p2-714271.png"&gt;&lt;img style="WIDTH: 320px; HEIGHT: 219px; CURSOR: hand" border="0" alt="" src="http://www.apexsql.com/training/uploaded_images/p2-714266.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next, you should find the part where trigger for INSERT command is created:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#009900;"&gt;'==================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;'INSERT INSERT INSERT INSERT&lt;br /&gt;'==================================================&lt;/span&gt;&lt;br /&gt;caption = "Create Insert Trigger " &amp;amp; "[" &amp;amp; objTable.Owner &amp;amp; "].[" &amp;amp; StartTriggerNameInsert &amp;amp; objTable.Name &amp;amp; "]" &amp;amp; _ "&gt;" for Table " &amp;amp; TableFullName%}&lt;br /&gt;&lt;span style="color:blue;"&gt;IF&lt;/span&gt; OBJECT_ID('&lt;span style="color:#ff0000;"&gt;{%&lt;/span&gt;Audit.&lt;span style="color:blue;"&gt;Print&lt;/span&gt; replace("[" &amp;amp; objTable.Owner &amp;amp; "].[" &amp;amp; StartTriggerNameInsert &amp;amp; objTable.Name &amp;amp; "]", "'", "''") &lt;span style="color:#ff0000;"&gt;%}&lt;/span&gt;','TR') &lt;span style="color:blue;"&gt;IS&lt;/span&gt; &lt;span style="color:blue;"&gt;NOT&lt;/span&gt; NULL&lt;br /&gt;&lt;span style="color:blue;"&gt;BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;DROP&lt;/span&gt; &lt;span style="color:blue;"&gt;TRIGGER&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;{%&lt;/span&gt;Audit.&lt;span style="color:blue;"&gt;Print&lt;/span&gt; "[" &amp;amp; objTable.Owner &amp;amp; "].[" &amp;amp; StartTriggerNameInsert &amp;amp; objTable.Name &amp;amp; "]" &lt;span style="color:#ff0000;"&gt;%}&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;PRINT&lt;/span&gt; '&lt;span style="color:#ff0000;"&gt;{%&lt;/span&gt; Audit.&lt;span style="color:blue;"&gt;Print&lt;/span&gt; "&lt;span style="color:blue;"&gt;Trigger&lt;/span&gt; Dropped: " &amp;amp; StartTriggerNameInsert &amp;amp; Replace(objTable.Name,"'","''")&lt;span style="color:#ff0000;"&gt;%}&lt;/span&gt;'&lt;br /&gt;&lt;span style="color:blue;"&gt;END&lt;/span&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;span style="color:green;"&gt;-- {%Audit.Print caption%} &lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;Print&lt;/span&gt; '&lt;span style="color:#ff0000;"&gt;{%&lt;/span&gt;Audit.&lt;span style="color:blue;"&gt;Print&lt;/span&gt; Replace(caption, "'", "''")&lt;span style="color:#ff0000;"&gt;%}&lt;/span&gt;'&lt;br /&gt;go&lt;br /&gt;&lt;span style="color:blue;"&gt;CREATE&lt;/span&gt; &lt;span style="color:blue;"&gt;TRIGGER&lt;/span&gt; {%Audit.&lt;span style="color:blue;"&gt;Print&lt;/span&gt; "[" &amp;amp; objTable.Owner &amp;amp; "].[" &amp;amp; StartTriggerNameInsert &amp;amp; objTable.Name &amp;amp; "]" &lt;span style="color:#ff0000;"&gt;%}&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;ON&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;{%&lt;/span&gt;Audit.&lt;span style="color:blue;"&gt;Print&lt;/span&gt; TableFullName&lt;span style="color:#ff0000;"&gt;%}&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;FOR&lt;/span&gt; &lt;span style="color:blue;"&gt;INSERT&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;NOT&lt;/span&gt; &lt;span style="color:blue;"&gt;FOR&lt;/span&gt; &lt;span style="color:blue;"&gt;REPLICATION&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;As&lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;-- "&lt;tag&gt;SQLAUDIT GENERATED - DO NOT REMOVE&lt;/tag&gt;" &lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;-- ------------------------------------------------------------------------------------------- &lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;-- Legal: {%Audit.Print Audit.Legal%} &lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;-- Description: INSERT TRIGGER for Table: {%Audit.Print TableFullName%} &lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;-- Author: {%Audit.Print Audit.Author%} &lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;-- Date: {%Audit.Print Now%} &lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;-- ------------------------------------------------------------------------------------------- &lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;BEGIN&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;there you should add following:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;IF&lt;/span&gt; (&lt;span style="color:#cc33cc;"&gt;SUSER_SNAME&lt;/span&gt;() &lt;&gt; &lt;span color="#ff0000"&gt;N'ComputerName\UserName1'&lt;/span&gt;) &lt;span style="color:blue;"&gt;AND&lt;/span&gt; (&lt;span style="color:#cc33cc;"&gt;SUSER_NAME&lt;/span&gt;() &lt;&gt; &lt;span color="#ff0000"&gt;N'ComputerName\UserName2'&lt;/span&gt;) &lt;span style="color:blue;"&gt;RETURN&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Where ComputerName\UserName1 and ComputerName\UserName2 are the user names you want to include in auditing in case they use Windows Authentication on connecting to your server or UserNam1 and UserName2 in case they use SQL Authentication.&lt;br /&gt;&lt;br /&gt;These steps you need to repeat for UPDATE (found below this)&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#009900;"&gt;'==================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;' UPDATE UPDATE UPDATE UPDATE UPDATE&lt;br /&gt;'==================================================&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and DELETE trigger template.&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#009900;"&gt;'==================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;' DELETE DELETE DELETE DELETE&lt;br /&gt;'==================================================&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;with the same command:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:blue;"&gt;IF&lt;/span&gt; (&lt;span style="color:#cc33cc;"&gt;SUSER_SNAME&lt;/span&gt;&lt;span style="color:#000000;"&gt;()&lt;/span&gt; &lt;&gt; &lt;span color="#ff0000"&gt;N'ComputerName\UserName1'&lt;/span&gt;) &lt;span style="color:blue;"&gt;AND&lt;/span&gt; (&lt;span style="color:#cc33cc;"&gt;SUSER_NAME&lt;/span&gt;&lt;span style="color:#000000;"&gt;()&lt;/span&gt; &lt;&gt; &lt;span color="#ff0000"&gt;N'ComputerName\UserName2'&lt;/span&gt;) &lt;span style="color:blue;"&gt;RETURN&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then you need to recreate triggers on your tables. First, check tables and columns you want to audit, and then create triggers by clicking on the Create Triggers button:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/uploaded_images/p4-753664.png"&gt;&lt;img style="WIDTH: 232px; HEIGHT: 88px; CURSOR: hand" border="0" alt="" src="http://www.apexsql.com/training/uploaded_images/p4-753662.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Script will be built. You just need to execute it:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/uploaded_images/p3-753660.png"&gt;&lt;img style="WIDTH: 320px; HEIGHT: 82px; CURSOR: hand" border="0" alt="" src="http://www.apexsql.com/training/uploaded_images/p3-753655.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This will recreate all triggers, and now only users with given names will be audited.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SEE ALSO&lt;/strong&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2007/08/how-to-audit-user-names-in-aspnet_428.htm"&gt;How to audit user names in ASP.Net application&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/02/how-to-update-apexsql-audit-without.htm"&gt;How to update ApexSQL Audit without losing custom changes in the architecture&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2007/06/schedule-audit-report-generation.htm"&gt;Schedule Audit Report generation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2007/08/how-to-delete-old-data-in-audit-tables_7713.htm"&gt;How to Delete Old Data in Audit tables&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Milic Vuletic&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;19 November 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-8159544404312893463?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/8159544404312893463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=8159544404312893463&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/8159544404312893463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/8159544404312893463'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/11/how-to-audit-only-some-users-in.htm' title='How to audit only some users in ApexSQLAudit?'/><author><name>Milic Vuletic</name><uri>http://www.blogger.com/profile/02510236168090097384</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18190792360591249563'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-6810299417732342234</id><published>2009-11-19T09:01:00.008-05:00</published><updated>2009-11-26T10:01:39.972-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ApexSQL Log API'/><title type='text'>How to integrate ApexSQL Log API components into custom installer</title><content type='html'>&lt;span class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article describes solutions for integrating ApexSQL Log API components into custom installer&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;ApexSQL Log API components can be integrated into custom installer in two ways. The first one is running original ApexSQL Log API setup with the INNO setup switches for silent mode installation. The second solution is to create simple .NET application which will copy all required files, register them, create extended procedures on a server and check the activation status.&lt;br /&gt;Let’s start with the &lt;span style="font-style: italic;"&gt;first solution&lt;/span&gt;: running ApexSQL Log API installer from your installer:&lt;br /&gt;To use the silent mode installation, use ApexSQL Log API setup with the following switches:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/VERYSILENT&lt;/span&gt; – this suppresses all installation wizard dialogs&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/SUPPRESSMSGBOXES&lt;/span&gt; – this suppresses all messages from the installer&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/LOADINF="filename"&lt;/span&gt; – this will load the previously saved installer settings (such as the installation directory, shortcuts and so forth…)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/SAVEINF="filename"&lt;/span&gt; – this will save all of your choices during an “ideal” installation (these choices will then be used in LOADINF switch)&lt;br /&gt;&lt;br /&gt;1. Start ApexSQL Log API installer with SAVEINF switch from the command prompt (e.g. ApexSQLLogApi.exe /saveinf="logapi.inf"), make all necessary choices and finish the installation. This will save all your preferences to the .inf file In the following format:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;[Setup]&lt;br /&gt;Lang=eng&lt;br /&gt;Dir=C:\Program Files\ApexSQL\ApexSQLLogApi2008&lt;br /&gt;Group=ApexSQL\ApexSQL Log API 2008&lt;br /&gt;NoIcons=0&lt;br /&gt;SetupType=full&lt;br /&gt;Components=client_side,server_side&lt;br /&gt;Tasks=&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Add this call to the custom setup step to run original ApexSQL Log API installer with the INF file created on previous step and the following switches:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;ApexSQLLogApi.exe /VERYSILENT /SUPPRESSMSGBOXES /LOADINF =" logapi.inf"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The second solution is more complicated and consists of the below steps. The example of this solution can be found &lt;a href="http://www.apexsql.com/training/Install.zip"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1. Create new Console Application project in Visual Studio and add a reference to the ApexSQL.Log.Api.dll in it&lt;br /&gt;&lt;br /&gt;2. Add a reference to the ApexSql.Log namespace from within the code file:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; ApexSql.Log;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Depending on how server-side installation will be performed add verification on the number of arguments passed to the console application from the customer setup. Let’s assume that application is receiving just server name&lt;br /&gt;&lt;br /&gt;4. Configure engine by calling Config.ConfigureLogging&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; ConfigureEngine()&lt;br /&gt;        {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//  Engine configuration has to be done before first reference to Engine class.&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//  Setup logging file name and folder.&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            Config.LoggingConfiguration loggingConfig = &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Config.LoggingConfiguration();&lt;br /&gt;            loggingConfig.loggingEnabled = &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            loggingConfig.logFileName = String.Format(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"ApexSqlLogApiInstallation.{0}.log"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, DateTime.Now.ToString(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"yyyyMMddHHmmss"&lt;/span&gt;&lt;span style="color: #000000;"&gt;));&lt;br /&gt;            Config.ConfigureLogging(loggingConfig);&lt;br /&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;5. Add verification on server-side components state on server and perform appropriate actions according to the current their state:&lt;br /&gt;    &lt;pre&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; CheckVersionInformation(Database db)&lt;br /&gt;        {&lt;br /&gt;            ServerSideComponentsManager manager = Engine.CreateServerSideComponentsManager(db);&lt;br /&gt;&lt;br /&gt;            ServerSideComponentsState state = manager.ComponentsState;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;switch&lt;/span&gt;&lt;span style="color: #000000;"&gt; (state)&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ServerSideComponentsState.NotInstalled:&lt;br /&gt;                    {&lt;br /&gt;                        Console.WriteLine(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"Server-side components are not installed. Installing server-side components to server {0}..."&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;                            db.Properties.server);&lt;br /&gt;                        manager.InstallComponents();&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                    }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ServerSideComponentsState.IncompleteInstallation:&lt;br /&gt;                    {&lt;br /&gt;                        Console.WriteLine(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"Server-side components are not correctly installed. Uninstalling and then installing server-side components on server {0}..."&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;                            db.Properties.server);&lt;br /&gt;&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;try&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                        {&lt;br /&gt;                            manager.UninstallComponents();&lt;br /&gt;                        }&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;catch&lt;/span&gt;&lt;span style="color: #000000;"&gt; (System.Exception e)&lt;br /&gt;                        {&lt;br /&gt;                            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"Exception occurred during uninstallation of server-side components: {0}"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, e.Message);&lt;br /&gt;                        }&lt;br /&gt;&lt;br /&gt;                        manager.InstallComponents();&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                    }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ServerSideComponentsState.EarlierVersion:&lt;br /&gt;                    {&lt;br /&gt;                        Console.WriteLine(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"Installed server-side components are out of date (version {0}). Updating components on server {1}..."&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;                            manager.ComponentsVersion, db.Properties.server);&lt;br /&gt;                        manager.InstallComponents();&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                    }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ServerSideComponentsState.LaterVersion:&lt;br /&gt;                    {&lt;br /&gt;                        Console.WriteLine(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"Installed server-side components on server {0} are of later version ({1}). Please update your ApexSQL Log API version."&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;                            db.Properties.server, manager.ComponentsVersion);&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                    }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (manager.ComponentsState == ServerSideComponentsState.CompatibleVersion)&lt;br /&gt;            {&lt;br /&gt;                Console.WriteLine(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"Installed server-side components on server {0} are compatible with this version of ApexSQL Log API."&lt;/span&gt;&lt;span style="color: #000000;"&gt;, db.Properties.server);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            {&lt;br /&gt;                Console.WriteLine(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"Installed server-side components are still not up to date. Please check application log file for detailed errors."&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;6. Compile the project &lt;br /&gt;&lt;br /&gt;7. Add server-side component files to the custom installer:&lt;UL&gt;&lt;LI&gt;ApexSqlLog2008XprocsIA64.dll&lt;br /&gt;&lt;LI&gt;ApexSqlLog2008Xprocsx64.dll&lt;br /&gt;&lt;LI&gt;ApexSqlLog2008Xprocsx86.dll&lt;br /&gt;&lt;LI&gt;ApexSqlLog2008Activation.exe&lt;br /&gt;&lt;LI&gt;ApexSqlLog2008ConnectionMonitorIA64.exe&lt;br /&gt;&lt;LI&gt;ApexSqlLog2008ConnectionMonitorx64.exe&lt;br /&gt;&lt;LI&gt;ApexSqlLog2008ConnectionMonitorx86.exe&lt;br /&gt;&lt;LI&gt;ApexSqlLog2008ServerHelperIA64.exe&lt;br /&gt;&lt;LI&gt;ApexSqlLog2008ServerHelperx64.exe&lt;br /&gt;&lt;LI&gt;ApexSqlLog2008ServerHelperx86.exe&lt;br /&gt;&lt;LI&gt;ApexSqlLogApi2008Activation.exe&lt;br /&gt;&lt;LI&gt;ApexSqlLog2008ServerHelperIA64.sys&lt;br /&gt;&lt;LI&gt;ApexSqlLog2008ServerHelperx64.sys&lt;br /&gt;&lt;LI&gt;ApexSqlLog2008ServerHelperx86.sys&lt;/UL&gt;&lt;br /&gt;8. Add vcredist_x86.exe, which is part of the ApexSQL Log API setup to the custom setup&lt;br /&gt;&lt;br /&gt;9. Add ApexSQL.Log.Api.dll to the custom setup&lt;br /&gt;&lt;br /&gt;10. Add just compiled application to the custom setup&lt;br /&gt;&lt;br /&gt;11. Extract and run vcredist_x86.exe from the setup&lt;br /&gt;&lt;br /&gt;12. Extract compiled application, ApexSQL.Log.Api.dll and server-side components to &lt;br /&gt;some temp location from the custom setup and run compiled application from here with the server specified as parameter&lt;br /&gt;&lt;br /&gt;13. Server-side components should be installed on server passed to it as argument. &lt;br /&gt;&lt;br /&gt;14. Example of the installation script which is used for ApexSQL Log API installation and created in the INNO you can find &lt;a href="http://www.apexsql.com/training/LogApi.txt"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Dmitriy Dyubchenko&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;26 November 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-6810299417732342234?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/6810299417732342234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=6810299417732342234&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/6810299417732342234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/6810299417732342234'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/11/how-to-integrate-apexsql-log-api.htm' title='How to integrate ApexSQL Log API components into custom installer'/><author><name>Dmitriy Dyubchenko</name><uri>http://www.blogger.com/profile/03842291815446023867</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05769379500469780875'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-7472019463153053084</id><published>2009-09-24T07:33:00.005-04:00</published><updated>2009-09-24T08:02:22.974-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apex SQL Data Diff'/><title type='text'>How to enable execution of user code in the .NET Framework</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article will show you how to enable execution of user code in the .NET Framework and avoid message “Execution of user code in the .NET Framework is disabled. Enable ‘clr enabled’ configuration option” in ApexSQL products.&lt;span Class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;&lt;b&gt;In Microsoft SQL Server 2005.&lt;/b&gt;&lt;br /&gt;1. Explore "Microsoft SQL Server 2005/Configuration Tools/SQL Server Surface Area Configuration" in your Start menu. &lt;br /&gt;2. Select "Surface Area Configuration for Features"&lt;br /&gt;3. You will find "CLR Integration" option, activate it and save.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Another way to enable this feature is with SQL (using SQL Server Management Studio).&lt;/b&gt;&lt;br /&gt;&lt;font face="Courier New" size="2"&gt;&lt;br /&gt;&lt;font color = "blue"&gt;&lt;b&gt;sp_configure&lt;/font&gt;&lt;/b&gt;&amp;nbsp;&lt;font color = "red"&gt;'show&amp;nbsp;advanced&amp;nbsp;options'&lt;/font&gt;&lt;font color = "silver"&gt;,&lt;/font&gt;&amp;nbsp;&lt;font color = "black"&gt;1&lt;/font&gt;&lt;font color = "silver"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color = "blue"&gt;GO&lt;/font&gt;&lt;br /&gt;&lt;br&gt;&lt;font color = "blue"&gt;RECONFIGURE&lt;/font&gt;&lt;font color = "silver"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color = "blue"&gt;GO&lt;/font&gt;&lt;br /&gt;&lt;br&gt;&lt;font color = "blue"&gt;&lt;b&gt;sp_configure&lt;/font&gt;&lt;/b&gt;&amp;nbsp;&lt;font color = "red"&gt;'clr&amp;nbsp;enabled'&lt;/font&gt;&lt;font color = "silver"&gt;,&lt;/font&gt;&amp;nbsp;&lt;font color = "black"&gt;1&lt;/font&gt;&lt;font color = "silver"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color = "blue"&gt;GO&lt;/font&gt;&lt;br /&gt;&lt;br&gt;&lt;font color = "blue"&gt;RECONFIGURE&lt;/font&gt;&lt;font color = "silver"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color = "blue"&gt;GO&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The error message will no longer appear in ApexSQL products.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SEE ALSO&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/general_faqs.asp"&gt;General FAQs&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Evgeniy Spashko&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;24 Sep 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-7472019463153053084?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/7472019463153053084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=7472019463153053084&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/7472019463153053084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/7472019463153053084'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/09/how-to-enable-execution-of-user-code-in.htm' title='How to enable execution of user code in the .NET Framework'/><author><name>Evgeniy Spashko</name><uri>http://www.blogger.com/profile/04273964270362663650</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15334154597438836075'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-2363046045373520706</id><published>2009-08-20T08:46:00.009-04:00</published><updated>2009-08-21T03:12:10.858-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apex SQL Edit'/><title type='text'>What files should be backed up to copy settings of one ApexSQL Edit 2008.06 installation to another location?</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article describes what files should be backed up if you want to copy settings of your ApexSQL Edit installation to another computer.&lt;span Class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;You need to back up files and directories listed below if you want to copy your ApexSQL Edit settings: &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;Note:&lt;/b&gt; we use the following variable names in the directory listing below:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;$InstallFolder$&lt;/b&gt; variable should be replaced by your installation folder, for example C:\Program Files\ApexSQL\ApexSQL Edit, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;$MyDocuments$&lt;/b&gt; variable should be replaced by your Documents and Settings folder, for example C:\Documents and Settings\Administrator\My Documents\ for Windows XP or \Users\$UserName$\Documents\ApexSQL\ApexSQLEdit2008 for Windows Vista, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;$UserAppData$&lt;/b&gt; variable should be replaced by your Application Data folder, for example C:\Documents and Settings\Administrator\Local Settings\Application Data\ApexSQL\ApexSQLEdit for Windows XP or \Users\$UserName$\AppData\Local\ApexSQL\ApexSQLEdit  for Windows Vista:&lt;br /&gt;&lt;br /&gt;• &lt;b&gt;$InstallFolder$\Report Templates&lt;/b&gt; the folder that stores your report definitions, &lt;br /&gt;• &lt;b&gt;$InstallFolder$\SQL Templates&lt;/b&gt; the folder stores SQL template files which appear as new commands under main menu File (default ones are New Stored Procedure and New User Defined Function commands),  &lt;br /&gt;• &lt;b&gt;$InstallFolder$\edit.project&lt;/b&gt;  the file that stores your startup default project settings, &lt;br /&gt;• &lt;b&gt;$InstallFolder$\BlankQuery.xml&lt;/b&gt; the default blank (new) query file, &lt;br /&gt;• &lt;b&gt;$InstallFolder$\Favorites.xml&lt;/b&gt; this file stores the list of selected favorite Schema Explorer nodes (objects) which appear under reserved schema folder named “Favorites”,&lt;br /&gt;• &lt;b&gt;$InstallFolder$\Options.xml&lt;/b&gt; this file stores information about ApexSQL Edit options and  configuration (including Source Control connections and setup), &lt;br /&gt;• &lt;b&gt;$InstallFolder$\Queries.xml&lt;/b&gt; the file stores user defined queries, &lt;br /&gt;• &lt;b&gt;$InstallFolder$\Replacements.xml&lt;/b&gt; this file stores definitions of auto replacements, &lt;br /&gt;• &lt;b&gt;$InstallFolder$\Layouts.xml&lt;/b&gt; this file stores information about user interface configuration such as window sizes, positions, panel setup, etc; please note that this file shouldn’t be transferred to the new installation if the destination operating system has lower desktop resolution as it may cause some windows to become inaccessible or hidden,&lt;br /&gt;• &lt;b&gt;$MyDocuments$\ApexSQL\ApexSQLEdit2008&lt;/b&gt; the folder is a default location for user files (projects, workspaces etc), &lt;br /&gt;• &lt;b&gt;$MyDocuments$\ApexSQL\ApexSQLEdit2008\Snippets\My Snippets&lt;/b&gt; the folder is a default suggested location of application and user defined Snippets, &lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; It is possible to store custom Snippets in subfolders of the $MyDocuments$\ApexSQL\ApexSQLEdit2008\Snippets folder. In such a case all subfolders created by a user should be also backed up. &lt;br /&gt;• &lt;b&gt;$MyDocuments$\ApexSQL\ApexSQLEdit2008\Templates\My Templates&lt;/b&gt;  the folder is a default suggested location of application and user defined Templates, &lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; It is possible to store custom Templates in subfolders of the $MyDocuments$\ApexSQL\ApexSQLEdit2008\Templates folder. In such a case all subfolders created by a user should be also backed up. &lt;br /&gt;• &lt;b&gt;$UserAppData$\ApexSQL\ApexSQLEdit\Backup&lt;/b&gt; the application auto-backup history folder, &lt;br /&gt;• &lt;b&gt;$UserAppData$\ApexSQL\ApexSQLEdit\Settings&lt;/b&gt;  the folder stores customization files for quick info, aliases, tab colors, macros, and more. &lt;br /&gt;&lt;br /&gt;After you copy/backup up all necessary directories and files, you should paste/restore them into your corresponding destination folder(s).&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; Remember that ApexSQL Edit application should not be run when you back up and restore the files/directories listed above.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Anna Lesniak&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;20 August 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-2363046045373520706?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/2363046045373520706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=2363046045373520706&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/2363046045373520706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/2363046045373520706'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/08/what-files-should-be-backed-up-to-copy.htm' title='What files should be backed up to copy settings of one ApexSQL Edit 2008.06 installation to another location?'/><author><name>Anna Lesniak</name><uri>http://www.blogger.com/profile/02431393332730737446</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00738230340712137519'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-6316907149895590277</id><published>2009-08-14T07:29:00.004-04:00</published><updated>2009-08-31T08:32:25.333-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ApexSQL Recover'/><title type='text'>Undoing schema changes (Drop Object)</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article describes how to undoing schema changes occurred by DROP [Object] operation.&lt;br /&gt;&lt;br /&gt;&lt;span Class="fullpost"&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;1. Open ApexSQL Recover and point it to your SQL Server:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image001-767544.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image001-767542.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;2. Select ‘Recover lost object due to a Drop [Object] operation’ recovery option&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image027-725513.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image027-725511.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;3. Specify database for recovery:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image005-769700.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image005-769694.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;4. Select ‘several sources are available for data recovery’ option&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image007-781209.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image007-781206.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;5. Specify data sources:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image031-791942.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image031-791939.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;6. Specify path for the recovery script and generate it:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image033-740026.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image033-740023.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;7. Open generated recovery script and review that it contains required data:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image035-714493.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 279px;" src="http://www.apexsql.com/training/uploaded_images/image035-714491.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;8. Run generate script versus your database to recover lost objects&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SEE ALSO&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-delete-statement.htm"&gt;Recover from rogue delete statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-truncate-table.htm"&gt;Recover from a rogue truncate table statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-drop-table-statement.htm"&gt;Recover from a rogue drop table statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-single-table-data-from-database.htm"&gt;Recover single table data from a database backup "row level recovery", without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recovering-file-from-sharepoint.htm"&gt;Recovering a file from sharepoint database&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recovering-corrupted-database.htm"&gt;Recovering corrupted database&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Dmitriy Dyubchenko&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;14 August 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-6316907149895590277?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/6316907149895590277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=6316907149895590277&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/6316907149895590277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/6316907149895590277'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/08/undoing-schema-changes-drop-object.htm' title='Undoing schema changes (Drop Object)'/><author><name>Dmitriy Dyubchenko</name><uri>http://www.blogger.com/profile/03842291815446023867</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05769379500469780875'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-235083078922219759</id><published>2009-08-14T07:11:00.004-04:00</published><updated>2009-08-31T08:31:43.151-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ApexSQL Recover'/><title type='text'>Recovering corrupted database</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article describes how to recover corrupted database when detached MDF file and database backup are available only. Online database is completely corrupted at the same time.&lt;br /&gt;&lt;span Class="fullpost"&gt;&lt;span style="font-weight:bold;"&gt;Note:&lt;/span&gt; ApexSQL Recover supports recovery of BLOB values from database files (online, detached and db backups) only. Recovery of BLOB values from transaction log files is not supported yet.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;1. Open ApexSQL Recover and point it to your SQL Server:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image001-767544.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image001-767542.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;2. Select ‘Recover from corrupted database or detached mdf’ recovery option&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image015-754485.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image015-754482.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;3. Specify that there is not older online database is available:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image017-742911.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image017-742908.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;4. Add detached MDF database file and its backup for recovery:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image019-785434.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image019-785432.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;5. Specify tables for recovery:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image021-733823.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image021-733820.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;6. Specify path for the recovery script and generate it:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image023-703500.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image023-703498.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;7. Open generated recovery script and review that it contains required data:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image025-791663.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 279px;" src="http://www.apexsql.com/training/uploaded_images/image025-791660.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SEE ALSO&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-delete-statement.htm"&gt;Recover from rogue delete statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-truncate-table.htm"&gt;Recover from a rogue truncate table statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-drop-table-statement.htm"&gt;Recover from a rogue drop table statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-single-table-data-from-database.htm"&gt;Recover single table data from a database backup "row level recovery", without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recovering-file-from-sharepoint.htm"&gt;Recovering a file from sharepoint database&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/undoing-schema-changes-drop-object.htm"&gt;Undoing schema changes (Drop Object)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Dmitriy Dyubchenko&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;14 August 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-235083078922219759?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/235083078922219759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=235083078922219759&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/235083078922219759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/235083078922219759'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/08/recovering-corrupted-database.htm' title='Recovering corrupted database'/><author><name>Dmitriy Dyubchenko</name><uri>http://www.blogger.com/profile/03842291815446023867</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05769379500469780875'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-852340962653212685</id><published>2009-08-14T06:52:00.005-04:00</published><updated>2009-08-31T08:30:44.375-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ApexSQL Recover'/><title type='text'>Recovering a file from sharepoint database</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article describes how to recover deleted BLOB data from the online Sharepoint database as files.&lt;br /&gt;&lt;span Class="fullpost"&gt;&lt;span style="font-weight:bold;"&gt;Note:&lt;/span&gt; ApexSQL Recover supports recovery of BLOB values from database files (online, detached and db backups) only. Recovery of BLOB values from transaction log files is not supported yet.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;1. Please make sure that you detached the db and backed up the raw MDF and LDF files. Doing full backup won’t do the trick as it will just backup pages in use and active part of transaction log whereas we need both deallocated pages and the entire transaction log to maximize chances of good recovery.&lt;br /&gt;&lt;br /&gt;2. Once you have backed up the files please attach them as another database, put it into readonly mode. If this is not possible, than please put original database to readonly mode, the less post-incident activities is performed on database the more possibility for successful data recovery&lt;br /&gt;&lt;br /&gt;3. Open ApexSQL Recover and point it to your SQL Server:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image001-767544.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image001-767542.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;4. Select ‘Recover BLOB data as files’ recovery option&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image003-765937.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image003-765934.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;5. Select ‘Online Database’ option:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image005-723500.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image005-723494.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;6. Specify database for recovery:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image005-769700.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image005-769694.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;7. Select ‘Yes’ for ‘Where these BLOB data lost due to a DELETE operation?’ question:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image009-749841.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image009-749839.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;8. Specify folder for the BLOB’s files:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image011-795170.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image011-795167.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;9. Run Recovery process:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image013-767264.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image013-767262.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;10. Open Output directory and check generated files for BLOB data.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SEE ALSO&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-delete-statement.htm"&gt;Recover from rogue delete statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-truncate-table.htm"&gt;Recover from a rogue truncate table statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-drop-table-statement.htm"&gt;Recover from a rogue drop table statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-single-table-data-from-database.htm"&gt;Recover single table data from a database backup "row level recovery", without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recovering-corrupted-database.htm"&gt;Recovering corrupted database&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/undoing-schema-changes-drop-object.htm"&gt;Undoing schema changes (Drop Object)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Dmitriy Dyubchenko&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;14 August 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-852340962653212685?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/852340962653212685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=852340962653212685&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/852340962653212685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/852340962653212685'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/08/recovering-file-from-sharepoint.htm' title='Recovering a file from sharepoint database'/><author><name>Dmitriy Dyubchenko</name><uri>http://www.blogger.com/profile/03842291815446023867</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05769379500469780875'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-4483493273601468297</id><published>2009-08-13T07:45:00.006-04:00</published><updated>2009-08-31T08:29:45.913-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ApexSQL Recover'/><title type='text'>Recover single table data from a database backup "row level recovery", without having to do a full restore</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article describes how to recover table data lost occurred when there is no possibility to create a full database restore and just full database backup is available.&lt;br /&gt;&lt;span Class="fullpost"&gt;&lt;span style="font-weight:bold;"&gt;Note:&lt;/span&gt; ApexSQL Recover supports recovery of BLOB values from database files (online, detached and db backups) only. Recovery of BLOB values from transaction log files is not supported yet.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;1. Please make full database backup and copy it to the machine where ApexSQL Recover is installed.&lt;br /&gt;&lt;br /&gt;2. Open ApexSQL Recover and point it to your SQL Server:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image001-767544.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image001-767542.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;3. Select ‘Recovery table data from a database backup’ recovery option&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image029-737140.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image029-737137.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;4. Specify database backup for audit:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image031-763805.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image031-763801.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;5. Select tables for data recovery:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image033-711681.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image033-711678.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;6. Specify path for the recovery script and generate it:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image035-761321.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image035-761319.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;7. Open generated recovery script and review that it contains required data:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image037-734612.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image037-734609.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;8. Run it versus your database:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image039-739481.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image039-739478.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;SEE ALSO&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-delete-statement.htm"&gt;Recover from rogue delete statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-truncate-table.htm"&gt;Recover from a rogue truncate table statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-drop-table-statement.htm"&gt;Recover from a rogue drop table statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recovering-file-from-sharepoint.htm"&gt;Recovering a file from sharepoint database&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recovering-corrupted-database.htm"&gt;Recovering corrupted database&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/undoing-schema-changes-drop-object.htm"&gt;Undoing schema changes (Drop Object)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Dmitriy Dyubchenko&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;13 August 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-4483493273601468297?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/4483493273601468297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=4483493273601468297&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/4483493273601468297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/4483493273601468297'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/08/recover-single-table-data-from-database.htm' title='Recover single table data from a database backup &quot;row level recovery&quot;, without having to do a full restore'/><author><name>Dmitriy Dyubchenko</name><uri>http://www.blogger.com/profile/03842291815446023867</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05769379500469780875'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-5247264086698154809</id><published>2009-08-13T07:38:00.007-04:00</published><updated>2009-08-31T08:28:56.878-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ApexSQL Recover'/><title type='text'>Recover from a rogue drop table statement with no backup, or without having to do a full restore</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article describes how to recover data lost occurred by the drop table operation, when there is no database or transaction log backups available and no possibility to create a full database restore.&lt;br /&gt;&lt;span Class="fullpost"&gt;&lt;span style="font-weight:bold;"&gt;Note:&lt;/span&gt; ApexSQL Recover supports recovery of BLOB values from database files (online, detached and db backups) only. Recovery of BLOB values from transaction log files is not supported yet.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;1. Please make sure that you detached the db and backed up the raw MDF and LDF files. Doing full backup won’t do the trick as it will just backup pages in use and active part of transaction log whereas we need both deallocated pages and the entire transaction log to maximize chances of good recovery.&lt;br /&gt;&lt;br /&gt;2. Once you have backed up the files please attach them as another database, put it into readonly mode. If this is not possible, than please put original database to readonly mode, the less post-incident activities is performed on database the more possibility for successful data recovery&lt;br /&gt;&lt;br /&gt;3. Open ApexSQL Recover and point it to your SQL Server:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image001-767544.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image001-767542.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;4. Select ‘Recovery lost data due to Drop operation’ recovery option&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image023-710873.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image023-710871.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;5. Specify database for recovery:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image005-769700.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image005-769694.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;6. Select ‘several sources are available for data recovery’ option&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image007-781209.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image007-781206.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;7. Specify data sources:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image009-761780.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image009-761777.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;8. Specify path for the recovery script and generate it:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image013-777754.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image013-777752.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;9. Open generated recovery script and review that it contains required data:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image025-728596.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image025-728592.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;10. Run it versus your database&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image027-764149.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image027-764146.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SEE ALSO&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-delete-statement.htm"&gt;Recover from rogue delete statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-truncate-table.htm"&gt;Recover from a rogue truncate table statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-single-table-data-from-database.htm"&gt;Recover single table data from a database backup "row level recovery", without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recovering-file-from-sharepoint.htm"&gt;Recovering a file from sharepoint database&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recovering-corrupted-database.htm"&gt;Recovering corrupted database&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/undoing-schema-changes-drop-object.htm"&gt;Undoing schema changes (Drop Object)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Dmitriy Dyubchenko&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;13 August 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-5247264086698154809?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/5247264086698154809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=5247264086698154809&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/5247264086698154809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/5247264086698154809'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/08/recover-from-rogue-drop-table-statement.htm' title='Recover from a rogue drop table statement with no backup, or without having to do a full restore'/><author><name>Dmitriy Dyubchenko</name><uri>http://www.blogger.com/profile/03842291815446023867</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05769379500469780875'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-2752397454129865312</id><published>2009-08-13T07:30:00.006-04:00</published><updated>2009-08-31T08:27:51.097-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ApexSQL Recover'/><title type='text'>Recover from a rogue truncate table statement with no backup, or without having to do a full restore</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article describes how to recover data lost occurred by the truncate operation, when there is no database or transaction log backups available and no possibility to create a full database restore.&lt;br /&gt;&lt;span Class="fullpost"&gt;&lt;span style="font-weight:bold;"&gt;Note:&lt;/span&gt;  ApexSQL Recover supports recovery of BLOB values from database files (online, detached and db backups) only. Recovery of BLOB values from transaction log files is not supported yet.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;1. Please make sure that you detached the db and backed up the raw MDF and LDF files. Doing full backup won’t do the trick as it will just backup pages in use and active part of transaction log whereas we need both deallocated pages and the entire transaction log to maximize chances of good recovery.&lt;br /&gt;&lt;br /&gt;2. Once you have backed up the files please attach them as another database, put it into readonly mode. If this is not possible, than please put original database to readonly mode, the less post-incident activities is performed on database the more possibility for successful data recovery&lt;br /&gt;&lt;br /&gt;3. Open ApexSQL Recover and point it to your SQL Server:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image001-767544.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image001-767542.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;4. Select ‘Recovery lost data due to Truncate operation’ recovery option&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image019-741339.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image019-741337.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;5. Specify database for recovery:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image005-769700.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image005-769694.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;6. Select table(s) for which data lost has occurred:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image011-707367.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image011-707365.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;7. Specify path for the recovery script and generate it:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image013-777754.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image013-777752.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;8. Open generated recovery script and review that it contains required data:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image021-774998.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image021-774994.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;9. Run it versus your database&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SEE ALSO&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-delete-statement.htm"&gt;Recover from rogue delete statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-drop-table-statement.htm"&gt;Recover from a rogue drop table statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-single-table-data-from-database.htm"&gt;Recover single table data from a database backup "row level recovery", without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recovering-file-from-sharepoint.htm"&gt;Recovering a file from sharepoint database&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recovering-corrupted-database.htm"&gt;Recovering corrupted database&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/undoing-schema-changes-drop-object.htm"&gt;Undoing schema changes (Drop Object)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Dmitriy Dyubchenko&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;13 August 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-2752397454129865312?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/2752397454129865312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=2752397454129865312&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/2752397454129865312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/2752397454129865312'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/08/recover-from-rogue-truncate-table.htm' title='Recover from a rogue truncate table statement with no backup, or without having to do a full restore'/><author><name>Dmitriy Dyubchenko</name><uri>http://www.blogger.com/profile/03842291815446023867</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05769379500469780875'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-1740083546766770057</id><published>2009-08-12T10:18:00.010-04:00</published><updated>2009-08-31T08:26:57.080-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ApexSQL Recover'/><title type='text'>Recover from rogue delete statement with no backup, or without having to do a full restore</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article describes how to recover data lost occurred by the delete operation, when there is no database or transaction log backups available and no possibility to create a full database restore&lt;br /&gt;&lt;span Class="fullpost"&gt;&lt;span style="font-weight:bold;"&gt;Note:&lt;/span&gt; ApexSQL Recover supports recovery of BLOB values from database files (online, detached and db backups) only. Recovery of BLOB values from transaction log files is not supported yet.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;1. Please make sure that you detached the db and backed up the raw MDF and LDF files. Doing full backup won’t do the trick as it will just backup pages in use and active part of transaction log whereas we need both deallocated pages and the entire transaction log to maximize chances of good recovery.&lt;br /&gt;&lt;br /&gt;2. Once you have backed up the files please attach them as another database, put it into readonly mode. If this is not possible, than please put original database to readonly mode, the less post-incident activities is performed on database the more possibility for successful data recovery&lt;br /&gt;&lt;br /&gt;3. Open ApexSQL Recover and point it to your SQL Server:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image001-767544.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image001-767542.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;4. Select ‘Recovery lost data due to Delete operation’ recovery option&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image003-726508.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image003-726505.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;5. Specify database for recovery:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image005-769700.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image005-769694.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;6. Select ‘several sources are available for data recovery’ option&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image007-781209.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image007-781206.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;7. Specify data sources:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image009-761780.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image009-761777.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;8. And select table(s) for which data lost has occurred:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image011-707367.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image011-707365.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;9. Specify path for the recovery script and generate it:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image013-777754.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image013-777752.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;10. Open generated recovery script and review that it contains required data:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image015-742276.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image015-742273.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;11. Run it versus your database&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image017-715951.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://www.apexsql.com/training/uploaded_images/image017-715948.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SEE ALSO&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-truncate-table.htm"&gt;Recover from a rogue truncate table statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-from-rogue-drop-table-statement.htm"&gt;Recover from a rogue drop table statement with no backup, or without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recover-single-table-data-from-database.htm"&gt;Recover single table data from a database backup "row level recovery", without having to do a full restore&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recovering-file-from-sharepoint.htm"&gt;Recovering a file from sharepoint database&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/recovering-corrupted-database.htm"&gt;Recovering corrupted database&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/undoing-schema-changes-drop-object.htm"&gt;Undoing schema changes (Drop Object)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Dmitriy Dyubchenko&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;13 August 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-1740083546766770057?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/1740083546766770057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=1740083546766770057&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/1740083546766770057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/1740083546766770057'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/08/recover-from-rogue-delete-statement.htm' title='Recover from rogue delete statement with no backup, or without having to do a full restore'/><author><name>Dmitriy Dyubchenko</name><uri>http://www.blogger.com/profile/03842291815446023867</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05769379500469780875'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-3732488299964397880</id><published>2009-08-10T05:08:00.005-04:00</published><updated>2009-08-10T05:39:46.860-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ApexSQL Doc'/><title type='text'>What are the required permissions to document jobs?</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;The minimum permission requirement for jobs documenting are described in this article.&lt;span Class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;Jobs are the part of SQL Server Agent and are accessed in different way comparing to regular database objects. Account which is used for jobs documenting should be granted the following permissions:&lt;br /&gt;      1. Login used to connect to SQL Server must be part of sysadmin server role. Here is the shot for that. In any other case no jobs will be documented: &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image001-701754.jpg" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 359px;" src="http://www.apexsql.com/training/uploaded_images/image001-701752.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;      2.Also the user related to this login must have db_creator role set on a database that is selected. Nothing specific needs to be set for msdb database.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Dmitriy Dyubchenko&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;10 August 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-3732488299964397880?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/3732488299964397880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=3732488299964397880&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/3732488299964397880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/3732488299964397880'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/08/what-are-required-permissions-to.htm' title='What are the required permissions to document jobs?'/><author><name>Dmitriy Dyubchenko</name><uri>http://www.blogger.com/profile/03842291815446023867</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05769379500469780875'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-826050531313701589</id><published>2009-08-07T16:14:00.028-04:00</published><updated>2009-08-07T17:00:50.292-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apex SQL Edit'/><category scheme='http://www.blogger.com/atom/ns#' term='Source Control'/><title type='text'>How to migrate from ApexSQL Edit 2008.05 to 2008.06  if you have a database mapped to a Source Control system using the CUSTOM mapping pattern?</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article describes how to migrate from ApexSQL Edit 2008.05 to 2008.06 or higher if you have a database mapped to a Source Control system using the &lt;b&gt;custom&lt;/b&gt; mapping pattern. &lt;span Class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;A mapping pattern defines a way of scripting database objects to Source Control: it includes file name templates and subprojects for each object type.&lt;br /&gt;&lt;br /&gt;Let’s assume that you have mapped a database to a Source Control system using the following settings in ApexSQL Edit 2008.05:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;a) Scripts for each database object type were stored in a separate Source Control project, like displayed below:&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/scr1-702001.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 231px;" src="http://www.apexsql.com/training/uploaded_images/scr1-702000.PNG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;b) Script file names consist of the schema name, object name and ‘sql’ extension (for example dbo.Table1.sql).&lt;br /&gt;&lt;br /&gt;Follow the procedure described below to map your database to the existing Source Control project defined in ApexSQL Edit 2008.05 using ApexSQL Edit 2008.06 (Microsoft Visual SourceSafe 2005 is used as an example of the Source Control system):&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1. Install ApexSQL Edit 2008.06 in a &lt;b&gt;separate&lt;/b&gt; folder leaving ApexSQL Edit 2008.05 in its old folder. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2. After you have started ApexSQL Edit 2008.06 your databases appear not mapped to a Source Control system even if they were mapped in the previous ApexSQL Edit version.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3. Right click the database that is to be mapped to the existing Source Control project created using the previous version of ApexSQL Edit and select the &lt;b&gt;Set up Source Control&lt;/b&gt; command from the &lt;b&gt;Source Control&lt;/b&gt; menu.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/scr2-753126.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 359px;" src="http://www.apexsql.com/training/uploaded_images/scr2-753124.PNG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4. Select the Microsoft Visual SourceSafe from the available Native Source Control systems and click the Next button.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5. Enter the Source Control Login information as displayed below:&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/scr3-759966.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 249px;" src="http://www.apexsql.com/training/uploaded_images/scr3-759963.PNG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Remember to select the same Source Control database as it was used by the ApexSQL Edit 2008.05 version, the same Source Control project and the same working folder. &lt;br /&gt;You can click the &lt;b&gt;Test&lt;/b&gt; button to verify if you can access your Source Control database/project using the parameters entered on the Source Control Login tab.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;6. Then click the &lt;b&gt;Advanced&lt;/b&gt; button to display additional Source Control Wizard steps and click &lt;b&gt;Next&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/scr4-709726.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 229px;" src="http://www.apexsql.com/training/uploaded_images/scr4-709722.PNG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click in the Subfolder name edit box and change the default subfolder names to the ones you defined in ApexSQL Edit 2008.05 (for example delete the default text “Functions” and enter the “Funcs”, then change the subfolder names for other database object types).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; If a Central database was used in ApexSQL Edit 2008.05, then:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;a) The first user who is migrating to the newer version should export all current settings defined in the Advanced | Configure Mappings tab to an xml file using the Export… button.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;b) Each next user who is migrating to the newer application version should import settings exported by the first user using the Import button.&lt;br /&gt;&lt;br /&gt;After you have clicked the Next button ApexSQL Edit 2008.06 automatically maps database objects stored in a database to script files stored in a Source Control project based on the scripts file names.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/scr5-702749.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 293px;" src="http://www.apexsql.com/training/uploaded_images/scr5-702744.PNG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click the &lt;b&gt;Finish&lt;/b&gt; button to complete the Source Control Wizard and the migration procedure. Your database and database’s objects are shown now as mapped to a Source Control system.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/scr6-703064.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 324px; height: 400px;" src="http://www.apexsql.com/training/uploaded_images/scr6-703062.PNG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SEE ALSO&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/07/how-to-migrate-from-apexsql-edit.htm"&gt;How to migrate from ApexSQL Edit 2008.05 to 2008.06 if you have a database mapped to a Source Control using the IMPLICIT mapping pattern?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Anna Lesniak&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;07 August 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-826050531313701589?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/826050531313701589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=826050531313701589&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/826050531313701589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/826050531313701589'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/08/how-to-migrate-from-apexsql-edit-200805.htm' title='How to migrate from ApexSQL Edit 2008.05 to 2008.06  if you have a database mapped to a Source Control system using the CUSTOM mapping pattern?'/><author><name>Anna Lesniak</name><uri>http://www.blogger.com/profile/02431393332730737446</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00738230340712137519'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-7405339402640228353</id><published>2009-07-24T13:08:00.028-04:00</published><updated>2009-08-07T17:05:12.600-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apex SQL Source Control'/><category scheme='http://www.blogger.com/atom/ns#' term='Apex SQL Edit'/><title type='text'>How to migrate from ApexSQL Edit 2008.05 to 2008.06 if you have a database mapped to a Source Control using the IMPLICIT mapping pattern?</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article describes how to migrate from ApexSQL Edit 2008.05 to 2008.06 or higher if you have a database mapped to a Source Control system using the implicit mapping pattern. &lt;span Class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;The implicit mapping pattern is used by default in ApexSQL Edit 2008.05 and means that:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;a) Scripts for database’s objects were stored in the same Source Control project,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;b) Script file names consist of the schema name, object name and ‘sql’ extension (for example dbo.Table1.sql).&lt;br /&gt;&lt;br /&gt;Follow the procedure described below to map your database to the existing Source Control project defined in ApexSQL Edit 2008.05 using ApexSQL Edit 2008.06 (Microsoft Visual SourceSafe 2005 is used as an example of the Source Control system):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1. Install ApexSQL Edit 2008.06 in a &lt;b&gt;separate&lt;/b&gt; folder leaving ApexSQL Edit 2008.05 in its old folder. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2. After you have started ApexSQL Edit 2008.06.0164 your databases are not mapped to a Source Control system even if they were mapped in the previous ApexSQL Edit version.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3. Right click the database that is to be mapped to the existing Source Control project created using the previous version of ApexSQL Edit and select the &lt;b&gt;Set up Source Control&lt;/b&gt; command from the &lt;b&gt;Source Control&lt;/b&gt; menu.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/scr11-718475.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 359px;" src="http://www.apexsql.com/training/uploaded_images/scr11-718473.PNG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4. Select the Microsoft Visual SourceSafe from the available Native Source Control systems and click the Next button.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5. Enter the Source Control Login information as displayed below:&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/scr12-719779.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 249px;" src="http://www.apexsql.com/training/uploaded_images/scr12-719774.PNG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Remember to select the same Source Control database as it was used by the ApexSQL Edit 2008.05 version, the same Source Control project and the same working folder. &lt;br /&gt;You can click the Test button to verify if you can access your Source Control database/project using the parameters entered on the Source Control Login tab.&lt;br /&gt;   &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;6. Then click the &lt;b&gt;Advanced&lt;/b&gt; button to display additional Source Control Wizard steps and click &lt;b&gt;Next&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Important! Deselect all check boxes for the Subfolder column on the Configure Mappings tab and click the Next button.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/scr13-730455.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 240px;" src="http://www.apexsql.com/training/uploaded_images/scr13-730450.PNG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; If a Central database was used in ApexSQL Edit 2008.05.0163, then:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a) The first user who is migrating to the newer version should export all current settings defined in the Advanced | Configure Mappings tab to an xml file using the Export… button.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b) Each next user who is migrating to the newer application version should import settings exported by the first user using the Import button.&lt;br /&gt;&lt;br /&gt;After you have clicked the Next button ApexSQL Edit 2008.06.0164 automatically maps database objects stored in a database to script files stored in a Source Control project based on the scripts file names.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/scr14-775119.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 293px;" src="http://www.apexsql.com/training/uploaded_images/scr14-775114.PNG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click the &lt;b&gt;Finish&lt;/b&gt; button to complete the Source Control Wizard and the migration procedure. Your database and database’s objects are shown now as mapped to a Source Control system.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/scr15-785834.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 324px; height: 400px;" src="http://www.apexsql.com/training/uploaded_images/scr15-785832.PNG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;SEE ALSO&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.apexsql.com/training/2009/08/how-to-migrate-from-apexsql-edit-200805.htm"&gt; How to migrate from ApexSQL Edit 2008.05 to 2008.06 if you have a database mapped to a Source Control system using the CUSTOM mapping pattern? &lt;/a&gt;&lt;br /&gt;How can I define the Source Control parameters when I set up different Source Control systems using native drivers in the Source Control Wizard? &lt;br /&gt;How to map a database to a Source Control system step by step?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Anna Lesniak&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;24 July 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-7405339402640228353?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/7405339402640228353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=7405339402640228353&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/7405339402640228353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/7405339402640228353'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/07/how-to-migrate-from-apexsql-edit.htm' title='How to migrate from ApexSQL Edit 2008.05 to 2008.06 if you have a database mapped to a Source Control using the IMPLICIT mapping pattern?'/><author><name>Anna Lesniak</name><uri>http://www.blogger.com/profile/02431393332730737446</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='00738230340712137519'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-8030014472007187870</id><published>2009-07-15T16:42:00.008-04:00</published><updated>2009-07-16T06:44:48.589-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apex SQL Diff'/><category scheme='http://www.blogger.com/atom/ns#' term='Apex SQL Data Diff'/><category scheme='http://www.blogger.com/atom/ns#' term='Apex SQL Script'/><title type='text'>How to integrate an SQL Server Management Studio with ApexSQL tools</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article demonstrates how to integrate SQL Server Management Studio editor with ApexSQL tools&lt;span Class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;Often, when it is required to load and open large SQL scripts produced in ApexSQL tools the ApexSQL Editor may not be the best solution for the job, because the ApexSQL built in editor is not designed to handle large files. For that purpose SQL Server Management Studio should be used.&lt;br /&gt;&lt;br /&gt;Here as a showcase we will integrate SQL Server Management Studio to ApexSQL Diff but the similarly it can be integrated to ApexSQL Data Diff, ApexSQL Script and others. &lt;br /&gt;&lt;br /&gt;* From the Main Menu select Tools | Options&lt;br /&gt;* From the Options dialog select Output tab as shown in the image&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/1-758341.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 344px;" src="http://www.apexsql.com/training/uploaded_images/1-758339.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* Select SQL Server Management Studio Version you want to use (here I used 2005 version)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/2-759173.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 260px; height: 62px;" src="http://www.apexsql.com/training/uploaded_images/2-759172.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* Click OK to confirm&lt;br /&gt;&lt;br /&gt;You have successfully set the SQL Server Management Studio as your default SQL Server editor. &lt;br /&gt;&lt;br /&gt;Now, ApexSQL Diff will open SQL Server Management Studio when 'Launch Synchronization Script Editor' option is used in the Synchronization Wizard.&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/3-752383.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://www.apexsql.com/training/uploaded_images/3-752381.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/4-745774.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 243px;" src="http://www.apexsql.com/training/uploaded_images/4-745771.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a targed="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/6-710677.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 310px;" src="http://www.apexsql.com/training/uploaded_images/6-710675.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Dejan Batanjac&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;July 15 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-8030014472007187870?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/8030014472007187870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=8030014472007187870&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/8030014472007187870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/8030014472007187870'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/07/how-to-integrate-external-sql-script.htm' title='How to integrate an SQL Server Management Studio with ApexSQL tools'/><author><name>Dejan Batanjac</name><uri>http://www.blogger.com/profile/07872639969843407609</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01483851957122532339'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-1002483453198452829</id><published>2009-07-14T19:06:00.005-04:00</published><updated>2009-07-14T19:27:33.674-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apex SQL Diff'/><title type='text'>Using BeyondCopare as default comparison differences viewer</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article shows how to integrate BeyondCompare differences viewer with ApexSQL Diff&lt;span Class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;ApexSQL Diff is shipped with CompareIt, its default difference viewer that is used for identifying script differences during comparison. However, you can use virtually any other third-party difference viewer with ApexSQL Diff. You just need to provide such information as the full path to that executable and, if necessary, the appropriate command line arguments. &lt;br /&gt;&lt;br /&gt;Here are the steps how to integrate BeyondCompare with ApexSQL Diff&lt;br /&gt;&lt;br /&gt;1. Install BeyondCompare&lt;br /&gt;2. Set BeyondCompare as your default External Difference Viewer&lt;br /&gt;2.1 Open Tools | Options | Diff Viewer tab from the Main menu.&lt;br /&gt;2.3 In the Executable field enter the path to the BeyondCompare executable on your computer (for example C:\Program Files\Beyond Compare 3\Bcompare.exe)&lt;br /&gt;2.3 Optionally you may set BeyondCompare additional arguments (or just leave as it is) &lt;br /&gt;2.4 Click OK&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/6-784801.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 159px;" src="http://www.apexsql.com/training/uploaded_images/6-784799.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now after the call the External Difference Viewer you can watch the script differences using BeyondCompare.&lt;br /&gt;&lt;a href="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/7-776105.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 171px;" src="http://www.apexsql.com/training/uploaded_images/7-776103.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Dejan Batanjac&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;July 15 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-1002483453198452829?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/1002483453198452829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=1002483453198452829&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/1002483453198452829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/1002483453198452829'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/07/using-beyondcopare-as-default.htm' title='Using BeyondCopare as default comparison differences viewer'/><author><name>Dejan Batanjac</name><uri>http://www.blogger.com/profile/07872639969843407609</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01483851957122532339'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-9160412239612252343</id><published>2009-07-14T16:09:00.006-04:00</published><updated>2009-07-14T18:19:19.146-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apex SQL Edit'/><title type='text'>How to associate .SQL files with ApexSQL Edit?</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article demonstrates how to associate files with the extension .SQL to ApexSQL Edit.&lt;span Class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;Every program that's installed on your computer is designed to open one or more particular file types, each of which is identified by a file name extension. If you have more than one program on your computer capable of opening a file type, then one program is set as the default. &lt;br /&gt;&lt;br /&gt;How to set ApexSQL Edit opens .SQL type of files by default?&lt;br /&gt;&lt;br /&gt;1. Right-click .SQL file and click Choose Program from the context menu.&lt;br /&gt;&lt;a href="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/1-777323.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.apexsql.com/training/uploaded_images/1-777321.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Find ApexSQL Edit using the Browse button....&lt;br /&gt;&lt;a href="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/2-777390.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.apexsql.com/training/uploaded_images/2-777384.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Select it and click OK.&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/3-751850.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 298px;" src="http://www.apexsql.com/training/uploaded_images/3-751848.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From the Open With dialog select Always use the selected program to open this kind of file check box, and then click OK.&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/4-751913.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 335px; height: 400px;" src="http://www.apexsql.com/training/uploaded_images/4-751911.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At the end ApexSQL Diff will be your default .SQL files editor.&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/5-742704.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 302px;" src="http://www.apexsql.com/training/uploaded_images/5-742702.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you may want to associate other file types with ApexSQL Edit such as .PRC, .XML, .XSD just follow the same procedure as shown above.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Dejan Batanjac&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;July 14 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-9160412239612252343?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/9160412239612252343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=9160412239612252343&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/9160412239612252343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/9160412239612252343'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/07/how-to-associate-sql-files-with-apexsql.htm' title='How to associate .SQL files with ApexSQL Edit?'/><author><name>Dejan Batanjac</name><uri>http://www.blogger.com/profile/07872639969843407609</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01483851957122532339'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-2058723125692946968</id><published>2009-07-10T06:48:00.011-04:00</published><updated>2009-07-13T04:42:12.606-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ApexSQL Doc'/><title type='text'>How can I reduce the size of my .CHM file?</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;This article describes how the size of the CHM document can be reduced depending on the selected options for documenting.&lt;span Class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;ApexSQL Doc enables you to create feature rich documentation that includes a lot of stuff in the final output. There are a couple of features that stand out as culprits for large documentation size. Let’s review how options changes affect resulting document based on standard SQL Server 2005 database AdventureWorks.&lt;br /&gt;&lt;br /&gt;1. The main option that affects the result file size is graphical dependencies: removing this option from the documenting reduces its size on 90%, option can be turned OFF (by default it is turned OFF) here:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image003-764337.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 194px;" src="http://www.apexsql.com/training/uploaded_images/image001-768430.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Table of Contents options:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image003-764337.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 246px;" src="http://www.apexsql.com/training/uploaded_images/image003-764334.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;by default they are all set to ON and the three groups of the Table of Contents are created in the resulting document:&lt;br /&gt;&lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;width: 176px; height: 67px;" src="http://www.apexsql.com/training/uploaded_images/image005-711466.png" border="0" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Leaving just one out of these options reduces the size of the document up to 5 %.&lt;br /&gt;&lt;br /&gt;3. Two Miscellaneous options:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image007-760433.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 246px;" src="http://www.apexsql.com/training/uploaded_images/image007-760430.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Show Sections with no Relevant Meta Data to Document&lt;/span&gt; option results in displaying the following unnecessary information in the documentation:&lt;br /&gt; &lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 219px; height: 119px;" src="http://www.apexsql.com/training/uploaded_images/image009-723646.gif" border="0" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Show Nodes for Object Types that don't Exist in Documented Database&lt;/span&gt; option results in creating the stub pages with no relevant information&lt;br /&gt;&lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 217px;" src="http://www.apexsql.com/training/uploaded_images/image010-750759.png" border="0" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Turning these options off will help saving another 5% of the resulting document size&lt;br /&gt;&lt;br /&gt;4. Another set of the options may significantly (30-50%) reduce the size of the resulting document but they also affect the document data quality:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image012-726169.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 266px;" src="http://www.apexsql.com/training/uploaded_images/image012-726167.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Explicitly Parse Database for Improved Dependency accuracy&lt;/span&gt;: It will slow down the analyzing process but returns more dependencies information when the option is ON.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Include Data Definition Language (DDL) Script&lt;/span&gt;: adds SQL scripts for all objects to the resulting document:&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image014-768535.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 216px;" src="http://www.apexsql.com/training/uploaded_images/image014-768530.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Highlight Transact-SQL keywords&lt;/span&gt;: If this option is checked resulted DDL scripts will have SQL keywords highlighted&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Include Documentation of Procedure/Function Result Sets&lt;/span&gt;: It will show complete info on what values are returned from function or procedure&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apexsql.com/training/uploaded_images/image016-719784.png" target=_blank&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 182px;" src="http://www.apexsql.com/training/uploaded_images/image016-719782.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As a summary: Depending on the number of graphical dependencies, colors, state of the specified above options, the size of the generated .chm file may be reduced up to 95%. In oour example a .chm file was reduced from 61.5 Mb to 1.3 Mb, but this also affected the quality of data representation in the final document. You need to decide what data is necessary in the document and what may be omitted. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Dmitriy Dyubchenko&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;13 July 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-2058723125692946968?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/2058723125692946968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=2058723125692946968&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/2058723125692946968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/2058723125692946968'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/07/how-can-i-reduce-size-of-my-chm-file.htm' title='How can I reduce the size of my .CHM file?'/><author><name>Dmitriy Dyubchenko</name><uri>http://www.blogger.com/profile/03842291815446023867</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05769379500469780875'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-160707082233884630.post-7507469540578452208</id><published>2009-06-26T04:13:00.004-04:00</published><updated>2009-08-17T02:00:58.317-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ApexSQL Recover'/><title type='text'>Why ApexSQL Recover doesn't recover indexes, primary keys and identity for drop data recovery</title><content type='html'>&lt;span Class="fullpost"&gt;&lt;strong&gt;DESCRIPTION&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;When I try to recover data from a drop table operation, ApexSQL Recover does not generate code for the primary key and other indexes. &lt;br /&gt;&lt;span Class="fullpost"&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION&lt;/strong&gt;&lt;br /&gt;When doing recovery data lost, the simplest form of table schema is recovered on purpose. No IDENTITY, NULL/NOT NULL flags, primary key, default values or indexes are created - just column names with its data types. This is done because recovery process is not always unambiguous and can lead to duplicated rows depending on the database state. If we were to recover full table structure (as we did originally) it could lead to conflicting INSERT operation and possible data loss at the level of script. On the other hand, since the full table structure is generally known to the users, anyway there is no real loss - after the recovery the table just needs to be manually updated to its proper structure. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AUTHOR&lt;/strong&gt;&lt;br /&gt;Dmitriy Dyubchenko&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LAST REVIEW DATE&lt;/strong&gt;&lt;br /&gt;17 August 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/160707082233884630-7507469540578452208?l=knowledgebase.apexsql.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knowledgebase.apexsql.com/feeds/7507469540578452208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=160707082233884630&amp;postID=7507469540578452208&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/7507469540578452208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/160707082233884630/posts/default/7507469540578452208'/><link rel='alternate' type='text/html' href='http://knowledgebase.apexsql.com/2009/06/why-apexsql-recover-doesnt-recover.htm' title='Why ApexSQL Recover doesn&apos;t recover indexes, primary keys and identity for drop data recovery'/><author><name>Dmitriy Dyubchenko</name><uri>http://www.blogger.com/profile/03842291815446023867</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05769379500469780875'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>