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

Откуда:
Сообщений: 51
Уважаемые прошу подскажите как решить, так получилось, что юзнул запрос и испортил 1 колонку во всей таблице, вернуть 800 000 значений не могу, но есть старый бек этой же базы, хочу из нее обновить значения текущей таблицы, как сделать?
удалял старые строки в таблице, пытался вставить новые - думает, но выдает ошибку

есть примари кей колонка с идентити=(
13 авг 15, 02:59    [18011001]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы одной базы данных, значениями таблицы из другой базы данных.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Вам, пожалуй, надо в "битву экстрасенсов": за пару сезонов они вполне угадают не только, как вы "удаляли старые строки в таблице", но и как "пытались вставить новые" и даже какую "ошибку", кто "выдает" и зачем он перед этим "думает".

Сообщение было отредактировано: 13 авг 15, 03:10
13 авг 15, 03:08    [18011002]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы одной базы данных, значениями таблицы из другой базы данных.  [new]
aphextwin
Member

Откуда:
Сообщений: 51
Может так концентрация на проблеме будет лучше?

"Уважаемые прошу подскажите как решить, так получилось, что юзнул запрос и испортил 1 колонку во всей таблице, вернуть 800 000 значений не могу, но есть старый бек этой же базы, хочу из нее обновить значения текущей таблицы, как сделать?"
вроде всё понятно или надо уточнений?
13 авг 15, 03:11    [18011003]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы одной базы данных, значениями таблицы из другой базы данных.  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7679
UPDATE prod.dbo.mytable
SET mycolumn = t2.mycolumn
FROM backup.dbo.mytable t2
WHERE
   prod.dbo.mytable.id = t2.id
13 авг 15, 03:43    [18011006]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы одной базы данных, значениями таблицы из другой базы данных.  [new]
aphextwin
Member

Откуда:
Сообщений: 51
по логике всё так но не работает что-то

К сообщению приложен файл. Размер - 50Kb
13 авг 15, 04:00    [18011010]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы одной базы данных, значениями таблицы из другой базы данных.  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7679
aphextwin,

Название колонки 327008246 в скобки возьмите Table.[327008246]
13 авг 15, 04:03    [18011011]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы одной базы данных, значениями таблицы из другой базы данных.  [new]
aphextwin
Member

Откуда:
Сообщений: 51
стоп стоп стоп, доктор, а то я скоро двину коньки)
вообщем так есть 2 базы данных:
dnwordbak
и целевая:
dnworld
в них есть таблица:
MaterializedItems
в ней из бэка нужно обновить значение колонки:
itemlevel
а так же есть колонка identity:
ItemId
так вот нужно чтобы itemlevel обновилось в строгом соответствии со значением itemId из бэка

нормально объяснил?
13 авг 15, 04:14    [18011012]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы одной базы данных, значениями таблицы из другой базы данных.  [new]
aphextwin
Member

Откуда:
Сообщений: 51
не поймите меня не правильно, я не хамлю, просто надо сделать быстро,поэтому и спрашиваю, о понятном объяснении, потому, что мозг кипит, а тут и поспать хотя бы немного хотелось бы чуть-чуть...где-нибудь
13 авг 15, 04:20    [18011013]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы одной базы данных, значениями таблицы из другой базы данных.  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7679
Так а что-же куету какую-то в своем запросе пишеш?
13 авг 15, 04:29    [18011015]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы одной базы данных, значениями таблицы из другой базы данных.  [new]
aphextwin
Member

Откуда:
Сообщений: 51
Я уж совсем отчаялся и попробовал хотя бы в одной БД это сделать....
но решить мне нужно именно то, что я описал по пунктам
13 авг 15, 04:34    [18011017]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы одной базы данных, значениями таблицы из другой базы данных.  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7679
автор
стоп стоп стоп, доктор, а то я скоро двину коньки)
вообщем так есть 2 базы данных:
dnwordbak
и целевая:
dnworld
в них есть таблица:
MaterializedItems
в ней из бэка нужно обновить значение колонки:
itemlevel
а так же есть колонка identity:
ItemId
так вот нужно чтобы itemlevel обновилось в строгом соответствии со значением itemId из бэка

UPDATE dnworld.dbo.MaterializedItems
SET itemlevel = t2.itemlevel 
FROM dnwordbak.dbo.MaterializedItems t2
WHERE
   dnworld.dbo.MaterializedItems.itemId  = t2.itemId 
13 авг 15, 04:37    [18011018]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы одной базы данных, значениями таблицы из другой базы данных.  [new]
aphextwin
Member

Откуда:
Сообщений: 51
WHERE
dnworld.dbo.MaterializedItems.itemId = t2.itemId

т.е. вот здесь мы как раз можем указать название identity колонки, которую он будет сравнивать и выставлять соответствие в itemlevel
пример:
в обеих таблицах
itemID
32323

он проверяет соответствие и выставляется по этой строке значение Itemlevel так?
13 авг 15, 04:46    [18011020]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы одной базы данных, значениями таблицы из другой базы данных.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32175
Relic Hunter
Название колонки 327008246 в скобки возьмите Table.[327008246]
Думаю, это aphextwin так подставляет значение ID записи :-)
13 авг 15, 09:38    [18011345]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы одной базы данных, значениями таблицы из другой базы данных.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32175
aphextwin
стоп стоп стоп, доктор, а то я скоро двину коньки)
вообщем так есть 2 базы данных:
dnwordbak
и целевая:
dnworld
в них есть таблица:
MaterializedItems
в ней из бэка нужно обновить значение колонки:
itemlevel
а так же есть колонка identity:
ItemId
так вот нужно чтобы itemlevel обновилось в строгом соответствии со значением itemId из бэка

нормально объяснил?
Вот, вам написали, что делать:
Relic Hunter
UPDATE prod.dbo.mytable
SET mycolumn = t2.mycolumn
FROM backup.dbo.mytable t2
WHERE
   prod.dbo.mytable.id = t2.id
Модифицируем:
UPDATE i
SET itemlevel = b.itemlevel
FROM dnworld.dbo.MaterializedItems i
    JOIN dnwordbak.dbo.MaterializedItems b
        ON b.ItemId = i.ItemId
13 авг 15, 09:42    [18011367]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы одной базы данных, значениями таблицы из другой базы данных.  [new]
iap
Member

Откуда: Москва
Сообщений: 47198
alexeyvg
Вот, вам написали, что делать:
Relic Hunter
UPDATE prod.dbo.mytable
SET mycolumn = t2.mycolumn
FROM backup.dbo.mytable t2
WHERE
   prod.dbo.mytable.id = t2.id

Модифицируем:
UPDATE i
SET itemlevel = b.itemlevel
FROM dnworld.dbo.MaterializedItems i
    JOIN dnwordbak.dbo.MaterializedItems b
        ON b.ItemId = i.ItemId
WHERE NOT EXISTS(SELECT i.itemlevel INTERSECT SELECT b.itemlevel)
Так не правильнее будет?
INTERSECT - это для простого сравнивания значений NULL (неизвестно ведь, допустим ли тут NULL).
Ибо зачем же апдейтить все записи, если изменились не все?
13 авг 15, 10:36    [18011676]     Ответить | Цитировать Сообщить модератору
 Re: Обновление таблицы одной базы данных, значениями таблицы из другой базы данных.  [new]
aphextwin
Member

Откуда:
Сообщений: 51
тема с ночи закрыто Relic Hunter быстро и без проблем помог, огромное ему спасибо, ищу благодарить - не отвечает((
13 авг 15, 15:55    [18013873]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить