Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.01.2016, 12:35
Maxjuvefan Maxjuvefan вне форума
Прохожий
 
Регистрация: 24.08.2015
Сообщения: 30
Версия Delphi: delphi 2010
Репутация: 10
По умолчанию Перенос данных из одинаковых таблиц разных баз данных

Всем привет! У меня такой вопрос - есть 2 базы данных, в которых некоторые таблицы совпадают. Одна база находится на локальном компьютере, другая на сервере. На локальном компьютере есть база данных c более полной таблицей phone, нужно скопировать данные из этой таблицы и перенести их в точно такую же таблицу phone в базу данных, расположенную на сервере, то есть обновить ее, внести недостающие данные.

Для эксперимента я создал на локальном две маленькие базы, bd1 и bd2 с одинаковой таблицей phone и попытался перенести данные из bd2 в bd1:

insert bd1.dbo.Phone select * from bd2.dbo.Phone

Sql server 2008 выдал такую ошибку:

Значение столбца идентификаторов в таблице "bd1.dbo.Phone" может указываться явно только при использовании списка столбцов и когда IDENTITY_INSERT установлен в ON.

Кто чем может помочь?
Ответить с цитированием
  #2  
Старый 11.01.2016, 18:23
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,056
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

1. неправильный синтаксис команды.
Код:
insert INTO DestTable select * from SourceTable
2. Возможны проблемы с автоинкрементным полем/первичным ключем. Тогда придется вставлять с перечислением всех колонок.
3. Вообще это все не сильно поможет, если БД на разных компах. Все-равно придется "переливать" вручную (ЗЫ. Знаю, что у MS есть что-то типа Oracle'овского DB-Link, но его настраивать замучаешься, проще маленькую программку написать в случае, когда такую синхронизацию надо делать постоянно).
4. Что тебе надо? Варианты:
а) Просто "перезалить" таблицу целиком один раз
б) "Перезаливать" таблицу целиком периодически
в) Один раз синхронизировать таблицы (т.е. добавить отсутствующие записи)
г) Периодически синхронизироваь таблицы
Для каждого из вариантов будет свое решение.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:26.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter