回答
您可以使用Top關鍵詞,就像您在選擇
Delete Top (500)
From myTable
Where Date < '01/01/2009'
在MSSQL 2005中,「500」需要放在括號內。例如。刪除頂部(500)。 – 2009-05-03 04:41:59
好的。修正它 – Jeremy 2009-05-03 04:49:27
否則知道括號()...哈哈括號[] – 2009-05-03 04:53:17
SET ROWCOUNT 500
DELETE FROM表名WHERE TheDate < @YourDate
如果您使用S QL Server 2005中,你可以這樣做:
DELETE TOP (500) FROM your_table
WHERE date_field < @my_particular_date
,或者你可以這樣做:
SET ROWCOUNT 500
DELETE your_table
WHERE date_field < @my_particular_date
在SQL Server 2000中
,你可以這樣做:
DELETE your_table
WHERE pk_field IN (
SELECT TOP (500) * FROM your_table
WHERE date_field < @my_particular_date
)
DELETE FROM Table_Name WHERE Primary_Key_Column IN (
SELECT TOP 500 Primary_Key_Column FROM Table_Name WHERE [Date] < '01/01/2009' ORDER BY Primary_Key_Column ASC
)
首頁只適用於Transact Sql,每個sql都有自己的版本
MySQL和posGres
Delete
From myTable
Where Date < '01/01/2009'
LIMIT 10;
對於Oracle:
SELECT
FROM myTable
WHERE Date < '01/01/2009'
and ROWNUM <= 10
我補充一點的是,你可能想在大部分的這些到底使用 「ORDER BY [日期] DESC」查詢。如果您有多個匹配的日期,您需要添加額外的列排序以刪除正確的值。
這當然假設你確實有一個「createddate」或「modifieddate」,你可以用它來排序。您沒有指定它是最早創建的還是最舊的未修改的。 (也就是說,如果ID = 1是最老的,但是我昨天修改過它,如果它仍然被刪除?),如果按主鍵進行排序,則需要小心 - 假設您使用的是增量主鍵而不是GUID或者...
- 1. 從R表中選擇只有500行
- 2. 從data.table刪除只有NAs的行
- 3. 從表中刪除有限制的行
- 4. 從所有表中刪除行
- 5. 從數據表中刪除現有行
- 6. 如何從子表中刪除從父表中刪除的行?
- 7. 從表中刪除多行
- 8. 從表中刪除多行
- 9. 從表中刪除一行
- 10. 從表中刪除X行
- 11. codeigniter從表中刪除行
- 12. 從HTML表中刪除行
- 13. PostgreSQL只從父表中刪除
- 14. 從sqlite數據庫中刪除除最新500行以外的所有數據
- 15. 從supreview中刪除,只有它存在
- 16. DataGridView刪除行只刪除備用行
- 17. 如何從父表中刪除一行而不從Child表中刪除一行?
- 18. 如果從主表中刪除行,則從其他表中刪除行
- 19. 如何從表中刪除行而不從參考表中刪除一行?
- 20. 從左表中刪除多行的行
- 21. 從表中刪除n行至m行
- 22. 從表中刪除空白行,沒有空白行時刪除錯誤
- 23. 從列表中刪除一行並將所有連續行刪除到N?
- 24. 從URL列表中刪除只有頂級目錄的URL?
- 25. 從列表中刪除元素只有迭代器
- 26. 刪除ASP.NET表中的所有錶行
- 27. 只從文件的行刪除模式
- 28. 從視圖刪除行從基表刪除行 - MYsql?
- 29. 刪除錶行,從總和
- 30. 刪除行從表HREF
SQL Server的哪個版本? 2000? 2005年? 2008年? 7.0? 6.5? – 2009-05-03 04:52:01
你的意思是說,只要他們比特定的日期早,你就想刪除最早的500個?你說它的方式,以及下面的一些答案實現它的方式(我認爲),你可以把它留給數據庫來選擇要刪除的行,如果有足夠多的500個以上的話。 – 2009-05-03 05:33:19