2012-06-13 5 views
1

У меня есть таблица, такие как:заполнение таблицы с функцией возврата SQL Server

PK_ID LOCATION_ID  LOCATION_TEXT 
1   21   NULL 
2   44   NULL 
3   26   NULL 

У меня есть функция, которая возвращает LOCATION_TEXT из LOCATION_ID. Я пытаюсь сделать что-то вроде:

update mytable 
set locationText = (select dbo.fcGetLocationText (LOCATION_ID) from mytable) 

я набираюсь

Subquery вернулся более чем на 1 значение

ошибку, которую я вроде понимаю, но я не знаете, как еще это сделать ... Как я могу обновить столбец LOCATION_TEXT без курсора или цикла while?

+0

Добро пожаловать в StackOverflow: если вы отправляете код, образцы XML или данных, выделите эти строки в текстовом редакторе и нажмите кнопку ** samples samples ** ('{}') на панели инструментов редактора, чтобы получить хороший формат и синтаксис выделите это! –

ответ

4

Почему не просто:

UPDATE mytable SET LOCATION_TEXT = dbo.fcGetLocationText(LOCATION_ID); 

Кроме того, почему ваши имена столбцов орут?

+0

Возможно, перенесена база данных Oracle? У них обычно есть имена столбцов ALL UPPERCASE. –

+0

Duh. Да, это работает! Благодарю. Я думаю, что они кричат, потому что они не заполняются должным образом, и у них есть комплекс неполноценности и необходимо внимание. Теперь, когда они будут обновлены, они будут счастливее и могут вернуться в нижний регистр! –

Смежные вопросы