На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

Наиболее часто задаваемые вопросы:
Базы даных для начинающих. Первые шаги. Понятие о BDE.
Переход на клиент-сервер и начала ADO
Приёмы работы с BLOB (OLE/Memo) полями
Запросы и параметры или как избавиться от многих проблем. Проблемы с датами в запросах.
Нужели мне нужно устанавливать BDE? (или почему не работает программа на другом компьютере)
Модераторы: Bas, Rouse_
  
> Перенос данных из одинаковых таблиц разных баз данных , Нужно скопировать недостающие данные из таблицы одной бд и перенести их в такую же таблицу другой бд
    Всем привет! У меня такой вопрос - есть 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.

    Кто чем может помочь?
      Видать есть поля с типом IDENTITY и они разные для одного и того же телефона.
      1.Удалите записи в таблицы и вставьте новые, но есть риск нарушить целостность данных.
      2.Добавлять только те телефоны которых нет в таблице приемнике.
        Цитата maxjuvefan @
        попытался перенести данные из bd2 в bd1:
        ExpandedWrap disabled
          insert bd1.dbo.Phone select * from bd2.dbo.Phone

        Попытайтесь сделать нормально, а не тяп-ляп - перечислите вставляемые поля в секции INSERT и выбираемые в секции SELECT, исключив IDENTITY поля, есссно. Это как минирмум.
        А по уму - используйте MERGE.
          Цитата Akina @
          MERGE.

          Все забываю что она есть в MS тоже.
            Цитата maxjuvefan @
            Всем привет! У меня такой вопрос - есть 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.

            Кто чем может помочь?

            Про identity уже написали
            Следующая грабля будет нарушение целостности ключа (forin key)
            Наверняка "телефоны" не просто так добавлены, а связаны с какой-нибудь сущностью. И наверняка между ними есть forin key и с вероятностью 146% в разных базах у одной и той же "сущности" id разные. Так что запрос будет несколько ... хмм .. или совсем не несколько... сложнее


            Цитата Bas @
            Цитата Akina @
            MERGE.

            Все забываю что она есть в MS тоже.

            Некоторые и не знают, и потому аккуратно селекты пишут :'(
              Цитата Павел Калугин @
              запрос будет несколько ... хмм .. или совсем не несколько... сложнее

              Да пусть сперва хотя бы с несвязными данными разберётся в своей однотабличной модельке...
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0238 ]   [ 18 queries used ]   [ Generated: 28.03.24, 11:49 GMT ]