Putting multiple databases under source control can take a long time for one user, let alone all the members of a team. Having a solution that involves one user linking databases from a single machine, allowing the rest of the team to “import” these settings would save a lot of time.
The team must use a shared SQL Server instance which hosts all the databases that need to be linked. The solution requires a separate SQL Server Management Studio instance, installed on each local machine.
All users must have unique credentials for accessing the repository, and only one source control system (i.e. Git) must be used. This will not work in cases when databases from a shared server are linked to different source control system repositories where users have different credentials.
It is mandatory that at least one user links all databases, so the rest of the team can use the connection information.
The first step is covered in the article that explains how to link a database to source control.
After the first user links all databases from a local machine, the complete settings can be transferred to any other instance of SQL Server Management Studio on other user’s machines, which has ApexSQL Source Control installed.
The Options.xml file must be shared across the team to be available for importing on a local machine of each team member.
A requirement for importing connections is that all users connect in the same way to the shared SQL server instance as the first user did. For example, if SQL Server name is DevServer, or if it is specified over the IP address, all developers must specify a name when connecting through local SQL Server Management Studio.
It is a necessary step to restart SQL Server Management Studio after importing shared connection information from the add-in options.
Q: What if I have databases linked in the shared model on another repository where I need different credentials?
Q: What if different users connected to the same SQL Server in a different way?
A: To import shared connections identical server naming is required across the team.