Quiero una consulta para insertar registros de una tabla a otra tabla en una base de datos diferente si la tabla de destino ya existe, debería agregar los registros al final de la tabla.
Quiero una consulta para insertar registros de una tabla a otra tabla en una base de datos diferente si la tabla de destino ya existe, debería agregar los registros al final de la tabla.
Respuestas:
Qué tal esto:
USE TargetDatabase
GO
INSERT INTO dbo.TargetTable(field1, field2, field3)
SELECT field1, field2, field3
FROM SourceDatabase.dbo.SourceTable
WHERE (some condition)
¿Cómo insertar valores de tabla de un servidor / base de datos a otra base de datos?
1 Creación de servidores vinculados {si es necesario} (SQL Server 2008 R2 - 2012) http://technet.microsoft.com/en-us/library/ff772782.aspx#SSMSProcedure
2 configure el servidor vinculado para usar Credenciales a) http://technet.microsoft.com/es-es/library/ms189811(v=sql.105).aspx
EXEC sp_addlinkedsrvlogin 'NAMEOFLINKEDSERVER', 'false', null, 'REMOTEUSERNAME', 'REMOTEUSERPASSWORD'
- VER SERVIDORES
SELECT * FROM sys.servers
- PRUEBA DE SERVIDORES VINCULADOS
EXEC sp_testlinkedserver N'NAMEOFLINKEDSERVER'
INSERTAR EN LA NUEVA MESA LOCAL
SELECT * INTO NEWTABLE
FROM [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE
O
INSERTAR COMO NUEVOS VALORES EN TABLA REMOTA
INSERT
INTO [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE
SELECT *
FROM localTABLE
INSERTAR COMO NUEVOS VALORES DE TABLA LOCAL
INSERT
INTO localTABLE
SELECT *
FROM [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE
--Code for same server
USE [mydb1]
GO
INSERT INTO dbo.mytable1 (
column1
,column2
,column3
,column4
)
SELECT column1
,column2
,column3
,column4
FROM [mydb2].dbo.mytable2 --WHERE any condition
/*
steps-
1- [mydb1] means our opend connection database
2- mytable1 the table in mydb1 database where we want insert record
3- mydb2 another database.
4- mytable2 is database table where u fetch record from it.
*/
--Code for different server
USE [mydb1]
SELECT *
INTO mytable1
FROM OPENDATASOURCE (
'SQLNCLI'
,'Data Source=XXX.XX.XX.XXX;Initial Catalog=mydb2;User ID=XXX;Password=XXXX'
).[mydb2].dbo.mytable2
/* steps -
1- [mydb1] means our opend connection database
2- mytable1 means create copy table in mydb1 database where we want
insert record
3- XXX.XX.XX.XXX - another server name.
4- mydb2 another server database.
5- write User id and Password of another server credential
6- mytable2 is another server table where u fetch record from it. */
Si ambas tablas tienen el mismo esquema, utilice esta consulta: insertar en nombre_base_datos.nombre_tabla seleccione * de nombre_base_datos nuevo.nombre_tabla_nuevo donde = 'condición'
Reemplace database_name con el nombre de su primera base de datos y table_name con el nombre de la tabla desde la que desea copiar también reemplace new_database_name con el nombre de su otra base de datos donde desea copiar y new_table_name es el nombre de la tabla.
Simplemente hazlo.....
(Creará la misma estructura de tabla que la de la tabla que la tabla con los mismos datos)
create table toDatabaseName.toTableName as select * from fromDatabaseName.fromTableName;
Para SQL Server, puede utilizar la herramienta Importar datos de otra base de datos. Es más fácil configurar las columnas de asignación.
Principalmente necesitamos este tipo de consulta en el script de migración.
INSERT INTO db1.table1(col1,col2,col3,col4)
SELECT col5,col6,col7,col8
FROM db1.table2
En esta consulta, el recuento de columnas debe ser el mismo en ambas tablas