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

Откуда:
Сообщений: 141
Привет!

Подскажите, есть ли возможность обновить последнюю запись в таблице.
Последняя запись определяется по времени

Не хочется писать типо

update Test set ColumnName = 'Text'
where TimeVal = (select TimeVal from Test order by TimeVal desc)
21 июл 11, 13:49    [11006578]     Ответить | Цитировать Сообщить модератору
 Re: Как обновить последнюю запись в таблице?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Не хочется - не пишите.
21 июл 11, 13:49    [11006585]     Ответить | Цитировать Сообщить модератору
 Re: Как обновить последнюю запись в таблице?  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
Genniy
Привет!

Подскажите, есть ли возможность обновить последнюю запись в таблице.
Последняя запись определяется по времени

Не хочется писать типо

update Test set ColumnName = 'Text'
where TimeVal = (select TimeVal from Test order by TimeVal desc)
Разве не видно что для одного значения TimeVal ты подставляешь целую таблицу...
Наверное хотел типа:
update Test set ColumnName = 'Text'
where TimeVal = (select MAX(TimeVal) from Test)
Нет?
21 июл 11, 13:55    [11006635]     Ответить | Цитировать Сообщить модератору
 Re: Как обновить последнюю запись в таблице?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
WITH CTE(N,ColumnName) AS(SELECT ROW_NUMBER()OVER(ORDER BY TimeVal DESC),ColumnName FROM Test)
UPDATE CTE SET ColumnName = 'Text' WHERE N=1;
21 июл 11, 13:59    [11006664]     Ответить | Цитировать Сообщить модератору
 Re: Как обновить последнюю запись в таблице?  [new]
Genniy
Member

Откуда:
Сообщений: 141
Гавриленко Сергей Алексеевич
Не хочется - не пишите.


Спасибо. Дельный совет!
21 июл 11, 14:10    [11006767]     Ответить | Цитировать Сообщить модератору
 Re: Как обновить последнюю запись в таблице?  [new]
Genniy
Member

Откуда:
Сообщений: 141
Спасибо всем! Уже разобрался.
Хотелось бы как в Oracle, менее писанины... но что же сделать.
21 июл 11, 14:12    [11006781]     Ответить | Цитировать Сообщить модератору
 Re: Как обновить последнюю запись в таблице?  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
или вот

;WITH CTE AS (SELECT TOP 1 ColumnName FROM Test ORDER BY TimeVal DESC)
UPDATE CTE SET ColumnName = 'Text'
21 июл 11, 15:03    [11007250]     Ответить | Цитировать Сообщить модератору
 Re: Как обновить последнюю запись в таблице?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Shakill
или вот

;WITH CTE AS (SELECT TOP 1 ColumnName FROM Test ORDER BY TimeVal DESC)
UPDATE CTE SET ColumnName = 'Text'
Тока скобки поставить для точности:
;WITH CTE AS (SELECT TOP(1) ColumnName FROM Test ORDER BY TimeVal DESC)
UPDATE CTE SET ColumnName = 'Text'
21 июл 11, 17:01    [11008258]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить