-- Copyright (c) Microsoft Corporation. All rights reserved. SET NOCOUNT ON declare @localized_string_AddWriterRole_Failed nvarchar(256) set @localized_string_AddWriterRole_Failed = N'Failed adding the ''tracking_writer'' role' DECLARE @ret int, @Error int IF NOT EXISTS( SELECT 1 FROM [dbo].[sysusers] WHERE name=N'tracking_writer' and issqlrole=1 ) BEGIN EXEC @ret = sp_addrole N'tracking_writer' SELECT @Error = @@ERROR IF @ret <> 0 or @Error <> 0 RAISERROR( @localized_string_AddWriterRole_Failed, 16, -1 ) END GO declare @localized_string_AddReaderRole_Failed nvarchar(256) set @localized_string_AddReaderRole_Failed = N'Failed adding the ''tracking_reader'' role' DECLARE @ret int, @Error int IF NOT EXISTS( SELECT 1 FROM [dbo].[sysusers] WHERE name=N'tracking_reader' and issqlrole=1 ) BEGIN EXEC @ret = sp_addrole N'tracking_reader' SELECT @Error = @@ERROR IF @ret <> 0 or @Error <> 0 RAISERROR( @localized_string_AddReaderRole_Failed, 16, -1 ) END GO declare @localized_string_AddProfileReaderWriterRole_Failed nvarchar(256) set @localized_string_AddProfileReaderWriterRole_Failed = N'Failed adding the ''tracking_profilereaderwriter'' role' DECLARE @ret int, @Error int IF NOT EXISTS( SELECT 1 FROM [dbo].[sysusers] WHERE name=N'tracking_profilereaderwriter' and issqlrole=1 ) BEGIN EXEC @ret = sp_addrole N'tracking_profilereaderwriter' SELECT @Error = @@ERROR IF @ret <> 0 or @Error <> 0 RAISERROR( @localized_string_AddProfileReaderWriterRole_Failed, 16, -1 ) END GO /* Drop Views */ IF OBJECT_ID('[dbo].[vw_TrackingPartitionSetName]') IS NOT NULL DROP VIEW [dbo].[vw_TrackingPartitionSetName] GO IF OBJECT_ID('[dbo].[vw_TrackingPartitionInterval]') IS NOT NULL DROP VIEW [dbo].[vw_TrackingPartitionInterval] GO IF OBJECT_ID('[dbo].[vw_TrackingProfileInstance]') IS NOT NULL DROP VIEW [dbo].[vw_TrackingProfileInstance] GO IF OBJECT_ID('[dbo].[vw_TrackingProfile]') IS NOT NULL DROP VIEW [dbo].[vw_TrackingProfile] GO IF OBJECT_ID('[dbo].[vw_DefaultTrackingProfile]') IS NOT NULL DROP VIEW [dbo].[vw_DefaultTrackingProfile] GO IF OBJECT_ID('[dbo].[vw_AddedActivity]') IS NOT NULL DROP VIEW [dbo].[vw_AddedActivity] GO IF OBJECT_ID('[dbo].[vw_RemovedActivity]') IS NOT NULL DROP VIEW [dbo].[vw_RemovedActivity] GO IF OBJECT_ID('[dbo].[vw_TrackingDataItemAnnotation]') IS NOT NULL DROP VIEW [dbo].[vw_TrackingDataItemAnnotation] GO IF OBJECT_ID('[dbo].[vw_EventAnnotation]') IS NOT NULL DROP VIEW [dbo].[vw_EventAnnotation] GO IF OBJECT_ID('[dbo].[vw_TrackingDataItem]') IS NOT NULL DROP VIEW [dbo].[vw_TrackingDataItem] GO IF OBJECT_ID('[dbo].[vw_ActivityExecutionStatusEvent]') IS NOT NULL DROP VIEW [dbo].[vw_ActivityExecutionStatusEvent] GO IF OBJECT_ID('[dbo].[vw_UserEvent]') IS NOT NULL DROP VIEW [dbo].[vw_UserEvent] GO IF OBJECT_ID('[dbo].[vw_ActivityInstance]') IS NOT NULL DROP VIEW [dbo].[vw_ActivityInstance] GO IF OBJECT_ID('[dbo].[vw_TrackingWorkflowEvent]') IS NOT NULL DROP VIEW [dbo].[vw_TrackingWorkflowEvent] GO IF OBJECT_ID('[dbo].[vw_WorkflowInstanceEvent]') IS NOT NULL DROP VIEW [dbo].[vw_WorkflowInstanceEvent] GO IF OBJECT_ID('[dbo].[vw_WorkflowInstance]') IS NOT NULL DROP VIEW [dbo].[vw_WorkflowInstance] GO IF OBJECT_ID('[dbo].[vw_Activity]') IS NOT NULL DROP VIEW [dbo].[vw_Activity] GO IF OBJECT_ID('[dbo].[vw_Workflow]') IS NOT NULL DROP VIEW [dbo].[vw_Workflow] GO IF OBJECT_ID('[dbo].[vw_Type]') IS NOT NULL DROP VIEW [dbo].[vw_Type] GO IF OBJECT_ID('[dbo].[vw_ActivityExecutionStatus]') IS NOT NULL DROP VIEW [dbo].[vw_ActivityExecutionStatus] GO /* Drop Tables */ IF OBJECT_ID('TrackingPartitionSetName') IS NOT NULL DROP TABLE dbo.TrackingPartitionSetName GO IF OBJECT_ID('TrackingPartitionInterval') IS NOT NULL DROP TABLE dbo.TrackingPartitionInterval GO IF OBJECT_ID('TrackingProfileInstance') IS NOT NULL DROP TABLE dbo.TrackingProfileInstance GO IF OBJECT_ID('TrackingProfile') IS NOT NULL DROP TABLE dbo.TrackingProfile GO IF OBJECT_ID('DefaultTrackingProfile') IS NOT NULL DROP TABLE dbo.DefaultTrackingProfile GO IF OBJECT_ID('[dbo].[AddedActivity]') IS NOT NULL DROP TABLE [dbo].[AddedActivity] GO IF OBJECT_ID('[dbo].[RemovedActivity]') IS NOT NULL DROP TABLE [dbo].[RemovedActivity] GO IF OBJECT_ID('TrackingDataItemAnnotation') IS NOT NULL DROP TABLE dbo.TrackingDataItemAnnotation GO IF OBJECT_ID('EventAnnotation') IS NOT NULL DROP TABLE dbo.EventAnnotation GO IF OBJECT_ID('TrackingDataItem') IS NOT NULL DROP TABLE dbo.TrackingDataItem GO IF OBJECT_ID('ActivityExecutionStatusEvent') IS NOT NULL DROP TABLE dbo.ActivityExecutionStatusEvent GO IF OBJECT_ID('UserEvent') IS NOT NULL DROP TABLE dbo.UserEvent GO IF OBJECT_ID('ActivityInstance') IS NOT NULL DROP TABLE dbo.ActivityInstance GO IF OBJECT_ID('TrackingWorkflowEvent') IS NOT NULL DROP TABLE [dbo].[TrackingWorkflowEvent] GO IF OBJECT_ID('WorkflowInstanceEvent') IS NOT NULL DROP TABLE [dbo].[WorkflowInstanceEvent] GO IF OBJECT_ID('WorkflowInstance') IS NOT NULL DROP TABLE dbo.WorkflowInstance GO IF OBJECT_ID('[dbo].[Activity]') IS NOT NULL DROP TABLE [dbo].[Activity] GO IF OBJECT_ID('[dbo].[Workflow]') IS NOT NULL DROP TABLE [dbo].[Workflow] GO IF OBJECT_ID('Type') IS NOT NULL DROP TABLE dbo.Type GO IF OBJECT_ID('ActivityExecutionStatus') IS NOT NULL DROP TABLE dbo.ActivityExecutionStatus GO /* Create Tables */ CREATE TABLE dbo.ActivityExecutionStatus ( [ExecutionStatusId] tinyint NOT NULL ,[Description] nvarchar(128) ) GO INSERT dbo.ActivityExecutionStatus VALUES ( 0, N'Initialized' ) INSERT dbo.ActivityExecutionStatus VALUES ( 1, N'Executing' ) INSERT dbo.ActivityExecutionStatus VALUES ( 2, N'Canceling' ) INSERT dbo.ActivityExecutionStatus VALUES ( 3, N'Closed' ) INSERT dbo.ActivityExecutionStatus VALUES ( 4, N'Compensating' ) INSERT dbo.ActivityExecutionStatus VALUES ( 5, N'Faulting' ) GO CREATE TABLE [dbo].[Type] ( [TypeId] int NOT NULL identity CONSTRAINT pk_Type_TypeId PRIMARY KEY CLUSTERED ,[TypeFullName] nvarchar(128) NOT NULL ,[AssemblyFullName] nvarchar(256) NOT NULL ,[IsInstanceType] bit NOT NULL ) CREATE UNIQUE NONCLUSTERED INDEX [idx_Type_TypeFullName_AssemblyFullName] ON [dbo].[Type]([TypeFullName],[AssemblyFullName]) WITH IGNORE_DUP_KEY GO CREATE TABLE [dbo].[Workflow] ( [WorkflowTypeId] int NOT NULL CONSTRAINT [fk_Workflow_WorkflowTypeId_Type_TypeId] FOREIGN KEY REFERENCES dbo.Type(TypeId) ,[WorkflowDefinition] ntext NULL ) CREATE UNIQUE CLUSTERED INDEX [idx_Workflow_WorkflowTypeId] ON [dbo].[Workflow]([WorkflowTypeId]) WITH IGNORE_DUP_KEY GO CREATE TABLE [dbo].[Activity] ( [WorkflowTypeId] int NOT NULL CONSTRAINT [fk_Workflow_WorkflowTypeId] FOREIGN KEY REFERENCES [dbo].[Workflow]([WorkflowTypeId]) ,[QualifiedName] nvarchar(128) NOT NULL ,[ActivityTypeId] int NOT NULl ,[ParentQualifiedName] nvarchar(128) NULL ) CREATE NONCLUSTERED INDEX [idx_Activity_WorkflowTypeId] ON [dbo].[Activity]([WorkflowTypeId]) CREATE NONCLUSTERED INDEX [idx_Activity_QualifiedName] ON [dbo].[Activity]([QualifiedName]) ALTER TABLE [dbo].[Activity] ADD CONSTRAINT [pk_WorkflowTypeId_QualifiedName] PRIMARY KEY ([WorkflowTypeId],[QualifiedName]) GO CREATE TABLE [dbo].[WorkflowInstance] ( [WorkflowInstanceInternalId] bigint NOT NULL identity CONSTRAINT [pk_WorkflowInstance_WorkflowInstanceInternalId] PRIMARY KEY CLUSTERED ,[WorkflowInstanceId] uniqueidentifier NOT NULL ,[ContextGuid] uniqueidentifier NOT NULL ,[CallerInstanceId] uniqueidentifier NULL ,[CallPath] nvarchar(400) NULL ,[CallerContextGuid] uniqueidentifier NULL ,[CallerParentContextGuid] uniqueidentifier NULL ,[WorkflowTypeId] int NOT NULL ,[InitializedDateTime] datetime NOT NULL ,[DbInitializedDateTime] datetime NOT NULL default(getutcdate()) ,[EndDateTime] datetime NULL ,[DbEndDateTime] datetime NULL ) CREATE NONCLUSTERED INDEX [idx_WorkflowInstance_WorkflowInstanceId_ContextGuid] ON [dbo].[WorkflowInstance]([WorkflowInstanceId],[ContextGuid]) GO CREATE TABLE [dbo].[ActivityInstance] ( [WorkflowInstanceInternalId] bigint NOT NULL ,[ActivityInstanceId] bigint NOT NULL identity CONSTRAINT [pk_ActivityInstance_ActivityInstanceId] PRIMARY KEY NONCLUSTERED ,[QualifiedName] nvarchar(128) NOT NULL ,[ContextGuid] uniqueidentifier NOT NULL ,[ParentContextGuid] uniqueidentifier NULL ,[WorkflowInstanceEventId] bigint NULL ) CREATE CLUSTERED INDEX [idx_ActivityInstance_WorkflowInstanceInternalId] ON [dbo].[ActivityInstance]([WorkflowInstanceInternalId]) CREATE NONCLUSTERED INDEX [idx_ActivityInstance_WorkflowInstanceInternalId_QualifiedName_ContextGuid_ParentContextGuid] ON [dbo].[ActivityInstance]([WorkflowInstanceInternalId],[QualifiedName],[ContextGuid],[ParentContextGuid]) GO CREATE TABLE [dbo].[ActivityExecutionStatusEvent] ( [ActivityExecutionStatusEventId]bigint NOT NULL identity ,[WorkflowInstanceInternalId] bigint NOT NULL ,[EventOrder] int NOT NULL ,[ActivityInstanceId] bigint NOT NULL ,[ExecutionStatusId] tinyint NOT NULL ,[EventDateTime] datetime NOT NULL ,[DbEventDateTime] datetime NOT NULL default(getutcdate()) ) CREATE CLUSTERED INDEX [idx_ActivityExecutionStatusEvent_WorkflowInstanceInternalId] ON [dbo].[ActivityExecutionStatusEvent]([WorkflowInstanceInternalId]) GO CREATE TABLE [dbo].[UserEvent] ( [UserEventId] bigint NOT NULL identity ,[WorkflowInstanceInternalId] bigint NOT NULL ,[EventOrder] int NOT NULL ,[ActivityInstanceId] bigint NOT NULL ,[EventDateTime] datetime NOT NULL ,[UserDataKey] nvarchar(512) NULL ,[UserDataTypeId] int NULL ,[UserData_Str] nvarchar(512) NULL ,[UserData_Blob] image NULL ,[UserDataNonSerializable] bit NOT NULL ,[DbEventDateTime] datetime NOT NULL default(getutcdate()) ) CREATE CLUSTERED INDEX [idx_UserEvent_WorkflowInstanceInternalId] ON [dbo].[UserEvent]([WorkflowInstanceInternalId]) GO CREATE TABLE [dbo].[TrackingWorkflowEvent] ( [TrackingWorkflowEventId] tinyint NOT NULL CONSTRAINT [pk_TrackingWorkflowEvent_TrackingWorkflowEventId] PRIMARY KEY CLUSTERED ,[Description] nvarchar(32) NOT NULL ) INSERT [dbo].[TrackingWorkflowEvent] VALUES ( 0, N'Created' ) INSERT [dbo].[TrackingWorkflowEvent] VALUES ( 1, N'Completed' ) INSERT [dbo].[TrackingWorkflowEvent] VALUES ( 2, N'Idle' ) INSERT [dbo].[TrackingWorkflowEvent] VALUES ( 3, N'Suspended' ) INSERT [dbo].[TrackingWorkflowEvent] VALUES ( 4, N'Resumed' ) INSERT [dbo].[TrackingWorkflowEvent] VALUES ( 5, N'Persisted' ) INSERT [dbo].[TrackingWorkflowEvent] VALUES ( 6, N'Unloaded' ) INSERT [dbo].[TrackingWorkflowEvent] VALUES ( 7, N'Loaded' ) INSERT [dbo].[TrackingWorkflowEvent] VALUES ( 8, N'Exception' ) INSERT [dbo].[TrackingWorkflowEvent] VALUES ( 9, N'Terminated' ) INSERT [dbo].[TrackingWorkflowEvent] VALUES ( 10, N'Aborted' ) INSERT [dbo].[TrackingWorkflowEvent] VALUES ( 11, N'Changed' ) INSERT [dbo].[TrackingWorkflowEvent] VALUES ( 12, N'Started' ) GO CREATE TABLE [dbo].[WorkflowInstanceEvent] ( [WorkflowInstanceEventId] bigint NOT NULL identity CONSTRAINT [pk_WorkflowInstanceEvent_WorkflowInstanceEventId] PRIMARY KEY CLUSTERED ,[WorkflowInstanceInternalId] bigint NOT NULL ,[TrackingWorkflowEventId] tinyint NOT NULL ,[EventDateTime] datetime NOT NULL ,[EventOrder] int NOT NULL ,[EventArgTypeId] int NULL ,[EventArg] image NULL ,[DbEventDateTime] datetime NOT NULL default(getutcdate()) ) CREATE NONCLUSTERED INDEX [idx_WorkflowInstanceEvent_WorkflowInstanceInternalId] ON [dbo].[WorkflowInstanceEvent]([WorkflowInstanceInternalId]) GO CREATE TABLE [dbo].[TrackingDataItem] ( [TrackingDataItemId] bigint NOT NULL identity CONSTRAINT [pk_TrackingDataItem_TrackingDataItemId] PRIMARY KEY CLUSTERED ,[WorkflowInstanceInternalId] bigint NOT NULL ,[EventId] bigint NOT NULL ,[EventTypeId] char(1) NOT NULL ,[FieldName] nvarchar(256) NOT NULL ,[FieldTypeId] int NULL ,[Data_Str] nvarchar(512) NULL ,[Data_Blob] image NULL ,[DataNonSerializable] bit NOT NULL ) CREATE NONCLUSTERED INDEX [idx_TrackingDataItem_WorkflowInstanceInternalId_EventId_EventTypeId] ON [dbo].[TrackingDataItem]( [WorkflowInstanceInternalId], [EventId], [EventTypeId] ) GO CREATE TABLE [dbo].[TrackingDataItemAnnotation] ( [TrackingDataItemId] bigint NOT NULL ,[WorkflowInstanceInternalId] bigint NOT NULL ,[Annotation] nvarchar(1024) NOT NULL ) CREATE NONCLUSTERED INDEX [idx_TrackingDataItemAnnotation_TrackingDataItemId] ON [dbo].[TrackingDataItemAnnotation]( [TrackingDataItemId] ) CREATE NONCLUSTERED INDEX [idx_TrackingDataItemAnnotation_WorkflowInstanceInternalId] ON [dbo].[TrackingDataItemAnnotation]( [WorkflowInstanceInternalId] ) GO CREATE TABLE [dbo].[EventAnnotation] ( [WorkflowInstanceInternalId] bigint NOT NULL ,[EventId] bigint NOT NULL ,[EventTypeId] char(1) NOT NULL ,[Annotation] nvarchar(1024) NULL ) CREATE CLUSTERED INDEX [idx_EventAnnotation_WorkflowInstanceInternalId] ON [dbo].[EventAnnotation]( [WorkflowInstanceInternalId] ) CREATE NONCLUSTERED INDEX [idx_EventAnnotation_EventId_EventTypeId] ON [dbo].[EventAnnotation]( [EventId], [EventTypeId] ) GO CREATE TABLE [dbo].[AddedActivity] ( [WorkflowInstanceInternalId] bigint NOT NULL ,[WorkflowInstanceEventId] bigint NOT NULL ,[QualifiedName] nvarchar(128) NOT NULL ,[ActivityTypeId] int NOT NULl ,[ParentQualifiedName] nvarchar(128) NULL ,[AddedActivityAction] nvarchar(2000) NULL ,[Order] int NULL ) CREATE CLUSTERED INDEX [idx_AddedActivity_WorkflowInstanceInternalId] ON [dbo].[AddedActivity]([WorkflowInstanceInternalId]) CREATE NONCLUSTERED INDEX [idx_AddedActivity_WorkflowInstanceEventId] ON [dbo].[AddedActivity]([WorkflowInstanceEventId]) GO CREATE TABLE [dbo].[RemovedActivity] ( [WorkflowInstanceInternalId] bigint NOT NULL ,[WorkflowInstanceEventId] bigint NOT NULL ,[QualifiedName] nvarchar(128) NOT NULL ,[ParentQualifiedName] nvarchar(128) NULL ,[RemovedActivityAction] nvarchar(2000) NULL ,[Order] int NULL ) CREATE CLUSTERED INDEX [idx_RemovedActivity_WorkflowInstanceInternalId] ON [dbo].[RemovedActivity]([WorkflowInstanceInternalId]) CREATE NONCLUSTERED INDEX [idx_RemovedActivity_WorkflowInstanceEventId] ON [dbo].[RemovedActivity]([WorkflowInstanceEventId]) GO CREATE TABLE [dbo].[TrackingPartitionInterval] ( [Interval] char(1) -- Just leave this as a heap, clustering doesn't affect ) INSERT INTO [dbo].[TrackingPartitionInterval] ( [Interval] ) VALUES ( 'm' ) GO CREATE TABLE [dbo].[TrackingPartitionSetName] ( [PartitionId] int NOT NULL identity ,[Name] varchar(32) NOT NULL ,[CreatedDateTime] datetime NOT NULL default(getutcdate()) ,[EndDateTime] datetime NULL ,[PartitionInterval] char(1) NOT NULL ) GO CREATE TABLE [dbo].[TrackingProfile] ( [TrackingProfileId] int NOT NULL identity ,[Version] varchar(32) NOT NULL ,[WorkflowTypeId] int NOT NULL CONSTRAINT [fk_TrackingProfile_WorkflowTypeId] FOREIGN KEY REFERENCES [dbo].[Type]( [TypeId] ) ,[TrackingProfileXml] ntext NULL ,[InsertDateTime] datetime NOT NULL default(getutcdate()) ) CREATE UNIQUE CLUSTERED INDEX [pk_TrackingProfile_WorkflowTypeId_Version] ON [dbo].[TrackingProfile] ( [WorkflowTypeId], [Version] ) WITH IGNORE_DUP_KEY GO CREATE TABLE [dbo].[TrackingProfileInstance] ( [InstanceId] uniqueidentifier NOT NULL CONSTRAINT pk_TrackingProfileInstance_InstanceId PRIMARY KEY NONCLUSTERED ,[TrackingProfileXml] ntext NULL ,[UpdatedDateTime] datetime NOT NULL default(getutcdate()) ) GO CREATE TABLE [dbo].[DefaultTrackingProfile] ( [Version] varchar(32) NOT NULL CONSTRAINT pk_DefaultTrackingProfile_Version PRIMARY KEY CLUSTERED ,[TrackingProfileXml] ntext NOT NULL ,[InsertDateTime] datetime NOT NULL default(getutcdate()) ) GO INSERT [dbo].[DefaultTrackingProfile] ( [Version], [TrackingProfileXml] ) VALUES ( '1.0.0', N' System.Workflow.ComponentModel.Activity, System.Workflow.ComponentModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 true Initialized Executing Compensating Canceling Closed Faulting Created Completed Idle Suspended Resumed Persisted Unloaded Loaded Exception Terminated Aborted Changed Started System.Workflow.ComponentModel.Activity, System.Workflow.ComponentModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 true System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 true ' ) GO CREATE VIEW [dbo].[vw_ActivityExecutionStatus] AS SELECT [ExecutionStatusId] ,[Description] FROM [dbo].[ActivityExecutionStatus] GO GRANT SELECT ON [dbo].[vw_ActivityExecutionStatus] TO tracking_reader GO CREATE VIEW [dbo].[vw_Type] AS SELECT [TypeId] ,[TypeFullName] ,[AssemblyFullName] ,[IsInstanceType] FROM [dbo].[Type] GO GRANT SELECT ON [dbo].[vw_Type] TO tracking_reader GO CREATE VIEW [dbo].[vw_Workflow] AS SELECT [WorkflowTypeId] ,[WorkflowDefinition] FROM [dbo].[Workflow] GO GRANT SELECT ON [dbo].[vw_Workflow] TO tracking_reader GO CREATE VIEW [dbo].[vw_Activity] AS SELECT [WorkflowTypeId] ,[QualifiedName] ,[ActivityTypeId] ,[ParentQualifiedName] FROM [dbo].[Activity] GO GRANT SELECT ON [dbo].[vw_Workflow] TO tracking_reader GO CREATE VIEW [dbo].[vw_WorkflowInstance] AS SELECT [WorkflowInstanceInternalId] ,[WorkflowInstanceId] ,[ContextGuid] ,[CallerInstanceId] ,[CallPath] ,[CallerContextGuid] ,[CallerParentContextGuid] ,[WorkflowTypeId] ,[InitializedDateTime] ,[DbInitializedDateTime] ,[EndDateTime] ,[DbEndDateTime] FROM [dbo].[WorkflowInstance] GO GRANT SELECT ON [dbo].[vw_WorkflowInstance] TO tracking_reader GO CREATE VIEW [dbo].[vw_ActivityInstance] AS SELECT [WorkflowInstanceInternalId] ,[ActivityInstanceId] ,[QualifiedName] ,[ContextGuid] ,[ParentContextGuid] ,[WorkflowInstanceEventId] FROM [dbo].[ActivityInstance] GO GRANT SELECT ON [dbo].[vw_ActivityInstance] TO tracking_reader GO CREATE VIEW [dbo].[vw_ActivityExecutionStatusEvent] AS SELECT [ActivityExecutionStatusEventId] ,[WorkflowInstanceInternalId] ,[EventOrder] ,[ActivityInstanceId] ,[ExecutionStatusId] ,[EventDateTime] ,[DbEventDateTime] FROM [dbo].[ActivityExecutionStatusEvent] GO GRANT SELECT ON [dbo].[vw_ActivityExecutionStatusEvent] TO tracking_reader GO CREATE VIEW [dbo].[vw_TrackingWorkflowEvent] AS SELECT [TrackingWorkflowEventId] ,[Description] FROM [dbo].[TrackingWorkflowEvent] GO GRANT SELECT ON [dbo].[vw_TrackingWorkflowEvent] TO tracking_reader GO CREATE VIEW [dbo].[vw_WorkflowInstanceEvent] AS SELECT [WorkflowInstanceEventId] ,[WorkflowInstanceInternalId] ,[TrackingWorkflowEventId] ,[EventDateTime] ,[EventOrder] ,[EventArgTypeId] ,[EventArg] ,[DbEventDateTime] FROM [dbo].[WorkflowInstanceEvent] GO CREATE VIEW [dbo].[vw_UserEvent] AS SELECT [UserEventId] ,[WorkflowInstanceInternalId] ,[EventOrder] ,[ActivityInstanceId] ,[EventDateTime] ,[UserDataKey] ,[UserDataTypeId] ,[UserData_Str] ,[UserData_Blob] ,[UserDataNonSerializable] ,[DbEventDateTime] FROM [dbo].[UserEvent] GO GRANT SELECT ON [dbo].[vw_UserEvent] TO tracking_reader GO GRANT SELECT ON [dbo].[vw_WorkflowInstanceEvent] TO tracking_reader GO CREATE VIEW [dbo].[vw_TrackingDataItem] AS SELECT [TrackingDataItemId] ,[WorkflowInstanceInternalId] ,[EventId] ,[EventTypeId] ,[FieldName] ,[FieldTypeId] ,[Data_Str] ,[Data_Blob] ,[DataNonSerializable] FROM [dbo].[TrackingDataItem] GO GRANT SELECT ON [dbo].[vw_TrackingDataItem] TO tracking_reader GO CREATE VIEW [dbo].[vw_TrackingDataItemAnnotation] AS SELECT [TrackingDataItemId] ,[WorkflowInstanceInternalId] ,[Annotation] FROM [dbo].[TrackingDataItemAnnotation] GO GRANT SELECT ON [dbo].[vw_TrackingDataItemAnnotation] TO tracking_reader GO CREATE VIEW [dbo].[vw_EventAnnotation] AS SELECT [WorkflowInstanceInternalId] ,[EventId] ,[EventTypeId] ,[Annotation] FROM [dbo].[EventAnnotation] GO GRANT SELECT ON [dbo].[vw_EventAnnotation] TO tracking_reader GO CREATE VIEW [dbo].[vw_AddedActivity] AS SELECT [WorkflowInstanceInternalId] ,[WorkflowInstanceEventId] ,[QualifiedName] ,[ActivityTypeId] ,[ParentQualifiedName] ,[AddedActivityAction] ,[Order] FROM [dbo].[AddedActivity] GO GRANT SELECT ON [dbo].[vw_AddedActivity] TO tracking_reader GO CREATE VIEW [dbo].[vw_RemovedActivity] AS SELECT [WorkflowInstanceInternalId] ,[WorkflowInstanceEventId] ,[QualifiedName] ,[ParentQualifiedName] ,[RemovedActivityAction] ,[Order] FROM [dbo].[RemovedActivity] GO GRANT SELECT ON [dbo].[vw_RemovedActivity] TO tracking_reader GO CREATE VIEW [dbo].[vw_TrackingProfile] AS SELECT [TrackingProfileId] ,[Version] ,[WorkflowTypeId] ,[TrackingProfileXml] ,[InsertDateTime] FROM [dbo].[TrackingProfile] GO GRANT SELECT ON [dbo].[vw_TrackingProfile] TO tracking_reader GO CREATE VIEW [dbo].[vw_TrackingProfileInstance] AS SELECT [InstanceId] ,[TrackingProfileXml] ,[UpdatedDateTime] FROM [dbo].[TrackingProfileInstance] GO GRANT SELECT ON [dbo].[vw_TrackingProfileInstance] TO tracking_reader GO CREATE VIEW [dbo].[vw_DefaultTrackingProfile] AS SELECT [Version] ,[TrackingProfileXml] ,[InsertDateTime] FROM [dbo].[DefaultTrackingProfile] GO GRANT SELECT ON [dbo].[vw_DefaultTrackingProfile] TO tracking_reader GO CREATE VIEW [dbo].[vw_TrackingPartitionInterval] AS SELECT [Interval] FROM [dbo].[TrackingPartitionInterval] GO GRANT SELECT ON [dbo].[vw_TrackingPartitionInterval] TO tracking_reader GO CREATE VIEW [dbo].[vw_TrackingPartitionSetName] AS SELECT [PartitionId] ,[Name] ,[CreatedDateTime] ,[EndDateTime] ,[PartitionInterval] FROM [TrackingPartitionSetName] GO GRANT SELECT ON [dbo].[vw_TrackingPartitionSetName] TO tracking_reader GO