как обновить значение с другого TSQL - PullRequest
4 голосов
/ 10 августа 2009

Мне нужно обновить значение на основе значений из другой таблицы:

update OracleOb..NS.myTable set name = (select name from myTable1 where id = 1)
   where id = 1

здесь у SQL есть некоторая проблема. Как я могу получить значение из myTable1 и установить его в myTable?

Я использую MS SQL 2005.

Извините, мне снова нужно отредактировать этот вопрос. Таблица myTable является связанным объектом таблицы Oracle. Я попробовал предложенный ответ, но получил сообщение об ошибке:

 The OLE DB provider "OraOLEDB.Oracle" for linked server "OracleOb" reported an error. The provider reported an unexpected catastrophic failure.

Ответы [ 5 ]

13 голосов
/ 10 августа 2009
UPDATE m 
SET m.name = m1.name
FROM MyTable m
    JOIN MyTable1 m1 ON m.id = m1.id
WHERE m.id = 1
0 голосов
/ 27 августа 2009

Вот обновление, проверив другие ДВЕ таблицы:

ОБНОВЛЕНИЕ C SET C.username = A.UserName FROM Staged.ClientEmployee C JOIN [dbo]. [TempE] E ON C.id = E.Fax AND C.ssn = E.SSN ПРИСОЕДИНИТЬСЯ NW_SEFL.CFG.Account A ON A.EmployeeId = E.EmployeeId ГДЕ E.Fax = @StageEmpID

0 голосов
/ 10 августа 2009
update myTable set 
    name = t1.name
from myTable as t
    join myTable1 as t1 on t.id = t1.id
    where t.id = 1
0 голосов
/ 10 августа 2009

Вы можете использовать соединение как:

update myTable 
set name = myTable1.name 
from myTable inner join myTable1 
   on myTable.id = myTable1.id myTable 
      where id = 1
0 голосов
/ 10 августа 2009
-- Remove the where clause if you are trying to update more than just the 1 record.

UPDATE  MyTable
SET     Name = B.Name
FROM    MyTable A JOIN MyTable1 B ON A.ID = B.ID
WHERE   ID = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...