Simultaneous SQL full backups of newly created databases I would like to take a backup of newly created databases but within a minute if the user creates three databases the script can able to take only one database but for one new database which was created 15 mins before it is working.
Anything I need alters to be able to take simultaneous multiple new database backups within the specified time (here the script job runs every 15 mins)?
Below is the script.
-- Alert on the new database(s) created in the past 15 mins
-- Replace with your recipients in line #24

-- declare the variable for interval Minutes to detect the new database(s)
DECLARE @IntervalInMinutes TINYINT -- check new database(s) in the past 15 mins(s)
SET @IntervalInMinutes = 15 -- replace with the number of mins you wish to check for new database(s)

select GETDATE()
-- check for new database(s)
IF EXISTS(  
    SELECT 1 
    FROM master.sys.databases db 
    WHERE DATEDIFF(MINUTE, db.create_date, GETDATE()) &lt;= @intervalInMinutes
        AND db.name &lt;&gt; 'tempdb') 
BEGIN -- new database(s) exist(s)

DECLARE @DBname varchar(64)

SELECT  @DBname =  [name]
    FROM master.sys.databases db 
    WHERE DATEDIFF(MINUTE, db.create_date, GETDATE()) &lt;= @intervalInMinutes
        AND db.name &lt;&gt; 'tempdb'

DECLARE @Path varchar(64)
declare @dates varchar(64)
set @dates = CONVERT(date, GETDATE(),112);
SET @Path  = 'H:\Fullbackups\'+ @DBname +'_'+ @dates+'.sqb'


BACKUP DATABASE  @DBname TO  
DISK =@Path
WITH NOFORMAT, NOINIT, SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10
--GO

