SQL Server 2016 is the first SQL Server version that has some built-in support for temporal data. However, even in SQL Server version 2017, the support is still quite basic. SQL Server 2016 and 2017 support system-versioned tables only. You have seen at the beginning of this chapter that application versioned tables, and of course bitemporal tables, add much more complexity to temporal problems. Unfortunately, in order to deal with application validity times, you need to develop your own solution, including your own implementation of all constraints, on which you need to enforce data integrity. In addition, you need to deal with the optimization of temporal queries by yourself as well.
In SQL Server 2017, you can define the retention period for historical rows. Therefore, you do not have to do the history data cleanup by yourself, like you...