Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- USE master;
- GO
- CREATE SERVER AUDIT Test_Server_Audit
- TO FILE ( FILEPATH = 'C:Audits' );
- GO
- ALTER SERVER AUDIT Test_Server_Audit
- WITH (STATE = ON);
- GO
- USE AdventureWorks;
- GO
- CREATE DATABASE AUDIT SPECIFICATION Test_Database_Audit
- FOR SERVER AUDIT Test_Server_Audit
- ADD (SELECT ON Person.Address BY PUBLIC)
- WITH (STATE = ON);
- GO
- SELECT *
- FROM Person.Address;
- GO
- SELECT *
- FROM fn_get_audit_file('C:Audits*', NULL, NULL);
- GO
- USE AdventureWorks;
- GO
- ALTER DATABASE AUDIT SPECIFICATION Test_Database_Audit
- WITH (STATE = OFF);
- GO
- DROP DATABASE AUDIT SPECIFICATION Test_Database_Audit;
- GO
- USE master;
- GO
- ALTER SERVER AUDIT Test_Server_Audit
- WITH (STATE = OFF);
- GO
- DROP SERVER AUDIT Test_Server_Audit;
- GO
- SET ANSI_WARNINGS OFF;
- SET NOCOUNT ON;
- GO
- ;WITH agg AS
- (
- SELECT
- last_user_seek,
- last_user_scan,
- last_user_lookup,
- last_user_update
- FROM
- sys.dm_db_index_usage_stats
- WHERE
- database_id = DB_ID()
- )
- SELECT
- last_read = MAX(last_read),
- last_write = MAX(last_write)
- FROM
- (
- SELECT last_user_seek, NULL FROM agg
- UNION ALL
- SELECT last_user_scan, NULL FROM agg
- UNION ALL
- SELECT last_user_lookup, NULL FROM agg
- UNION ALL
- SELECT NULL, last_user_update FROM agg
- ) AS x (last_read, last_write);
- ALTER DATABASE whatever SET OFFLINE;
- ALTER DATABASE whatever SET ONLINE;
- CREATE PROCEDURE [dbo].[sp_TakeInactiveDbOffline]
- @dbname varchar(100)
- AS
- BEGIN
- SET NOCOUNT ON;
- -- SQL credit: https://dba.stackexchange.com/a/86619/106936
- --SELECT last_user_seek, last_user_scan, last_user_lookup, last_user_update FROM sys.dm_db_index_usage_stats WHERE database_id = DB_ID(@dbname)
- if @dbname not in ('model', 'master', 'tempdb', 'msdb') and not exists (SELECT last_user_seek, last_user_scan, last_user_lookup, last_user_update FROM sys.dm_db_index_usage_stats WHERE database_id = DB_ID(@dbname))
- BEGIN
- exec ('ALTER DATABASE ' + @dbname + ' SET OFFLINE');
- END
- END
- DECLARE @command varchar(1000)
- SELECT @command = 'exec sp_TakeInactiveDbOffline ?'
- EXEC sp_MSforeachdb @command
Add Comment
Please, Sign In to add comment