La declaración SELECT...INTO [new_table_name]
admite un máximo de 2 prefijos: [database].[schema].[table]
NOTA: es más performante para extraer los datos a través del enlace usando SELECT INTO
vs al presionarlo usando INSERT INTO
:
SELECT INTO
se registran mínimamente.
SELECT INTO
no inicia implícitamente una transacción distribuida, por lo general.
Digo normalmente, en el punto # 2, porque en la mayoría de los escenarios, una transacción distribuida no se crea implícitamente al utilizar SELECT INTO
. Si un rastreo del generador de perfiles indica que SQL Server aún está creando implícitamente una transacción distribuida, primero puede SELECT INTO
una tabla temporal, para evitar la transacción distribuida implícita, luego mover los datos a su tabla de destino desde la tabla temporal.
push pull vs Ejemplo
En este ejemplo estamos copiando los datos de [server_a] a [server_b] través de un enlace.En este ejemplo se asume ejecución de la consulta es posible desde ambos servidores:
empuje
lugar de conectarse a [server_a] y empujando los datos a [server_b]:
INSERT INTO [server_b].[database].[schema].[table]
SELECT * FROM [database].[schema].[table]
Tire
Conectar a [server_b] y extraer los datos de [server_a]:
SELECT * INTO [database].[schema].[table]
FROM [server_a].[database].[schema].[table]
enlace está roto. – ketura
gracias, enlace revisado – richaux