2010-12-03 4 views

Répondre

1

Jetez un oeil à DELETE (Transact-SQL)

TOP (expression) [POUR CENT]

Indique le nombre ou pour cent des lignes aléatoires qui seront supprimés. expression peut être un nombre ou un pour cent des lignes. Les lignes référencées dans l'expression TOP utilisée avec INSERT, UPDATE ou DELETE ne sont pas classées dans n'importe quel ordre.

Peut-être ont également une lecture à The DELETE statement in SQL Server

0

Quelques infos sur la suppression 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(); 

Pour sélectionner des lignes haut:

var data = (from p in people 
      select p).Take(100); 
0

En supposant que le champ ID est un substitut approprié et augmente toujours avec le temps (c.-à-d. que les plus petites valeurs d'ID sont les plus anciennes, et c'est toujours le cas):

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(); 
} 

(Ma syntaxe C# est peut-être légèrement - Je l'ai fait de la mémoire - mais la requête SQL doit être bien.)