Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
aphextwin Member Откуда: Сообщений: 51 |
Уважаемые прошу подскажите как решить, так получилось, что юзнул запрос и испортил 1 колонку во всей таблице, вернуть 800 000 значений не могу, но есть старый бек этой же базы, хочу из нее обновить значения текущей таблицы, как сделать? удалял старые строки в таблице, пытался вставить новые - думает, но выдает ошибку есть примари кей колонка с идентити=( |
13 авг 15, 02:59 [18011001] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
Вам, пожалуй, надо в "битву экстрасенсов": за пару сезонов они вполне угадают не только, как вы "удаляли старые строки в таблице", но и как "пытались вставить новые" и даже какую "ошибку", кто "выдает" и зачем он перед этим "думает".
Сообщение было отредактировано: 13 авг 15, 03:10 |
13 авг 15, 03:08 [18011002] Ответить | Цитировать Сообщить модератору |
aphextwin Member Откуда: Сообщений: 51 |
Может так концентрация на проблеме будет лучше? "Уважаемые прошу подскажите как решить, так получилось, что юзнул запрос и испортил 1 колонку во всей таблице, вернуть 800 000 значений не могу, но есть старый бек этой же базы, хочу из нее обновить значения текущей таблицы, как сделать?" вроде всё понятно или надо уточнений? |
13 авг 15, 03:11 [18011003] Ответить | Цитировать Сообщить модератору |
Relic Hunter Member Откуда: AB Сообщений: 7480 |
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] Ответить | Цитировать Сообщить модератору |
aphextwin Member Откуда: Сообщений: 51 |
по логике всё так но не работает что-то К сообщению приложен файл. Размер - 50Kb |
13 авг 15, 04:00 [18011010] Ответить | Цитировать Сообщить модератору |
Relic Hunter Member Откуда: AB Сообщений: 7480 |
aphextwin, Название колонки 327008246 в скобки возьмите Table.[327008246] |
13 авг 15, 04:03 [18011011] Ответить | Цитировать Сообщить модератору |
aphextwin Member Откуда: Сообщений: 51 |
стоп стоп стоп, доктор, а то я скоро двину коньки) вообщем так есть 2 базы данных: dnwordbak и целевая: dnworld в них есть таблица: MaterializedItems в ней из бэка нужно обновить значение колонки: itemlevel а так же есть колонка identity: ItemId так вот нужно чтобы itemlevel обновилось в строгом соответствии со значением itemId из бэка нормально объяснил? |
13 авг 15, 04:14 [18011012] Ответить | Цитировать Сообщить модератору |
aphextwin Member Откуда: Сообщений: 51 |
не поймите меня не правильно, я не хамлю, просто надо сделать быстро,поэтому и спрашиваю, о понятном объяснении, потому, что мозг кипит, а тут и поспать хотя бы немного хотелось бы чуть-чуть...где-нибудь |
13 авг 15, 04:20 [18011013] Ответить | Цитировать Сообщить модератору |
Relic Hunter Member Откуда: AB Сообщений: 7480 |
Так а что-же куету какую-то в своем запросе пишеш? |
13 авг 15, 04:29 [18011015] Ответить | Цитировать Сообщить модератору |
aphextwin Member Откуда: Сообщений: 51 |
Я уж совсем отчаялся и попробовал хотя бы в одной БД это сделать.... но решить мне нужно именно то, что я описал по пунктам |
13 авг 15, 04:34 [18011017] Ответить | Цитировать Сообщить модератору |
Relic Hunter Member Откуда: AB Сообщений: 7480 |
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] Ответить | Цитировать Сообщить модератору |
aphextwin Member Откуда: Сообщений: 51 |
WHERE dnworld.dbo.MaterializedItems.itemId = t2.itemId т.е. вот здесь мы как раз можем указать название identity колонки, которую он будет сравнивать и выставлять соответствие в itemlevel пример: в обеих таблицах itemID 32323 он проверяет соответствие и выставляется по этой строке значение Itemlevel так? |
13 авг 15, 04:46 [18011020] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31778 |
|
||
13 авг 15, 09:38 [18011345] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31778 |
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] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47047 |
INTERSECT - это для простого сравнивания значений NULL (неизвестно ведь, допустим ли тут NULL). Ибо зачем же апдейтить все записи, если изменились не все? |
||||
13 авг 15, 10:36 [18011676] Ответить | Цитировать Сообщить модератору |
aphextwin Member Откуда: Сообщений: 51 |
тема с ночи закрыто Relic Hunter быстро и без проблем помог, огромное ему спасибо, ищу благодарить - не отвечает(( |
13 авг 15, 15:55 [18013873] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |