1. 首页
  2. 存储
  3. SQL Server删除所有用户对象并清空数据库

SQL Server删除所有用户对象并清空数据库

上传者: 2023-04-15 13:44:53上传 DOCX文件 51.97KB 热度 9次

在MS SQL Server中,删除所有用户对象可以通过运行以下查询来完成:

USE [database_name];

GO

DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql += N'DROP ' +

CASE WHEN type_desc LIKE 'USER_%'

THEN N'USER '

ELSE N''

END +

QUOTENAME(name) + N';' + CHAR(13)

FROM sys.database_principals

WHERE type IN ('S', 'U', 'G')

AND name NOT IN ('dbo', 'guest', 'INFORMATION_SCHEMA', 'sys');

PRINT @sql;

EXEC sys.sp_executesql @sql;

ALTER DATABASE [database_name] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

ALTER DATABASE [database_name] SET MULTI_USER;

然后,您可以通过运行以下查询来清空数据库:

USE [database_name];

GO

DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql += N'DELETE FROM ' + QUOTENAME(SCHEMA_NAME(schema_id)) +

N'.' + QUOTENAME(name) + N';' + CHAR(13)

FROM sys.tables;

PRINT @sql;

EXEC sys.sp_executesql @sql;

注意:在操作之前,请务必备份您的数据库。此外,此操作会删除数据库中的所有数据。要在运行之前先检查您的查询结果,以确保您希望删除的所有对象已包含在内。

下载地址
用户评论