Использование подзапроса в операторе обновления - PullRequest
1 голос
/ 01 марта 2011

У меня есть 2 таблицы A и B. Мне нужно запустить обновление для таблицы A, но получить одно значение из одного поля в таблице B, которое будет присвоено одному полю в таблице A,

Код следующий:

Update [A]    
    set A.Code = 10,
        A.Name = 'Test',
        A.Link = (Select Link from [B] where [B].ID = 10)    
    from [A]

Проблема, значение в A.Link всегда пусто !!!!

Любая идея, что не так

Спасибо

Ответы [ 2 ]

4 голосов
/ 01 марта 2011

A.Code = B.ID?Если так ...

UPDATE A
  SET A.LINK = B.LINK
     ,A.NAME = 'TEST'
FROM
  TABLE_A A
  INNER JOIN TABLE_B B
    ON A.CODE = B.ID
0 голосов
/ 01 марта 2011

Попробуйте это:

 Update [A]
 set A.Code = 10, 
     A.Name = 'Test', 
     A.Link = ISNULL((Select Link from [B] where [B].ID = 10),'it was null')
 from [A]

 SELECT * FROM [A] WHERE Name = 'Test'

Есть ли в столбце Ссылка пользовательское сообщение it was null?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...