I’ve preached the value of Version Control Systems (VCS) for many years now. In various writings, in the talks I’ve given on development, CI, DevOps, and more, I always talk about the value of a VCS. One thing I often say is that if someone won’t use version control, they aren’t a professional. I don’t say professional developer, professional DBA, or anything else. You’re not a technology professional without knowing how to use a VCS in 2020. You certainly can’t work for me if you won’t use one.
I saw a nice, short post from Kevin Chant on the ways in which a SQL Server professional can benefit from a VCS. Many of us working with SQL Server aren’t developers, we may not be some DevOps engineer. We might be someone that manages systems or handles backups. We might be someone that deals with complex HA, DR, or replication processes. We may be report writers or ETL developers.
In all those cases, we have scripts, and these days, the majority of us need to work with others and often share these scripts with a team. We need to update the code over time, and we need to ensure that if anyone edits the code, we know what was changed. In other words, we need versioning, and we certainly need some easy way of sharing things.
There are lots of choices, but there’s no downside to using a VCS and lots of upside. Changes are you have some VCS in your organization and adding another repo (database) of code is easy. I recommend git, but really, I think Subversion, TFS, Perforce, VCS, Vault, Mercurial, etc. are all fine. Even Visual Sourcesafe (VSS) works, though I’d say you could do better at a lower cost these days.
Outside of becoming better at SQL coding, I think learning to use a VCS and becoming comfortable with it is a core skill for a tech professional. You can get git for free, and it’s easy to learn. I’ve written some basics on my blog and SQLServerCentral. There are plenty of tutorials out there (I like Atlassian), and you can even practice skills online. Do yourself a favor and become a better professional today. Start using a VCS for all your scripts and code.