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

Откуда:
Сообщений: 10
Извините, пожалуйста, за дурацкий вопрос и не отправляйте, пожалуйста, читать учебник. Я, редактируя одну запись, не указала критерий, в результате переписала три поля таблице. Мне надо исправить всё оперативно, а без помощи я оперативно не смогу.
У меня есть вчерашний бэкап. Таблицы, понятно, идентичны по структуре и пр.
1. Как из бэкапа скопировать данные, не трогая сегодняшние в рабочей базе?
2. Базы находятся на разных серверах, как правильно прописать адреса?

Учебник прочитаю, мамой клянусь.
16 дек 19, 18:48    [22041504]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
Njura
Member

Откуда:
Сообщений: 10
У меня SQL server 2008
16 дек 19, 18:51    [22041508]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
какие базы находятся на разных серверах? ничего не понятно.
ресторьте вчерашний бэкап не в рабочую базу, а в новую с другим именем
(каждому файлу написатьWITH MOVE в другой, новый файл, не в старые имеющиеся)
потом оттуда берете все что надо
16 дек 19, 19:13    [22041519]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
Njura
Member

Откуда:
Сообщений: 10
Рабочая база в аптеке, бэкап в офисе на сервере. Одновременно могу их открыть через Студио. Названия одинаковые, разные "места жительства".
16 дек 19, 19:23    [22041531]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
Njura
Member

Откуда:
Сообщений: 10
Извините за сумбур, нервничаю :). Я испортила одну таблицу, три колонки. Брать откуда-либо всё, что надо, я не умею. Не приходилось.
16 дек 19, 19:26    [22041534]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
Njura
Member

Откуда:
Сообщений: 10
Попытаюсь наглядно изобразить.

Есть таблица в рабочей базе, которую я неудачно проапдейтила:

ip1.BASE.tbl1

ID DATA NAME1 ... NAME10
1 01.08.2019 A1 ... A10
2 01.09.2019 B1 … B10
3 01.10.2019 C1 … C10
… … … … …
10 15.12.2019 W1 … W10
11 16.12.2019 X1 … X10




И есть таблица из вчерашнего бэкапа:

ip2.BASE.tbl1

ID DATA NAME1 ... NAME10
1 01.08.2019 A1 ... A10
2 01.09.2019 B1 … B10
3 01.10.2019 C1 … C10
… … … … …
10 15.12.2019 W1 … W10



Извините, не знаю, как оформить так, чтобы колонки в кучу не слеплялись.

Мне нужно из бекапа взять эти 9 строчек и скопировать их в ту же таблицу рабочей базы. Но не новыми строками, а переписать значения существующих за все даты, кроме сегодняшней. Ну или не все значения, а значения колонок, например, name2 и name10.

ip1, ip2 - адреса, где располагаются рабочая база и бэкап.

Надеюсь, не запутала ещё больше.
16 дек 19, 20:40    [22041572]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30830
Njura
И есть таблица из вчерашнего бэкапа:
Бакап - это файл с бакапом? Или это база в офисе на сервере?
Если первое, то нужно начать, как вам написали, с восстановления бакапа в базу с другим именем.

Если второе, то то, что вы хотите, можно сделать разными способами.

В любом случае это делается командами insert/update/delete с вашей таблицей, и таблицей "из бакапа".
Если вы их не знаете, то обратитесь к специалистам.

Если знаете, то тут 2 варианта:
1) подсоединить сервер в офисе к серверу в аптеке как linked server, если серверы открыты в интернете.
2) Перенести таблицу из офиса на сервер в аптеке. Например, это можно сделать, сгенерив команды insert...values..., или выгрузив данные в какой то файл.
16 дек 19, 22:59    [22041658]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
Njura
Member

Откуда:
Сообщений: 10
Бэкап развернут уже на офисном сервере.
Первый вариант мне больше нравится, завтра попробую. Только вопрос, если я буду использовать связанные сервера, название базы, развернутой из бэкапа, надо поменять? Или оно может остаться идентичным продукции?
Спасибо за помощь.
16 дек 19, 23:27    [22041670]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
чтобы создать linked server, надо минимум быть setupadmin, но редко когда эта роль используется.
так что сразу вопрос, вы sysadmin?
потому как иначе никакой linked вам не создать
16 дек 19, 23:39    [22041678]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
Njura
Member

Откуда:
Сообщений: 10
Ага :) Один из.. и самый из них знающий :) Проверю завтра, тот ли я админ.
16 дек 19, 23:48    [22041684]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7407
Njura,

если первичный сервер недоступен с резервного, то придется переносить через файл на флешке. Проще всего такой файл создать и загрузить мастером импорта-экспорта из SSMS.
17 дек 19, 01:15    [22041706]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30830
Njura
Только вопрос, если я буду использовать связанные сервера, название базы, развернутой из бэкапа, надо поменять?
Нет.

Таблицы связанного сервера упоминаются как сервер.база.владелец.таблица
17 дек 19, 08:30    [22041777]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30830
Njura
Первый вариант мне больше нравится
Понятное дело, меньше действий, но вопрос, доступен ли офисный сервер из аптеки.
17 дек 19, 08:31    [22041779]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
alexeyvg

Таблицы связанного сервера упоминаются как сервер.база.владелец.таблица

времена 2000-ого канули в лету.
владелец и схема давно разделены.
в обращении к линкеду участвует схема, но никак не владелец
17 дек 19, 11:00    [22041900]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2375
Njura,

чтобы с линкедом не мучаться, если уже етсь развернутый бэкап (Б)
1) если с одного сервера можно достучаться до второго:
через мастер-импорта (правой клавишей на базе в студии ->Task-Import Data) копируете таблицу с базы (Б) на основную, под другим именем

2) нет связи. выгружате эту таблицу (тем же мастером) в текстовый файл с базы (Б).
переносите файл. загружаете из файла в основную базу (тем же мастером, в таблицу под другим именем)

дальше пишете сюда свой вариант update, и вам скажут правильно или нет

Сообщение было отредактировано: 17 дек 19, 14:30
17 дек 19, 14:29    [22042184]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
Njura
Member

Откуда:
Сообщений: 10
Я действительно с линкедом намучалась и так его и не настроила. И тупо скопировала таблицу из бэкапа в Эксель, добавила там команды и проапдейтила таблицу в продукции. Всего-то 2618 апдейтов. :) Ничего, быстренько так.. А остальные записи, котрых не было в бэкапе, правила вручную. Но надо завтра пробовать использовать правильный вариант, а то как-то по-колхозному у меня получилось.
Спасибо за помощь!
17 дек 19, 19:41    [22042523]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4404
Njura,

Если с Линкед сервером проблемы, надо брать SSIS и прогонять мердж между двумя серверами.
18 дек 19, 08:30    [22042727]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7407
Неподготовленному человеку SSIS может показаться сложным, для разовых операций можно выбрать более простые способы.
18 дек 19, 11:48    [22042914]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать данные таблицы из другой базы данных?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30830
Владислав Колосов
Неподготовленному человеку SSIS может показаться сложным, для разовых операций можно выбрать более простые способы.
Так визард же есть. Указать "откуда", "куда", и "что", то есть имя таблицы, вот и готов SSIS-пакет.
18 дек 19, 21:14    [22043614]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить