截断一些表并将其余表保留在 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]
环境: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]