salve,
fededi ha scritto:
Dunque, se ho capito, un campo Identity di per se non garantisce una serie univoca di valori, ma se il campo e' implicato in una chiave primaria oppure una chiave univoca, allora i valori generati sono univoci, giusto?
corretto :)
Riassumendo, puo' l'esecuzione di uno script duplicare il contenuto di un campo identity preesistente? L'esecuzione della SELECT INTO (da tabella originaria a tabella d'appoggio) puo' duplicare nella tabella di destinazione dei valori che non lo erano nella tabella d'origine?
tecnicamente, un'operazione
SELECT INTO tabella_con_identity FROM altra_tabella
NON puo' generare problemi, sempre che non venga proiettata anche una valorizzazione per la colonna identity, cosa che tra l'altro richiede anche l'impostazione di SET IDENTITY_INSERT ON/OFF prima della sua esecuzione...
poi dipende come si opera... parli di una tabella temporanea di staging...
se anche questa contiene una colonna con identity, la tua operazione
SELECT INTO tabella_staging_con_identity
FROM tabella_originale_con_identity
WHERE x = y;
ovviamente i tuoi dati originali saranno inseriti nella nuova tabella temporanea con degli Id potenzialmente diversi, sia per l'eventuale filtro applicato, sia per l'eventuale parallelizzazione della proiezione del risultato... tu non proietti anche l'ID, e questa viene assegnata al momento dell'effettivo nuovo inserimento... quindi... dipende cosa fa lo script "incriminato" :)
saluti