SQL 有选择性批量清空整个数据库但保留结构

  DECLARE @TruncateSQL VARCHAR(80)
  DECLARE @iCount int=0
  DECLARE name_cursor  cursor for 
  select 'Truncate Table '+ TABLE_NAME from INFORMATION_SCHEMA.TABLES 
  WHERE TABLE_NAME NOT IN('System','System2','Operator','OilDef','UserRoll','RollFunction','FunctionType',
'FunctionTType','StationOrgCode','ICCard','ChangeClass','dispensor','Tank')
  Open name_cursor
  FETCH NEXT FROM name_cursor INTO @TruncateSQL
  WHILE @@FETCH_STATUS=0
  BEGIN
    Exec (@TruncateSQL) 
	print @TruncateSQL
	set @iCount=@iCount+1
    FETCH NEXT FROM name_cursor INTO @TruncateSQL
  END
  CLOSE name_cursor
  DEALLOCATE name_cursor
  print '共清空表数量' + CAST(@iCount AS VARCHAR)

效果:

posted @ 2022-10-04 00:13  IT情深  阅读(3)  评论(0编辑  收藏  举报