By product  
  Other  

Knowledgebase

Tips and How-to Articles for ApexSQL Tools


Where is the ApexSQL Version log file located?

Applies to
ApexSQL Version

Summary

This article explains where to find ApexSQL Version application log file

Description
ApexSQL Version application log file is located in

C:\Users\\AppData\Local\ApexSQL\ApexSQLVersion
(for Windows Vista, Windows 7 and Windows Server 2008)

or

C:\Documents and Settings\\Local Settings\Application Data\ApexSQL\ApexSQLVersion
(for Windows XP and Windows Server 2003)

About ApexSQL Version
ApexSQL Version is a SQL Server Management Studio add-in which incorporates SQL database version control capabilities into SSMS. ApexSQL Version easily integrates with all major source control systems and provides all versioning benefits.

Last updated
April 20, 2012

Labels:

...


What’s the difference between Check-in and Save to a database options?


Applies to
ApexSQL Version

Summary

What’s the difference between the Check-in and Save to database options in the ApexSQL Version toolbar? When should one use these options?

Description
Save to database updates the live object only. The script under source control won’t be updated unless Yes is clicked when prompted to check it in



Check-in updates only the object’s versioned script. The live object isn’t affected in any way

About ApexSQL Version
ApexSQL Version is a SQL Server Management Studio add-in which incorporates SQL database version control capabilities into SSMS. ApexSQL Version easily integrates with all major source control systems and provides all versioning benefits.


Last updated 
April 13, 2012

Labels:

...


How can I see the differences between the database object and its version under the source control?


Applies to
ApexSQL Version

Summary

How to see whether the object in the database is identical to its version under source control and if that’s not the case, how to identify the differences

Solution
 1. Right click the object in Object Explorer and select ApexSQL Version | Reports
 2. Select Database vs. source control differences to find out whether the live object differs from its versioned script



 3. Select Show database/source control script differences to see the exact differences line-by-line between the live object and its versioned script


About ApexSQL Version
ApexSQL Version is a SQL Server Management Studio add-in which incorporates SQL database version control capabilities into SSMS. ApexSQL Version easily integrates with all major source control systems and provides all versioning benefits.


Last updated 
April 13, 2012

Labels:

...


How to can I see which variables had values changed and where did that change occur while profiling SQL code?


Applies to
ApexSQL Profile

Summary

How to see which variables had a value change and pinpoint the exact line where that change occurred

Description
 1) Right-click a procedure or a function in the Microsoft SQL Server Management Studio Object Explorer and select ApexSQL Profile | Profile stored procedure
 2) Specify the values for all parameters (if any) manually, or use the default ones
 3) Select Generate profiling information
 4) Click OK
 5) Navigate to the Variable/Parameter history tab

The grid contains:
  • Each variable/parameter that had its value changed
  • The exact line where that change occurred
  • The parameter/variable values before and after the change



About ApexSQL Profile
ApexSQL Profile is a SQL Server Management Studio add-in which allows performance profiling of stored procedures and user defined functions. It tracks SQL code performance at the line level and generates comprehensive reports containing statement execution times, variable and parameter changes and more. For more information visit the ApexSQL Profile product page

Last updated 
March 28, 2012

Labels:

...


How can I save performance profiling results?

Applies to
ApexSQL Profile

Summary

How to export the profiling results to a Microsoft Excel document or a PDF file

Description
Description
 1) Right-click a procedure or a function in the Microsoft SQL Server Management Studio Object Explorer and select ApexSOL Profile | Lazy Profile stored procedure
 2) Specify the values for all parameters (if any) manually, or use the default ones
 3) Click OK
 4) To export the report to Excel or PDF, click Save in the report toolbar and select the output file type



About ApexSQL Profile
ApexSQL Profile is a SQL Server Management Studio add-in which allows performance profiling of stored procedures and user defined functions. It tracks SQL code performance at the line level and generates comprehensive reports containing statement execution times, variable and parameter changes and more. For more information visit the ApexSQL Profile product page

Last updated 
March 28, 2012

Labels:

...


What is the difference between profiling and 'Lazy profiling'?

Applies to
ApexSQL Profile

Summary

Explains the difference between profiling and 'Lazy profiling'

Description
'Lazy Profiling' profiles SQL code and logs everything that happens during that process. Once finished, Lazy Profiling generates a report which aggregates the profiling results. The report can be exported to a Microsoft Excel document or a PDF file containing:
 a) The time needed for execution of each profiled statement
 b) The values of the parameters and variables which appear in the statement, including any changes
 c) The SQL statement itself



