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

Откуда:
Сообщений: 356
Здравствуйте,
ситуация: есть две базы на одном серваке MSSQL 2005, одна бэкап другая боевая, в боевой закосячили столбец неправильным апдейтом (рука дёрнулась)
Задача: перенести правильный столбец из бекапной базы в боевую
Впорос: как это сделать?
Попытки: рыл инфу в инете, нешёл что можно это сделать апдейтом, но боюсь, т.к. уже один раз закосячил столбец неправильным апдейтом, бекап последний и нужно всё сделать наверняка. решил делать следующим образом:
update base1.dbo.tabl1 set base1.dbo.tabl1.colomn1=(select backupbase1.dbo.tabl1.column1 from backupbase1.dbo.tabl1)

Правильно ли я написал запрос по этому апдейту? Если нет, прошу приведите пожалуйста правильный вариант
Благодарю
5 мар 14, 08:10    [15674027]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на Update  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
R-Magistr,

Если у вас там всего одна строчка, то может и сойдет. А вообще, синтаксис неправильный, не должно выполниться.

Как-то так:
update t set Column1 = s.Column1
from base1.dbo.Table1 t
	inner join backupbase1.dbo.Table1 s on s.KeyCol = t.KeyCol;
, где KeyCol - столбец(-цы) первичного ключа.
5 мар 14, 08:24    [15674049]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на Update  [new]
Добрый Э - Эх
Guest
если в таблице больше одной строки, то такой апдейт даже не выполнится...
5 мар 14, 08:26    [15674051]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на Update  [new]
R-Magistr
Member

Откуда:
Сообщений: 356
Ennor Tiegael
R-Magistr,

Если у вас там всего одна строчка, то может и сойдет. А вообще, синтаксис неправильный, не должно выполниться.

Как-то так:
update t set Column1 = s.Column1
from base1.dbo.Table1 t
	inner join backupbase1.dbo.Table1 s on s.KeyCol = t.KeyCol;
, где KeyCol - столбец(-цы) первичного ключа.


update t set t.addr_bank=s.addr_bank
       from dominant.dbo.agnacc t join dominant20140302.dbo.agnacc s 
       on s.vcode=t.vcode

вот так вот сделал, правильно?
5 мар 14, 08:38    [15674069]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на Update  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
R-Magistr,

Да, если первичный ключ на таблицу включает в себя только столбец vcode.
5 мар 14, 08:43    [15674080]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на Update  [new]
R-Magistr
Member

Откуда:
Сообщений: 356
Ennor Tiegael,

Спасибо большое ))
5 мар 14, 08:46    [15674088]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить