• This says it all: An explicit value for the identity column in table 'table name' can only be specified when a column list is used and IDENTITY_INSERT is ON.

    Looks like some of the tables your are trying to insert data into have identity columns.  If you want those to have the same value as the source tables, you need to turn IDENTITY_INSERT ON for those tables and, yes, you need to include a list of the columns as well.  If you want the identity field to have new values, then you need to list all the columns you want transfered in both theinsert into and the select from.

    Sorry, but that's the way it is.