📜  删除 azure sql 数据库中的所有表 - SQL (1)

📅  最后修改于: 2023-12-03 14:50:17.080000             🧑  作者: Mango

删除 Azure SQL 数据库中的所有表 - SQL

如果您需要在 Azure SQL 数据库中删除所有表,以下 SQL 查询可以帮助您实现这一功能。

DECLARE @table_name SYSNAME
DECLARE cur CURSOR LOCAL FORWARD_ONLY FOR
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
OPEN cur
FETCH NEXT FROM cur INTO @table_name
WHILE @@FETCH_STATUS = 0
BEGIN
    EXEC ('DROP TABLE ' + @table_name)
    FETCH NEXT FROM cur INTO @table_name
END
CLOSE cur
DEALLOCATE cur

该查询会遍历 INFORMATION_SCHEMA.TABLES 视图中所有 BASE TABLE 类型的对象,并逐个删除。

为了执行该查询,您需要具有执行 DROP TABLE 命令的权限。

请注意:该查询将删除 Azure SQL 数据库中所有表,包括存储其中的数据。因此,请在进行操作之前确保已备份数据并已了解清楚操作后果。

以上代码片段展示如下:

`` `sql
DECLARE @table_name SYSNAME
DECLARE cur CURSOR LOCAL FORWARD_ONLY FOR
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
OPEN cur
FETCH NEXT FROM cur INTO @table_name
WHILE @@FETCH_STATUS = 0
BEGIN
    EXEC ('DROP TABLE ' + @table_name)
    FETCH NEXT FROM cur INTO @table_name
END
CLOSE cur
DEALLOCATE cur
` ``