Advantages of ApexSQL Source Control – Part 1

ApexSQL Source Control is a tool that integrates into SQL Server Management Studio to place a database under source control. It comes with support for both dedicated and shared database development models as well as native support for all the major source control systems: Team Foundation Server, Git, Visual Studio Online, Subversion, Perforce and Mercurial.

Here is a short overview of some key/unique features and/or the important advantages of ApexSQL Source Control vs other tools.

Native drivers

Using the latest native drivers for all source control systems that ApexSQL Source Control supports, we provide connections to all of them with no strings attached, literally. This provides more flexibility because there is no need for a separate installation of a client tool in order to work with source control systems (except for Mercurial).The native driver implementations gives ApexSQL the following advantages over products without native drivers for the respective source control systems for the following reasons:

No need for third – party clients

  • Out of the box functionality. Just install ApexSQL Source Control and you are ready to communicate with the source control repository.

Better usability

  • Everything is done from SQL Server Management Studio. There is no need to switch between SSMS and a third party client when you want to commit changes or get latest from the server. Driver level messages are suppressed and the user is presented with a uniform interface no matter what source control system is used.

Easier setup

  • There is no need to adjust config files and define any CLI commands In order to work with Git, Mercurial and Perforce.

Conflict resolution

When working in the dedicated model, a conflict can occur if a developer changes the object that another already changed and committed to the repository. In this situation, the ability to merge the changes is essential in order to avoid code overwrites. ApexSQL Source Control offers key advantages in that it not only offers conflict resolution for all objects, vs just stored procedures for example, but it offers this functionality independently without the requirement for additional tools or clients.

ApexSQL Source Control comes with a built-in tool for conflict resolution so that a two-way merge can be executed on all SQL Server non-system objects, directly in the Action center tab, and then a proper action applied. Aside from that, we provide support for most popular third party solutions i.e. Kdiff3, BeyondCompare and ExamDiff.

Conflict resolution

View history

The View all history feature from ApexSQL Source Control, provides developers with the possibility to probe through the history of each changeset committed to source control, along with each object included in the specific changeset, and each difference in a specific object. The specific change can be applied against the database directly from the View all history form without the requirement of additional tools e.g. a SQL Server compare/diff tool

View history feature


Another feature found only in ApexSQL Source Control is support for labels. This feature provides developers with the possibility to create a named snapshot of the current state of the repository, which can later be used for reverting the database to a specific state, or even creating a completely new one from scratch. Once applied, labels can be used with a number of ApexSQL products, such as ApexSQL Diff or ApexSQL Build, to synchronize databases and repositories by a label or even deploy databases from labels. We support labels for Git, Mercurial, Subversion, TFS, Visual Studio Online and Perforce.


In the next article, we will describe some additional advantages of ApexSQL Source Control over other tools.

February 19, 2015