SQL Server ユーザーテーブル全部 drop 雑クエリ

メモ:全 Temporal Table を無効化するクエリ - お だ のスペース

をテーブル削除まで含めてスキーマ対応したやつ。
依存関係無視してるので、全部 drop されるまで連打してください。
※段々消えてって最終的に全部 drop される

is_ms_shipped = 0 の条件入れたので、SQL Server のシステムテーブルは消えないはず。*1

declare @sql nvarchar(max) 

select @sql = concat(@sql, N'alter table ', schema_name([schema_id]), '.', [name], N' set (system_versioning = off);')
from [sys].[tables] 
where [temporal_type] = 2
  and [is_ms_shipped] = 0

-- 一応クエリ確認
select @sql

exec (@sql)
set @sql = null
select @sql = concat(@sql, N'drop table ', schema_name([schema_id]), '.', [name], N';')
from [sys].[tables]
where [type] = 'U'
  and [is_ms_shipped] = 0

select @sql
exec (@sql)

*1:この条件なくて間違って master データベースで実行して、システムテーブル吹っ飛んだ。。