Profiling shows the profiling results in 4 separate tabs, providing more details:
Summary - shows the slowest statements in the profiled object and its children (other procedures/functions called by the profiled object). The variable/parameter minimums and maximums are also shown on this tab, alongside the line where those values have occurred
Script view - shows the stored procedure’s/function’s code and a timeline visually indicating how much time each statement took compared to the time needed to execute the entire code
Detail view - shows each executed statement, the execution length and the number of times the statement was executed
Variable/Parameter History - shows a list of all variables/parameters that had a value changed, the line where that change occurred as well as before and after values



About ApexSQL Profile
ApexSQL Profile is a SQL Server Management Studio add-in which allows performance profiling of stored procedures and user defined functions. It tracks SQL code performance at the line level and generates comprehensive reports containing statement execution times, variable and parameter changes and more. For more information visit the ApexSQL Profile product page

Last updated 
April 6, 2012

Labels:

...


What ApexSQL Diff API files to distribute along with the application?

Applies to
ApexSQL Diff API

Summary

This article explains what ApexSQL Diff API files should be distributed with the application to ensure ApexSQL Diff API functionality.

Description
The files that need to be distributed are:

ActivationBroker.exe
ApexSql.Backup.dll
ApexSql.Common.Activation.dll
ApexSql.Common.BackupMetadata.dll
ApexSql.Common.CommonLib.dll
ApexSql.Common.Decry.dll
ApexSql.Common.Dependency.dll
ApexSql.Common.ExceptionReporter.dll
ApexSql.Common.GrammarParser.dll
ApexSql.Common.OfflineMetadata.dll
ApexSql.Common.Scripting.dll
ApexSql.Common.ScriptMetadata.dll
ApexSql.Common.SourceControl.dll
ApexSql.Common.ZipLib.dll
ApexSql.DataDiff.dll
ApexSql.Diff.Api.dll
ApexSql.Diff.Api.xml
ApexSql.Diff.dll
ApexSql.Engine.dll
ApexSql.SourceControl.dll
ApexSql.SourceControl.Interfaces.dll
ApexSql.SourceControl.SourceSafe.dll
ApexSql.SourceControl.Subversion.dll
ApexSql.SourceControl.TFS.dll
ApexSql.SourceControl.Vault.dll
ApexSqlBackupCore.dll
ApexSqlDiffApi2011Activation.dll
DynLib.dll

AddIns folder from the ApexSQL Diff API installation folder also needs to be distributed.

Place the files (and the AddIns folder) in the same folder where the application executable is located.

About ApexSQL Diff API
ApexSQL Diff API programmatically compares and synchronizes SQL Server database tables, views and all other SQL Server objects as well as database data. Compare databases programmatically from your custom application

Last updated
March 16, 2012

Labels:

...


Download links to individual installers


To get individual product installer please send an email to support@apexsql.com with Product name and version required

About ApexSQL
ApexSQL is a leading provider of SQL Server tools for database recovery, database auditing, database comparison, documentation as well as SQL Server Management Studio and Visual Studio add-ins for SQL code refactoring, code completion and database source control. We strive to ensure that every one of our tools is standard-defining product in its class, from feature set, to performance, interface and quality.

Last updated
November 11,2011

Labels:

...


Basic steps for successful data recovery

Applies to
ApexSQL Recover

Description

What to do immediately after data is lost in order to minimize the chance of the data being overwritten or lost beyond chance of recovery and maximize the chance for successful data recovery

Solution
1. Set the database to Read-Only state immediately
2. Copy the database *.mdf and *.ldf files
3. Restore the database with a new name using the mdf and ldf files
4. Perform all recovery actions against the database copy - not the original
5. Execute the generated recovery script against the database copy

About ApexSQL Recover
ApexSQL Recover is a tool that recovers data lost due to delete, truncate and drop operations. Recover BLOB data as files and extract data from corrupted databases, detached MDFs or a recent SQL database backup without restoring it.

Last updated
April 3, 2012

Labels:

...


Full-text indexes are created outside the COMMIT statement in the script

Applies to
ApexSQL Script

Summary

Full-text indexes are created outside the COMMIT statement in the generated script

Description
This is a known limitation of SQL Server.
Full-text indexes can't be created inside a transaction, so they are created before or after the COMMIT statement in the generated script.

The script will be executed without errors.

About ApexSQL Script
ApexSQL Script generates scripts for SQL Server database objects and data. Script SQL databases to source control, generate .NET executable and C# projects for deployment, and automate script generation using CLI.

