SQL Server - Migration script testing - Refresh table definition manually without dropping it
One approach that works (only if there are no foreign keys referring to the table) is to create a backup of the original table with its original data.

Before starting to test the migration:


Grab a copy of the old table definition to define a copy of it, with a unique name (e.g. append "_bak" to the table name) and all named constraints (using sp_rename on just the table name will not automatically update named constrains).
SET IDENTITY_INSERT [bak] ON
Write a simple INSERT INTO [bak] (\every column\) SELECT \every column\ FROM [original] (the column list must be specified, otherwise you will get error 8101 for not explicitly writing out the identity column (why?))
SET IDENTITY_INSERT [bak] OFF


Note 1: Make sure to not enable the advanced SSDT publish option "drop objects in target not in source" or this table will get dropped if you publish.

Note 2: Computed columns must not be included in the \every column\ list.

Then each time you want to revert the table definition and populate it with the preexisting records:


DROP TABLE [target]
Copy the original table definition and run that CREATE TABLE ... code
SET IDENTITY_INSERT [target] ON
INSERT INTO [target](\every column\) SELECT \every column\ FROM [bak]
SET IDENTITY_INSERT [target] OFF


This is still far too manual of a process however (and breaks on foreign keys).