CREATE DATABASE [AsPartitionProcessing] GO USE [AsPartitionProcessing] GO CREATE TABLE [dbo].[ModelConfiguration]( [ModelConfigurationID] [int] NOT NULL, [AnalysisServicesServer] [varchar](255) NOT NULL, [AnalysisServicesDatabase] [varchar](255) NOT NULL, [InitialSetUp] [bit] NOT NULL, [IncrementalOnline] [bit] NOT NULL, [IntegratedAuth] [bit] NOT NULL, [MaxParallelism] [int] NOT NULL, [CommitTimeout] [int] NOT NULL, CONSTRAINT [PK_ModelConfiguration] PRIMARY KEY CLUSTERED ( [ModelConfigurationID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO CREATE TABLE [dbo].[PartitioningConfiguration]( [PartitioningConfigurationID] [int] NOT NULL, [TableConfigurationID] [int] NOT NULL, [Granularity] [tinyint] NOT NULL, [NumberOfPartitionsFull] [int] NOT NULL, [NumberOfPartitionsForIncrementalProcess] [int] NOT NULL, [MaxDateIsNow] [bit] NOT NULL, [MaxDate] [date] NULL, [IntegerDateKey] [bit] NOT NULL, [TemplateSourceQuery] [varchar](max) NOT NULL, CONSTRAINT [PK_PartitioningConfiguration] PRIMARY KEY CLUSTERED ( [PartitioningConfigurationID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO CREATE TABLE [dbo].[ProcessingLog]( [PartitioningLogID] [int] IDENTITY(1,1) NOT NULL, [ModelConfigurationID] [int] NOT NULL, [ExecutionID] [char](36) NOT NULL, [LogDateTime] [datetime] NOT NULL, [Message] [varchar](8000) NOT NULL, CONSTRAINT [PK_ProcessingLog] PRIMARY KEY CLUSTERED ( [PartitioningLogID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO CREATE TABLE [dbo].[TableConfiguration]( [TableConfigurationID] [int] NOT NULL, [ModelConfigurationID] [int] NOT NULL, [AnalysisServicesTable] [varchar](255) NOT NULL, [DoNotProcess] [bit] NOT NULL, CONSTRAINT [PK_TableConfiguration] PRIMARY KEY CLUSTERED ( [TableConfigurationID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [dbo].[PartitioningConfiguration] WITH CHECK ADD CONSTRAINT [FK_PartitioningConfiguration_TableConfiguration] FOREIGN KEY([TableConfigurationID]) REFERENCES [dbo].[TableConfiguration] ([TableConfigurationID]) GO ALTER TABLE [dbo].[PartitioningConfiguration] CHECK CONSTRAINT [FK_PartitioningConfiguration_TableConfiguration] GO ALTER TABLE [dbo].[ProcessingLog] WITH CHECK ADD CONSTRAINT [FK_ProcessingLog_ModelConfiguration] FOREIGN KEY([ModelConfigurationID]) REFERENCES [dbo].[ModelConfiguration] ([ModelConfigurationID]) GO ALTER TABLE [dbo].[ProcessingLog] CHECK CONSTRAINT [FK_ProcessingLog_ModelConfiguration] GO ALTER TABLE [dbo].[TableConfiguration] ADD CONSTRAINT [DF_TableConfiguration_DoNotProcess] DEFAULT ((0)) FOR [DoNotProcess] GO ALTER TABLE [dbo].[TableConfiguration] WITH CHECK ADD CONSTRAINT [FK_TableConfiguration_ModelConfiguration] FOREIGN KEY([ModelConfigurationID]) REFERENCES [dbo].[ModelConfiguration] ([ModelConfigurationID]) GO ALTER TABLE [dbo].[TableConfiguration] CHECK CONSTRAINT [FK_TableConfiguration_ModelConfiguration] GO ALTER TABLE [dbo].[PartitioningConfiguration] WITH CHECK ADD CONSTRAINT [CK_PartitioningConfiguration_Granularity] CHECK (([Granularity]=(2) OR [Granularity]=(1) OR [Granularity]=(0))) GO ALTER TABLE [dbo].[PartitioningConfiguration] CHECK CONSTRAINT [CK_PartitioningConfiguration_Granularity] GO ALTER TABLE [dbo].[PartitioningConfiguration] WITH CHECK ADD CONSTRAINT [CK_PartitioningConfiguration_NumberOfPartitionsForIncrementalProcess] CHECK (([NumberOfPartitionsForIncrementalProcess]<=[NumberOfPartitionsFull])) GO ALTER TABLE [dbo].[PartitioningConfiguration] CHECK CONSTRAINT [CK_PartitioningConfiguration_NumberOfPartitionsForIncrementalProcess] GO CREATE VIEW [dbo].[vPartitioningConfiguration] AS SELECT m.[ModelConfigurationID] ,m.[AnalysisServicesServer] ,m.[AnalysisServicesDatabase] ,m.[InitialSetUp] ,m.[IncrementalOnline] ,m.[IntegratedAuth] ,m.[MaxParallelism] ,m.[CommitTimeout] ,t.[TableConfigurationID] ,t.[AnalysisServicesTable] ,t.[DoNotProcess] ,CASE WHEN p.[TableConfigurationID] IS NULL THEN 0 ELSE 1 END [Partitioned] ,p.[PartitioningConfigurationID] ,p.[Granularity] ,p.[NumberOfPartitionsFull] ,p.[NumberOfPartitionsForIncrementalProcess] ,p.[MaxDateIsNow] ,p.[MaxDate] ,p.[IntegerDateKey] ,p.[TemplateSourceQuery] FROM [dbo].[ModelConfiguration] m INNER JOIN [dbo].[TableConfiguration] t ON m.[ModelConfigurationID] = t.[ModelConfigurationID] LEFT JOIN [dbo].[PartitioningConfiguration] p ON t.[TableConfigurationID] = p.[TableConfigurationID] GO