Last update
December 26, 2011

Labels:

...


How to use the application settings created in ApexSQL Edit 2008 with ApexSQL Edit ?

Applies to
ApexSQL Edit

Summary

This article explains how to move the custom application settings created in ApexSQL Edit 2008 and use them in latest ApexSQL Edit

Description
Before you start ApexSQL Edit for the first time, copy the Options.xml file from the ApexSQL Edit 2008 installation folder to ApexSQL Edit %LocalAppData% folder.

(e.g. from C:\Program Files\ApexSQL\ApexSQLEdit2008\ to C:\Documents and Settings\%UserName%\Local Settings\Application Data\ApexSQL\ApexSQLEdit for Windows XP C:\Users\%UserName%\AppData\Local\ApexSQL\ApexSQLEdit for Windows Vista/7)

All other setting files can be preserved by copying the files in %LocalAppData% folder manually from “ApexSQLEdit” to “ApexSQLEdit20xx”.

Please note that you will not be able to preserve the settings that reside in the Layouts.xml file which stores toolbars, panels setup, window/dialog sizes and the custom shortcuts set for menu and toolbar commands.

About ApexSQL Edit
ApexSQL Edit is a SQL Server code editor with advanced SQL formatting, refactoring and autocomplete functions. Edit SQL using code snippets and templates in a single integrated environment.

Last updated
February 23, 2012

Labels:

...


How do I register and view HxS documentation

Applies to
ApexSQL Doc

Summary

This article explains how to register and view HxS documentation

Description
To register HxS documentation:
1) Go to the Doc installation folder \ Examples

2) Open the reg.bat file in Notepad

3) Match the parameters in the following lines to your environment:
"C:\Program Files\Microsoft Help 2.0 SDK\hxreg.exe" -n testDoc1 -c testDoc.HxS
"C:\Program Files\Microsoft Help 2.0 SDK\hxreg.exe" -n testDoc1 -i testDoc2 -s testDoc.HxS

- C:\Program Files\Microsoft Help 2.0 SDK” is the VSHIK installation path
- testDoc1 is the documentation's Namespace
- testDoc2 is the documentation's TitleID
- testDoc.HxS is the documentation's file name

4) Save and execute the file


To view HxS documentation:
1) Go to the Doc installation folder \ Examples

2) Open the view.bat file in Notepad
3) Match the parameters in the following line to your environment:
"C:\Program Files\Common Files\Microsoft Shared\Help\dexplore.exe" /helpcol ms-help://testDoc1/testDoc2

- C:\Program Files\Common Files\Microsoft Shared\Help\dexplore.exe is the path to the dexplore utility
- testDoc1 is the documentation's Namespace
- testDoc2 is the documentation's TitleID

4) Save and execute the file

About ApexSQL Doc
ApexSQL Doc documents SQL Servers, databases, objects, and SSIS packages in a single document. Create database documentation in a variety of formats including compiled help (.CHM), HTML and MS Word. Schedule your documentation process unattended with the help of the CLI.

Last updated
November 30, 2011

Labels:

...


How do I install the MS HTML Help 2 SDK

Applies to
ApexSQL Doc

Summary

The article explains how to install the MS HTML Help 2 SDK

Description
Help 2 SDK called VSHIK (Visual Studio Help Integration Kit) is required for creating and viewing MS HTML Help 2 documentation on your machine.

When you have VS .NET installed:

- Download VSHIK 2002 (Version 2.1) for Visual Studio 2002 (version 7.0).

- Download VSHIK 2003 (Version 2.2) for Visual Studio 2003 (version 7.1).

- Download Visual Studio 2005 SDK for Visual Studio 2005 (version 8.0).

- Download Visual Studio 2008 SDK for Visual Studio 2008 (version 9.0).

(Note: For Windows 7, Visual Studio 2005 SDK (version 2.5) or higher is required.
Path to Help 2.0 executable should be updated accordingly to:
C:\Program Files (x86)\Visual Studio 2005 SDK\2007.02\VisualStudioIntegration\Archive\HelpIntegration)


When you don’t have VS .NET installed:

1) Install the MS Help 2 Runtime (e.g. install MSDN, TechNet or .NET SDK)

2) Download VSHIK Installer

3) Expand the install file VSHIK.exe to a local folder (using e.g. Winzip)

4) Copy patch_vshik_setup.msi.vbs file from ApexSQL Doc installation folder to the folder with the unzipped VSHIK.

5) Run patch_vshik_setup.msi.vbs file to unblock the installer

