截断一些表并将其余表保留在 SQL 服务器中的同一数据库中

Truncate some tables and keep rest of tables in the same database in SQL Server

环境:SQL Azure SQL 服务器中的 Server 2016。

我的数据库中大约有 600 个表。现在我想截断其中的 120 个并保留其余的。我怎样才能做到这一点?

而不是使用

Truncate table my_table_name1,
Truncate table my_table_name2,
...

有没有更快的方法来选择我想要截断的所需表?

谢谢

假设您要截断的表有一些关键模式,也许一点动态 SQL 可能会有所帮助。

Declare @SQL varchar(max) = ''
Select @SQL = @SQL +';Truncate Table '+QUOTENAME(TABLE_SCHEMA)+'.'+QUOTENAME(TABLE_NAME)+char(13) From INFORMATION_SCHEMA.Tables Where Table_Name like '%OD%'

Select @SQL
--Exec(@SQL) -- Only of Satisifed with the results

Returns

;Truncate Table [dbo].[OD-Date]
;Truncate Table [dbo].[OD]
;Truncate Table [dbo].[OD-OH]
;Truncate Table [dbo].[OD-Tier]
;Truncate Table [dbo].[OD-Tally]
;Truncate Table [dbo].[OD-Map]
;Truncate Table [dbo].[OD-XP]
;Truncate Table [dbo].[OD-Msg]