Форум : Программное обеспечениеНазвание : Перенос БД SQL после переустановки системы |
ALX777 : |
7.2.24 14:21 |
Приветствую! Была перенесена БД после переустановки Windows (бэкап, восстановление). Подтянутые приборы с архивами только в режиме чтения, никак нельзя настроить соединение и т.д., т.к. они "чужие". После штудирования форума выяснилось, для полноценной работы нужно менять владельца по команде UPDATE ArchivistDevices set owner=<new_ID> where owner=<old_ID>. Вот только загвоздка, старый CID уже узнать нет возможности. Возможен ли вариант вытащить этот ID из бэкапа? | |
|
xBocT : |
7.2.24 21:07 |
Да Запрос select distinct ID from ArchiVistDevices выведет список всех идентификаторов машин которые делали записи в базу данных (если работа велась только с одной машины, то соответственно список будет из 1 го значения) Ну а после как и было уже несколько раз тут описано, посмотреть идентификатор в текущей инсталляции Архивист (там он в 16тиричном значении представлен), и выполнить запрос update ArchiVistDevices set ID=<значение> Таким образом для всех записей в базе будет установлен идентификатор владельца, соответствующий текущему | |
|
ALX777 : |
8.2.24 10:03 |
xBocT, После выполнения команды выдает список машин: select distinct ID from ArchiVistDevices 1566706670 1566707914 1567311962 1568529209 Текущая машина в Архивисте пишет CID 68A27424, в переводе в десятичную 1755477028. 1. При попытке установить идентификатор 1755477028 для всех предыдущих записей: update ArchiVistDevices set ID=<1755477028> выдает, что запрос завершен с ошибками: «Сообщение 102, уровень 15, состояние 1, строка 1 Неправильный синтаксис около конструкции "<".» 2. При попытке заменить один из предыдущих ИД новым: UPDATE ArchivistDevices set owner=<1755477028> where owner=<1568529209> Выдает такую же ошибку. | |
|
xBocT : |
9.2.24 09:52 |
В запросе знаки "<" ">" НЕ надо указывать. В примере запроса эти знаки поставлены для выделения требуемых для подстановки значений. Т.е. ваш запрос должен выглядеть так: update ArchiVistDevices set ID=1755477028 | |
|
ALX777 : |
9.2.24 10:12 |
xBocT При выполнении запроса update ArchiVistDevices set ID=1755477028 вылетает ошибка: "Сообщение 2627, уровень 14, состояние 1, строка 1 Нарушено "PK__ArchiVis__1EF05B0CA16C72A4" ограничения PRIMARY KEY. Не удается вставить повторяющийся ключ в объект "dbo.ArchiVistDevices". Повторяющееся значение ключа: (877720206, 1755477028). Выполнение данной инструкции было прервано." | |
|
xBocT : |
9.2.24 10:38 |
Ох. Приношу свои извинения. Невнимательность . В запросе надо не ключ ID, а OWNER указывать!
update ArchiVistDevices set OWNER=1755477028 | |
|
xBocT : |
9.2.24 10:38 |
Восстановите заново базу из бэкапа предварительно, и выполните вышеуказанный запрос | |
|
ALX777 : |
9.2.24 11:43 |
xBocT Благодарю душевно! Все заработало!
Еще вопросик небольшой: возможно ли без больших ручных манипуляций объединить две БД Архивиста с разных усройств в одну? Или может есть источник по этой теме, где можно почитать об этом? Тут уже конечно чисто по среде SQL, но все источники которые пробовал смотреть ведут на зарубежные ресурсы, где с корявым переводом страшно даже что-то делать. | |
|
xBocT : |
9.2.24 11:54 |
"Без больших ручных манипуляций" не обойтись. В двух разных базах возможны (и вероятны, при условии ведения этих баз параллельно по времени) пересечения уникальных идентификаторов. | |
|
ALX777 : |
9.2.24 12:06 |
xBocT Понял, в принципе сильно не принципиально объединение. Главное основной вопрос помогли решить. Спасибо! | |
|
© NegaSoft co., 2005 http://www.teplovizor.ru
URL этой темы
http://www.teplovizor.ru/forum/viewtopic.php?topic_id=832&forum=2
|