6) Run Setup.exe to install VSHIK.

(Note: Full functionality of patched installation isn't guaranteed)

About ApexSQL Doc
ApexSQL Doc documents SQL Servers, databases, objects, and SSIS packages in a single document. Create database documentation in a variety of formats including compiled help (.CHM), HTML and MS Word and eliminate a time consuming task with a high performance documentation engine.

Last updated
Novmeber 30, 2011

Labels:

...


Installing server-side components on the passive cluster node (IA64 system architecture)

Applies to
ApexSQL Log

Summary

How to install ApexSQL Log server-side components on a passive node in a clustered environment for IA64 system architecture

Description
If ApexSQL Log is installed in a clustered environment, the server-side components can be installed only on the active nodes, not on the passive ones. However, you can work around this issue

Workaround
Please do the following:

1. Copy ApexSqlLog2010Xprocsia64.dll to SQL Server's Binn folder and rename it to ApexSqlLog2010Xprocs.dll

2. Run the following script on SQL Server:

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog2010') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLog2010', 'ApexSqlLog2010Xprocs.DLL'

IF EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog2010') EXEC master.dbo.xp_ApexSqlLog2010 20060604, 3, 'Installed xp_ApexSqlLog2010'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLogApi2010') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLogApi2010', 'ApexSqlLog2010Xprocs.DLL'

IF EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLogApi2010') EXEC master.dbo.xp_ApexSqlLogApi2010 20060604, 3, 'Installed xp_ApexSqlLogApi2010'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog2010ConnectionMonitor') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLog2010ConnectionMonitor', 'ApexSqlLog2010Xprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog2010ConnectionMonitor_Stop') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLog2010ConnectionMonitor_Stop', 'ApexSqlLog2010Xprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog2010ConnectionMonitor_Info') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLog2010ConnectionMonitor_Info', 'ApexSqlLog2010Xprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog2010ConnectionMonitor_Enable') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLog2010ConnectionMonitor_Enable', 'ApexSqlLog2010Xprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog2010ConnectionMonitor_Disable') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLog2010ConnectionMonitor_Disable', 'ApexSqlLog2010Xprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog2010ConnectionMonitor_State') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLog2010ConnectionMonitor_State', 'ApexSqlLog2010Xprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'sp_ApexSqlLog2010ConnectionMonitor_Start') EXEC master.dbo.sp_executesql N'CREATE PROCEDURE sp_ApexSqlLog2010ConnectionMonitor_Start AS EXEC master.dbo.xp_ApexSqlLog2010ConnectionMonitor @@SERVERNAME'

-- Stop and disable ApexSQL Server 2005 Connection monitor if it exists.

IF EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlConnectionMonitor_Stop') EXEC master.dbo.xp_ApexSqlConnectionMonitor_Stop

IF EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlConnectionMonitor_Disable') EXEC master.dbo.xp_ApexSqlConnectionMonitor_Disable

3. Depending on your operating system, create a folder:
  • For Windows Vista/7/Server 2008/Server 2008 R2: C:\ProgramData\ApexSQL\ApexSQLLog\<instance name>
  • For Windows XP/server 2003: C:\Documents and Settings\All Users\Application Data\ApexSQL\ApexSQLLog\<instance name>
4. Create the following subfolders in the newly created folder:
  • Binn
  • Config
5. Copy the following files to Binn folder from previous step:

ApexSql.Common.ArrayOfflineMetadata.dll
ApexSql.Common.CommonLib.dll
ApexSql.Common.DdlAuditing.dll
ApexSql.Common.Decry.dll
ApexSql.Common.Dependency.dll
ApexSQL.Common.GrammarParser.dll
ApexSql.Common.OfflineMetadata.dll
ApexSql.Common.Scripting.dll
ApexSql.Diff.dll
ApexSql.Engine.dll
ApexSql.Log.CommunicationProtocol.dll
ApexSqlLog2010Activation.exe
ApexSqlLog2010ConnectionMonitoria64.exe (rename it to) ApexSqlLog2010ConnectionMonitor.exe
ApexSqlLog2010Coreia64.dll (rename it to) ApexSqlLog2010Core.dll
ApexSqlLog2010ServerAuditoria64.exe (rename it to) ApexSqlLog2010ServerAuditor.exe
ApexSqlLog2010ServerHelperia64.exe (rename it to) ApexSqlLog2010ServerHelper.exe
ApexSqlLog2010ServerHelperia64.sys (rename it to) ApexSqlLog2010ServerHelper.sys
ApexSqlLogApi2010Activationia64.exe (rename it to) ApexSqlLogApi2010Activation.exe