P.S. I have not provided the dbmail and alert script here.
You can use a CREATE_DATABASE Event Notification to monitor database create events and this solution even works on Sql Express (where the Sql Agent doesn't exist). This link shows you how to set up SQL Mail for SQL Server Express.
I modified this example from Jonathan Kehayias, which was tracking autogrowth, to instead audit the create database event.
-- Using msdb prevents the need for certificate signing the
-- activation procedure to execute sp_send_dbmail across
-- databases
USE [msdb];
GO
 
-- Drop the notification if it exists
IF EXISTS (
        SELECT *
        FROM sys.server_event_notifications
        WHERE NAME = N'CaptureDatabaseCreateEvent'
        )
BEGIN
    DROP EVENT NOTIFICATION CaptureDatabaseCreateEvent ON SERVER;
END
 
-- Drop the route if it exists
IF EXISTS (
        SELECT *
        FROM sys.routes
        WHERE NAME = N'DatabaseCreateEventRoute'
        )
BEGIN
    DROP ROUTE DatabaseCreateEventRoute;
END
 
-- Drop the service if it exists
IF EXISTS (
        SELECT *
        FROM sys.services
        WHERE NAME = N'DatabaseCreateEventService'
        )
BEGIN
    DROP SERVICE DatabaseCreateEventService;
END
 
-- Drop the queue if it exists
IF EXISTS (
        SELECT *
        FROM sys.service_queues
        WHERE NAME = N'DatabaseCreateEventQueue'
        )
BEGIN
    DROP QUEUE DatabaseCreateEventQueue;
END
 
--  Create a service broker queue to hold the events
CREATE QUEUE [DatabaseCreateEventQueue]
    WITH STATUS = ON;
GO
 
--  Create a service broker service receive the events
CREATE SERVICE [DatabaseCreateEventService] ON QUEUE [DatabaseCreateEventQueue] ([http://schemas.microsoft.com/SQL/Notifications/PostEventNotification]);
GO

-- Create a service broker route to the service
CREATE ROUTE [DatabaseCreateEventRoute]
    WITH SERVICE_NAME = 'DatabaseCreateEventService'
        ,ADDRESS = 'LOCAL';
GO
 
-- Create the event notification to capture the events
CREATE EVENT NOTIFICATION [CaptureDatabaseCreateEvent] ON SERVER
    WITH FAN_IN
FOR CREATE_DATABASE TO SERVICE 'DatabaseCreateEventService'
    ,'current database';
GO
--  Alter the queue to use the activation procedure
ALTER QUEUE [DatabaseCreateEventQueue]
   WITH STATUS=ON,
      ACTIVATION
         (STATUS=ON,
          PROCEDURE_NAME = [ProcessDatabaseCreateEvents],
          MAX_QUEUE_READERS = 1,
          EXECUTE AS OWNER);
GO

I then tweaked his example stored procedure that consumes the event.
Make sure you change this line in the stored procedure to be your email address
@recipients = 'YourEmailAddress'
DROP PROCEDURE [dbo].[ProcessDatabaseCreateEvents];
GO
 
CREATE PROCEDURE [dbo].[ProcessDatabaseCreateEvents]
    WITH EXECUTE AS OWNER
AS
DECLARE @message_body XML;
DECLARE @message_sequence_number INT;
DECLARE @dialog UNIQUEIDENTIFIER;
DECLARE @email_message NVARCHAR(MAX);
 
WHILE (1 = 1)
BEGIN
    BEGIN TRANSACTION;
 
    -- Receive the next available message FROM the queue
    WAITFOR (
            RECEIVE TOP (1) -- just handle one message at a time
            @message_body = CAST(message_body AS XML) FROM dbo.DatabaseCreateEventQueue
            )
        ,TIMEOUT 1000;-- if queue empty for 1 sec, give UPDATE AND GO away
 
    -- If we didn't get anything, bail out
    IF (@@ROWCOUNT = 0)
    BEGIN
        ROLLBACK TRANSACTION;
        BREAK;
    END
 
    DECLARE @EventType VARCHAR(128);
    DECLARE @ServerName VARCHAR(128);
    DECLARE @PostTime VARCHAR(128);
    DECLARE @DatabaseName VARCHAR(128);
    DECLARE @TextData VARCHAR(max);
    DECLARE @GrowthPages INT;
 
    SELECT @EventType = @message_body.value('(/EVENT_INSTANCE/EventType)[1]', 'varchar(128)')
        ,@ServerName = @message_body.value('(/EVENT_INSTANCE/ServerName)[1]', 'varchar(128)')
        ,@PostTime = CAST(@message_body.value('(/EVENT_INSTANCE/PostTime)[1]', 'datetime') AS VARCHAR)
        ,@DatabaseName = @message_body.value('(/EVENT_INSTANCE/DatabaseName)[1]', 'varchar(128)');
 
    -- Generate formatted email message
    SELECT @email_message = 'The following DatabaseCreate event                                      occurred:' + CHAR(10) + CAST('ServerName: ' AS CHAR(25)) + @ServerName + CHAR(10) + CAST('PostTime: ' AS CHAR(25)) + @PostTime + CHAR(10) + CAST('DatabaseName: ' AS CHAR(25)) + @DatabaseName
    -- Send email using Database Mail
    EXEC msdb.dbo.sp_send_dbmail @profile_name = 'SqlServerEmailProfile'
        ,
        -- your defined email profile
        @recipients = 'YourEmailAddress'
        ,-- your email
        @subject = 'DatabaseCreate Event Notification'
        ,@body = @email_message;
 
    --  Commit the transaction.  At any point before this, we could roll
    --  back. The received message would be back on the queue AND the
    --  response wouldn't be sent.
    COMMIT TRANSACTION;
END

Then, I ran a simple create database
USE [master]
GO
DROP DATABASE IF EXISTS [TestCreateDb]
GO
CREATE DATABASE [TestCreateDb]

After a few seconds or so, I received the email with the event data in it. You can modify the event consuming stored procedure to capture and process whatever you need, such as initiating the backup immediately.