We are deploying our database model (vs db project) to several customers via a setup routine. Internally a dacpac process is responsible for the upgrade process, if an already existing installation will be upgraded.
Our customers uses
SQL Server 2012 up to
SQL Server 2017, but our codebase has to maintain the least common feature. eg.
STRING_SPLIT isn't useable, because it was introduced in
SQL Server 2016.
My idea is to have target specific
T-SQL funtions which are deployed depending on their target system. If target system equals
SQL Server 2016, than
STRING_SPLITT, else self made solution is taken.