6. Run the Command Prompt as administrator

7. Navigate to the Binn folder previously created in step 4

8. Run the following command:
ApexSqlLog2010ServerHelper.exe /load

About ApexSQL Log
ApexSQL Log is a SQL Server Transaction Log reader that allows viewing transaction log data in read-friendly format. Audit and undo SQL database changes of your choosing. Determine who changed the data and when the change occurred. Read the transaction log to find out who created, changed or dropped a database object

Last updated
April 25, 2012

Labels:

...


Installing Server-Side Components on the passive cluster node (x64 system architecture)

Applies to
ApexSQL Log

Summary

This article explains how to install ApexSQL Log Server-Side Components on a passive node in a clustered environment for x64 system architecture

Description
If ApexSQL Log is installed in a clustered environment, the Server Side Components can be installed only on the active nodes, not on the passive ones. However, you can work around this issue.

Workaround
Please do the following:

1. Copy ApexSqlLogXprocsx64.dll to SQL Server's Binn folder and rename it to ApexSqlLogXprocs.dll

2. Run the following script on SQL Server:

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLog', 'ApexSqlLogXprocs.DLL'

IF EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog') EXEC master.dbo.xp_ApexSqlLog 20060604, 3, 'Installed xp_ApexSqlLog'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLogApi') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLogApi', 'ApexSqlLogXprocs.DLL'

IF EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLogApi') EXEC master.dbo.xp_ApexSqlLogApi 20060604, 3, 'Installed xp_ApexSqlLogApi'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLogConnectionMonitor') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLogConnectionMonitor', 'ApexSqlLogXprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLogConnectionMonitor_Stop') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLogConnectionMonitor_Stop', 'ApexSqlLogXprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLogConnectionMonitor_Info') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLogConnectionMonitor_Info', 'ApexSqlLogXprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLogConnectionMonitor_Enable') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLogConnectionMonitor_Enable', 'ApexSqlLogXprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLogConnectionMonitor_Disable') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLogConnectionMonitor_Disable', 'ApexSqlLogXprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLogConnectionMonitor_State') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLogConnectionMonitor_State', 'ApexSqlLogXprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'sp_ApexSqlLogConnectionMonitor_Start') EXEC master.dbo.sp_executesql N'CREATE PROCEDURE sp_ApexSqlLogConnectionMonitor_Start AS EXEC master.dbo.xp_ApexSqlLogConnectionMonitor @@SERVERNAME'

-- Stop and disable ApexSQL Server 2005 Connection Monitor if it exists.

IF EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlConnectionMonitor_Stop') EXEC master.dbo.xp_ApexSqlConnectionMonitor_Stop

IF EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlConnectionMonitor_Disable') EXEC master.dbo.xp_ApexSqlConnectionMonitor_Disable

3. Depending on your Operating System, create a folder:
  • For Windows Vista/7/Server 2008/Server 2008 R2: C:\ProgramData\ApexSQL\ApexSQLLog2011\<instance name>
  • For Windows XP/server 2003: C:\Documents and Settings\All Users\Application Data\ApexSQL\ApexSQLLog2011\<instance name>
4. Create the following subfolders in the newly created folder:
  • Binn
  • Config
5. Copy the following files to Binn folder from previous step:

ApexSql.Common.ArrayOfflineMetadata.dll
ApexSql.Common.CommonLib.dll
ApexSql.Common.DdlAuditing.dll
ApexSql.Common.Decry.dll
ApexSql.Common.Dependency.dll
ApexSQL.Common.GrammarParser.dll
ApexSql.Common.OfflineMetadata.dll
ApexSql.Common.Scripting.dll
ApexSql.Diff.dll
ApexSql.Engine.dll
ApexSql.Log.CommunicationProtocol.dll
ApexSqlLogActivation.exe
ApexSqlLogConnectionMonitorx64.exe (rename it to) ApexSqlLogConnectionMonitor.exe
ApexSqlLogCorex64.dll (rename it to) ApexSqlLogCore.dll
ApexSqlLogServerAuditorx64.exe (rename it to) ApexSqlLogServerAuditor.exe
ApexSqlLogServerHelperx64.exe (rename it to) ApexSqlLogServerHelper.exe
ApexSqlLogServerHelperx64.sys (rename it to) ApexSqlLogServerHelper.sys
ApexSqlLogApiActivationx64.exe (rename it to) ApexSqlLogApiActivation.exe

