Ikke at jeg kender vildt meget til DTS - generelt vil jeg anbefale at udgå at benytte det hvis man har et alternativ!
Det jeg har fundet ud af er, at DTS er ikke specielt smart; Når du vælger at overskrive eksisterende data bliver der udført en trunkering - åbenbart uanset om der er data i tabellen eller ej. Og TRUNCATE TABLE kan ikke udføres på tabeller der har constraints (fremmednøgler) - se Books Online. Fordelen ved slavisk at trunkere er, at alt kan foretages som INSERTs fremfor en blanding af INSERTs og UPDATEs.
DTS gør faktisk det, at den tager samtlige tabeller i oprettelses-rækkefølge, disabler constraints, trunkerer tabeller, flytter data for hver tabel enkeltvis (dvs at alle tabeller ikke læses og flyttes som en enkelt transaktion, men som en transaktion pr tabel) og lægger constraints på igen.
Dvs den forsøger ikke at opløse et fremmednøgle-hierarki og efter flytning kan man komme ud for, at der ikke længere er referentiel integritet i databasen. DTS har så også haft problemer med mange lange rækker - det skulle vist være løst nu efter SP2, men... jeg stoler personligt ikke helt på DTS...
Mere kan jeg nok ikke rigtig byde på med forklaring om DTS... Du vil kunne finde noget - whitepapers etc - på
www.microsoft.com/sql