Appearance
General
Is there a demo version of VersionSQL?
Yes! Download VersionSQL. Your 15-day free trial starts with your first commit. No credit card required.
What other software do I need to be able to use VersionSQL?
In order to use VersionSQL to commit your database code to version control, you need:
Installed on your computer:
- SQL Server Management Studio 2012 or newer
- VersionSQL
Available on your computer, local network, or cloud-hosted:
- A SQL Server instance with at least one database
- This could be SQL Server Express, SQL Server Enterprise, SQL Azure, etc.
- A version control system, with a project repository created and initialized.
- There are a plethora of options available here. Some of the more popular examples include Azure DevOps, BitBucket, GitHub, GitLab, and VisualSVN. This system will give you an https repository path to supply to VersionSQL.
- You probably already have a version control system available for versioning software code. VersionSQL can commit SQL side-by-side in a repository with existing code if you so choose.
- Click here for more information on version control
Can I install VersionSQL silently?
Yep, just like other MSIs VersionSQL supports doing a silent install (or uninstall) via command-line switch. Append /quiet to run the operation without displaying any user interface.
For example:
To install silently:
VersionSQL_Setup.msi /quietTo uninstall silently:
msiexec /x VersionSQL_Setup.msi /quiet
DANGER
Important: Silent installation must be run from an elevated command prompt. Silent installs using an account without administrator permissions will fail silently.
Can I run VersionSQL in a locked-down environment?
Yes. Registration is handled via an encrypted keyfile supplied upon purchase. There's no online activation required.
Is VersionSQL FIPS compliant?
Yes, VersionSQL complies with the Federal Information Processing Standard (FIPS) and can be run on computers with FIPS compliance enforced.
Will VersionSQL continue if it runs into an error?
Whether VersionSQL can ignore the error and continue depends on where the error occurred. If the error occurs while comparing object contents (for instance, if an object is encrypted), it'll display an error but continue on. The commit and push operation itself is atomic (all or nothing), so an error during commit or push stops everything.
Can VersionSQL connect to local repositories?
VersionSQL supports connecting to remote repositories (like GitHub) as well as locally-hosted bare git repos ("git --bare init") and local working copies.
For local working copies, choose the "Folder" repository type and the appropriate post-commit command when setting up a connection.
Where is VersionSQL's error log stored?
VersionSQL's error log file is saved to %LOCALAPPDATA%\VersionSQL\logs(in other words, C:\Users[username]\AppData\Local\VersionSQL\logs)
Where is the VersionSQL Menu in SSMS21?
SQL Server Management Studio 21 hides new extension menus by default. Follow these steps once to make the VersionSQL menu appear.
- Launch SSMS 21.
- Open Extensions → Customize Menu...
- In the list, clear the checkbox next to VersionSQL to un-hide the menu.
- Click Save and Restart.
After SSMS restarts you will see the familiar VersionSQL top-level menu.


What local files does VersionSQL create?
VersionSQL reads and writes files in a few locations:
- Application binaries are stored in Program Files
- Application settings, logs, and some temporary files are kept in
%localappdata% - Short-lived temporary files (e.g. diffs) are created in the Windows temp folder, then deleted after use
- SQL scripts are written to the specified path if you select the
Folderrepository type.
Additionally, VersionSQL will scan the locations of known diff and merge tools in order to auto-configure diff and merge settings.
Where is VersionSQL made?
VersionSQL is made in the USA.
Can I choose to commit only stored procedures?
Yes, each database object type can be committed independently by right-clicking on e.g. the Stored Procedures folder and selecting Commit.
Can I commit multiple objects at once?
You can commit multiple objects by right-clicking on either the folder or database level and selecting "Commit", then unchecking items you don't want committed from the list.
Does VersionSQL write to the database?
No, VersionSQL only writes to the source control repository and local files. All database operations are read-only.
How does VersionSQL handle SQL Server Availability Groups?
VersionSQL uses the VIEW SERVER STATE permission to identify whether the target server is part of a Sql Server Always On Availability Group or Cluster. If it is, VersionSQL uses the name of the availability group in the committed files' folder structure instead of the name of the individual server to which it is connected.
This can be disabled from the VersionSQL->Settings menu, Advanced tab, by unchecking Replace server name with Availability Group name, if present.
How does VersionSQL work when everyone has their own instance of SQL Server (dedicated database development model)?
By default, VersionSQL uses the SQL Server computer's name as the repository's root folder. In a dedicated development model, each developer has a separate SQL Server. Their commits go into separate folders, such as user1_pc_name and user2_pc_name.
To commit every developer's database to the same repository folder, untick Include server name and instance name in path in each connection's Advanced Options.
How does VersionSQL work when everyone uses the same central database (shared database development model)?
In a shared development model, everyone connects to the same SQL Server. By default, VersionSQL uses that computer's name as the repository's root folder. Everyone's commits update the same files in that folder, so the repository mirrors the shared database.
If you also use separate developer instances, you can commit them to the same repository folder. Untick Include server name and instance name in path in each connection's Advanced Options.
Is VersionSQL able to generate a list of all of the objects that have been changed since the last commit was made?
Yes, when you run the commit operation against the database or a folder within it, VersionSQL will pull up a list of changed objects that lets you see changes and decide which to commit.
How do I get cool themes in SQL Server Management Studio?
It's a secret to everybody. 🔥 😎 🔥 💎 Themes for SQL Server Management Studio
Can VersionSQL run in CI/CD?
VersionSQL is not a CI/CD tool, and CI/CD is not on the roadmap. Schema Compare generates deployment scripts that you can run yourself. The headless CLI for commits and schema comparison is in beta. Email me for details.
How do I make sure everything is committed?
Security objects are opt-in today, so turn them on. Link the static data you want to include. Connect SQL Server Agent separately. Use Commit Entire Instance so that you do not forget a database. It processes connected databases and skips those not connected to version control.
If you forget to commit, set up scheduled commits. SSMS must stay open and connected for scheduled commits.
Does history record every change to a shared database?
History records committed states and commit metadata. It doesn't capture every intermediate edit or establish who originally made each database change. See History of Changes.
What does Undo restore?
Undo generates a script from any revision for you to review and run. Keep database backups for transactional-data recovery. See Undo Script Generation.
Can I use CREATE OR ALTER?
Yes. Enable it for supported procedures, views, functions, and triggers in scripting settings.
Does VersionSQL show which objects have uncommitted changes in Object Explorer?
Use Scan for Uncommitted Changes or start a commit to see the list of changed objects. Object Explorer status icons are under consideration. Email me to join the waitlist.
Doesn't SSMS already do this?
SSMS's Database DevOps preview provides a SQL-project workflow, while VersionSQL commits selected database content directly from Object Explorer to Git, Subversion, or TFVC. Compare the workflows before choosing.