6. Run the Command Prompt as administrator

7. Navigate to the Binn folder previously created in step 4

8. Run the following command:
ApexSqlLogServerHelper.exe /load

About ApexSQL Log
ApexSQL Log is a SQL Server auditing and recovery solution. Use ApexSQL Log to recover data, undo INSERT, UPDATE and DELETE commands and audit schema changes. Read the transaction log to find out who created, changed or dropped a database object.

Last Updated
December 26, 2011

Labels:

...


Installing Server-Side Components on the passive cluster node (x86 system architecture)

Applies to
ApexSQL Log

Summary

This article explains how to install ApexSQL Log Server-Side Components on a passive node in a clustered environment for x86 system architecture

Description
If ApexSQL Log is installed in a clustered environment, the Server-Side Components can be installed only on the active nodes, not on the passive ones. However, you can work around this issue

Workaround
Please do the following:

1. Copy ApexSqlLog2010Xprocsx86.dll to SQL Server's Binn folder and rename it to ApexSqlLog2010Xprocs.dll

2. Run the following script on SQL Server:

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog2010') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLog2010', 'ApexSqlLog2010Xprocs.DLL'

IF EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog2010') EXEC master.dbo.xp_ApexSqlLog2010 20060604, 3, 'Installed xp_ApexSqlLog2010'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLogApi2010') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLogApi2010', 'ApexSqlLog2010Xprocs.DLL'
IF EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLogApi2010') EXEC master.dbo.xp_ApexSqlLogApi2010 20060604, 3, 'Installed xp_ApexSqlLogApi2010'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog2010ConnectionMonitor') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLog2010ConnectionMonitor', 'ApexSqlLog2010Xprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog2010ConnectionMonitor_Stop') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLog2010ConnectionMonitor_Stop', 'ApexSqlLog2010Xprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog2010ConnectionMonitor_Info') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLog2010ConnectionMonitor_Info', 'ApexSqlLog2010Xprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog2010ConnectionMonitor_Enable') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLog2010ConnectionMonitor_Enable', 'ApexSqlLog2010Xprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog2010ConnectionMonitor_Disable') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLog2010ConnectionMonitor_Disable', 'ApexSqlLog2010Xprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlLog2010ConnectionMonitor_State') EXEC master.dbo.sp_addextendedproc 'xp_ApexSqlLog2010ConnectionMonitor_State', 'ApexSqlLog2010Xprocs.DLL'

IF NOT EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'sp_ApexSqlLog2010ConnectionMonitor_Start') EXEC master.dbo.sp_executesql N'CREATE PROCEDURE sp_ApexSqlLog2010ConnectionMonitor_Start AS EXEC master.dbo.xp_ApexSqlLog2010ConnectionMonitor @@SERVERNAME'

-- Stop and disable ApexSQL Server 2005 Connection Monitor if it exists.

IF EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlConnectionMonitor_Stop') EXEC master.dbo.xp_ApexSqlConnectionMonitor_Stop

IF EXISTS(SELECT * FROM master.dbo.sysobjects WHERE name = 'xp_ApexSqlConnectionMonitor_Disable') EXEC master.dbo.xp_ApexSqlConnectionMonitor_Disable

3. Depending on your Operating System, create a folder:
  • For Windows Vista/7/Server 2008/Server 2008 R2: C:\ProgramData\ApexSQL\ApexSQLLog2010\<instance name>
  • For Windows XP/server 2003: C:\Documents and Settings\All Users\Application Data\ApexSQL\ApexSQLLog2010\<instance name>
4. Create the following subfolders in the newly created folder:
  • Binn
  • Config
5. Copy the following files to Binn folder from previous step:

ApexSql.Common.ArrayOfflineMetadata.dll
ApexSql.Common.CommonLib.dll
ApexSql.Common.DdlAuditing.dll
ApexSql.Common.Decry.dll
ApexSql.Common.Dependency.dll
ApexSQL.Common.GrammarParser.dll
ApexSql.Common.OfflineMetadata.dll
ApexSql.Common.Scripting.dll
ApexSql.Diff.dll
ApexSql.Engine.dll
ApexSql.Log.CommunicationProtocol.dll
ApexSqlLog2010Activation.exe
ApexSqlLog2010ConnectionMonitorx86.exe (rename it to) ApexSqlLog2010ConnectionMonitor.exe
ApexSqlLog2010Corex86.dll (rename it to) ApexSqlLog2010Core.dll
ApexSqlLog2010ServerAuditorx86.exe (rename it to) ApexSqlLog2010ServerAuditor.exe
ApexSqlLog2010ServerHelperx86.exe (rename it to) ApexSqlLog2010ServerHelper.exe
ApexSqlLog2010ServerHelperx86.sys (rename it to) ApexSqlLog2010ServerHelper.sys
ApexSqlLogApi2010Activationx86.exe (rename it to) ApexSqlLogApi2010Activation.exe

