How do I add a constraint after I've truncated a table? I am writing a script. The purpose of this script is to


Get all foreign key constraints on a database.
Truncate a table.
Re-Add the foreign key constraints that were removed.


I'm having trouble adding the constraints again [step 3] and I believe this is to do with the fact that my constraint conflicts with what is available. The data initially is...

authors table

1   Kenneth Graham  k.graham@twitw.com


books table

1   The wind in the willows Classic childrens story about woodland animals  123456


Authorbooks table

1   1   1


I have the following constraints on the authorbooks tables:

ALTER TABLE [dbo].[AuthorBooks]  WITH CHECK ADD  CONSTRAINT [FK_Books_Author_xref_Books] FOREIGN KEY([BookId])
REFERENCES [dbo].[Books] ([ID])
GO
ALTER TABLE [dbo].[AuthorBooks]  WITH CHECK ADD  CONSTRAINT [FK_Books_Author_xref_Authors] FOREIGN KEY([AuthorId])
REFERENCES [dbo].[Authors] ([Id])
GO


So when I try and add the constraints I get the following error:


  The ALTER TABLE statement conflicted with the FOREIGN KEY constraint
  "FK_Books_Author_xref_Authors". The conflict occurred in database
  "PeteDb", table "dbo.Authors", column 'Id'.


Is there any way around this and being able to add the constraint in regardless?
Use WITH NOCHECK instead of WITH CHECK to add a constraint that conflicts with existing data. https://stackoverflow.com/questions/529941/whats-the-difference-between-with-check-add-constraint-followed-by-check-constr

Perhaps you are getting the error because you "2. Trucate a table." and not all of them? Maybe you are removing the Authors or the Books and are leaving the records in AuthorBooks that references these other tables.