как переместить запись из одной базы данных в другую базу данных - PullRequest
0 голосов
/ 21 марта 2020

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

CREATE TABLE #emp
(
empID INT IDENTITY(1, 1) primary key ,
Firstname varchar(20)
);

CREATE TABLE #empRates
(
ID INT IDENTITY(1, 1) primary key ,
empid int, -- foreign key from #emp
rate decimal(10,3),
startdate datetime,
enddate datetime,
);
insert into #emp (firstname) values('First')
insert into #emp (firstname) values('Second')
insert into #emp (firstname) values('Third')

insert into #empRates(empid,rate,startdate,enddate) values(1,10,'2020/01/10','2020/01/20')
insert into #empRates(empid,rate,startdate,enddate) values(1,15,'2020/01/20','2020/01/30')

insert into #empRates(empid,rate,startdate,enddate) values(2,10,'2020/01/10','2020/01/20')
insert into #empRates(empid,rate,startdate,enddate) values(3,15,'2020/01/20','2020/01/30')


select * from #emp
select * from #empRates

drop table #emp
drop table #empRates

Здесь обе базы данных на одном сервере. База данных1 и База данных2. ниже моего запроса, который пытался.

insert into database2..empRates(empid,rate,startdate,enddate) select empid,rate,startdate,enddate 

из базы данных1..empRates

Здесь моя проблема состоит в том, что обе базы данных имеют разные записи, поэтому идентичность отличается, поэтому после вставки отображаются другие ставки сотрудников для другой, как пюре. Я использую sql server 2012. Можете ли вы указать способ.

1 Ответ

0 голосов
/ 21 марта 2020

Вы должны взглянуть на этот пост -> Как включить и выключить IDENTITY_INSERT с помощью SQL Server 2008?

Таким образом, вы можете указать значение для столбца id во время вставьте, поэтому строки в целевых базах данных сохранят идентификаторы от источника.

Надеюсь, это поможет!

...