2011-04-01 10 views
5

En SQL Server 2008, ¿es posible insertar datos de una tabla fuente en una tabla dest y actualizar la tabla fuente con @@ identity desde la tabla dest al mismo tiempo?Insertar en dest y actualizar fuente

Ejemplo

Tabla Fuente:

Id - UniqueId 
Name - varchar(10) 
RealId [null] - int 

Tabla Dest

Id - [id] INT identity 
Name - varchar(10) 

quiero transferir filas de la Fuente en Dest, y actualizar el RealId a la @@ valor de identidad de la Tabla de destino

Puedo modificar la fuente de cualquier manera que me guste, la tabla Dest no puede ser alterada.

¿Cuáles son mis mejores opciones aquí?

También tenga en cuenta que la columna "Nombre" puede contener duplicados, por lo que realmente no puedo unirme a eso.

(Las tablas reales son mucho más complejos, pero esto debe darle una idea de lo que quiero)

+1

Primer comentario: use 'SCOPE_IDENTITY()' en lugar de '@@ Identity' - es más seguro y más fiel a lo que realmente está buscando. Segundo: si quiere insertar en dest y luego actualizar fuente, necesita tener ** algún ** campo que sea el mismo en ambos - si 'name' no puede hacerlo, entonces necesita algo más, p. 'SourceId' en la tabla' Dest' o algo así. –

Respuesta

Cuestiones relacionadas