6. Run the Command Prompt as administrator

7. Navigate to the Binn folder previously created in step 4

8. Run the following command:
ApexSqlLog2010ServerHelper.exe /load

About ApexSQL Log
ApexSQL Log is a SQL Server Transaction Log reader that allows viewing transaction log data in read-friendly format. Audit and undo SQL database changes of your choosing. Determine who changed the data and when the change occurred. Read the transaction log to find out who created, changed or dropped a database object

Last updated
December 26, 2011

Labels:

...


How to audit operations for dropped or re-created tables

Applies to
ApexSQL Log

Summary

This article describes how to retrieve schemas and objects for the records that are shown as UNKNOWN in the Main grid. This happens when the table with the specific ID doesn't exist in the database anymore, and the transactions for that object ID exist in the transaction logs used. This happens when:
  • the table was dropped
  • the table was re-created (new ID was assigned to it)



Description

Old table ID needs to be mapped to the existing table. In case you need to see the tables created in the database, do the following:
Run ApexSQL Log, in the Filter setup tab, Operations sub-tab, uncheck all DML and DDL operations and check only CREATE table



The list of all created tables for the time range selected, or the whole transaction log, will be shown:



Now you can select the table you will map:

1. Copy the ID from the Undo or Redo script tab in the Row details pane:



2. Click Old table ID mapping on the Home tab, in the Tools group, to map the table to the old ID. Paste old ID into the Old table ID field. In case the same table was dropped and recreated several times, you can map one table to several old IDs:



3. After clicking refresh schema all table names will appear instead of UNKNOWN:




About ApexSQL Log
ApexSQL Log is a SQL Server auditing and recovery solution. Use ApexSQL Log to recover data, undo INSERT, UPDATE and DELETE commands and audit schema changes. Read the transaction log to find out who created, changed or dropped a database object.

Last updated
December 26, 2011

Labels:

...


What kind of additional information I can send about a technical problem to help resolve it?

Description
If a bug is found, additional information to duplicate it may be helpful to resolve the problem

Solution

Helpful information:

• What is the Product name (i.e. ApexSQL Diff) and version?
• What is the operating system?
• What are your processor and RAM? To get this information on Windows 7:
    1. Click the Start button
    2. Click Control Panel
    3. Click System and Security
    4. Click System
    The steps are similar for other Windows versions
    In case your computer uses multiple processors, the processor type and speed as well as the number of processors installed are shown under System
• Do you work in a domain or in a workgroup?
• What is the SQL Server version? Use: SELECT @@version


Issue specific:
• Duplication steps if the error can be consistently duplicated
• Any script/code/database structure that provides context for the issue
• If possible a database snapshot or DDL scripts of particular objects required for reproducing the issue

Please send any relevant information to support@apexsql.com

About ApexSQL
ApexSQL is a leading provider of SQL Server tools for database recovery, database auditing, database comparison, documentation as well as SQL Server Management Studio and Visual Studio add-ins for SQL code refactoring, code completion and database source control. We strive to ensure that every one of our tools is standard-defining product in its class, from feature set, to performance, interface and quality.

Last update
November 24,2011

Labels:

...


What files should be backed up before copying ApexSQL Edit settings to another location or updating to a new version

Applies to
ApexSQL Edit

Summary

This article lists the files that should be backed up if you want to copy ApexSQL Edit settings to another computer or update ApexSQL Edit to a new version

Description

Note: The following variable names are used:

- %InstallFolder%
C:\Program Files\ApexSQL\ApexSQL Edit

- %MyDocuments%
C:\Documents and Settings\%UserName%\My Documents\ for Windows XP
C:\Users\%UserName%\Documents\ApexSQL\ApexSQLEdit for Windows Vista/7

- %LocalAppData%
C:\Documents and Settings\%UserName%\Local Settings\Application Data\ApexSQL\ApexSQLEdit for Windows XP
C:\Users\%UserName%\AppData\Local\ApexSQL\ApexSQLEdit for Windows Vista/7

- %VirtualStore%
C:\Users\$UserName$\AppData\Local\VirtualStore\Program Files (x86)\ApexSQL\ApexSQLEdit2008 for Windows Vista/7


