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

Откуда: Feorina "Fury" 161
Сообщений: 4348
Следует обновить второй столбец таблицы:
ID ParentID Code ParentCode
1 AAAAAA
2 BBBAAA
3 CCCAAA
4 DDDCCC
5 EEECCC
6 FFFBBB
7 GGGBBB
8 HHHBBB
9 LLLBBB


запрос, конечно, не верный, т.к. нельзя написать так первую строку
Update MyTable1 as T
Set ParentID = 
(
    Select ID
    From MyTable
    Where Code = T.ParentCode
)
17 фев 14, 15:02    [15577604]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление таблицы, заполнить весь столбец.. как?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Update MyTable1
Set ParentID =
(
Select ID
From MyTable
Where MyTable.Code = MyTable1.ParentCode
)
17 фев 14, 15:04    [15577624]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление таблицы, заполнить весь столбец.. как?  [new]
Charles Weyland
Member

Откуда: Feorina "Fury" 161
Сообщений: 4348
единичка, да, лишняя.
Речь об одной и той же таблице.

Update MyTable as T
Set ParentID = 
(
    Select ID
    From MyTable
    Where Code = T.ParentCode
)
[/quote]
17 фев 14, 15:06    [15577649]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление таблицы, заполнить весь столбец.. как?  [new]
Glory
Member

Откуда:
Сообщений: 104760
И что с того, что одна и та же ?

Update MyTable
Set ParentID =
(
Select ID
From MyTable as T
Where T.Code = Mytable.ParentCode
)
17 фев 14, 15:07    [15577660]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление таблицы, заполнить весь столбец.. как?  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
Update T
SET T.ParentID = M.ID
FROM Mytable1 T INNER JOIN MyTable M
	ON M.Code = T.ParentCode
17 фев 14, 15:08    [15577663]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление таблицы, заполнить весь столбец.. как?  [new]
Charles Weyland
Member

Откуда: Feorina "Fury" 161
Сообщений: 4348
Konst_One
Update T
SET T.ParentID = M.ID
FROM Mytable1 T INNER JOIN MyTable M
	ON M.Code = T.ParentCode

пасиба!!
да, хм.. избаловался вложенными запросами, забыл про inner join..
17 фев 14, 15:12    [15577699]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление таблицы, заполнить весь столбец.. как?  [new]
Charles Weyland
Member

Откуда: Feorina "Fury" 161
Сообщений: 4348
Glory
И что с того, что одна и та же ?

Update MyTable
Set ParentID = 
(
    Select ID
    From MyTable  as T
    Where T.Code = Mytable.ParentCode
)

Действительно, работает...
а почему вот это название (выделил) обращается к таблице, указанной в Update, а не в Select?
17 фев 14, 15:16    [15577729]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление таблицы, заполнить весь столбец.. как?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Charles Weyland
а почему вот это название (выделил) обращается к таблице, указанной в Update, а не в Select?

Потому что у таблицы в select другой псевдоним
17 фев 14, 15:18    [15577738]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить