Как удалить все, кроме самых последних 20 строк в таблице? - PullRequest
0 голосов
/ 03 декабря 2010

Как удалить верхний ряд?Я хочу удалить верхний ряд, если есть более 20 строк.я использую c #.

Ответы [ 3 ]

1 голос
/ 03 декабря 2010

Посмотрите на DELETE (Transact-SQL)

TOP (выражение) [PERCENT]

Указывает числоили процент случайных строк, которые будут удалены.Выражение может быть числом или процентом строк.Строки, на которые есть ссылки в выражении TOP, используемом с INSERT, UPDATE или DELETE, расположены не в любом порядке.

Возможно, также есть чтение в Оператор DELETE в SQL Server

0 голосов
/ 03 декабря 2010

Предполагая, что поле ID является подходящей заменой и всегда увеличивается со временем (т. Е. Наименьшие значения ID являются самыми старыми, и это всегда так):

using (SqlConnection conn = new SqlConnection("yourconnectionstring"))
{
    SqlCommand cmd = conn.CreateCommand(
        "DELETE FROM table WHERE ID NOT IN (SELECT TOP 20 ID FROM table ORDER BY ID DESC)");
    cmd.ExecuteNonQuery();
}

(синтаксис My C # может бытьнемного выключен - я сделал это из памяти - но запрос SQL должен быть в порядке.)

0 голосов
/ 03 декабря 2010

Некоторая информация об удалении http://msdn.microsoft.com/en-us/library/bb386925.aspx

var ordFetch =
    (from ofetch in db.Orders
     where ofetch.OrderID == reqOrder
     select ofetch).First();
db.Orders.DeleteOnSubmit(ordFetch);
db.SubmitChanges();

Чтобы выбрать верхние строки:

var data = (from p in people
           select p).Take(100);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...