I have just gone through this - here are some of my notes, and the final procedure I decided to use.
NOTES:
If you select “Copy Tables…”, then drop the table, it may not be created the same (ie. No identity column, no primary key). So, the better selections are to select “Copy Objects…” or “Copy Tables…” and delete the data in the old table before copying(the identity values are copied over from the source table, interestingly). If you copy tables, you have to set the transformations for each table. If you copy objects, you only select the transformation options one time.
If you select "Copy Objects..." and you go with defaults on the "Select Objects To Copy" screen, will fail if users already exist – can’t add them. Must un-check “Copy all objects” and “Use default options”.
Procedure that seems to work
1. If you delete the data in the target tables, then use DTS to copy from the source, even the Identity column values are copied correctly. Problems occur if you drop a target table, then copy tables over.
2. Load the query DeleteAllTables into Transact SQL window. Load Enterprise manager. (I created this query to delete all the data from each table I want to transfer).
3. In Enterprise manager, right click on target database, and select All Tasks – Import Data. Click Next, and select the Source and target databases.
4. Select “Copy Objects and Data…” and click next.
5. Uncheck “Copy All Objects” and “Use Default Options”.
6. Click On select objects. Select all the tables that will be deleted by DeleteAllTables query. Click OK.
7. Click on Options. Uncheck “Copy Database Users…”. Click OK.
8. Don’t Uncheck “Drop Destination Objects First”. Click Next.
9. Run DeleteAllTables query.
10. Finish running the DTS routine in Enterprise Manager – all tables are transferred.