_146/****** Object: Job [Reduce Database Sizes] Script Date: 8/6/2025 12:25:07 PM ******/
_146DECLARE @ownerLoginName NVARCHAR(128);
_146-- Get the current user's login name
_146SET @ownerLoginName = SUSER_SNAME();
_146DECLARE @ReturnCode INT
_146SELECT @ReturnCode = 0
_146/****** Object: JobCategory [Database Maintenance] Script Date: 8/6/2025 12:25:07 PM ******/
_146IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'Database Maintenance' AND category_class=1)
_146EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'Database Maintenance'
_146IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
_146DECLARE @jobId BINARY(16)
_146EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'Reduce Database Sizes',
_146 @notify_level_eventlog=0,
_146 @notify_level_email=0,
_146 @notify_level_netsend=0,
_146 @notify_level_page=0,
_146 @description=N'No description available.',
_146 @category_name=N'Database Maintenance',
_146 @owner_login_name=@ownerLoginName, @job_id = @jobId OUTPUT
_146IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
_146/****** Object: Step [Update to Simple Recovery] Script Date: 8/6/2025 12:25:07 PM ******/
_146EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Update to Simple Recovery',
_146 @cmdexec_success_code=0,
_146 @on_success_action=3,
_146 @on_success_step_id=0,
_146 @os_run_priority=0, @subsystem=N'TSQL',
_146 @command=N'DECLARE @databaseName nvarchar(max);
_146DECLARE @sql nvarchar(max);
_146DECLARE database_cursor CURSOR FOR
_146 ''ALTER DATABASE ['' + d.[name] + ''] SET RECOVERY SIMPLE;'' AS [Query]
_146 [sys].[databases] AS d
_146 d.[recovery_model_desc] != ''SIMPLE''
_146FETCH NEXT FROM database_cursor
_146INTO @databaseName, @sql
_146WHILE @@FETCH_STATUS = 0
_146 PRINT ''Altering database '' + @databaseName;
_146 FETCH NEXT FROM database_cursor
_146 INTO @databaseName, @sql
_146CLOSE database_cursor;
_146DEALLOCATE database_cursor;',
_146 @database_name=N'master',
_146IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
_146/****** Object: Step [Shrink Database Files] Script Date: 8/6/2025 12:25:07 PM ******/
_146EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Shrink Database Files',
_146 @cmdexec_success_code=0,
_146 @on_success_action=1,
_146 @on_success_step_id=0,
_146 @os_run_priority=0, @subsystem=N'TSQL',
_146 @command=N'DECLARE @databaseName nvarchar(max);
_146DECLARE @databaseFileName nvarchar(max);
_146DECLARE @sql nvarchar(max);
_146DECLARE database_cursor CURSOR FOR
_146 ''USE ['' + d.[name] + '']; DBCC SHRINKFILE(N'''''' + mf.[name] + '''''', 0, TRUNCATEONLY);'' AS [Query]
_146 [sys].[master_files] AS mf
_146 INNER JOIN [sys].[databases] AS d ON
_146 mf.[database_id] = d.[database_id]
_146FETCH NEXT FROM database_cursor
_146INTO @databaseName, @databaseFileName, @sql
_146WHILE @@FETCH_STATUS = 0
_146 PRINT ''Shrinking database file '' + @databaseFileName + '' of database '' + @databaseName;
_146 FETCH NEXT FROM database_cursor
_146 INTO @databaseName, @databaseFileName, @sql
_146CLOSE database_cursor;
_146DEALLOCATE database_cursor;',
_146 @database_name=N'master',
_146IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
_146EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
_146IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
_146EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Daily at 1pm',
_146 @freq_subday_type=1,
_146 @freq_subday_interval=0,
_146 @freq_relative_interval=0,
_146 @freq_recurrence_factor=0,
_146 @active_start_date=20250806,
_146 @active_end_date=99991231,
_146 @active_start_time=130000,
_146 @active_end_time=235959,
_146 @schedule_uid=N'2a890b02-284f-46fd-bab9-dbb267035bd2'
_146IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
_146EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
_146IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
_146 IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION