2012-04-14 144 views
0

在SQLite(對於C#.NET)中是否存在執行此操作的SQL命令?從SQLite的所有表中刪除

DELETE * FROM * WHERE id='idnumber'

+0

可能重複[Sqlite:如何重置所有數據庫表?](http://stackoverflow.com/questions/3600075/sqlite-how-do-i-reset-all-database-tables) – 2012-04-14 13:58:35

+0

@juergend這個問題是關於刪除所有表中的單個記錄,而不是所有表中的所有記錄。 – CJxD 2012-04-14 14:02:07

+0

不是不是。這完全不像。你應該在投票之前嘗試閱讀一個問題。 – 2012-04-14 14:04:30

回答

2

沒有,有沒有。

一種方法是編寫一個腳本來query metadata tables創建另一個腳本一系列個人delete陳述,每桌之一。

一個例子可以(假設每有一個ID列):

select 'delete from ' || name || ' where ID = 42' 
from sqlite_master 
where type = 'table' 

這將產生對每個表,然後您可以捕獲和運行的腳本delete聲明。

但它通常是爲數據庫開發人員知道他們的表的名稱:-)

+0

我知道這個名字,但是我有很多表= P 反正,這個'小腳本'怎麼做? – CJxD 2012-04-14 14:00:26

+0

@CJxD,我添加了一個小片段,希望這是一個很好的起點。這是未經測試的,但你應該明白。 – paxdiablo 2012-04-14 14:08:19

+2

看起來很狡猾,我喜歡它! – CJxD 2012-04-14 14:23:41

-1

你可以嘗試使用它是一個好主意:

//You can do it with the following DANGEROUS commands: 

PRAGMA writable_schema = 1; 
delete from sqlite_master where type = 'table'; 
PRAGMA writable_schema = 0; 



//you then want to recover the deleted space with 
VACUUM 

//and a good test to make sure everything is ok 
PRAGMA INTEGRITY_CHECK; 

希望這將是對你有用。

+2

這將刪除表格,是嗎?我認爲OP只是想刪除所有表中具有匹配ID的所有行。所以可能不會_that_有用:-) – paxdiablo 2012-04-14 14:02:08

+0

這是你的博客嗎? http://myratnest.blogspot.com/2010/08/want-to-delete-all-tables-in-sqlite.html – 2012-04-14 14:30:19

+0

或你的答案? http://stackoverflow.com/questions/525512/drop-all-tables-command – 2012-04-14 14:31:04