Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Перенос таблицы из одной БД в другую  [new]
SlipOFFsky
Member

Откуда:
Сообщений: 8
Здравствуйте.

Очень нужна помощь вот в каком вопросе..

Имеется:
MSSQL 2008 R2
БД 2 штуки.Назовем база А и база В Полностью одинаковые по структуре. В них есть таблицы user

user A
id|humanid|alias|
1.|12.........|abc.|
2.|18.........|def.|
3.|28.........|ghj.|

user B
id|humanid|alias|
1.|20.........|qwe.|
3.|23.........|asd.|
4.|26.........|zxc.|
5.|34.........|wsx.|
7.|35.........|edc.|

Необходимо, чтобы таблица user A имела вид:

id|humanid|alias|
1.|20.........|qwe.|
3.|23.........|asd.|
4.|26.........|zxc.|
5.|34.........|wsx.|
7.|35.........|edc.|

т.е. заполнена вместо своих данных, данными таблицы из второй базы.

пробовал:

SET IDENTITY_INSERT [user] ON
GO
insert into [user] SELECT [id]
,[humanid]
,[alias]
FROM [База В].[dbo].[user]
GO

Получаю ошибку: Значение столбца идентификаторов в таблице "user" может указываться явно только при использовании списка столбцов и когда IDENTITY_INSERT установлен в ON.

пробовал очищать таблицу user А и делать:

insert into [user] SELECT
[humanid]
,[alias]
FROM [База В].[dbo].[user]

Так работает, НО id продолжаются с последнего удаленного, т.е. идут 4,5,6,7, а не так как надо. Если делать инсерт включая id, то получаю ошибку выше.

Экспортом данных тоже не получилось, говорит Не могу записать данные в поле id предназначенное только для чтения.. Как же быть с этим полем id ? И как все это правильно перекинуть ? т.к. в этих таблицах 13 столбцов. Остается вариант с update с inner joinом по id, совпадающие по id записи проапдейтить, остальные инсертом дописать, и делитом понаделать дырок в поле id...

Может есть еще варианты ?
15 май 13, 20:02    [14301791]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы из одной БД в другую  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ну так прочитайте текст ошибки, там все написано, что надо делать.
15 май 13, 20:07    [14301811]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы из одной БД в другую  [new]
Гость333
Member

Откуда:
Сообщений: 3683
SlipOFFsky
пробовал:

SET IDENTITY_INSERT [user] ON
GO
insert into [user] SELECT [id]
,[humanid]
,[alias]
FROM [База В].[dbo].[user]
GO

Может есть еще варианты ?

Теперь так попробуйте:
SET IDENTITY_INSERT [user] ON

insert into [user] ([id], [humanid], [alias])
SELECT [id]
      ,[humanid]
      ,[alias]
FROM [База В].[dbo].[user]
GO  
15 май 13, 20:08    [14301814]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы из одной БД в другую  [new]
SlipOFFsky
Member

Откуда:
Сообщений: 8
Гость333, спасибо большое!

Гавриленко Сергей Алексеевич
, так в том то и дело, что читал ))) Только воспринял не правильно. Т.к. изначально делал:

автор
SET IDENTITY_INSERT [user] ON
GO
insert into [user] SELECT *
FROM [База В].[dbo].[user]
GO


И подумал что он в селекте хочет указания столбцов, а не в инсерте )))

Еще раз спасибо !
15 май 13, 23:03    [14302385]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить