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

Откуда:
Сообщений: 13
чтото никак не получается правильно написать запрос апдейта данных в одной бд данными из другой.
чтото вроде
update database1.table1, database2.table2
set database1.table1.field1=database2.table2.field2
where database1.table1.key1=database2.table2.key2


такой синтаксис mssqlю (пользую ssms в составе mssql server 2008r2) не нравится, а как правильно не найду, хелп плиз.
25 июл 17, 21:35    [20674778]     Ответить | Цитировать Сообщить модератору
 Re: межбазовый update  [new]
Rankatan
Member

Откуда:
Сообщений: 250
update t1
set t1.field1=t2.field2
from database1.table1 t1
inner join database2.table2 t2
on t1.key1=t2.key2
25 июл 17, 21:41    [20674794]     Ответить | Цитировать Сообщить модератору
 Re: межбазовый update  [new]
user404
Member

Откуда:
Сообщений: 13
оно самое, благодарствую!
25 июл 17, 22:05    [20674826]     Ответить | Цитировать Сообщить модератору
 Re: межбазовый update  [new]
user404
Member

Откуда:
Сообщений: 13
в догонку тупой вопрос )
на фразе 'update table1 set field1=100' дрогнула рука и в таблице обновил все записи вместо задуманного "where key1=1"
как то можно это вернуть/отменить? или только из бэкапа?
25 июл 17, 22:55    [20674913]     Ответить | Цитировать Сообщить модератору
 Re: межбазовый update  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36691
user404
как то можно это вернуть/отменить? или только из бэкапа?
Закомиченные транзакции откатываются только через рестор бэкапа.
25 июл 17, 23:08    [20674933]     Ответить | Цитировать Сообщить модератору
 Re: межбазовый update  [new]
iii2
Member

Откуда:
Сообщений: 202
user404
в догонку тупой вопрос )
на фразе 'update table1 set field1=100' дрогнула рука и в таблице обновил все записи вместо задуманного "where key1=1"
как то можно это вернуть/отменить? или только из бэкапа?

Заведите привычку перед такими запросами писать Begin Tran, после проверять, что получилось, а потом вручную делать Commit.
Спасает много нервов.
26 июл 17, 08:07    [20675215]     Ответить | Цитировать Сообщить модератору
 Re: межбазовый update  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
iii2
user404
в догонку тупой вопрос )
на фразе 'update table1 set field1=100' дрогнула рука и в таблице обновил все записи вместо задуманного "where key1=1"
как то можно это вернуть/отменить? или только из бэкапа?

Заведите привычку перед такими запросами писать Begin Tran, после проверять, что получилось, а потом вручную делать Commit.
Спасает много нервов.

о дааа, и это самая частая причина положить всю работу забыва сделать commit/rollback
26 июл 17, 08:10    [20675219]     Ответить | Цитировать Сообщить модератору
 Re: межбазовый update  [new]
Alibek B.
Member

Откуда:
Сообщений: 3517
iii2
Заведите привычку перед такими запросами писать Begin Tran, после проверять, что получилось, а потом вручную делать Commit.

Лучше завести привычку перед update предварительно делать select и пробежать глазами выборку.
26 июл 17, 10:00    [20675492]     Ответить | Цитировать Сообщить модератору
 Re: межбазовый update  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1843
Блог
Alibek B.
iii2
Заведите привычку перед такими запросами писать Begin Tran, после проверять, что получилось, а потом вручную делать Commit.

Лучше завести привычку перед update предварительно делать select и пробежать глазами выборку.

Прод - зло!!! лучше и то и другое. т.к. может дрогнуть рука и в момент update не захватить при выделении условие where. Если не один стейтмент в файле.
26 июл 17, 10:29    [20675568]     Ответить | Цитировать Сообщить модератору
 Re: межбазовый update  [new]
iap
Member

Откуда: Москва
Сообщений: 46952
Rankatan
update t1
set t1.field1=t2.field2
from database1.table1 t1
inner join database2.table2 t2
on t1.key1=t2.key2
А где же схема???
26 июл 17, 11:41    [20675846]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить