Как вставить значения таблицы из одной базы данных в другую базу данных? - PullRequest
69 голосов
/ 17 августа 2010

Я хочу, чтобы запрос вставлял записи из одной таблицы в другую таблицу в другой базе данных, если таблица назначения уже существует, он должен добавить записи в конец таблицы.

Ответы [ 8 ]

124 голосов
/ 17 августа 2010

Как насчет этого:

USE TargetDatabase
GO

INSERT INTO dbo.TargetTable(field1, field2, field3)
   SELECT field1, field2, field3
     FROM SourceDatabase.dbo.SourceTable
     WHERE (some condition)
26 голосов
/ 07 января 2014

Как вставить табличные значения с одного сервера / базы данных в другую базу данных?

1 Создание связанных серверов {если необходимо} (SQL Server 2008 R2 - 2012) http://technet.microsoft.com/en-us/library/ff772782.aspx#SSMSProcedure

2 настройка связанного сервера для использования учетных данных a) http://technet.microsoft.com/es-es/library/ms189811(v=sql.105).aspx

EXEC sp_addlinkedsrvlogin 'NAMEOFLINKEDSERVER', 'false', null, 'REMOTEUSERNAME', 'REMOTEUSERPASSWORD'

- ПРОВЕРЬТЕ СЕРВЕРЫ

SELECT * FROM sys.servers

- ИСПЫТАТЬ СВОБОДНЫЕ СЕРВЕРЫ

EXEC sp_testlinkedserver N'NAMEOFLINKEDSERVER'

ВСТАВИТЬ В НОВЫЙ ЛОКАЛЬНЫЙ СТОЛ

SELECT * INTO NEWTABLE
FROM [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE

ИЛИ

ВСТАВИТЬ КАК НОВЫЕ ЗНАЧЕНИЯ В УДАЛЕННЫЙ СТОЛ

INSERT
INTO    [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE
SELECT  *
FROM    localTABLE

ВСТАВИТЬ В НОВЫЙ МЕСТНЫЙ СТОЛ1027 *

INSERT
INTO    localTABLE
SELECT  *
FROM    [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE
9 голосов
/ 12 октября 2015

Вот быстрый и простой метод:

CREATE TABLE database1.employees
AS
SELECT * FROM database2.employees;
6 голосов
/ 04 апреля 2018
    --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. */
6 голосов
/ 19 августа 2015

Вы можете попробовать

Insert into your_table_in_db1 select * from your_table_in_db2@db2SID 

db2SID - это sid другой БД.Он будет присутствовать в файле tnsnames.ora

1 голос
/ 17 августа 2010
INSERT
INTO    remotedblink.remotedatabase.remoteschema.remotetable
SELECT  *
FROM    mytable

В реляционных базах данных не существует понятия "конец таблицы".

0 голосов
/ 23 мая 2019

Просто сделай это .....

(Это создаст ту же структуру таблицы, что и из таблицы, как в таблицу с теми же данными)

 create table toDatabaseName.toTableName as select * from fromDatabaseName.fromTableName;
0 голосов
/ 03 февраля 2019

Если обе таблицы имеют одинаковую схему, используйте этот запрос: вставить в database_name.table_name выберите * из new_database_name.new_table_name где = 'условие'

Замените database_name именем вашей первой базы данных, а table_name - именем таблицы, из которой вы хотите скопировать также замените new_database_name на имя вашей другой базы данных, куда вы хотите скопировать, а new_table_name - это имя таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...