40 lines
1.1 KiB
Transact-SQL
40 lines
1.1 KiB
Transact-SQL
IF NOT EXISTS (SELECT 1 FROM sys.service_message_types WHERE name = 'AuditMessage') BEGIN
|
|
CREATE MESSAGE TYPE [AuditMessage]
|
|
VALIDATION = WELL_FORMED_XML;
|
|
END
|
|
GO
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM sys.service_message_types WHERE name = 'EndOfStream') BEGIN
|
|
CREATE MESSAGE TYPE EndOfStream;
|
|
END
|
|
GO
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM sys.service_contracts WHERE name = 'AuditContract') BEGIN
|
|
CREATE CONTRACT [AuditContract] (
|
|
[AuditMessage] SENT BY INITIATOR,
|
|
[EndOfStream] SENT BY INITIATOR
|
|
);
|
|
END
|
|
GO
|
|
|
|
IF OBJECT_ID('auditlog.usp_AuditProcessing') IS NULL BEGIN
|
|
EXEC('CREATE PROCEDURE auditlog.usp_AuditProcessing AS SELECT 1')
|
|
END
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM sys.service_queues WHERE name = 'AuditQueue') BEGIN
|
|
CREATE QUEUE auditlog.AuditQueue WITH STATUS=ON, ACTIVATION (
|
|
STATUS = ON
|
|
,MAX_QUEUE_READERS = 1
|
|
,PROCEDURE_NAME = auditlog.usp_AuditProcessing
|
|
,EXECUTE AS 'kreta_tech_user'
|
|
);
|
|
END
|
|
GO
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM sys.services WHERE name = 'AuditService') BEGIN
|
|
CREATE SERVICE [AuditService]
|
|
ON QUEUE auditlog.AuditQueue ([AuditContract]);
|
|
END
|
|
GO
|
|
|