sql-server - 截断一些表并将其余表保留在 SQL Server 中的同一数据库中

标签 sql-server azure truncate

环境: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/

相关文章:

java - 如何创建截断到最后一小时的新 Joda DateTime?

SQL Server 更新查询不起作用,但是,SQL 表示行受到影响

sql - 为什么这个删除语句有效?

sql-server - 如何在SQL Server查询中找到最近的时间?

azure - 有没有办法更改Azure云服务中的实例类型

magento - 在 Magento 中截断描述文本

SQL Server - 授予对所有现有和 future 数据库进行读取访问的登录权限

azure - 将客户端应用程序路由到不同端口后端 IIS 10

azure - 存储队列与服务总线队列 - 轮询/成本问题

awk - 使用 sed 删除特定列的小数