环境:Azure SQL Server 中的 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
返回
;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-server - 截断一些表并将其余表保留在 SQL Server 中的同一数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39755871/