You need to back up the files and the directories listed below:

- %InstallFolder%\Report Templates
- %InstallFolder%\SQL Templates
- %MyDocuments%\ApexSQL\ApexSQLEdit - default location for user files (projects, workspaces, etc)
- %MyDocuments%\ApexSQL\ApexSQLEdit\Snippets\My Snippets - default location of application and user defined Snippets
- %MyDocuments%\ApexSQL\ApexSQLEdit\Templates\My Templates - default location of application and user defined Templates,
- %LocalAppData%\ApexSQL\ApexSQLEdit\Backup - the application auto-backup history folder
- %LocalAppData%\ApexSQL\ApexSQLEdit\Settings - stores customization files for quick info, aliases, tab colors, macros, and more.
- %LocalAppData%\ApexSQL\Common\DisplayedServers.xml - The list of servers available in the Connect to Server dialog
- %LocalAppData%\ApexSQL\Common\LocatedServers.xml - The list of servers located in the Connect to Server dialog

If the user has administrative rights, or UAC is turned OFF:

- %InstallFolder%\edit.project
- %InstallFolder%\BlankQuery.xml
- %LocalAppData%\Favorites.xml
- %LocalAppData%\Options.xml
- %LocalAppData%\Queries.xml
- %LocalAppData%\Replacements.xml
- %LocalAppData%\Layouts.xml
(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)


If the user has non-administrative rights, or UAC is turned ON:

- %VirtualStore%\edit.project
- %VirtualStore%\BlankQuery.xml
- %VirtualStore%\Favorites.xml
- %VirtualStore%\Options.xml
- %VirtualStore%\Queries.xml
- %VirtualStore%\Replacements.xml
- %VirtualStore%\Layouts.xml
(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)

About ApexSQL Edit
ApexSQL Edit is a SQL Server code editor with advanced SQL formatting, refactoring and autocomplete functions. Edit SQL using code snippets and templates in a single integrated environment.

Last updated
February 23, 2012

Labels:

...


How to choose between ApexSQL Audit and ApexSQL Log

Applies to
ApexSQL Log, ApexSQL Audit

Summary

ApexSQL has two auditing tools - ApexSQL Log and ApexSQL Audit. There is certainly a tradeoff when using one over the other. This article is an overview on how to choose between the two

Description
ApexSQL Audit is the trigger-based auditing tool. It helps users create audit triggers that are fired by DML operations (INSERT, UPDATE and DELETE) and then store details of the operation into AUDIT_LOG_DATA and AUDIT_LOG_TRANSACTIONS auditing tables

Pros
- Total control over what tables and operations to audit
- Audit data is stored in SQL Server tables and can therefore be manipulated like any other SQL Server table. Audit history is immediately available
- Creation of the custom reporting system based on the audit data stored in SQL Server tables
- Auditing of system databases is prevented to avoid database crashes if something goes wrong (system tables locking, etc.)
- As database administrators have full access to the data, they can change the data in the audit tables or even truncate them
- ApexSQL Audit has a separate standalone reporting tool called ApexSQL Audit Viewer which can be purchased separately. It can be distributed to team members and end-users who only need to view auditing reports and don't need access to the administrative features of ApexSQL Audit

Cons
- It can cause performance degradation, as is the nature of all triggers
- It can't audit DDL (schema) changes


ApexSQL Log is the transaction log-based tool - it reads transaction logs to get the data

Pros
- If the database is already in full recovery model, then there is no downside on the space/performance
- Move transaction logs to another server and audit there
- Better UNDO-ing of rogue actions/recovery
- Schedule ApexSQL Log reading the transaction logs, so the auditing is done during offline hours
- Audit DDL (schema) changes

Cons
- The database has to be in full recovery model. If the maintenance is not planned right, the hard drives can get filled with transaction logs and this can have an impact on the performance. The best way to manage the online transaction log size is to perform transaction log backups on regular basis, preferably daily

Both tools allow generating reports in various formats

About ApexSQL Log
ApexSQL Log is a SQL Server Transaction Log reader that allows viewing transaction log data in read-friendly format. Audit and undo SQL database changes of your choosing. Determine who changed the data and when the change occurred. Read the transaction log to find out who created, changed or dropped a database object

About ApexSQL Audit
ApexSQL Audit is a SQL Server auditing tool, which tracks data changes in SQL Server databases using triggers. ApexSQL Audit allows you to audit database access by login, host and application name

Last updated
April 17, 2012

Labels: ,

...