我通常每天在 GUI 中执行这些操作
- 将数据库更改为简单恢复模式
- 收缩日志文件
- 收缩数据库文件
- 将数据库更改为完整恢复模式
我能看懂剧本,但不会写剧本。
我只想给出数据库名称,然后脚本必须执行上述任务,并可能显示它的日志
声明@DBname varchar(50)设置@DBname ='AdventureWorks'
在这 2 行之后
答案1
请尝试以下动态 T-SQL 语句:
DECLARE @exec nvarchar(max);
DECLARE @db nvarchar(max) = N'AdventureWorks';
SET @exec = N'ALTER DATABASE ' + QUOTENAME(@db) + N' SET RECOVERY SIMPLE';
EXEC sp_executesql @exec;
SET @exec = N'DBCC SHRINKFILE (' + QUOTENAME(@db) + N')';
EXEC sp_executesql @exec;
SET @exec = N'DBCC SHRINKFILE (' + QUOTENAME(@db) + N'_log)';
EXEC sp_executesql @exec;
SET @exec = N'ALTER DATABASE ' + QUOTENAME(@db) + N' SET RECOVERY FULL';
EXEC sp_executesql @exec;
将此代码添加到SQL Server 代理作业,它将保留执行的历史记录。稍后您可以右键单击该作业并查看其执行历史记录。
数据库文件将缩小到创建文件时指定的大小。
确保 AdventureWorks 和 AdventureWorks_log 是数据库文件的逻辑名称。