The only way to truncate a table with foreign key constraints is to delete the foreign keys before doing the truncation. After the data is truncated, the indexes need to be recreated. It is not possible to truncate a table that has foreign key constraints. The truncate statement should be written to remove the constraints, then the table should be truncated, and finally the constraints should be re-created.
When dealing with large tables, it is preferable to do a truncation instead of a deletion, since a truncation is minimally recorded and much faster. However, disabling restrictions is not enough. A script needs to be prepared in order to do this. It is not possible to truncate a table that has a foreign key constraint, which is why it has a constraint.
Before truncating, the foreign key constraint needs to be deleted and recreated afterwards. Additionally, the TRUNCATE action is logged, but it is not the same way as the DELETE action. It can be undone in a transaction with the page record. In order for the table truncation to be successful after removing all foreign key constraints that refer to it, it is necessary to disable the constraints on the child table first.
Then, the master table can be truncated. If you want an automated process for your truncation, you would have to find a way to store create statements, execute drop constraint statements, truncate your table, and then execute create statements again. In conclusion, it is not possible to truncate a table that has foreign key constraints. The only way to do it is by deleting and recreating the constraints before and after the truncation.