2016-02-23 6 views
-1

Я искал длительное время для получения последних введенных данных в таблице. Но я получил тот же ответ.SQL SERVER - Получить последние введенные данные

SELECT TOP 1 CustomerName FROM Customers 
ORDER BY CustomerID DESC; 

Мой сценарий, как получить последние данные, если это таблица Заказчики, имеющие только CustomerName столбец? Никаких других столбцов, таких как ID или createdDate Я ввел четыре имени в следующем порядке.

Джеймс
Arun
Суреш
Bryen

Теперь я хочу, чтобы выбрать последний введенный CustomerName, то есть, Bryen. Как я могу это получить ..?

+2

В таблицах нет заказов. Нет ни первой, ни последней строки. Если вам нужен конкретный заказ, вы должны указать его с предложением 'ORDER BY'. Хотя вы * можете * использовать отслеживание изменений или CDC, чтобы получить список всех изменений, это было бы серьезным злоупотреблением отслеживанием изменений и довольно дорогостоящим –

+0

Возможный дубликат [Найти последнюю строку, введенную в таблицу] (http: // stackoverflow. ком/вопросы/19982804/найти-в последнюю строку вошел-в-таблице) –

ответ

-1

; с cte_new, как ( выберите *, row_number() над (порядке (выберите 1000)) в качестве нового от имя_таблицы ) выберите * из cte_new где новый = 4

0

Если таблица не правильно разработана (IDENTITY, TIMESTAMP , идентификатор, сгенерированный с использованием SEQUENCE и т. д.), INSERT заказ не хранится SQL Server. Таким образом, «последняя» запись бессмысленна без каких-либо критериев для использования для упорядочения.

Возможное обходное решение - если случайно записи в этой таблице связаны с некоторыми другими табличными записями (FKs, 1: 1 или 1: n соединение), и эта таблица имеет временную метку или что-то подобное, и вы можете вычесть вставку заказ.

Более подробную информацию о «заказе без критериев» можно найти here и here.

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