我有10個表,比如Table_1,Table_2,Table_3,Table_4 ...,Table_10 ..我必須從除Table_4以外的所有表中刪除數據。 (使用'LIKE','IN'等)「從Tablename中刪除*表,如Table NOT IN('Table_4')」..從SQL表中刪除數據
0
A
回答
1
如果表的數量超過10,你不想列出刪除語句中的所有表。你應該堅持到目錄和使用遊標:
declare @table nvarchar(max)
delcare @cur cursor
set @cur = cursor fast_forward for
select name
from sys.tables
where name like 'Table_%'
and name not like 'Table_4'
open @cur
fetch next from @cur into @table
while(@@fetch_status = 0)
begin
sp_executesql 'DELETE FROM ' + @table
fetch next from @cur into @table
end
close @cur
deallocate @cur
編輯:這個答案是MS SQL只:)
-1
寫一個刪除查詢與出TABLE_4
delete from Table_1,Table_2,Table_3,Table_5,......Table10
+0
如果你有成千上萬的表?你會繼續手動寫嗎? – 2012-01-18 16:25:12
+0
這裏只有十張桌子,所以我建議 – Nighil 2012-01-18 18:03:07
+0
如果我說我有1000張桌子,並說出你的建議是什麼? – 2012-01-19 03:09:14
0
use [db_name]
declare @sql nvarchar(max)
select @SQL =
(select ';
DELETE FROM ' + quotename(TABLE_SCHEMA) + '.' +
quotename(TABLE_NAME) from INFORMATION_SCHEMA.TABLES where TABLE_TYPE = 'BASE TABLE'
and TABLE_NAME not in ('mytab1', 'mytab2')
ORDER BY Table_Schema, TABLE_NAME
FOR XML PATH(''), type).value ('.','nvarchar(max)')
print @SQL -- verify
它將創建刪除查詢並使用此查詢刪除所需的表,並跳過您不需要的。
相關問題
- 1. 從表中刪除數據
- 2. 根據sql條件從表中刪除
- 3. 從SQL Server數據庫中的所有表數據刪除,除了一些表
- 4. SQL查詢從表中定義的表中刪除數據
- 5. 從SQL數據庫中刪除android
- 6. 如何從SQL數據庫中刪除
- 7. 從SQL數據庫中刪除
- 8. 刪除SQL表中的分層數據
- 9. 刪除從SQL表
- 10. 從表中刪除行數Transact-SQL
- 11. 從表中刪除後從數據庫中刪除ADF
- 12. 從ODBC(SQL Server)中刪除數據庫名稱表列表
- 13. 從SQL Server 2008中的數據透視表中刪除NULL
- 14. 從數據庫中刪除/刪除
- 15. 從數據表中刪除列
- 16. 從列表視圖中刪除數據
- 17. Lisp從列表中刪除數據
- 18. 從多表中刪除數據
- 19. 數據沒有從sqlite3表中刪除
- 20. 從數據表中刪除行
- 21. 刪除從屬表中的數據
- 22. 從sqlite表中刪除數據iphone sdk?
- 23. 從Azure表中刪除數據
- 24. 根據屬性數從表中刪除
- 25. 從數據表中刪除現有行
- 26. 從cdc表中刪除數據
- 27. 從數據集中刪除表格
- 28. 數據不會從表中刪除
- 29. 從巨大的表中刪除數據
- 30. 從數據表中刪除行+ AcceptChanges
你使用哪個sql server? – 2012-01-18 11:59:42
什麼數據庫?我還沒有想到它,但你可能能夠從模式中獲取表名,然後做...與他們的東西。 – cha0site 2012-01-18 11:59:59
我的鏈接對你有幫助嗎? – 2012-01-18 16:36:58