Skip to content

Instantly share code, notes, and snippets.

@shaneis
Last active September 9, 2018 20:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shaneis/12e08b4b9e081b49233c8032fd0d14ca to your computer and use it in GitHub Desktop.
Save shaneis/12e08b4b9e081b49233c8032fd0d14ca to your computer and use it in GitHub Desktop.
Trigger to capture database creation and command used.
-- region Server Trigger
IF EXISTS (SELECT * FROM sys.server_triggers WHERE name = N'NewDatabase') DROP TRIGGER NewDatabase ON ALL SERVER;
GO
CREATE TRIGGER NewDatabase
ON ALL SERVER
FOR CREATE_DATABASE
AS
SELECT EVENTDATA().value('(/EVENT_INSTANCE/ServerName)[1]', 'nvarchar(256)') AS ServerName,
EVENTDATA().value('(/EVENT_INSTANCE/DatabaseName)[1]', 'nvarchar(128)') AS DatabaseName,
EVENTDATA().value('(/EVENT_INSTANCE/PostTime)[1]', 'datetime') AS CreateTime,
EVENTDATA().value('(/EVENT_INSTANCE/LoginName)[1]', 'nvarchar(256)') AS CreatedBy,
EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]', 'nvarchar(max)') AS CreationCommand;
GO
-- endregion
-- region Simple Database
IF EXISTS (SELECT * FROM sys.databases WHERE [name] = N'NewOne') DROP DATABASE NewOne;
GO
CREATE DATABASE NewOne;
GO
-- endregion
-- region Database with options.
IF (SELECT value_in_use FROM sys.configurations WHERE name = N'contained database authentication') <> 1 BEGIN
EXEC sp_configure @configname = N'contained database authentication', @configvalue = 1;
RECONFIGURE
END
IF EXISTS (SELECT * FROM sys.databases WHERE [name] = N'NewYear') DROP DATABASE NewYear;
GO
CREATE DATABASE NewYear
CONTAINMENT = PARTIAL
WITH TWO_DIGIT_YEAR_CUTOFF = 2099;
GO
-- endregion
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment