Вставка данных из одной таблицы в другую, но в другую базу данных - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть две базы данных, которые содержат все те же таблицы.Поэтому я пытаюсь скопировать данные из одной таблицы в одной базе данных в ту же таблицу в другой базе данных.

Я получаю эту ошибку «В базе данных уже есть объект с именем PayComponents».

Не уверен в другом способе достижения того, чего я хочу

SELECT * INTO [PSD2394].DBO.PayComponents
FROM [PSD1346].DBO.PayComponents
WHERE PCompID != 1 AND PCompID != 2

Ожидаемый результат - Все записи из БД - PSD1346, за исключением случаев, когда PCompID = 1 и 2 вставлены в таблицу PayComponents в БД- PSD2394

1 Ответ

1 голос
/ 09 апреля 2019

SELECT INTO будет каждый раз создавать новую таблицу, если это то, что вам нужно, вам нужно сначала удалить эту таблицу.

Чтобы добавить в существующую таблицу, вам нужно использовать INSERT INTO SELECT, как в этом примере

INSERT * INTO [PSD2394].DBO.PayComponents (column names...)
SELECT pc.column names...
FROM   [PSD1346].DBO.PayComponents pc
WHERE  pc.PCompID != 1 
AND    pc.PCompID != 2

Если первичный ключ [PSD2394].DBO.PayComponents является полем идентификации, вы не можете его скопировать, поскольку база данных не позволит вам записать собственное значение в поле идентификации.
Если вам это действительно нужно, попробуйте это

SET IDENTITY_INSERT [PSD2394].DBO.PayComponents ON

do the insert statement here...

SET IDENTITY_INSERT [PSD2394].DBO.PayComponents OFF
...