如何清除通过 SQL 中的 INFORMATION_SCHEMA.TABLES 查询选择的所有表?

How to clear all tables selected through a INFORMATION_SCHEMA.TABLES query in SQL?

结果是包含数百个表的列表,这些表具有应清除的无用行。如果不手动输入每一个,我怎么能这样做呢?

不尝试删除 所有 表,只删除通过 WHERE AND

选择的表
DECLARE @SQL_String NVARCHAR(MAX)
DECLARE @TableName  NVARCHAR(MAX)

DECLARE db_cursor CURSOR FOR
    -- You might want to modify this in order to get only 
    -- a specific subset of tables
    SELECT TABLE_NAME 
    FROM INFORMATION_SCHEMA.TABLES
OPEN db_cursor   

FETCH NEXT FROM db_cursor 
INTO @TableName

WHILE @@FETCH_STATUS = 0
BEGIN 

    SET @SQL_String = N'DELETE * FROM ' + QUOTENAME(@TableName)
    EXEC sp_executesql @SQL_STRING

    FETCH NEXT FROM db_cursor 
    INTO @TableName        
END   

CLOSE db_cursor   
DEALLOCATE db_cursor

像这样的东西应该可以解决问题。

一如既往,在没有 WHERE 子句的表中删除记录时,要非常小心。