结果是一个包含应该清除的无用行的几百个表的列表。如果不手动输入每一个,我怎么能这样做?
不尝试删除所有表,只删除通过WHERE AND
选择的表答案 0 :(得分:0)
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
子句的表中的记录时,要非常小心。